Přejít k hlavnímu obsahu

Příliš rychlá pro Windows: Turbopaměť

Příliš rychlá pro Windows: Turbopaměť

Pevné disky jsou čím dál tím rychlejší. Jejich tempu přestává stačit jak operační systém Windows, tak další programy. Prozradíme vám, co se s tím dá dělat.
    MARKUS MANDAU  

    MARKUS MANDAU  
Již od prvního uvedení Windows 7 se věnuje problematice spolupráce operačních systémů s SSD disky.


Technický pokrok je základním kamenem počítačového průmyslu. Na trh neustále přicházejí nové produkty, a to s frekvencí, které nedosahuje žádné jiné průmyslové odvětví. Občas to vypadá, že některé nově představované technologie spadají spíše do říše pohádek, ale po několika letech se nezřídka objeví v běžném prodeji. V současné době nám ještě může připadat jako utopie, že bychom zapnuli počítač, a systém by naskočil ještě předtím, než bychom domáčkli startovací tlačítko. I ty nejnáročnější aplikace, jako například Photoshop, by se spustily okamžitě, bez načítání modulů a bez čekání na zobrazení uživatelského rozhraní. Kliknete na 4GB film v HD rozlišení, a on se uloží ještě dříve, než pustíte tlačítko myši.
Podobná revoluce nás ale čeká po uvedení nové generace flashových pevných disků, připojených k systému pomocí rychlejších rozhraní. Již dnes jsou nejrychlejší serverové SSD disky spojeny se základní deskou prostřednictvím sběrnice PCI Express a dosahují několikanásobně vyšších rychlostí než běžné SATA SSD disky (viz vpravo). S přechodem na platformu Intel Ivy Bridge se můžeme těšit na další zvyšování rychlosti PC.
Snaha o zvyšování rychlosti bude pokračovat uváděním nových technologií, které během několika let nahradí stávající flashové SSD disky. Tyto nové technologie pak slibují stejně krátkou přístupovou dobu, jakou disponují dnešní paměťové moduly RAM. V podstatě lze očekávat, že se v blízké budoucnosti dočkáme splynutí operační paměti s pevným diskem. Revoluce paměťových médií si ale vyžádá i změnu operačních systémů Windows a Mac OS. Z nejnovějšího výzkumu univerzity v San Diegu totiž vyplývá, že stávající operační systémy nedokážou plně využít možností moderních rychlých pevných disků. Co musí nové operační systémy zvládat a jakých přenosových rychlostí by bylo možné dosáhnout, to popisujeme na straně 32. Podívejme se ale nejprve na technologii pevných disků budoucnosti.

Světlé zítřky: NOVÉ PEVNÉ DISKY

Během několika let budou pevné disky osobních počítačů pracovat přenosovou rychlostí až 4 GB/s. Umožní to naprosto nové technologie.

Pokud vám jde o rychlost, tak již dnes používáte flashový SSD disk. Osazení SSD diskem se u osobního počítače i notebooku projeví přímo raketovým zrychlením. Tyto disky by přitom mohly pracovat ještě o poznání rychleji, kdyby je nebrzdilo pomalé spojení se základní deskou. Teoreticky by rozhraní SATA mělo mít propustnost 6 Gb/s, v praxi jsme však u těch nejrychlejších SSD disků naměřili maximální přenosovou rychlost 600 MB/s. Přicházející nové rozhraní SATA Express bude disponovat propustností 8, potažmo 16 Gb/s. Ještě letos přijdou na trh základní desky s řadičem SATA Express a kompatibilní SSD disky, které budou spolupracovat rychlostí 1,6 GB/s.
SATA Express používá k přenosu dat mnohem rychlejší protokol PCI Express. Pouze sběrnice PCIe má potenciál k plnému využití výkonu flashových pamětí. Nejrychlejší serverové SSD disky dosahují přenosových rychlostí 3 GB/s, a jakmile přijde letos do provozu nový standard PCIe 3.0, může okamžitě dojít ke zdvojnásobení této rychlosti. Rychlost tohoto rozhraní tedy nebude zpomalovat činnost SSD disků, ale není zatím jisté, jakých maximálních rychlostí budou flashové buňky v budoucnu dosahovat. Během zápisu 8KB stránky dat totiž nejnovější SSD disky Intelu musí nejprve smazat celý 2MB blok dat, ve kterém se zapisovaná stránka nachází. Smazání bloku trvá 3 milisekundy (ms) a následný zápis stránky trvá 1,2 ms. SSD disky dokážou načíst tuto stránku během 40 nanosekund (ns), tedy 100 000krát rychleji. Uživatel si těchto rychlostních rozdílů není v praxi vědom, protože řadič data ukládá simultánně. Dobré SSD disky čtou data dvakrát rychleji, než je zapisují.

