跳至內容

NVMExpress

出自Taiwan Tongues 台語維基
於 2025年8月22日 (五) 21:52 由 TaiwanTonguesApiRobot留言 | 貢獻 所做的修訂 (從 JSON 檔案批量匯入)

(差異) ←上個修訂 | 已批准修訂 (差異) | 最新修訂 (差異) | 下個修訂→ (差異)

NVM Express(縮寫NVMe), 抑是稱非揮發性記憶體主機控制器介面規範(英語:Non-VolatileMemoryHostControllerInterfaceSpecification,縮寫:NVMHCIS), 是一个邏輯裝置介面規範。伊是因為裝置邏輯介面的匯流排傳輸協定規範(相當於通訊協定中的應用層), 用佇存取通過 PCI Express(PCIe)匯流排附加的非揮發性記憶體媒介(比如講採用快閃記憶體的固態硬碟機), 雖然理論上無一定要求 PCIe 匯流排協定。NVMe 是一種協定,是一組允准 SSD 使用 PCIe 匯流排的軟硬體標準;而且 PCIe 是實際的物理連接通道。

NVM 代表非揮發性的記持體(non-volatile memory)的首字母縮略字,這是固態硬碟(SSD)的捷看著的快閃記憶體形式。此規範主要是為基於緊閃記憶體的儲存裝置提供一个低延時、內部並行化的原生介面規範,嘛為現代 CPU、電腦平台佮相關應用提供原生儲存並行化的支援,令主機硬體佮軟體會當充分利用固態儲存裝置並列化儲存能力。相比此前機械硬碟機(HDD)時代的 AHCI(SATA 下跤協定), NVMe / NVMHCI 降低矣 I / O 操作等待時間、提升仝一个時間內的操作數、閣較大容量的操作隊列等。

寄託佇咧 PCIe 匯流排,NVMe 裝置會當用各種支援 PCIe 匯流排的物理插槽上,包括標準 sài-sù 的 PCIe 擴充卡(一般是四个 PCIe 巷路)、 採用 U . 二物理連接介面(SFF 鋪八千六百三十九)的二嬸五英寸 / 三鋪五英寸的標準 sài-sù 固態硬碟機、SATA Express 匯流排(相容 PCIe)的裝置、M . 二規格擴展卡等等。此規範由 NVMHCIS 工作組負責管理。

背景

歷史上,大多數啦 SSD 使用如 SATA、SAS 抑是光纖通道等介面佮電腦介面的匯流排連接。隨著固態硬碟佇大眾市場上的流行,SATA 已經成做個人電腦當中連接 SSD 的上典型的方式;猶毋過,SATA 的設計主要是做機械硬碟機(HDD)的介面,機械結構的 HDD 使用讀取臂做讀寫,佮直接操作固態粒仔的 SSD 差異真大,而且綴時間的推徙是愈來愈難滿足速度日益提懸的 SSD。隨著佇大眾市場的流行,誠濟固態硬碟的資料速率提升已經放慢。無仝款機械硬碟,部份 SSD 已經受著 SATA 上大吞吐量的限制。

佇咧 NVMe 出現進前,高端 SSD 干焦會當採用 PCI Express 匯流排製造,毋過需要使用非標準規範的介面。若使用標準化 SSD 介面,作業系統只需要一个驅動的程式就會當使用符合規範的所有 SSD。這嘛意味著逐个 SSD 製造商毋免閣用另外的資源來設計特定介面的驅動程式。

節甲二空一四年九月,佇光纖通道(FC)最使用 NVMe 的新標準嘛當咧開發。

截止二空一八年,NVMe 包含 NVMe、NVMe-MI 以及 NVMe-oF(NVMe over Fabrics)三个細分協定,其中 NVMe 為主協定,規範矣 host 嘿盤的讀寫、存取佮資源管理等等的功能,NVMe-MI 主要包括紮外管理相關的功能,NVMe-oF 主要是因為 NVMe 的網路協定規範,會當將 FC 等網路協定佮 NVMe 去進行去結合起來。同時,而且三个協定佇協同演進,未來就會圍 NVMe 形成一个對盤佮儲存系統捀到端生態。

PCI Express 佮傳統的 SATA 差異

