Het NAND geheugen bestaat uit miljoenen individuele cellen met een bepaald voltage. Aan de hand van dit voltage kan de controller aflezen welke waarde deze cel bevat. NAND geheugen heeft helaas een beperkte levensduur. De lengte van deze levensduur hangt af van het type geheugen; SLC, MLC of TLC geheugen…
NAND geheugen: hoe het werkt
In een SSD wordt gebruik gemaakt van NAND flash geheugen. In tegenstelling tot DRAM (normaal DDR-werkgeheugen) kan NAND flash geheugen gegevens bewaren als er geen stroom wordt geleverd. Het geheugen bestaat uit miljoenen individuele cellen met een bepaald voltage. Aan de hand van dit voltage kan de controller aflezen welke waarde deze cel bevat. Het bijzondere aan NAND geheugen is dat het dit voltage voor langere tijd kan vasthouden.
NAND geheugen SLC en MLC geheugen
Ondertussen zijn er drie soorten NAND geheugen; SLC, MLC en TLC geheugen. Het verschil tussen deze types zit hem in hoe veel informatie een individuele cel kan bevatten. Hoe meer informatie per cel, des te goedkoper de SSD per gigabyte.
SLC geheugen
SLC, of Single Level Cell, geheugen heeft 1 bit per cel. Een bit is 0 of 1. Dit wordt vertaald in voltages. Een cel krijgt bijvoorbeeld 3V of 9V. De Controller leest het voltage uit. Aan de hand van het voltage weet hij of er een 0 of 1 aanwezig is.
MLC geheugen
MLC, of Multi Level Cell geheugen, heeft 2 bits per cel. In een cel kan 0 0, 0 1, 1 0 of 1 1 bewaard worden. Ook dit wordt in voltages vertaald. Bijvoorbeeld 1V, 3V, 5V of 7V. De voltages liggen dus dichter op elkaar.
TLC geheugen
TLC, Tripple Level Cell geheugen, heeft 3 bits per cel. Om 3 bits op te slaan zijn 6 waardes nodig. Namelijk 0 0 0, 0 0 1, enz. In dit geval praten we dan over de voltages 1V, 2V, 3V, 4V, 5V en 6V. De voltages liggen dus nog dichter op elkaar, maar er kan dus wel drie keer meer informatie worden opgeslagen dan in een SLC-cel.
Implicaties van MLC en TLC geheugen
De duurste vorm van NAND geheugen is SLC of Single Level Cell geheugen. Dit geheugen kan slechts 1 bit aan informatie bevatten en is daardoor erg duur per GB. Met het MLC geheugen kan er twee keer zoveel informatie worden opgeslagen terwijl het aantal transistoren gelijk blijft. Een geheugen chip met MLC is dus per GB twee keer goedkoper dan een SLC-chip.
Het MLC geheugen heeft wel een aantal nadelen:
- MLC gaat veel minder lang mee dan SLC (zie onderstaande tabel bij levensduur (write cycles))
- MLC heeft een grotere kans op bitfouten*
- MLC leest 2x trager
- MLLC schrijft 4x trager
Voor TLC gelden dezelfde nadelen, alleen dan nog nadeliger.
*In de praktijk betekent een hogere kans op bit-fouten dat complexere software en extra ruimte nodig is om deze fouten te corrigeren.
Beperkte levensduur
Elke keer dat een NAND-cel herschreven wordt dan treed er slijtage op. Denk aan een batterij die na een aantal keer opladen het steeds slechter begint te doen. Het gevolg hiervan is dat intern de spanning die oorspronkelijk nodig was niet meer accuraat behaald wordt. Deze spanning zal dalen. Hoe groot probleem dit is hangt af van het gebruikte geheugen.
Bij het SLC geheugen treed er niet snel een probleem op. Het was immers 3V of 9V. Ook al daalt de spanning tot 5V, de controller weet nog steeds dat het boven de 3V ligt en de cel dus een 1 bedoelt.
Bij MLC geheugen wordt het problematischer. Immers elke stap ligt nu slechts 2V uit elkaar. Indien de spanning daalt van 7V naar 5V dan weet de cel niet meer wat er nu precies bedoelt werd. Bij TLC geheugen liggen de voltages nog dichter op elkaar en treedt het probleem dus nog sneller op.
Write cycles
Om de data van een SSD te beschermen worden cellen beperkt in het aantal keer dat deze herschreven mogen worden. Hoe groot deze beperking is bepaalt de fabrikant en is dus primair afhankelijk van het gebruikte soort geheugen.
type geheugen | levensduur (write cycles) |
normale kwaliteit SLC NAND | 100.000 |
hoge kwaliteit MLC NAND (Intel 520) | 5000 |
normale kwaliteit MLC NAND | 3000 |
Samsung TLC | 1000 |
De impact van de nauwkeurigheid van de voltages is direct duidelijk. Waar SLC normaal gesproken 100.000 keer kan worden beschreven is MLC na 3000-5000 keer al defect. Het TLC geheugen is met 1000 writecycles het “slechtste”. Dit was natuurlijk te verwachten aan de hand van de bovenstaande uitleg.
Overprovisioning
Het is belangrijk te realiseren dat deze getallen voor een individuele geheugencel van een SSD gelden. Het is dus niet zo dat na 3000 keer een bestand te wijzigen de SSD defect is. Een SSD bevat miljoenen cellen die elk deze levensduur hebben. Omdat bestanden willekeurig worden opgeslagen worden niet steeds dezelfde cellen gebruikt.
Verschillende fabrikanten maken gebruik van zogenaamde overprovisioning om de levensduur van hun SSD’s te verlengen. In het kort is dit een deel van de geheugenchips wat niet gebruikt kan worden door de gebruiker. De SSD is dus eigenlijk groter dan de gebruiker ziet.
De controller gebruikt dit extra geheugen als reserve. Hierbij worden versleten cellen tijdig vervangen voor cellen uit deze reserve. Intel houdt bijvoorbeeld 8 GB extra overprovisioning aan bij de 330- en 520- 120 GB modellen.
Zet een SSD nooit helemaal vol
Hieruit volgt dat het in theorie slecht is om een SSD helemaal vol te zetten. Denk aan een parketvloer waar een tapijt op ligt. Na 10 jaar zal het parket onder het tapijt nog zo goed als nieuw zijn, terwijl het deel naast het tapijt versleten is. In de SSD gaat het net zo. De cellen die al vol zitten zullen niet opnieuw worden beschreven. De overgebleven cellen moeten samen met de overprovisioning alle last dragen.
Hierbij moet wel worden opgemerkt dat controllers tegenwoordig steeds slimmer worden. Het is bekend dat bijvoorbeeld Samung de statische data af en toe “husselt” om zo alle cellen gelijkwaardiger te belasten.