杜 嬌,錢(qián)育蓉,侯海耀,張 猛
(新疆大學(xué) 軟件學(xué)院, 新疆 烏魯木齊 830008)
面對(duì)大數(shù)據(jù)、云計(jì)算、物聯(lián)網(wǎng)等信息技術(shù)發(fā)展產(chǎn)生的海量數(shù)據(jù),傳統(tǒng)的動(dòng)態(tài)隨機(jī)存儲(chǔ)器(dynamic random access memory,DRAM)的內(nèi)存設(shè)計(jì)逐漸無(wú)法滿足需求[1],同時(shí)內(nèi)存存儲(chǔ)性能的提升遠(yuǎn)遠(yuǎn)落后于計(jì)算性能的提升[2],隨之出現(xiàn)的是“存儲(chǔ)墻”、“能耗墻”問(wèn)題[3,4]。新型非易失性存儲(chǔ)器(non-volatile memory,NVM)的出現(xiàn),為解決上述問(wèn)題提供了方向?,F(xiàn)有的NVM主要有相變存儲(chǔ)器(phase change memory,PCM)、阻變存儲(chǔ)器(resistive random access memory,RRAM)、自旋轉(zhuǎn)移力矩存儲(chǔ)器(spin-transfer torque RAM,STT-RAM)[5,6]等,它們具有非易失性、漏電功耗低、存儲(chǔ)密度高和擴(kuò)展性強(qiáng)等特性,成為存儲(chǔ)領(lǐng)域的研究熱點(diǎn),有望在未來(lái)取代傳統(tǒng)存儲(chǔ)器[7]。就目前而言,任何單一的存儲(chǔ)器件都不能滿足內(nèi)存系統(tǒng)大容量、低成本和高性能的需求,較為有效的方法是采用混合存儲(chǔ)的方式。它主要是從數(shù)據(jù)訪問(wèn)特點(diǎn)及負(fù)載特征出發(fā),結(jié)合不同存儲(chǔ)器件的特性,將請(qǐng)求發(fā)送給適合的存儲(chǔ)設(shè)備,達(dá)到提高整個(gè)系統(tǒng)性能的目的,是目前存儲(chǔ)技術(shù)的發(fā)展方向[8]。
本文基于DRAM和RRAM提出了一種混合存儲(chǔ)模型,評(píng)測(cè)并分析該模型下內(nèi)存系統(tǒng)的讀寫(xiě)性能,實(shí)驗(yàn)結(jié)果表明,混合內(nèi)存系統(tǒng),性能優(yōu)于完全以RRAM為主存的系統(tǒng),接近完全以DRAM為主存的系統(tǒng),同時(shí)DRAM與RRAM的容量配置及應(yīng)用程序自身特點(diǎn)的不同,亦會(huì)對(duì)系統(tǒng)性能造成影響。
目前將NVM用于混合存儲(chǔ)的內(nèi)存系統(tǒng)主要有3種結(jié)構(gòu):第一種是NVM完全取代DRAM作為內(nèi)存;第二種是NVM與DRAM構(gòu)成混合內(nèi)存,但兩者處于同一層次;第三種是NVM與DRAM構(gòu)成混合內(nèi)存,但DRAM與NVM是層次結(jié)構(gòu)[9]。事實(shí)上NVM的寫(xiě)速率沒(méi)有DRAM好,壽命也相對(duì)短些,因此第一種存儲(chǔ)結(jié)構(gòu)目前不適用。針對(duì)第三種存儲(chǔ)結(jié)構(gòu),有學(xué)者采用STT-RAM和靜態(tài)隨機(jī)存取存儲(chǔ)器(static random access memory,SRAM)混合進(jìn)行緩存設(shè)計(jì)[10],緩存一般會(huì)被頻繁訪問(wèn),同時(shí)大部分應(yīng)用程序的訪問(wèn)不是均勻分布的,而是存在明顯的局部性和不均衡性,某一存儲(chǔ)單元失效,將導(dǎo)致整個(gè)緩存的壽命下降,因此若要使用NVM架構(gòu)緩存,存儲(chǔ)單元的均衡訪問(wèn)是一個(gè)待以解決的問(wèn)題。
因此本文采用第二種結(jié)構(gòu),DRAM和RRAM處于同一層次,利用軟件來(lái)模擬RRAM的硬件行為,同時(shí)將讀寫(xiě)延遲等結(jié)果返回。
DRAM是易失性存儲(chǔ)器的代表,具有速度快、壽命長(zhǎng)等特性,是目前最受歡迎的計(jì)算機(jī)主存設(shè)備,其每年市場(chǎng)容量幾乎占整個(gè)全球集成電路市場(chǎng)的1/10[11]。DRAM通過(guò)電容兩邊電荷的多少表示數(shù)字“0”或“1”,達(dá)到存儲(chǔ)數(shù)據(jù)的目的。目前有兩個(gè)主要因素限制了單獨(dú)使用DRAM作為內(nèi)存的進(jìn)一步發(fā)展。第一是DRAM的工藝制程已接近極限,存儲(chǔ)密度難以提高。第二是電容存在漏電現(xiàn)象,會(huì)導(dǎo)致電荷丟失,因此需要進(jìn)行周期性刷新來(lái)保證數(shù)據(jù)完整[12]。
本文在所構(gòu)建的混合存儲(chǔ)模型中,利用DRAM良好寫(xiě)速率,完成大部分的寫(xiě)工作,彌補(bǔ)RRAM較大寫(xiě)延遲問(wèn)題,從而提高系統(tǒng)的整體性能。
RRAM存儲(chǔ)數(shù)據(jù)信息的方式是基于阻值變化的,它利用薄膜材料在不同電激勵(lì)的作用下出現(xiàn)高低阻態(tài)之間的可逆轉(zhuǎn)變現(xiàn)象來(lái)進(jìn)行數(shù)據(jù)存儲(chǔ),不需要刷新操作,空閑時(shí)不耗能。其結(jié)構(gòu)簡(jiǎn)單,由金屬-介質(zhì)-金屬構(gòu)成,有利于實(shí)現(xiàn)三維的高密度集成。國(guó)際半導(dǎo)體技術(shù)路線圖組織(international technology roadmap for semiconductors,ITRS)在其2013年度報(bào)告中指出,將成為下一代存儲(chǔ)器中最有力的候選者[13]。
表1從單元存儲(chǔ)密度、容量、讀寫(xiě)延遲、耐久性、寫(xiě)能耗和易失性幾個(gè)方面出發(fā),將RRAM與常用存儲(chǔ)器件NAND Flash,DRAM進(jìn)行了對(duì)比。
表1 常用存儲(chǔ)技術(shù)比較
從單元存儲(chǔ)密度上來(lái)看,RRAM的存儲(chǔ)密度高于DRAM的存儲(chǔ)密度,從容量上來(lái)看,RRAM的容量遠(yuǎn)遠(yuǎn)大于DRAM,雖然NAND同樣具有容量大的優(yōu)點(diǎn),但NAND具有較大的讀寫(xiě)延遲;從耐久性來(lái)看,RRAM的耐力通??梢赃_(dá)到106,在70 ℃高溫下數(shù)據(jù)仍可保持十年,介于NAND和DRAM之間,更長(zhǎng)的耐力已經(jīng)被報(bào)道(例如109),耐久性測(cè)試受基準(zhǔn)測(cè)試程序集選擇的影響;從易失性上來(lái)看,NAND和RRAM屬于非易失性存儲(chǔ)器,而DRAM是易失性存儲(chǔ)器。
本文主要利用RRAM存儲(chǔ)密度高、容量大這一特性,同時(shí)RRAM具有非易失性,掉電后仍能夠保存數(shù)據(jù),有效地保障了系統(tǒng)數(shù)據(jù)的安全性。在所構(gòu)建的混合存儲(chǔ)模型中,通過(guò)使用較少DRAM與RRAM混合,在保證系統(tǒng)性能的同時(shí),亦提高了其存儲(chǔ)密度。
如圖1所示,設(shè)計(jì)混合內(nèi)存體系結(jié)構(gòu),通過(guò)設(shè)計(jì)一個(gè)內(nèi)存管理控制器來(lái)管理數(shù)據(jù)的訪存,該控制器實(shí)現(xiàn)地址映射、命令生產(chǎn)、讀寫(xiě)調(diào)度等功能。每一個(gè)內(nèi)存數(shù)據(jù)讀寫(xiě)請(qǐng)求,都需要經(jīng)過(guò)內(nèi)存控制器,本文通過(guò)不同的通道實(shí)現(xiàn)混內(nèi)存的支持,設(shè)置兩個(gè)通道,一個(gè)通道中模擬DRAM,另一個(gè)通道中模擬RRAM。為DRAM和RRAM分別設(shè)計(jì)存儲(chǔ)管理模塊,二者的地址空間是分別獨(dú)立的,任何時(shí)候一個(gè)數(shù)據(jù)頁(yè)只能存在于一個(gè)設(shè)備上。內(nèi)存控制器維護(hù)DRAM和RRAM的分區(qū)列表,根據(jù)請(qǐng)求地址將請(qǐng)求發(fā)送到相應(yīng)的內(nèi)存。
圖1 混合內(nèi)存體系結(jié)構(gòu)
圖2展示了引入RRAM后內(nèi)存控制器中請(qǐng)求下發(fā)的流程,當(dāng)內(nèi)存訪問(wèn)請(qǐng)求到達(dá)時(shí),內(nèi)存控制器對(duì)訪問(wèn)請(qǐng)求進(jìn)行解析,獲得請(qǐng)求類型、地址、大小等信息,根據(jù)請(qǐng)求類型不同做相應(yīng)的操作。當(dāng)請(qǐng)求類型為寫(xiě)請(qǐng)求時(shí),我們優(yōu)先考慮是將請(qǐng)求發(fā)送給DRAM,同時(shí)當(dāng)讀操作發(fā)生缺頁(yè)中斷時(shí),缺頁(yè)中斷程序從磁盤(pán)讀取請(qǐng)求頁(yè)時(shí),優(yōu)先考慮將請(qǐng)求頁(yè)寫(xiě)入DRAM中,這樣做的目的是減少RRAM的寫(xiě)次數(shù),因?yàn)镽RAM具有較高的寫(xiě)延遲(相對(duì)于DRAM)。
圖2 引入RRAM后內(nèi)存控制器中請(qǐng)求下發(fā)流程
在混合內(nèi)存系統(tǒng)中,不僅需要模擬DRAM的行為,還需要模擬RRAM,同時(shí)需要一個(gè)混合內(nèi)存控制器來(lái)負(fù)責(zé)調(diào)度上層下發(fā)的請(qǐng)求,并將執(zhí)行完的數(shù)據(jù)返回給CPU。因此,本文在GEM5和NVMain的基礎(chǔ)上,構(gòu)建DRAM-RRAM混合內(nèi)存模擬器。
表2列出了混合內(nèi)存模擬器基本配置及內(nèi)存的參數(shù)信息。本文中在各個(gè)內(nèi)存級(jí)別的調(diào)度算法一致,都采用FR-FCFS(first-ready,first-come,first-serve),默認(rèn)內(nèi)存地址映射策略是scheme1,單個(gè)RRAM芯片的容量設(shè)置為256 MB,單個(gè)DRAM芯片的容量設(shè)置為512 MB,內(nèi)存總?cè)萘繛? GB。
表2 模擬器基本配置
本文采用的基準(zhǔn)測(cè)試程序集是PARSEC[14],該測(cè)試集由多線程應(yīng)用程序組成,具有一定代表性。從中選取9個(gè)不同測(cè)試程序,測(cè)試程序的輸入集選取simMedium進(jìn)行實(shí)驗(yàn),其特點(diǎn)見(jiàn)表3。
表3 測(cè)試程序集的特點(diǎn)
實(shí)驗(yàn)中設(shè)計(jì)了3種內(nèi)存結(jié)構(gòu),分別為4G容量的DRAM、4GB容量的RRAM和2GB DRAM+2GB RRAM,首先通過(guò)模擬器單獨(dú)在DRAM設(shè)備和RRAM設(shè)備上運(yùn)行上述測(cè)試程序集,獲得單個(gè)設(shè)備的性能,然后在混合存儲(chǔ)設(shè)備上運(yùn)行同一測(cè)試集。
實(shí)驗(yàn)1:不同應(yīng)用程序在不同內(nèi)存結(jié)構(gòu)下的平均讀延遲
本實(shí)驗(yàn)主要是為了測(cè)試不同內(nèi)存結(jié)構(gòu)下,不同應(yīng)用程序的讀延遲情況,實(shí)驗(yàn)采用3.2節(jié)中的基準(zhǔn)測(cè)試程序。
如圖3所示,我們可以看出,在DRAM內(nèi)存結(jié)構(gòu)下,所有應(yīng)用的平均讀延遲最小,同時(shí)DRAM-RRAM內(nèi)存結(jié)構(gòu)下的平均讀延遲小于RRAM內(nèi)存結(jié)構(gòu),這是因?yàn)镈RAM本身的讀延遲小于RRAM。
圖3 不同應(yīng)用程序的平均讀延遲
實(shí)驗(yàn)2:不同應(yīng)用程序在不同內(nèi)存結(jié)構(gòu)下的平均寫(xiě)延遲
本實(shí)驗(yàn)的主要是為了測(cè)試不同內(nèi)存結(jié)構(gòu)下,不同應(yīng)用程序的寫(xiě)延遲情況,實(shí)驗(yàn)采用3.2節(jié)中的基準(zhǔn)測(cè)試程序。
圖4展示了在3種不同內(nèi)存結(jié)構(gòu)下不同應(yīng)用的平均寫(xiě)延遲。應(yīng)用程序streamcluster在DRAM內(nèi)存結(jié)構(gòu)下和在DRAM-RRAM內(nèi)存結(jié)構(gòu)下,寫(xiě)延遲非常接近,這是因?yàn)閟treamcluster的寫(xiě)請(qǐng)求非常少,也就是說(shuō)對(duì)于寫(xiě)操作非密集的應(yīng)用程序而言,混合內(nèi)存的結(jié)構(gòu)基本不會(huì)影響其寫(xiě)性能。對(duì)于應(yīng)用程序facesim和x264,沒(méi)有體現(xiàn)出DRAM-RRAM混合內(nèi)存結(jié)構(gòu)中DRAM寫(xiě)操作快的優(yōu)勢(shì),反而體現(xiàn)出RRAM寫(xiě)延遲較大的缺陷,這可能是由于這兩個(gè)應(yīng)用程序發(fā)送的寫(xiě)操作請(qǐng)求發(fā)送到RRAM上較多,發(fā)送到DRAM上比較少導(dǎo)致的。對(duì)于其它應(yīng)用,DRAM-RRAM混合內(nèi)存的延遲小于RRAM,這正體現(xiàn)出了DRAM寫(xiě)延遲小的優(yōu)勢(shì)。
圖4 不同應(yīng)用程序的平均寫(xiě)延遲
通過(guò)實(shí)驗(yàn)2和實(shí)驗(yàn)3,我們可以得出,2GB DRAM+2GB RRAM混合存儲(chǔ)模型讀寫(xiě)性能優(yōu)于單獨(dú)使用RRAM內(nèi)存設(shè)備,當(dāng)應(yīng)用程序?qū)儆趯?xiě)密集型應(yīng)用時(shí),混合內(nèi)存的優(yōu)勢(shì)體現(xiàn)的更加明顯。
實(shí)驗(yàn)3:不同內(nèi)存容量配置對(duì)內(nèi)存系統(tǒng)性能的影響
為了分析混合存儲(chǔ)設(shè)備DRAM與RRAM內(nèi)存不同容量配置對(duì)內(nèi)存系統(tǒng)性能的影響,設(shè)置了4組不同容量的內(nèi)存結(jié)構(gòu),分別為4GB DRAM、1GB DRAM+4GB RRAM、1GB DRAM+8GB RRAM、1GB DRAM+16GB RRAM,測(cè)試程序選取上述測(cè)試集中具有代表性的blackscholes、streamcluster和facesim。blacksscholes僅含26.7億條指令,facesim含299億條指令,streamcluster含221.2億條指令,同時(shí)屬于寫(xiě)操作非密集的應(yīng)用。實(shí)驗(yàn)中我們沒(méi)有對(duì)RRAM單獨(dú)作為內(nèi)存結(jié)構(gòu)時(shí)的情況進(jìn)行研究,因?yàn)镽RAM有較大的寫(xiě)延遲,其性能明顯比DRAM作為內(nèi)存時(shí)差。
如圖5所示,在測(cè)試程序blackscholes、streamcluster、facesim下,隨著RRAM容量的增加,程序運(yùn)行時(shí)間逐漸減小,其中當(dāng)內(nèi)存采用1GB DRAM+16GB RRAM結(jié)構(gòu)時(shí),其性能與4GB DRAM時(shí)的性能相當(dāng)。
圖5 不同內(nèi)存容量下應(yīng)用程序的運(yùn)行時(shí)間
制約DRAM內(nèi)存系統(tǒng)發(fā)展的主要因素是容量和能耗,與DRAM相比,NVM具有存儲(chǔ)密度高、擴(kuò)展性強(qiáng)、非易失性等優(yōu)勢(shì),而NVM的讀寫(xiě)性能、耐久性略遜于DRAM。本文基于GEM5和NVMain構(gòu)建了DRAM-RRAM混合內(nèi)存模擬器,通過(guò)測(cè)試其在程序集PARSEC下不同應(yīng)用的平均讀寫(xiě)延遲,得出混合內(nèi)存的讀寫(xiě)性能優(yōu)于單獨(dú)使用RRAM的內(nèi)存系統(tǒng),略差于DRAM作為內(nèi)存結(jié)構(gòu)時(shí)的性能,但RRAM的引入大大提高了內(nèi)存系統(tǒng)的存儲(chǔ)密度。在此基礎(chǔ)上,選取測(cè)試程序集下不同的應(yīng)用程序,配置不同混合內(nèi)存容量,發(fā)現(xiàn)對(duì)系統(tǒng)性能亦造成不同程度的影響。為了更好地提高混合內(nèi)存結(jié)構(gòu)中NVM的耐久性,降低其寫(xiě)功耗,還需進(jìn)一步的工作。