国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向混合內(nèi)存體系結(jié)構(gòu)的模擬器

2014-10-31 06:54:30張進寶廖小飛
關(guān)鍵詞:失性測試程序體系結(jié)構(gòu)

劉 東, 張進寶, 廖小飛, 金 海

(華中科技大學(xué) 計算機學(xué)院,服務(wù)計算技術(shù)與系統(tǒng)教育部重點實驗室,集群與網(wǎng)格計算湖北省重點實驗室,武漢430074)

0 引 言

內(nèi)存是所有計算機系統(tǒng)的關(guān)鍵部件,內(nèi)存技術(shù)的發(fā)展近年來面臨著新的嚴(yán)峻考驗:一方面,多核/眾核處理器技術(shù)的飛速發(fā)展使得系統(tǒng)對大容量、高帶寬內(nèi)存的需求不斷增大;另一方面,大數(shù)據(jù)時代下大量數(shù)據(jù)密集型應(yīng)用的涌現(xiàn)也對內(nèi)存的容量、性能、功耗都提出了新的更高的要求.與此相對,以動態(tài)隨機存儲器(DRAM)為代表的傳統(tǒng)內(nèi)存技術(shù)的發(fā)展卻遇到了瓶頸:受限于制造工藝,在較低的成本上獲得更大容量的DRAM內(nèi)存變得越發(fā)困難[1];且隨著容量的不斷增大,DRAM內(nèi)存的高能耗問題也日益凸顯,內(nèi)存的能耗在整個系統(tǒng)能耗中的占比非常大,在一些服務(wù)器系統(tǒng)中,內(nèi)存的能耗已經(jīng)接近甚至超過了處理器的能耗[2-5].

所幸的是,新型非易失性存儲(Non-Volatile Memory,NVM)技術(shù)的興起與發(fā)展為打破傳統(tǒng)DRAM內(nèi)存這一系統(tǒng)性能與能耗瓶頸提供了契機.以相變存儲器(Phase Change Memory,PCM)為代表的非易失性存儲器件有著良好地可擴展性,比閃存(Flash Memory),更加接近DRAM的時延與帶寬特性,非易失性,以及極低的靜態(tài)功耗等一系列優(yōu)良的特性.遺憾的是,它們同樣也有著使用壽命短、寫時延與功耗過高等一些尚未克服的缺陷.因此,尚不具備利用非易失性存儲完全替代DRAM作為主存的技術(shù)條件.目前比較通行的做法是利用新型非易失性存儲器件與傳統(tǒng)DRAM構(gòu)建混合內(nèi)存(Hybrid Memory),以期達到充分發(fā)揮兩者自身優(yōu)勢同時避免各自缺陷這一目的[3-6].

1 相關(guān)模擬器

由于目前還沒有真實的混合內(nèi)存物理器件,因此學(xué)術(shù)界在這一領(lǐng)域的研究工作都是基于模擬器平臺來開展的.硬件模擬技術(shù)分為局部和全系統(tǒng)模擬兩種類型,目前較為常用的模擬內(nèi)存的局部模擬器有NVMain、DRAMSim2等.NVMain[7]是一個在內(nèi)存結(jié)構(gòu)層面模擬新型非易失性存儲器材的內(nèi)存模擬器,同時也能模擬傳統(tǒng)DRAM的內(nèi)存結(jié)構(gòu).DRAMSim2[8]也是一個時鐘精確的高度可配置的內(nèi)存系統(tǒng)模擬器,它針對多種類型的DRAM內(nèi)存做了詳細(xì)的時鐘模擬,但目前尚不支持非易失性存儲模型.NVMain和DRAMSim2既可以作為局部模擬器獨立運行,也能集成進其他全系統(tǒng)模擬器作為內(nèi)存部件模擬內(nèi)存行為.

