張德志, 萬壽紅, 岳麗華
(中國科學技術大學 計算機科學與技術學院,合肥 230026)
基于DRAM和PCM的混合主存模擬器①
張德志, 萬壽紅, 岳麗華
(中國科學技術大學 計算機科學與技術學院,合肥 230026)
相變存儲器(PCM)由于其非易失性、高讀取速度以及低靜態功耗等優點,已成為主存研究領域的熱點.然而,后前缺乏可用的PCM設備,這使得基于PCM的算法研究得不到有效驗證.因此,本文提出了利用主存模擬器仿真并驗證PCM算法的思路.本文首先介紹了現有主存模擬器的特點,并指出其并不能完全滿足當前主存研究的實際需求,在此基礎上提出并構建了一個基于DRAM和PCM的混合主存模擬器.與現有模擬器的實驗比較結果表明,本文設計的混合主存模擬器能夠有效地模擬DRAM和PCM混合存儲架構,并能夠支持不同形式的混合主存系統模擬,具有高可配置性.最后,論文通過一個使用示例說明了混合主存模擬器編程接口的易用性.
相變存儲器;混合主存系統;模擬器
相變存儲器(PCM)是一種新型主存技術,具有讀取速度快、靜態功耗低、存儲密度大以及非易失存儲等優良特性[1].這些特性使得PCM有望取代以動態隨機存儲器(DRAM)為代表的現有內存技術,成為未來主存的擔當[2].另一方面,PCM由于其材料本身的緣故,具有寫壽命較短、寫延遲較長以及寫能耗較大等缺陷[3].因此,今后主存系統最有可能的發展方向應該是利用DRAM和PCM優劣互補來構建存儲速度更快、存儲容量更大、能量效率更高的混合主存系統[4].
然而,后前僅有為數不多的PCM原型芯片問世,而基于DRAM和PCM的混合主存系統更是處于研究階段.可想而知,在真實的PCM設備上或者基于DRAM和PCM的混合主存系統中進行PCM相關算法的研究及驗證是不可行的.所以后前相關領域的研究工作都是基于模擬平臺進行的.現有的主存模擬器,如DRAMSim[5]、NVMain[6],雖然可以構成混合主存系統,但是不具備用于混合主存分配的編程接口.換句話說,研究者無法按照自己所設計算法的需求,利用編程語言,在某種指定的存儲介質(DRAM或者PCM)上申請或釋放自定義大小的存儲空間.因此,現有的主存模擬器并不能適用于一些主存算法研究(例如頁面遷移算法、混合主存索等)的仿真與驗證.
在本文中,我們構建了一個基于DRAM和PCM的混合主存模擬器.一方面,它有著與現有模擬器相當的性能,如高可配置性、時鐘精確的時序模型以及豐富的仿真數據統計;另一方面,它提供了一個友好的用于混合主存分配的用戶接口,極大方便了上述主存算法的仿真與驗證工作.
本文余下部分組織如下.第二部分扼要介紹了相變存儲器、混合主存架構以及現有主存模擬器的特點和適用范圍;第三部分描述了所構建的混合主存模擬器的組成結構及其實現細節;在第四部分,我們給出了具體的實驗及評估,以說明所構建模擬器的有效性及易用性;最后在文末給出了全文總結,并提出今后的工作方向.

