Hlavní stránka Hardware Disky /CD /DVD /BR Výkon SSD disku proti klasickým HDD v reálném provozu
Výkon SSD disku proti klasickým HDD v reálném provozu
autor: Z. Obermaier , publikováno 8.12.2009
Výkon SSD disku proti klasickým HDD v reálném provozu

Každý jistě znáte recenze SSD disků proti klasickým mechanickým pevným diskům, plné grafů a tabulek. Na webu jsou tisíce srovnání, ovšem z praktického hlediska se tomuto porovnání nevěnoval snad nikdo. Náš test bude tentokrát jiný, srovnáme výkon v běžných aplikacích. Žádné grafy, ale osobní dlouhodobá zkušenost podpořená měřením.


Nejnovějším pokrokem v oblasti pamětí typu flash je technologie MLC. Všechny systémy, které jsme probírali dosud, ukládají informace pomocí přepínání mezi dvěma stavy – neutrálním a nabitým – a jedná se o jednoúrovňové buňky (single-level cell – SLC). U pamětí označovaných jako MLC jde o víceúrovňové buňky (multi-level cell), kdy každá buňka má neutrální napětí a tři různé nabité stavy, takže celkem disponuje čtyřmi stavy a dokáže tak uložit dva bity informace. Toto schéma sice umožňuje uložit více dat na jeden tranzistor – a je proto mnohem levnější – ale čtení jemněji rozlišených úrovní napětí vyžaduje přesnější měření, což je naopak pomalejší a více náchylné na chyby. Takto vyrobené flash paměti mají rovněž kratší životnost. Takže technologie SLC je vynikající, pokud jde o výkon a životnost, zatímco MLC je levnější a má větší hustotu. S tím, jak se technologie výrobních procesů stále zlepšují, rozdíl mezi výkonem a životností se mezi oběma typy stírá, zatímco nůžky mezi cenou a hustotou se rozevírají.

Výkon SSD disku proti klasickým HDD v reálném provozu

Poslední SSD pod značkou M-Systems

Vývoj se začal posouvat směrem k technologii MLC a bylo možné dosáhnout vyšších úrovní rozlišení. Klíčový pokrok jako první zaznamenala malá izraelská společnost jménem M-Systems. M-Systems vyvinula jeden z prvních flash disků typu NAND, které byly určené pro použití v odolných průmyslových a vojenských počítačích v palubních systémech tanků a letadel izraelských ozbrojených sil. Společnost M-Systems již před lety vynalezla techniky, které dokázaly ještě jemněji nastavit a měřit úrovně napětí buněk NAND a umožňovaly tak v jedné flash buňce ukládat tři bity (osm úrovní) nebo dokonce čtyři bity (16 úrovní). Tyto techniky se označovaly jako X3 a X4 a posunuly souboj cena a hustota versus rychlost a spolehlivost pamětí MLC ještě dále.

Technologie X3 a X4 firmy M-Systems jsou nyní v rukou společnosti Sandisk, která M-Systems v roce 2006 odkoupila a získala tak exkluzivní kontrolu nad patenty v arbitráži se Samsung. Konečné rozhodnutí v tomto sporu znělo, že Sandisk není vázán licenční dohodou M-Systems a Samsungu, takže nyní Sandisk a Toshiba jako partner mají nyní náskok v technologiích X3 a X4, ale jsou pozadu v oblasti výrobní technologie. Partnerství společností Intel a Micron v oboru flash pamětí s technologií X3 však postupuje dále rovněž a v dlouhodobém výhledu bude dosahování vyšších úrovní hustoty buněk průběžnou soutěží mezi výrobci, a nikoli jednostranným uspořádáním na základě dohod.

