Dit artikel bevat informatie over de reden voor slijtage van een SSD.
Overzicht
Waarom slijten Solid State-apparaten?
Om te bespreken waarom een ssd op basis van flash een beperkte levensduur heeft, gaan we kijken naar de mechanismen van flash, hoe deze varieert voor verschillende flash-typen en welke technieken worden gebruikt om de functionaliteit ervan te verbeteren.
Een flashgeheugenapparaat wordt gelezen en geschreven op pagina's. Een leesbewerking is relatief eenvoudig omdat een leesopdracht met het adres wordt gegeven en de betreffende data worden geretourneerd. Een schrijfbewerking kan alleen plaatsvinden op de pagina's die zijn gewist, zodat host-schrijfopdrachten flash-wiscycli activeren voordat ze naar de flash schrijven. Deze schrijf-/wiscycli veroorzaken slijtage van cellen die de beperkte levensduur van de schrijflevensduur opleggen.
NAND-flash-apparaten kunnen cellen op één niveau (SLC) of cellen op meerdere niveaus (MLC) zijn. SLC slaat slechts één informatiebit op en vereist slechts twee spanningsniveaus om een 0 of 1 weer te geven. Dit is de eenvoudigste implementatie van NAND en heeft de hoogste duurzaamheid. Dit is ongeveer 100.000 cycli. Naarmate de volgende generaties van flash naar kleinere geometrische elementen gaan, zal de duurzaamheid afnemen (we zien al een enkele met 50.000 cycli). MLC duidt meestal op het opslaan van twee informatiebits en vereist vier spanningsniveaus voor de weergave van 00, 01, 10 en 11. De slijtage van de cellen is vergelijkbaar tussen SLC en MLC, maar omdat er meer voltageniveaus moeten worden gedetecteerd, neemt de duurzaamheid aanzienlijk af. MLC is meestal rond de 10.000, maar nieuwere generaties zijn minder dan 3000-5000 cycli.
Een flash SSD bestaat uit een hoeveelheid flash-dies om de hoge capaciteiten te bereiken. Om de levensduur van SSD's te verbeteren, worden verschillende technieken gebruikt, die kunnen worden toegepast op beide NAND-typen. Schrijfbewerkingen door de host kunnen plaatsvinden op elke locatie, maar er kunnen hot-spots ontstaan, die voortijdige slijtage op deze locaties veroorzaken. Een techniek genaamd wear-leveling wordt gebruikt om de hot-spots te voorkomen. Wear-leveling leidt tot een bijna gelijkmatige distributie van schrijftoegang over de totale capaciteit van de SSD. Write-amplification is een maat voor de verhouding van het aantal flash-schrijfopdrachten ten opzichte van het aantal host-schrijfopdrachten. Als er bijvoorbeeld twee flash-schrijfbewerkingen worden gegenereerd per host-schrijfbewerking, is de write-amplification ook 2. Om de write-amplification te verminderen wordt de efficiëntie van de garbage-collection verbeterd door een techniek die over-provisioning wordt genoemd, waardoor de write-amplification afneemt. Tot slot gebruikt een techniek die meestal wordt toegepast op MLC lagere spanningsniveaus tijdens de schrijfcyclus om de slijtage van de cellen te verminderen, waardoor de schrijfduur wordt verbeterd.
Hoewel het moeilijk zou zijn om precies te bepalen hoe lang een SSD meegaat, zijn er richtlijnen om te helpen schatten. SSD gebruikt een metriek die is ontwikkeld door JEDEC genaamd TBW (terabytes written). Hoewel de werkelijke levensduur van schrijven wordt beïnvloed door het werklastprofiel (bijvoorbeeld willekeurig of sequentieel, blokgrootte of schrijfactiviteit), geeft de TBW een schatting, maar zal de werkelijke levensduur variëren. Om de verwachte levensduur vast te stellen, neemt men de TBW en deelt deze door de verwachte gemiddelde BW van de schrijfbewerkingen naar het station. Doorgaans moeten SSD's, afgezien van zeer veeleisende applicaties, meer dan drie jaar mee kunnen gaan.
Wear-leveling
NAND Flash-geheugen is gevoelig voor slijtage als gevolg van herhaalde program- en erase-cycli die gewoonlijk worden uitgevoerd in data storage applicaties en systemen die Flash Translation Layer (FTL) gebruiken. Door voortdurend program- en erase-bewerkingen naar dezelfde geheugenlocatie uit te voeren, slijt dat deel van het geheugen na verloop van tijd, waardoor het ongeldig wordt. Als gevolg daarvan zou de NAND Flash slechts een beperkte levensduur hebben. Om dit soort scenario's te voorkomen worden binnen de SSD speciale algoritmes uitgevoerd, aangeduid als wear levelling. Zoals de term suggereert, biedt wear levelling een methode om program- en erase-cycli uniform te verdelen over alle geheugenblokken binnen de SSD. Dit voorkomt continue programma- en wiscycli naar hetzelfde geheugenblok, wat resulteert in een langere levensduur van het algehele NAND-flashgeheugen.
Er zijn twee soorten wear leveling, dynamisch en statisch. Het dynamische wear-algoritme garandeert dat data program- en erase-cycli gelijkmatig worden verdeeld over alle blokken binnen de NAND flash. Het algoritme is dynamisch omdat het elke keer wordt uitgevoerd wanneer de data in de schrijfbuffer van de schijf worden geschreven naar het flash-geheugen. Dynamische wear levelling alleen kan niet garanderen dat data met dezelfde snelheid worden verdeeld over alle geheugenblokken. In sommige gevallen worden data voor langere tijd of onbepaalde tijd naar het flashgeheugen geschreven en daarin opgeslagen. Waar andere blokken actief worden gewisseld, gewist en gepoold, blijven deze blokken inactief in het wear levelling-proces. Om te zorgen dat alle blokken met dezelfde snelheid worden 'ge-wearleveld', wordt een tweede wear-levelling algoritme gebruikt, aangeduid als statische wear levelling. Statische wear leveling richt zich op de blokken die inactief zijn en waarin data zijn opgeslagen.
Dell SSD-schijven bevatten zowel statische als dynamische wear leveling-algoritmen om ervoor te zorgen dat de NAND-blokken gelijkmatig worden gebruikt voor een langere levensduur van de SSD.
Over-provisioning
Over-provisioning verbetert:
- Schrijfprestaties en IOPS
- Betrouwbaarheid