NCQ je zkratka z anglického Native Command Queuing, česky přirozené řazení příkazů.

NCQ umožňuje zařízení aby si samo určilo optimální pořadí, ve kterém bude přistupovat k požadovaným informacím na médiu (např. harddisku). To umožní přístup k datům během menšího počtu otáček diskové plotny, a tím se sníží i časová náročnost operace.

Princip

editovat

Jedná se o technologii, která v některých případech umožňuje zvýšit výkon pevných disků s rozhraním SATA II. Při použití NCQ pevný disk sám optimalizuje pořadí, ve kterém jsou vykonány požadavky na zápis nebo čtení. Tato optimalizace může redukovat nadbytečný pohyb hlaviček disku. Tím se zvýší rychlost přenosu dat mezi řadičem a diskem a také se mírně sníží opotřebení disku.

Využití

editovat

Optimalizace se dobře uplatní, pokud se k disku snaží přistoupit současně několik procesů. Současný požadavek na přístup k disku nastává často u serverů, ale vyskytuje se i v domácím použití, například při práci se spuštěnou antivirovou kontrolou disku anebo současném kopírování více souborů.

Instalace v operačním systému

editovat

Ke správné funkci NCQ je zapotřebí, aby ji podporoval jak disk, tak řadič. Dále musí být v operačním systému nainstalován příslušný ovladač řadiče s NCQ. Mnoho nových řadičů dokáže pracovat pod rozhraním AHCI (anglicky Advanced Host Controller Interface), které umožňuje jednotné ovládání všech SATA NCQ řadičů jedním obecným ovladačem operačního systému. Novější Linuxová jádra tento ovladač obsahují. Windows XP vyžadují instalaci speciálních ovladačů i v případě, že daný řadič rozhraní AHCI podporuje. Windows Vista už obecný ovladač pro řadiče podporující AHCI obsahují.

Související technologie

editovat

Starší verze rozhraní ATA (PATA nebo SATA I) mohla obsahovat určitou optimalizaci řazení požadavků. Jednalo se o ATA TCQ neboli ATA Tagged Command Queuing. Toto řešení se příliš nerozšířilo kvůli jeho technické komplikovanosti. TCQ bylo navrženo tak, aby fungovalo s libovolným ATA řadičem, a zpracování tagů řešil softwarový ovladač. Proto ke zpracování každého příkazu byly potřeba dvě přerušení, jedno na nastavení tabulky adres pro DMA přenos a druhé po dokončení přenosu. Dvě přerušení (oproti jednomu, bez TCQ) zatěžovala procesor a v důsledku to nevedlo k velkému zlepšení výkonu disku.

Technologie TCQ byla původně vytvořena pro sběrnici SCSI , kde se osvědčila. Většina SCSI řadičů používajících TCQ a připojených přes sběrnici PCI (případně její nástupce) nastavovala DMA tabulku automaticky a zatěžovala procesor pouze jedním přerušením na příkaz, proto tam nedocházelo ke zpomalování jako při ATA TCQ.

Softwarová obdoba

editovat

Problematiku optimálního pořadí požadavků přístupu k disku v jednom okamžiku lze částečně řešit také softwarově, zabudováním do operačního systému. Na úrovni operačního systému není k dispozici tolik informací, kolik jich má disk sám o sobě. Přesto lze provádět částečnou optimalizaci. Například použitím mezipaměti při kopírování velkých bloků lze snížit počet jednotlivých čtení a zápisů na disk a tím i snížení počtu přesunů hlaviček disku.

Reference

editovat

V tomto článku byl použit překlad textu z článku Native Command Queuing na anglické Wikipedii.

Externí odkazy

editovat