Diit.cz - Novinky a informace o hardware, software a internetu

SerialATA RAID5 řadiče s Raptory a TCQ

Obr: SerialATA RAID5 řadiče s Raptory a TCQ
V srpnu a září jsme publikovali nejprve „Srovnávací test SerialATA RAID5 řadičů“ a později i rozšíření „Srovnávací test SerialATA RAID5 řadičů s 8 HDD“. Jenže, protože jsme správní megalomani, tak jsme s tím rozhodně neskončili. Půjčili jsme si ještě dalších 8 disků, ale tentokráte jde o disky značky Western Digital s označením Raptor o kapacitě 74 GB. Zajímalo nás totiž, jak si jednotlivé řadiče poradí s disky, které se otáčí 10 000× za minutu. Mimo to byl pro zapůjčení těchto disků ještě jeden pádný důvod: TCQ. Víte, co to je přesně TCQ, jak funguje, kde a kdy byl definován, jak se liší oproti NCQ a v neposlední řadě, jaký má vliv na výkon?

Command Queuing je z dnešního hlediska už poměrně stará technika, která je přítomná v SCSI světě od začátku devadesátých let, ale oficiálně byla přidána do standardu SCSI-2 v roce 1994. Jenže ani u ATA rozhraní to není žádná extra novinka, protože Tagged Command Queuing (TCQ) přináší už standard ATA/ATAPI-4, jehož finální draft, který byl dodatečně pouze formálně schválen, byl dokončen už v srpnu roku 1998. Poměrně novější věcí je potom NCQ definované v dokumentu „Serial ATA II: Extensions to Serial ATA 1.0a“. Pokud se nadále budu na TCQ a NCQ odkazovat, mám již pouze na mysli ty definované u ATA a SerialATA, nikoliv u SCSI, i když většina principů platí i pro ně.

Zatím jsme si sice řekli, kde a od kdy jsou jednotlivé CQ techniky definovány, ale ještě jsme si nepověděli, co to přesně je. Je to technika, která na té nejnižší hardwarové úrovni přeuspořádává požadavky na vyřízení diskem tak, aby je disk dokázal rychleji vyřizovat. U některých dřívějších článků, kde jsme se o TCQ zmiňovali, se objevily názory, že nějaké TCQ, nebo NCQ jsou naprosto zbytečné, protože přece optimalizaci požadavků už dělá operační systém. Je sice pravda, že operační systémy optimalizují požadavky podle svého nejlepšího vědomí i svědomí, ale to je na naprosto jiné úrovni než TCQ a NCQ. Abychom pochopili princip fungování těchto CQ technik, předvedu vám následující obrázek, který pochází od nVidie (uvolnila ho v souvislosti s představování nForce4, která NCQ podporuje), ale prakticky identický (jen ne tak hezký a názorný) mám i od Western Digitalu pro popis TCQ:

Srovnání čtení bez a s CQ

Levý obrázek ukazuje čtení (nebo zápis) bez CQ a vpravo s ním. Požadavky na disk od řadiče přicházely v pořadí od nejnižšího čísla po nejvyšší a čára na obou grafech ukazuje pohyb hlavičky po disku. Na levém obrázku je vidět, že pro vyřízení těchto čtyř požadavků se musel disk otočit celkem dvakrát, kdežto napravo pro tyto konkrétní čtyři požadavky stačila pouze jedna otočka a to jen díky tomu, že logika CQ prohodila požadavky 3 a 2, takže nejdříve vyřídila požadavek číslo 3 a až poté požadavek číslo 2.

Z hlediska standardů bylo zavedení ať už TCQ do ATA/ATAPI-4, nebo NCQ do SerialATA II velmi jednoduché, prostě se při přenosu dat mezi řadičem a diskem v hlavičce uvádí ještě jedno číslo, které říká číslo požadavku. Řadič tedy při vyslání požadavku tomuto požadavku dá číslo, které je k dispozici (disk nesmí dostat dva požadavky se stejným číslem) a disk u odezvy na každý požadavek, ať už hlásí chybu, dokončení, nebo posílá i data, vždy přidá toto číslo požadavku, aby řadič věděl, který jeho požadavek byl právě vykonán. Tomuto číslu se říká „Tag“ a od toho je odvozen název „Tagged Command Queuing“.

Přidat tento popis do standardu je poměrně jednoduchá věc, ale vlastní implementace je záležitost dosti jiná. Z hlediska řadiče to až zas tak velký problém není, prostě musí pouze navíc číslovat požadavky a následně při vracení požadavků je zas dávat dohromady. To u disků je situace mnohem náročnější a to díky tomu, že disk musí velice rychle stíhat vyhodnocovat požadavky a případně je přeskupit tak, aby to bylo co nejvýhodnější. A to samozřejmě musí dělat dostatečně výkonný chip, který něco stojí. Proto je také pochopitelné, že ačkoliv TCQ u ATA zařízení bylo definováno už v roce 1998, až v roce 2002 se objevil první ATA disk, který TCQ využíval (šlo o IBM Deskstar 180GXP).

Možná si nyní říkáte, proč vlastně bylo zavedeno NCQ u SerialATA II, když tu máme TCQ definované už ve standardu ATA/ATAPI-4? Na mysl se možná dere myšlenka, že NCQ nabízí oproti TCQ něco navíc, ať už výkon, nebo nějaké ty možnosti. Musím vás zklamat, není tomu tak. Jak TCQ, tak NCQ nabízí 32 maximálně možných požadavků, které najednou řadič může disku odeslat - vychází to z toho, že pro Tag je v obou případech vyhrazeno 5 bitů (takže je celkem 25 možností). Sice je definice NCQ u SerialATA poněkud složitější, ale to vychází z faktu, že samotný SerialATA protokol je oproti ATA protokolu složitější a více propracovaný.

