對于計算機行業(yè)來說,技術的進步尤為關鍵。不過,新的技術、新的產(chǎn)品不斷地推陳出新,但它們頂多只有幾年的黃金歲月,很快它們又將落后而最終被淘汰。對于固態(tài)硬盤來說,這樣的黃金歲月在未來幾年即將來到,界時硬盤將能夠讓我們的系統(tǒng)在按下電源按鈕后,即刻就加載完畢,打開一個大型的應用程序,例如Photoshop,系統(tǒng)將馬上進入可用的狀態(tài),我們不再需要停在加載提示界面等待,軟件的主界面將馬上出現(xiàn)。除此之外,拷貝和移動一個高清影片,我們也不會再看到拷貝進度的提示信息,因為這根本不需要,操作將馬上完成。
新的存儲革命將催生出新一代的固態(tài)硬盤,并通過更快的接口實現(xiàn)連接。目前,通過PCI-E(PCI Express)接口連接的服務器固態(tài)硬盤傳輸速率已經(jīng)是普通SATA接口固態(tài)硬盤的數(shù)倍,而這種高性能的產(chǎn)品將很快就能在個人電腦上看到。
新式固態(tài)硬盤速度之快最終將迫使Windows和Mac OS之類的操作系統(tǒng)改變設計。否則,操作系統(tǒng)將成為瓶頸。圣迭戈大學的一個Moneta項目研究小組為此進行了大量的研究,實驗證明,現(xiàn)有操作系統(tǒng)將影響新一代固態(tài)硬盤的存取速度,與此同時,他們也找出了在現(xiàn)有操作系統(tǒng)中如何盡可能避免影響性能的方法。不過,在此之前,還是先讓我們一起來了解一下新的存儲技術吧。
革命的起源
新技術、新硬盤
在未來幾年內(nèi),技術的變化將使個人電腦的數(shù)據(jù)存儲帶寬達到4Gb/s。
一直以來硬盤是電腦性能的瓶頸,固態(tài)硬盤的出現(xiàn)使硬盤速度大幅度提升,人們開始感覺硬盤速度明顯快了,但是目前的硬盤接口仍然存在瓶頸。理論上說,SATA接口可以支持6Gb/s的傳輸速率,但是實際存儲速度卻達不到這一標準,即使目前市面上速度較快的固態(tài)硬盤OCZ Vortex 3,其最大的數(shù)據(jù)吞吐量也僅有600Mb/s左右。為此,我們需要更快的硬盤接口,新的SATA Express硬盤接口可以提供8Gb/s、16Gb/s甚至是更高的傳輸帶寬。而就在今年,支持1.6Gb/s帶寬的SATA Express也將在新電腦上出現(xiàn)。
SATA Express使用不同的數(shù)據(jù)傳輸協(xié)議,更快而且更有潛力,目前,為服務器設計的固態(tài)硬盤已經(jīng)可以實現(xiàn)了高達3Gb/s的傳輸速率,而隨著今年新的PCI-E標準PCI-E 3.0進入市場,這個數(shù)值將再翻一翻。不過,在解決了硬盤接口速度的問題之后,原有固態(tài)硬盤閃存單元能否也達到這樣的速度將成為新的問題。
實際上,目前的固態(tài)硬盤讀取速度比較理想,在短短40ns的時間內(nèi)可以讀取存儲頁數(shù)據(jù)約100 000次。但是寫速度很慢,特別是在重寫一個8KB的存儲頁時,最新的英特爾固態(tài)硬盤可能需要清除約2MB的存儲頁數(shù)據(jù),這將導致耗費額外的3ms的時間,而存儲頁的寫操作還需要1.2ms。不過,經(jīng)過寫入緩存以及控制芯片的智能化處理,通常用戶并不會太注意固態(tài)硬盤在寫入時速度的拙劣表現(xiàn)。
在所有的存儲介質中,RAM模塊的速度最快,但是它們在斷電之后將丟失所有的數(shù)據(jù)。因而,只能夠作為內(nèi)存的存儲單元使用,而不能夠作為硬盤的存儲單元。而計劃中作為閃存(Flash)接班人的候選者大約有十幾名,其中的兩名候選者——相變存儲器(Phase Change Memory,PCM)和可變電阻式內(nèi)存(Resistive Random Access Memory,簡稱ReRAM)將可以在2014年或者2015年正式投入市場。
PCM使用的材料結晶或模式重建取決于所施加的電壓,其寫操作類似于閃存,需要清空、重建、寫入,因而,其速度仍然無法與RAM相比。ReRAM則不同,其材料在施加電壓時對應位值為1,施加反向電壓即可改變數(shù)值,因而,可以直接覆蓋并重寫數(shù)據(jù),讀寫能夠實現(xiàn)同速。目前,惠普、松下、三星和索尼等公司都在研發(fā)相關的產(chǎn)品,現(xiàn)在產(chǎn)品原型仍處于開發(fā)階段。
革命的阻礙
操作系統(tǒng)
Windows等操作系統(tǒng)無法有效地管理極速的存儲設備,操作系統(tǒng)必須重建。
坐在電腦前不耐煩地等待讀取數(shù)據(jù)或者應用程序加載是許多電腦用戶共有的記憶,硬盤速度緩慢是導致體驗不佳的主要原因。固態(tài)硬盤由于讀取的速度極快,基本上已經(jīng)改變了這種狀況,而為了適應固態(tài)硬盤的操作方式,Windows 7等新的操作系統(tǒng)在檢測到固態(tài)硬盤時,將自動停止SuperFetch和自動碎片整理等為機械硬盤而設計的優(yōu)化措施。與此同時,操作系統(tǒng)將在固態(tài)硬盤支持的情況下激活TRIM命令,這可以優(yōu)化固態(tài)硬盤數(shù)據(jù)的寫入機制,但是這一切對于未來新的固態(tài)硬盤是不夠的。對于通過PCI-E接口傳輸數(shù)據(jù)的新一代固態(tài)硬盤,它需要操作系統(tǒng)做更大的改變,甚至完全重建。未來的固態(tài)硬盤除了速度更快以外,工作電壓也更低,能夠在單位時間內(nèi)執(zhí)行更多的操作,而目前包括測試中的Windows 8操作系統(tǒng)在內(nèi),皆無法有效地管理如此快的硬盤。
Windows將阻礙存儲革命的步伐
圣迭戈大學的研究人員已經(jīng)建立了一個名為Moneta的項目來測試和研究新的固態(tài)硬盤在現(xiàn)有操作系統(tǒng)中可能受到的影響。起初,他們建立了一個使用DRAM模塊模擬的硬盤,模擬的硬盤采用8通道的PCI-E接口連接,可實現(xiàn)4Gb/s的數(shù)據(jù)傳輸速率。在2011年他們開始正式使用PCM模塊建立存儲設備進行測試,其測試結果表明,包括Windows和Mac OS等目前所有的操作系統(tǒng)在內(nèi),都無法有效地管理和操作新一代的固態(tài)硬盤,操作系統(tǒng)讀取和寫入數(shù)據(jù)的操作過程,耗費的時間甚至比硬盤存儲這些數(shù)據(jù)花費的時間還要多。
Windows深層次的磁盤輸入/輸出調度程序架構是導致出現(xiàn)這一問題的原因,調度程序負責接收系統(tǒng)中所有的文件操作請求,并將請求排序執(zhí)行,避免數(shù)據(jù)擁擠和堵塞。對于一個速度緩慢的機械硬盤來說,該機制能夠協(xié)調系統(tǒng)與硬盤操作,對于系統(tǒng)和硬盤的性能提升非常有幫助。但是對于讀寫速度遠比軟件執(zhí)行速度要快的硬盤來說,由于傳輸?shù)接脖P的數(shù)據(jù)都必須預先經(jīng)過調度程序,因此耗費了額外的時間,所以必然影響硬盤的性能發(fā)揮。在Linux上調度程序可以優(yōu)化操作,收集排序列表中的幾個請求并將它們同時發(fā)送到硬盤驅動器,然而,這個動作同樣需要花費一些時間,因為調度程序需要創(chuàng)建一個額外的新線程,以提高處理速度。
直接發(fā)送到CPU進行處理
系統(tǒng)在收到數(shù)據(jù)存儲請求并將數(shù)據(jù)發(fā)送到硬盤之后,負責操作的線程將休眠,并在硬盤完成任務之后重新激活,報告數(shù)據(jù)操作成功。這種方法對于僅有一兩個內(nèi)核的電腦來說是合適的,因為許多當前運行的線程往往需要完全占用CPU資源,但是在多核CPU上這樣的操作顯得有點多余。為此,Moneta刪除了調度步驟以消除操作系統(tǒng)的障礙,數(shù)據(jù)將直接發(fā)送給硬盤而不經(jīng)過任何排序,更不需要經(jīng)過編譯處理,數(shù)據(jù)存儲的調度工作完全由處理器和硬盤等硬件直接完成。并且,數(shù)據(jù)存儲線程會保持激活狀態(tài),不需要休眠、等待或重新激活的動作。
此外,Moneta開發(fā)商在硬盤驅動中減少了一些處理過程,一個數(shù)據(jù)存儲的請求可能包含多個命令,以往硬盤驅動需要收集這些命令并通過數(shù)據(jù)緩存區(qū)進行處理,而這將耗費一些額外的時間。Moneta直接設計為將所有請求限制為一個命令,并采用64bits的標準化長度,免去了內(nèi)存尋址和處理請求的額外時間。不過,上述優(yōu)化雖然可以加快數(shù)據(jù)傳輸速度,卻也將導致I/O操作數(shù)量急劇上升,但是對于Moneta這樣的未來存儲設備原型來說卻不是問題,它可以支持每秒約一億次的操作。
除了上面介紹的3項操作系統(tǒng)優(yōu)化之外,要獲得最佳的性能還需要第4項優(yōu)化。在x86架構中,操作系統(tǒng)通過一定的機制觸發(fā)數(shù)據(jù)存儲操作,系統(tǒng)內(nèi)核擁有最高權限,可以操作所有的硬件,而一般應用程序的請求將需要一定的步驟來傳遞和執(zhí)行,這些操作都需要耗費時間。此外,操作系統(tǒng)的文件系統(tǒng)同樣有著復雜的管理機制,比內(nèi)核模式下的直接數(shù)據(jù)存儲操作多占用很多不必要的時間。為此,Moneta開發(fā)者使用自行編制的驅動程序繞過內(nèi)核,確保操作系統(tǒng)可以盡可能快地執(zhí)行數(shù)據(jù)傳輸。使得諸如文件系統(tǒng)權限管理的信息處理工作與實際的數(shù)據(jù)傳輸相互獨立。在保留完整x86架構安全模型以及內(nèi)核硬件接口權限檢查的同時,確保數(shù)據(jù)的實際存儲操作速度不受影響,而且,應用程序能夠直接存儲已經(jīng)被打開的文件,不會因為權限的管理操作延緩存儲的操作。不過,即使完成上述所有的優(yōu)化,也僅僅是讓操作系統(tǒng)盡可能少地影響新一代固態(tài)硬盤的性能,真正要實現(xiàn)我們在文章開始時所設想的極速效果,唯一的可能是重建操作系統(tǒng)。
存儲革命:第一階段
最新的固態(tài)硬盤執(zhí)行寫入操作時仍然需要耗費不少時間,但是閃存的接班人PCM和ReRAM將有很大的改進。
硬盤的速度即將快速提升
今天,服務器所使用的固態(tài)硬盤在速度方面已經(jīng)比個人產(chǎn)品要快許多。明年,相關的技術將被應用到個人電腦領域,硬盤速度快速提升的時代即將來臨。
存儲速度比較
SRAM和DRAM的速度最快,但是不能用于長期儲存數(shù)據(jù)。閃存讀取速度快,但寫入時相對緩慢,其接班人PCM和ReRAM有更好的表現(xiàn)。
存儲革命:第二階段
當前的操作系統(tǒng)將阻礙新一代固態(tài)硬盤發(fā)揮性能,必須重新設計操作系統(tǒng)。
Moneta:快速存儲設備原型
圣迭戈大學項目使用閃存接班人PCM模塊建立存儲器,完全通過硬件來控制數(shù)據(jù)的存儲。
數(shù)據(jù)傳輸:各項操作需要的時間
在Moneta的快速存儲原型中,操作系統(tǒng)耗費的時間比實際存儲數(shù)據(jù)的時間要多,下面是讀寫4KB數(shù)據(jù)時各項操作需要的時間。
4項優(yōu)化節(jié)省的時間
Moneta對系統(tǒng)的4項修改減少了操作系統(tǒng)對快速存儲設備的不良影響,成功加快了數(shù)據(jù)的存儲速度。
重建操作系統(tǒng)
當前操作系統(tǒng)(左)通過內(nèi)核存儲數(shù)據(jù),這樣做是安全的,但也是緩慢的。Moneta通過一個未來操作系統(tǒng)(右)模型,繞過內(nèi)核獲得最大的傳輸性能。
速度比較:小型數(shù)據(jù)傳輸
存儲多個文件時,很多硬盤無法達到最高速率,優(yōu)化過的Moneta原型明顯比目前的固態(tài)硬盤更有效率。