Postupující evoluce technologií permanentních pamětí od EEPROM k NOR přes NAND k MLC NAND až po paměti X3 NAND a X4 NAND ruku v ruce s vylepšováním výrobních procesů tlačí cenu za bit u produktů s polovodičovými paměťmi stále blíže cenám harddisků – a přitom si tyto paměti alespoň do určité míry zachovávají původní teoretické přednosti, pokud jde o rychlost, latenci, možnost malého provedení a odolnost. V daném prostředí je prakticky s jistotou zajištěna finální penetrace SSD disků do segmentů trhu ukládání dat, kde dosud dominují harddisky. Jedinou otázkou tak zůstává kdy a jak se tak stane.

Od čipů k zařízením: hardware a firmware SSD disků typu NAND

SSD disky nejsou složitá zařízení, jakmile je vyřešena otázka paměťových čipů. Samotné čipy jsou nanášeny ve „skupinách“ na keramický povrch, obvykle jich je v jedné skupině až osm, a jsou uspořádány na povrch desky s tištěnými spoji (PCB – printed circuit board). Komunikují s řídicím čipem, jenž zajišťuje jejich integraci do jednoho zařízení a spravuje externí rozhraní.

U tohoto typu konstrukce je fyzické provedení disku v zásadě nepodstatné. V současné době dokáže flash paměť s nejvyšší hustotou směstnat 32 GB paměti NAND na kartu MicroSD velikosti nehtu na prstu ruky – s touto hustotou je dosažení objemů srovnatelných nebo přesahujících kapacity harddisků stolních počítačů nebo notebooků triviální záležitostí a desky s tištěnými spoji mohou mít prakticky jakýkoli tvar. Skutečným oříškem jejich implementace je způsob, jakým ovladač čipy řídí, a jaké externí rozhraní používá.

Nejjednodušší možnou implementací by bylo přímé mapování. Ovladač by mapoval stránky nebo bloky flash paměti jako sektory logického disku se sekvenčním číslováním sektorů pro každý čip, předával požadavky na zápis a čtení – a to by bylo celé. Takto jednoduchý ovladač by však byl nevhodný z celé řady důvodů.

Přísloví praví: odvaha nespočívá v tom nemít strach, ale překonat jej. Harddisky se nejvíce ze všeho bojí operací vyhledávání. Kvůli rotujícím plotnám jsou latence v řádu milisekund při vyhledávání nevyhnutelné a ani v průběhu času se příliš nezlepšily. I ty nejrychlejší harddisky dokáží provést jen několik set vyhledávacích operací za sekundu, takže chod mnoha aplikací by byl právě tímto rysem limitován, pokud by nebylo dlouhých let pečlivého vývoje konstrukčních řešení a optimalizace. Každá aplikace na počítači, od renderovacích filtrů pro přehrávače médií až po souborové systémy a databázové aplikace, je vyvíjena s ohledem na minimalizaci potřeby používat vyhledávací operace a maximalizaci sekvenční povahy čtení.

Výkon SSD disku proti klasickým HDD v reálném provozu

Kontrolér SSD disku

U SSD disků je tomu jinak. Načtená stránka je načtená stránka – teoreticky bez ohledu na její umístění nebo pořadí za předpokladu, že čtení probíhá na jednom čipu. „Vyhledávací“ operace je elektrický signál, který se pohybuje téměř rychlostí světla, takže i obyčejné SSD disky mohou dosáhnout tisíců vyhledávacích operací za sekundu. Jenže situace je na hony vzdálená utopické představě „čti a zapisuj, co chceš, nijak na tom nezáleží.“ K úvaze se nabízí několik aspektů.

