Een ssd maakt gebruik van caching, een term voor tijdelijke opslag, om de snelheid te verhogen. Vooral de schrijfsnelheid is dankzij caching veel hoger dan mogelijk zou zijn zonder cache. Afhankelijk van de benchmark kan de ssd wel vijf keer sneller schrijven dan wanneer die cache er niet zou zijn, of wanneer de cache vol zou zijn. Hoewel veel ssd's een dram-cache hebben (of daar het systeemgeheugen voor gebruiken), is niet het dram verantwoordelijk voor het cachen van data, maar het nand (of flashgeheugen) zelf.
Dynamische cache
Om data naar die cache te schrijven, maken vrijwel alle ssd's gebruik van een dynamische slc-cache. Daarbij wordt een deel van het beschikbare nand gebruikt als slc-cache. Slc-geheugen is de snelste variant van de nandtypes. Klik hier voor een uitleg van de verschillen tussen slc, mlc, tlc en qlc. Voor nu is het voldoende om te weten dat slc snel en duur is, en qlc langzamer en goedkoop.
- Niet het dram, maar een speciaal stukje 'gewone' opslag zorgt voor de caching van data.
- Tlc en qlc zijn configureerbaar als supersnelle slc-opslag.
- Als de cache vol is, moet de data naar minder snelle opslag verplaatst worden.
- Een lege(re) ssd heeft doorgaans meer cache beschikbaar dan een volle(re) drive.
Om het beste van twee werelden te krijgen, combineren ssd-fabrikanten daarom het goedkopere tlc- of qlc-nand met een cache van slc-nand. Aparte chips zouden wederom te duur worden, dus wordt een deel van het tlc- of qlc-nand als slc-nand geconfigureerd en aangesproken. De controller regelt welk percentage van het gewone nand deze pseudo-slc-cache wordt. Dat is ook afhankelijk van de capaciteit van de ssd, en vaak wordt dat dynamisch bepaald: een lege drive heeft bijna altijd meer cache beschikbaar dan een (bijna) volle.
Opruimen
Naar de (pseudo-)slc-cache wordt veel sneller geschreven dan naar het gewone nand. Tot die vol is tenminste, want dan moet de controller gaan jongleren met data. De cache moet geleegd worden, zodat er op een later moment weer op volle snelheid geschreven kan worden. Maar als er nog steeds geschreven wordt terwijl de cache vol is, wordt het lastig. De inhoud van de slc-cache moet naar het tragere reguliere cache geschreven worden, maar tegelijk moeten vrijgekomen blokken geheugen weer volgeschreven worden. Dat kan een flinke rem op de snelheid zetten.
Als de (pslc-)cache weer (deels) leeg is, kan er weer data naar het snelle geheugen geschreven worden. Een ssd is hier steeds mee bezig, zowel terwijl je nog actief bezig bent, als wanneer de ssd even niets te doen heeft. In dat laatste geval gaat de ssd met technieken die als trim en garbage collection bekendstaan in de weer om data netjes naar de goede plek te verplaatsen. Om voldoende ruimte voor de cache beschikbaar te hebben, is het verstandig je ssd niet al te vol te laten worden: gooi af en toe eens iets weg.