NCQ este o variantă software a interfeței SATA care constă în aranjarea operațiunilor de salvare/citire (I/O) pentru a crește eficiența întregului sistem (numărul de operații I/O pe secundă) atât în cazul discurilor HDD, cât și a celor SSD.
|
În cazul discurilor tradiționale (HDD), aceasta are loc prin utilizarea unui tampon pentru a până la 32 de comenzi și alegerea ordinii de efectuare a acestora, pentru ca echipamentul să funcționeze, reducând la minimum mișcarea capetelor și a discurilor propriu-zise. Această opțiune permite reducerea timpului indispensabil pentru efectuarea operațiunilor I/O și împiedică uzura elementelor electromecanice ale discului.
|
Figura 1. Efectuarea operațiunii de citire/salvare pe discurile: (a) fără NCQ, (b) cu NCQ
|
Discul reprezentat in imaginea numărul 1 realizează operațiunile I/O: (A) cu deservirea NCQ dezactivată – în ordinea de la A la F, efectuând 3,5 rotații a discului propriu zis; (b) cu deservirea NCQ activată – în ordinea C → A → B → D → F → E în cadrul a doar 2 rotații ale discului propriu zis.
|
NCQ este o nouă soluție inclusă în tehnologia care se dezvoltă în continuu, adică TCQ (Tagged Command Queuing) și care este utilizată la început pentru discurile de tip SCSI, fiind apoi implementată în cadrul discurilor de tip ATA și parțial de tip SATA-I. Aceasta diferă de ideea precedentă mai ales prin numărul de operațiuni prelucrate concomitent I/O și prin ideea că NCQ permite emiterea următoarei comenzi din partea hostului în timpul în care discul funcționează asupra comenzii anterioare.
|
Funcționalitatea NCQ depinde de trei protocoale cheie: – Mecanismul informației feedback despre starea procesului (Status Return Mechanism) – această funcție permite transmiterea individuală a informației despre încheierea sarcinii (sau a sarcinilor) I/O planificate. Hostul nu mai este informat despre începerea procesului I/O, ci doar asupra încheierii acestuia. – Limitarea numărului de întreruperi la maxim una pentru sarcina planificată I/O (Interrupt Aggregation) – host trebuie să fie informat despre încheierea fiecărei sarcini care a fost programată I/O. Cererile referitoare la datele care se găsesc aproape din punct de vedere fizic sunt grupate și ordonate adecvat. Astfel se ajunge la o situație în cadrul căreia câteva comenzi I/O sunt efectuate concomitent și în timp rapid. Așadar, este posibilă transmiterea informațiilor despre terminarea, de exemplu a tuturor celor 32 de operații în cadrul unui pachet de 64 de biți, în locul a 64 de pachete separate – cum ar avea loc în situația dacă nu se utilizează NCQ. În cadrul echipamentelor SATA-I și ATA era necesară efectuarea de două pauze pentru fiecare operațiune I/O (una la începerea procesării comenzii, iar a doua la finalizarea acesteia). – Mecanismul accesului direct la memoria operativă (First Party DMA – FPDMA) – NCQ a fost proiectat astfel ca HDD să poată alege care sarcină legată de transferul de date va fi efectuată în pasul următor. Discul trimite un tag/identificator al comenzii I/O către controlorul de memorie al hostului. În acest fel se efectuează și rezervarea locului pentru păstrarea în tampon a datelor prelucrate direct de memoriile operative. Astfel discul este în stare să schimbe mult mai eficient ordinea comenzilor primite, deoarece poate bloca memoria pentru tampon, fără să angajeze pentru aceasta programele hostului.
|
Pentru interfața SATA-III au fost introduse mai multe modificări în funcționarea NCQ. Printre altele s-a îmbunătățit managementul de ordonare și s-au adăugat comenzile legate de deservirea mai bună a fluxului de date a informațiilor multimedia, datorită permisiunii hostului pentru transmiterea informațiilor – dacă trebuie sau care operații trebuie oprite – precum și cărora trebuie să li se mărească prioritatea. Astfel, s-a îmbunătățit eficiența generală a sistemului, fără să se incrementeze numărul de operațiuni de tip I/O efectuate de disc într-o singură secundă.
|
Sistemul NCQ care a fost implementat în cadrul interfeței SATA-II poate avea și o influentă negativă asupra anumitor sarcini I/O, având ca efect scăderea eficienței întregului sistem operativ. Acest algoritm nu a avut prestabiliți timpii pentru efectuarea operațiunilor I/O prestabilite. De asemenea, numărul de planificări de comutare a operațiunii I/O la capătul sistemului de așteptare nu era limitat. Efectuarea unei comenzi I/O poate așadar să întârzie în timp, din cauza comenzilor care apar între timp, cauzând astfel blocarea întregului proces.
|
Din cauza construcției discurilor SSD (mai multe secțiuni de memorie NAND conectate la un singur controlor și lipsa elementelor mecanice) cerințele NCQ sunt realizate în mod diferit, adică prin ordonare în adâncime. Această tehnologie constă în gruparea sarcinilor I/O planificate (prin intermediul controlerului) și executarea acestora, concomitent în cadrul setului de memorii NAND.
|
NCQ poate funcționa numai împreună cu echipamente de tip HDD/SSD cu un controlor al discurilor care conlucrează cu această tehnologie.
|