NVM Express - NVM Express

Specifikace rozhraní hostitele řadiče energeticky nezávislé paměti
Logo NVM Express. Svg
Rok začal 2011 ; před 10ti lety ( 2011 )
Zkratka NVMe
webová stránka nvmexpress .org

NVM Express ( NVMe ) nebo Non-Volatile Memory Host Controller Interface Specification ( NVMHCIS ) je otevřená specifikace rozhraní logického zařízení pro přístup k energeticky nezávislým paměťovým médiím počítače obvykle připojeným prostřednictvím sběrnice PCI Express (PCIe). Zkratka NVM znamená energeticky nezávislou paměť , což je často NAND flash paměť, která se dodává v několika fyzických formách, včetně pevných disků (SSD), doplňkových karet PCI Express (PCIe) a karet M.2 , nástupce karet mSATA . NVM Express, jako rozhraní logických zařízení, bylo navrženo tak, aby vydělávalo na nízké latenci a vnitřní rovnoběžnosti polovodičových úložných zařízení.

Architektonicky je logika pro NVMe fyzicky uložena uvnitř a je prováděna čipem řadiče NVMe, který je fyzicky umístěn společně s úložným médiem, obvykle SSD. Změny verzí pro NVMe, např. 1.3 až 1.4, jsou začleněny do paměťových médií a nemají vliv na komponenty kompatibilní s PCIe, jako jsou základní desky a CPU.

Díky své konstrukci umožňuje NVM Express hostitelskému hardwaru a softwaru plně využívat úrovně paralelismu, které jsou u moderních SSD možné. Výsledkem je, že NVM Express snižuje režii I/O a přináší různá vylepšení výkonu ve srovnání s předchozími rozhraními logických zařízení, včetně více dlouhých front příkazů a snížené latence. Předchozí protokoly rozhraní, jako je AHCI, byly vyvinuty pro použití s ​​mnohem pomalejšími jednotkami pevných disků (HDD), kde mezi požadavkem a přenosem dat existuje velmi dlouhé zpoždění (vzhledem k provozu CPU), kde jsou rychlosti dat mnohem pomalejší než rychlosti RAM a kde otáčení disku a doba hledání vedou k dalším požadavkům na optimalizaci.

Zařízení NVM Express jsou k dispozici především ve formě rozšiřujících karet PCI Express standardní velikosti a jako 2,5palcová zařízení s formátovým faktorem, která poskytují čtyřproudé rozhraní PCI Express přes konektor U.2 (dříve SFF-8639). Úložná zařízení využívající SATA Express a specifikaci M.2, která podporují NVM Express jako rozhraní logických zařízení, jsou oblíbeným případem použití pro NVMe a staly se dominantní formou polovodičového úložiště pro servery, stolní počítače i notebooky.

Specifikace

K dosud vydaným specifikacím NVMe patří:

  • 1.0e (leden 2013)
  • 1.1b (červenec 2014)
  • 1,2 (listopad 2014)
    • 1.2a (říjen 2015)
    • 1.2b (červen 2016)
    • 1.2.1 (červen 2016)
  • 1.3 (květen 2017)
    • 1.3a (říjen 2017)
    • 1.3b (květen 2018)
    • 1.3c (květen 2018)
    • 1.3d (březen 2019)
  • 1.4 (červen 2019)
    • 1.4a (březen 2020)
    • 1.4b (září 2020)
  • 2,0 (květen 2021)
    • 2.0a (červenec 2021)

Pozadí

Intel SSD 750 series, SSD, který používá NVM Express, ve formě rozšiřující karty PCI Express 3.0 × 4 (pohled zepředu a zezadu)

Historicky většina SSD používala pro propojení se zbytkem počítačového systému sběrnice jako SATA , SAS nebo Fibre Channel . Vzhledem k tomu, že se SSD disky dostaly na masové trhy, SATA se stala nejtypičtějším způsobem připojení SSD v osobních počítačích ; SATA však byla navržena především pro propojení s mechanickými pevnými disky (HDD) a pro disky SSD, které se postupem času zlepšovaly v rychlosti, se stávala stále nedostačující. Například během přibližně pěti let od přijetí hlavního proudu masového trhu (2005–2010) mnoho SSD již bylo zadržováno relativně pomalými datovými rychlostmi dostupnými pro pevné disky - na rozdíl od pevných disků jsou některé SSD omezeny maximální propustností SATA.

