In che modo Memory Express non volatile raggiunge velocità di trasferimento dati così elevate?



un giorno fa p Steve Arar La memoria non volatile Express (NVMe) è un protocollo di interfaccia scalabile sviluppato per sfruttare appieno il parallelismo offerto dalle tecnologie NVM come Flash. Con le unità SSD (Solid State Drive) veloci di oggi, il collo di bottiglia delle prestazioni è la velocità dei dati dell'interfaccia host piuttosto che la larghezza di banda del dispositivo di archiviazione. NVMe è stato sviluppato per risolvere questo problema.
Utilizza il protocollo PCI Express (PCIe) ed è progettato per essere più veloce dei protocolli SAS e SATA originariamente progettati tenendo presenti le caratteristiche del disco rigido (HDD). In questo articolo, discuteremo brevemente alcuni dei concetti di base che consentono a NVMe di raggiungere un'elevata velocità di trasferimento dati. Quindi, esamineremo brevemente Flashtec NVMe 3108 di Microchip, un controller SSD NVMe aziendale PCIe Gen 4 a 8 canali recentemente rilasciato, come esempio.
Con un HDD, un'operazione di scrittura / lettura in / da un particolare settore del disco richiede lo spostamento del gruppo testina nella posizione corretta sul piatto rotante (un ritardo spesso indicato come tempo di ricerca). Pertanto, gli HDD accedono ai dati in modo sequenziale e relativamente lento. Il protocollo SAS, che è una scelta tradizionale per molti acquirenti di storage, è stato originariamente progettato tenendo conto delle caratteristiche dell'HDD.
Al contrario, i sistemi di storage Flash utilizzano diversi livelli di parallelismo per ottenere velocità di lettura / scrittura più elevate. Di seguito è mostrata una tipica architettura SSD. In questo caso, diversi dispositivi di memoria NAND sono organizzati come un canale.
Il pipeline di dati viene solitamente impiegato per far funzionare in parallelo diversi dispositivi di memoria di un canale e ottenere un throughput più elevato. Ad esempio, mentre un'operazione di scrittura viene eseguita nel primo dispositivo di memoria di un canale, le informazioni sull'indirizzo di una imminente operazione di scrittura possono essere trasferite a un secondo dispositivo di memoria. Per ottenere questa operazione in parallelo, il controller Flash deve distribuire le informazioni che riceve da un'interfaccia esterna tra diversi canali.
La struttura di cui sopra consente a un SSD di accedere alle celle di memoria istantaneamente e in parallelo. Per gli SSD odierni, con il loro enorme parallelismo intrinseco e la latenza minima, abbiamo bisogno di un nuovo protocollo di interfaccia ottimizzato. Questo nuovo protocollo, progettato da zero per l'architettura SSD, è NVMe.
NVMe utilizza il bus PCIe insieme all'accodamento dei comandi per ottenere prestazioni scalabili senza precedenti. Di seguito daremo uno sguardo a queste due funzionalità. PCIe è un'interfaccia bus generica utilizzata sia nelle applicazioni di elaborazione client che aziendali.
Con un SSD basato su PCIe, possiamo collegare il dispositivo di archiviazione direttamente al backplane di un server. Tuttavia, con i protocolli SATA e SAS, è necessario un blocco del controller di archiviazione tra l'SSD e la porta PCIe della CPU. Di conseguenza, una soluzione basata su PCIe avvicina l'SSD alla CPU ed elimina la latenza associata al controller di archiviazione.
Inoltre, la larghezza di banda / le prestazioni di PCIe sono scalabili e possono soddisfare le esigenze dei dispositivi di archiviazione Flash multi-die in futuro. Ad esempio, la terza generazione di PCIe supporta fino a 16 corsie per il trasferimento dei dati con ciascuna corsia che supporta un throughput massimo di dati di 1 Gb / s. NVMe incorpora l'accodamento dei comandi che consente al processore di mettere in coda i comandi emessi ed eseguirli in modo efficiente.
Ciò consente al processore di utilizzare appieno il parallelismo offerto dall'architettura SSD. Quando un comando tenta di accedere a un die NAND occupato, l'host può semplicemente accodare questo comando e continuare con il comando successivo nella coda. La tecnica di accodamento è impiegata anche nei protocolli SATA e SAS; tuttavia, questi protocolli supportano una singola coda di 32 e 256 comandi, rispettivamente.
NVMe può avere fino a 64.000 code con ciascuna coda che supporta fino a 64.000 comandi. Questo, insieme all'elevata velocità di trasferimento dati di PCIe, consente a NVMe di sfruttare appieno il parallelismo offerto da un SSD. Il controller Flashtec NVMe 3108 esemplifica molti dei principi discussi sopra.
Il dispositivo è progettato per fornire un'infrastruttura su scala cloud con la larghezza di banda e la densità di archiviazione richieste dai carichi di lavoro di intelligenza artificiale (AI) e apprendimento automatico (ML). È un controller SSD NVMe aziendale PCIe Gen 4 a 8 canali. Il nuovo dispositivo offre più di un milione di operazioni di I / O al secondo (IOPS) per carichi di lavoro casuali e maggiore di 6 Gigabyte al secondo (GB / s) di larghezza di banda sequenziale.
Microchip afferma che il controller Flashtec NVMe 3108 incorpora integrità dei dati di classe enterprise end-to-end e funzionalità di sicurezza critiche come la radice hardware di Trust per aumentare l'affidabilità del sistema. Immagine in primo piano (modificata) usata per gentile concessione di Microchip Hai lavorato con la tecnologia NVMe in passato? Condividi le tue esperienze nei commenti qui sotto ..

Yorumlar

Bu blogdaki popüler yayınlar

Classici protocolli CAN vs CAN FD: le differenze che contano per i progettisti

Che cos'è DrMOS, l'IC che alimenta i processori di nuova generazione?

Il modello Elmore Delay nel design VLSI