NCQ (Native Command Queuing): Forklaring og betydning for SATA-drev
Få indsigt i NCQ: hvordan det optimerer SATA-drev, forbedrer ydeevne, begrænsninger, og hvordan du aktiverer det i firmware/drivere for bedre storage-opsætninger.

Native Command Queuing (NCQ) er en teknologi udviklet til at øge ydeevnen for SATA-harddiske ved at lade drevet selv optimere rækkefølgen af modtagne læse- og skriveanmodninger. Ved at omarrangere kommandoerne kan drevet reducere unødvendige bevægelser af drevhovedet, hvilket ofte giver bedre ydeevne og mindre fysisk slid ved arbejdsbelastninger, hvor flere I/O-anmodninger er udestående samtidigt. Sådanne situationer ses typisk i serverlignende applikationer og multi-trådet desktopbrug.
Historisk baggrund og forskelle til tidligere løsninger
NCQ er en videreudvikling af Parallel ATA's Tagged Command Queuing (TCQ). PATA/ATA-versionens TCQ led under høje CPU-omkostninger og begrænsninger i værtens busarkitektur, hvilket gjorde, at TCQ ikke blev udbredt. NCQ adskiller sig ved, at kommandoomlægningen udføres af selve drevet i stedet for værten/operativsystemet, hvilket er en fordel, da drevet har detaljeret viden om sine egne interne egenskaber og rotationsposition.
NCQ- og PATA-TCQ-support giver typisk en kødybde på op til 32 kommandoer (ofte praktisk 31). Til sammenligning understøtter SCSI-tagged queuing væsentligt større køer — typisk op til flere hundrede kommandoer afhængigt af implementeringen.
Krævede komponenter og aktivering
For at NCQ kan fungere, skal følgende være opfyldt:
- Drevet selv skal understøtte NCQ.
- Værtskontrolleren (SATA-controller) skal understøtte NCQ/AHCI.
- Den relevante enhedsdriver (AHCI-driver eller leverandørspecifik driver) skal være installeret i operativsystemet.
Mange nyere chipset understøtter AHCI (Advanced Host Controller Interface), som gør det muligt for en generisk driver i operativsystemet at aktivere NCQ automatisk. Moderne Linux-kerner har indbygget AHCI-understøttelse (modulet "ahci"). Historisk krævede Windows XP ofte installation af en leverandørspecifik driver for at aktivere AHCI/NCQ, mens Windows Vista og nyere inkluderer en generisk AHCI-driver, der gør aktivering lettere.
Hvornår giver NCQ gevinst — og hvornår ikke?
- Fordele: NCQ giver størst fordel ved tilfældige I/O-mønstre, parallelle forespørgsler og serverarbejdsbelastninger, hvor mange små læse-/skriveanmodninger er samtidige. Det kan reducere sæt-latenstid og øge throughput i disse scenarier.
- Begrænsninger: Ved sekventielle store læsninger eller skrivninger (f.eks. store filkopier eller visse spilindlæsninger) kan NCQ ikke give fordel — nogle gange tilføjer det en lille ekstra latenstid pga. omkostningen ved omrokering, især på ældre drev eller firmware. Moderne drev og firmware er dog langt bedre til at håndtere sådanne situationer end ældre implementeringer.
- SSD'er: På SSD'er, hvor der ikke er fysisk bevægelige dele, kan NCQ stadig være nyttigt, fordi drevet kan parallelisere interne flash-operationer og dermed øge effektiv throughput. For højtydende PCIe/NVMe-drev er NCQ ikke relevant — NVMe har sin egen meget dybere og mere effektive kømodel.
Sådan aktiverer og kontrollerer du NCQ
- Aktiver AHCI i BIOS/UEFI: Skift SATA-mode fra "IDE" til "AHCI" for at lade operativsystemets AHCI-driver bruge NCQ. Bemærk, at skift på et eksisterende operativsystem kan kræve forberedelse (fx driveraktivering eller registreringsændringer i Windows) for at undgå boot-problemer — tag backup før ændringer.
- Installer korrekt driver: På moderne systemer vil operativsystemet ofte levere en generisk AHCI-driver. Hvis ikke, installer leverandørens driver.
- Kontroller status i Linux: Brug værktøjer som hdparm eller systemfiler. Eksempel:
sudo hdparm -I /dev/sdXviser, om NCQ (FPDMA) understøttes/er aktiveret. Ogsåcat /sys/block/sdX/device/queue_depthkan vise kødybden. - Kontroller status i Windows: Se under Enhedshåndtering -> IDE ATA/ATAPI-controllere om en AHCI-controller er aktiv. Produktoplysningsværktøjer fra diskproducenten eller tredjepartsværktøjer kan også vise NCQ-status.
Yderligere overvejelser
- Firmware og drivere: Drevspecifik firmware og opdaterede drivere kan ændre, hvordan NCQ påvirker ydeevnen — produktopdateringer kan både forbedre og i sjældne tilfælde forringe opførsel. Hold firmware og drivere opdaterede for bedste resultat.
- Alternativer: For moderne flash-lagring på PCIe er NVMe-protokollen designet til højparallelitet og har meget større kødybder (titusinder af kommandoer per kø), hvilket typisk giver bedre skalerbarhed end AHCI/NCQ for disse enheder.
- Fejlfinding: Hvis du oplever høj latenstid eller mærkbar nedsættelse i bestemte applikationer efter aktivering af AHCI/NCQ, test med AHCI deaktiveret (eller prøv en firmwareopdatering) for at afgøre, om NCQ er årsag.
Samlet set er NCQ en værdifuld funktion for mange server- og flerbruger-scenarier og kan også hjælpe SSD'er ved at udnytte intern parallelitet. For enkelte sekventielle arbejdsbelastninger kan forbedringen være begrænset eller ikke-eksisterende, så aktivering bør ske med kendskab til den konkrete brug og - hvor relevant - efter målinger.
Relaterede sider
- Tagged Command Queuing
Spørgsmål og svar
Spørgsmål: Hvad er Native Command Queuing?
A: Native Command Queuing (NCQ) er en teknologi, der er udviklet til at øge ydeevnen for SATA-harddiske på computere ved at give den enkelte harddisk mulighed for at optimere den rækkefølge, hvori den udfører læse- og skriveanmodninger.
Spørgsmål: Hvordan forbedrer NCQ ydeevnen?
Svar: NCQ kan reducere mængden af unødvendige bevægelser af drevhovedet, hvilket resulterer i bedre ydeevne og lidt mindre slid på drevet i forbindelse med arbejdsbelastninger, hvor der er flere læse- og skriveanmodninger på samme tid, f.eks. i forbindelse med serverapplikationer.
Spørgsmål: Sænker NCQ HD-adgang i visse programmer?
Svar: Ja, NCQ kan faktisk sænke HD-adgangen i visse applikationer som spil og sekventielle læsninger og skrivninger på grund af den ekstra latenstid, som NCQ-logikken medfører.
Spørgsmål: Hvordan adskiller Native Command Queuing sig fra PATA TCQ?
Svar: I modsætning til PATA TCQ udføres kommandoomlægning med NCQ af drevet og ikke af operativsystemet, og hver kommando er lige vigtig. Drevet har mere viden om sine præstationsegenskaber, så det kan tage hensyn til rotationspositionen, når det optimerer kommandoer. Desuden har NCQ en maksimal kø-længde på 32 sammenlignet med PATA TCQ's maksimale kø-længde på 32 (31 i praksis).
Spørgsmål: Hvilke hardwarekrav skal være opfyldt, for at NCQ kan aktiveres?
Svar: For at NCQ kan aktiveres, skal den understøttes og aktiveres både på SATA-værtsbusadapteren og på selve harddisken. Desuden skal der indlæses en passende enhedsdriver i operativsystemet for at aktivere NCq på værtsbusadapteren.
Spørgsmål: Er der generisk AHCI-understøttelse til rådighed for Windows XP?
Svar: Nej, Windows XP kræver installation af en leverandørspecifik driver, selv om AHCI er til stede på værtsbusadapteren. Windows Vista indeholder dog en generisk AHCI-driver, som giver generisk understøttelse af AHCI-enheder.
Søge