Přestože jsou rychlosti v rámci každého jednoho čipu relativně stejné, je nanejvýš výhodné rozprostřít čtení mezi jednotlivými čipy. Načíst deset bloků na jednom čipu trvá desetkrát déle, než načtení jednoho bloku na deseti různých čipech. Proto se dává přednost ovládacím schématům, jež sektory s návazným číslováním, které se často zapisují a čtou společně, rozdělí a umístí je na různé čipy.
Dalším problémem je trvanlivost zápisu. Mnoho operací zapisuje velmi často do určitých sektorů disku a i přes stále lepší odolnost zápisu v pamětích typu flash by tak velmi brzy mohl nastat problém. Kdyby každou minutu proběhlo sto tisíc cyklů zápisu, paměť by se opotřebovala ani ne za dva měsíce, přičemž lze snadno napsat operace, které daný sektor budou zapisovat častěji než jen jednou za minutu.

Problém  RWH

A konečně, je velmi žádoucí zapisovat úplné bloky. Vzhledem k tomu, že stránky mají velikost několik kilobyte a bloky jsou velké až jeden megabyte, mohou operace zapisující velmi malé objemy způsobit ukládání megabytů a trvat mnoho milisekund. Za nepříznivých podmínek by špatně řízené ukládací schéma mohlo srazit na kolena i nejrychlejší SSD disk kvůli přímému mapování, které by vytvářelo kalamitu velkých zápisů kvůli příkazům na čtení malých objemů dat na několika plně vytížených čipech. Za takových podmínek může počet vstupních a výstupních operací za sekundu (I/O operations per second – IOPS) klesnout z tisíců na desítky, což je jev známý jako díra náhodného zápisu Random Write Hole (RWH).

Situaci s RWH může ještě více zhoršit další problém s implementací SSD disků: nedostatečná komunikace s operačním systémem (OS). Když operační systémy „smažou“ soubory, nezapisují ve skutečnosti do příslušných sektorů nuly, ale jen data prohlásí za smazaná a jdou dál. Tento přístup je nesrovnatelně rychlejší, ale pro SSD disky představuje problém. Má-li dojít k zápisu do původní oblasti smazaného souboru, SSD žárlivě střeží svá bezcenná „smazaná“ data, a provede proto zbytečný cyklus čtení-úprava-zápis (read-modify-write – RMW). Jak disk stárne, jsou všechny dostupné sektory zaplněny útržky smazaných souborů a jeho výkonnost se může dramaticky snížit.

Z toho je zřejmé, že na algoritmu pro alokaci čtení a zápisů velmi záleží. Některé úpravy byly relativně snadné – rozdělení bloků systematicky napříč čipy, něco jako RAID 0 pro čipy NAND, byla téměř bez námahy provedená, byť nedokonalá, náprava pro vyvážení zátěže jednotlivých čipů.

Jiné úpravy byly složitější. Pokud jde o vyvážení zátěže zápisů, byla vyvinuta celá řada schémat, jak vyrovnávat zátěž při zapisování na různé bloky a tyto postupy se postupem času ještě skvělým způsobem zdokonalily, takže nyní je velmi obtížné opotřebovat SSD disk, pokud na tom nemáte chorobný zájem.

Tato schémata pracují obvykle tak, že sledují počty zápisů do každého bloku, a pokud by blok již mohl selhat, přemapují logické sektory takového bloku na nové bloky podle potřeby, ať již v rámci jiných bloků v daném svazku, nebo z rezerv nealokovaných bloků, které jsou pro tento účel vyhrazeny. Stačil jeden gigabyte NAND paměti navíc a jeden logický blok lze nyní zapisovat každou sekundu po celá léta, aniž by došlo k poruše. Trvalo však dlouho, než se tato schémata vyvinula.

Nejtvrdším oříškem je však problém díry náhodného zápisu (RWH – Random Write Hole). Byla navržena nejrůznější schémata, ale všechna se točí kolem jedné věci: když přijde velký počet malých zápisů, měly by pokud možno skončit v jednom bloku. Mezi dvě schémata řešení RWH, která jsou koncepčně nejzajímavější, je schéma přemapování podsektorů (Subsector Remap) společnosti Intel a řešení nCache společnosti Sandisk, přičemž obě volí značně odlišné přístupy.

Jak překonat RWH