較為流行的全系統(tǒng)模擬器包括MARSSx86、gem5等.MARSSx86[9]是一個模擬x86架構(gòu)的全系統(tǒng)多核模擬器,它在評估系統(tǒng)設(shè)計方案以及研究處理器微體系結(jié)構(gòu)方面有著出色的表現(xiàn).gem5[10]是由 M5[11]和 GEMS[12]緊耦合而成的全系統(tǒng)模擬器,其中 M5提供高度可配置的模擬框架、多種指令集架構(gòu)和多種CPU模型,gems提供精細(xì)靈活的內(nèi)存系統(tǒng),包括多種緩存一致性協(xié)議和互聯(lián)模型.

上述全系統(tǒng)模擬器雖然都能比較完整地模擬全系統(tǒng)行為,但均不支持混合內(nèi)存體系結(jié)構(gòu);局部硬件模擬器雖然精細(xì)靈活,但卻不能完整地揭示新型體系結(jié)構(gòu)對系統(tǒng)的全局影響.為了更好地對新型體系結(jié)構(gòu)開展研究,集成使用全系統(tǒng)模擬器和局部硬件模擬器構(gòu)建新的支持混合內(nèi)存體系結(jié)構(gòu)的模擬器平臺是一個不錯的技術(shù)思路,選擇使用gem5和NVMain構(gòu)建所需的模擬器平臺.兩種模擬器的內(nèi)存時序邏輯嚴(yán)格按照硬件生產(chǎn)廠商所發(fā)布的數(shù)據(jù)表(Data sheet)來設(shè)置,且在全系統(tǒng)模擬器gem5上可以運行真實的程序,這就為所構(gòu)建模擬器的可靠性提供了有力保障.

2 面向混合內(nèi)存體系結(jié)構(gòu)的模擬器

為了實現(xiàn)gem5模擬器平臺對混合內(nèi)存體系結(jié)構(gòu)的支持,并進一步開展對新型混合內(nèi)存的研究,在gem5上開展如下工作.

2.1 混合內(nèi)存體系結(jié)構(gòu)框架

gem5作為一個可以運行原生Linux內(nèi)核的全系統(tǒng)模擬器,本身可以比較完整地模擬全系統(tǒng)行為,圖1所示為gem5可以模擬的原生系統(tǒng)體系結(jié)構(gòu).CPU0和CPU1分別擁有私有的一級數(shù)據(jù)緩存和一級指令緩存,兩個CPU的一級緩存通過L2Bus總線與共享的二級緩存相連,二級緩存再通過內(nèi)存總線(Memory Bus)與內(nèi)存模塊相連.其中,可選的內(nèi)存模塊主要是幾種傳統(tǒng)的DDR動態(tài)隨機存儲器(DDR3、LPDDR3等),gem5缺乏模擬新型非易失性存儲器件的功能,且同一時刻有且只能有一種內(nèi)存模塊在工作,亦即原生的gem5模擬器并不支持混合內(nèi)存體系結(jié)構(gòu).

為了擴展gem5的功能,使其支持混合內(nèi)存體系結(jié)構(gòu),對其做相應(yīng)的修改.圖2所示為修改后的gem5混合內(nèi)存系統(tǒng)結(jié)構(gòu)圖,即在內(nèi)存總線和內(nèi)存模塊之間添加一層混合內(nèi)存控制器(Hybrid Memory Controller)結(jié)構(gòu),再將DRAM內(nèi)存模塊和新型非易失性內(nèi)存模塊與混合內(nèi)存控制器相連.DARM模塊沿用gem5中的原生模塊,NVM模塊引入NVMain中的NVM內(nèi)存模型.

2.2 多種內(nèi)存混合策略

首先,新型非易失性存儲器件的種類繁多,除了前文提到的相變存儲器PCM之外,還有阻變存儲器RRAM、鐵電存儲器FeRAM等.為了更好地研究不同非易失性存儲與DRAM內(nèi)存混合所帶來的性能與能耗變化,需要構(gòu)建多種非易失性存儲模型作為圖2中的NVM與DRAM內(nèi)存混合使用.

