Intel SSD možná nejsou až tak super, jak se může zpočátku zdát
Kapitoly článků
Intel SSD obsahují uvnitř desetikanálový řadič, který díky této paralelizaci a podpoře technologie NCQ (Native Command Queuing) schopné zpracovat něco přes 30 požadavků naráz dokáže efektivně urychlit práci s malými bloky dat, notoricky známý problém flashek a mnohými výrobci těchto zařízení s oblibou notoricky opomíjený. Díky tomu se práce s Intel SSD jeví svižná za takřka všech okolností, hlavně tedy při práci s menšími soubory/bloky dat, což by měl být jeden z hlavních taháků pro nákup Intel SSD oproti pevným diskům.
Vedle toho je tu však něco, čeho se u flash pamětí zatím tak nějak nelze zbavit, tento typ datového úložiště má totiž dán určitý počet přepisů, než odejde na věčnost. Je víceméně jedno, jak velký tento počet je, počítat se s tím musí a aby se zamezilo zápisu dat stále do jednoho a téhož místa, obsahují SSD typicky technologii, které se říká „wear leveling“. Ta zajišťuje, že každý zápis provedený na SSD jako celek bude zapsán do jeho pokud možno nejméně „opotřebovaných“ buněk. Ve skutečnosti tak vlastně nikdy nevíte, do jaké buňky (nebo přesněji řečeno sektoru) se data fyzicky zapisují. Na úrovni práce s úložištěm můžete maximálně zjistit, do jakého logického bloku data zapisujete, wear leveling si ale logické bloky sám podle vlastního uvážení „přemapovává“ na fyzické právě podle opotřebení.
Intel SSD mají wear leveling posunut ještě o kousek dále. Ačkoli lze do SSD posílat tak malé bloky dat, jako je třeba 4kB nebo dokonce jen 512B blok, mazání lze provádět po blocích nejmenších zhruba kolem 512 kB. Při zápisu tedy SSD hodně využívá svou cache a nemaže bloky, do nichž se má zapisovat, po každém příkazu ze strany řadiče, ale kombinuje několik bloků do jednoho většího a mazání tak provádí, až když to má smysl. Proto má také Intel SSD tak velkou hodnotu IOPS.
Abyste pak využili i možnost NCQ, která umožňuje práci dále zrychlit zpracováním více příkazů naráz, musíte mít ve svém operačním systému nainstalován ovladač řadiče s podporou AHCI a samozřejmě musí být do AHCI režimu také řadič přepnut (to se dělá typicky v BIOSu desky/notebooku). Windows Vista AHCI již podporují samy o sobě (i když systém nezná konkrétní řadič, dokáže poznat, že jde o AHCI a použije vlastní ovladač pro „standardní AHCI řadič“), u Windows XP je v každém případě potřeba řadič od výrobce (proto když máte desku v AHCI režimu, obvykle na ni systém nenainstalujete - musíte mu dodat disketu s ovladačem). To už ale odbočujeme, zmínit je to však potřeba, ještě se k tomu vrátíme.
Je to možná nečekané, ale interně díky wear levelingu takto vlastně vzniká další úroveň fragmentace, kterou však nemáte šanci z uživatelského hlediska prakticky ovlivnit. A může se to zdát také nečekané, ale tato interní fragmentace dokáže zpomalit práci s SSD jako celkem dost znatelně a dá se to poznat i na obyčejném sekvenčním přístupu k datům, jako to dělá třeba HD Tach. Pokud si vzpomenete, jak vypadal graf v naší recenzi SSD Kingston (jeden z nich je prakticky Intel X25-M), pak téměř ideálně by to mělo být takto (všímejte si červené a hnědé křivky, červená je čtení, hnědá zápis, zbylé dvě patří výkonné SLC 32GB verzi):
Po určitém stupni fragmentace to může dopadnout takto, za pozornost stojí i snížený výkon při čtení:
Interně mohou už totiž tato data být tak fragmentována, že se to projeví navenek jako snadno zaznamenatelné zpomalení. Defragmentovat takový SSD interně je z pohledu uživatele nemožné, o to se prostě stará sám SSD, protože jen on ví, která logická adresa odpovídá interně jakému fyzickému umístění a udržuje si za tímto účelem vnitřně určitou tabulku (říká se jí „lookup table“). A přesto existuje možnost, jak takto zpomalený SSD zase zrychlit. Vlastně jsou to možnosti dvě…