Systém společnosti Intel shromažďuje malé zápisy v násobcích velikosti stránky do jednoho bloku a pak přepíše mapovací tabulku sektorů, aby se stránky spojily dohromady do jednoho logického sektoru, přestože se fyzicky nacházejí na více fyzických blocích. Ve výsledku skončí sektory, do nichž se zápisy akumulovaly, rozsekané na kousky v různých částech disku a fragmentované pro umožnění rychlejších zápisů. Vzhledem k tomu, že čtení probíhá po stránkách, na fragmentaci příliš nezáleží.

Toto schéma narazilo na problém hned při první implementaci. V průběhu času se sektory fragmentují stále více a tato fragmentace může přežít i malé soubory, které byly původně zapisovány. Jak se fragmentace stupňuje, mohou sekvenční zápisy začít vyžadovat zápis více bloků na jeden sektor spolu s cykly čtení na jejich potvrzení. Algoritmus pro řešení fragmentace byl slabý a neúčinný, takže se fragmenty hromadily. Disk X25-M se ve výsledku mohl zpomalit až na rychlost harddisku stolního počítače nebo notebooku a protože přemapování probíhalo interně, neexistoval žádný způsob, jak jej nefragmentovat.

Tyto problémy byly vyřešeny – nový firmware opravil potíže s fragmentací a nyní je disk X25-M v provedení G1 a G2 pravděpodobně nejlepším řešením pro SSD disk jako náhrady za harddisk, které je na trhu k dispozici. Řešení však přesto není úplné.

Druhé řešení je jednodušší a přímější. Nové SSD disky Sandisk pro netbooky se vyznačují řešením problému s RWH známým jako nCache, které není hardwarové, ani nepředstavuje vyspělý nový software, ale jde o softwarovou mezipaměť pro zápis (software write buffer). Malá část disku (u 64 GB verze je to 320 MB) je vyhrazena jako zóna pro nCache. Když se nahromadí malé zápisy, slučují se k zápisu do nCache, která se vyprazdňuje v okamžicích nečinnosti. Přemapovávací tabulka se vymaže do původního nefragmentovaného stavu. Čísla u tohoto řešení však mluví sama za sebe: zatímco nCache je možné zaplnit během intenzivních zápisů během jedné nebo dvou minut, její vyčištění může trvat až půl hodiny. I když tento systém může umožnit okamžité prudké zvýšení výkonnosti stolních počítačů nebo netbooků, neumožní průběžné vysoké úrovně zápisů, k jakým je navrženo řešení přemapování sektorů od Intelu.

TRIM jen pro Windows 7

Výkon SSD disku proti klasickým HDD v reálném provozu

Některá opatření pro předcházení problémům s RWH se dějí na obecné úrovni počítačového odvětví. Poslední verze specifikací rozhraní ATA umožňuje příkaz zvaný „TRIM“, jenž SSD diskům řekne, že data byla vymazána. I když data na disku zůstanou, SSD ví, že nejsou potřebná, a při jejich částečném přepisování nebude spouštět cyklus RMW (přečíst-změnit-zapsat). Výkonnost s příkazem TRIM je téměř stejně dobrá u starších i nových disků. Ve Windows 7 je podpora TRIM nativní a podporu ve Windows Vista a Windows XP je možné přidat pouze pro SSD disky značky Intel. Ostatní výrobci SSD disků vyvinuli SSD disky s podporou TRIM pro Windows 7, ale žádný nemá podporu TRIM pod dřívějšími operačními systémy. Brzy se však Windows 7 stanou nejrozšířenějším systémem mezi uživateli a tato konkrétní úprava tak bude všudypřítomná.



 
Komentáře naleznete na konci poslední kapitoly.
256 čtenářů navrhlo autorovi prémii: 113.6Kč Prémie tohoto článku jsou již uzavřené, děkujeme za váš zájem.
Tento web používá k poskytování služeb soubory cookie.