Hoe werkt een solidstatedrive?
![](https://cdn.techpulse.be/2023/04/qJ64waJ2-aCC3bu4H-0jHz2i0G-TechPulse_Placeholder_image-1.png.webp)
Het kleinste onderdeel van een SSD is een NAND-cel en geen magnetische schijf. Schrijven gaat sneller, maar er zijn toch enkele verrassende nadelen aan flashgeheugen verbonden.
Eerst wat theorie. Het kleinste onderdeel van een SSD is een NAND-cel. Een dergelijke cel kan 1 bit data bevatten (type SLC) of 2 bit (type MLC). SSD"s met MLC-cellen zijn meestal iets goedkoper en groter dan SSD"s met SLC-cellen. Maar MLC is ook trager en minder duurzaam.
Cellen worden per 16.384 gegroepeerd in pages van 4 KB (MLC). Deze pages vormen per 128 stuks dan een blok van 512 KB. Meerdere blokken, doorgaans 1.024, noemt men een plane (meestal 512 MB) en in één chip kunnen er bijvoorbeeld 16 of 32 van dergelijke planes zitten.
[related_article id=”152275″]
Een SSD veroudert door wissen
Het nadeel aan SSD’s is nu dat cellen slechts een beperkt aantal keer kunnen worden leeggemaakt en beschreven. Voor SLC is dat ongeveer 100.000 keer en voor MLC-cellen is dat 10.000 keer per cel. Een wisactie zorgt er dus voor dat een SSD ‘veroudert’.
De controller kan dit bijvoorbeeld tegengaan door zo weinig mogelijk te wissen: eerst wordt het vrije geheugen opgebruikt, vooraleer er cellen gewist worden.
Er is ook nog een tweede probleem: SSD"s kunnen alleen volledige blokken wissen en geen pages of cellen apart. Dit betekent dat als er ook maar één bit gewijzigd moet worden aan een bepaald blok, dat blok eerst volledig ingelezen moet worden in de cache. Daar wordt dit dan gewijzigd, daarna wordt het blok gewist en dan alles volledig teruggeschreven.
Schrijfsnelheid daalt
Dit is uiteraard veel trager dan een simpele leesactie en helpt ook de levensduur niet vooruit. Onder andere hiervoor wordt het algoritme in de controller ontworpen om wijzigingsacties weg te schrijven in ‘verse’ blokken in plaats van gebruikte blokken. Fragmentatie is bij SSD"s dus een goed fenomeen, defragmentatie van SSD"s wordt dan ook ten sterkste afgeraden. Het doet meer kwaad dan goed.
Dit alles betekent dat de schrijfsnelheid van een SSD serieus daalt naarmate er meer naartoe geschreven wordt. Hoe meer vrije blokken, hoe meer keuze de controller heeft in de verdeling van de schrijfacties.
Controller is belangrijk
Als we dan nog bedenken dat een controller lees- en schrijfacties kan bufferen en eventueel simultaan uitlezen en wegschrijven, dan beseffen we snel dat de controller van een SSD enorm belangrijk en eigenlijk de beslissende factor is voor de snelheid van een solidstatedrive.
Iedere SSD-fabrikant voorziet ook in een aantal reserveblokken, zodat de brutocapaciteit (som van alle blokken) nooit gelijk is aan de netto-capaciteit zoals zichtbaar voor een OS.
Voor consumentenproducten is dit ongeveer tussen de 5 en 10%, terwijl enterprise-SSD"s gemiddeld meer dan 30% tot 40% reserveruimte voorzien.
TRIM-commando
Een besturingssysteem zal schijfbewegingen uitsparen door bij het wissen van grote bestanden niet werkelijk alle sectoren te wissen, maar alleen begin- en eindsectoren van de bestanden. Een SSD is niet op de hoogte van deze acties, en dit betekent dat bepaalde blokken voor een SSD als ‘in gebruik’ staan, terwijl het OS ze eigenlijk niet meer kan gebruiken.
Via een bepaald commando kan een besturingssysteem doorgeven aan de SSD om alle onnodige blokken ook echt te wissen (eventueel op een stil moment van de dag), zodat het aantal gebruikte blokken laag blijft en de SSD niet te snel aan snelheid inboet. Dit commando heet het TRIM-commando en is onder meer bij Windows 7 standaard aanwezig.