Výhody SSD pamäťových médií sú známe snáď každému – vysoké rýchlosti čítania a zápisu, takmer neexistujúca prístupová doba, nízka spotreba, žiadne pohyblivé časti... SSD však majú aj pár nevýhod, o niekoľkých si povieme v krátkom článku.
Prečo k nemu dochádza si vysvetlíme na malom príklade.
SSD pozostávajú z pamäťových buniek tvorených 4kB stránkami usporiadanými v 512kB blokoch. Zatiaľ čo čítať a zapisovať sa dá každá veľkosť dát - teda od najmenších 4kB, pri prepise to tak nie je. Mazanie je možné realizovať iba nad celým, 512kB blokom.
Ak je teda blok prázdny (stav nového SSD), dáta sa zapisujú rýchlo - takou rýchlosťou, ako udáva výrobca v špecifikáciách. Akonáhle sa však SSD začne používať, dáta sa zapisujú, presúvajú, mažú a teda v niektorých blokoch ostávajú "neplatné" dáta - dáta ktoré sa z operačného systému vidia ako zmazané, no v pamäťovej bunke sú stále prítomné až do ich prepísania. V súčasnosti totiž operačné systémy pracujú s SSD rovnako ako s HDD - teda dáta skutočne nemažú, iba ich označia ako neplatné a je možné ich prepísať novými a zatiaľ čo u HDD nie je problém prepísať aj najmenšiu pamäťovú časť, u SSD treba prepisovať celý blok. Výnimku tvorí nový Windows 7, ktorý automaticky vypína súčasti ako defragmentácia a Windows ReadyBoost).
Ak sa teraz majú zapísať do bloku čiastočne obsadeného neplatnými údajmi nové údaje (ktorých veľkosť je väčšia ako voľné miesto popri neplatných), musia sa najprv premazať tie neplatné. Ale keďže mazať sa dá iba celý blok, musí sa táto operácia vykonať nad 512kB pamäťovým priestorom. Do vyrovnávacej pamäte sa načíta obsah celého bloku, tu sa vymažú neplatné dáta a pridajú sa zapisované, a toto sa zapíše späť do bloku. Ako je zrejmé - proces načítaj-uprav-zapíš trvá podstatne dlhšie ako proces zapíš do prázdneho bloku na novom SSD.
Uvediem malý, veľmi zjednodušený príklad opisovanej situácie.
Predstavme si, že máme SSD s kapacitou 8 pamäťových buniek, napríklad po 4kB, teda spolu 32kB. Z SSD sa dá čítať rýchlosťou 4kB/s a zapisovať 2kB/s. Sú to nereálne a veľmi zjednodušené parametre, ale pre náš účel postačia.
Situácia nového SSD, 8 prázdnych buniek:
Užívateľ teraz chce zapísať napríklad textový súbor o veľkosti 8kB, operačný systém vyšle požiadavku, radič SSD ju spracuje a zapíše textový súbor do prvých dvoch buniek:
Keďže boli bunky voľné, zápis prebehol štandardnou rýchlosťou 2kB/s, čo znamená 8kB dát za 4 sekundy.
Ako ďalšiu vec chce užívateľ zapísať fotografiu o veľkosti 20kB. 20/4kB=5, zaplní sa teda 5 ďalších buniek:
Zápis opäť do prázdnych buniek plnou rýchlosťou 2kB/s, teda 20kB za 10 sekúnd.
Teraz sa rozhodol užívateľ že textový súbor už nepotrebuje a teda ho vymaže. Operačný systém vyšle príkaz na mazanie súboru, ale dáta sa nevymažú, iba označia ako neplatné a fyzicky sú stále prítomné.
Ďalšia požiadavka od užívateľa je na uloženie PDF súboru o veľkosti 12kB. Predtým zo svojho SSD „zmazal“ textový súbor, a teda má dostatok miesta na uloženie nového PDF-ka. Operačný systém vyšle pokyn na zápis 12kB veľkého súboru, radič SSD tento pokyn spracuje. Zistí ale, že má k dispozícií iba jednu voľnú 4kB bunku a dve bunky s neplatnými dátami. Musí teda tieto neplatné dáta zmazať/prepísať. A tu nastáva problém – mazať/prepisovať sa dá iba celý blok, nie samostatné bunky. Teraz sa musí celý blok načítať do pamäte cache, tu sa odstránia neplatné dáta zo zmazaného textového súboru, doplnia sa platné dáta z PDF súboru a toto všetko sa zapíše späť do pamäťových buniek bloku:
Keby boli bunky voľné, alebo by bolo možné ich priamo prepisovať, celý proces by trval 12kB/2kB/s = 6 sekúnd. Keďže sa však musí vykonať oveľa zložitejšia operácia, trvá jednoduché ukladanie súboru teraz oveľa dlhšie – čítanie celého bloku 32kB / 4kB/s = 8 sekúnd, + zápis 32kB / 2kB/s = 16 sekúnd, teda spolu 24 sekúnd. A to sme ešte nerátali čas potrebný na operácie v cache pamäti.
Tento problém sa niekedy rieši aj tak, že sa všetky nové dáta jednoducho zapisujú do nových, prázdnych blokov s plnou rýchlosťou, no po čase aj tento spôsob narazí na limity kapacity SSD. Vtedy aj pri napr. 70% obsadení SSD začnú rýchlosti zápisu výrazne klesať. Nutné je teda iné riešenie.
Tým riešením je tzv. "Garbage Collection", alebo v doslovnom preklade "zbieranie odpadkov". Tento proces, ktorý má na starosti procesor (radič) SSD, aktívne vyhľadáva a odstraňuje nepotrebné dáta v blokoch, ktoré môžu neskôr spomaľovať rýchlosti zápisu. Toto sa deje v čase, keď nie je SSD v záťaži, teda keď sa aktívne nepoužíva.
Práve túto technológiu teraz začína implementovať napríklad firma OCZ v spolupráci s výrobcom SSD radičov Indilix. Pre všetky série SSD OCZ Vertex prinesie nový firmware funkciu Garbage Collection. Na serveri HotHardware previedli aj test tejto funkcie:
Na grafe vľavo je vidno priebeh rýchlosti čítania a zápisu na novom SSD, vpravo je stav po určitej dobe používania. Ako je zrejmé - rýchlosti výrazne klesajú.
Po aplikovaní nového firmware sa však situácia po niekoľkých minútach nečinnosti začínala zlepšovať, pričom po dlhšej dobe (cca hodina) sa rýchlosti takmer úplne obnovili na stav nového SSD:
Ako je z týchto prvých testov vidno, Garbage Collection skutočne funguje a má svoje opodstatnenie. Pokým operačné systémy a firware SSD nezačnú podporovať príkaz TRIM, bude to jediná z technológií na ochranu pred spomaľovaním SSD.
Prečo k nemu dochádza si vysvetlíme na malom príklade.
Realizácia príkazu TRIM
Aj keď TRIM zmierňuje tento problém, nerieši ho úplne. Napríklad pri ukladaní zmien v dokumente bude stále nutné vykonať celý proces
načítaj-uprav-zapíš.
Ak ste vlastníkom SSD, určite čo najskôr spravte upgrade na chystaný Windows 7 a sledujte či a kedy výrobca vášho SSD vydá aktualizáciu pre podporu príkazu TRIM.
Ďalší z problémov SSD je ich životnosť. Každá NAND pamäťová bunka má svoj životný cyklus, ktorý pozostáva z určitého počtu zápisov do nej, kým sa neznehodnotí do takej miery, že sa stane nefunkčnou. Tento problém tu vždy bol a vždy aj bude. Riešiť sa (zatiaľ) nedá nijak, dá sa jedine „obchádzať“ - predlžovať životnosť celého SSD – a to pomocou Wear Levelling-u.
Wear levelling je technika, ktorá po určitom čase presúva údaje z jednej pamäťovej bunky na ďalšiu. Ak určitá bunka obsahuje zapísané dáta s ktorými sa „nehýbe“ a do okolitých sa opakovane zapisuje, počet zápisov logicky stúpne u ostatných a u jednej s pevnými dátami ostáva konštantný. Aby sa tento počet vyrovnával, presunú sa dáta z menej používanej bunky na viac používanú – tej sa nateraz zastaví počet zápisov, zatiaľ čo pôvodná bunka sa začne využívať na nové prepisovanie. Ideálne by tak všetky bunky mali byť rovnako „staré“.
Takto sa záťaž prepisovania buniek rozloží postupne na celé pamäťové médium a nehrozí tak, že napríklad oblasť buniek na „začiatku“ SSD bude namáhaná prepismi viac ako zvyšok.
Pokiaľ napríklad klasické pevné disky HDD pri požiadavke z operačného systému na zápis na začiatok platne tieto dáta skutočne na začiatok aj zapisuje, a to aj opakovane a bez ovplyvnenia životnosti, u SSD to je práve naopak – dáta sa zapíšu vždy na iné miesto, aby sa „nevypaľovali“ stále tie isté bunky.
Jedným z „vedľajších účinkov“ Wear levelling-u je to, že okrem radiča nevie nikto, kde sa práve tie ktoré dáta nachádzajú. Zatiaľ čo na klasickom pevnom disku HDD vieme presne identifikovať umiestnenie určitých dát, u SSD sa vďaka Wear levelling-u postupne presúvajú.
Aj napriek použitiu wear levelling-u sa skôr či neskôr určité bunky stanú nefunkčnými. A keďže je u NAND čipov v SSD obmedzenie, že mazať/prepisovať sa dá iba celý, 512kB veľký blok, poškodením jednej aj 4kB veľkej stránky stratíme ihneď 512kB priestoru.
Počas „morálneho“ životného cyklu SSD tento jav možno nespozorujeme, keďže výrobcovia nechávajú určitú kapacitu skrytú ako záložnú práve pre tento prípad, neskôr by sa však objavilo postupné zmenšovanie kapacity.
Pre záujemcov môžem ešte na záver odporučiť jednu videoprezentáciu, ktorá pojednáva práve o SSD a tiež o záchrane dát z nich. Celá je uložená na serveri Youtube a má 6 častí. Pre tých, ktorým angličtina nerobí problém, to bude určite prospešne strávená hodinka...a aspoň si oddýchnete od všetkých tých funny videí :-)
(za tip a konzultáciu ohľadom témy ďakujem Snake-ovi)
Garbage Collection
Typickým problémom všetkých dnešných SSD je zníženie ich výkonu po určitej dobe používania. Tento problém je spojený so samotnými základmi fungovania SSD a ich stavby. Prvý krát na to upozornili redaktori serveru PCPerspective, keď objavili radikálne zníženie výkonu u SSD od Intel-u po určitej dobe používania. Intel už odvtedy vydal aktualizáciu firmware, ktorá tento problém rieši.Prečo k nemu dochádza si vysvetlíme na malom príklade.
SSD pozostávajú z pamäťových buniek tvorených 4kB stránkami usporiadanými v 512kB blokoch. Zatiaľ čo čítať a zapisovať sa dá každá veľkosť dát - teda od najmenších 4kB, pri prepise to tak nie je. Mazanie je možné realizovať iba nad celým, 512kB blokom.
Ak je teda blok prázdny (stav nového SSD), dáta sa zapisujú rýchlo - takou rýchlosťou, ako udáva výrobca v špecifikáciách. Akonáhle sa však SSD začne používať, dáta sa zapisujú, presúvajú, mažú a teda v niektorých blokoch ostávajú "neplatné" dáta - dáta ktoré sa z operačného systému vidia ako zmazané, no v pamäťovej bunke sú stále prítomné až do ich prepísania. V súčasnosti totiž operačné systémy pracujú s SSD rovnako ako s HDD - teda dáta skutočne nemažú, iba ich označia ako neplatné a je možné ich prepísať novými a zatiaľ čo u HDD nie je problém prepísať aj najmenšiu pamäťovú časť, u SSD treba prepisovať celý blok. Výnimku tvorí nový Windows 7, ktorý automaticky vypína súčasti ako defragmentácia a Windows ReadyBoost).
Ak sa teraz majú zapísať do bloku čiastočne obsadeného neplatnými údajmi nové údaje (ktorých veľkosť je väčšia ako voľné miesto popri neplatných), musia sa najprv premazať tie neplatné. Ale keďže mazať sa dá iba celý blok, musí sa táto operácia vykonať nad 512kB pamäťovým priestorom. Do vyrovnávacej pamäte sa načíta obsah celého bloku, tu sa vymažú neplatné dáta a pridajú sa zapisované, a toto sa zapíše späť do bloku. Ako je zrejmé - proces načítaj-uprav-zapíš trvá podstatne dlhšie ako proces zapíš do prázdneho bloku na novom SSD.
Uvediem malý, veľmi zjednodušený príklad opisovanej situácie.
Predstavme si, že máme SSD s kapacitou 8 pamäťových buniek, napríklad po 4kB, teda spolu 32kB. Z SSD sa dá čítať rýchlosťou 4kB/s a zapisovať 2kB/s. Sú to nereálne a veľmi zjednodušené parametre, ale pre náš účel postačia.
Situácia nového SSD, 8 prázdnych buniek:
Ako ďalšiu vec chce užívateľ zapísať fotografiu o veľkosti 20kB. 20/4kB=5, zaplní sa teda 5 ďalších buniek:
Teraz sa rozhodol užívateľ že textový súbor už nepotrebuje a teda ho vymaže. Operačný systém vyšle príkaz na mazanie súboru, ale dáta sa nevymažú, iba označia ako neplatné a fyzicky sú stále prítomné.
Tento problém sa niekedy rieši aj tak, že sa všetky nové dáta jednoducho zapisujú do nových, prázdnych blokov s plnou rýchlosťou, no po čase aj tento spôsob narazí na limity kapacity SSD. Vtedy aj pri napr. 70% obsadení SSD začnú rýchlosti zápisu výrazne klesať. Nutné je teda iné riešenie.
Tým riešením je tzv. "Garbage Collection", alebo v doslovnom preklade "zbieranie odpadkov". Tento proces, ktorý má na starosti procesor (radič) SSD, aktívne vyhľadáva a odstraňuje nepotrebné dáta v blokoch, ktoré môžu neskôr spomaľovať rýchlosti zápisu. Toto sa deje v čase, keď nie je SSD v záťaži, teda keď sa aktívne nepoužíva.
Práve túto technológiu teraz začína implementovať napríklad firma OCZ v spolupráci s výrobcom SSD radičov Indilix. Pre všetky série SSD OCZ Vertex prinesie nový firmware funkciu Garbage Collection. Na serveri HotHardware previedli aj test tejto funkcie:
Po aplikovaní nového firmware sa však situácia po niekoľkých minútach nečinnosti začínala zlepšovať, pričom po dlhšej dobe (cca hodina) sa rýchlosti takmer úplne obnovili na stav nového SSD:
TRIM, Wear levelling
Príkaz TRIM, ktorý funguje napr. v operačnom systéme Windows 7 a u SSD ktoré to budú tiež podporovať (po aktualizácii firmware), bude pri pokyne operačného systému o zmazanie dát tieto dáta skutočne mazať, a nie iba označovať za neplatné. V podstate tak prečíta do cache všetky dáta z bloku, vymaže tie neplatné a zapíše platné späť. Blok tak bude pripravený na priamy zápis, bez nutnosti vykonávať proces načítaj-uprav-zapíš pri pokyne na zápis dát.Prečo k nemu dochádza si vysvetlíme na malom príklade.
Realizácia príkazu TRIM
Ak ste vlastníkom SSD, určite čo najskôr spravte upgrade na chystaný Windows 7 a sledujte či a kedy výrobca vášho SSD vydá aktualizáciu pre podporu príkazu TRIM.
Ďalší z problémov SSD je ich životnosť. Každá NAND pamäťová bunka má svoj životný cyklus, ktorý pozostáva z určitého počtu zápisov do nej, kým sa neznehodnotí do takej miery, že sa stane nefunkčnou. Tento problém tu vždy bol a vždy aj bude. Riešiť sa (zatiaľ) nedá nijak, dá sa jedine „obchádzať“ - predlžovať životnosť celého SSD – a to pomocou Wear Levelling-u.
Wear levelling je technika, ktorá po určitom čase presúva údaje z jednej pamäťovej bunky na ďalšiu. Ak určitá bunka obsahuje zapísané dáta s ktorými sa „nehýbe“ a do okolitých sa opakovane zapisuje, počet zápisov logicky stúpne u ostatných a u jednej s pevnými dátami ostáva konštantný. Aby sa tento počet vyrovnával, presunú sa dáta z menej používanej bunky na viac používanú – tej sa nateraz zastaví počet zápisov, zatiaľ čo pôvodná bunka sa začne využívať na nové prepisovanie. Ideálne by tak všetky bunky mali byť rovnako „staré“.
Takto sa záťaž prepisovania buniek rozloží postupne na celé pamäťové médium a nehrozí tak, že napríklad oblasť buniek na „začiatku“ SSD bude namáhaná prepismi viac ako zvyšok.
Pokiaľ napríklad klasické pevné disky HDD pri požiadavke z operačného systému na zápis na začiatok platne tieto dáta skutočne na začiatok aj zapisuje, a to aj opakovane a bez ovplyvnenia životnosti, u SSD to je práve naopak – dáta sa zapíšu vždy na iné miesto, aby sa „nevypaľovali“ stále tie isté bunky.
Jedným z „vedľajších účinkov“ Wear levelling-u je to, že okrem radiča nevie nikto, kde sa práve tie ktoré dáta nachádzajú. Zatiaľ čo na klasickom pevnom disku HDD vieme presne identifikovať umiestnenie určitých dát, u SSD sa vďaka Wear levelling-u postupne presúvajú.
Aj napriek použitiu wear levelling-u sa skôr či neskôr určité bunky stanú nefunkčnými. A keďže je u NAND čipov v SSD obmedzenie, že mazať/prepisovať sa dá iba celý, 512kB veľký blok, poškodením jednej aj 4kB veľkej stránky stratíme ihneď 512kB priestoru.
Počas „morálneho“ životného cyklu SSD tento jav možno nespozorujeme, keďže výrobcovia nechávajú určitú kapacitu skrytú ako záložnú práve pre tento prípad, neskôr by sa však objavilo postupné zmenšovanie kapacity.
Záver
Tento článok berte iba ako malé nahliadnutie na to, čo sa skutočne v SSD deje a aké sú hlavné problémy tejto technológie. Ak sa objavia iné, zaujímavé témy, určite sa im v redakcii povenujeme.Pre záujemcov môžem ešte na záver odporučiť jednu videoprezentáciu, ktorá pojednáva práve o SSD a tiež o záchrane dát z nich. Celá je uložená na serveri Youtube a má 6 častí. Pre tých, ktorým angličtina nerobí problém, to bude určite prospešne strávená hodinka...a aspoň si oddýchnete od všetkých tých funny videí :-)
(za tip a konzultáciu ohľadom témy ďakujem Snake-ovi)
Snake
matelkoxxl
prepelica
misak007
sedgar
baqq
Snake
sedgar
Snake
AmOK
misak007
sedgar
sedgar
misak007
Snake
misak007
Snake
misak007
C1cOo