Čtení a zápis dat během nanosekund

Nejrychlejšími úložnými médii jsou dnes paměťové moduly RAM, data na nich uložená jsou však ztracena v okamžiku, kdy do nich přestaneme přivádět proud. Záznam dat do flashových buněk SSD disků zpomaluje složitý proces zápisu, ale příští generace této technologie by měla být rychlejší. Z více než tuctu možných nástupců vybereme pouze dva kandidáty, jejichž sériová výroba by mohla začít již v letech 2014/15. Jsou to Phase Change Memory (PCM) a Resistive RAM (ReRAM). PCM je tvořen materiálem, který podle intenzity napětí mění strukturu z krystalické na amorfní. Stejně jako flashové buňky i paměťové buňky PCM musí při zápisu dat nejprve smazat data stará. Z tohoto důvodu také PCM nemůže dosahovat rychlosti pamětí DRAM.
Paměti ReRAM jsou slibnější, ale firmy jako HP, Panasonic, Samsung a Sony teprve pracují na vývoji jejich prototypů. ReRAM používá izolační vrstvu, která se působením proudu při zápisu hodnoty „1“ stává vodivou. Pro opětovný přepis buňky do stavu „0“ je nutné použít zpětné napětí, které vrátí materiál do nevodivého stavu. Oproti flashovým pamětem a PCM tak umožňuje ReRAM přímý přepis dat.

PAMĚŤOVÁ REVOLUCE: PRVNÍ FÁZE
Čas, který potřebuje operační systém pro práci s operacemi spojenými s ukládáním dat, nehraje u moderních SSD disků tak velkou roli. To se ale u budoucí generace paměťových úložišť typu PCM a ReRAM změní.

RYCHLOST PEVNÝCH DISKŮ SE VÝRAZNĚ ZVÝŠÍ
Dnešní serverové SSD disky jsou mnohem rychlejší než SSD disky používané běžnými uživateli. Už příští rok se ale jejich technologie objeví v běžných domácích systémech. V tom okamžiku začne éra turbopamětí.

BĚŽNÝ SSD DISK: OCZ VERTEX 3
Tento flashový pevný disk je momentálně nejrychlejším SSD diskem, který je se základní deskou spojen pomocí rozhraní SATA.
PŘENOSOVÁ RYCHLOST     500 MB/S
IOPS*     65 000


SERVEROVÝ SSD DISK: MICRON REALSSD P250H
Serverové SSD disky jsou do systému zapojeny prostřednictvím sběrnice PCI Express. Disk P250H je po této sběrnici propojen čtyřmi kanály a ukazuje, jakou rychlostí budou v krátké době pracovat i disky domácích počítačů.
PŘENOSOVÁ RYCHLOST     1 800 MB/S
IOPS*     320 000

RYCHLÝ SERVEROVÝ SSD DISK: IODRIVE2 DUO
Nejrychlejší SSD disky, jako je Iodrive2 Duo jsou připojeny sběrnicí PCI Express pomocí osmi kanálů. Běžné počítače budou používat podobné disky za dva roky.
PŘENOSOVÁ RYCHLOST     3 000 MB/S
IOPS*     705 000

PCM TURBOPAMĚŤ: MONETA
Prototyp systému Moneta sestaveného na univerzitě v San Diegu používá budoucí generaci PCM disků, které se na trh dostanou pravděpodobně na přelomu let 2014/2015, a dosahuje extrémně vysokých přenosových rychlostí.
PŘENOSOVÁ RYCHLOST     4 000 MB/S
IOPS*     1 100.000
* POČET ZPRACOVANÝCH INPUT-OUTPUT OPERACÍ ZA SEKUNDU

SROVNÁNÍ PAMĚTÍ: RYCHLEJŠÍ NEŽ FLASH
Paměti typu SDRAM a DRAM jsou rychlé, ale neumí udržet data dlouho. Flashové paměti čtou data rychle, ale v porovnání s nadcházejícími pamětmi PCM a ReRAM je zapisují příliš pomalu

Co brzdí výkon:  OPERAČNÍ SYSTÉM

Windows a většina programů nedokážou efektivně využít výhody vysoké rychlosti moderních pevných disků. Operační systém je nutné předělat.

