微星在前段時間放出消息,用戶通過更新旗下X99、Z97、H97系列主板BIOS到最新版本,即可獲得對NVMe的支持。官方表示,相比目前主流的AHCI,通過新的NVMe標準接入的SSD,可以獲得大幅度的性能提升。但是對于大多數(shù)用戶來說,NVMe接口標準可能并不熟悉,即使有所耳聞,可能也覺得只是在高端專業(yè)領域應用得多,與一般民用無緣。但隨著SSD性能的提升,SATA接口和AHCI已經(jīng)逐漸成為存儲的瓶頸所在,PCIe和NVMe的組合取代前者只是時間問題。下面筆者就為大家簡單解析一下NVMe的特性,以及相較于AHCI究竟有哪些優(yōu)勢。
AHCI就要過時了?新接口標準NVMe淺析
在開始介紹NVMe技術之前,我們不妨回過頭來看一下2011年時的SSD產品。當時市面上絕大部分的SSD產品都跟2.5英寸機械硬盤一樣,有著同樣的外形規(guī)格,使用同樣的SATA接口,以及同樣的接口標準(AHCI)。雖然當時SSD的性能和可靠度也在逐步提高,但仍然難以達到SATA 6Gbps的極限,限制SSD性能發(fā)揮的,更多與SSD內部的閃存、主控和固件有關。然而,新技術研發(fā)總是具有令人驚嘆的前瞻性——2011年3月,NVMe 1.0標準正式發(fā)布。
事實上,NVMHCI(非易失性存儲主控制器接口)最早在2007年的Intel 開發(fā)者論壇上已被提出,并在同年由Intel 領銜成立了NVMHCI工作組。該工作組的成員還包括了美光、戴爾、三星、Marvell、NetAPP、EMC、IDT等公司,而他們的目標,就是要將未來存儲產品的性能,從SATA和AHCI之中解放出來。下面我們就來談一下NVMe的優(yōu)勢所在。
低延遲
因為AHCI標準本身就是為高延遲的機械硬盤而設,雖然SSD發(fā)展至今,主流產品依然沿用了機械硬盤時代的那一套,但已經(jīng)開始不能滿足性能的高速發(fā)展,特別是在延遲方面。而面向PCIe SSD產品的NVMe標準,降低存儲時出現(xiàn)的高延遲,就是其要解決的問題之一。
NVMe PCIe SSD可有效降低延遲
造成硬盤存儲時延遲的三大因素,存儲介質本身、控制器,以及軟件接口標準。由上圖可以發(fā)現(xiàn),比起AHCI,NVMe可以大幅度降低控制器和軟件接口部分的延遲,原因有以下兩個:
NVMe面向的是PCIe SSD,原生PCIe主控與CPU直接相連,而不是傳統(tǒng)方式,通過南橋控制器中轉,再連接CPU(當然,如果設備是接入到南橋提供的PCIe接口上,那么這部分的延遲也不會降低多少);
NVMe精簡了調用方式,執(zhí)行命令時不需要讀取寄存器;而AHCI每條命令則需要讀取4次寄存器,一共會消耗8000次CPU循環(huán),從而造成2.5μs的延遲。
但我們從圖中也可以看出,即使NVMe有效降低了控制器與軟件接口之間的延遲,存儲介質本身仍然是造成延遲的最主要原因。撇開延遲有點突破天際的機械硬盤不說,現(xiàn)在SSD使用的NAND閃存本身也會造成約50μs的延遲(不同NAND的延遲差別也比較大,僅以圖中例子說明)。要解決存儲介質造成的較高延遲,還需要依賴于未來可能應用的諸如PCM、RRAM、MRAM等新式存儲器。
IOPS性能提升
隊列深度的大幅提升
另外,NVMe的另一個重點則是提高SSD的IOPS(每秒讀寫次數(shù))性能。如果我們有詳細了解過SSD的主控參數(shù),應該知道會有隊列深度這個參數(shù)。理論上,IOPS=隊列深度/ IO延遲,故IOPS的性能,與隊列深度有較大的關系(但IOPS并不與隊列深度成正比,因為實際應用中,隨著隊列深度的增大,IO延遲也會提高)。市面上性能不錯的SATA接口SSD,在隊列深度上都可以達到32,然而這也是AHCI所能做到的極限。但目前高端的企業(yè)級PCIe SSD,其隊列深度可能要達到128,甚至是256才能夠發(fā)揮出最高的IOPS性能。而NVMe標準下,最大的隊列深度可達64000。此外,NVMe的隊列數(shù)量也從AHCI的1,提高了64000。
?。▓D表數(shù)據(jù)來自Tom‘s Hardware)隊列深度基本要達到128以上,才能發(fā)揮最高性能
驅動適用性廣
主流操作系統(tǒng)已經(jīng)逐漸開始支持NVMe
NVMe標準的也解決了不同PCIe SSD之間的驅動適用性問題。此前的PCIe SSD,均需要安裝驅動程序后才能正常使用,而不同的廠商又各自為政,每個廠商產品都有自己的驅動,SSD也不能作為引導使用。但支持NVMe標準之后,PCIe SSD就可適用于多個不同平臺,也不需要廠商獨立提供驅動支持。目前Windows、Linux、Solaris、Unix、VMware、UEFI等都加入了對NVMe SSD的支持。(當然,這個優(yōu)勢并不是相對AHCI而言,而是相對于其他需要采用獨立驅動的PCIe SSD)
低功耗
最后,在功耗方面,因為原生PCIe可以直接與CPU相連,沒有了中間轉接過程所產生的功耗;另外在能耗管理上,加入了自動功耗狀態(tài)切換和動態(tài)能耗管理功能,相比起主流的SATA接口SSD也擁有較大的功耗優(yōu)勢。
2NVMe接口標準能否迅速普及?
NVMe接口標準能否迅速普及?
微星以 Intel P3700 SSD為例,演示AHCI與NVMe性能差別
本文最初提到了微星率先在旗下9系主板中加入了NVMe的支持,但是否意味著支持NVMe的PCIe SSD就會很快在民用平臺普及開來呢?筆者個人認為這個答案是否定的,微星加入對NVMe支持具有更多的象征性意義。
首先,也是最重要的一點,目前普通民用級PC完全用不到這么高的性能,即使真讓我們使用了,當前的應用體驗也不會讓我們有那種當初從機械硬盤跨入固態(tài)硬盤時代的“快感”。
Intel DC P3700 800GB SSD售價2414美元
支持NVMe的SSD的售價在未來的一段時間內,仍然達不到普通民用可以接受的水平。企業(yè)級的Intel P3600 800GB 官方指導價為1569美元,P3700 800GB更是高達2414美元。三星的SM951 M.2 SSD勉強也算是民用級支持NVMe的SSD,但是面向OEM領域,主要用于高端超極本之中,雖然萬能的X寶也有賣,不過256GB版本的價格也達到了1799元。
下代CPU直接提供的PCIe 3.0通道數(shù)仍為16條
平臺方面,目前主流消費級CPU,提供的PCIe 3.0通道數(shù)為16條,下一代的Skylake-S同樣維持在這個數(shù)目。把NVMe SSD接入到與CPU直連的接口中,會搶占顯卡的PCIe通道(如果你有安裝顯卡的話),從而一定程度上降低顯卡性能;但如果接入的是南橋提供的接口,延遲和傳輸帶寬也可能會受到影響,也不能完全發(fā)揮出NVMe SSD的性能優(yōu)勢。
因此,綜上所述,在兩年內,NVMe依然很難在主流領域普及開來。但是在SATA 6Gbps和AHCI已經(jīng)逐漸成為存儲設備發(fā)展瓶頸的今天,各種走PCIe通道的SSD,以及NVMe標準將會是接下來存儲產品的發(fā)展趨勢。Intel 9系主板就已經(jīng)加入了可走PCIe通道的M.2接口,100系主板還會有對同是走PCIe通道的SATA Express的原生支持。值得一提的是,100系的中高端芯片組還將支持到PCIe 3.0,通道數(shù)量也會有較大提高(9系為8條,100系中Z170為20條,H170為16條),帶寬和擴展能力都能達到極大的提升,這無疑也是Intel 為PCIe SSD的普及而鋪路。
下代芯片組的擴展能力將會大大提升,PCIe SSD也將走入主流