對於NVMe固態硬盤,大家可能都理解錯了

在介紹NVMe固態硬盤優勢的時候,經常會引用到下面的這張圖片來展現它的低延遲優勢。尤其是在對比到最後一行NVM PCIe x4 Gen3的時候,延遲一下子降低了4倍多,好厲害啊!

對於NVMe固態硬盤,大家可能都理解錯了

被誤讀的圖表含義:

很多人沒有意識到,這張圖並不是大家理解中的那樣。第四行和第三行的差距展示的並非NVMe協議降低延遲的效果,而是未來新型存儲器更需要NVMe的配合來充分發揮它的優勢。

完整的截圖如下,它的標題是:Fully Exploring Next Gen NVM(全面探索下一代NVM非易失性存儲器)。請注意,這裡寫的是NVM,而不是NVMe(NVM Express),一字之差,天壤之別。

對於NVMe固態硬盤,大家可能都理解錯了

什麼是NVM呢,他是想對易失性存儲器而言的,典型的例子是內存,斷電后里邊存儲的數據就會丟失,非易失性存儲器的含義就是斷電後能夠繼續保存數據,機械硬盤的盤片、固態硬盤的閃存芯片,都屬於非易失性存儲介質。

對於NVMe固態硬盤,大家可能都理解錯了

NVMe,即NVM Express,是專門為非易失性存儲介質(尤其是閃存)研發的新一代存儲協議,依託於PCIe的帶寬和自身低延遲特點,它將取代SATA/SAS成為未來固態硬盤的發展方向。

也就是說,文章開頭的圖表是在展望未來閃存或比閃存更快的非易失性存儲介質在NVMe協議下的表現。當然從中也能看到NVMe協議在其中所起的作用,首先我們從圖表下方的圖例一個一個分析,看看它們到底代表了什麼。

NVM tREAD:存儲介質讀取延遲佔大頭

應用程序要從固態硬盤讀取數據,中間要經過很多環節,每個環節都會消耗一定的時間。閃存的速度雖然很快,但依然佔據整個讀取過程近一半的延遲。Future NVM,也就是未來的新型存儲介質,有望大幅度地提高自身響應速度,降低在存儲介質上處理讀取命令所話的時間。

對於NVMe固態硬盤,大家可能都理解錯了

說到新型存儲介質,很多人會想到英特爾提出的3D XPoint,其實除了3D XPoint之外,還有很多同類或者類似的技術也處於研發或者接近實用的階段。譬如東芝在去年閃存峰會上提出的LLF(Low Latency Flash)低延遲閃存:XL-FLASH,它的讀取延遲只有普通3D TLC閃存的十分之一。

對於NVMe固態硬盤,大家可能都理解錯了

再比如MRAM磁阻式隨機存取存儲器,它是類似於SRAM的新型非易失性存儲器,既能像內存一樣完全隨機存取,又能像閃存一樣在斷電之後保存數據。下圖是東芝在2017年展示的4Gbit容量STT-MRAM,從容量來看暫時還不具備製成固態硬盤的能力,它的作用更接近於現在CPU中的L2二級緩存,容量不大但速度很快。如果未來技術發展,MRAM也有望應用到固態硬盤當中的。

對於NVMe固態硬盤,大家可能都理解錯了

NVM xfer:存儲介質傳輸延遲

數據從存儲介質內傳輸到存儲介質外部接口所產生的延遲。這部分延遲可以通過提高閃存接口帶寬來降低。還從最初這張圖片來看,第一行和第二行的綠色部分降低了一半,這就是ONFI3相比ONFI2提高了閃存接口帶寬後達到的效果。

對於NVMe固態硬盤,大家可能都理解錯了

除了ONFI之外,類似的還有東芝和三星共同提出的Toggle閃存接口。

對於NVMe固態硬盤,大家可能都理解錯了

前段時間東芝發佈了XG6 NVMe固態硬盤,其中就提到所用的BiCS4閃存接口已經升級至Toggle 3.0標準,閃存帶寬也從過去的400MT/s翻倍增長到800MT/s,數據在從閃存芯片向主控傳輸過程中所需的時間就得到了降低。

對於NVMe固態硬盤,大家可能都理解錯了

Misc SSD:雜項延遲

通過圖表可以看到,淺藍色所代表的Misc SSD雜項延遲在從第三行到第四行的過程中大幅度降低了。這部分延遲主要包括固態硬盤內FTL閃存映射錶轉換、垃圾回收、磨損均衡算法所產生的額外延遲,這些延遲對於NAND閃存而言基本是一定的。

對於NVMe固態硬盤,大家可能都理解錯了

但未來新型非易失性存儲介質未必需要FTL轉換(譬如MRAM或PCM,本身可以像內存一樣隨機讀寫,不必像NAND閃存一樣按頁寫入、按塊擦除)、未必需要垃圾回收(如果存儲介質不需要像NAND閃存一樣先擦除後寫入,那麼就無需垃圾回收),所以Misc雜項延遲就可以得以降低。

Link Xfer:鏈路傳輸延遲

Link Xfer是花在固態硬盤接口和主機接口之間的信道傳輸延遲。和NVM xfer一樣,只要提高接口速度,這部分延遲就可以得到降低。所以對比下圖可以看到,固態硬盤接口從SATA變成PCIE x4 Gen3之後,深藍色部分代表的Link Xfer就大為降低了。這是PCIe信道的功勞,同樣不是NVMe在協議層面帶來的優勢。

對於NVMe固態硬盤,大家可能都理解錯了

Platform+adapter:這部分才是NVMe的作用

Platform+adapter,可以翻譯成平臺和適配器,主要包括了NVMe控制器相比主板PCH芯片集成的AHCI控制器的效率提升、NVMe針對閃存的指令優化等等。這才是NVMe協議的低延遲優勢所在。從圖中來看的話,NVMe相比SATA固態硬盤所用的AHCI協議大約能降低2到3微秒。如果從整體來看,NVMe協議在整體固態硬盤存取延遲中能起到的作用大約在2%-3%之間,而不是很多人認為的"NVMe降低4到5倍的延遲"。

對於NVMe固態硬盤,大家可能都理解錯了

Software:目前難以觸動的部分

Software,也就是軟件延遲。我認為這裡主要指的是CPU執行軟件指令的效率問題、操作系統底層驅動的效率問題,不管是使用新型閃存,還是升級NVMe協議,都無法撼動這部分"死重"。這涉及到底層的軟件開發,包括系統軟件和驅動層面,還有軟件的設計、CPU對指令的執行。

對於NVMe固態硬盤,大家可能都理解錯了

總結:

現在就可以明確了,NVMe協議所起到的降延遲效果。在QD=1隊列深度、使用MLC NAND閃存介質的情況下進系4K隨機讀取,NVMe大約能降低2到3微妙延遲,佔總體延遲的2%-3%。同時NVMe固態硬盤所用的PCIe信道也帶來了大約6%的傳輸延遲優勢。總體來看,在相同存儲介質的條件下,NVMe固態硬盤能降低的4K單線程隨機讀取延遲在10%左右。這個數值可隨著讀寫區塊以及隊列深度而改變。

對於NVMe固態硬盤,大家可能都理解錯了

相關推薦

推薦中...