NVMe 標準對比 AHCI 標準:

  • 做資料對儲存傳輸到侍服器主機的時,會進入一行或在列。傳統的 SATA 連接干焦會當支援一个佇列,一改干焦會使接收三十二條資料。而且 NVMe 儉支援上濟六更四千个佇咧列,每一个在列有六板四千個條目。
  • NVMe 使用原生 PCIe 巷路,免去矣 SATA 佮 SAS 介面的主機適配器佮 CPU 通信所帶來的延時。NVMe 標準的延時干焦 AHCI 的一半無到:NVMe 精簡矣呼叫方式,執行命令的時毋免讀暫存器;而且 AHCI 逐條命令愛讀到四擺暫存器,攏總會消耗八千改 CPU 迴箍,自按呢造成大概二嬸五微秒的延遲。
  • NVMe 支援同時對多核處理器接受命令佮優先處理請求,這佇企業級的重負載時優勢明顯。
  • NVMe 加入自動功了狀態切換佮動態能傷管理功能。裝置對 Power State 拋荒五十 ms 所以切換著 Power State 一;繼續咧用的話,佇咧五百 ms 後又閣會進入功磨較低的 Power State 二,切換時會有短暫延。SSD 佇咧閒置的時陣會當非常快速的控制佇咧極低的水平,佇功磨管理上 NVMe 標準的 SSD 會比 AHCI SSD 擁有大優勢。

歷史

二空空九年 Intel 開始去手走揣 SATA 的替代方案。SATA 做伙來介面,採用 AHCI 規範,其實已經成做制約 SSD 速度的瓶頸。AHCI 干焦一个命令佇咧列,在列深度三十二。而且 NVMe 會當有六石五千五百三十五个命令佇咧列,逐个佇列攏會當深甲六角五千五百三十六个命令。NVMe 嘛充分使用矣 MSI 的兩千空四十八个斷向量優勢,延遲大大減細。上新的版本是二鋪空 c;上大的頻闊約是十六 GB / s。

二空一八年,是因為 NVMe 的 SSD 已經會當突破十五 TB 可用容量,讀頻闊達到六 GB / s,一百萬 IOPS(四 KB 隨機讀), 同時保證微秒級延遲。 產品的規格:

  • 一垺零 e(二空一三年一月)
  • 一孵一 b(二空一四年七月)
  • 一孵二(二空一四年十一月)
  • 一孵二 a(二空一五年十月)
  • 一孵二 b(二空一六年六月)
  • 一孵二 . 一(二空一六年六月)
  • 一孵三(二空一七年五月)
  • 一孵三 a(二空一七年十月)
  • 一孵三 b(二空一八年五月)
  • 一孵三 c(二空一八年五月)
  • 一孵三 d(二空一九年三月)
  • 一孵四(二空一九年六月)
  • 一孵四 a(二空二空年三月)
  • 一孵四 b(二空二空年九月)
  • 二孵空(二空二一年五月)
  • 二孵空 a(二空二一年七月)
  • 二孵空 b(二空二二年一月)
  • 二孵空 c(二空二二年十月)

作業系統支援

九 Front

二空一七年三月三十號,NVMe 驅動程式釋出並且供使用

Chrome OS

二空一五年二月二四,加入 NVMe 驅動至核心佮啟動載入程式,可從 NVMe 裝置啟動 Chrome OS

DragonFly BSD

DragonFly 四堵六開始內建 NVMe 驅動程式

FreeBSD

Intel 贊助開發的驅動程式見面起佇咧 FreeBSD 的 head、stable / 九分支中。nvd ( 四 ) 和 nvme ( 四 ) 驅動程式是佇咧十二版 FreeBSD 中開始預設內底起佇咧其中。

Haiku

Haiku 就有驅動開發的時程,但是目前猶未完成

illumos

illumos 佇咧二空一四年十月十五得著驅動程式支援

iOS

iOS 九開始支援,頭一下配備 NVMe 介面的裝置是 iPhone 六 S / 六 S Plus,嘛是首款採用 NVMe 的行動裝置。物理介面和 UFS 仝款的採用 M-PHY PCIe。紲落來伊 Apple 推出的 iPad Pro 和 iPhone SE 嘛有採用 NVMe