Z pozice uživatelů dobře známe okamžiky nečinného zírání na obrazovku počítače, který pomalu ukládá data nebo zvolna načítá programy z disku do operační paměti. Dlouhá léta byly příčinou podobných zpoždění magnetické pevné disky. Rozmach SSD disků tento trend změnil, ale stále je řada funkcí operačního systému optimalizována pro práci s magnetickými disky. Pokud Windows 7 zjistí přítomnost systémového SSD disku, sama deaktivují některé funkce, jako je automatická defragmentace nebo SuperFetch. Automaticky v podobném případě také zapínají podporu funkce TRIM, která má za úkol optimalizovat zpomalující proces mazání stávajících dat při zápisu dat nových. Pro budoucí generaci SSD disků s rozhraním PCI Express (PCIe) to však už nebude stačit. Změna bude vyžadovat zásadní reorganizaci operačního systému. Dokonce ani Windows 8 nemají standardizovaný ovladač pro PCIe SSD disky, takže každý výrobce SSD disků si píše vlastní ovladače. Pro práci s budoucími disky bude nutné předělat operační systémy, protože tyto disky budou data zapisovat ještě rychleji a s kratší přístupovou dobou než flashové disky. Budou navíc pracovat s nižším napětím a budou schopné zpracovat větší množství operací za sekundu.

Windows a další OS zpomalují rychlé disky

Skupina výzkumných pracovníků na univerzitě v San Diegu se rozhodla zjistit, do jaké míry bude nutné přestavět současné operační systémy tak, aby optimálně spolupracovaly s budoucími superrychlými pevnými disky. Sestavili počítač, který simuluje úložnou rychlost systému s PCM diskem. Počítač byl nejprve osazen paměťovými moduly DRAM, které v roce 2011 nahradily moduly PCM. Úložiště nazvané Moneta je v tomto počítači propojeno s CPU prostřednictvím osmikanálové sběrnice PCIe a při práci dosahuje přenosových rychlostí až 4 GB/s. Moneta je řízena operačním systémem Linux, ale co se týče ukládání dat, jsou rozdíly mezi Linuxem a Windows marginální. Naměřené výsledky lze tedy použít i pro jiné operační systémy. Výsledky nebyly slavné: ukládání i čtení dat je na linuxové Monetě pomalejší, než pokud by byl stejný systém připojen k pevnému disku (viz tabulka vpravo).
Architektura Windows a dalších operačních systémů je uzpůsobena pro spolupráci s magnetickými disky. Úzké hrdlo tvoří vstupní a výstupní plánovač, který řídí kompletní přenos dat mezi systémem a pevným diskem. Tento plánovač zpracovává požadavky na zápis a čtení dat z pevného disku. IO plánovač pak tyto požadavky třídí tak, aby nedocházelo ke zbytečnému nahromadění dat, což je praktické při práci s pomalejšími magnetickými disky. Tato koordinace je ale u rychlejších disků zbytečná, protože SSD disky jsou tak rychlé, že ke hromadění dat čekajících na zpracování nedochází. Linux má pro tyto případy alternativu v podobě Noop Scheduleru, který dokáže najednou pojmout více požadavků a ty bez prodlení posílá do pevného disku. I tato akce však zabere určitý čas, protože plánovač musí vytvářet nové vlákno, které posílá ke zpracování do CPU.
Jakmile CPU odešle data do pevného disku, vlákno zodpovědné za proces ukládání a čtení dat je uloženo ke spánku. V okamžiku, kdy pevný disk dokončí zadanou úlohu, vlákno je nutné znovu aktivovat pomocí přerušení s hlášením o úspěšném dokončení operace. Tato metoda je vhodná pouze pro počítače vybavené CPU s jedním či dvěma jádry, protože souběžně vykonávané procesy většinou plně vytíží výkon procesoru. U moderních počítačů s často až osmijádrovými procesory je ale situace jiná. Pro obejití úzkých hrdel nejprve vývojáři odstranili v operačním systému Monety problematický plánovač. Bez něj jsou data odesílána do pevného disku bez jakéhokoliv třídění a kompilování, o to se stará plánovač integrovaný přímo do hardwaru paměťového systému. Dále bylo v CPU nastálo aktivováno vlákno řídící ukládání a čtení dat, čímž se ušetří čas potřebný k jeho střídavé aktivaci a deaktivaci.
Další úzké hrdlo, které bylo v systému Moneta nutné obejít, se skrývá v ovladači pevného disku. Běžně se požadavek směřující do ovladače skládá z několika příkazů. Ovladač disku je přijímá a ukládá je do mezipaměti disku. Tento proces zabírá zbytečně moc času. Výzkumníci jej ušetřili tím, že sdružili tyto žádosti do jednoho, 64 bitů dlouhého příkazu. Tento příkaz informuje čip datového nosiče o tom, kde jedna žádost končí a kde začíná jiná. I když tato optimalizace urychlí přenosovou rychlost ukládání dat jen drobně, přináší dramatický nárůst rychlosti zpracování vstupně-výstupních operací, kterých Moneta dokáže zpracovat až milion za sekundu.

