Native Command Queuing (NCQ): definitsioon ja toimimine SATA-kõvakettadel

NCQ (Native Command Queuing) selgitus: kuidas NCQ töötab SATA-kõvakettadel, mõjutab ja parandab jõudlust, millised on eelised, piirangud ning rakendused serveri- ja igapäevakasutuses.

Native Command Queuing (NCQ) on SATA-spetsifikatsiooni osa, mille eesmärk on parandada mehaaniliste kõvaketaste (ja teatud juhtudel ka SSD-de) töökäitumist mitme samaaegse I/O-taotluse korral. NCQ võimaldab kõvakettal ise ümberjärjestada hostilt saadud lugemis- ja kirjutuskäske nii, et ketta peade ja plaadi pöörlemise tõttu tekkiv liikumine oleks minimaalne. Tulemuseks on tavaliselt madalam latentsus ja parem läbilaskevõime olukordades, kus korraga on palju mittesünkroonseid I/O-taotlusi (näiteks serverikeskkonnad või virtualiseerimine).

Kuidas NCQ töötab

  • Host (operatsioonisüsteem või kontroller) saadab kettale järjest mitut käsku, igaühel on oma identifikaator (tag).
  • Ketas hoiab käske järjekorras (queue) ja analüüsib nende LBAd (logical block address) ning muud infot, et valida optimaalse täitmisjärjekorra — see võib oluliselt vähendada mehaanilist pealiikumist.
  • NCQ võib korraga hoida kuni 32 käsku (sõltuvalt implementeerimisest; praktikas tihti 31 aktiivset käsku), mis on märkimisväärne paranemine varasematest ATA TCQ-lahendustest.

Eelised

  • Parem jõudlus kõrge paralleelsusega töökoormustes: suudab vähendada otsitavate positsioonide vahetusi ja seega lühendada keskmist I/O-aega.
  • Vähem kulumist: peade ebaoluline liigutamine väheneb, mis võib pikendada mehaanilise draivi eluiga.
  • Riistvaraline ümberjärjestamine: kuna kettal endal on kõige rohkem infot (pöörlemisasend, mehaanilised omadused), võib see teha paremaid otsuseid kui hosti poolt dikteeritud järjestus.

Piirangud ja võimalikud probleemid

  • Lisaviivitus väikeste ja järjestikuste operatsioonide puhul: NCQ-logika lisab mõningast haldustööd, mis mõnel juhul (näiteks järjestikulised suured lugemised/kirjutamised või mängud, kus I/O-mustrid on lihtsad) võib tulemuseks olla kergelt halvem jõudlus. See sõltub draivi firmwar'ist ja töökoormusest.
  • Vanemad süsteemid ja draiverid: algusaegadel mõnedes konfiguratsioonides toimis NCQ alamoptimaalselt või seda ei toetatud korralikult.
  • SSD ja tänapäevased ajad: NVMe/PCIe-seadmetel on hoopis teistsugune ja palju võimsam käsureavahetuse mehhanism (sügavamad järjekorrad, asünkroonne käitumine), seega SATA-NCQ ei kehti NVMe-draividele. Siiski on NCQ kasulik paljudele SATA SSD-dele ja mehaanilistele ketastele.

NCQ ja teised järjekorustamismeetodid

NCQ tuli pärast Parallel ATA "Tagged Command Queuing" (TCQ) arenguid. PATA TCQ jäi laialdaselt kasutusele saamata peamiselt tänu piirangutele host-kontrollerite ja ISA-põhiste protokollide tõttu, mis tekitasid suurt protsessori koormust ja väikese reaalse võiduprotsendi. NCQ erineb PATA TCQ-st peamiselt selle poolest, et ümberjärjestamise loogika toimub kettal endal ning iga käsk on võrdselt "märgistatud" — see on tavaliselt efektiivsem, sest kettal on oma mehaanika kohta täpsem info. NCQ ja PATA TCQ järjekorra maksimaalne pikkus on 32 käsku (praktikas tihti 31). SCSI-maailmas on TCQ tavaliselt palju suurema järjekorra pikkusega, mis võimaldab keerukamaid ja sügavamaid latentsuse juhtimise strateegiaid.