Linux

NVMe 的驅動程式上早是英特別提供的,適用佇咧 Linux 的核心驅動程式模組。這个模組佇咧二空一二年三月十九整合著 Linux 核心的主線驅動程式當中,Linux 核心三版開始內建支援無需要安裝額外模組。


NVMe 採用傷濟在列設計,上懸支援六十四 k 個在列。二空一四年一月十九的 Linux 核心三配一三版開始,block 加起來矣 multi-queue block layer,這一模組會當充分利用多核 CPU 和底層高速 SSD 硬體資源,主機 CPU 的 I / O 提交佇列會當佮 SSD 側的提交在列進行縖結,即是講每一个 CPU 核可以佮 SSD 硬體的在列進行一:一抑是 n : m(比值決定硬體設計)進行組態。著頂層應用猶原是通用的塊介面。對應用的角度,佇某一个 CPU Core 最產生的 IO 請求,斷去嘛會在此 CPU Core 處理,效能閣較優。佇咧 SSD 效能毋是關頭的情形下,應用的效能能夠實這馬加核環境之下照 CPU Core 的數量擴充,這點佮 AHCI 的 CPU 單佇列存取儲存裝置的機制有無仝款。


二空一五年四月十二號發佈的 Linux 核心四配零版開始,VirtIO 區塊層驅動程式,SCSI 驅動層(佮 SATA 驅動做伙來)、 轉來環裝置驅動(loop device)UBI(unsorted block images)驅動(供快閃記憶體實作區頭擦寫管理)以及 RBD 驅動程式(which exports Ceph RADOS objects as block devices)攏予人修改,以適應佮適配愈來愈濟的 NVMe 裝置

NetBSD

NetBSD 佇二空一六年的開發版本中初步支援 NVMe。OpenBSD 是佇其六更零版的時陣釋出矣 NVMe 的驅動程式。

OpenBSD

OpenBSD 的 NVMe 驅動程式自二空一四年六月開始,因為按呢進前開發並釋出 USB、AHCI 驅動程式的高級開發團隊負責。OpenBSD 六鼻空開始正式支援。

OS X / macOS

Mac OS X 十曉一空 . 三(OS X Yosemite)開始支援 NVMe。蘋果公司的 Retina MacBook 和二空一六年發佈 MacBook Pro,配備了使用 NVMe 的 PCIe SSD 做主硬碟機使用。

Solaris

Solaris 自 Oracle Solaris 十一孵二開始支援 NVMe。

VMware

英特爾釋出矣供 VMWare 使用的 NVMe 驅動程式,vSphere 六更零以及其後的版本內底,攏包括著應該趕動的程式,支援多種 NVMe 裝置。佇咧 vSphere 六 update 一更新中,VMWare 的 VSAN 軟體類比的儲存子系統嘛咧開始支援 NVMe 裝置。

Windows

軟軟仔佇咧 Windows 八孵一佮 Windows Server 二千空一十二 R 二開始,原生支援 NVMe 裝置。同時嘛為 Windows 七和 Windows Server 兩千空八 R 二提供原生驅動程式支援(Windows 七佮 Windows Server 兩千空八 R 二預設無支援 NVMe,需要使用者家己下載得著)。


除了微軟官方提供的驅動程式以外,OpenFabrics Alliance 閣有維護一套開放原始碼的 NVMe 驅動程式,使用佇 Windows 七、八、八否一、十以及 Windows Server 兩千空八 R 二、二千空一十二、二千空一十二 R 二,這套驅動程式由數來加入去 NVMe 工作組的公司開發,包括講 IDT、英特爾以及 LSI。目前版本做二空一六年十二月發布的一孵五。

參見

  • 電腦裝置誠闊列表
  • M . 二
  • PCI Express
  • SATA
  • SATA Express

參考資料

外部連結

  • NVM Express– scalable , efficient , and industry standard
  • LFCS : Preparing Linux for nonvolatile memory devices , LWN . net , April 十九 , 二千空一十三 , by Jonathan Corbet
  • Multipathing PCI Express Storage , Linux Foundation , March 十二 , 二千空一十五 , by Keith Busch