NVM Express

De la Wikipedia, enciclopedia liberă
Logo NVM Express
Samsung MZ-V6E500 M.2 disk NVMe
Diagrama cozilor de comandă în NVMe. Controlerul NVMe comunică prin cozile din PCIe.

NVM Express sau NVMe (Non-Volatile Memory Express), este o specificație de interfață care permite unui computer să acceseze un dispozitiv de stocare SSD printr-o interfață PCI Express. Protocolul este succesorul AHCI (Advanced Host Controller Interface), și proiectat de la început pentru suporturi de memorie non-volatile (NAND) prin interfața PCIe.
Interfața NVMe a fost special creată pentru a valorifica la maximum latența scăzută a dispozitivelor de stocare SSD U.2 și M.2 și paralelismul arhitecturii PCIe. Controlerul NVMe transferă datele stocate pe SSD către procesor prin 65.535 de cozi de comandă paralele, fiecare dintre acestea putând conține peste 65.000 comenzi per coadă.

Prin utilizarea cozilor paralele de comandă, NVMe exploatează mult mai eficient capacitățile arhitecturilor multi-core ale noilor generații de procesoare. Astfel, fiecare aplicație sau proces poate avea propria coadă de comenzi independentă, reducând la minimum impactul asupra performanței sistemului în ansamblu. În plus, NVMe livrează de peste două ori mai mulți IOPS per CPU (comparativ cu SAS și SATA), având o latență considerabil mai mică, între 64% și 51%. În comparație cu protocolul de utilizare comună AHCI, timpul de acces este mai mic, o solicitare este procesată în medie în 2,8μs față de 6μs.

Unitățile care folosesc NVM Express pot fi carduri de extensie PCI Express, fie unități de factor de 2,5″ care utilizează două sau patru benzi PCI Express pentru a se conecta prin conectorul U.2 (SFF-8639). Unitățile SATA Express și unitățile interne compacte ale factorului de formă M.2 (NGFF) care utilizează PCIe acceptă și NVM Express ca una dintre interfețele logice.

Forța motrice din spatele standardului este Intel precum și producători de soluții de stocare, Cisco, Dell EMC, Microsoft, NetApp, Broadcom Inc., Micron Technology, Oracle, Samsung, SanDisk, Seagate Technology și Western Digital. [1][2][3]

Scurt istoric[modificare | modificare sursă]

Primele detalii despre noul standard de acces la memorie non-volatilă au apărut la Intel Developer Forum (IDF) în 2007, unde a fost introdus NVMHCI (Non-Volatile Memory Host Controller Interface). În același an, a fost format un grup de lucru pentru studierea NVMHCI, condus de Intel. Prima specificație NVMHCI 1.0 a fost finalizată în aprilie 2008.[4]

Dezvoltarea tehnică a NVMe a început în a doua jumătate a anului 2009. Specificațiile NVMe au fost dezvoltate de grupul de lucru NVM Express, care include peste 90 de companii. Versiunea 1.0 a specificației NVMe a fost introdusă la 1 martie 2011, urmată de o revizuire un an mai târziu. [5]

Primele controlere SSD cu suport NVMe, au fost lansate de Integrated Device Technology în august 2012.

Samsung a lansat în 2013 XS1715, un SSD NVMe de 2,5 ", de asemenea, primul SSD cu noul conector U.2 (SFF-8639). [6] [7]

În 2014 este format NVM Express Inc. cu peste 65 de companii având sarcina de a gestiona specificațiile NVMe, inova și promova tehnologia. În același an, Intel a introdus prima sa linie de unități NVMe server, seriile DC P3700, DC P3600 și DC P3500 [8], și în anul următor, Intel 750.[9]

În iunie 2015, Samsung anunță SM951-NVMe, unul dintre primele unități NVMe în factorul de formă M.2. [10][11]

Utilizări[modificare | modificare sursă]

Intel P3608 NVMe flash SSD pentru aplicații server

