本页使用了标题或全文手工转换

NVM Express

维基百科,自由的百科全书
跳转至: 导航搜索
Non-Volatile Memory Host Controller Interface Working Group
NVM Express logo.svg
簡稱 NVMe
成立時間 2011年,​6年前​(2011
網站 www.nvmexpress.org

NVM Express或進一步縮寫NVMe,全稱Non-Volatile Memory Host Controller Interface Specification(縮寫NVMHCI),可譯作「非揮發性記憶體主機控制器界面規範」,是與AHCI類似的、基於裝置邏輯界面的匯流排傳輸協定規範,主要用於通過PCI Express(PCIe)匯流排與電腦連接的非揮發性記憶體裝置(例如,採用快閃記憶體固態硬碟機),英文名稱縮寫的前三個字母「NVM」就代表「非揮發性記憶體」。本規範主要是為基於快閃記憶體的存儲裝置提供一個低延時、內部並行化的原生界面規範,也為現代CPU、電腦平台及相關應用提供原生存儲並行化的支援,[1]令主機硬體和軟體可以充分利用固態存儲裝置的並列化存儲能力。相比此前機械硬碟機時代的AHCI,NVMe/NVMHCI降低了I/O操作等待時間、提升同一時間內的操作數、更大容量的操作隊列等。

依託於PCIe匯流排,NVMe裝置可適用於各種支援PCIe匯流排的物理插槽上,包括標準尺寸的PCIe扩展卡(一般是4個PCIe通道)[2]、採用U.2物理連接界面(SFF-8639)的2.5英寸/3.5英寸標準尺寸固態硬碟機、[3][4]SATA Express匯流排(相容於PCIe)的裝置、M.2規格擴展卡等。[5][6]

本規範由「Non-Volatile Memory Host Controller Interface Working Group」(非揮發性記憶體主機控制器界面工作組)負責管理。

作業系統支援[编辑]

Linux內核的存儲控制堆疊中,NVMe的資料路徑、不同層面下多重內部隊列的位置[7]
9Front
2017年3月30日,NVMe驅動程式釋出並供使用[8]
Chrome OS
2015年2月24日,加入NVMe驅動至內核和開機載入程式,可從NVMe裝置啟動Chrome OS[9][10]
DragonFly BSD
DragonFly 4.6開始內建NVMe驅動程式[11]
FreeBSD
Intel贊助開發的驅動程式已內建於FreeBSD的head、stable/9分支中。[12][13]nvd(4)和nvme(4)驅動程式則是在10.2版FreeBSD中開始預設內建於其中。[14]
Haiku
Haiku已有驅動開發時程,但是目前仍未完成[15]
illumos
illumos於2014年10月15日獲得驅動程式支援[16]
iOS
iOS 9開始支援,首款配備了NVMe介面的裝置是iPhone 6S/6S Plus,也是首款採用NVMe的行動裝置。物理介面和UFS相同的採用M-PHY PCIe。接下來Apple推出的iPad ProiPhone SE也採用了NVMe[17]
Linux
NVMe的驅動程式最早是英特爾提供的,適用於Linux的內核驅動程式模組。[18][19][20]這個模組在2012年3月19日整合到Linux內核的主線驅動程式當中,Linux內核3.3版開始內建支援而無需安裝額外模組。[21]
2014年1月19日的Linux內核 3.13版開始,加入由Fusion-io開發的blk-multiqueue或稱blk-mq模組,是為「可變區塊層」(scalable block layer),用於NVMe SSD。This leverages the performance offered by SSDs and NVM Express, by allowing much higher I/O submission rates. With this new design of the Linux kernel block layer, internal queues are split into two levels (per-CPU and hardware-submission queues), thus removing bottlenecks and allowing much higher levels of I/O parallelization.[22][23][24]
2015年4月12日發佈的Linux內核 4.0版開始,VirtIO區塊層驅動程式,SCSI驅動層(與SATA驅動共用)、回環裝置驅動(loop device) UBI(unsorted block images)驅動(供快閃記憶體實作區塊擦寫管理)以及RBD驅動程式(which exports Ceph RADOS objects as block devices)都被修改,以適應及適配越來越多的NVMe裝置[25][26][27]
NetBSD
NetBSD在2016年的開發版本中初步支援NVMe。[28]OpenBSD則是在其6.0版時釋出了NVMe的驅動程式。
OpenBSD
OpenBSD的NVMe驅動程式自2014年6月開始,由此前開發並釋出USBAHCI驅動程式的高級開發團隊負責。[29]OpenBSD 6.0開始正式支援。[30]
OS X/macOS
Mac OS X 10.10.3(OS X Yosemite)開始支援NVMe。蘋果公司的Retina MacBook和2016年發佈MacBook Pro,配備了使用NVMe的PCIe SSD作為主硬碟機使用。[31]
Solaris
Solaris自Oracle Solaris 11.2開始支援NVMe。[32]
VMware
英特爾釋出了供VMWare使用的NVMe驅動程式,[33]vSphere 6.0以及其後的版本中,均包含了該驅動程式,支援多種NVMe裝置。[34]在 vSphere 6 update 1 更新中,VMWare的VSAN軟體模擬的存儲子系統也開始支援NVMe裝置。[35]
Windows
微軟在Windows 8.1Windows Server 2012 R2開始,原生支援NVMe裝置。[36][37]同時也為Windows 7Windows Server 2008 R2提供原生驅動程式支援(需由使用者自行下載獲取)[38]
除了微軟官方提供的驅動程式以外,OpenFabrics Alliance也有維護一套開放原始碼的NVMe驅動程式,使用於Windows 7、8、8.1、10以及Windows Server 2008 R2、2012、2012 R2,這套驅動程式由數個加入了NVMe工作組的公司開發,包括IDT、英特爾以及LSI[39] The current release is 1.5 from December 2016.[40]

參見[编辑]

備註[编辑]

參考資料[编辑]

  1. ^ Compare: NVM Express. NVM Express, Inc. [2017-01-24]. NVMe™ is designed from the ground up to deliver high bandwidth and low latency storage access for current and future NVM technologies. 
  2. ^ Drew Riley. Intel SSD DC P3700 800GB and 1.6TB Review: The Future of Storage. tomshardware.com. 2014-08-13 [2014-11-21]. 
  3. ^ Intel Solid-State Drive DC P3600 Series (PDF). Intel: 18, 20–22. 2015-03-20 [2015-04-11]. 
  4. ^ Paul Alcorn. SFFWG Renames PCIe SSD SFF-8639 Connector To U.2. Tom's Hardware. 2015-06-05 [2015-06-09]. 
  5. ^ 引用错误:没有为名为ahci-nvme的参考文献提供内容
  6. ^ Paul Wassenberg. SATA Express: PCIe Client Storage (PDF). SATA-IO. 2013-06-25 [2014-11-21]. 
  7. ^ Werner Fischer; Georg Schönberger. Linux Storage Stack Diagram. Thomas-Krenn.AG. 2015-06-01 [2015-06-08]. 
  8. ^ hg/plan9front:sys/src/9/pc/sdnvme.c. 
  9. ^ NVM Express  » ChromeOS adds boot support for NVM Express. nvmexpress.org. [21 March 2015]. 
  10. ^ 4f503189f7339c667b045ab80a949964ecbaf93e - chromiumos/platform/depthcharge - Git at Google. googlesource.com. [21 March 2015]. 
  11. ^ DragonFly BSD 4.6. www.dragonflybsd.org. [2016-09-08]. 
  12. ^ Log of /head/sys/dev/nvme. FreeBSD source tree. The FreeBSD Project. [16 October 2012]. 
  13. ^ Log of /stable/9/sys/dev/nvme. FreeBSD source tree. The FreeBSD Project. [3 July 2013]. 
  14. ^ FreeBSD 10.2-RELEASE Release Notes. The FreeBSD Project. [5 August 2015]. 
  15. ^ #9910 NVMe devices support. dev.haiku-os.org. [2016-07-28]. 
  16. ^ 4053 Add NVME Driver Support to Illumos. github.com. [2016-05-23]. 
  17. ^ Ho, Joshua. iPhone 6s and iPhone 6s Plus Preliminary Results. www.anandtech.com. [2016-06-01]. 
  18. ^ Matthew Wilcox. NVM Express driver. LWN.net. 2011-03-03 [2013-11-05]. 
  19. ^ Keith Busch. Linux NVMe Driver (PDF). flashmemorysummit.com. 2013-08-12 [2013-11-05]. 
  20. ^ IDF13 Hands-on Lab: Compiling the NVM Express Linux Open Source Driver and SSD Linux Benchmarks and Optimizations (PDF). activeevents.com. 2013 [2014-01-11]. 
  21. ^ Merge git://git.infradead.org/users/willy/linux-nvme. kernel.org. 2012-01-18 [2013-11-05].  参数|title=值左起第7位存在删除符 (帮助)
  22. ^ Linux kernel 3.13, Section 1.1 A scalable block layer for high-performance SSD storage. kernelnewbies.org. 2014-01-19 [2014-01-25]. 
  23. ^ Jonathan Corbet. The multiqueue block layer. LWN.net. 2013-06-05 [2014-01-25]. 
  24. ^ Matias Bjørling; Jens Axboe; David Nellans; Philippe Bonnet. Linux Block IO: Introducing Multi-queue SSD Access on Multi-core Systems (PDF). kernel.dk. ACM. 2013 [2014-01-25]. 
  25. ^ Linux kernel 3.18, Section 1.8. Optional multiqueue SCSI support. kernelnewbies.org. 2014-12-07 [2014-12-18]. 
  26. ^ Linux kernel 4.0, Section 3. Block. kernelnewbies.org. 2015-05-01 [2015-05-02]. 
  27. ^ Linux Multi-Queue Block IO Queueing Mechanism (blk-mq) - Device Drivers. thomas-krenn.com. 2015-06-08 [2015-06-08]. 
  28. ^ nvme -- Non-Volatile Memory Host Controller Interface. NetBSD manual pages. 2016-01-01 [2016-09-02]. 
  29. ^ David Gwynne. non volatile memory express controller (/sys/dev/ic/nvme.c). BSD Cross Reference. 2014-04-16 [2014-04-27]. 
  30. ^ David Gwynne. man 4 nvme. OpenBSD man page. 2016-04-14 [2016-08-07]. 
  31. ^ Faster 'NVM Express' SSD Interface Arrives on Retina MacBook and OS X 10.10.3. macrumors.com. [11 April 2015]. 
  32. ^ nvme(7D). Oracle. [2014-12-02]. 
  33. ^ Intel Solid-State for NVMe Drivers. intel.com. 2015-09-25 [2016-03-17]. 
  34. ^ VMware Compatibility Guide for NVMe devices. vmware.com. [2016-03-17]. 
  35. ^ VSAN Now Supporting NVMe Devices. vmware.com. 2015-11-11 [2016-03-17]. 
  36. ^ 引用错误:没有为名为snia-windows的参考文献提供内容
  37. ^ Windows 8.1 to support hybrid disks and adds native NVMe driver. Myce.com. 2013-09-06 [2014-01-11]. 
  38. ^ Update to support NVM Express by using native drivers in Windows 7 or Windows Server 2008 R2. Microsoft. 2014-11-13 [2014-11-17]. 
  39. ^ Windows NVM Express. Project web site. [September 18, 2013]. 
  40. ^ https://svn.openfabrics.org/svnrepo/nvmewin/releases/

外部連結[编辑]