High-end SSDs were made using PCI Express bus before NVMe, but using non-standard specification interfaces. Díky standardizaci rozhraní SSD potřebují operační systémy ke spolupráci se všemi SSD dodržujícími specifikaci pouze jeden společný ovladač zařízení . To také znamená, že každý výrobce SSD nemá ovladače rozhraní specifické pro design. Je to podobné tomu, jak jsou velkokapacitní paměťová zařízení USB stavěna tak, aby vyhovovala specifikaci třídy velkokapacitních paměťových zařízení USB a fungovala se všemi počítači, aniž by bylo potřeba ovladačů pro každé zařízení.

Zařízení NVM Express jsou také používána jako stavební kámen úložiště s nárazovou vyrovnávací pamětí v mnoha předních superpočítačích, jako jsou Fugaku Supercomputer , Summit Supercomputer a Sierra Supercomputer atd.

Dějiny

První podrobnosti o novém standardu pro přístup k energeticky nezávislé paměti se objevily na Intel Developer Forum 2007, kdy byl NVMHCI ukázán jako hostitelský protokol navrhovaného architektonického návrhu, který měl v paměti Open NAND Flash Interface Working Group (ONFI) (flash) strana čipů. Toho roku byla vytvořena pracovní skupina NVMHCI vedená společností Intel. Specifikace NVMHCI 1.0 byla dokončena v dubnu 2008 a zveřejněna na webových stránkách společnosti Intel.

Technické práce na NVMe začaly ve druhé polovině roku 2009. Specifikace NVMe byly vyvinuty NVM Express Workgroup, která se skládá z více než 90 společností; Amber Huffman z Intelu byla předsedkyní pracovní skupiny. Verze 1.0 specifikace byla vydána 1. března 2011, zatímco verze 1.1 specifikace byla vydána 11. října 2012. Hlavní funkce přidané ve verzi 1.1 jsou vícecestné I/O (se sdílením prostoru jmen) a scatter-collect libovolné délky I/O. Očekává se, že budoucí revize výrazně zlepší správu oboru názvů. Vzhledem ke svému zaměření funkcí byl NVMe 1.1 původně nazýván „Enterprise NVMHCI“. V lednu 2013 byla vydána aktualizace základní specifikace NVMe s názvem verze 1.0e. V červnu 2011 byla vytvořena skupina Promoter Group vedená sedmi společnostmi.

První komerčně dostupné čipsety NVMe byly vydány společností Integrated Device Technology (89HF16P04AG3 a 89HF32P08AG3) v ​​srpnu 2012. První disk NVMe, podnikový disk Samsung XS1715 , byl oznámen v červenci 2013; podle společnosti Samsung tento disk podporoval rychlost čtení 3 GB/s, šestkrát rychlejší než jejich předchozí podnikové nabídky. Řada řadičů LSI SandForce SF3700, vydaná v listopadu 2013, také podporuje NVMe. „ Prosumerský “ produkt Kingston HyperX využívající tento ovladač byl představen na veletrhu Consumer Electronics Show 2014 a sliboval podobný výkon. V červnu 2014 společnost Intel oznámila své první produkty NVM Express, rodinu datových center Intel SSD, která je s hostitelem propojena prostřednictvím sběrnice PCI Express, která zahrnuje řady DC P3700, DC P3600 a DC P3500. V listopadu 2014 jsou disky NVMe komerčně dostupné.

V březnu 2014 se skupina začlenila do NVM Express, Inc., která v listopadu 2014 sestává z více než 65 společností z celého odvětví. Specifikace NVM Express jsou vlastněny a udržovány společností NVM Express, Inc., která také podporuje povědomí o NVM Express jako průmyslovém standardu. Společnost NVM Express, Inc. je řízena třináctičlennou správní radou vybranou ze skupiny Promoter Group, která zahrnuje společnosti Cisco, Dell, EMC, HGST, Intel, Micron, Microsoft, NetApp, Oracle, PMC, Samsung, SanDisk a Seagate.

V září 2016 asociace CompactFlash oznámila, že vydá novou specifikaci paměťové karty CFexpress , která využívá NVMe.

NVMe Host Memory Buffer (HMB) přidán ve verzi 1.2 specifikace NVMe. HMB umožňuje SSD využívat hostitelskou DRAM , což může zlepšit výkon I/O u SSD bez DRAM.

Faktory tvaru

Existuje mnoho tvarových faktorů SSD disku NVMe, jako je AIC, U.2, U.3, M.2 atd.

AIC (doplňková karta)

Téměř všechny rané SSD disky NVMe jsou HHHL (poloviční výška, poloviční délka) nebo FHHL (plná výška, poloviční délka) AIC s rozhraním PCIe 2.0 nebo 3.0. Kartu SSD HHHL NVMe lze snadno vložit do slotu PCIe na serveru.

