NVMe e SATA: cosa c'è di diverso e quale è più veloce
NVMe è simile a SATA, ma presenta alcuni vantaggi rispetto ad esso. È importante notare che questo articolo contiene molti dettagli tecnici; se siete semplicemente interessati a quale disco scegliere, abbiamo scritto un altro articolo intitolato Unità SSD convenzionali e unità NVMe.
NVMe (Non-Volatile Memory Express) è un protocollo di interfaccia progettato specificamente per le unità a stato solido (SSD). Le unità SSD non hanno parti in movimento e sono per molti versi più robuste delle unità HDD. Attualmente, le unità SSD sono già la fonte principale di archiviazione per smartphone e tablet. Inoltre, le unità SSD sono più costose delle unità HDD e vengono spesso utilizzate come cache insieme alle unità HDD per aumentare le prestazioni dei computer.
Poiché le unità SSD sostituiscono sempre più spesso le più lente unità disco rigido (HDD) nei computer, era necessaria una nuova interfaccia per sfruttare le elevate velocità delle unità SSD. Storicamente, le installazioni di SSD accedevano alle unità SSD attraverso interfacce come Serial Attached SCSI (SAS) e Serial ATA (SATA), utilizzate con le unità disco più lente. Tuttavia, le unità SSD hanno il netto vantaggio di fornire un accesso più veloce tramite PCI Express (PCIe).
NVME è stato progettato da zero come metodo per fornire un accesso efficiente ai dispositivi di archiviazione con memoria non volatile (flash), ovvero le unità a stato solido (SSD). NVMe offre un'interfaccia più veloce per sfruttare le velocità di cui sono capaci le unità SSD. Infatti, NVMe è un'interfaccia di controller host ottimizzata e scalabile, progettata per i sistemi aziendali, i data center e i sistemi client che utilizzano unità SSD PCI Express (PCIe).
Le specifiche dello standard NVMe sono disponibili all'indirizzo nvmexpress.org.
Esistono diverse interfacce alternative per le unità SSD (che possono essere utilizzate per sostituire le unità disco nei PC), come Serial ATA (SATA), mSATA e PCIe. Per quanto riguarda PCIe, è possibile utilizzare l'interfaccia interna se l'unità SSD si trova su una scheda che può essere collegata a un connettore PCIe sulla scheda madre. I server di oggi possono accedere alle unità SSD tramite SCSI seriale (SAS), SATA, PCIe o fibra ottica.
Le unità SSD basate su NVMe utilizzano PCIe per ottenere una latenza ridotta. I fattori di forma che utilizzano il protocollo NVMe devono collegarsi a PCIe sul computer. Le connessioni per NVMe possono essere effettuate tramite una scheda di espansione PCIe, un connettore U.2 da 2,5 pollici o un piccolo fattore di forma M.2. Attualmente i produttori di SSD tendono a passare a PCIe e la maggior parte di essi utilizza il connettore M.2, noto come "Next Generation Form Factor".
Come funziona NVMe?
La coda di invio e completamento è uno dei meccanismi che sfruttano la tecnologia SSD in NVMe. Il software host della coda gestisce il flusso di dati SSD, crea e cancella le singole code, annulla i comandi, ecc. Un computer con quattro core può avere quattro coppie di code per garantire che le strutture di dati siano memorizzate nella cache del core appropriato (vedi figura). Inoltre, NVMe supporta code multiple e profonde, indipendenti l'una dall'altra.
Figura. Per NVMe, il sistema Submission and Completion Queue è un meccanismo che sfrutta la tecnologia SSD (immagine: nvmexpress.org).
Le unità SSD NVMe sul mercato
NVMe è stato originariamente creato per i sistemi aziendali e i data center. Ora NVMe sta entrando gradualmente nel mercato consumer.
SATA ha un limite di larghezza di banda di 6,0 gigabit al secondo (Gbps), mentre SAS ha un limite di larghezza di banda di 12 Gbps.
NVMe è un protocollo di interfaccia che utilizza la tecnologia PCIe per trasferire i dati tra un processore e un'unità SSD.
PCIe 3.0 è stato rilasciato nel 2010 e fornisce ~1GB/s per linea (bidirezionale).
Con 4 corsie, PCIe 3.0 fornirà 8 Gbps in entrambe le direzioni contemporaneamente (duplex) per un totale di 16 Gbps.
PCIe è anche scalabile. Su 16 corsie, PCIe 3.0 offre un duplex di 16 Gbps.
La specifica PCIe 4.0 è stata pubblicata alla fine del 2017. Rispetto a PCIe 3.0, ha raddoppiato il throughput, ridotto la latenza, migliorato la scalabilità e il supporto alla virtualizzazione. La specifica PCI Express 5.0 è prevista per il 2019. La velocità del bus PCI Express 5.0 dovrebbe raggiungere i 32 GT/s (Gigatransactions/s).