-
NVM Express
鎖定
- 中文名
- NVM Express
- 外文名
- NonVolatileMemoryHostControllerInterfaceSpecification
- 領 域
- 計算機接口
NVM Express簡介
NVM Express(NVMe),或稱非易失性內存主機控制器接口規範(英語:Non-VolatileMemoryHostControllerInterfaceSpecification,縮寫:NVMHCIS),是一個邏輯設備接口規範。它是與AHCI類似的、基於設備邏輯接口的總線傳輸協議規範(相當於通訊協議中的應用層),用於訪問通過PCI Express(PCIe)總線附加的非易失性存儲器介質(例如採用閃存的固態硬盤驅動器),雖然理論上不一定要求 PCIe 總線協議。
NVM代表非易失性存儲器(non-volatile memory)的首字母縮略字,這是固態硬盤(SSD)的常見的閃存形式。此規範主要是為基於閃存的存儲設備提供一個低延時、內部併發化的原生界面規範,也為現代CPU、計算機平台及相關應用提供原生存儲併發化的支持,令主機硬件和軟件可以充分利用固態存儲設備的並行化存儲能力。相比此前機械硬盤驅動器(HDD)時代的AHCI,NVMe/NVMHCI降低了I/O操作等待時間、提升同一時間內的操作數、更大容量的操作隊列等。
依託於PCIe總線,NVMe設備可適用於各種支持PCIe總線的物理插槽上,包括標準尺寸的PCIe擴展卡(一般是4個PCIe通道)、採用U.2物理連接界面(SFF-8639)的2.5英寸/3.5英寸標準尺寸固態硬盤驅動器、SATA Express總線(兼容於PCIe)的設備、M.2規格擴展卡等。
NVM Express背景
歷史上,大多數SSD使用如SATA、SAS或光纖通道等接口與計算機接口的總線連接。隨着固態硬盤在大眾市場上的流行,SATA已成為個人計算機中連接SSD的最典型方式;但是,SATA的設計主要是作為機械硬盤驅動器(HDD)的接口,並隨着時間的推移越來越難滿足速度日益提高的SSD。隨着在大眾市場的流行,許多固態硬盤的數據速率提升已經放緩。不同於機械硬盤,部分SSD已受到SATA最大吞吐量的限制。
在NVMe出現之前,高端SSD只得以採用PCI Express總線製造,但需使用非標準規範的接口。若使用標準化的SSD接口,操作系統只需要一個驅動程序就能使用匹配規範的所有SSD。這也意味着每個SSD製造商不必用額外的資源來設計特定接口的驅動程序。
NVM Express歷史
2009年Intel開始着手尋找SATA的替代方案。SATA作為串行接口,採用AHCI規範,其已經成為制約SSD速度的瓶頸。AHCI只有1個命令隊列,隊列深度32.而NVMe可以有65535個命令隊列,每個隊列都可以深達65536個命令。NVMe也充分使用了MSI的2048箇中斷向量優勢,延遲大大減小。
NVM Express操作系統支持
NVM Express9Front
2017年3月30日,NVMe驅動程序發佈並供使用
NVM ExpressChrome OS
2015年2月24日,加入NVMe驅動至內核和引導加載程序,可從NVMe設備啓動Chrome OS
NVM ExpressDragonFly BSD
DragonFly 4.6開始內置NVMe驅動程序
NVM ExpressFreeBSD
Intel贊助開發的驅動程序已內置於FreeBSD的head、stable/9分支中。nvd(4)和nvme(4)驅動程序則是在10.2版FreeBSD中開始默認內置於其中。
NVM ExpressHaiku
Haiku已有驅動開發時程,但是目前仍未完成
NVM Expressillumos
illumos於2014年10月15日獲得驅動程序支持
NVM ExpressiOS
iOS 9開始支持,首款配備了NVMe接口的設備是iPhone 6S/6S Plus,也是首款採用NVMe的移動設備。物理接口和UFS相同的採用M-PHY PCIe。接下來Apple推出的iPad Pro和iPhone SE也採用了NVMe
NVM ExpressLinux
NVMe的驅動程序最早是英特爾提供的,適用於Linux的內核驅動程序模塊。這個模塊在2012年3月19日集成到Linux內核的主線驅動程序當中,Linux內核3.3版開始內置支持而無需安裝額外模塊。
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.
2015年4月12日發佈的Linux內核 4.0版開始,VirtIO區塊層驅動程序,SCSI驅動層(與SATA驅動共用)、迴環設備驅動(loop device) UBI(unsorted block images)驅動(供閃存實現區塊擦寫管理)以及RBD驅動程序(which exportsCephRADOS objects as block devices)都被修改,以適應及適配越來越多的NVMe設備
NVM ExpressNetBSD
NetBSD在2016年的開發版本中初步支持NVMe。OpenBSD則是在其6.0版時發佈了NVMe的驅動程序。
NVM ExpressOpenBSD
OpenBSD的NVMe驅動程序自2014年6月開始,由此前開發併發布USB、AHCI驅動程序的高級開發團隊負責。OpenBSD 6.0開始正式支持。
NVM ExpressOS X/macOS
Mac OS X 10.10.3(OS X Yosemite)開始支持NVMe。蘋果公司的Retina MacBook和2016年發佈MacBook Pro,配備了使用NVMe的PCIe SSD作為主硬盤驅動器使用。
NVM ExpressSolaris
Solaris自Oracle Solaris 11.2開始支持NVMe。
NVM ExpressVMware
英特爾發佈了供VMWare使用的NVMe驅動程序,vSphere 6.0以及其後的版本中,均包含了該驅動程序,支持多種NVMe設備。在 vSphere 6 update 1 更新中,VMWare的VSAN軟件模擬的存儲子系統也開始支持NVMe設備。
NVM ExpressWindows
微軟在Windows 8.1和Windows Server 2012 R2開始,原生支持NVMe設備。同時也為Windows 7和Windows Server 2008 R2提供原生驅動程序支持(需由用户自行下載獲取)
除了微軟官方提供的驅動程序以外,OpenFabrics Alliance也有維護一套開放源代碼的NVMe驅動程序,使用於Windows 7、8、8.1、10以及Windows Server 2008 R2、2012、2012 R2,這套驅動程序由數個加入了NVMe工作組的公司開發,包括IDT、英特爾以及LSI。
[2]
NVM Express參見
- 計算機設備帶寬列表
- M.2
- 詞條統計
-
- 瀏覽次數:次
- 編輯次數:4次歷史版本
- 最近更新: poppang2008