Test prestazionale SerialATA con Native Command Queuing
Analisi tecnica e prestazionale della nuova tecnologia Native Command Queuing destinata ad equipaggiare i dischi della prossima generazione e che promette di aumentare sensibilmente le prestazioni degli hard disk SerialATA grazie ad alcune ottimizzazioni in fase di lettura e scrittura
di Alessandro Bordin pubblicato il 08 Luglio 2004 nel canale StorageCenni teorici - parte 2
Esistono tuttavia delle ulteriori ottimizzazioni per rendere ancora più efficiente il lavoro delle testine sia in lettura che in scrittura. Per quanto riguarda la seek latency si possono utilizzare piatti di diametro ridotto (è il caso degli SCSI ad altissime prestazioni), con ovvie limitazioni di capienza, in contrasto con l'esigenza media attuale. Un altro metodo consiste nell'ottimizzare le richieste, in modo da minimizzare gli spostamenti della testina, organizzando meglio le richieste. L'algoritmo RPO soddisfa le richieste del sistema ad una ad una, anche nel caso di tracce distanti, con continui "avanti e indietro" sulla faccia del piatto.
La tecnologia Native Command Queuing permette di fare il punto della situazione sulle richieste e pianificare il movimento della testina trascurando l'ordine cronologico della richiesta e dando la precedenza alla vicinanza dei dati richiesti sul piatto.
Un esempio può essere utile a comprendere meglio il problema. Immaginiamo un ascensore fermo al piano terra su cui salgono quattro persone. La prima persona aziona il pulsante 4, la seconda il 2, la terza il 5 e la quarta il 3. Seguendo la logica dell'algoritmo RPO, l'ascensore si sposterebbe prima al quarto piano, poi al secondo, per poi risalire al quinto e ridiscendere al terzo, con uno spreco di tempo evidente. Sembrerà strano, ma i dischi attuali funzionano così.
L'ottimizzazione fornita dal Native Command Queuing in fatto di seek latencies può essere riassunta nel "ragionamento" fatto dall'ascensore per fermarsi al secondo, terzo, quarto e quinto piano, ignorando le precedenze ma scegliendo il metodo più veloce per accontentare le richieste. Ovviamente è una versione semplicistica di come stanno le cose, ma serve per meglio capire il ragionamento di base.
Per quanto riguarda la rotational latency le cose si complicano un po' di più. Una volta individuata la traccia, è la volta di individuare il settore. Attualmente la testina, nel peggiore dei casi, si posiziona sulla traccia, il disco fa un giro quasi completo per far scorrere il riferimento LBA, in modo che al giro seguente la testina trovi a colpo sicuro il settore ricercato. Può succedere che il riferimento sia a mezzo giro, oppure ad un angolo di pochi gradi; resta il fatto che poi serve un altro giro per rintracciare il dato.
Esistono due modi per ottimizzare il processo di individuazione del settore. Il primo è qualcosa di simile a quanto visto nell'ottimizzazione della seek latency, ovvero organizzare le richieste in modo che siano "vicine" indipendentemente dalle precedenze. Altro metodo consiste nell'ottimizzazione chiamata out-of-order data delivery. Appena posizionata sulla traccia, la testina legge tutti i settori, in modo che con un solo giro ha tutti i dati a disposizione in cache, compreso il riferimento LBA. Un algoritmo permette di relativizzare la posizione del settore cercato, risparmiando fino ad un giro intero per lo stesso risultato ottenibile con metodi tradizionali.
Il Native Command Queuing sfrutta queste ottimizzazioni, grazie anche a tre caratteristiche particolari implementate:
Race-Free Status Return Mechanism: questa caratteristica permette al disco di ricevere una qualsiasi richiesta in qualsiasi momento.Le richieste sono poi gestite dall'elettronica del disco stesso in base ai criteri sopra citati.
Interrupt Aggregation: generalmente il disco "interrompe" le richieste ulteriori da parte del sistema (anche se per un tempo brevissimo), ogni volta che ha esegue una singola richiesta. Con la tecnologia NCQ ciò può non succedere, in quanto possono essere portate a termine contemporaneamente diverse richieste, limitando così il numero di interruzioni. Non più dunque una interruzione per ogni singola richiesta, ma una interruzione ogni x richieste svolte contemporaneamente.
First Party DMA: le operazioni DMA vengono abilitate dal disco senza il supporto software del sistema operativo. Da qui il nome First Party DMA.
Sulla carta dunque il Native Command Queuing ottimizza lo spostamento della testina, stressando meno la meccanica e rendendo di conseguenza più affidabile il disco, sempre il linea teorica ma credibile.







KTC H27E6 a 300Hz e 1ms: come i rivali ma a metà prezzo
Cineca inaugura Pitagora, il supercomputer Lenovo per la ricerca sulla fusione nucleare
Mova Z60 Ultra Roller Complete: pulisce bene grazie anche all'IA
GeForce RTX 50 SUPER cancellate o rimandate? La verità (forse) è una: nessuno sa nulla
Windows 11 si prepara a vibrare: Microsoft ruba il feedback aptico a iPhone e Android
La “Burnout Season” colpisce l’Italia: iniziano i 36 giorni più stressanti dell'anno. Ecco dati secondo OnePlus
QNAP annuncia il JBOD TL-R6020Sep-RP: oltre 1 PB di spazio in appena 4U
Siemens e NVIDIA uniscono le forze: arriva una nuova piattaforma per il metaverso industriale
Ricarica veloce e durata batteria: miti sfatati da due anni di test
Le "navi volanti" di Candela anche alle Maldive: presto in servizio 10 aliscafi P-12
Bambini su misura? Il caso della startup Preventive - che piace ai miliardari della Silicon Valley
Iliad porta le SIM Express in edicola: rivoluzione nella distribuzione mobile
Offerte Amazon sui TV Mini LED Hisense 2025: 50'' a 349€ e l'imponente 85” a poco più di 1.000€
Il silenzio digitale che fa male: come il ghosting trasforma le relazioni online e mina la fiducia
Il responsabile del programma Cybertruck lascia Tesla, ma è sua la colpa del flop?
Domanda alle stelle per SSD e RAM: in Giappone li razionano come il pane in tempo di guerra
Zuckerberg vuole eliminare tutte le malattie: ecco come l'IA di Biohub può riuscirci








