NVM Express

Allikas: Vikipeedia
NVM Express logo

NVM Express (NVMe) või NVMHCI (inglise keeles Non-Volatile Memory Host Controller Interface Specification) on liides, mis lubab juhttarkvaral suhelda säilmälude alamsüsteemiga kasutades PCI Express siini.[1]

NVM (inglise keeles Non-Volatile Memory) tähendab tõlkes säilmälu. Kõige rohkem kasutuses olevad säilmälud on välkmälud, mida kasutatakse ka pooljuhtketastena. NVM Expressi on algusest saati arendatud NVMHCI töögrupi poolt, hiljem NVM Express Inc., et kasutada ära välkmälu põhjal loodud andmekandjate väikest latentsust ja sisemist paralleelsust. Eesmärgiks oli järjendada tolleaegsete keskprotsessorite, platvormide ja rakenduste paralleelsust.[2]

Disaini poolest lubab NVM Express hosttarkvaral ja -riistvaral ära kasutada tänapäevaste SSD-ketaste paralleelsust. Selle tulemusena vähendab NVM Express I/O üldkulusid ja võrreldes eelnevate loogikaseadmete liidestega parandab mitme pika käskudeloendi ja vähendatud latentsusaja abil jõudlust.[1] Varasemad liideseprotokollid (AHCI) olid loodud kasutamiseks palju aeglasemate kõvaketastega kus päringute ja andmete kättesaamise vahel on pikemad viivitused, andmekiirused on madalamad kui muutmälu kiirused ja kus ketta pöörlemine ja otsimisaeg kutsuvad esile edasisi optimeerimise nõudeid.

NVM Expressi kasutavaid seadmeid on olemas nii PCI Express seadmetena[3] kui ka tavalise 2,5-tollise SSD kesta sees, mis kasutavad PCIe 3.0 X4 liidest läbi U.2 pistiku, mille varasem nimetus oli SFF-8639.[4] SATA Expressi salvestusseadmed ja M.2 spetsifikatsioon arvuti siseste laienduskaartide jaoks toetavad NVM Expressi kui loogilist liidest.[5][6]

Taust[muuda | muuda lähteteksti]

NVM Expressi toetusega Intel P3608 SSD-ketas, PCI Express 3.0 x8

Ajalooliselt kasutasid paljud SSD-kettad ülejäänud arvutisüsteemiga suhtlemiseks kas SATA, SAS või kiudkanali siine. SSD-ketaste saadavale tulekuga massiturule sai SATA kõige populaarsemaks viisiks ühendada SSD-kettaid personaalarvutitesse. Kuna SATA oli mõeldud eelkõige kõvaketaste (HDD) ühendamiseks, siis ajapikku muutus see ebasobivaks SSDde jaoks mille kiirused aina kasvasid.[7] Aastaks 2013 olid paljude uute SSD-ketaste piiranguks kõvaketaste jaoks loodud siinide kiirused. Erinevalt kõvaketastest olid paljud SSD-kettad piiratud SATA maksimaalse läbilaskevõimega.[8]

Tipptasemel SSD-kettaid on tehtud enne NVM Expressi kasutades PCI Express, kuid kasutades ebastandardseid spetsifikatsiooni liideseid. Luues ühtse, standardse liidese SSD-ketastele vajavad operatsioonisüsteemid ainult ühte seadmedraiverit, et suhelda kõigi SSD-ketastega mis jälgivad seda spetsifikatsiooni. See vähendab ka erinevate SSD-ketaste tootjate kulusid, sest nad ei pea kulutama ressursse, et luua seadmele vastavat seadmedraiverit.[9] See sarnaneb USB- andmekandjate ehitusega, kus seadmed ehitatakse jälgides kindlat USB-andmekandjate klassi spetsifikatsiooni. Sel moel töötavad spetsifikatsiooni jälgivad USB-andmekandjad kõigi arvutitega ilma, et need vajaksid eraldi seadmedraiverit erinevatele seadmetele.

