NVM express

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

NVM express, NVMe nebo dříve NVMHCI (Non-Volatile Memory Host Controller Interface Specification) je specifikace rozhraní pro komunikaci s úložištěm využívající flash paměti. 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řenosová rychlost) 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í. +more 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í. +more 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. +more 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. 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. +more 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. +more 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. +more

NVMeAHCI
Latence2. 8 µs6. 0 µs
Hloubka řad64K řad o 64K příkazech1 řada o 32 příkazech
Podpora více jader CPUAnoJen 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í. +more

SATAeSFF-8639
SATA/SASSATASATA/SAS
Počet PCIe linekx2x4 nebo duální x2
Referenční hodinyAnoNe
Max Prostupnost2 GB/s (jednosměrně)4 GB/s (jednosměrně)
Výška7mm15mm
ShrnutíFlexibilita a cenaVý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í pro připojení nevolatilních pamětí (tj. flash, resp. SSD disky) přes PCIe sběrnici.

Podpora NVM express

Windows

Prvním systémem s nativní podporou NVMe je Windows 8. +more1 a Windows Server 2012 R2. Microsoft také zpětně přidal podporu pro NVMe pro Windows 7 a Windows Server 2008 R2.

OS X

Apple přidal podporu pro NVMe svému desktopovému systému v updatu 10. 10. +more3 pro OS X Yosemite. 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.

Chrome OS

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

Linux

Ovladač pro linux byl vytvořen jako open-source projekt. První ovladač byl implementován v Linux kernelu v. +more 3. 13.

Solaris

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

VMware

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

FreeBSD

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

OpenBSD

Ovladač [url=https://man.openbsd.org/nvme]nvme[/url] se objevil poprvé ve verzi 6.0, vydané 1. září 2016.

UEFI

UEFI ovladač.

Reference

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top