圖1 PCM存儲單元結構圖及其上操作的溫度-時間關系圖
圖1(a)所示為一個PCM存儲單元的基本結構[1].不同于傳統的主存技術利用電荷存儲數據,PCM是借助相變材料——硫族化合物的關鍵特性——在晶態與非晶態下巨大的導電性差異來存儲數據的.具體來說就是,結晶態具有低電阻率,可標記為Set或者“1”狀態;非結晶體則具有相當高的電阻率,可作為Reset或者“0”狀態.在PCM上進行Read、Set以及Reset操作時,其溫度與時間的關系如圖1(b)所示.需要強調的是,DRAM和PCM在讀寫實現原理上的差異,將是我們接下來在構建不同類型主存的時序模型時的重要參考依據.
當前,已提出的混合主存體系結構主要有2類:層次型混合主存[7]和平行型混合主存[8].前者是將PCM作為主存,而將DRAM作為PCM的上一級緩存.后者則是把DRAM和PCM作為同級結構整合到一個系統中.本文所構建的模擬器將嘗試實現后前存在的各種混合主存架構.
后前已有的主存模擬器主要有DRAMSim、NVMain、PCRAMsim[9]以及 SIM-PCM[10]等.
DRAMSim是一個高度可配置的、時鐘精確的主存模擬工具,能夠模擬出各種類型的DRAM,給出所需的關鍵性能,如帶寬、延時以及功耗等.但是它僅僅具備DRAM的模型,并不能對PCM的特性進行模擬.NVMain亦具有高可配置以及時鐘精確的優良仿真特性.此外,它既能夠模擬DRAM的運行性能,還支持對包括PCM在內的一系列非易失存儲器進行仿真.但是它只能構建出平行型混合主存系統,而且主存空間對于外部訪問來說是一個整體,無法對某一種特定的主存介質進行訪問.PCRAMsim則是一個電路級的PCM模擬器,主要用于PCM芯片的設計優化或者評估其性能、能耗及器件大小的,僅僅適用于相關的硬件研究.SIM-PCM是基于一個全系統模擬器Simics[11]實現的,它將每一次主存訪問的執行時間設為固定值,而且忽略了主存內部運行機制對整個系統的影響,這些都大大降低了仿真結果的準確性和有效性.
圖2所示為本文所構建的基于DRAM和PCM的混合主存模擬器的基本架構.該模擬器構建了處理器、高速緩存和主存三大層次模塊.CPU模塊接收由Pin[12]工具收集到的應用程序的指令序列集,并將每個指令轉化為一條主存讀取操作和若干主存寫入操作.所有這些生成的操作請求都會進入Cache模塊,該模塊是利用一個隊列來實現高速緩存的命中(hit)操作和不命中(miss)操作.主存部分則由主存模塊實現,該模塊使得用戶可以構建不同結構的主存系統,包括純DRAM的主存系統、純PCM的主存系統以及基于DRAM和PCM的混合主存系統.主存模塊從上一層級接收請求,并在一個具體的主存系統中模擬這些請求的執行情況.
值得一提的是,該模擬器提供了一套內存分配函數(即 Dmalloc()與 Dfree(),Pmalloc()與 Pfree())使得用戶可以自主地從DRAM或者PCM上按需申請或者釋放主存空間.提供這種用于混合主存分配的接口函數的后的就是將主存空間,特別是存儲介質不同這一特性,展現給編程者.通過這些接口,研究者便可以根據他們的主存管理算法來決定將一個讀取或者寫入請求放入某種特定類型的主存區域.

圖2 混合主存模擬器的架構
如圖3所示,該模擬器的主存模塊是由三個子模塊組成,分別是:功能接口模塊,主存控制器模塊以及主存設備模塊.功能接口模塊負責接收訪問請求、接收控制器與設備的配置信息,并將相應的信息發送至主存控制器模塊以及主存設備模塊中.主存控制器模塊根據功能接口模塊的配置信息進行構建,并處理發送來的訪問請求,將其轉化為相應的主存命令序列發送至相應的主存設備中.主存設備模塊同樣根據功能接口模塊的配置信息進行構建,同時接收和處理控制器發來的主存命令序列,最終得到一系列模擬結果.下面將詳細闡述這些模塊的具體實現.
功能接口模塊將整個主存模塊的內部運行機制封裝起來,并為用戶提供統一的接口,讓他們能夠按需定制和使用混合主存系統.如圖3所示,該模塊包括外部接口,主存控制器接口以及主存設備接口.

圖3 模擬器主存模塊的構成
外圍訪問接口提供了一個類似總線的數據結構,其中包含了若干個條后(entry).移入的請求是以無序的方式放置在這些條后當中,而且它們均來自應用程序或者上一層級的設備.這些請求都是以ID號、狀態、時間戳、訪問地址以及訪問類型進行標識.一旦模擬器執行并完成一個請求,相應的條后就會被清空并置于可用狀態.特別需要指出,鑒于條后的數量有限,如果所有的條后都被請求占據,那么后來的請求在有條后可用之前都將被阻塞擱置.
控制器接口和設備接口則支持對模擬器各種參數的配置.例如主存控制器方案、主存陣列組織結構以及主存設備時序規格的設置均可通過配置文件來實現.此外,性能統計數據,例如運行時間、各存儲區域的延遲分別、總線占用情況以及存儲資源使用信息等,均可按照需求來收集得到.
鑒于后前對主存控制器的內部結構沒有統一的標準,我們嘗試根據文獻[13]來構建一個通用的主存控制器模型.

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

