Bevezető
Bizonyára sokak számára ismerősen csenghet egy napjainkban rendkívül populáris és sikeres új technológia az SSD (solid state drive - szilárdtest-meghajtó). Ezek az eszközök nagyban megkönnyítik, és felgyorsítják a számítógép-használatot; gyakorlatilag új élet lehelhető egy öregedő konfigba egy SSD személyében. Szerverparkokban is nagy hasznát veszik, hiszen jóval gyorsabb adatelérést tesznek lehetővé, mint a hagyományos merevlemezek.
Emiatt, és az egyre növekvő elterjedtség miatt szeretnék egy komolyabb áttekintést nyújtani az ezen eszközökben alkalmazott technológiákról, a két szilárdtest-meghajtó közötti különbség okairól.
A cikkben kitérek a merevlemezekkel történő összehasonlításra, a technológiai különbségekre; az SSD-k alapvető felépítésére; az SSD-kben alkalmazott különböző technológiákra (pl.: Garbage Collection, Wear Leveling, TRIM, Over Provisioning, alignálás; SLC, MLC, TLC, aszinkron és szinkron NAND chip…); ill. szeretnék szót ejteni a notebook-okban nagy jövőre számító M.2 csatolóra, ill. a Samsung 3D V-NAND fejlesztésére.
Mire jó? SSD vs HDD
Az SSD-k a hagyományos tányéros merevlemezek kiváltására születtek; gyakorlatilag minden tulajdonságában technológiailag jobbnak tekinthetőek a winchestereknél.
A merevlemezeket mágnesezett, folyamatosan forgó lemezek alkotják (általában 5400 vagy 7200 fordulatot tesznek meg percenként), melyekről egy-egy (alul és felül is van egy) fej olvassa le az adatokat, hihetetlen pici, 1 nanométeres távolságban a korongtól.
Az SSD ezzel szemben nem tartalmaz mechanikai alkatrészeket, működése tisztán elektromos jellegű. Ebből adódik a legtöbb előnye a winchesterekhez képest, hiszen nem tartalmaz mozgó alkatrészt.
Ezek az előnyök a teljesség igénye nélkül:
• Jóval gyorsabb működés [mind a várakozási időket, mind az írási/olvasási időket tekintve]
• Alacsonyabb fogyasztás
• Alacsony hőtermelés
• Mechanikai rezgés (zaj) hiánya
• Kis méret és tömeg
• Széles működési hőmérséklet-tartomány (merevlemezeknél ez 5-55°C; SSD-knél: -40-85°C)
• Nem érzékeny a mechanikai rezgésekre, a merevlemezekkel ellentétben. Azoknál ugyanis van egy bizonyos határfrekvencia, amivel rezgetve a merevlemezt a fejek „belekarcolhatnak” a tányérokba. [LINK]
Természetesen, mint minden technológiának, ennek is megvannak a hátrányai:
• A NAND-típusú szilárdtest-meghajtóknál az újraírások száma korlátozott, egy idő után ezek az eszközök „elkopnak”. A jelenség oka, hogy az SSD-k cellái minden írás-olvasás ciklus során gyakorlatilag vesztenek élettartamukból; a szilícium kötései elkezdenek fellazulni, legközelebb pedig még nagyobb feszültséget igényel a programozásuk, ami csak ront a helyzeten. Habár létezik még mindig ez a probléma, de a különböző fejlesztések miatt, átlagos felhasználás során egyre kevésbé zavaró a jelenség.
• Jelenleg jóval drágább a gyártás, a winchesterekhez képest.
Kétféle technológia
Alapvetően kétfajta SSD létezik, az egyik DRAM, a másik flash (NAND) chipekre épít.
• DRAM: Ez a technológia talán kevesek számára ismert, hiszen otthoni használatra nem igazán hatékony. Ez a DRAM technológia alapvetése miatt van így, mivel ezek felejtő memóriák, vagyis, áramellátás hiányában törlődik róluk minden adat. [Ugyanúgy, ahogy a számítógépünkben lévő RAM chipeknél]. Az ilyen eszközöket leginkább hatalmas sebességük, és viszonylagos egyszerű felépítésük miatt kedvelik a szerverparkokban, de áruk rendkívül magas NAND-os társaikhoz képest is.
• Flash: Ezek már nem felejtő memóriákra építenek, gyakorlatilag ugyanolyan egységek találhatók meg az effajta SSD-kben, mint a pendrivejainkban. A technológia sebessége jóval elmarad a DRAM mögött, a tárolók szervezése is jóval bonyolultabb annál, és sajnos itt jelentkezik a már említett „elkopás” jelensége: egy idő után használhatatlanná válnak a memóriacellák. De mindezen hátrányok ellenére kárpótol minket a sokkal emberbarátibb árcímke, és a nem felejtő memória előnye. A cikk további részében a flash alapú SSD-kkel foglalkozom.
Vezérlő
Alapvetően annyi mondható el a flash-alapú SSD-ről, hogy áll egy vezérlőből, NAND chipekből, és a gyorsítótárból (ez valamilyen DDR-típusú DRAM memória általában).
Először a vezérlőre jellemző technológiákról beszélnék.
A vezérlő feladata alapvetően az, hogy koordinálja az SSD-re kiírandó adatokat, hogy azok mégis hol helyezkedjenek el. Ez úgy értendő, hogy a párhuzamos adatfeldolgozás miatt egy egybefüggő fájl írásakor a bitek több különálló NAND chipre kerülhetnek.
A vezérlő további feladata lehet az adatok titkosítása (ez opcionális funkció) és a Garbage Collection. Ezen funkció magyarázatához azonban az SSD-k alapvető működését kell megértenünk. Szilárdtest-meghajtóról csak blokkokat tudunk olvasni, melyek általában 4 kB-os page-ből állnak (átlagban egy blokk 512 kB = 128 * 4 kB). Íráskor előbb be kell olvasnunk az adott blokkot. Beolvasás után bizonyos page-ek felülírható státuszt kapnak (azok, melyeket mi korábban „töröltünk”; ez úgy értendő, hogy a törlés nem történik meg azonnal, hanem ezen ciklus részeként!); azokat, melyekre még szükség van, egy üres blokkba vissza kell írnia a vezérlésnek. Ez az egész folyamat érthetően borzasztóan pazarló, ezért is szükséges a nem használt területek „takarítása”, a Garbage Collection.
Ezen a problémán sokat segíthet a TRIM nevű technológia, melyet a vezérlőnek támogatnia kell. (Valójában nemcsak az SSD-nek, hanem az operációs rendszernek, és az alaplapi drivernek is támogatnia kell!)
A TRIM olyan SATA-utasítás, mely közli a vezérlővel, hogy a kijelölt adat véglegesen törölhető. Ekkor nem lesz szükséges az előbbiekben ismertetett igen nehézkes, és lassú olvasási-törlési-írási műveletre, hanem a TRIM parancsot az eszközünk azonnal végrehajthatja, egyből törölve az adott cellákat. Nyilván, abszolút jogosan merülhet fel az olvasóban a gondolat, hogy valójában a TRIM funkció használata gyakorlatilag csökkenti az SSD élettartamát; ezen állítással pedig nem is nagyon lehet vitatkozni, mert gyakorlatilag ez a technológia hátránya. Viszont sebességben meghálálja a kellemetlenséget.
Az SSD-k elhasználódásáról már ejtettem pár szót. Felmerült a logikus igény arra, hogy az SSD meghajtónk teljes területe egyszerre használódjon el; ami ha belegondolunk még mindig sokkal jobb, mint ha két bekapcsolás között 10% kapacitást veszítünk, majd egy hónap múlva megint 10%-ot, és így tovább… Ennél valóban jobb, ha egyenletesen használódik el az összes cella.
Ezt hivatott megvalósítani a Wear Leveling. A Wear Leveling gyakorlatilag úgy rakosgatja állományainkat a NAND chipek területén, hogy mindenhol ugyanolyan legyen a „kopás” mértéke
Kétféle megoldás létezik a dinamikus és a statikus Wear Leveling.
A dinamikus Wear Leveling esetében a vezérlő, csak a dinamikusan, folyton változó területet gondozza, az operációs rendszer fájljaihoz, vagy az állandó állományainkhoz sosem nyúl. Ez sajnos félmegoldás, hiszen a dinamikusan használt terület hamarabb fog „elkopni”, jókora tárhelycsökkenést okozva.
A statikus Wear Leveling ezzel szemben az egész SSD területét mozgatja, ügyel arra, hogy az összes cella egyszerre öregedjen el. Nyilván mindenki számára világos, hogy a Wear Leveling terhet is ró az előnyei mellett a meghajtónkra, hiszen gyakorlatilag folyamatosan mozgatja rajta az adatokat; csökkentve ezzel a sebességet és az élettartamot. De így legalább egyszerre válik írhatatlanná a teljes lemezünk.
Az Over Provisioning is egy gyakran használt technológia az SSD-k világában. A fizikailag elérhető maximális tárkapacitás egy bizonyos részét (7-28%) lefoglalja a vezérlő a hibás blokkok cseréjére, TRIM parancs futtatására. Bizonyos vezérlőknél ez a beállítás paraméterezhető, ill. ki is kapcsolható. De fontos, hogy ez a tárhelycsökkenés nem keverendő össze a GB és a GiB közötti konverzióval! [LINK]
Fontosnak tartok még néhány szót ejteni SSD-lemez esetében az alignálásról. Egy merevlemez partícionálásakor az MBR-nek szükséges 31,5 kB-nyi helyet hagynunk. (Akit érdekel, hogy pontosan miért, vagy, hogy mi ez; az itt olvashat utána: [LINK]) Mint említettem az SSD legkisebb írható egysége a page (lap), mely 4 kB-os méretű, és mivel 31,5 kB-nál kezdődik a partíciónk, így sok esetben egy 4 kB-os adat kiírása miatt több page-t is igénybe kellene vennie a vezérlőnknek. A megoldás erre az, hogy az MBR méretét 4096-tal (~ 4 kB) oszthatóvá kell tennünk. Akit a gyakorlati megvalósítása érdekel, az itt tud utána olvasni: [LINK]. De vigyázat: alignálás utólag csak az adatok elvesztésével oldható meg!
NAND chipek
A NAND chip gyakorlatilag olyan nem felejtő memória, mely áramellátás hiányában is megőrzi a memóriatartalmát.
Az SSD meghajtók között valójában a legnagyobb különbséget ezen egységek tulajdonságai jelentik, ezért igen fontos, hogy megértsük a többféle NAND közötti különbséget.
Bitsűrűség szerint beszélhetünk:
• Single-Level-Cell (SLC)
• Multi-Level-Cell (MLC)
• Triple-Level-Cell (TLC)
típusú NAND-okról. A különbséget az jelenti, hogy egy cellában hány bitet képes tárolni az adott chip. Az SLC egyetlen bitet képes tárolni, melyhez kétféle feszültségérték tartozik, egy magas és egy alacsony (0 és 1). MLC-nél már két bit tárolható, ám a kiolvasáshoz 4 feszültségérték szükségeltetik. (00 01 10 11). A TLC chipeknél három bit tárolható, ám itt már 8 feszültségi szinttel kell számolnunk (000 001 010 100 011 101 110 111).
Igen ám, de az elektronika számára sokkalta könnyebb meghatározni, hogy a magas vagy alacsony feszültségről van szó (SLC), mintha egy nyolc felosztású skálát kellene megvizsgálnia. Így a legkönnyebben az SLC-típusú NAND-okat tudja olvasni az elektronika, tehát messze ezek működnek a legnagyobb sebességgel. Illetve további óriási előny, hogy az SLC bírja a legtöbb programozási ciklust is elviselni. Ezt az okozza, hogy pl. a TLC esetében a szilícium kopása miatt a 8-as felosztású skálán sokkal nehezebben tudja megkülönböztetni a vezérlő a feszültségértékeket, mint az SLC-nél (ahol a két feszültségszint között sokkal nagyobb az eltérés!).
Felmerül a kérdés, hogy akkor mi a TLC létjogosultsága?
A válasz nagyon egyszerű: olcsóbb. Azonos területen nagyobb tárkapacitás, vagy azonos tárkapacitás kisebb területen érhető el vele. Ezen kívül gyakorlatilag minden tulajdonságában gyengébb az MLC-nél és az SLC-nél.
A NAND chipeket egy további módon is csoportosíthatjuk, méghozzá az alapján, hogy szinkron vagy aszinkron elven működnek.
Az aszinkron NAND-okat nem vezérli állandó órajel, ami nyilvánvalóan a fogyasztásra jótékony hatással lesz. Az egység sebességének maximuma 50 MB/s körül alakul.
Ezzel szemben a szinkron NAND-okat állandó órajel vezérli, ill. itt jelen van a DDR memóriáknál használatos DQS-impulzus. Ezzel a technikával az órajel a felfutó és lefutó élén is szállít információt, tehát egy olvasási-írási művelet elvégezhető egy jelfolyamon belül is. Gyakorlatilag ezzel a technikával azonos órajel mellett kétszer annyi művelet elvégzésére van lehetőségünk! A szinkron NAND sebességének maximumértéke 200 MB/s környékén található.
M.2 csatoló
Fontosnak gondolom szót ejteni erről a valószínűleg nagy jövő előtt álló bővítőhelyről. Az M.2 vagy más néven NGFF (Next Generation Form Factor) egy olyan univerzális bővítőhely (univerzális alatt azt értjük, hogy a csatoló nem csak SSD fogadására alkalmas, hanem egyéb, a szabványnak megfelelő bővítőkártyákat is tud kezelni), mely gyakorlatilag az mSATA leváltására született.
A csatolót valójában a notebookok által gerjesztett igény szülte, ugyanis igen kis méretben kellett megoldani, hogy megfelelő teljesítményű SSD hozzáadható legyen egy notebookhoz. A szabvány 22 milliméterben köti meg az eszközök szélességét, a hosszal azonban játszhatnak a gyártók. Az eszközök adatlapján a megnevezésből ki is derül a hossz, pl.: M.2 2260 egy 22x60 milliméteres meghajtót jelöl. Erre érdemes figyelni vásárlás előtt!
Kétféle M.2 csatoló létezik: az egyik SATA alapú, a másik PCI Express-szen keresztül kommunikál.
A különbség a két megoldás között, hogy a SATA csatoló, valójában csak egy PCI Express sávon cserélhet adatot, tehát elméleti sebessége igen limitált (gyakorlatilag az mSATA elméleti maximumával egyenlő): 6 Gbps (750 MB/s).
Ezzel szemben a PCI Express-típusú csatolóval akár 31,52 Gbps (3940 MB/s)-os sebesség is elérhető, amennyiben 4 darab PCI Express 3.0 sávot köt be az adott alaplap gyártója. Erre valójában nem köteles, tehát léteznek 2 sávos csatolók is, ebben az esetben az elméleti maximális sebesség feleződik.
(Jelenleg egyébként a helyzet még ennél is jóval bonyolultabb. Az Intel ugyanis kikötötte, hogy az M.2-es aljzatnak a PCH-hoz kell kapcsolódnia, így csak két darab 2.0 PCI Express sávot lehet a számára kiosztani, ami nyilván nem ideális. De vannak módok, ennek a kikötésnek az áthágására is, erről többet megtudhattok az alábbi tesztből, ahol az Asrock az alaplapján figyelmen kívül hagyta az Intel ajánlását: [LINK])
A két csatoló közötti különbség ránézésre megmondható az adott SSD-ről: a SATA-s megoldásokon kettő, a PCI Express-típusú eszközökön egy bevágás van.
Csak azért, hogy ne legyen túl könnyű az életünk; a PCI Express-szen keresztül működő M.2-es SSD-k is csoportosíthatóak aszerint, hogy AHCI-n vagy NVMe-n keresztül kommunikálnak a processzorral. Az AHCI még a szabványos SATA-utasítások és a merevlemezek korának szabványa, ugyan használhatóak rajta (és az esetek 99%-ban jelenleg is ezt használják még) szilárdtest-meghajtóink, de az NVMe segítségével jóval hatékonyabb működést érhetünk el.
Az NVMe (Non-Volatile Memory Host Controller Interface) specifikusan a PCI Express segítségével kommunikáló SSD-khez lett kifejlesztve. Kihasználja ezen eszközök alacsony késleltetését, és nagyszerű párhuzamos teljesítményét; ill. a protokoll jóval energiatakarékosabb működést tesz lehetővé. A jövő SSD meghajtói mindenképp ezen a felületen keresztül fognak számítógépünkkel kommunikálni.
3D V-NAND
Mindenképp a végére szerettem volna hagyni, elvégre ez a leginkább jövőbe mutató technika most az SSD-k piacán.
Ez pedig nem más, mint a 3D V-NAND, mely a Samsung 850 PRO jelzésű szilárdtest-meghajtójával lépett be a piacra.
De ahhoz, hogy az új fejlesztést megérthessük, először szót kell ejtenünk a litográfiáról. Ez az az eljárás, amivel manapság a CPU-kat, GPU-kat, ill. NAND chipeket is készítik a vállalatok. Magáról a műveletről nem nagyon szeretnék beszélni, lévén, hogy rendkívül bonyolult, mindenesetre egy rövid Wikipedia cikket idelinkelek: [LINK]
A mi szempontunkból a lényeg mindössze annyi, hogy minél alacsonyabb csíkszélességen vagyunk képesek áramköröket nyomtatni, NAND-ok esetében annál inkább jobb lesz a cella-, bitsűrűség. Magyarán szólva, a kisebb csíkszélesség hozománya a kompaktabb kivitel lesz, ugyanakkora chipre több cellát zsúfolhatunk.
A vállalatok manapság valahol 20 nm alatt járnak, de ilyen egyszerűen a továbbiakban már nem tudnak haladni. Ennek oka egyrészről, hogy a csíkszélesség csökkentése 20 és 10 nm között sokkalta nagyobb befektetést igényel (pénz és technika megoldások terén is), mint mondjuk 30 és 20 nm között; másrészről, ha tovább akarják csökkenteni a csíkszélességet, úgy egyre inkább megnő az interferencia, a cellák közötti „áthallás” lehetősége.
Erre a problémára találtak megoldást a Samsung mérnökei, gyakorlatilag kilépve a „2D-s” planáris NAND chipek univerzumából. Elsőként a 3D NAND-ról kell szót ejtenünk, ahol a Samsung először vezette be a CTF gyártástechnológiát. A gyakorta használt floating gate NAND tranzisztorok esetén a töltést egy izolált vezetőréteg tartalmazza, a CTF-nél azonban egy szílicium-nitrid szigetelőréteg segítségével „csapdába esnek” az elektronok. A technológia legjelesebb előnye, hogy rendkívül megnöveli a NAND chip strapabíróságát.
A planáris NAND-ok problémáit a Samsung a nagyvárosok problémáival hasonlította össze. Ahogy egy város sem tud egy idő után horizontálisan terjeszkedni (mert egyszerűen eléri a városhatárt), úgy egy chipet sem lehet a végtelenségig növelni, mivel az az egekbe emeli a gyártásköltségeket. Viszont a nagyvárosokban rájöttek, hogy vertikálisan nincs semmi az útjukban, szabadon terjeszkedhetnek az ég felé. Valami ilyesmit csinált a Samsung is, csak éppen úgy, hogy a chip vertikális paraméterei SEM nőttek meg! Ez úgy lehetséges, hogy különleges levilágítási (/litográfiai) eljárásokkal marattak bele a szilíciumba, így a chip semmilyen paramétere nem változott.
A mérnökök még tovább mentek, és speciális hengerszerű felépítésű tranzisztorokat építettek egymásra, melyeket a TSV technológiával összekapcsolva létrejött (először egy 24 rétegű) a Samsung 850 PRO-ban is használt 32 rétegű NAND chip, melyről szokás úgy beszélni, mint a valaha legyártott legstrapabíróbb MLC chip. És mindezt úgy, hogy a chip mindössze 42 nm-en kerül nyomtatásra! Ehhez szükség volt még egy a processzorgyártásban régóta használt technikára a HKMG-re, mely segítségével az alkalmazott szigetelőanyagok képességei nagymértékben feljavíthatóak, így növelve a NAND strapabíróságát, és elősegítve a szorosabb elhelyezést.
Azt hiszem, ezek után senki számára nem okoz meglepetést, hogy a Samsung jelenleg nagyjából olyan pozícióban van az SSD-k piacán, mint az Intel a processzorokén… A koncepciójuk nem csak zseniális, hanem a gyakorlatban is jól működik.
Végszó
Remélem tudtam segíteni ezzel a cikkel eligazodni az SSD-k kissé kusza világában, ill. felkeltettem a figyelmet ezekkel az úttörő technológiákkal kapcsolatban.
Ha nem voltam valahol érthető, kérem, jelezzétek felém! Minden visszajelzést, kritikát szívesen fogadok!
Források:
• PROHARDVER!
• Wikipedia (EN / HU)
• iPon.hu
• PcWorld (EN / HU)
• Samsung.com
Faltum Dániel