
現在 M.2 接口、NVMe 協議的 SSD 可以說是目前大家購買的主流了。每當有選購相關的話題,大家關心的都是顆粒、主控及相關的連續讀寫、隨機讀寫性能。其實影響固態硬盤整體性能發揮的技術因素還有不少,比如我們今天要講到的 NVMe 版本。
什么是 NVMe?
NVMe 大家說得很多,有些說是接口,有些說是協議。其實 NVMe(Non-Volatile Memory Express)是一種用于訪問存儲在基于 PCIe 的固態硬盤上的數據的規范,直譯過來就是 " 非易失性內存主機控制器接口規范 ",說是協議,姑且也算對,說是接口,那么就不太準確了,至少應該說是 NVMe 規范 / 協議接口。
在 NVMe 之前,SSD 通過 SATA 或 SAS 接口連接到計算機,并使用高級主機控制器接口(AHCI)進行通信。這些技術是為傳統的機械硬盤設計的,它在數據的隨機訪問和數據的一次性傳輸速度方面有實際的物理限制。到 2010 年末,主流消費者的固態硬盤被 SATA 所賦予的相對有限的吞吐量所制約。在專業和消費者市場上,這種限制是通過創造通過 PCI Express 連接的固態硬盤(通過接口卡或者直插 PCIe X1 接口)來克服的。

早期的 PCIe 接口的固態硬盤不僅速度提升不高,而且做啟動盤操作繁瑣
這種策略只允許制造商克服 SATA 固有的 6Gb/s(750MB/s)的速度限制,在考慮到總線其他資源開銷的情況下,固態硬盤的最高速度為 550MB/s 左右。然而,這些硬盤要么使用 AHCI 而保留了幾乎所有的隨機 I/O 性能瓶頸,要么使用定制的接口規范,廠商之間的操作差異很大。由于這些驅動器的定制設計,使用時需要設備特定的軟件驅動程序;因此,早期的 PCI Express 固態硬盤如當時的 Intel 910 等,在 Windows 上作為啟動驅動器使用時比較復雜,或者在供應商不支持的情況下與 Linux 一起使用。
NVM Express 消除了這些問題,它提供了一個通用數據交互接口供硬盤使用,從一開始就是為了利用閃存顆粒的獨特屬性,特別是為了優化性能和減少延遲。其結果是存儲性能的顯著提高,使 NVMe 成為需要最高水平的吞吐量和效率的 SSD 的理想選擇。
為什么 NVMe 很重要?
NVMe 使硬盤制造商能夠創建更高性能的硬盤,而不受 SATA/SAS 和 AHCI 的吞吐量瓶頸的限制,這些都是為傳統機械硬盤設計的。在機械硬盤上處理多個文件時,硬盤磁頭必須在硬盤的各個部分高速移動,以便向磁盤讀寫數據。雖然緩存和其他固件技術掩蓋了這一點,但機械硬盤實際上一次只能處理一個文件。
因此,為機械硬盤設計的 AHCI 只有一個命令隊列,每個隊列最多只能有 32 條命令。由于這種機械限制不存在于固態硬盤(SSD 沒有磁頭),AHCI 的這一屬性是非常不利的。NVMe 通過允許多達 65535 個命令隊列來解決這個問題,每個隊列最多可以有 65536 個命令。 ( 這是由規范提供的,盡管實際利用這一點需要主控的支持)。

NVMe 提供了真正多任務、大隊列的命令控制和數據吞吐能力
同樣,NVMe 提供 2048 個 MSI-X 中斷,而 AHCI 提供一個沒有轉向的中斷。NVMe 的系統開銷也同樣減少了,因為 4K 命令參數在一次獲取中執行,而 AHCI 需要兩次主機 RAM 的獲取。此外,NVMe 不需要為并行指令鎖定。
從整體上看,NVMe 具有閃存優先的理念,不限制驅動器使用閃存的固態屬性,這反過來又導致了更高的性能。
NvME 1.3 vs NvME 1.4,改變了什么?
NVMe 規范的最新版本是 1.4 版,于 2021 年 3 月發布。該規范的 1.3 版本是在 2017 年 4 月發布的。NVMe 1.4 中的一些重大變化包括。
支持主機內存緩沖區訪問命令集,它允許主機直接訪問 NVMe 設備的內存緩沖區,減少延遲和 CPU 開銷。
新的端到端數據保護命令集,允許主機指定寫入 NVMe 設備的數據應在整個數據路徑中免受錯誤影響。
被動狀態電源管理的增強,包括一個新的主機控制熱管理功能,允許主機控制 NVMe 設備的溫度閾值和冷卻策略。
支持 Package Symphony Flow Control,它允許在菊花鏈配置中連接多個 NVMe 設備,并在它們之間進行流量控制。
一個新的寫錯誤恢復通知基元,允許主機在寫操作中發生錯誤時得到通知。
NVMe 1.4 還包括其他一些小的變化和改進。
簡單來說,相比 NVMe1.3,NVMe 1.4 有三項重大改良,包括:NVM Sets、PLM ( Predictable Latency Mode ) 及 RRL ( Read Recovery Level ) 。NVM Sets 改良分工機制,舉例 1 個 4TB SSD ( 內部 4 通道傳輸 ) ,但 NVMe 1.3 只看成單一 4TB 空間,只將數據隨意寫入 4TB 任何區域,導致各信道互相擠塞。
但憑 NVMe 1.4 的 NVM Sets 新指令,4TB 將劃分為 4 個 1TB 空間,每條通道只獨立存取 1 個 1TB 空間。NVM Sets 有效縮短延遲時間,兼減少刷寫損耗。

NVM Sets 讀寫更有序,有效縮短延遲,提高顆粒壽命
而另一個大改動,莫過于 NVMe1.4 真正支持 PCIe4.0 了,這使得 SSD 的讀寫性能得到了進一步的提升。

聰明的主控廠商早就在宣傳 NVMe1.4 標準作為賣點了
因此,目前市面上的 NVMe 硬盤主流雖然是 1.3 和 1.4 版本,也有了 2.0 版本(頂級 PCIe4.0 產品),但總的來說,即使是 PCIe3.0 產品,NVMe1.4 版本的產品,相對老舊的 1.2 和 1.3 規范的產品,不僅速度提高,而且延遲縮短、顆粒的壽命更長、溫度控制更為靈活
· END ·
原文地址:http://www.myzaker.com/article/62d67d558e9f093ca145b0e3