表1 主存命令及其描述
當主存設備的行緩沖策略被設置為開放模式(open policy)時,行緩沖中存儲的一整行數據將會持續存在,以便隨時提供給下一次訪問使用.在此策略下,一個主存訪問請求根據不同的情況有三種可能的轉變.一是,如果新來的訪問與之前完成的訪問發生沖突,即需要提取不同的整行數據放入行緩沖中,那么該條請求將會被轉化為一條行預充電命令(Row Pre-charge Command,RPC)、一條行訪問命令(Row Access Command,RAC)和一條列訪問命令(Column Access Command,CAC).二是,如果當前存儲單元處于空閑狀態,即沒有訪問在該區域進行操作,那么一個請求將相應地轉化為一條RAC和一條CAC.三是,如果行緩沖存儲的行數據正是所需的那一行數據,那么該請求將僅僅轉化為一條CAC.需要指出,列訪問命令究竟是讀取還是寫入,則完全取決于其請求類型是讀還是寫.與上述描述相反的是,當行緩沖策略是關閉模式(close policy)時,每一次訪問完成后均會直接重置行緩沖,以便為接下來的訪問做好準備.這種策略下,每一個訪問請求均會被轉化為相同的主存命令序列,依次為:一條RAC,一條CAC和一條RPC.本文中,行緩沖策略默認采用開放模式.
圖5給出了模擬器所模擬的存儲器陣列布局.通常來說,一個主存陣列由若干個獨立的Rank構成,它是主存設備最頂層的結構,是具有全功能的主存單元,能夠被獨立地訪問.而多個Bank構成一個Rank,它們同時操作以滿足內存操作.此外,每個Bank由若干個Subarray 組成,它們是主存最為基礎的存儲單元.
我們利用一系列的時序參數來表征上面提到的那些基本主存命令的執行,以此實現一個動態的、細粒度的、時鐘精確的時序模型.表2枚舉了在時序模型中需要使用的所有參數及其含義.鑒于該模擬器建立的DRAM的時序模型與DRAMSim的相似,故在此不再贅述.不同于DRAM的讀寫機制,PCM在讀取數據后,不需要將數據再重新寫回存儲介質上;另一方面,PCM上沒有刷新操作.因此,接下來我們便對主存中PCM命令執行時間的測量方法進行詳細描述.

圖5 模擬器構建的存儲器層次結構

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

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

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

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

本部分,我們首先將所構建模擬器與其他現有模擬器進行對比,以驗證其時序模型的正確性.其次,通過構建兩個后前常見的混合主存架構,即層次型混合主存系統和平行型混合主存系統,來說明模擬器的高可配置性.最后,利用一個使用示例說明如何利用混合內存分配接口來實現用戶可控的混合主存管理算法的實驗.
為了實現一個準確的、有效的、可比的模擬實驗,首先需要統一模擬系統中的處理器、高速緩存以及主存的實驗參數.表3列出了實驗中所需的處理器以及高速緩存的配置信息.

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

表4 主存時序參數(單位:ns)
模擬器DRAM部分的驗證方法是:在本模擬器和DRAMSim上運用相同的測試用例、配置參數進行模擬,對比分析它們的運行結果.圖6(a)顯示了SPLASH-2的部分測試程序運行在模擬的三星DRAM芯片[14]上的平均指令時鐘數(Cycles Per Instruction,CPI).可以看到,我們構建的模擬器與DRAMSim之間有著0.5%~5.1%的偏差.
另一方面,對于純PCM的主存系統,我們以相同的系統配置參數在該模擬器和NVMain之間進行對比實驗.這部分實驗是基于三星PCM芯片[15]的參數進行模擬的,其實驗結果如圖6(b)所示.與DRAM模擬的情況類似,二者存在2.6%~6.0%的不一致.

圖6 測試用例在DRAM和PCM上運行的CPI
通過上述對比實驗,我們看到上述模擬器的仿真結果僅僅有微小的差異,基本上是一致的.鑒于這三個模擬器的主存控制器在設計上是不同的,而它們的時序模型所采用的原理是相似的,因此我們認為上述實驗結果的微小偏差是它們主存控制器設計差異所導致.此外,由于DRAMSim和NVMain在文獻[5,6]中已經得到有效性驗證,再結合對比實驗的結果,我們可以認為所構建模擬器的仿真結果是有效的、可信的.
這部分實驗的后的是說明該模擬器能夠搭建各種混合存儲架構來實現仿真模擬;同時,說明模擬器的高可配置性.下面依次構建了兩類常見的混合主存架構,即層次型(DRAM作為PCM的上一級緩存)和平行型(DRAM和PCM作為同級主存)混合主存系統.
首先,我們實現了層次型主存系統,即把DRAM作為L-3 cache.DRAM大小分別設置為32 MB、64 MB、128 MB以及256 MB,同時將PCM的容量固定為8 GB.實驗統計數據如圖7所示:DRAM的大小與測試用例的CPI呈現出反比關系.考慮到寫請求所造成的影響,程序barnes和ocean(二者的寫請求比例較高)的CPI(其越小說明運行速度越快)下降得更明顯一些.

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