NVMe a devenit o alegere uzuală în cazul companiilor care utilizează intensiv baze de date: OLTP, Oracle, MS-SQL etc. Plusul de performanță asigurat de sistemele de stocare flash NVMe, permite reducerea numărului de servere fizice, dar și a licențelor care trebuie achiziționate. NVMe acționează ca un catalizator și în cazul platformelor de Real-time Data care utilizează NoSQL, Apache Spark sau SAP HANA, valorificând optim latențele de ordinul microsecundelor ale dispozitivelor SSD.

Tehnologia NVMe a devenit o componentă esențială și în proiectele de tipul Big Data, Cloud Computing, sau inteligență artificială și învățare automată.

Nu în ultimul rând, soluțiile de stocare flash NVMe sunt folosite și în stații de lucru: editare foto/video 3D sau alte programe ce pot beneficia de un transfer cât mai rapid al datelor, fișiere mari și/sau multe, pentru aplicații tranzacționale de mare viteză și pentru soluțiile care trebuie să transfere rapid volume mari de date între unitățile de procesare și mediile de stocare.

Se estimează că, începând din 2021, NVMe va depăși ca pondere interfața SCSI pe echipamentele de stocare primară, înlocuind-o definitiv în urmatorii ani. conform IDC FutureScape: Worldwide Enterprise Infrastructure 2018 Predictions.[12]

Specificații[modificare | modificare sursă]

Versiunile publicate ale specificației NVMe au fost:

  • 1.0e - ianuarie 2013
  • 1.1b - 2 iulie 2014
  • 1.2 - 3 noiembrie 2014
    • 1.2a - 23 noiembrie 2015
    • 1.2b - iunie 2016
    • 1.2.1 iunie 2016
  • NVMe-over-Fabrics (NVMe-oF) 2016
  • 1.3 - mai 2017
    • 1.3a - octombrie 2017
    • 1.3b - mai 2018
    • 1.3c - 24 mai 2018
    • 1.3d - martie 2019
  • 1.4 - iunie 2019 [13]

NVMe over Fabrics[modificare | modificare sursă]

Diagramă NVMe over Fabrics

NVMe-oF este o dezvoltare suplimentară a standardului NVMe proiectată să extindă avantajele de înaltă performanță și latență scăzută ale NVMe pe rețele care conectează servere și sisteme de stocare, cum ar fi Fibre Channel, Ethernet, InfiniBand și Omni-Path. Versiunea 1.0 a specificației NVMe-oF a fost publicată de NVM Express Inc. pe 5 iunie 2016. [14]

Specificația NVMe-oF este în mare măsură aceeași cu specificația NVMe. Una dintre principalele diferențe dintre NVMe-oF și NVMe este metodologia de transmitere și primire a comenzilor și răspunsurilor. NVMe este proiectat pentru utilizarea locală și mapează comenzile și răspunsurile la memoria partajată a computerului prin PCIe. În schimb, NVMe-oF utilizează un sistem bazat pe mesaje pentru a comunica între computerul gazdă și dispozitivul de stocare țintă. [15]

Suport[modificare | modificare sursă]

Hardware[modificare | modificare sursă]

Placă de bază
Majoritatea plăcilor de bază moderne acceptă unități NVMe printr-un slot M.2. Specificația NVMe acceptă SSD-uri care folosesc diferite tipuri de memorie non-volatile, inclusiv flash NAND și tehnologia 3D XPoint dezvoltată de Intel și Micron Technology. Factorii de formă suportați includ carduri PCIe (HHHL și FHHL), SSD M.2 și SSD U.2. În cea mai mare parte, unitățile moderne NVMe oferă instalare plug and play. [16]

Software[modificare | modificare sursă]