U.2 (SFF-8639)

U.2 , dříve známý jako SFF-8639 , je počítačové rozhraní pro připojení jednotek SSD k počítači. Využívá až čtyři PCI Express dráhy. Dostupné servery mohou kombinovat až 4 SSD disky U.2 NVMe.

U.3 (SFF-8639)

U.3 je postaven na specifikaci U.2 a používá stejný konektor SFF-8639. Jedná se o standard „tří režimů“, který kombinuje podporu SAS, SATA a NVMe do jednoho řadiče. U.3 může také podporovat hot-swap mezi různými jednotkami, kde je k dispozici podpora firmwaru. Jednotky U.3 jsou stále zpětně kompatibilní s U.2, ale jednotky U.2 nejsou kompatibilní s hostiteli U.3.

M.2

M.2 , dříve známý jako Next Generation Form Factor ( NGFF ), používá počítačovou sběrnici M.2 NVMe disku SSD . Rozhraní poskytovaná prostřednictvím konektoru M.2 jsou PCI Express 3.0 nebo PCI Express 4.0 (až čtyři pruhy ).

NVMe-oF

NVM Express over Fabrics (NVMe-oF) je koncept použití přenosového protokolu přes síť pro připojení vzdálených zařízení NVMe, na rozdíl od běžných NVMe, kde jsou fyzická zařízení NVMe připojena ke sběrnici PCIe buď přímo, nebo přes přepínač PCIe k PCIe autobus. V srpnu 2017 byla standardem organizace International Committee for Information Technology Standards (ICITS) předložena norma pro používání NVMe přes Fibre Channel (FC) a tato kombinace je často označována jako FC-NVMe nebo někdy NVMe/FC.

V květnu 2021 jsou podporovanými přenosovými protokoly NVMe:

Standard pro NVMe over Fabrics publikovala společnost NVM Express, Inc. v roce 2016.

Následující software implementuje protokol NVMe-oF:

  • Iniciátor a cíl Linux NVMe-oF . RoCE transport byl původně podporován a s linuxovým jádrem 5.x byla přidána nativní podpora pro TCP.
  • Storage Performance Development Kit (SPDK) NVMe-oF iniciátor a cílové ovladače. Jsou podporovány přenosy RoCE i TCP.
  • Iniciátor a cíl Starwind NVMe-oF pro Microsoft Windows , podporující přenosy RoCE i TCP.

Srovnání s AHCI

Rozhraní Advanced Host Controller Interface (AHCI) má výhodu široké softwarové kompatibility, ale má nevýhodu v tom, že při použití s SSD připojenými přes sběrnici PCI Express neposkytuje optimální výkon . Jako rozhraní logického zařízení byl AHCI vyvinut, když účelem adaptéru hostitelské sběrnice (HBA) v systému bylo propojit subsystém CPU/paměti s mnohem pomalejším subsystémem úložiště založeným na rotujícím magnetickém médiu . Výsledkem je, že AHCI zavádí určité neefektivity při použití se zařízeními SSD, která se chovají mnohem více jako RAM než jako spřádací média.

Rozhraní zařízení NVMe bylo od základu navrženo s využitím nízké latence a rovnoběžnosti SSD PCI Express a doplňuje rovnoběžnost současných procesorů, platforem a aplikací. Na vysoké úrovni se základní výhody NVMe oproti AHCI týkají jeho schopnosti využívat paralelismus v hardwaru a softwaru hostitele, což se projevuje rozdíly v hloubkách příkazové fronty , efektivitou zpracování přerušení , počtem přístupů do registru , které nelze načíst , atd. v různých vylepšeních výkonu.

Níže uvedená tabulka shrnuje rozdíly na vysoké úrovni mezi rozhraními logických zařízení NVMe a AHCI.

Porovnání AHCI a NVMe na vysoké úrovni
  AHCI NVMe
Maximální hloubka fronty Jedna fronta příkazů;
32 příkazů na frontu
65535 front;
65536 příkazů na frontu
Neuplatnitelné přístupy k registru
(2 000 cyklů každý)
Šest na příkaz ve frontě;
devět na příkaz ve frontě
Dva na povel
Přerušit Jediné přerušení Až 2048 přerušení MSI-X
Paralelismus
a více vláken

K vydání příkazu vyžaduje zámek synchronizace
Žádné zamykání
Účinnost
pro 4 KB příkazy
Parametry příkazu vyžadují
dvě serializovaná hostitelská načtení DRAM
Získá parametry příkazu
v jednom 64bajtovém načtení
Přenos dat Poloviční duplex Plny Duplex

Podpora operačního systému

