NVM express

NVM express, NVMe nebo dříve NVMHCI (Non-Volatile Memory Host Controller Interface Specification) je specifikace rozhraní pro komunikaci mezi flash pamětí a jejím řadičem. Rozhraní využívá hlavních výhod flash pamětí oproti starším mechanickým diskům. Rozhraní je optimalizováno pro maximální využití nízké latence a vysoké propustnosti dat při připojení flash paměti přes PCIe nebo například SATA Express U.2 sběrnice. NVMe operuje na hardwarovém ovladači, definuje sady příkazů a zařizuje komunikaci mezi externím hardwarem (SSD disk) a interními komponenty (procesor).

Okolnosti vzniku

SSD jednotka, která používá NVMe, ve formě PCI-Express x4

SSD disky dlouho využívaly ke komunikaci s počítačem rozhraní SATA, které se stalo běžným způsobem připojení. Avšak vzhledem k neustálému vývoji a dalšímu potenciálu flash paměti bylo SATA rozhraní, původně vyvinuté primárně pro mechanické typy úložišť, již zastaralé. SSD disky proto začaly být omezovány maximální možnou rychlostí SATA rozhraní nebo omezenými možnostmi paralelnosti přenosu dat.

Výrobci SSD disků proto přišli s alternativou připojení SSD disku k počítači pomocí sběrnice PCI-express x4, jejímiž hlavními výhodami jsou vyšší prostupnost dat a také větší využití paralelní komunikace pomocí linek PCIe. Problém však byl v počtu rozhraní, která by musela být podporována, protože každý výrobce si začal vyrábět své vlastní. Přišlo se proto s nápadem vytvořit unifikované rozhraní, pro které by každý z výrobců nemusel vyvíjet vlastní ovladače, a zároveň by také ulehčilo práci vývojářům operačních systémů, kteří by nemuseli optimalizovat systém pro každé rozhraní.

Historie 

Poprvé se NVMHCI objevilo v roce 2007 na konferenci Intel Developer Forum, avšak pouze v teoretické rovině. V roce 2008 skupina pracující na vývoji NVMHCI zveřejnila na svých internetových stránkách revizi 1.0.

Technická fáze vývoje začala v roce 2009. Na vývoji se podílelo velké množství firem pod taktovkou Intelu. První verze specifikace NVM express byla vydána v roce 2011, následována revizí o rok později. Hlavními rozdíly mezi těmito verzemi jsou v přidání tzv. „multipath I/O“ a také vektorového I/O. Dále následovalo několik dalších revizí, až v srpnu roku 2012 byly uvolněny na trh první chipsety nového standardu NVM express. V červenci roku 2013 pak Samsung oznámil první SSD disk se jménem Enterprise, založený na standardu NVMe.[1] Disk dle Samsungu dosahoval rychlostí 3 GB/s při čtení, což je několikrát víc než jejich předešlé produkty. V roce 2013 SandForce oznámil chipset s podporou x4 PCIe a rychlostmi 1 800 MB/s čtení/zápis v sekvenčním použití. V roce 2014 byly ohlášeny první produkty od Intelu postavené na standardu NVMe, které rovněž využívají sběrnici PCIe.

V březnu roku 2014 byla založena společnost NVM Express Inc., která sdružuje výrobce. Společnost má za úkol spravovat specifikace NVMe, dále je inovovat a také tuto technologii propagovat. Společnost je složena se zástupců různých firem pohybujících se v odvětví výroby a vývoje SSD disků.

NVM express vs AHCI/SATA

Předností rozhraní AHCI/SATA je hlavně široká softwarová podpora, rozhraní však bylo vyvinuto primárně pro magnetické úložiště a proto neumožňuje paralelní přenos dat. To znamená, že je AHCI rozhraní schopno zvládat pouze jednu řadu o 32 příkazech. Na druhou stranu NVMe rozhraní je schopno zvládat 65535 řad o 65535 příkazech v každé řadě. Díky tomu může procesor při čtení/zápisu dat využívat více procesorových jader s vyšší účinností, čímž se zvýší jak objem zpracovaných dat v jeden okamžik, tak rychlost jejich zpracování. Rozhraní NVMe dokáže navíc využívat více PCIe linek najednou. U PCIe 3.0 prostupnost dat na jedné lince dosahuje 1 GB/s jednosměrně. Například u zapojení přes sběrnici PCIe x8 tedy prostupnost dosahuje 8 GB/s, kdežto AHCI dosahuje rychlostí blížících se 500 MB/s.

NVMe rovněž operuje při nižší latenci, protože na rozdíl od AHCI nepotřebuje číst z registrů pro zadání příkazu pro rozhraní. Každý příkaz pro AHCI znamená 4 čtení registrů, což přidává přibližně 2,5 mikrosekund latence.

NVMe AHCI
Latence 2.8 µs 6.0 µs
Hloubka řad 64K řad o 64K příkazech 1 řada o 32 příkazech
Podpora více jader

CPU

Ano Jen omezená

Hardwarová podpora NVMe

SATA Express a SFF-8639

SATA Express je nová iterace staršího rozhraní SATA určená pro koncového zákazníka. Na druhé straně rozhraní SFF-8639 je určeno pro korporátní hlavně serverové využití.