Sistem de operare
Toate sistemele de operare moderne acceptă dispozitive NVMe și au drivere standard pentru acestea:

  • Chrome OS - Pornirea de pe dispozitivele NVMe a fost adăugată pe 24 februarie 2015.[17]
  • Linux - Dezvoltarea inițială a driverului pentru Linux a fost realizată de Intel. Driver-ul a fost inclus în kernel 3.3 a nucleului Linux la 19 martie 2012.
  • OS X - În actualizarea 10.10.3 pentru OS X Yosemite, Apple a introdus suport pentru NVMe. Retina MacBook și MacBook Pro 2016 folosesc NVMe ca interfață logică a dispozitivului.
  • iOS - Apărute în septembrie 2015, smartphone-urile Apple iPhone 6S și iPhone 6s Plus au fost primele dispozitive mobile echipate cu unități NVMe încorporate.[18]
  • BSD
    • FreeBSD - Dezvoltarea driverului NVMe a fost susținută de Intel. Începând cu versiunea FreeBSD 10.2, driverele nvd și nvme sunt incluse în configurația implicită a kernel-ului.
    • DragonFly - Prima versiune oficială cu suport NVMe este 4.6.
    • OpenBSD - Prima versiune a driverului NVMe a apărut în OpenBSD 6.0.
    • NetBSD - Suportul pentru NVMe în a apărut în versiunea 8.0.
  • Solaris - Suport NVMe de la Oracle Solaris 11.2.
  • VMware - Intel a furnizat un driver NVMe, inclus în vSphere 6.0 și versiunile ulterioare, care acceptă diferite dispozitive NVMe.
  • QEMU - NVMe este susținut de QEMU din versiunea 1.6 lansată pe 15 august 2013.
  • UEFI - Suport prin driverul EDK II. [19]

Vezi și[modificare | modificare sursă]

Referințe și note[modificare | modificare sursă]

  1. ^ What is NVMe and why is it important? A Technical Guide blog.westerndigital.com, Rohit Gupta, February 06, 2018
  2. ^ NVM whitepaper nvmexpress.org
  3. ^ Definition: NVMe (non-volatile memory express) searchstorage.techtarget.com
  4. ^ Non-Volatile Memory Host Controller Interface - NVM Express nvmexpress.org
  5. ^ NVM Express Management Interface, Revision 1.1 nvmexpress.org
  6. ^ First NVMe PCIe SSD Arrives!!! nvmexpress.org
  7. ^ Samsung XS1715 2.5" NVMe SSD Review[nefuncțională] storagereview.com, December 11th, 2015
  8. ^ Intel® SSD DC Family for PCIe* Brief intel.com
  9. ^ Intel® SSD 750 Series nvmexpress.org
  10. ^ Samsung Begins Mass Production of Industry’s First M.2 NVMe PCIe SSD for PCs And Workstations thessdreview.com, Scot Strong, April 15, 2015
  11. ^ NVM Express Organization History Arhivat în , la Wayback Machine. nvmexpress.org
  12. ^ IDC FutureScape: Worldwide Enterprise Infrastructure 2018 Predictions Arhivat în , la Wayback Machine. public.dhe.ibm.com
  13. ^ Specifications Arhivat în , la Wayback Machine. nvmexpress.org
  14. ^ NVMe over Fabrics Overview - NVM Express nvmexpress.org
  15. ^ NVMe over Fabrics (NVMe-oF) searchstorage.techtarget.co
  16. ^ Selecting the Right M.2-Format NVMe SSD ecnmag.com, John W. Koon, 03/28/2019
  17. ^ ChromeOS adds boot support for NVM Express nvmexpress.org
  18. ^ iPhone 6s and iPhone 6s Plus Preliminary Results anandtech.com, Joshua Ho, September 28, 2015
  19. ^ EDK II sourceforge.net

Legături externe[modificare | modificare sursă]

Commons
Commons
Wikimedia Commons conține materiale multimedia legate de NVM Express

Bibliografie[modificare | modificare sursă]

  • David A. Deming: The Essential Guide to Serial ATA and SATA Express, CRC Press, 2014, ISBN: 9781482243314