Door Willem de Moor

Redacteur

De evolutie van ssd's

Van vacuümbuis tot opslag op nanoschaal

13-03-2016 • 06:00

119

Singlepage-opmaak

Slc, mlc en tlc

In solid state drives wordt dus nand gebruikt om data in de vorm van bits op te slaan, zoals we op de vorige pagina zagen. Dit levert aanzienlijke kostenbesparingen op ten opzichte van andere non-volatiele opslagmethodes als norflash, omdat minder transistors per geheugencel nodig zijn. Voor massaopslag is meer altijd beter, dus fabrikanten zoeken naar meer manieren om de opslagcapaciteit te vergroten.

We kijken eerst naar de snelste, maar ook duurste vorm van nandgeheugen voor opslag: het slc-geheugen. Slc staat voor single level cell, ofwel een enkel niveau per cel. Dit type nand was het eerst ontwikkeld en elke bit heeft een geheugencel nodig, wat mede de oorzaak voor de hoge prijzen van vroege ssd's was. Tegenwoordig wordt slc-geheugen nog steeds gebruikt, onder meer voor ssd's die in servers worden ingezet.

Slc, mlc en tlc

De s in slc is afkomstig van single en in slc-nand wordt dan ook een enkele bit per geheugencel opgeslagen. De eerder genoemde 0 en 1, die door veel of weinig elektronen in de floating gate te transporteren gerealiseerd worden, worden één-op-één vertaald in data. Daarom is slc lekker snel te lezen; er hoeft alleen gekeken te worden of de lading in de fgt hoog of laag is. Ook schrijven en wissen hebben niet enorm veel precisie nodig door het vrij makkelijk te detecteren ladingsverschil. Mede daarom heeft slc-geheugen een lange levensduur; de lekkende elektronen die tussen floating gate en channel terechtkomen, hebben niet zo snel invloed op de leesbaarheid van de bits.

Hoewel de bitdichtheid van nandflash al hoog is, bijna 1 bit per fgt, willen zowel fabrikanten als consumenten natuurlijk meer capaciteit voor lagere prijzen. Met mlc-geheugen wordt dit gerealiseerd. In plaats van 1 bit per fgt worden er twee opgeslagen. Dit maakt mlc wat trager met lezen en schrijven; de ladingsverschillen in de floating gates moeten een stuk preciezer worden. Zo worden veel elektronen, zeg 100 tot 75 procent van de capaciteit, in de gate als 00 gelezen. Als de gate voor 75 tot 50 procent 'gevuld' is, lezen we de waarde 01 uit, voor 50 tot 25 procent 10 en voor 25 tot 0 procent lezen we de twee bits als 11.

Door dit trucje verdubbelen fabrikanten dus in een keer de capaciteit van hun nand. De keerzijde is dat zowel lezen als schrijven zorgvuldiger, dus langzamer, moet plaatsvinden en de eerder genoemde ruis, en daarmee de noodzaak voor goede foutcorrectie, wordt groter. Een goede controller en dito ecc-techniek kunnen die nadelen goeddeels het hoofd bieden, reden voor bijna alle fabrikanten om slc-drives te laten vallen en mlc-drives voor consumenten te maken.

Spanningen in nand

Eenzelfde truc als met mlc gedaan werd, kun je nog een keer doen, zodat je niet twee, maar drie bits per transistor kunt opslaan. Zo krijg je dus 000, 001, 010, 011, 011, 100, 101, 110 en 111 als bitwaardes. De ladingsverschillen in het resulterende tlc-geheugen zijn nog kleiner, maar als voordeel sla je weer twee keer meer data op in je flash. Ook nu geldt dat de kans op leesfouten groot is en de foutcorrectie nog harder aan de bak moet. Lezen en wissen duren dan ook zo'n drie keer zo lang als bij slc en schrijven gaat zelfs bijna vijf keer zo langzaam.

Waar slc-nand al problemen had met beperkte p/e-cycli door lekkende floating gates, kun je je voorstellen dat dat met mlc en helemaal met tlc nog erger is. De hoeveelheid elektronen die het verschil tussen opeenvolgende waardes maken, is dan steeds kleiner en een beetje lekkage kan tot gevolg hebben dat een andere waarde wordt uitgelezen dan opgeslagen werd. De levensduur van mlc- en nog sterker van tlc-nand wordt dus steeds korter.