SATAe SFF-8639
SATA/SAS SATA SATA/SAS
Počet PCIe linek x2 x4 nebo duální x2
Referenční hodiny Ano Ne
Max

Prostupnost

2 GB/s (jednosměrně) 4 GB/s (jednosměrně)
Výška 7mm 15mm
Shrnutí Flexibilita a cena Výkon

SATAe rozhraní bylo vytvořeno v roce 2013. V květnu roku 2014 byly vydány chipsety H97 a Z97 od Intelu s podporou M.2 a SATAe rozhraní. AMD plánuje přidat podporu SATAe a M.2 v roce 2017 s příchodem nového socketu AM4 (Zen). Ale SSD disků se SATAe podporou není zatím mnoho.

M.2

M.2 je rozhraní používající několik typů sběrnic pro připojení k počítači. PCIe 3.0, SATA 3.0 a USB 3.0. M.2 v případě připojení přes PCIe může využívat až 4 PCIe linky s teoretickou prostupností 4 GB/s jednosměrně. M.2 je schopno interagovat s NVMe ovladačem a tím pádem dokáže využívat velkého potenciálu pro paralelní prostupnost dat.

M.2 je možno použít také pro připojení externích karet, které například umožňují připojení Bluetooth či WiFi. M.2 rozhraní se dnes používá hlavně v přenosných zařízeních jako jsou notebooky.

M.2 socket 2 M.2 socket 3
SATA/PCIe x2 Ano, sdílené Ano, sdílené
PCIe x4 Ne Ano
Maximální prostupnost 2 GB/s 4 GB/s
Referenční hodiny požadovány požadovány

Socket 2 je konfigurace používána hlavně pro sběrnici SATA či PCIe x2 s nižšími rychlosti a větší konečnou velikostí úložného zařízení a nižší cenou.[2]

Socket 3 je konfigurace používána hlavně pro sběrnici PCIe s menší konečnou velikostí úložného zařízení, s vyšší rychlostí a zároveň také cenou.[2]

Podpora NVM express[3]

Windows

Prvním systémem s nativní podporou NVMe je Windows 8.1 a Windows Server 2012 R2.[4] Microsoft také zpětně přidal podporu pro NVMe pro Windows 7 a Windows Server 2008 R2.[5]

OS X

Apple přidal podporu pro NVMe svému desktopovému systému v updatu 10.10.3 pro OS X Yosemite.[6] MacBook Retina a MacBook Pro 2016 rovněž používají rozhraní NVMe.

iOS

Apple poprvé použil rychlou flash paměť s rozhraním NVMe přes sběrnici PCIe v modelech iPhone 6s a 6s Plus.[7]

Chrome OS

V únoru 2015 byla přidána podpora NVMe rozhraní pro Chrome OS.[8]

Linux

Ovladač pro linux byl vytvořen jako open-source projekt. První ovladač byl implementován v Linux kernelu v. 3.13.[9]

Solaris

Systém od vývojáře Oracle obdržel první ovladače ve verzi 11.2[10].

VMware

Intel vydal první ovladače pro verzi VMware vSphere 5.5. Nativně je NVMe podporováno od verze 6.0 dále.[11]

FreeBSD

Podpora vývoje nativní podpory byla sponzorována Intelem. Kernel systému ovladač obsahuje poprvé ve verzi 10.2.[12]

UEFI

UEFI ovladač.

Reference

V tomto článku byl použit překlad textu z článku NVM Express na anglické Wikipedii.

  1. Enterprise SSD - Flash Storage | Samsung Semiconductor Global Website. Samsung Semiconductor [online]. [cit. 2017-03-20]. Dostupné online. (anglicky)
  2. http://www.snia.org/sites/default/files/SSSI%20M%202%20Webcast%20Slides%20v10fnl.pdf
  3. Drivers. NVM Express. Dostupné online [cit. 2017-01-01].
  4. Windows 8.1 to support hybrid disks and adds native NVMe driver - Myce.com. Myce.com. Dostupné online [cit. 2017-01-01]. (anglicky)
  5. https://support.microsoft.com/en-us/kb/2990941. support.microsoft.com [online]. [cit. 2017-01-01]. Dostupné online.
  6. NVMe DRIVER. MacVidCards.com [online]. [cit. 2017-01-01]. Dostupné v archivu pořízeném dne 2016-11-23.
  7. HO, Joshua. iPhone 6s and iPhone 6s Plus Preliminary Results. AnandTech. Dostupné online [cit. 2017-01-01].
  8. ChromeOS adds boot support for NVM Express. NVM Express. Dostupné online [cit. 2017-01-01].
  9. Linux 3.13 - Linux Kernel Newbies. kernelnewbies.org [online]. [cit. 2017-01-01]. Dostupné online.
  10. New IPS Packages - What's New in Oracle® Solaris 11.2. docs.oracle.com [online]. [cit. 2017-01-01]. Dostupné online.
  11. VMware. NVM Express. Dostupné online [cit. 2017-01-01].
  12. FreeBSD 10.2-RELEASE Release Notes. www.freebsd.org [online]. [cit. 2017-01-01]. Dostupné online.
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.