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.
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:
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.
Snake
matelkoxxl
prepelica
misak007
sedgar
baqq
Snake
sedgar
Snake
AmOK
misak007
sedgar
sedgar
misak007
Snake
misak007
Snake
misak007
C1cOo