其次,混合內(nèi)存體系結(jié)構(gòu)中兩種不同存儲介質(zhì)之間的結(jié)構(gòu)關(guān)系也將對混合內(nèi)存系統(tǒng)的實驗效果產(chǎn)生影響,層次結(jié)構(gòu)[3]和平行結(jié)構(gòu)[5]是兩種主流的混合結(jié)構(gòu),具體到在gem5中的實現(xiàn),主要的任務(wù)就是針對兩種結(jié)構(gòu)關(guān)系分別設(shè)計混合內(nèi)存控制器,并且要能通過配置文件來選擇所需的混合策略.

圖1 gem5系統(tǒng)體系結(jié)構(gòu)Fig.1 System structure of gem5

圖2 gem5混合內(nèi)存體系結(jié)構(gòu)Fig.2 System structure of gem5 with hybrid memory

2.3 Cache優(yōu)化管理機制

高速緩存(Cache)在整個存儲體系中占有極其重要的地位,設(shè)計精良、管理得當(dāng)?shù)腸ache可以極大地彌補慢速主存與高速CPU之間的速度差異,使整個計算機系統(tǒng)獲得近乎于cache的訪存性能.為了盡可能地減小NVM介質(zhì)的長讀寫時延對系統(tǒng)性能帶來的不利影響,充分發(fā)揮混合內(nèi)存中傳統(tǒng)DRAM的性能優(yōu)勢,需要針對混合內(nèi)存環(huán)境下的cache替換策略進行優(yōu)化.

(1)cache不命中的性能開銷.傳統(tǒng)DRAM內(nèi)存環(huán)境下,cache不命中之后的訪存行為不管是讀操作還是寫操作,其性能開銷都近乎一致.在混合內(nèi)存環(huán)境下,cache不命中之后的訪存行為可分為兩類,一類是訪問DRAM,一類是訪問NVM,它們的性能開銷差異很大.此外,跟DRAM內(nèi)存讀寫時延近乎一致所不同的是,NVM內(nèi)存的讀時延和寫時延也有著數(shù)倍的差距[5].

(2)cache替換時victim塊的判定.傳統(tǒng)DRAM內(nèi)存環(huán)境下,廣泛使用的類LRU替換算法根據(jù)訪存的時空局部性或cache重用距離等因素來選擇cache替換時的victim塊,根據(jù)上一小節(jié)的分析討論,這種判定機制在混合內(nèi)存環(huán)境下并不完全適用,選擇victim緩存塊時還需要綜合考慮cache塊的不命中處罰.圖3所示為混合內(nèi)存環(huán)境下的cache替換決策機制:一方面,利用類LRU算法中緩存塊在緩存組中的位置信息來計算緩存塊的重用幾率;另一方面,在緩存塊中添加來源位以標(biāo)識緩存塊是來自DRAM內(nèi)存還是NVM內(nèi)存,并用此來源位信息評估該緩存塊的不命中處罰.重用幾率與不命中處罰兩個因素最終共同決定各緩存塊的替換優(yōu)先級.

圖3 混合內(nèi)存環(huán)境下cache替換決策機制Fig.3 Decision-making mechanism of cache replacement in the hybrid memory system

2.4 基于頁面熱度的頁面遷移策略

為了充分發(fā)揮非易失性存儲器低功耗以及DRAM高性能的優(yōu)勢,在gem5模擬器的混合內(nèi)存控制器中添加基于頁面熱度的混合內(nèi)存頁面遷移策略,如圖4所示.該策略主要包含如下4部分內(nèi)容.

(1)頁面?zhèn)蓽y.在混合內(nèi)存控制器中添加新的數(shù)據(jù)結(jié)構(gòu),利用該數(shù)據(jù)結(jié)構(gòu)分別記錄內(nèi)存頁面在局部時間和全局時間內(nèi)的讀寫頻次,這些采集到的訪存信息將被用來判定頁面的冷熱.

