NVM Express

NVM Express(NVMe),或稱非易失性記憶體主機控制器接口規範(英語:Non Volatile Memory Host Controller Interface Specification,縮寫:NVMHCIS),是一個邏輯設備接口規範。它是與AHCI類似的、基於設備邏輯接口的匯流排傳輸協定規範(相當於通訊協定中的套用層),用於訪問通過PCI Express(PCIe)匯流排附加的非易失性存儲器介質(例如採用快閃記憶體的固態硬碟驅動器),雖然理論上不一定要求 PCIe 匯流排協定。

簡介

NVM ExpressNVMe),或稱非易失性記憶體主機控制器接口規範(英語: Non- Volatile Memory Host Controller Interface Specification,縮寫: 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規格擴展卡等。

此規範由“Non-Volatile Memory Host Controller Interface Working Group”(非易失性存儲器主機控制器界面工作組)負責管理。

背景

歷史上,大多數SSD使用如SATA、SAS或光纖通道等接口與計算機接口的匯流排連線。隨著固態硬碟在大眾市場上的流行,SATA已成為個人計算機中連線SSD的最典型方式;但是,SATA的設計主要是作為機械硬碟驅動器(HDD)的接口,並隨著時間的推移越來越難滿足速度日益提高的SSD。隨著在大眾市場的流行,許多固態硬碟的數據速率提升已經放緩。不同於機械硬碟,部分SSD已受到SATA最大吞吐量的限制。

在NVMe出現之前,高端SSD只得以採用PCI Express匯流排製造,但需使用非標準規範的接口。若使用標準化的SSD接口,作業系統只需要一個驅動程式就能使用匹配規範的所有SSD。這也意味著每個SSD製造商不必用額外的資源來設計特定接口的驅動程式。

截至2014年9月,在光纖通道(FC)上使用NVMe的新標準也正在開發。

歷史

2009年Intel開始著手尋找SATA的替代方案。SATA作為串列接口,採用AHCI規範,其已經成為制約SSD速度的瓶頸。AHCI只有1個命令佇列,佇列深度32.而NVMe可以有65535個命令佇列,每個佇列都可以深達65536個命令。NVMe也充分使用了MSI的2048箇中斷向量優勢,延遲大大減小。

2011年有了1.0。最新的版本是1.2.1;最大頻寬為11.6Gbps,約為1200MB/s。

作業系統支持

9Front

2017年3月30日,NVMe驅動程式發布並供使用

Chrome OS

2015年2月24日,加入NVMe驅動至核心和引導載入程式,可從NVMe設備啟動Chrome OS

DragonFly BSD

DragonFly 4.6開始內置NVMe驅動程式

FreeBSD

Intel贊助開發的驅動程式已內置於FreeBSD的head、stable/9分支中。nvd(4)和nvme(4)驅動程式則是在10.2版FreeBSD中開始默認內置於其中。

Haiku

Haiku已有驅動開發時程,但是目前仍未完成

illumos

illumos於2014年10月15日獲得驅動程式支持

iOS

iOS 9開始支持,首款配備了NVMe接口的設備是iPhone 6S/6S Plus,也是首款採用NVMe的移動設備。物理接口和UFS相同的採用M-PHY PCIe。接下來Apple推出的iPad Pro和iPhone SE也採用了NVMe

Linux

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設備

NetBSD

NetBSD在2016年的開發版本中初步支持NVMe。OpenBSD則是在其6.0版時發布了NVMe的驅動程式。

OpenBSD

OpenBSD的NVMe驅動程式自2014年6月開始,由此前開發並發布USB、AHCI驅動程式的高級開發團隊負責。OpenBSD 6.0開始正式支持。

OS X/macOS

Mac OS X 10.10.3(OS X Yosemite)開始支持NVMe。蘋果公司的Retina MacBook和2016年發布MacBook Pro,配備了使用NVMe的PCIe SSD作為主硬碟驅動器使用。

Solaris

Solaris自Oracle Solaris 11.2開始支持NVMe。

VMware

英特爾發布了供VMWare使用的NVMe驅動程式,vSphere 6.0以及其後的版本中,均包含了該驅動程式,支持多種NVMe設備。在 vSphere 6 update 1 更新中,VMWare的VSAN軟體模擬的存儲子系統也開始支持NVMe設備。

Windows

微軟在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。

參見

•計算機設備頻寬列表

•M.2

•SATA Express

相關詞條

熱門詞條

聯絡我們