Kuidas NCQ lubada ja kasutada

  • NCQ peab olema toetatud nii kõvakettal kui ka hosti SATA-kontrolleril/adapteril.
  • Paljud tänapäevased kiibistikud toetavad Advanced Host Controller Interface (AHCI) standardit — AHCI võimaldab operatsioonisüsteemil kasutada üldist draiverit, mis omakorda võimaldab NCQ-d ja muid funktsioone (nt soojendatud seadmete eemaldamine, hot-plug).
  • Operatsioonisüsteem peab laadima vastava seadmedraiveri. Varasemalt nõudis Windows XP sageli tootjapõhist AHCI-draiverit NCQ/AHCI kasutamiseks; hilisemates Windowsi versioonides (alates Windows Vista ja palju kaasaegsemates opsüsteemides) on üldised AHCI-draiverid juba olemas. Ka Linuxi tuumad toetavad AHCI püsivalt.
  • Praktiline nõuanne: AHCI/NCQ tavaliselt lubatakse BIOS/UEFI sätetest. Kui lülitate AHCI-režiimi pärast opsüsteemi installimist, võib vaja minna täiendavaid samme (nt Windowsis registri muutmine või vastava draiveri paigaldus), et süsteem jätkuvalt käivituks.

Kaasaegne kontekst ja märkus

NCQ jäi tähtsaks tehnoloogiaks SATA-mehaaniliste ketaste ja SATA SSD-de puhul. Viimastel aastatel on aga NVMe-põhised PCIe-lahendused muutnud suure osa kõrge jõudluse salvestusest — NVMe pakub palju sügavamaid järjekordi ja uuemat I/O-arhitektuuri, mis ületab SATA/NCQ piirid. Siiski on NCQ endiselt asjakohane paljudes serveri- ja lauaarvutikonfiguratsioonides, kus kasutatakse SATA-draive.

[märkus] Originaalteksti viide ajale (nt "2004. aasta seisuga") ja mõned algseisuga seotud järeldused võivad olla ajas muutunud: tänapäeval on NCQ-tugi laialdasem, draiverid ja kontrollerid arenenumad ning opsüsteemide sisseehitatud AHCI/NCQ-tugi on tunduvalt parem kui algusaegadel.

Praktiline kontroll: kui soovite teada, kas konkreetne kõvaketas toetab NCQ, vaadake draivi tehnilisi andmeid või tootja dokumentatsiooni ning kontrollige, kas operatsioonisüsteem ja SATA-kontroller töötavad AHCI-režiimis ja laadivad vastava draiveri.

Seotud leheküljed

  • Kodeeritud käskude järjekord

Küsimused ja vastused

K: Mis on emakeele käskude järjekord?


V: Native Command Queuing (NCQ) on tehnoloogia, mille eesmärk on suurendada arvutite SATA-kõvaketaste jõudlust, võimaldades individuaalsel kõvakettal optimeerida lugemis- ja kirjutamistaotluste täitmise järjekorda.

K: Kuidas parandab NCQ jõudlust?


V: NCQ võib vähendada kõvakettapea mittevajalikku liikumist, mille tulemuseks on parem jõudlus ja veidi väiksem ketta kulumine töökoormuste puhul, kus korraga on mitu lugemis- ja kirjutamistaotlust, näiteks serveritüüpi rakendused.

K: Kas NCQ aeglustab kõvakettale juurdepääsu teatud rakenduste puhul?


V: Jah, NCQ võib tegelikult aeglustada kõvakettale juurdepääsu teatud rakendustes, näiteks mängudes ja järjestikuste lugemiste ja kirjutamiste puhul, kuna NCQ loogika tekitab lisaviivitust.

K: Kuidas erineb Native Command Queuing PATA TCQ-st?


V: Erinevalt PATA TCQ-st korraldab NCQ-s käskude ümberjärjestuse pigem kettasüsteem kui operatsioonisüsteem ja iga käsk on võrdselt tähtis. Kettal on rohkem teadmisi oma jõudlusomadustest, nii et ta saab käskude optimeerimisel arvesse võtta pöörlemisasendit. Lisaks on NCQ maksimaalne järjekorra pikkus 32 võrreldes PATA TCQ maksimaalse järjekorra pikkusega 32 (praktikas 31).

K: Millised riistvaranõuded peavad olema täidetud, et NCQ oleks lubatud?


V: Et NCQ oleks lubatud, peab see olema toetatud ja lubatud nii SATA-võrguadapteril kui ka kõvakettal endal. Lisaks sellele tuleb NCq lubamiseks host-vahendusadapteris laadida operatsioonisüsteemi vastav seadme draiver.

K: Kas Windows XP jaoks on olemas üldine AHCI-tugi?


V: Ei, Windows XP nõuab tootja-spetsiifilise draiveri paigaldamist isegi siis, kui AHCI on olemas host-vahendusadapteris. Windows Vista sisaldab siiski üldist AHCI draiverit, mis võimaldab üldist toetust AHCI seadmetele.

AlegsaOnline.com - 2020 / 2025 - License CC3