Pozice datových cest NVMe a více interních front v různých vrstvách úložného zásobníku jádra Linuxu .
Chrome OS
24. února 2015 byla do systému Chrome OS přidána podpora spouštění ze zařízení NVM Express .
DragonFly BSD
První verze DragonFly BSD s podporou NVMe je verze 4.6.
FreeBSD
Intel sponzoroval ovladač NVM Express pro hlavu a stabilní/9 větví FreeBSD . Ovladače nvd (4) a nvme (4) jsou standardně zahrnuty v konfiguraci jádra GENERIC od verze FreeBSD 10.2 v roce 2015.
Genoda
V rámci verze 18.05 byla do rámce Genode přidána podpora pro NVMe spotřebitelské úrovně.
Haiku
Haiku získalo podporu pro NVMe 18. dubna 2019.
illumos
illumos obdržel podporu pro NVMe 15. října 2014.
iOS
S vydáním iPhone 6S a 6S Plus , Apple představil první mobilní nasazení NVMe přes PCIe v chytrých telefonech. Apple následoval tyto zprávy s vydáním první generace iPad Pro a první generace iPhone SE , že také použít NVMe přes PCIe.
Linux
Společnost Intel publikovala 3. března 2011 ovladač NVM Express pro Linux , který byl 18. ledna 2012 sloučen do hlavní řady jádra Linuxu a vydán jako součást verze 3.3 jádra Linuxu 19. března 2012. Podpora Linuxu pro NVMe Host Memory Buffer od verze 4.13.1 s výchozí maximální velikostí 128 MB.
Operační Systém Mac
Apple představil softwarovou podporu pro NVM Express v Yosemite 10.10.3. Hardwarové rozhraní NVMe bylo představeno v 2016 MacBooku a MacBooku Pro .
NetBSD
NetBSD přidal podporu pro NVMe v NetBSD 8.0. Implementace je odvozena z OpenBSD 6.0.
OpenBSD
Vývojové práce potřebné k podpoře NVMe v OpenBSD byly zahájeny v dubnu 2014 vedoucím vývojářem dříve zodpovědným za podporu USB 2.0 a AHCI . Ve verzi OpenBSD 6.0 byla povolena podpora NVMe.
OS/2
Arca Noae poskytuje ovladač NVMe pro ArcaOS od dubna 2021. Ovladač vyžaduje pokročilá přerušení, jak poskytuje ACPI PSD běžící v pokročilém režimu přerušení (režim 2), což vyžaduje také jádro SMP.
Solaris
Solaris získal podporu pro NVMe v Oracle Solaris 11.2.
VMware
Intel poskytl ovladač NVMe pro VMware , který je součástí vSphere 6.0 a novějších verzí, podporujících různá zařízení NVMe. Od aktualizace vSphere 6 aktualizace 1 podporuje softwarově definovaný úložný subsystém VMware VSAN také zařízení NVMe.
Okna
Společnost Microsoft přidala nativní podporu pro NVMe do Windows 8.1 a Windows Server 2012 R2 . Do aktualizací byly přidány nativní ovladače pro Windows 7 a Windows Server 2008 R2 . Neoficiálně byla také přidána podpora pro Windows XP a Vista. Mnoho prodejců také vydalo vlastní ovladače Windows pro svá zařízení. K dispozici jsou také ručně přizpůsobené instalační soubory pro instalaci ovladače konkrétního dodavatele na libovolnou kartu NVMe, například použití ovladače Samsung NVMe se zařízením NVMe jiného výrobce než Samsung, které může být potřeba pro další funkce, výkon a stabilitu. Podpora NVMe HMB byla přidána v aktualizaci Windows 10 Anniversary Update (verze 1607) v roce 2016.
OpenFabrics Alliance udržuje open-source NVMe Windows ovladače pro Windows 7/8 / 8.1 a Windows Server 2008R2 / 2012 / 2012R2, vyvinula od základního kódu předložené několika promotorových firem v NVMe pracovní skupiny, konkrétně IDT, Intel, a LSI. Aktuální verze je 1.5 z prosince 2016.

Softwarová podpora

QEMU
NVMe podporuje QEMU od verze 1.6 vydané 15. srpna 2013.
UEFI
Open Source NVMe ovladač pro UEFI je k dispozici na SourceForge.

Nástroje pro správu

nvme-cli na Linuxu

nvmecontrol

Tento nvmecontrolnástroj slouží k ovládání disku NVMe z příkazového řádku na FreeBSD. Byl přidán do FreeBSD 9.2.

nvme-cli

Nástroje uživatelského prostoru NVM-Express pro Linux.

Viz také

Reference

externí odkazy