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