2014. aasta septembris teatas FCIA (ingl k Fibre Channel Industry Association), et luuakse uus töörühm, mis hakkab välja töötama uut standardit kasutamaks NVM Expressi üle kiudkanali.[10]

Ajalugu[muuda | muuda lähteteksti]

Esimesed detailid uuest standardist pääsemaks ligi säilmälule ilmusid 2007. aastal toimunud Inteli Development Forumil. Sellel foorumil esitleti NVMHCId kui peremeesseadmete protokolli välja pakutud arhitektuuri disainile mille flash mälu osas kasutati ONFIt (ingl k Open NAND Flash Interface Working Group).[11] NVMHCI töögrupp, mida juhtis Intel, loodi hiljem samal aastal. NVMHCI spetsifikatsiooni esimene versioon valmis ning avaldati Inteli kodulehel 2008. aasta aprillis.[12][13][14]

Tehniline töö NVMe kallal algas 2009. aasta teisel poolel.[15] NVMe spetsifikatsiooni arendas rohkem kui 90 firmast koosnev grupp mida nimetati NVM Expressi töögrupiks (ingl k NVM Express Workgroup). Seda töögruppi juhtis Amber Huffman. Esimene spetsifikatsioon NVM Expressi nime all, versioon 1.0, avaldati 1. märtsil 2011 NVMe töögrupi poolt. Versioonis 1.0 määratleti optimeeritud registrite liides, käsustiku kogum ja tunnusjoonte kogum PCI Express siini kasutavatele SSD-ketastele.[16] 2011. aasta juunis loodi NVMe edendajate grupp (ingl k promoter group) kus algselt oli seitse kohta. Grupi eesmärgiks oli edendada NVMe standardi laialdasemat kasutuselevõttu.[16] Spetsifikatsiooni versioon 1.1 avaldati 11. oktoobril 2012. Peamised lisad versioonis 1.1 olid multi-path IO, koos nimeruumi jagamisega ja suvalise pikkusega scatter-gather IO.[15] NVMe versiooni 1.1 nimetati algselt Enterprise NVMHCIks, eelkõige tema funktsioonide koonduvuse pärast.[17] 23. jaanuaril 2013 avaldati NVMe versiooni 1.0 uuendus mille versiooniks märgiti 1.0e.[18]

Esimene kaubanduslik saadaval olevad NVMe kiibistikud avalikustati 2012. aasta augustis Integrated Device Technology poolt. Nende nimetused olid 89HF16P04AG3 ja 89HF32P08AG3.[19] Esimene NVMe-ketas, Samsungi XS1715, tehti teatavaks juulis 2013. Samsungi sõnul toetab SSD-ketas järjestikkust lugemiskiirust kuni 3 GB/s, kuus korda kiirem kui senised tipptaseme enterprise SSD-kettad.[20] 2013. aasta novembris avaldatud LSI SandForce SF3700 kontrollerite perekond toetab samuti NVM Expressi. Testidest saadi teada, et nende kontrollerite järjestikkused lugemise ja kirjutamise kiirused on 1,8 GB/s ja 150k/80k IOPSi.[21] Sama kontrollerit kasutavat Kingstoni HyperX-ketast esitleti 2014. aasta Consumer Electronics Showl, ning see ketas lubas sarnaseid kiiruseid. See ketas oli sel ajal Kingstoni firma kiireim ja esimene PCIe SSD-ketas.[22] Intel teatas oma esimestest NVM Expressi seadmetest juunis 2014. aastal. Selleks oli Inteli SSD andmekeskuse perekond, mis ühendus hostiga kasutades PCI Express siini. Sellesse perekonda kuuluvad DC P3500, DC P3600 ja DC P3700 seeria kettad.[23]

