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