(2)頁面篩選.在混合內(nèi)存控制器中統(tǒng)計了頁面的熱度信息,根據(jù)這些信息綜合考慮局部時間和全局時間,將那些從開始到當(dāng)前時間寫次數(shù)多,并且局部時間也被頻繁訪問的頁面定為熱頁面,將那些一開始就較少訪問,并且最近也很少用到的頁面定為冷頁面.冷熱頁面劃分時,要考慮熱頁面可能會有局部冷訪問時段,而冷頁面也會有局部熱訪問時段.

(3)頁面遷移.確定了冷熱頁面后,計算遷移帶來的性能開銷和遷移帶來的性能提升,選取遷移收益大的頁面進行遷移.與此同時,為了充分利用DRAM,根據(jù)DRAM的利用率,有保守和激進兩種遷移模式,在激進模式下盡最大可能向DRAM空位置遷移,而保守模式下也要從DRAM中換出冷頁面到非易失性存儲器中.

(4)頁面重映射.遷移的頁面需要進行重映射來保障程序的正確運行,這就需要在混合內(nèi)存控制器中維護一個從源頁面到目的頁面的重映射表.每次遷移都要維護這個重映射表,每次的操作或者是更新表項或者是添加新的條目.

圖4 混合內(nèi)存控制器結(jié)構(gòu)Fig.4 Structure of the hybrid memory controller

3 模擬實驗

為了證明上述構(gòu)建混合內(nèi)存模擬器平臺方法的可行性,在gem5上進行對照實驗,系統(tǒng)配置參數(shù)如表1所示.其中,CPU類型指定參數(shù)timing,亦即選定gem5中的Timing Simple CPU,這樣相應(yīng)的訪存將根據(jù)時序模型模擬運行.設(shè)置兩級緩存,包括4路組相聯(lián)的32 KB一級指令緩存和32 KB一級數(shù)據(jù)緩存以及8路組相聯(lián)的2 MB二級緩存,兩級緩存的緩存行(Cache Line)大小同為64B.

內(nèi)存配置方面,設(shè)一組傳統(tǒng)DDR3 SDRAM內(nèi)存作為基準(zhǔn)組,選取變存儲器(PCM)以及由以上兩種介質(zhì)構(gòu)建而成的混合內(nèi)存作為對照組.所選DDR3 SDRAM和PCM的時延參數(shù)如表2所示.總的來說,PCM的讀性能雖然比DRAM差,但還算比較接近,而PCM的寫性能比DARM的寫性能差得多,它們已不在一個數(shù)量級[5].

表1 模擬器系統(tǒng)配置Tab.1 System configuration of the simulator

表2 內(nèi)存時延參數(shù)Tab.2 Delay of the memory

選取SPEC CPU2006基準(zhǔn)測試集中的sjeng、calculix、lbm、cactusADM以及專門測試內(nèi)存性能的STREAM[13]作為測試程序.由于每個測試程序運行時所消耗的內(nèi)存大小各不相同,針對不同程序所設(shè)置的模擬器系統(tǒng)內(nèi)存大小也并不統(tǒng)一.如表3所示,為了使混合內(nèi)存環(huán)境下程序的訪存均勻地分布在兩種不同的存儲介質(zhì)上,針對不同程序的內(nèi)存混合方案也做了精心設(shè)計.

表3 測試程序內(nèi)存配置Tab.3 Memory configuration of the benchmark

模擬器本身即為大型程序,在它上面運行測試程序的速度比在真實物理機上的速度要慢得多,為了將測試程序的運行時間控制在一個可以接受的范圍之內(nèi),選擇手動指定各測試程序在模擬器上運行的指令數(shù)而不是將它們?nèi)窟\行完畢.與此同時,為了盡可能地減小由此而帶來的對實驗結(jié)果準(zhǔn)確性的不良影響,亦即盡可能運行較多的指令,我們進行了反復(fù)的測試運行,最終確定了如表3所示的各測試程序的模擬運行指令數(shù).特別地,calculix由于程序本身運行較快,其所有指令都運行完畢.

4 實驗結(jié)果與分析

圖5所示的是以純DRAM內(nèi)存為基準(zhǔn),3種內(nèi)存環(huán)境下運行各測試程序時標(biāo)準(zhǔn)化的系統(tǒng)CPI(Cycles Per Instruction).