2014. aasta märtsis muutus grupp NVM Express Inc.-iks, kuhu 2017. aastal kuulub üle 60 firma. NVM Expressi spetsifikatsioone omab ja haldab NVM Express Inc., mis tegeleb tööstuse teadlikuse suurendamisega NVM Expressist kui tööstusharu laiust standardit. NVM Express Inc.-i juhib 13-liikmeline grupp firmasid, mida nimetatakse promootorite grupiks. Promootorite grupi liikmed valitakse NVM Expressi liikmefirmade seast. Igal firmal promootorite grupist on koht juhatuses ja juhatuse valimised toimuvad iga kahe aasta tagant.[24][25][26]

Operatsioonisüsteemide tugi[muuda | muuda lähteteksti]

9Front

Esimene NVMe driveri kehtesta 9Frontile kehtestati 29. märtsil 2017, lootuses, et keegi saaks reaalse riistvara peal testida.[27]

Chrome OS

NVM Expressi ketastelt alglaadimise tugi lisati Chrome OSi veebruaris 2015.[28]

DragonFly BSD

DragonFly versioon 4.6, mis avaldati 2. augustil 2016, oli esimene NVM Expressi draiveriga versioon. Selles versioonis ei olnud NVMe tugi vaikimisi kernelisse lisatud, vaid tuli loader.conf failis lisada rida nvme_load=”YES”.[29]

FreeBSD

FreebSD versioon 10.2 oli esimene FreeBSD versioon kus NVM Expressi tugi oli vaikimisi lisatud üldisesse kerneli konfiguratsiooni. Selleks lisati NVMe ketta draiver ja NVMe tuuma draiver. Draiverite loomist toetas Intel.[30]

Linux

Linuxil on olnud NVM Expressi tugi alates kerneli versioonist 3.1.[31] Alates kerneli verioonist 3.3 on NVM Expressi draiver kernelis olemas.[32]

macOS

Alates OS X Yosemite uuendusest 10.10.3 on NVM Expressi tugi ka macOS operatsioonisüsteemil. Retina MacBook kasutab NVM Expressi üle PCI Expressi kui loogilist seadme liidest.[33]

Windows

Microsoft lisas NVM Expressi toe esimesena Windows 8.1 ja Windows Server 2012 R2-le.[34] Hiljem loodi uuendus, et lisada NVM Expressi tugi ka Windows 7 ja Windows Server 2008 R2-le.[35] NVMe Windowsi draiveri avatud lähtekoodi haldab OpenFabrics Alliance. Viimane versioon, 1.5, toetab Windows 7/8/8.1/10 ja Server 2008R2/2012/2012R2/2016RTM operatsioonisüsteeme.[36]

