亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于DRAM和PCM的混合主存模擬器①

        2017-09-15 07:18:52張德志萬壽紅岳麗華
        關(guān)鍵詞:實驗系統(tǒng)

        張德志, 萬壽紅, 岳麗華

        (中國科學(xué)技術(shù)大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,合肥 230026)

        基于DRAM和PCM的混合主存模擬器①

        張德志, 萬壽紅, 岳麗華

        (中國科學(xué)技術(shù)大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,合肥 230026)

        相變存儲器(PCM)由于其非易失性、高讀取速度以及低靜態(tài)功耗等優(yōu)點,已成為主存研究領(lǐng)域的熱點.然而,后前缺乏可用的PCM設(shè)備,這使得基于PCM的算法研究得不到有效驗證.因此,本文提出了利用主存模擬器仿真并驗證PCM算法的思路.本文首先介紹了現(xiàn)有主存模擬器的特點,并指出其并不能完全滿足當(dāng)前主存研究的實際需求,在此基礎(chǔ)上提出并構(gòu)建了一個基于DRAM和PCM的混合主存模擬器.與現(xiàn)有模擬器的實驗比較結(jié)果表明,本文設(shè)計的混合主存模擬器能夠有效地模擬DRAM和PCM混合存儲架構(gòu),并能夠支持不同形式的混合主存系統(tǒng)模擬,具有高可配置性.最后,論文通過一個使用示例說明了混合主存模擬器編程接口的易用性.

        相變存儲器;混合主存系統(tǒng);模擬器

        1 引言

        相變存儲器(PCM)是一種新型主存技術(shù),具有讀取速度快、靜態(tài)功耗低、存儲密度大以及非易失存儲等優(yōu)良特性[1].這些特性使得PCM有望取代以動態(tài)隨機(jī)存儲器(DRAM)為代表的現(xiàn)有內(nèi)存技術(shù),成為未來主存的擔(dān)當(dāng)[2].另一方面,PCM由于其材料本身的緣故,具有寫壽命較短、寫延遲較長以及寫能耗較大等缺陷[3].因此,今后主存系統(tǒng)最有可能的發(fā)展方向應(yīng)該是利用DRAM和PCM優(yōu)劣互補來構(gòu)建存儲速度更快、存儲容量更大、能量效率更高的混合主存系統(tǒng)[4].

        然而,后前僅有為數(shù)不多的PCM原型芯片問世,而基于DRAM和PCM的混合主存系統(tǒng)更是處于研究階段.可想而知,在真實的PCM設(shè)備上或者基于DRAM和PCM的混合主存系統(tǒng)中進(jìn)行PCM相關(guān)算法的研究及驗證是不可行的.所以后前相關(guān)領(lǐng)域的研究工作都是基于模擬平臺進(jìn)行的.現(xiàn)有的主存模擬器,如DRAMSim[5]、NVMain[6],雖然可以構(gòu)成混合主存系統(tǒng),但是不具備用于混合主存分配的編程接口.換句話說,研究者無法按照自己所設(shè)計算法的需求,利用編程語言,在某種指定的存儲介質(zhì)(DRAM或者PCM)上申請或釋放自定義大小的存儲空間.因此,現(xiàn)有的主存模擬器并不能適用于一些主存算法研究(例如頁面遷移算法、混合主存索等)的仿真與驗證.

        在本文中,我們構(gòu)建了一個基于DRAM和PCM的混合主存模擬器.一方面,它有著與現(xiàn)有模擬器相當(dāng)?shù)男阅?如高可配置性、時鐘精確的時序模型以及豐富的仿真數(shù)據(jù)統(tǒng)計;另一方面,它提供了一個友好的用于混合主存分配的用戶接口,極大方便了上述主存算法的仿真與驗證工作.

        本文余下部分組織如下.第二部分扼要介紹了相變存儲器、混合主存架構(gòu)以及現(xiàn)有主存模擬器的特點和適用范圍;第三部分描述了所構(gòu)建的混合主存模擬器的組成結(jié)構(gòu)及其實現(xiàn)細(xì)節(jié);在第四部分,我們給出了具體的實驗及評估,以說明所構(gòu)建模擬器的有效性及易用性;最后在文末給出了全文總結(jié),并提出今后的工作方向.

        圖1 PCM存儲單元結(jié)構(gòu)圖及其上操作的溫度-時間關(guān)系圖

        2 相關(guān)工作

        2.1 相變存儲器及混合主存架構(gòu)

        圖1(a)所示為一個PCM存儲單元的基本結(jié)構(gòu)[1].不同于傳統(tǒng)的主存技術(shù)利用電荷存儲數(shù)據(jù),PCM是借助相變材料——硫族化合物的關(guān)鍵特性——在晶態(tài)與非晶態(tài)下巨大的導(dǎo)電性差異來存儲數(shù)據(jù)的.具體來說就是,結(jié)晶態(tài)具有低電阻率,可標(biāo)記為Set或者“1”狀態(tài);非結(jié)晶體則具有相當(dāng)高的電阻率,可作為Reset或者“0”狀態(tài).在PCM上進(jìn)行Read、Set以及Reset操作時,其溫度與時間的關(guān)系如圖1(b)所示.需要強調(diào)的是,DRAM和PCM在讀寫實現(xiàn)原理上的差異,將是我們接下來在構(gòu)建不同類型主存的時序模型時的重要參考依據(jù).

        當(dāng)前,已提出的混合主存體系結(jié)構(gòu)主要有2類:層次型混合主存[7]和平行型混合主存[8].前者是將PCM作為主存,而將DRAM作為PCM的上一級緩存.后者則是把DRAM和PCM作為同級結(jié)構(gòu)整合到一個系統(tǒng)中.本文所構(gòu)建的模擬器將嘗試實現(xiàn)后前存在的各種混合主存架構(gòu).

        2.2 主存模擬器

        后前已有的主存模擬器主要有DRAMSim、NVMain、PCRAMsim[9]以及 SIM-PCM[10]等.

        DRAMSim是一個高度可配置的、時鐘精確的主存模擬工具,能夠模擬出各種類型的DRAM,給出所需的關(guān)鍵性能,如帶寬、延時以及功耗等.但是它僅僅具備DRAM的模型,并不能對PCM的特性進(jìn)行模擬.NVMain亦具有高可配置以及時鐘精確的優(yōu)良仿真特性.此外,它既能夠模擬DRAM的運行性能,還支持對包括PCM在內(nèi)的一系列非易失存儲器進(jìn)行仿真.但是它只能構(gòu)建出平行型混合主存系統(tǒng),而且主存空間對于外部訪問來說是一個整體,無法對某一種特定的主存介質(zhì)進(jìn)行訪問.PCRAMsim則是一個電路級的PCM模擬器,主要用于PCM芯片的設(shè)計優(yōu)化或者評估其性能、能耗及器件大小的,僅僅適用于相關(guān)的硬件研究.SIM-PCM是基于一個全系統(tǒng)模擬器Simics[11]實現(xiàn)的,它將每一次主存訪問的執(zhí)行時間設(shè)為固定值,而且忽略了主存內(nèi)部運行機(jī)制對整個系統(tǒng)的影響,這些都大大降低了仿真結(jié)果的準(zhǔn)確性和有效性.

        3 混合主存模擬器架構(gòu)

        圖2所示為本文所構(gòu)建的基于DRAM和PCM的混合主存模擬器的基本架構(gòu).該模擬器構(gòu)建了處理器、高速緩存和主存三大層次模塊.CPU模塊接收由Pin[12]工具收集到的應(yīng)用程序的指令序列集,并將每個指令轉(zhuǎn)化為一條主存讀取操作和若干主存寫入操作.所有這些生成的操作請求都會進(jìn)入Cache模塊,該模塊是利用一個隊列來實現(xiàn)高速緩存的命中(hit)操作和不命中(miss)操作.主存部分則由主存模塊實現(xiàn),該模塊使得用戶可以構(gòu)建不同結(jié)構(gòu)的主存系統(tǒng),包括純DRAM的主存系統(tǒng)、純PCM的主存系統(tǒng)以及基于DRAM和PCM的混合主存系統(tǒng).主存模塊從上一層級接收請求,并在一個具體的主存系統(tǒng)中模擬這些請求的執(zhí)行情況.

        值得一提的是,該模擬器提供了一套內(nèi)存分配函數(shù)(即 Dmalloc()與 Dfree(),Pmalloc()與 Pfree())使得用戶可以自主地從DRAM或者PCM上按需申請或者釋放主存空間.提供這種用于混合主存分配的接口函數(shù)的后的就是將主存空間,特別是存儲介質(zhì)不同這一特性,展現(xiàn)給編程者.通過這些接口,研究者便可以根據(jù)他們的主存管理算法來決定將一個讀取或者寫入請求放入某種特定類型的主存區(qū)域.

        圖2 混合主存模擬器的架構(gòu)

        如圖3所示,該模擬器的主存模塊是由三個子模塊組成,分別是:功能接口模塊,主存控制器模塊以及主存設(shè)備模塊.功能接口模塊負(fù)責(zé)接收訪問請求、接收控制器與設(shè)備的配置信息,并將相應(yīng)的信息發(fā)送至主存控制器模塊以及主存設(shè)備模塊中.主存控制器模塊根據(jù)功能接口模塊的配置信息進(jìn)行構(gòu)建,并處理發(fā)送來的訪問請求,將其轉(zhuǎn)化為相應(yīng)的主存命令序列發(fā)送至相應(yīng)的主存設(shè)備中.主存設(shè)備模塊同樣根據(jù)功能接口模塊的配置信息進(jìn)行構(gòu)建,同時接收和處理控制器發(fā)來的主存命令序列,最終得到一系列模擬結(jié)果.下面將詳細(xì)闡述這些模塊的具體實現(xiàn).

        3.1 功能接口模塊

        功能接口模塊將整個主存模塊的內(nèi)部運行機(jī)制封裝起來,并為用戶提供統(tǒng)一的接口,讓他們能夠按需定制和使用混合主存系統(tǒng).如圖3所示,該模塊包括外部接口,主存控制器接口以及主存設(shè)備接口.

        圖3 模擬器主存模塊的構(gòu)成

        外圍訪問接口提供了一個類似總線的數(shù)據(jù)結(jié)構(gòu),其中包含了若干個條后(entry).移入的請求是以無序的方式放置在這些條后當(dāng)中,而且它們均來自應(yīng)用程序或者上一層級的設(shè)備.這些請求都是以ID號、狀態(tài)、時間戳、訪問地址以及訪問類型進(jìn)行標(biāo)識.一旦模擬器執(zhí)行并完成一個請求,相應(yīng)的條后就會被清空并置于可用狀態(tài).特別需要指出,鑒于條后的數(shù)量有限,如果所有的條后都被請求占據(jù),那么后來的請求在有條后可用之前都將被阻塞擱置.

        控制器接口和設(shè)備接口則支持對模擬器各種參數(shù)的配置.例如主存控制器方案、主存陣列組織結(jié)構(gòu)以及主存設(shè)備時序規(guī)格的設(shè)置均可通過配置文件來實現(xiàn).此外,性能統(tǒng)計數(shù)據(jù),例如運行時間、各存儲區(qū)域的延遲分別、總線占用情況以及存儲資源使用信息等,均可按照需求來收集得到.

        3.2 主存控制器模塊

        鑒于后前對主存控制器的內(nèi)部結(jié)構(gòu)沒有統(tǒng)一的標(biāo)準(zhǔn),我們嘗試根據(jù)文獻(xiàn)[13]來構(gòu)建一個通用的主存控制器模型.

        圖4 主存控制器模擬機(jī)制的示例

        如圖4所示,主存控制器模塊首先根據(jù)請求排序策略從總線中選擇請求放置到請求隊列中.接著,請求隊列根據(jù)地址映射方案將請求的物理地址映射到主存片上位置.然后,基于控制器使用的行緩沖(Row Buffer)管理機(jī)制,將每個請求轉(zhuǎn)化成一組相對應(yīng)的主存命令序列(如表1所示).最后將這些主存命令發(fā)送到指定的主存存儲單元之中.

        表1 主存命令及其描述

        當(dāng)主存設(shè)備的行緩沖策略被設(shè)置為開放模式(open policy)時,行緩沖中存儲的一整行數(shù)據(jù)將會持續(xù)存在,以便隨時提供給下一次訪問使用.在此策略下,一個主存訪問請求根據(jù)不同的情況有三種可能的轉(zhuǎn)變.一是,如果新來的訪問與之前完成的訪問發(fā)生沖突,即需要提取不同的整行數(shù)據(jù)放入行緩沖中,那么該條請求將會被轉(zhuǎn)化為一條行預(yù)充電命令(Row Pre-charge Command,RPC)、一條行訪問命令(Row Access Command,RAC)和一條列訪問命令(Column Access Command,CAC).二是,如果當(dāng)前存儲單元處于空閑狀態(tài),即沒有訪問在該區(qū)域進(jìn)行操作,那么一個請求將相應(yīng)地轉(zhuǎn)化為一條RAC和一條CAC.三是,如果行緩沖存儲的行數(shù)據(jù)正是所需的那一行數(shù)據(jù),那么該請求將僅僅轉(zhuǎn)化為一條CAC.需要指出,列訪問命令究竟是讀取還是寫入,則完全取決于其請求類型是讀還是寫.與上述描述相反的是,當(dāng)行緩沖策略是關(guān)閉模式(close policy)時,每一次訪問完成后均會直接重置行緩沖,以便為接下來的訪問做好準(zhǔn)備.這種策略下,每一個訪問請求均會被轉(zhuǎn)化為相同的主存命令序列,依次為:一條RAC,一條CAC和一條RPC.本文中,行緩沖策略默認(rèn)采用開放模式.

        3.3 主存設(shè)備模塊

        3.3.1 主存陣列組織

        圖5給出了模擬器所模擬的存儲器陣列布局.通常來說,一個主存陣列由若干個獨立的Rank構(gòu)成,它是主存設(shè)備最頂層的結(jié)構(gòu),是具有全功能的主存單元,能夠被獨立地訪問.而多個Bank構(gòu)成一個Rank,它們同時操作以滿足內(nèi)存操作.此外,每個Bank由若干個Subarray 組成,它們是主存最為基礎(chǔ)的存儲單元.

        3.3.2 時序模型

        我們利用一系列的時序參數(shù)來表征上面提到的那些基本主存命令的執(zhí)行,以此實現(xiàn)一個動態(tài)的、細(xì)粒度的、時鐘精確的時序模型.表2枚舉了在時序模型中需要使用的所有參數(shù)及其含義.鑒于該模擬器建立的DRAM的時序模型與DRAMSim的相似,故在此不再贅述.不同于DRAM的讀寫機(jī)制,PCM在讀取數(shù)據(jù)后,不需要將數(shù)據(jù)再重新寫回存儲介質(zhì)上;另一方面,PCM上沒有刷新操作.因此,接下來我們便對主存中PCM命令執(zhí)行時間的測量方法進(jìn)行詳細(xì)描述.

        圖5 模擬器構(gòu)建的存儲器層次結(jié)構(gòu)

        表2 主存時序參數(shù)匯總

        1)RAC的時序模型

        RAC命令是訪問某個數(shù)據(jù)之前,對該數(shù)據(jù)所在的一整行的數(shù)據(jù)進(jìn)行定位和準(zhǔn)備.其作用便是告知主存設(shè)備把即將訪問的數(shù)據(jù)準(zhǔn)備好,放在行緩沖中,等待接下來的指令從該行數(shù)據(jù)中存取指定的數(shù)據(jù).RAC的執(zhí)行過程如下所述:首先,主存系統(tǒng)需要時間將行訪問命令從控制器傳送至主存設(shè)備中(tCMD).接著將數(shù)據(jù)從存儲單元放入行緩沖之中(tRCD).此外,考慮到如果行緩沖策略是開放模式,那么兩條RAC訪問同一個存儲單元所造成的沖突延遲(tRRD)就需要考慮進(jìn)來.因此,RAC的執(zhí)行時間可以用表達(dá)式(1)來刻畫.

        2)CRC的時序模型

        CRC命令是讀請求的核心部分.它是從RAC所定位和準(zhǔn)備的一行數(shù)據(jù)中,取出所需要的數(shù)據(jù),并通過共享數(shù)據(jù)總線返回至控制器中,從而實現(xiàn)一個基本的讀操作.對于CRC的執(zhí)行,首先是將所請求的數(shù)據(jù)從行緩沖區(qū)放入I/O Gating上.然后把數(shù)據(jù)經(jīng)過數(shù)據(jù)總線傳到主存控制器中(tBurst).另外考慮到上述兩個操作執(zhí)行之間的時間間隔(tDCD),我們給出CAC執(zhí)行時間的最終表達(dá)式(2).

        3)CWC的時序模型

        CWC命令則是寫請求的核心部分.對于它即將寫入的新數(shù)據(jù),RAC命令已經(jīng)將新數(shù)據(jù)對應(yīng)的一整行數(shù)據(jù)放入相應(yīng)的行緩沖之中,CWC將更改行緩沖之中的舊數(shù)據(jù)為所需的新數(shù)據(jù),從而完成一個寫操作.首先,主存系統(tǒng)需要將訪問地址和列寫入命令分別放到地址總線和命令總線上.由于這兩個操作可以同時執(zhí)行,因而這個過程所花費的時間便是控制器將命令和數(shù)據(jù)安置好所需的時間(tCWD).接下來,數(shù)據(jù)流從數(shù)據(jù)總線上通過進(jìn)出門,存放到行緩沖之中(tBurst).最終便將最新接收到的數(shù)據(jù)從行緩沖寫入存儲單元之中(tWP).綜上所述,整個CWC的執(zhí)行時間便是上述三者之和,如表達(dá)式(3)所示.

        4)RPC的時序模型

        RPC命令的作用是為接下來的行訪問命令重置行緩沖,因而找到對應(yīng)的行緩沖,再將其中的數(shù)據(jù)清空即可.它執(zhí)行過程便為如下兩步:第一步,主存系統(tǒng)將一條RPC命令發(fā)送到主存設(shè)備上(tCMD).第二步,相應(yīng)的Subarray上的行緩沖執(zhí)行預(yù)充電操作,即清空行緩沖中的數(shù)據(jù),為接下來的訪問請求做好準(zhǔn)備(tRP).所以,我們用表達(dá)式(4)來描述一條RPC命令執(zhí)行時間.

        4 實驗及評估

        本部分,我們首先將所構(gòu)建模擬器與其他現(xiàn)有模擬器進(jìn)行對比,以驗證其時序模型的正確性.其次,通過構(gòu)建兩個后前常見的混合主存架構(gòu),即層次型混合主存系統(tǒng)和平行型混合主存系統(tǒng),來說明模擬器的高可配置性.最后,利用一個使用示例說明如何利用混合內(nèi)存分配接口來實現(xiàn)用戶可控的混合主存管理算法的實驗.

        4.1 實驗配置

        為了實現(xiàn)一個準(zhǔn)確的、有效的、可比的模擬實驗,首先需要統(tǒng)一模擬系統(tǒng)中的處理器、高速緩存以及主存的實驗參數(shù).表3列出了實驗中所需的處理器以及高速緩存的配置信息.

        表3 系統(tǒng)配置信息

        至于主存的陣列組織,我們依據(jù)實際芯片的數(shù)據(jù)表來設(shè)置DRAM[14]和PCM[15]的參數(shù).表4涵蓋了主存配置文件中涉及到的各種參數(shù)值,從中可以看出DRAM 和PCM的顯著差異.此外,所有實驗均采用SPLASH-2[16]基準(zhǔn)測試集的一部分作為測試用例.

        表4 主存時序參數(shù)(單位:ns)

        4.2 仿真有效性驗證

        模擬器DRAM部分的驗證方法是:在本模擬器和DRAMSim上運用相同的測試用例、配置參數(shù)進(jìn)行模擬,對比分析它們的運行結(jié)果.圖6(a)顯示了SPLASH-2的部分測試程序運行在模擬的三星DRAM芯片[14]上的平均指令時鐘數(shù)(Cycles Per Instruction,CPI).可以看到,我們構(gòu)建的模擬器與DRAMSim之間有著0.5%~5.1%的偏差.

        另一方面,對于純PCM的主存系統(tǒng),我們以相同的系統(tǒng)配置參數(shù)在該模擬器和NVMain之間進(jìn)行對比實驗.這部分實驗是基于三星PCM芯片[15]的參數(shù)進(jìn)行模擬的,其實驗結(jié)果如圖6(b)所示.與DRAM模擬的情況類似,二者存在2.6%~6.0%的不一致.

        圖6 測試用例在DRAM和PCM上運行的CPI

        通過上述對比實驗,我們看到上述模擬器的仿真結(jié)果僅僅有微小的差異,基本上是一致的.鑒于這三個模擬器的主存控制器在設(shè)計上是不同的,而它們的時序模型所采用的原理是相似的,因此我們認(rèn)為上述實驗結(jié)果的微小偏差是它們主存控制器設(shè)計差異所導(dǎo)致.此外,由于DRAMSim和NVMain在文獻(xiàn)[5,6]中已經(jīng)得到有效性驗證,再結(jié)合對比實驗的結(jié)果,我們可以認(rèn)為所構(gòu)建模擬器的仿真結(jié)果是有效的、可信的.

        4.3 混合主存系統(tǒng)構(gòu)建

        這部分實驗的后的是說明該模擬器能夠搭建各種混合存儲架構(gòu)來實現(xiàn)仿真模擬;同時,說明模擬器的高可配置性.下面依次構(gòu)建了兩類常見的混合主存架構(gòu),即層次型(DRAM作為PCM的上一級緩存)和平行型(DRAM和PCM作為同級主存)混合主存系統(tǒng).

        首先,我們實現(xiàn)了層次型主存系統(tǒng),即把DRAM作為L-3 cache.DRAM大小分別設(shè)置為32 MB、64 MB、128 MB以及256 MB,同時將PCM的容量固定為8 GB.實驗統(tǒng)計數(shù)據(jù)如圖7所示:DRAM的大小與測試用例的CPI呈現(xiàn)出反比關(guān)系.考慮到寫請求所造成的影響,程序barnes和ocean(二者的寫請求比例較高)的CPI(其越小說明運行速度越快)下降得更明顯一些.

        圖7 測試用例在層次型主存系統(tǒng)上運行的CPI

        對于構(gòu)建平行型主存系統(tǒng)的實驗,我們將主存(總?cè)萘繛? GB)全為DRAM的結(jié)構(gòu)作為基準(zhǔn)系統(tǒng).接下來,通過修改實驗配置,實現(xiàn)4個混合主存系統(tǒng),依次是:6 GB DRAM + 2 GB PCM,4 GB DRAM + 4 GB PCM,2 GB DRAM + 6 GB PCM以及8 GB PCM.考慮到PCM上的寫延遲更長,可以推測,隨著程序中寫比例增長以及PCM在混合主存中的比重的增加,同一測試程序的模擬運行時間也應(yīng)該增加.而通過實驗,我們測得這些測試用例(fft,radix,barnes,ocean,fmm)的寫請求比例分別為0%、10%、60%、63%、66%.如圖8所示,寫比例低的fft和radix,隨著PCM比重的增加,它們的運行速度減緩的并不多.而對于其余三個寫比例高的測試用例,它們的運行速度與PCM比重程序顯著的反比關(guān)系.這些實驗結(jié)果與預(yù)期分析是相符的.

        圖8 測試用例在平行型主存系統(tǒng)上運行的CPI

        通過兩類混合主存系統(tǒng)的構(gòu)建,充分說明了該模擬器的可配置性很好,能夠模擬出各類主存架構(gòu)系統(tǒng),以滿足不同研究的實驗需求.

        4.4 使用示例

        本節(jié)意在說明如下兩點:一是混合主存分配接口具有簡單的可操作性,二是將該模擬器運用于混合主存管理的研究是十分有用的.

        后前,所有現(xiàn)有的模擬工具均不能將混合主存空間直接暴露給編程者.更形象地說就是,用戶使用主存空間時,只能夠?qū)⒅鞔嫦到y(tǒng)視為一個整體,并不能夠知道其中哪一塊存儲空間是DRAM設(shè)備的,哪一塊空間是PCM設(shè)備的.而這個問題對于主存算法的研究者來說是十分棘手的:他們不能夠根據(jù)自己的算法在指定的內(nèi)存設(shè)備上開辟一定大小的存儲空間.本模擬器便提供了一個混合主存分配的接口,以實現(xiàn)友好的、用戶可控的主存管理.

        在此,我們以混合主存系統(tǒng)中常見的頁面遷移機(jī)制的研究為例,說明如何在主存研究中實驗該模擬器.通常,考慮到PCM的寫速度較慢以及它的寫壽命較短這兩大缺陷,為了提高混合主存系統(tǒng)的運行效率,研究者最基本的思路便是盡可能地讓寫操作在DRAM設(shè)備中執(zhí)行.基于這個思路,我們設(shè)計了一個樸素的頁面遷移機(jī)制:通過一個固定的概率來決定是否對一個將要分配在PCM上的頁面進(jìn)行遷移.由此,PCM上的寫操作可以得到一定程度的降低,從而達(dá)到改善混合主存系統(tǒng)運行效率的后的.具體來說就是,當(dāng)一個請求調(diào)用了Pmalloc()函數(shù),進(jìn)而在PCM上申請主存空間時,我們利用一個具有指定概率的隨機(jī)發(fā)生器得到一個布爾值.如果該值為真,那么便將該條請求從PCM遷移到DRAM上執(zhí)行,反之則按原樣執(zhí)行.例如,若要在PCM上為100個size_t型數(shù)據(jù)分配存儲空間,那么根據(jù)上述算法,其偽代碼如下所示:

        我們在一個平行型混合主存系統(tǒng)(2GB DRAM +6GB PCM,其中 PCM 有 3個 channel,每個 channel有2GB的PCM)上對這個策略進(jìn)行評估.由于SPLASH-2的測試程序并未考慮在混合主存的不同類型主存中進(jìn)行內(nèi)存空間分配,因此我們調(diào)用1個Dmalloc()和3個Pmalloc()代替原有的主存空間申請函數(shù),而每個函數(shù)申請的空間大小是相同的.

        圖9的實驗結(jié)果顯示:在使用這個簡單的頁面遷移機(jī)制的情況下,當(dāng)遷移概率從0%改變至75%時,測試程序的CPI改善了4%左右.與此同時,PCM上的寫操作減少了大約40%.可以說,通過實驗,我們驗證了所提策略對于提高混合主存運行速度以及減少PCM上寫操作的推理.然而從實驗結(jié)果中也可以明顯地看出,這個簡單遷移機(jī)制的弊端便是增加了系統(tǒng)的請求指令執(zhí)行總數(shù),特別是DRAM上請求指令執(zhí)行次數(shù)的增加,必將使得DRAM成為整個系統(tǒng)運行的瓶頸.

        圖9 不同遷移概率下的讀寫次數(shù)以及CPI統(tǒng)計(測試用例:修改的radix,2 GB DRAM,6 GB PCM)

        最后需要強調(diào)的是,該使用示例并不是試圖提出一個優(yōu)越的頁面遷移算法,更不是證明所提的簡單算法的優(yōu)越性.其重點是為了說明研究者可以很容易地將該模擬器運用于主存算法研究的驗證評估實驗當(dāng)中.

        5 結(jié)語

        在本文中,我們基于DRAM和PCM,設(shè)計并實現(xiàn)了一個有效的、可配置的、易用的混合主存模擬器.我們描述了模擬器的整體架構(gòu)及關(guān)鍵技術(shù),詳述了在時序模型的有效性驗證以及構(gòu)建多種存儲架構(gòu)的可行性方面所做的工作,探討了如何運用該模擬器進(jìn)行仿真模擬實驗,實現(xiàn)了用戶可控的混合主存分配接口,為混合主存的相關(guān)研究提供了一個統(tǒng)一便捷的實驗工具.

        眾所周知,后前基于DRAM和PCM的混合主存有著廣闊的技術(shù)前景,它們?yōu)槿蘸髮崿F(xiàn)大容量、低能耗、高可靠的主存系統(tǒng)帶來了希望.而在大數(shù)據(jù)時代下,如何提高系統(tǒng)的能耗有效性正逐漸成為混合主存領(lǐng)域的研究熱點.因此,我們今后的工作將是在不斷完善該主存模擬工具的基礎(chǔ)上,將能耗仿真模型整合其中,以滿足更廣泛研究的使用需求.Wong HSP,Raoux S,Kim S,et al.Phase change memory.

        1 Proc.of the IEEE,2010,98(12):2201–2227.[doi:10.1109/JPROC.2010.2070050]

        2 Chen KM,Jin PQ,Yue LH.A novel page replacement algorithm for the hybrid memory architecture involving PCM and DRAM.IFIP International Conference on Network and Parallel Computing.Berlin Heidelberg,Germany.2014.108–119.

        3 Li L,Jin PQ,Yang CC,et al.Optimizing B+-tree for PCM-based hybrid memory.Proc.of the 19th International Conference on Extending Database Technolog (EDBT).Bordeaux,France.2016.662–663.

        4 Wu ZL,Jin PQ,Yue LH.Efficient space management and wear leveling for PCM-based storage systems.Proc.of the 15th International Conference on Algorithms and Architectures for Parallel Processing.Berlin Heidelberg,Germany.2015.784–798.

        5 Rosenfeld P,Cooper-Balis E,Jacob B.DRAMSim2:A cycle accurate memory system simulator.IEEE Computer Architecture Letters,2011,10(1):16–19.[doi:10.1109/L-CA.2011.4]

        6 Poremba M,Zhang T,Xie Y.NVMain 2.0:A user-friendly memory simulator to model (non-)volatile memory systems.IEEE Computer Architecture Letters,2015,14(2):140–143.[doi:10.1109/LCA.2015.2402435]

        7 Qureshi MK,Srinivasan V,Rivers JA.Scalable high performance main memory system using phase-change memory technology.ACM SIGARCH Computer Architecture News,2009,37(3):24–33.[doi:10.1145/1555815]

        8 Kim D,Lee S,Chung J,et al.Hybrid DRAM/PRAM-based main memory for single-chip CPU/GPU.Proc.of the 49th ACM/EDAC/IEEE Design Automation Conference (DAC).San Francisco,CA,USA.2012.888–896.

        9 Dong XY,Jouppi NP,Xie Y.PCRAMsim:System-level performance,energy,and area modeling for phase-change RAM.Proc.of the 2009 IEEE/ACM International Conference on Computer-Aided Design-Digest of Technical Papers.San Jose,CA,USA.2009.269–275.

        10 Li X,Lu K,Zhou X.SIM-PCM:A PCM simulator based on simics.Proc.of the 4th International Conference on Computational and Information Sciences (ICCIS).Chongqing,China.2012.1236–1239.

        11 Magnusson PS,Christensson M,Eskilson J,et al.Simics:A full system simulation platform.Computer,2002,35(2):50–58.[doi:10.1109/2.982916]

        12 Luk CK,Cohn R,Muth R,et al.Pin:Building customized program analysis tools with dynamic instrumentation.ACM SIGPLAN Notices,2005,40(6):190–200.[doi:10.1145/1064978]

        13 Aboulenein N,Osborne RB,Huggahalli R,et al.Method and apparatus for memory access scheduling to reduce memory access latency:U.S.Patent 6785793.2004-08-31.

        14 Moon Y,Cho YH,Lee HB,et al.1.2V 1.6Gb/s 56nm 6F2 4Gb DDR3 SDRAM with hybrid-I/O sense amplifier and segmented sub-array architecture.Proc.of IEEE International Solid-State Circuits Conference Digest of Technical Papers.San Francisco,CA,USA.2009.128–129.

        15 Choi Y,Song I,Park MH,et al.A 20nm 1.8V 8GB PRAM with 40MB/s program bandwidth.Proc.of the 2012 IEEE International Solid-State Circuits Conference Digest of Technical Papers (ISSCC).San Francisco,CA,USA.2012.46–48.

        16 Woo SC,Ohara M,Torrie E,et al.The SPLASH-2 programs:Characterization and methodological considerations.ACM SIGARCH Computer Architecture News,1995,23(2):24–36.[doi:10.1145/225830]

        DRAM/PCM-Based Hybrid Memory Simulator

        ZHANG De-Zhi,WAN Shou-Hong,YUE Li-Hua
        (School of Computer Science and Technology,University of Science and Technology of China,Hefei 230026,China)

        Phase Change Memory (PCM)has become a candidate of future main memories due to its attractive characteristics of non-volatility,high access speed,and low power consumption.Meanwhile,how to efficiently integrate PCM into current memory systems is becoming a hot topic.Generally,there are a number of choices to use PCM as main memory,e.g.,to construct PCM-only main memory systems,or to construct DRAM/PCM-based hybrid memory systems.However,the conflict between numerous PCM-related researches and lack of real devices hinders evaluations of PCM-aware algorithms.Therefore,in this paper,we propose a DRAM/PCM-based hybrid memory simulator.The new features of the simulator are manifold.First,it can simulate different DRAM/PCM-based memory systems,including the hierarchical architecture (DRAM as the cache of PCM)and the hybrid architecture (both DRAM and PCM as main memory).Second,it leverages a clock-accurate timing model to emulate accesses on PCM.Third,it offers a hybrid memory allocation interface that can be easily used by programmers.After a description of the simulator framework,we present basic evaluation results and a case study of the simulator,which suggest its feasibility.

        phase change memory;hybrid memory system;simulator

        張德志,萬壽紅,岳麗華.基于DRAM和PCM的混合主存模擬器.計算機(jī)系統(tǒng)應(yīng)用,2017,26(9):16–23.http://www.c-s-a.org.cn/1003-3254/5967.html

        ① 基金項后:國家自然科學(xué)基金(61472376)

        2016-12-30;采用時間:2017-01-23

        猜你喜歡
        實驗系統(tǒng)
        記一次有趣的實驗
        Smartflower POP 一體式光伏系統(tǒng)
        微型實驗里看“燃燒”
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統(tǒng)
        做個怪怪長實驗
        半沸制皂系統(tǒng)(下)
        連通與提升系統(tǒng)的最后一塊拼圖 Audiolab 傲立 M-DAC mini
        NO與NO2相互轉(zhuǎn)化實驗的改進(jìn)
        99精品国产一区二区三区| 中文字幕成人精品久久不卡91| 亚洲一区二区三区精品| 永久免费人禽av在线观看| 无码一区二区波多野结衣播放搜索| 精品人妻少妇一区二区中文字幕| 国产熟妇一区二区三区网站| 97精品人妻一区二区三区蜜桃| 久久无码专区国产精品s| 欧美精品中文字幕亚洲专区| 久久99精品免费国产| 亚洲一区二区三区偷拍厕所| 99国产精品自在自在久久| 四虎精品视频| 亚洲一码二码在线观看| 风骚人妻一区二区三区| 国产av麻豆mag剧集| 秋霞影院亚洲国产精品| 日韩亚洲午夜精品一区二区三区| 久久综合精品人妻一区二区三区| 青楼妓女禁脔道具调教sm| 夜夜爽无码一区二区三区| 国产视频一区二区三区免费| 全免费a级毛片免费看无码| 全部孕妇毛片| 欧美日韩一区二区三区视频在线观看 | 久久精品国产精品亚洲艾| 国产综合开心激情五月| 国产乱人激情h在线观看| 亚洲人成影院在线无码按摩店| 中文无码制服丝袜人妻av| 狠狠躁夜夜躁人人爽天天不卡| 日本一区二区三区熟女俱乐部| 妇女bbbb插插插视频| 国产区福利| 成人性生交大片免费看i| 国产乱人无码伦av在线a | 欧美综合天天夜夜久久| 久久国产精品波多野结衣av| 蜜臀av国内精品久久久人妻| 国产午夜在线视频观看|