NVMe(NVM Express)
NVMe接口極大地增強(qiáng)了閃存存儲(chǔ)器的性能,為此,固態(tài)硬盤必須安裝類似Marvell88NV1140這樣完全兼容NVMe命令的新一代控制器。
固態(tài)硬盤接口速度對(duì)比
相對(duì)于三星850 Pro之類很好的AHCI固態(tài)硬盤,英特爾的NVMe原型能夠?qū)崿F(xiàn)更高的傳輸速率 1 和每秒執(zhí)行更多次的輸入、輸出操作 2 。
直接連接CPU的存儲(chǔ)裝置
NVMe的設(shè)計(jì)可以充分發(fā)揮固態(tài)硬盤的性能:數(shù)據(jù)流直接通過PCI-E在存儲(chǔ)器芯片與CPU之間傳輸,并且可以通過多個(gè)PCI-E通道并行傳輸數(shù)據(jù)流。相反AHCI則是為緩慢的磁盤進(jìn)行的優(yōu)化:適配器將確保通過SATA線傳輸?shù)臄?shù)據(jù)能與緩慢的磁盤保持同步,而這只能成為固態(tài)硬盤的瓶頸。
比較NVMe和AHCI
與AHCI不同,NVMe為多核CPU和通過PCI-E并行傳輸數(shù)據(jù)進(jìn)行了優(yōu)化:每個(gè)核心的隊(duì)列中保存和讀取的命令分開,這可以縮短反應(yīng)時(shí)間,提高數(shù)據(jù)傳輸速度。
NVMe固態(tài)硬盤:英特爾公司的DC P3700已經(jīng)可以在服務(wù)器上使用,可實(shí)現(xiàn)2.8GB/s和1.9GB/s的讀取和寫入速度。
SATA線纜和AHCI接口是影響固態(tài)硬盤性能的主要瓶頸,新的NVM Express(NVMe)接口將讓大家真切體驗(yàn)到閃存的速度究竟有多快。
固態(tài)硬盤是目前速度極快的一種數(shù)據(jù)存儲(chǔ)設(shè)備。眾所周知,如果想加快Windows操作系統(tǒng)的速度,那么只需購買一個(gè)固態(tài)硬盤并將其作為系統(tǒng)驅(qū)動(dòng)器即可,這對(duì)系統(tǒng)速度的提升可以說是立竿見影的。但是,并不為眾人所知的是,固態(tài)硬盤中的閃存性能實(shí)際上并沒有得到充分的發(fā)揮,如果不是通過速度緩慢的SATA電纜連接系統(tǒng),固態(tài)硬盤的速度可以更快。SATA接口的速度被限制在600MB/s,此外,SATA涉及到另一個(gè)高級(jí)主機(jī)控制器接口(Advanced Host Controller Interface,簡(jiǎn)稱AHCI),這是一個(gè)誕生于2004年的技術(shù)標(biāo)準(zhǔn),落后于當(dāng)前相關(guān)的電腦技術(shù)有十多年。當(dāng)年英特爾制定這一技術(shù)標(biāo)準(zhǔn)主要服務(wù)于通過磁性在金屬盤上存取數(shù)據(jù)的機(jī)械硬盤,與使用閃存存儲(chǔ)數(shù)據(jù)的固態(tài)硬盤完全毫無關(guān)系。
使用AHCI標(biāo)準(zhǔn),硬盤驅(qū)動(dòng)器控制器不能直接發(fā)送數(shù)據(jù)給CPU,數(shù)據(jù)必須經(jīng)由主機(jī)總線適配器(AHCI HBA)中的芯片組進(jìn)行迂回。在這里主機(jī)總線適配器主要起著讓速度極快的CPU和速度緩慢的磁盤之間能夠保持?jǐn)?shù)據(jù)同步的作用,而實(shí)際上固態(tài)硬盤并不需要它。對(duì)于固態(tài)硬盤來說,最佳的方案是直接與CPU通信,并且盡可能地采用并行傳輸讓數(shù)據(jù)傳輸速度達(dá)到其極限。由于AHCI的緣故,固態(tài)硬盤在近年來一直給人一種發(fā)展遲緩的感覺:2011年最好的固態(tài)硬盤中三星840 Pro的傳輸速率達(dá)到520MB/s,相對(duì)于比當(dāng)前同系列產(chǎn)品的最新型號(hào)850的速度只慢了20MB/s??梢灶A(yù)料,接下來該系列新一代產(chǎn)品860 Pro推出時(shí),其傳輸速率并不會(huì)有太大的改變。這種僵局只有在使用一個(gè)新的接口時(shí)才有可能被打破。能夠打破這一僵局的接口將在2015年亮相:NVM Express(NVMe)是專為閃存存儲(chǔ)設(shè)備設(shè)計(jì)的接口,它的設(shè)計(jì)完全不會(huì)對(duì)固態(tài)硬盤的速度造成影響。
GB/s級(jí)的傳輸速率
用于服務(wù)器的NVMe控制器目前已經(jīng)投入使用,并且Marvell在2015年年初已經(jīng)推出了一款型號(hào)為88NV1140的控制器,這款面向個(gè)人用戶的控制器更小巧、更節(jié)能、更高速,并為移動(dòng)設(shè)備進(jìn)行了優(yōu)化。而另一款Marvell的控制器88SS1093,則是用于臺(tái)式電腦的產(chǎn)品,它能夠支持固態(tài)硬盤以3GB/s的速率讀取數(shù)據(jù)。但是,要實(shí)現(xiàn)這一速度,固態(tài)硬盤不可以繼續(xù)使用SATA接口,而必須切換到PCI-E接口。一直以來,PCI-E主要用于顯示卡,但實(shí)際上固態(tài)硬盤也可以從中獲益:一個(gè)PCI-E連接可以直接與CPU通信,并且它包含幾個(gè)通道。因此,通過PCI-E連接固態(tài)硬盤可以在一個(gè)通道上傳輸數(shù)據(jù)到CPU。并通過另一個(gè)通道接收來自CPU的數(shù)據(jù),也就是說,固態(tài)硬盤可以同時(shí)發(fā)送和接收數(shù)據(jù)。
目前,已經(jīng)有幾個(gè)可以用于臺(tái)式電腦的PCI-E項(xiàng)目,例如RevoDrive 350可以通過8個(gè)通道傳輸數(shù)據(jù),然而由于Revodrive仍然通過AHCI來傳輸數(shù)據(jù),所以雖然通過4個(gè)控制器組成磁盤陣列,但是它的傳輸速率只能夠達(dá)到1.5GB/s,與NVMe相比這明顯不是一個(gè)最佳的方案。
為多核系統(tǒng)優(yōu)化
讀取和寫入操作的執(zhí)行通常是由許多獨(dú)立的步驟組成的,每一個(gè)步驟通??梢宰x取或改寫4K字節(jié)的數(shù)據(jù)塊。操作系統(tǒng)的輸入、輸出調(diào)度器和硬盤驅(qū)動(dòng)器上的控制器負(fù)責(zé)與CPU協(xié)同完成這些操作,對(duì)于AHCI來說,如果有必要,它可以通過指令隊(duì)列來執(zhí)行輸入、輸出的操作,最多可以使用32個(gè)指令隊(duì)列。一般來說,這種級(jí)別的工作強(qiáng)度可以讓一個(gè)CPU內(nèi)核保持忙碌的操作狀態(tài)。然而,AHCI無法將工作分配到多個(gè)CPU內(nèi)核,因?yàn)檫@需要能夠同步多個(gè)核心的隊(duì)列并匹配已經(jīng)完成的操作,操作方式完全不同。而且,AHCI僅為調(diào)度程序提供一個(gè)中斷用于啟動(dòng)和結(jié)束數(shù)據(jù)的傳送。
多核CPU、多PCI-E通道和固態(tài)硬盤控制器同時(shí)控制多個(gè)存儲(chǔ)器芯片,這就是目前新一代電腦的現(xiàn)狀。為確保這一組合完美地執(zhí)行操作,NVMe增加了隊(duì)列的數(shù)目和每個(gè)隊(duì)列的命令數(shù)量到65536。此外,NVMe還引入了兩種不同類型的隊(duì)列:提交隊(duì)列中的是固態(tài)硬盤控制器必須執(zhí)行的命令,完成隊(duì)列中的則是已完成的任務(wù)。隊(duì)列對(duì)被分配給每一個(gè)核心,確保多核CPU可以滿負(fù)荷運(yùn)行。此外,NVMe還允許將多個(gè)隊(duì)列對(duì)分配給每一個(gè)核心,每一個(gè)隊(duì)列對(duì)具有不同的優(yōu)先級(jí)。同時(shí),調(diào)度程序被允許發(fā)送中斷信號(hào)到每一個(gè)核心,這些措施不僅優(yōu)化了數(shù)據(jù)的傳輸,也減少了在讀取和寫入操作啟動(dòng)時(shí)的延遲。
Marvell公司目前正等待面向個(gè)人用戶的固態(tài)硬盤能夠采用其NVMe控制器。華碩等部分主板廠商已經(jīng)在UEFI安裝了NVMe驅(qū)動(dòng)程序,但更值得期待的是英特爾為主板準(zhǔn)備的下一代芯片Skylake。這款芯片預(yù)計(jì)將在2015年秋季推出,該芯片中英特爾增加了PCI-E通道的數(shù)量,以確保有足夠的帶寬可以滿足固態(tài)硬盤和顯示卡的需求。此外,在PCI-E 3.0的支持下,每通道速度可以高達(dá)1GB/s。迄今為止,英特爾公司的處理器只支持PCI-E 2.0,每通道速度為500Mb/s。此外,2015年夏季,英特爾還計(jì)劃推出支持NVMe和PCI-E 3.0的750系列固態(tài)硬盤,這將會(huì)是新一代高端電腦使用的超高速固態(tài)硬盤。