圖5 不同內(nèi)存環(huán)境下標(biāo)準(zhǔn)化的CPI(以純DRAM內(nèi)存為基準(zhǔn))Fig.5 Normalized CPI in different memory systems(Normalized to DRAM)

不難發(fā)現(xiàn),純DRAM內(nèi)存的性能最好,混合內(nèi)存其次,純PCM內(nèi)存在性能上表現(xiàn)最差,這完全符合實驗預(yù)期.5組實驗結(jié)果的不同之處在于,有的測試程序,如sjeng,在3種不同內(nèi)存環(huán)境下的性能差異很大;而有的測試程序,如calculix,其性能似乎對內(nèi)存環(huán)境并不敏感.通過分析程序訪存的統(tǒng)計信息可以很好地解釋這一現(xiàn)象.

表4是混合內(nèi)存環(huán)境下測試程序內(nèi)存讀寫的分布表,從表中可以清楚地看出,在混合內(nèi)存環(huán)境下,sjeng的內(nèi)存讀、寫總量都很大且90%左右的讀寫操作都發(fā)生在PCM中,而PCM的訪存性能(尤其是寫)比DRAM差,這就導(dǎo)致程序運行時的訪存總時延被大大延長,進而導(dǎo)致sjeng運行時系統(tǒng)CPI大幅度提高.calculix對內(nèi)存環(huán)境不敏感的原因是雖然其讀寫操作大部分發(fā)生在低性能的PCM中,但是訪存總量小,例如寫PCM操作只在千次數(shù)量級,而該操作最能影響系統(tǒng)CPI.表4中需要特別說明的是lbm行,并非數(shù)據(jù)出錯,而是其程序本身的訪存特性就是如此,絕大部分內(nèi)存讀寫操作的位置相對集中,只有極少數(shù)的訪存行為越過集中內(nèi)存區(qū)域,這也可能跟有限的執(zhí)行指令數(shù)相關(guān).

表4 混合內(nèi)存環(huán)境下測試程序訪存分布(括號內(nèi)為讀寫次數(shù))Tab.4 Distribution of memory access of the benchmark in the hybrid memory system (between the brackets are memory access counts)

圖6所示是不同內(nèi)存環(huán)境下標(biāo)準(zhǔn)化的內(nèi)存總線吞吐率,依然可以清晰地看出DRAM內(nèi)存的總線吞吐率最大,Hybrid其次,PCM最低這一趨勢.圖中形狀的差異同樣可以從表4中不同測試程序的訪存統(tǒng)計信息中分析出結(jié)果,在此不再贅述.

圖6 不同內(nèi)存環(huán)境下標(biāo)準(zhǔn)化的內(nèi)存總線吞吐率(以純DRAM內(nèi)存為基準(zhǔn))Fig.6 Normalized throughput of the memory bus in different memory systems(Normalized to DRAM)

5 結(jié) 論

實驗結(jié)果與理論預(yù)期完全吻合,充分說明了利用gem5和NVMain來構(gòu)建混合內(nèi)存系統(tǒng)模擬器是一種可行的技術(shù)方案.

眾所周知,混合內(nèi)存是非常有前景的技術(shù)領(lǐng)域,新型非易失性存儲器件的興起與發(fā)展為提高內(nèi)存擴展性、降低內(nèi)存能耗等技術(shù)難題的解決帶來了新的希望;同時,它也帶來了控制混合內(nèi)存性能損失、延長非易失性存儲使用壽命等挑戰(zhàn).現(xiàn)階段要想開展針對混合內(nèi)存的研究工作,必須借助于模擬器,因此,一個面向混合內(nèi)存體系結(jié)構(gòu)的系統(tǒng)模擬器對于相關(guān)研究人員來說顯得尤為重要.今后,我們將會沿著文中指出的技術(shù)路線進一步完善混合內(nèi)存模擬器平臺.