Viited[muuda | muuda lähteteksti]

  1. 1,0 1,1 NVM Express Inc. "NVM Express, Revision 1.2.1". Kasutatud 05.04.2017. Inglise keeles.
  2. NVM Express Inc. "NVM Express". Kasutatud 06.04.2017. Inglise keeles.
  3. D. Riley. "Intel SSD DC P3700 800GB and 1.6TB Review: The Future of Storage". Tom's Hardware. Kasutatud 08.04.2017. Inglise keeles.
  4. MASTERC. "EASY SSD GUIDE: SATA, MSATA, M.2 AND U.2". Republic of Gamers, Asus. Kasutatud 08.04.2017. Inglise keeles.
  5. D. Landsman, SanDisk. "AHCI and NVMe as Interfaces for SATA Express™ Devices - Overview". Serial ATA International Organization. Kasutatud 08.04.2017. Inglise keeles.
  6. J. Burek. "2017 Guide: The Best M.2 Solid-State Drives, Tested". Computer Shopper. Kasutatud 08.04.2017. Inglise keeles.
  7. W. Chu. "SSDs: What Comes After SATA III?". NewEggBusiness blog. Kasutatud 14.04.2017. Inglise keeles.
  8. Z. Kerekes. "Charting the Rise of the SSD Market". Storage search. Kasutatud 14.04.2017. Inglise keeles.
  9. "NVM Express Explained". Kasutatud 14.04.2017. Inglise keeles.
  10. "New INCITS T11 Committee Workgroup Formed to Enable Fibre Channel-based Solutions Using Future NVM Express Over Fabric Specification for Seamless Interoperability with Enterprise Storage Fabrics". FCIA - The Fibre Channel Industry Association. Kasutatud 14.04.2017. Inglise keeles.
  11. N. Novakovic. "Speeding up Flash... in a flash". The Inquirer. Kasutatud 18.04.2017. Inglise keeles.
  12. A. Thomas. "Flash new standard tips up". The Inquirer. Kasutatud 18.04.2017. Inglise keeles.
  13. A. Huffman. "NVMHCI: The Optimized Interface for Caches and SSDs". Kasutatud 18.04.2017. Inglise keeles.
  14. A. Huffman. "Extending the NVMHCI Standard to Enterprise". Kasutatud 18.04.2017. Inglise keeles.
  15. 15,0 15,1 P. Onufryk. "What’s New in NVMe 1.1 and Future Directions". Kasutatud 19.04.2017. Inglise keeles.
  16. 16,0 16,1 "New Promoter Group Formed to Advance NVM Express". Kasutatud 19.04.2017. Inglise keeles.
  17. "Solid State Storage Standards Explained". SNIA. Kasutatud 19.04.2017. Inglise keeles.
  18. "NVM Express revision 1.0e". Kasutatud 19.04.2017. Inglise keeles.
  19. L. Latif. "IDT releases two NVMe PCI-Express SSD controllers". The Inquirer. Kasutatud 20.04.2017. Inglise keeles.
  20. J. Linden. "Samsung Announces Industry’s First 2.5-Inch NVMe SSD". Storage Review. Kasutatud 20.04.2017. Inglise keeles.
  21. P. Lilly. "LSI Introduces Blazing Fast SF3700 Series SSD Controller, Supports Both PCIe and SATA 6Gbps". Hot Hardware. Kasutatud 20.04.2017. Inglise keeles.
  22. J. McEntegart. "Kingston Unveils First PCIe SSD: 1800 MB/s Read Speeds". Tom's Hardware. Kasutatud 20.04.2017. Inglise keeles.
  23. "Intel® SSD Data Center Family for PCIe*". Intel. Kasutatud 20.04.2017. Inglise keeles.
  24. "Promoter Information". NVM Express. Kasutatud 21.04.2017. Inglise keeles.
  25. "NVM Express FAQs". NVM Express. Kasutatud 21.04.2017. Inglise keeles.
  26. "NVM Express Organization History". NVM Express. Kasutatud 21.04.2017. Inglise keeles.
  27. "sdnvme.c parent". Kasutatud 21.04.2017.
  28. NVMeBMaster. "ChromeOS adds boot support for NVM Express". Kasutatud 21.04.2017. Inglise keeles.
  29. "DragonFly BSD 4.6". DragonFly BSD. Kasutatud 21.04.2017. Inglise keeles.
  30. "FreeBSD 10.2-RELEASE Release Notes". FreeBSD. Kasutatud 21.04.2017. Inglise keeles.
  31. J. L. Jacobi. "Everything you need to know about NVMe, the insanely fast future for SSDs". PCWorld. Kasutatud 21.04.2017. Inglise keeles.
  32. "Solid State Drives/NVMe". ArchLinux. Kasutatud 21.04.2017. Inglise keeles.
  33. A. Kim. "Faster 'NVM Express' SSD Interface Arrives on Retina MacBook and OS X 10.10.3". MacRumors. Kasutatud 21.04.2017. Inglise keeles.
  34. A. Herron. "Advancements in Storage and File Systems in Windows 8.1". Kasutatud 21.04.2017. Inglise keeles.
  35. "Update to add native driver support in NVM Express in Windows 7 and Windows Server 2008 R2". Microsoft. Kasutatud 21.04.2017. Inglise keeles.
  36. "NVMe Windows Driver Community Release, December 2016". Kasutatud 21.04.2017. Inglise keeles.