Zaslechl jsem i názory, že zatímco je TCQ celé řešeno na úrovni hardware, tak v případě NCQ některé věci zajišťují ovladače (ale slyšel jsem i opačný názor - to vše od lidí z oboru). Na základě prostudování specifikací k tomu musím říci, že ani v jednom případě se neřeší, jak se má řadič chovat a kde co musí být implementováno. Zda-li bude kompletně vše implementováno již v nějakém chipu, nebo se o to bude starat firmware, případně ovladač, to závisí jen a pouze na výrobci řadiče, jak se k celému problému postaví. Já osobně se domnívám, že nejčastější případ bude takový, že se o to bude starat firmware řadiče s nějakou nepatrnou dopomocí ovladače, ale samozřejmě vše závisí především na cenové kategorii, kde se pohybujeme.

Ale abych se vrátil k tomu, proč bylo zavedeno NCQ, když u je dávno TCQ. Důvod tedy není v rychlosti, ale v samotném standardu SerialATA. Takový SerialATA řadič může fungovat ve zpětně kompatibilním režimu, který plně podporuje všechny možnosti ATA/ATAPI standardů, tedy může podporovat i TCQ (ATA standardy nevyžadují, aby řadič TCQ podporoval, podporovat ho může). Jenže SerialATA definuje i nativní způsob komunikace se SerialATA zařízením a právě přidání CQ techniky do tohoto nativního způsobu komunikace vede k tomu, že se NCQ liší od TCQ. Od toho je také odvozen i název této CQ technologie: „Native Command Queuing“.

Když tedy již víte, co to TCQ (a NCQ) je a jak funguje, pak vás asi napadne, že rozhodně chcete disk, který CQ podporuje, protože vám to přinese zvýšení výkonu. Dnes víme zatím o těchto SerialATA discích podporujících TCQ, nebo NCQ:

Můstek z ATA na SerialATAJak je vidět, NCQ oproti TCQ vítězí. A už z popisu na předchozí stránce je snad jasné, že TCQ nemá budoucnost. Western Digital Raptor 74 GB tedy bude jediným SerialATA diskem, který TCQ definované ve standardu ATA/ATAPI-4 podporoval. Možná vás bude zajímat, proč se vlastně Western Digital pustil do implementace TCQ, když mu muselo být jasné, že určitě nemá nějakou zářnou budoucnost a proč se nepustil rovnou do NCQ? Asi hlavním důvodem byl neměnný fakt, že ač je Raptor SerialATA diskem, tak je tvořen ATA chipem a k tomu můstkem z ATA na SerialATA (můstek je vidět na obrázku napravo), takže nejde o nativní SerialATA disk, a tudíž ani implementace NCQ prakticky není možná.

A proč se tedy vůbec u WD namáhali s implementací TCQ, proč prostě nevydali i 74GB Raptor bez TCQ, podobně jako u 36GB? Zde je třeba hledat důvod v pozici na trhu, kterou s Raptorem chtěl WD obsadit. Je zcela nepochybné, že 10 000otáčkový disk, jakým Raptor je, nabízí znatelně vyšší výkon nežli klasické 7 200otáčkové SerialATA disky od ostatních výrobců. Aby se však mohly měřit se SCSI disky, které se otáčí 10 000krát za minutu, pak musejí implementovat nějakou tu CQ techniku. Tyto disky jsou totiž určeny především pro servery a tam se CQ projevuje nejvíce, což ostatně uvidíte i z našich testů. Takže pokud WD chtěl být se svými Raptory konkurenceschopný v serverové oblasti i vůči SCSI diskům, pak prostě musel zabudovat podporu TCQ.

Diskuse ke článku SerialATA RAID5 řadiče s Raptory a TCQ

Sobota, 25 Červen 2005 - 16:54 | Anonym | Chcel by som upozornit na par nepresnosti....
Pátek, 18 Únor 2005 - 20:22 | Anonym | K tomu HDTACHu mam dva hdd SEAGATE X-15 36G a...
Čtvrtek, 6 Leden 2005 - 00:45 | Petr Murmak | Andrew: Protože je velice nepřesný a má tam...
Úterý, 4 Leden 2005 - 13:22 | Anonym | tady je obrazek+dalsi dva na porovnani http://...
Úterý, 4 Leden 2005 - 12:39 | Anonym | ... proc je podle tebe graf HDtachu k nicemu ?...
Úterý, 4 Leden 2005 - 11:50 | Petr Murmak | Andrew: Grafy z HDTachu (a ostatne HDTach celkove...
Úterý, 4 Leden 2005 - 10:26 | Anonym | Andrew: pamäť ECC tvoj dojem z grafu z HDtachu...
Úterý, 4 Leden 2005 - 09:24 | Anonym | Ale panove. Registrovana pamet neni ECC a ECC...
Úterý, 4 Leden 2005 - 03:43 | Anonym | to Petr:   ... nevim jestli...
Úterý, 4 Leden 2005 - 03:35 | Anonym | to Krozyk:  ano umi i ECC pameti .....

Zobrazit diskusi