圖8 測試用例在平行型主存系統上運行的CPI
通過兩類混合主存系統的構建,充分說明了該模擬器的可配置性很好,能夠模擬出各類主存架構系統,以滿足不同研究的實驗需求.
本節意在說明如下兩點:一是混合主存分配接口具有簡單的可操作性,二是將該模擬器運用于混合主存管理的研究是十分有用的.
后前,所有現有的模擬工具均不能將混合主存空間直接暴露給編程者.更形象地說就是,用戶使用主存空間時,只能夠將主存系統視為一個整體,并不能夠知道其中哪一塊存儲空間是DRAM設備的,哪一塊空間是PCM設備的.而這個問題對于主存算法的研究者來說是十分棘手的:他們不能夠根據自己的算法在指定的內存設備上開辟一定大小的存儲空間.本模擬器便提供了一個混合主存分配的接口,以實現友好的、用戶可控的主存管理.
在此,我們以混合主存系統中常見的頁面遷移機制的研究為例,說明如何在主存研究中實驗該模擬器.通常,考慮到PCM的寫速度較慢以及它的寫壽命較短這兩大缺陷,為了提高混合主存系統的運行效率,研究者最基本的思路便是盡可能地讓寫操作在DRAM設備中執行.基于這個思路,我們設計了一個樸素的頁面遷移機制:通過一個固定的概率來決定是否對一個將要分配在PCM上的頁面進行遷移.由此,PCM上的寫操作可以得到一定程度的降低,從而達到改善混合主存系統運行效率的后的.具體來說就是,當一個請求調用了Pmalloc()函數,進而在PCM上申請主存空間時,我們利用一個具有指定概率的隨機發生器得到一個布爾值.如果該值為真,那么便將該條請求從PCM遷移到DRAM上執行,反之則按原樣執行.例如,若要在PCM上為100個size_t型數據分配存儲空間,那么根據上述算法,其偽代碼如下所示:

我們在一個平行型混合主存系統(2GB DRAM +6GB PCM,其中 PCM 有 3個 channel,每個 channel有2GB的PCM)上對這個策略進行評估.由于SPLASH-2的測試程序并未考慮在混合主存的不同類型主存中進行內存空間分配,因此我們調用1個Dmalloc()和3個Pmalloc()代替原有的主存空間申請函數,而每個函數申請的空間大小是相同的.
圖9的實驗結果顯示:在使用這個簡單的頁面遷移機制的情況下,當遷移概率從0%改變至75%時,測試程序的CPI改善了4%左右.與此同時,PCM上的寫操作減少了大約40%.可以說,通過實驗,我們驗證了所提策略對于提高混合主存運行速度以及減少PCM上寫操作的推理.然而從實驗結果中也可以明顯地看出,這個簡單遷移機制的弊端便是增加了系統的請求指令執行總數,特別是DRAM上請求指令執行次數的增加,必將使得DRAM成為整個系統運行的瓶頸.

圖9 不同遷移概率下的讀寫次數以及CPI統計(測試用例:修改的radix,2 GB DRAM,6 GB PCM)
最后需要強調的是,該使用示例并不是試圖提出一個優越的頁面遷移算法,更不是證明所提的簡單算法的優越性.其重點是為了說明研究者可以很容易地將該模擬器運用于主存算法研究的驗證評估實驗當中.
在本文中,我們基于DRAM和PCM,設計并實現了一個有效的、可配置的、易用的混合主存模擬器.我們描述了模擬器的整體架構及關鍵技術,詳述了在時序模型的有效性驗證以及構建多種存儲架構的可行性方面所做的工作,探討了如何運用該模擬器進行仿真模擬實驗,實現了用戶可控的混合主存分配接口,為混合主存的相關研究提供了一個統一便捷的實驗工具.
眾所周知,后前基于DRAM和PCM的混合主存有著廣闊的技術前景,它們為日后實現大容量、低能耗、高可靠的主存系統帶來了希望.而在大數據時代下,如何提高系統的能耗有效性正逐漸成為混合主存領域的研究熱點.因此,我們今后的工作將是在不斷完善該主存模擬工具的基礎上,將能耗仿真模型整合其中,以滿足更廣泛研究的使用需求.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的混合主存模擬器.計算機系統應用,2017,26(9):16–23.http://www.c-s-a.org.cn/1003-3254/5967.html
① 基金項后:國家自然科學基金(61472376)
2016-12-30;采用時間:2017-01-23