[1] MUTLU O.Memory scaling:A systems architecture perspective[C]//Memory Workshop (IMW),2013 5th IEEE International.IEEE,2013:21-25.

[2] 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.

[3] QURESHI M K,SRINIVASAN V,RIVERS J A.Scalable high performance main memory system using phasechange memory technology[J].ACM SIGARCH Computer Architecture News,2009,37(3):24-33.

[4] RAMOS L E,GORBATOV E,BIANCHINI R.Page placement in hybrid memory systems[C]//Proceedings of the international conference on Supercomputing.ACM,2011:85-95.

[5] DHIMAN G,AYOUB R,ROSING T.PDRAM:a hybrid PRAM and DRAM main memory system[C]//Proceedings of the 46th Design Automation Conference.ACM,2009:664-669.

[6] MOGUL J C,ARGOLLO E,SHAH M A,et al.Operating System Support for NVM+ DRAM Hybrid Main Memory[C]//HotOS.2009.

[7] POREMBA M,XIE Y.Nvmain:An architectural-level main memory simulator for emerging non-volatile memories[C]//VLSI(ISVLSI),2012 IEEE Computer Society Annual Symposium on.IEEE,2012:392-397.

[8] ROSENFELD P,COOPER-BALIS E,JACOB B.Dramsim2:A cycle accurate memory system simulator[J].Computer Architecture Letters,2011,10(1):16-19.

[9] PATEL A,AFRAM F,CHEN S,et al.MARSS:a full system simulator for multicore x86 CPUs[C]//Proceedings of the 48th Design Automation Conference.ACM,2011:1050-1055.

[10] BINKERT N,BECKMANN B,BLACK G,et al.The gem5 simulator[J].ACM SIGARCH Computer Architecture News,2011,39(2):1-7.

[11] BINKERT N L,DRESLINSKI R G,Hsu L R,et al.The M5 simulator:Modeling networked systems[J].IEEE Micro,2006,26(4):52-60.

[12] MARTIN M M K,SORIN D J,BECKMANN B M,et al.Multifacet's general execution-driven multiprocessor simulator(GEMS)toolset[J].ACM SIGARCH Computer Architecture News,2005,33(4):92-99.

[13] http://www.cs.virginia.edu/stream/.

猜你喜歡
失性測試程序體系結(jié)構(gòu)
面向非易失性內(nèi)存的持久索引數(shù)據(jù)結(jié)構(gòu)研究綜述
一種面向非易失性內(nèi)存文件系統(tǒng)的數(shù)據(jù)讀寫粒度控制策略
基于Castle型機械手的三溫量產(chǎn)測試平臺實現(xiàn)
手機APP交互界面人因適合性測試程序的設(shè)計與實現(xiàn)
中心主導(dǎo)制訂的《VHF/UHF頻率范圍內(nèi)測向系統(tǒng)測向靈敏度的測試程序》等兩項國際標(biāo)準(zhǔn)在ITU官網(wǎng)正式發(fā)布
基于粒計算的武器裝備體系結(jié)構(gòu)超網(wǎng)絡(luò)模型
作戰(zhàn)體系結(jié)構(gòu)穩(wěn)定性突變分析
非易失性納米晶存儲器的研究
詩性
——史性——失性——試論《白鹿原》及其話劇和電影改編
大眾文藝(2016年7期)2016-01-27 11:18:22
基于DODAF的裝備體系結(jié)構(gòu)設(shè)計
禄丰县| 亚东县| 河曲县| 阳城县| 京山县| 大厂| 安阳县| 定襄县| 抚州市| 板桥市| 本溪市| 临安市| 筠连县| 庆阳市| 长春市| 林西县| 武强县| 黄骅市| 铁岭县| 吴江市| 南和县| 麟游县| 红安县| 永安市| 应用必备| 巴青县| 黄石市| 江口县| 桐柏县| 娄烦县| 师宗县| 甘南县| 灌阳县| 新河县| 林甸县| 罗山县| 郓城县| 祁东县| 涟源市| 镇平县| 上高县|