SLC-cache: användning och egenskaper i NVMe SSD:er

SLC-cache

En av termerna som hänvisar till prestandan hos NVMe SSD-enheter som du har hört mest de senaste månaderna är SLC Cache. Det är därför vi har förberett den här artikeln åt dig så att du kan förstå hur det fungerar och vilka fördelar det medför för prestandan hos våra högpresterande solid-state-enheter.

Datalagring baserad på NAND Flash-teknik har resulterat i ett paradigmskifte inom olika datorsektorer, från minneskort för handhållna enheter till NVMe SSDs på datorer. Det är just i det senare fallet som en av historiens historiska flaskhalsar har eliminerats genom att inte ha begränsningarna i både åtkomstfördröjning och bandbredd för traditionella hårddiskar, dock finns det ingen perfekt teknik som presterar till 100% och det finns alltid element som tynger det, vilket tvingar ingenjörer att behöva hitta och implementera lösningar.

NAND Flash och minnesceller

Typer Celda NAND Flash SLC TLC MLC QLC

NAND Flash-minne är en typ av NVRAM eller icke-flyktigt RAM, betyder detta att dess funktion är densamma som ett konventionellt RAM, men med skillnaden att dess data inte går förlorade när systemet slutar ta emot ström. Avvägningen för att ha denna förmåga är att ha ett begränsat antal minnesskrivningar i sin livscykel. Även om fördelarna i form av prestanda när det kommer till att komma åt lagring är värda det, inte förgäves, är varje datorsystem bara så snabbt som dess långsammaste del, som vanligtvis är lagringen, lämnar den.

Varje minnesbit i ett RAM-minne lagras i vad som kallas minnesceller och i de första NAND Flash-minnena som används för SSD lagring användes en bit per cell, vilket gjorde lagringen mycket dyr. Lösningen? Att varje cell kan hålla data på 2 bitar ( MLC ), 3 bitar ( TLC ) eller upp till 4 bitar ( QLC ). Det extra problemet? Ju fler bitar per cell, desto snabbare bryts de ned och därför kortare livslängd. Tänk på detta eftersom det är grunden för att förstå SLC Cache.

TLC- och QLC-celler försämras inte bara i varaktighet

NVMe SSD

När ni väl har nått denna punkt kommer många av er att ha tanken i huvudet att NAND Flash-minnen av typen MLC, TLC och QLC har mer lagringskapacitet, men kortare varaktighet, men bandbredden för dem alla är densamma och därför typen av cell varierar inte prestanda. Tja, låt oss berätta att de dåliga nyheterna inte slutar där, utan att åtkomsthastigheten också försämras.

När CPU gör en begäran om åtkomst till en minnesadress i NVMe SSD, den tas emot av flashkontrollern som kommer att söka efter data i minnet för att överföra den via PCI Express eller SATA-gränssnittet, beroende på vilken du använder. enheten, men flash-styrenheten kommer direkt åt enhetens NVMe-chips för att manipulera dess data och gör det inte via de gränssnitt som vi har nämnt.

Sättet att lagra data i NAND Flash-minnet är genom förändringar i spänningen, ett SLC-minne behöver bara 1 spänning, en MLC kräver 3 , men en TLC går till 7 och om vi går till en QLC går saken till 15 . Tja, ju högre siffra, desto längre tid tar det att utföra en läs- och skrivoperation. Och när börjar detta bli ett problem? Tja, från TLC-minnet och om du tittar på antalet NVMe SSD-enheter i butikerna kommer du att se att de alla använder dessa celler åtminstone idag.

Lösningen: SLC-cache

SLC Cache NVMe
Det första man bör tänka på är att SLC-cachen inte är densamma som DRAM-cachen som också finns i vissa NVMe SSD-enheter, eftersom vi inte pratar om det flyktiga minnet som finns mellan flashkontrollern och PCI-gränssnittet. Uttryck detsamma, eftersom SLC-cachen också finns i DRAM-less-enheterna. I allmänhet, även om det finns undantag som vi kommer att se senare, inom varje NVMe-chip finns det två typer av NAND Flash-minne:

  • Ett TLC- eller QLC-minne för datalagring
  • Ett mycket mindre SLC-minne som fungerar som cache.

Det första vi måste förstå är att en cache inte är något annat än ett minne mycket närmare en processor och därför med lägre latens som tillfälligt lagrar data. Om vi ​​granskar det vi har berättat för dig har vi följande premisser:

  • SLC-celler har mycket längre livslängd än TLC och till och med längre än QLC, så de tar mycket längre tid att brytas ned.
  • Åtkomsthastigheten för SLC-celler är mycket högre.

Lösningen är alltså att data temporärt dumpas in i SLC-minnet, som fungerar som en buffertcache så att en datakopieringsmekanism sedan modifierar minnesadresserna i TLC.

SLC-cacheprestanda

SLC MLC TLC voltaje cache
Vi kommer till den viktigaste delen, SLC-cachen har en fast storlek och det betyder att om vi använder den för att skicka eller ta emot små data kommer dess prestanda att bibehållas, men om vi till exempel vill göra en sekventiell kopia av data i form av ett mycket stort datablock så snart SLC är full kommer prestandan att sjunka.

Det är därför, även om vi kan ha två NVMe SSD:er i våra händer med samma lagring, åtkomstgränssnitt och till och med celltyper, det vill säga praktiskt taget samma, så kan de ha helt olika prestanda. Anledningen? Uppenbarligen SLC-cachen som kan skilja sig åt i storlek.

SLC-cachen används inte bara för att lagra data med sekventiell åtkomst, utan även slumpmässigt och man måste ta hänsyn till att program vid åtkomst av information gör det med hög rekursion och i ett avgränsat informationsblock.

SLC-cachetyper

Typos Caché SLC
Det finns två sätt att hantera SLC-cachen, vilket kommer att bero på algoritmen för detta som tillverkaren har implementerat i blixtstyrenheten. Det avser snarare hur mycket utrymme inom den som kan avsättas för tillfällig förvaring.

  • I den statiska cachen är lagringsutrymmet fast och kan inte variera i storlek.
  • I den dynamiska cachen är den tilldelade storleken variabel.

Hur är dynamisk cache möjlig om antalet SLC-celler är fixat? Haken är att använda NVMe TLC-cellerna som om de vore SLC, det vill säga få dem att lagra en bit i varje istället för 3. Så det finns några NVMe-chips som omfördelar en del av lagringen som cache.

Fördelen med den dynamiska cachen är att storleken på SLC-cachen inte är uttömd, men det finns en risk att fler och fler TLC-celler inte längre används för lagring, vilket påverkar den totala kapaciteten för denna att lagra data. Av denna anledning använder de flesta dynamiska SLC-cachesystem system som begränsar den maximala storleken på detta genom firmware.