孫廣宇, 舒繼武, 王 鵬
(1.北京大學(xué) 信息科學(xué)技術(shù)學(xué)院,北京100871;2.清華大學(xué) 計算機(jī)系,北京100084)
傳統(tǒng)的存儲系統(tǒng)由三個主要存儲層次構(gòu)成,按訪存延時(latency)從低到高的順序依次是緩存、主存和內(nèi)存.然而,基于傳統(tǒng)存儲工藝的存儲系統(tǒng)已經(jīng)逐漸無法滿足計算機(jī)系統(tǒng)對性能和功耗的需求.換言之,計算機(jī)系統(tǒng)的發(fā)展正面臨“存儲墻”帶來的巨大挑戰(zhàn).該問題主要?dú)w結(jié)于兩個方面的原因:一方面,隨著多核/眾核處理器的普及以及計算機(jī)系統(tǒng)規(guī)模的飛速增長,傳統(tǒng)的“計算密集型”應(yīng)用對存儲系統(tǒng)的延時和容量的需求不斷提升;另一方面,大數(shù)據(jù)時代的到來使得各種“數(shù)據(jù)密集型”應(yīng)用不斷涌現(xiàn),進(jìn)一步對存儲系統(tǒng)的帶寬和容量提出更高的需求.下面,本文將圍繞新興的“內(nèi)存計算(in-memory computing)”應(yīng)用,通過分析這類應(yīng)用對內(nèi)存的需求,強(qiáng)調(diào)引入“非易失內(nèi)存(non-volatile memory)”的必要性.
隨著移動互聯(lián)網(wǎng)、物聯(lián)網(wǎng)和云計算技術(shù)的飛速發(fā)展,大數(shù)據(jù)時代已經(jīng)來臨.每天,數(shù)以萬計的智能設(shè)備和傳感器每時每刻都在向后臺系統(tǒng)傳輸著數(shù)據(jù).如何將這些實(shí)時產(chǎn)生的數(shù)據(jù)加工成實(shí)時的信息,為企業(yè)提供實(shí)時決策的依據(jù),創(chuàng)造出更大的價值?這已經(jīng)成為IT業(yè)界面臨的一個新的挑戰(zhàn)和機(jī)遇.內(nèi)存計算有望使數(shù)據(jù)計算的速度呈幾何級的增長,更好地解決這個問題.
內(nèi)存計算是指采用高性能的內(nèi)存來對海量數(shù)據(jù)進(jìn)行實(shí)時計算和處理,CPU直接從內(nèi)存而不是硬盤上讀取數(shù)據(jù),它比傳統(tǒng)的基于磁盤的系統(tǒng)快幾個數(shù)量級.內(nèi)存計算非常適合處理需要實(shí)時獲得分析結(jié)果的數(shù)據(jù).隨著內(nèi)存硬件價格的下降、容量的提高,內(nèi)存計算有望得到廣泛應(yīng)用.當(dāng)前,學(xué)術(shù)界已經(jīng)有不少文獻(xiàn)在研究相關(guān)的內(nèi)存存儲系統(tǒng)和內(nèi)存數(shù)據(jù)庫技術(shù),比如 Picolo[5],Apache Spark[6]的前身 RDD[7,8,9]、RAMCloud[10,11,12]等.
SAP公司指出,內(nèi)存計算對內(nèi)存容量的需求非常巨大,在多核場景下,需要達(dá)到TB級[1].而IMEX research公司的報告指出[2],各種不同類型的應(yīng)用負(fù)載有著不同的I/O特性(如圖1所示[2]),例如聯(lián)機(jī)事務(wù)處理(OLTP)類應(yīng)用具有很高的隨機(jī)I/O,對延遲的要求最高,而Hadoop類大數(shù)據(jù)應(yīng)用屬于批處理型I/O,以順序?qū)憺橹?,對吞吐的要求較高.
圖1 各種類型的應(yīng)用負(fù)載的I/O特性Fig.1 I/O characteristics of various workloads
各種應(yīng)用的I/O對于吞吐和延遲不同的需求決定了需要有不同的存儲設(shè)備為之服務(wù),非易失存儲的出現(xiàn)不僅能夠顯著降低引入大量內(nèi)存產(chǎn)生的靜態(tài)功耗,同時豐富了存儲層次結(jié)構(gòu),有望填補(bǔ)DRAM內(nèi)存和硬盤之間不斷擴(kuò)大的鴻溝,如圖2[2]所示.
圖2 存儲結(jié)構(gòu)層次Fig.2 Memory hierarchy
在內(nèi)存計算的場景下,非易失內(nèi)存有著廣泛的應(yīng)用場景.(1)NVM有著比NAND Flash SSD更好的延遲和吞吐,其IO性能比SSD好100倍以上;(2)NVM的存儲密度比DRAM更大,因此在同等面積/內(nèi)存插槽的情況下,它能給多核環(huán)境下的CPU提供更多的數(shù)據(jù);(3)在前兩點(diǎn)因素的共同作用下,對于存儲一定量的數(shù)據(jù)并滿足一定性能需求的條件下,使用SCM技術(shù)能降低所需要的機(jī)器數(shù)量.例如:SAP公司已經(jīng)把非易失內(nèi)存技術(shù)的應(yīng)用研究作為它們內(nèi)存計算技術(shù)研究的一個重點(diǎn)[3],此外,Virident公司已經(jīng)著手對MySQL InnoDB和MemCached用在SCM的情況進(jìn)行了優(yōu)化[4],使這些系統(tǒng)得到更好的利用.
如前言所述,維護(hù)已有30多年歷史的基于DRAM和HDD的傳統(tǒng)主存和外存結(jié)構(gòu),已經(jīng)成為面向新興應(yīng)用計算系統(tǒng)面臨的主要挑戰(zhàn).本章節(jié)首先介紹兩類主要的非易失內(nèi)存結(jié)構(gòu),并通過對各種非易失存儲器件的分析,探討適合這兩類非易失內(nèi)存結(jié)構(gòu)的存儲器件.
如圖3[35]所示,本文所指的非易失內(nèi)存主要分為兩類:(1)兼容傳統(tǒng)主存控制器(memory controller)的非易失主存(NVM main memory);(2)連接在I/O總線上的存儲級內(nèi)存(Storage-Class-Memory或SCM).
第一類非易失內(nèi)存(下文簡稱NVM主存)的特點(diǎn)是可以直接替換傳統(tǒng)的DRAM內(nèi)存或者兩者同時使用構(gòu)成混合主存(Hybrid Memory),其優(yōu)勢是NVM主存由硬件進(jìn)行控制,只需針對NVM主存的特性對主存控制器進(jìn)行適當(dāng)?shù)母倪M(jìn),對上層應(yīng)用透明,無需引入系統(tǒng)級(操作系統(tǒng)、文件系統(tǒng)等)的改動.這種非易失內(nèi)存結(jié)構(gòu)主要利用非易失存儲器件低靜態(tài)功耗的優(yōu)勢,同時要滿足能夠匹配傳統(tǒng)DRAM的性能需求,并盡可能地提高存儲密度.
第二類非易失內(nèi)存(下文簡稱SCM),是對介于傳統(tǒng)DRAM主存和HDD外存之間的存儲層次所使用的存儲設(shè)備的統(tǒng)稱.相比于HDD外存,SCM具備無運(yùn)動部件、低延遲、高吞吐率的優(yōu)勢;相比于DRAM主存,具備非易失、低單位比特造價、低功耗的優(yōu)勢[13].
圖3 兩類非易失內(nèi)存的示意圖Fig.3 Schematic of two nonvolatile memory types
通過兩類非易失內(nèi)存特性的對比,可以看出兩類非易失內(nèi)存對所采用的存儲器件工藝提出不同的需求.同時,針對網(wǎng)絡(luò)搜索、內(nèi)存計算、數(shù)據(jù)挖掘、移動計算等多種應(yīng)用,即使同一類非易失內(nèi)存也會針對實(shí)際應(yīng)用進(jìn)行不同側(cè)重點(diǎn)的的設(shè)計及優(yōu)化.因此,當(dāng)今各種主流的閃存(FLASH)、鐵電存儲器(FeRAM)、磁存儲器(MRAM)、相變存儲器(PRAM)、阻變存儲器(RRAM)等非易失存儲器件都是制造非易失內(nèi)存的潛在競爭者[14].下文首先對集中非易失存儲器件進(jìn)行介紹,并分析其可能應(yīng)用的場景.
閃存(FLASH)通過選擇是否在浮柵中存放電荷進(jìn)而存儲數(shù)據(jù).Flash依據(jù)存儲單元分為與非(NAND)和或非(NOR)兩種結(jié)構(gòu).NOR可以提供高達(dá)100 MB/s的讀寫速度,而NAND卻可以達(dá)到數(shù)倍于NOR的存儲密度,可以達(dá)到較低的生產(chǎn)成本.同時,3D堆疊技術(shù)將多層Flash存儲單元堆疊在一起,為提高存儲密度提供了新的途徑[15].目前,進(jìn)入22 nm及以下的多比特與非閃存(MLC NAND Flash)已被業(yè)界用于生產(chǎn)固態(tài)硬盤(SSD),三星、閃迪等公司均發(fā)布1T的MLC Flash.相比于傳統(tǒng)HDD,NAND Flash具備低延時、高吞吐、低功耗的優(yōu)勢,但是性能尚無法與DRAM相比,同時考慮到其擦寫壽命問題,NAND Flash通常適合于設(shè)計大容量,高吞吐的SCM.
鐵電存儲器(FeRAM)是最早的非易失存儲競爭者之一.它由兩端為金屬電極中間為鐵電材料構(gòu)成的鐵電容組成.這種三明治結(jié)構(gòu)功耗低、工作電壓低,并可能較容易與CMOS工藝集成.但是FeRAM的存儲單元較大,制成溫度高,刻蝕無斜坡的三明治結(jié)構(gòu)非常困難,鐵電也面臨3D集成等諸多挑戰(zhàn).考慮到FeRAM存儲密度較低,通常適合在(超)低功耗嵌入式系統(tǒng)中用于非易失內(nèi)存設(shè)計,并不適合面向新興高性能應(yīng)用的計算機(jī)系統(tǒng).
磁存儲器(MRAM)通過磁性材料的磁極方向保存數(shù)據(jù).MRAM提供較快的寫性能、較容易的CMOS集成方式、高的耐用性.目前MRAM的問題是寫電流較大,電遷移現(xiàn)象隨著尺寸縮小而嚴(yán)重,影響器件性能.包括自旋矩傳輸磁存儲器(STT-MRAM)、條帶磁存儲器(Racetrack)在內(nèi)的多種MRAM變體試圖降低寫電流.已經(jīng)有Everspin,Grandis和日本電氣 (NEC)等公司成功展示了自旋矩傳輸磁存儲器的商業(yè)化產(chǎn)品.STT-RAM性能優(yōu)于DRAM,但是存儲密度尚有一定差距,因此可以與DRAM進(jìn)行混合主存設(shè)計.Racetrack相對于STT-RAM存儲密度有顯著提高,是未來NVM主存設(shè)計的有力競爭者之一.
相變存儲器(PRAM)利用硫化物晶態(tài)與非晶態(tài)間的巨大電阻差值來記憶數(shù)據(jù).PRAM可以提供高耐用性、快的讀寫速度、22nm后良好的縮小潛力等.PRAM的存儲密度以及讀操作性能都可以和DRAM相媲美,是制造NVM主存的另一個有力競爭者.但是PRAM需要較大的寫電流,在寫操作性能方面低于DRAM.而且PRAM的擦寫次數(shù)通常小于108,因此如何提高寫操作性能和壽命問題是PCM主存設(shè)計面臨的主要挑戰(zhàn).隨著PRAM工藝的進(jìn)展,多比特PRAM存儲器件(MLC)也受到廣泛關(guān)注.基于MLC的PRAM設(shè)計可以提供和NAND Flash相媲美的存儲密度,但是性能和壽命將進(jìn)一步下降,因此,更加適用于SCM設(shè)計或者混合NVM主存設(shè)計.
阻變存儲器(RRAM)利用多種材料在適當(dāng)?shù)碾妷合碌牟煌娮鑱泶鎯?shù)據(jù).RRAM按照材料可以分為絕緣體存儲和固態(tài)電極存儲.RRAM通過橫木交錯(crossbar)結(jié)構(gòu)可以提供更高的存儲密度,并提供高于Flash數(shù)倍的訪問速度.實(shí)驗(yàn)表明RRAM只需要較小的復(fù)位電流(10μA),并可以在85攝氏度下工作10年以上[16].RRAM當(dāng)今面臨的主要問題是工藝擾動較大,導(dǎo)致其存儲芯片的良率(yield)較低.近年來,RRAM的制造工藝一直在不斷進(jìn)步,預(yù)期RRAM在16 nm及之后技術(shù)節(jié)點(diǎn),可能成為NVM主存和SCM有力的競爭者.
綜上所述,各種非易失存儲的發(fā)展為NVM主存及SCM兩類非易失存儲的設(shè)計都提供了可行性.下面兩個章節(jié)中,我們將分別對近期NVM主存和SCM兩個領(lǐng)域的部分代表性工作進(jìn)行綜述,在揭示非易失存儲帶來的性能及功耗優(yōu)勢的同時,說明在體系結(jié)構(gòu)級和系統(tǒng)級兩個層次需要進(jìn)行的改進(jìn)與優(yōu)化.
傳統(tǒng)主存通常采用DRAM工藝,如前文所述,DRAM工藝同樣存在靜態(tài)功耗較高的問題.因此研究人員提出使用PCM代替DRAM工藝.表1[17]對基于DRAM和PCM的主存的部分參數(shù)進(jìn)行了相應(yīng)的對比.
表1 DRAM和PCM部分技術(shù)參數(shù)Tab.1 Technology parameters of DRAM and PCM
可以看出,雖然PCM可以顯著減少主存的靜態(tài)功耗,其寫操作同樣存在高能耗和高延時的問題.更重要的是,PCM的擦寫次數(shù)遠(yuǎn)低于DRAM,因此需要考慮PCM主存壽命的問題.本章我們主要介紹提高PCM能效的結(jié)構(gòu)設(shè)計和優(yōu)化技術(shù),關(guān)于壽命的問題將在本文后續(xù)部分討論.
2009年,Ping Zhou、Benjamin Lee和Moinuddin Qureshi分別同時提出采用PCM代替DRAM進(jìn)行主存設(shè)計[16-18].這些研究工作指出了基于PCM主存系統(tǒng)所存在的問題,提出了包括bank buffer在內(nèi)的主存結(jié)構(gòu)優(yōu)化設(shè)計,并提出了兩種簡單有效的優(yōu)化方法.一種是用DRAM作為PCM的緩沖(Buffer)減少對PCM 的寫操作,另一種是采用部分寫(partial writes)策略,寫入數(shù)據(jù)時和原始數(shù)據(jù)進(jìn)行比較,只將差異部分寫入.這兩種方法對于改善基于PCM主存系統(tǒng)的性能有明顯的效果.
隨著PCM技術(shù)的發(fā)展,人們逐漸認(rèn)識到多比特(Multi-level Cell)PCM存儲單元可以進(jìn)一步提高主存的存儲密度.但是,多比特PCM單元的“寫操作”延時和能耗顯著的增加極大阻礙了其在內(nèi)存層次的應(yīng)用.因此,針對這一情況,研究人員提出了大量的結(jié)構(gòu)優(yōu)化設(shè)計[19-23].例如,可以通過多比特與單比特PCM單元結(jié)合的方法在性能和容量之間尋求優(yōu)化平衡;通過多級的寫入及比較的方法,能夠有效地提高“寫操作”的能效;通過數(shù)據(jù)的選擇性組合,可以提高PCM數(shù)據(jù)寫操作的帶寬;通過類似于STT-RAM緩存中使用的寫暫停優(yōu)化技術(shù)來提高 PRAM 寫性能[19-23].
數(shù)據(jù)編碼技術(shù)也是一種有效提高PCM寫操作能效的方法.本文作者提出根據(jù)數(shù)據(jù)訪問頻率以及寫入能量進(jìn)行單比特和多比特PCM的數(shù)據(jù)編碼優(yōu)化技術(shù)[24,25].最近,其他研究人員提出采用WoM-code的數(shù)據(jù)編碼技術(shù)來提高PCM寫操作的性能和功耗[26].Wangyuan Zhang等人還針對工藝擾動對PCM主存的影響進(jìn)行了結(jié)構(gòu)級的優(yōu)化設(shè)計[27].值得一提的是,除了PCM以外,Engin Ipek等人提出RRAM也可以作為DRAM的替代品之一,除了相應(yīng)的設(shè)計改動,在結(jié)構(gòu)層次提出了數(shù)據(jù)復(fù)制等優(yōu)化策略[28].
Jeremy Condit等人則研究了軟硬件的合理分工、協(xié)同優(yōu)化問題.他們圍繞字節(jié)可尋址的持久存儲器(byte-addressable persistent memory,BPRAM)設(shè)計了BPFS相應(yīng)的硬件架構(gòu)和文件系統(tǒng)[29].其設(shè)計原則是:(1)BPRAM可以直接被CPU訪問,無需隱藏在I/O控制器后.他們將BPRAM直接放在內(nèi)存總線上,使用L1/L2 cache代替了DRAM buffer cache;(2)硬件架構(gòu)上添加了BPFS所需的順序性和原子性功能的支持,同時仍然保持L1和L2高速緩存的性能優(yōu)勢.在BPFS中,為了保證更新順序提出了一種叫做epoch barriers的新機(jī)制,一個cache line被標(biāo)識一個epoch號,并且修改了cache硬件來保證內(nèi)存寫回順序總是按照epoch號順序進(jìn)行;(3)BPFS利用SCM的字節(jié)可尋址和原地更新特性,使用了“短路影子分頁”(short-circuit shadow paging)技術(shù)來支持對SCM原子化、細(xì)粒度、快速、一致的更新.作者評估了三種情形:運(yùn)行在DRAM上的BPFS,和運(yùn)行在RAM disk上和傳統(tǒng)硬盤上的NTFS;然后作者使用微體系模擬器來評測BPFS在PCM上的性能.實(shí)驗(yàn)結(jié)果顯示,在DRAM上的BPFS的性能是RAM disk上的NTFS的兩倍.同時,BPFS比傳統(tǒng)的文件系統(tǒng)提供更強(qiáng)的可靠性保證.
本章節(jié)在系統(tǒng)接口和文件系統(tǒng)兩個層次討論如何針對SCM進(jìn)行優(yōu)化.首先,由于SCM無法使用傳統(tǒng)DRAM或者HDD的控制器(即memory controller和storage controller),與SCM相關(guān)的系統(tǒng)接口是急需解決的問題之一.其次,如何改進(jìn)當(dāng)前為HDD設(shè)計的文件系統(tǒng)從而更加高效地訪問SCM是第二個關(guān)鍵問題.
Haris Volos等人研究了針對SCM的文件系統(tǒng)接口優(yōu)化.由于SCM使用了與當(dāng)前的塊設(shè)備完全不同的接口,并且SCM的訪問延時遠(yuǎn)低于磁盤,因此,現(xiàn)有的根據(jù)磁盤設(shè)計的內(nèi)核存儲棧帶來的高訪問延遲開銷限制了文件系統(tǒng)利用SCM技術(shù)的能力[31].他們認(rèn)為需要重新審視存儲I/O棧.據(jù)此,他們提出了一個針對SCM的靈活的文件系統(tǒng)接口,稱為Aerie[32].如圖4[32]所示,Aerie具有分散的文件系統(tǒng)結(jié)構(gòu),它以運(yùn)行時庫的形式把SCM直接暴露給用戶程序,使它們無需與內(nèi)核交互就能夠讀寫文件.Aerie降低了操作系統(tǒng)內(nèi)核的在文件訪問中的參與度,內(nèi)核僅僅是起到粗粒度的分配和保護(hù)作用.Aerie的好處在于,可以使應(yīng)用程序無需改動復(fù)雜的內(nèi)核代碼就可以通過修改文件系統(tǒng)接口做針對性的優(yōu)化.Volos等人用Aerie實(shí)現(xiàn)了一個通用的POSIX標(biāo)準(zhǔn)文件系統(tǒng)PXFS,其性能與基于內(nèi)核的實(shí)現(xiàn)相近(RamFS)或者更好(ext4).他們還設(shè)計了一個專門的文件系統(tǒng)FlatFS,通過把文件系統(tǒng)的抽象語義縮減成一個具有更低一致性保證的鍵/值存儲(key/value store),F(xiàn)latFS的性能比一個內(nèi)核文件系統(tǒng)高出20%-109%.因此,把文件系統(tǒng)功能分散到各個客戶端程序能夠帶來更靈活的實(shí)現(xiàn),同時極大地提高性能.
圖4 Aerie的系統(tǒng)架構(gòu)示意圖Fig.4 System architecture of Aerie
盡管IO棧的調(diào)整與重構(gòu)對存儲系統(tǒng)性能的提升效果明顯,但是仍然存在的文件系統(tǒng)語義對編程者而言依舊不夠方便.因此,研究者希望利用SCM對所有需要持久化的數(shù)據(jù)都提供一個統(tǒng)一的編程接口,隔離其中的復(fù)雜實(shí)現(xiàn),使SCM的使用更加高效.
面向磁盤開發(fā)的程序員都遵守著一條規(guī)則:不要頻繁地手動更新持久化的數(shù)據(jù),盡量使用數(shù)據(jù)庫引擎來統(tǒng)籌處理.SCM帶來了實(shí)現(xiàn)快速的數(shù)據(jù)持久化的新機(jī)會,有望顛覆這條規(guī)則.除了文件系統(tǒng)接口優(yōu)化之外,Haris Volos等人還提出了針對SCM的編程接口,稱為Mnemosyne[30].Mnemosyne提供輕量級的持久性存儲器接口,使普通的內(nèi)存數(shù)據(jù)結(jié)構(gòu)可以容易地使用持久化事務(wù)來實(shí)現(xiàn)持久化.因此,程序員可以創(chuàng)建一個單一的、為內(nèi)存設(shè)計的數(shù)據(jù)結(jié)構(gòu),而不用單獨(dú)設(shè)計兩種分別針對內(nèi)存優(yōu)化和針對持續(xù)性存儲優(yōu)化的數(shù)據(jù)結(jié)構(gòu).Mnemosyne主要解決了兩個問題:如何創(chuàng)建和管理這些內(nèi)存、如何在故障出現(xiàn)時確保一致性.除此之外,Mnemosyne提供直接修改持久型變量的編程原語,并通過一個輕量級的事務(wù)機(jī)制支持一致的更新.相比過去基于磁盤的持久性存儲系統(tǒng),Mnemosyne通過細(xì)粒度的更新直接將數(shù)據(jù)寫入到內(nèi)存.與通過文件系統(tǒng)將內(nèi)存頁面寫回磁盤的傳統(tǒng)方式相比,Mnemosyne減少了訪問存儲的延遲,提高了性能;相較于過去的持久對象系統(tǒng),Mnemosyne不要求實(shí)現(xiàn)成C++對象,從而提供了更大的靈活性.
最近幾年,研究者提出了許多基于存儲級內(nèi)存(storage-class memory,SCM)而構(gòu)建的文件系統(tǒng).
Xiaojian Wu等人提出了一個在虛擬地址空間中實(shí)現(xiàn)的簡潔的文件系統(tǒng)SCMFS[33].SCMFS利用內(nèi)存管理單元(MMU)將文件系統(tǒng)的地址映射到SCM的物理地址,形成了一個簡單的地址空間布局.SCMFS還利用了操作系統(tǒng)已有的內(nèi)存管理模塊來進(jìn)行塊管理,使得每個文件的虛擬地址空間總是連續(xù)的,簡化了文件系統(tǒng)處理讀寫請求的過程.同時,為了減少內(nèi)存管理開銷,SCMFS采用了空間預(yù)分配機(jī)制,以及相應(yīng)的垃圾回收機(jī)制.作者在Linux下實(shí)現(xiàn)了一個原型,他們認(rèn)為SCMFS的簡潔設(shè)計不僅簡化了其實(shí)現(xiàn),而且通過實(shí)驗(yàn)發(fā)現(xiàn)這樣的設(shè)計還獲得了良好的性能(尤其是對于小的I/O請求).
Jaemin Jung等人考慮到了SCM當(dāng)前階段存儲容量不能滿足需求的問題,提出了由SCM和NAND閃存一起構(gòu)成的混合文件系統(tǒng)FRASH[34],即將大容量的NAND閃存和SCM一起構(gòu)成一個文件系統(tǒng)是當(dāng)前一個合理的選擇.在FRASH中,SCM作為主存和存儲的兩方面特性同時得到了利用:一方面,SCM可以被映射到主存儲器的地址空間,此時它可以對落在相應(yīng)的地址范圍內(nèi)的數(shù)據(jù)提供支持字節(jié)尋址(byte-addressability)的非易失性存儲服務(wù);另一方面,SCM可以被當(dāng)作塊設(shè)備來使用,在這種情況下I/O速度會顯著變快.我們知道,日志式文件系統(tǒng)(log-structured file system)在NAND閃存上有著廣泛的應(yīng)用,它由內(nèi)存中和磁盤上的兩部分?jǐn)?shù)據(jù)結(jié)構(gòu)構(gòu)成.如圖5[34]所示,F(xiàn)RASH把日志式文件系統(tǒng)內(nèi)存中的關(guān)鍵數(shù)據(jù)結(jié)構(gòu)放在SCM里.利用SCM的非易失性,F(xiàn)RASH把掛載延遲降低了一個數(shù)量級,克服了日志式文件系統(tǒng)的一個主要缺點(diǎn).與此同時,通過在SCM中保存目錄快照和文件樹,F(xiàn)RASH的可靠性得到提高,能夠更好地應(yīng)對突發(fā)故障.此外,F(xiàn)RASH還將原先位于磁盤的部分文件系統(tǒng)結(jié)構(gòu)遷移至SCM中,從而支持對文件系統(tǒng)對象和元數(shù)據(jù)頁面的字節(jié)尋址,顯著地提高I/O性能.值得一提的是,F(xiàn)RASH還采用了“掛載時復(fù)制”技術(shù)來克服DRAM和SCM之間的訪問延遲差距帶來的不利影響.
圖5 FRASH文件系統(tǒng)結(jié)構(gòu)示意圖Fig.5 Illustration of FRASH file system
綜上所述,針對內(nèi)存計算等新興應(yīng)用,基于非易失存儲器件設(shè)計的非易失內(nèi)存可以提高存儲系統(tǒng)的性能并降低功耗.根據(jù)非易失內(nèi)存所處的存儲層次以及應(yīng)用的不同需求,可以將非易失內(nèi)存分為NVM主存和SCM兩類設(shè)計.對于NVM主存,由于其受硬件控制器管理,主要需要在體系結(jié)構(gòu)層次上進(jìn)行優(yōu)化;而對于SCM,需要同時在接口和文件系統(tǒng)兩個層次方面進(jìn)行設(shè)計和優(yōu)化,從而有效地發(fā)揮非易失內(nèi)存的優(yōu)勢.
[1] SAP.In memory computing technology[R/OL].2013.http://fm.sap.com/data/UPLOAD/files/SAP_In-Memory_Computing_Technology_.pdf.
[2] IMEX Research.System Architecture for In-Memory Database[R/OL].2013.http://imexresearch.com/IMEXPresentation/InMemoryComputing.pdf.
[3] SAP.Future storage memory technologies[R/OL].2013.http://www.sap-innovationcenter.com/2013/11/21/future-storage-memory-technologies/.
[4] Virident Systems.Using Storage Class Memory for Extreme Performance In-Memory Computing[R/OL].2013.http://www.percona.com/files/presentations/ppc2009/PPC2009_using_storage_class_memory.pdf.
[5] POWER R,LI J.Piccolo:Building Fast,Distributed Programs with Partitioned Tables[C]//OSDI,2010,10:1-14.
[6] APACHE SPARK.Spark[R/OL].2014.http://spark.apache.org/.
[7] ZAHARIA M,CHOWDHURY M,DAS T,et al.Resilient distributed datasets:A fault-tolerant abstraction for in-memory cluster computing[C]//Proceedings of the 9th USENIX Conference on Networked Systems Design and Implementation.USENIX Association,2012:2-2.
[8] ZAHARIA M,DAS T,LI H,et al.Discretized streams:Fault-tolerant streaming computation at scale[C]//Proceedings of the Twenty-Fourth ACM Symposium on Operating Systems Principles.ACM,2013:423-438.
[9] XIN R S,ROSEN J,ZAHARIA M,et al.Shark:SQL and rich analytics at scale[C]//Proceedings of the 2013international conference on management of data.ACM,2013:13-24.
[10] OUSTERHOUT J,AGRAWAL P,ERICKSON D,et al.The case for RAMCloud[J].Communications of the ACM,2011,54(7):121-130.
[11] ONGARO D,RUMBLE S M,STUTSMAN R,et al.Fast crash recovery in RAMCloud[C]//Proceedings of the Twenty-Third ACM Symposium on Operating Systems Principles.ACM,2011:29-41.
[12] RUMBLE S M,KEJRIWAL A,OUSTERHOUT J K.Log-structured memory for DRAM-based storage[C]//FAST.2014:1-16.
[13] BURR G W,KURDI B N,SCOTT J C,et al.Overview of candidate device technologies for storage-class memory[J].IBM Journal of Research and Development,2008,52(4.5):449-464.
[14] FREITAS R F,WILCKE W W.Storage-class memory:The next storage system technology[J].IBM Journal of Research and Development,2008,52(4.5):439-447.
[15] KIM K.From the future Si technology perspective:Challenges and opportunities[C]//Electron Devices Meeting(IEDM),2010 IEEE International.IEEE,2010:1.1.1-1.1.9.
[16] ZHOU P,ZHAO B,YANG J,et al.A durable and energy efficient main memory using phase change memory technology[C]//ACM SIGARCH Computer Architecture News.ACM,2009,37(3):14-23.
[17] LEE B C,IPEK E,MUTLU O,et al.Architecting phase change memory as a scalable dram alternative[J].ACM SIGARCH Computer Architecture News,2009,37(3):2-13.
[18] QURESHI M K,SRINIVASAN V,RIVERS J A.Scalable high performance main memory system using phase-change memory technology[J].ACM SIGARCH Computer Architecture News,2009,37(3):24-33.
[19] JIANG L,ZHANG Y,CHILDERS B R,et al.FPB:fine-grained power budgeting to improve write throughput of multi-level cell phase change memory[C]//Proceedings of the 2012 45th Annual IEEE/ACM International Symposium on Microarchitecture.IEEE Computer Society,2012:1-12.
[20] JIANG L,ZHAO B,ZHANG Y,et al.Improving write operations in MLC phase change memory[C]//High Performance Computer Architecture(HPCA),2012 IEEE18th International Symposium on.IEEE,2012:1-10.
[21] JOSHI M,ZHANG W,LI T.Mercury:A fast and energy-efficient multi-level cell based phase change memory system[C]//High Performance Computer Architecture(HPCA),2011 IEEE17th International Symposium on.IEEE,2011:345-356.
[22] QURESHI M K,F(xiàn)RANCESCHINI M M,LASTRAS-MONTA?O L A,et al.Morphable memory system:a robust architecture for exploiting multi-level phase change memories[C]//ACM SIGARCH Computer Architecture News.ACM,2010,38(3):153-162.
[23] QURESHI M K,F(xiàn)RANCESCHINI M M,LASTRAS-MONTA?O L A.Improving read performance of phase change memories via write cancellation and write pausing[C]//High Performance Computer Architecture(HPCA),2010 IEEE16th International Symposium on.IEEE,2010:1-11.
[24] WANG J,DONG X,SUN G,et al.Energy-efficient multi-level cell phase-change memory system with data encoding[C]//Computer Design(ICCD),2011 IEEE29th International Conference on.IEEE,2011:175-182.
[25] SUN G,NIU D,OUYANG J,et al.A frequent-value based PRAM memory architecture[C]//Proceedings of the 16th Asia and South Pacific Design Automation Conference.IEEE Press,2011:211-216.
[26] ZHANG X W,JANG L,ZHANG Y,et al.WoM-SET:Low power proactive-SET-based PCM write using WoM code[C]//Low Power Electronics and Design(ISLPED),2013 IEEE International Symposium on.IEEE,2013:217-222.
[27] ZHANG W,LI T.Characterizing and mitigating the impact of process variations on phase change based memory systems[C]//Proceedings of the 42nd Annual IEEE/ACM International Symposium on Microarchitecture.ACM,2009:2-13.
[28] IPEK E,CONDIT J,NIGHTINGALE E B,et al.Dynamically replicated memory:building reliable systems from nanoscale resistive memories[C]//ACM SIGARCH Computer Architecture News.ACM,2010,38(1):3-14.
[29] CONDIT J,NIGHTINGALE E B,F(xiàn)ROST C,et al.Better I/O through byte-addressable,persistent memory[C]//Proceedings of the ACM SIGOPS22nd symposium on operating systems principles.ACM,2009:133-146.
[30] VOLOS H,TACK A J,SWIFT M M.Mnemosyne:Lightweight persistent memory[C]//ACM SIGARCH Computer Architecture News.ACM,2011,39(1):91-104.
[31] VOLOS H,PANNEERSELVAM S,NALLI S,et al.Storage-class memory needs flexible interfaces[C]//Proceedings of the 4th Asia-Pacific Workshop on Systems.ACM,2013:11.
[32] VOLOS H,NALLI S,PANNEERSELVAM S,et al.Aerie:flexible file-system interfaces to storage-class memory[C]//Proceedings of the Ninth European Conference on Computer Systems.ACM,2014:14.
[33] WU X,REDDY A L.SCMFS:a file system for storage class memory[C]//Proceedings of 2011International Conference for High Performance Computing,Networking,Storage and Analysis.ACM,2011:39.
[34] JUNG J,WON Y,KIM E,et al.FRASH:Exploiting storage class memory in hybrid file system for hierarchical storage[J].ACM Transactions on Storage(TOS),2010,6(1):3.
[35] BURR G W.Storage Class Memory:Towards a disruptively low-cost solid-state non-volatile memory [R/OL].IBM Almaden Research Center.[2013-01-12].http://researcher.ibm.com.