Tässä artikkelissa on tietoja SSD-asemien kulumisesta.
Yleiskuvaus
Miksi puolijohdelaitteet kuluvat?
Tässä artikkelissa käsitellään sitä, mistä flash-pohjaisten SSD-asemien rajallinen kirjoituskesto johtuu. Artikkelissa käydään läpi flash-muistin toimintaa, erilaisten flash-tyyppien välisiä eroja sekä tekniikoita, joita käytetään sen toiminnan parantamiseen.
Flash-muistilaitteesta luetaan ja siihen kirjoitetaan sivuina. Lukeminen on suhteellisen yksinkertaista – lukukomento osoitteineen annetaan ja vastaavat tiedot palautetaan. Vain tyhjennetyille sivuille voi kirjoittaa, ja siksi isäntäkoneen kirjoituskomentoihin liittyy aina flash-muistin tietojen poistokomento ennen kirjoittamista. Kirjoitus-/poistosykli kuluttaa soluja ja siten rajaa kirjoituskestoa.
NAND-flash-laitteita on kahta tyyppiä: Single-level cell (SLC) ja Mullti-level cell (MLC). SLC säilöö vain yhden tietobitin ja vaatii vain kahta jännitetasoa arvon 0 tai 1 merkitsemiseen. Tämä on NAND-tekniikkaa yksinkertaisimmillaan ja kestävimmillään. Laitteet kestävät noin 100 000 sykliä. Kun tulevat flash-sukupolvet siirtyvät aina vain pienempiin geometrioihin, kestävyys heikkenee (jotkin laitteet kestävät jo nyt 50 000 sykliä). MLC säilöö useimmiten kaksi tietobittiä ja vaatii neljää jännitetasoa arvojen 00, 01, 10 ja 11 merkitsemiseen. Solujen kuluminen on SLC:ssä ja MLC:ssä samanlaista, mutta koska useampia jännitetasoja on tarkkailtava, kestävyys on merkittävästi heikompi. MLC kestää useimmiten noin 10 000 sykliä, mutta uudemmat sukupolvet saattavat kestää vain 3 000–5 000 sykliä.
Flash-SSD koostuu useista flash-muistisarjoista, joilla saavutetaan suuret kapasiteetit. SSD-levyjen kirjoituskeston parantamiseksi käytetään erilaisia menetelmiä, joita voi hyödyntää molemmissa NAND-tyypeissä. Isäntäkoneen kirjoituskäytöt voivat kohdistua mihin tahansa, ja se saattaa aiheuttaa tiettyjen usein käytettyjen kohtien ennenaikaista kulumista. Liian kulumisen estämiseen käytetään kulumisen tasoitustekniikkaa (Wear-leveling). Kulumisen tasoitus johtaa lähes täydellisen tasaisesti koko SSD:n kapasiteetille jakautuneisiin kirjoituskäyttöihin. Kirjoitusmäärän kasvu (Write-amplification) viittaa flash-kirjoitusten määrään suhteessa isäntäkoneen kirjoitustoimintoon. Jos esimerkiksi yksi isäntäkoneen kirjoitustoiminto johtaa kahteen flash-muistin kirjoituskertaan, Write-amplification-arvo on 2. Kirjoitusmäärien kasvun vähentämiseksi käytetään ylivaraustekniikkaa (Over-provisioning), joka parantaa roskatiedonkeruun tehokkuutta ja vähentää kirjoituskertoja. Viimeisenä menetelmänä on MLC-muistien kohdalla usein hyödynnetty tekniikka, jossa kirjoitussykliin käytetään pienempiä jännitteitä. Tämä parantaa kirjoituskestävyyttä.
Vaikka SSD-aseman käyttöiän määrittäminen olisi vaikeaa, arvioiden tekemiseen on olemassa suuntaviivoja. SSD-asemissa käytetään JEDEC:n kehittämää TBW (Terabytes Written) -metriikkaa. Todellinen kirjoituskesto riippuu työkuormituksen profiilista (johon vaikuttaa esimerkiksi satunnaisuus tai peräkkäisyys, lohkon koko ja kirjoitustoiminta). TBW tuottaa arvion, mutta todellinen kesto voi vaihdella. Odotetun käyttöiän määrittämiseksi voidaan jakaa TBW odotetulla keskimääräisellä aseman kirjoitusten BW-arvolla. Tyypillisesti SSD-asemien voi odottaa kestävän yli kolme vuotta, ellei niitä käytetä erittäin vaativiin tarkoituksiin.
Kulumisen tasoitus
NAND flash -muisti on herkkää kulumaan toistuvien ohjelmointi- ja pyyhintäkertojen vuoksi, joita tehdään paljon tiedontallennuksen yhteydessä ja FTL (Flash Translation Layer) -tasoa käyttävissä järjestelmissä. Kun tietojen ohjelmointiin ja pyyhintään käytetään jatkuvasti samaa muistisijaintia, kyseinen muistin osa kuluu lopulta käyttökelvottomaksi. Siksi NAND flash -muistin käyttöikä on rajallinen. Jotta näin ei kävisi, SSD-asemissa käytetään erityisiä algoritmeja kulumisen tasoittamiseen. Kuten toiminnon nimikin sanoo, kulumisen tasoitus varmistaa, että ohjelmointi- ja pyyhintäkerrat jakautuvat tasaisesti SSD-aseman kaikkiin muistilohkoihin. Tämä estää jatkuvat ohjelmointi- ja pyyhintäkerrat samaan muistilohkoon ja lisää siten NAND flash -muistin käyttöikää.
Kulumisen tasoitus voi olla dynaamista tai staattista. Dynaaminen kulumisen tasoitusalgoritmi takaa, että tietojen ohjelmointi- ja pyyhintäkerrat jakautuvat tasaisesti kaikkiin NAND flash -muistin lohkoihin. Algoritmi on dynaaminen, koska se suoritetaan aina, kun aseman kirjoituspuskurin tiedot poistetaan ja kirjoitetaan flash-muistiin. Dynaaminen kulumisen tasoitus ei yksin riitä varmistamaan, että kaikkien lohkojen kulumisen tasoitus on samalla tasolla. Joissakin tapauksissa tiedot kirjoitetaan säilytettäväksi flash-muistissa pitkän aikaa tai toistaiseksi. Vaikka muita lohkoja vaihdetaan, pyyhitään ja lisätään varantoon aktiivisesti, nämä lohkot eivät osallistu kulumisen tasoitukseen. Jotta kaikkien lohkojen kulumisen tasoitus olisi samalla tasolla, tarvitaan toissijainen, staattinen kulumisen tasoitusalgoritmi. Staattinen kulumisen tasoitus koskee lohkoja, jotka eivät ole aktiivisia ja joihin on tallennettu tietoja.
Dellin SSD-asemat sisältävät sekä staattisia että dynaamisia kulumisen tasoitusalgoritmeja. Niiden avulla voidaan varmistaa, että NAND-lohkot kuluvat samalla tavalla, jotta SSD-aseman käyttöikä on mahdollisimman pitkä.
Ylivaraus
Ylivaraus parantaa:
- kirjoitustehoa ja IOPS-lukua
- luotettavuutta.