Čtyři optimalizace pro zrychlení systému

Tři drobné změny v operačním systému ještě problém nevyřeší. Důležitá je čtvrtá optimalizace (viz vpravo), která se týká samotné architektury x86. Současné operační systémy využívají programy, které spouští procesy ukládání dat. Ty procházejí CPU s nižší prioritou a v uživatelském režimu. Hardware paměťového média je ale řízen režimem jádra, který je rezervován pro OS. Softwarové požadavky na ukládání je tedy nutné před jejich vykonáním převádět do režimu jádra. Operační systém navíc provádí veškeré operace souborového systému v režimu jádra, což zbytečně zabírá další čas.
Autoři systému Moneta naprogramovali vlastní ovladač, který pracuje v režimu uživatele a tím obchází zbytečnou odbočku do jádra (viz vpravo). Operační systém tak do ukládání dat zasahuje co možná nejméně. Tímto způsobem je možné obejít souborový systém a správu oprávnění, která má například kontrolu nad tím, který uživatel může přistupovat k určitým datům. Přenos informací mezi aplikací a jádrem je tak nezávislý na opravdovém přenosu dat. Nezávislá je rovněž kontrola přístupových práv k přenosu souborů mezi jádrem a hardwarovým rozhraním datového nosiče. Díky tomu tyto změny neohrožují bezpečnost architektury x86. V budoucnu budou programy bez jakékoliv prodlevy schopné napřímo číst i zapisovat soubory, které již byly otevřené. Práce s těmito soubory bude probíhat mimo operační systém a bude za ni odpovědný přímo čip paměťového média. Pokud tedy za pár let budete ukládat HD film na superrychlé paměťové médium, budete k tomu potřebovat operační systém nové generace.
    AUTOR@CHIP.CZ

PAMĚŤOVÁ REVOLUCE: DRUHÁ FÁZE
Současné operační systémy nedokážou využít výhod rychlých paměťových disků, založených na technologii PCM. Je nutné je přeprogramovat.

MONETA: PROTOTYP SE SUPERRYCHLÝM DISKEM
Projekt univerzity v San Diegu simuluje systém, který dokáže ukládat data stejnou rychlostí jako budoucí technologie PCM disků. Přenosy dat řídí procesor v hardwarovém plánovači.

PŘENOS DAT: KOLIK ČASU ZABERE?
Při zapojení rychlých paměťových disků, jaké využívá například prototyp Moneta, je výrazný rozdíl mezi poměrem času, který zabere přenos dat, a dobou, kterou potřebuje OS pro zpracování operace. Zpracování požadavků trvá zastaralým OS déle než samotný přenos dat, jak ukazuje naše měření provedené se 4KB datovými bloky.


ČTYŘI OPTIMALIZACE URYCHLUJÍCÍ UKLÁDÁNÍ DAT
Operační systém zpomaluje činnost rychlých paměťových disků, jako je např. Moneta. Autoři tohoto systému vymysleli čtyři změny OS, které značně urychlí jejich provoz.
NORMÁLNÍ     cca. 21,5 s
BEZ PLÁNOVAČE     cca. 20 s
64BITOVÝ PŘÍKAZ     cca. 19 s
BEZ PŘEPÍNÁNÍ     cca. 13,5 s
PŘÍMÝ         cca. 10 s

NORMÁLNÍ: Bez optimalizace potřebuje OS k uložení 4 KB dat víc času než pevný disk.
BEZ PLÁNOVAČE: Ze systému jsou odstraněny plánovače ukládání dat na disku.
64BITOVÝ PŘÍKAZ: Příkazy pro přenos dat do disku jsou standardizovány do 64bitové podoby a díky tomu je jejich vykonání rychlejší.
BEZ PŘEPÍNÁNÍ: Vlákno, které spouští proces ukládání dat, zůstává aktivní a není je třeba opakovaně reaktivovat.
PŘÍMÝ: Pevný disk obchází operační systém (viz níže).

ZMĚNY OPERAČNÍHO SYSTÉMU
Současné operační systémy (vlevo) ukládají data prostřednictvím jádra, které pracuje bezpečně, ale je pomalé. Prototyp systému Moneta (vpravo) obchází jádro, a dosahuje tak vyšší rychlosti.

POROVNÁNÍ RYCHLOSTI: PŘENOSY MALÝCH DAT
Při ukládání většího množství souborů dosahuje pevný disk pouze zlomku své přenosové rychlosti. Optimalizovaný prototyp Moneta dosahuje mnohem vyššího výkonu než současné SSD disky.