陳俊熹,沙行勉,2,諸葛晴鳳,2,陳咸彰
(1.重慶大學(xué)計算機學(xué)院,重慶 400044;2.信息物理社會可信服務(wù)計算教育部重點實驗室,重慶 400044)
混合內(nèi)存頁面管理策略的性能和能耗研究
陳俊熹1,沙行勉1,2,諸葛晴鳳1,2,陳咸彰1
(1.重慶大學(xué)計算機學(xué)院,重慶 400044;2.信息物理社會可信服務(wù)計算教育部重點實驗室,重慶 400044)
隨著信息物理系統(tǒng)和普適計算的發(fā)展,現(xiàn)有內(nèi)存無法滿足智能終端等嵌入式系統(tǒng)對性能、能耗和設(shè)備面積的高要求。工業(yè)界和學(xué)術(shù)界正提出使用新型非易失性存儲器(NVM)和DRAM混合內(nèi)存系統(tǒng)的解決思路。針對NVM和DRAM混合的內(nèi)存系統(tǒng)架構(gòu),提出一種新型的高效、低能耗的頁面管理機制。該機制根據(jù)不同數(shù)據(jù)頁的訪問特征和歷史信息,提出一種新的頁面初始化分配策略,和一種根據(jù)數(shù)據(jù)頁的訪問方式等歷史信息物理動態(tài)調(diào)整存儲位置的方法。實驗結(jié)果表明,該方法相比既有Linux內(nèi)存管理策略可提高149%的性能,可降低55.4%的能耗。
混合式內(nèi)存管理;性能優(yōu)化;能耗優(yōu)化;非易失性內(nèi)存
信息物理系統(tǒng)[14](Cyber-Physical Systems,CPS)和普適計算[15]的發(fā)展,從多方面對嵌入式設(shè)備和系統(tǒng)提出了更高的要求。例如移動終端和可穿戴式設(shè)備對設(shè)備面積、實時性和能耗提出高要求。同時,為滿足日益提升的需求,大量嵌入式設(shè)備中的內(nèi)存已達到GB級別,對能耗和性能產(chǎn)生重要影響。
現(xiàn)有嵌入式系統(tǒng)普遍使用DRAM作為內(nèi)存,然而兩個因素使得僅用DRAM作內(nèi)存難以滿足日益提高的需求。第一是DRAM的制程已接近極限,其存儲密度很難再提高。第二是DRAM為保存數(shù)據(jù),必須周期性地刷新所有存儲單元,產(chǎn)生巨大的能耗開銷。Zhong K等[5]指出,現(xiàn)有許多智能設(shè)備的內(nèi)存能耗已占到系統(tǒng)能耗的30%以上。
新型非易失性存儲器(Non-Volatile Memory,NVM)卻在這兩個方面具有優(yōu)勢。NVM具有比DRAM高的存儲密度,可字節(jié)尋址,其讀寫速度達到了納秒級,與DRAM讀寫速度相當(dāng)。同時,NVM空閑時不需要刷新存儲單元,因而閑時能耗極低。所以NVM具有取代DRAM作為主存的潛力。然而,NVM也存在一些缺陷,這主要體現(xiàn)在寫速度慢、寫能耗大和每個單元寫次數(shù)有限。
相變存儲器(Phase Change Memory,PCM)[13]是一種典型的NVM。表1以PCM為例,對DRAM、PCM以及閃存存儲器(Flash)之間的多種性質(zhì)進行了對比[4]。
表1 幾種不同存儲介質(zhì)的參數(shù)對比
基于上述原因,嵌入式系統(tǒng)設(shè)計中越來越多地使用NVM和DRAM結(jié)合的內(nèi)存系統(tǒng)[5,10]。然而,傳統(tǒng)的內(nèi)存管理機制不能很好地管理DRAM和NVM混合的內(nèi)存系統(tǒng)。一方面,現(xiàn)有內(nèi)存管理系統(tǒng)都是在DRAM中為數(shù)據(jù)分配物理頁,沒有考慮到DRAM和NVM各自的性質(zhì)特點,如NVM的讀、寫和磨損特性等,不能很好地發(fā)揮混合內(nèi)存的作用。另一方面,現(xiàn)有內(nèi)存管理系統(tǒng)在DRAM和交換區(qū)之間交換頁面時,沒有考慮到數(shù)據(jù)的訪問特征。因此,為了高效節(jié)能地使用NVM和DRAM的混合內(nèi)存,必須基于DRAM和NVM的特點,設(shè)計新的內(nèi)存頁面管理方法。
本文使用基于NVM和DRAM混合的內(nèi)存體系架構(gòu),提出一種高效且低能耗的混合內(nèi)存頁面管理方法(Hybrid Memory Page Management,簡稱HMPM)。HMPM通過減少DRAM和NVM之間的數(shù)據(jù)頁遷移次數(shù),即頁面再分配次數(shù)來提升系統(tǒng)性能并降低能耗。首先,HMPM根據(jù)數(shù)據(jù)頁的訪問方式,在頁面初始化分配階段,從不同存儲介質(zhì)為不同類型的數(shù)據(jù)頁分配物理空間。其次,HMPM根據(jù)數(shù)據(jù)頁被訪問的歷史記錄和訪問方式,動態(tài)地調(diào)整數(shù)據(jù)頁在DRAM和NVM上的物理位置。
本文從系統(tǒng)性能和能耗這兩個方面來闡述HMPM策略相比于既有Linux內(nèi)存管理策略的優(yōu)勢。實驗表明,HMPM策略可以使得系統(tǒng)性能提升了149%,能耗降低了55.8%。
隨著嵌入式設(shè)備對設(shè)備大小、實時性和能耗的要求越來越高,嵌入式設(shè)備也越來越多地使用NVM作為內(nèi)存。文獻[5]中將PCM作為智能手機系統(tǒng)的交換分區(qū)。PCM交換區(qū)中的頁以只讀的方式存在,系統(tǒng)可直接進行讀操作,當(dāng)寫請求到來時,則需先將其換入到DRAM后再進行寫操作。這種方式存在一個負面影響,在寫操作頻繁的系統(tǒng)中,大量的交換操作會使得系統(tǒng)性能受到影響。文獻[7]提出在內(nèi)存控制器中為系統(tǒng)的DRAM和PCM頁框記錄一個訪問行為表,每次內(nèi)存訪問操作都會對該表進行修改。當(dāng)該訪問行為記錄表顯示對應(yīng)的PCM頁框超過寫操作閾值時,則會引起頁框交換操作。頁框的交換由內(nèi)存控制器中專門的頁框遷移控制模塊完成,以減少系統(tǒng)的開銷。文獻[9]提出使用DRAM和PCM混合的內(nèi)存架構(gòu)來獲得更低的系統(tǒng)能耗。作者從硬件控制器和操作系統(tǒng)兩個層次減少對PCM的寫操作,從而提升系統(tǒng)性能并降低能耗。另一些研究重點是減少PCM的寫操作來提升PCM的使用壽命[1,6,11]。在文獻[1]中,作者使用PCM作為主存,DRAM作為系統(tǒng)的寫緩沖區(qū)。內(nèi)存數(shù)據(jù)先寫到DRAM,只有發(fā)生寫回操作時才寫PCM。文獻[3]通過實現(xiàn)兩種磨損均衡策略來優(yōu)化寫分布,主要思想是通過頁的寫次數(shù)對頁進行排序,在進行分配時快速地找到寫次數(shù)少的頁,并使得寫操作更均勻的分配到每個頁。以上工作都是對系統(tǒng)做單一方面的優(yōu)化,沒有整套的頁面管理方案。
本文的主要研究內(nèi)容在于設(shè)計NVM與DRAM混合內(nèi)存系統(tǒng)下的頁面管理機制,包括頁面的分配和磨損均衡方法,以優(yōu)化嵌入式系統(tǒng)的性能和能耗。
2.1 系統(tǒng)架構(gòu)
本文采用DRAM和NVM混合內(nèi)存體系結(jié)構(gòu),如圖1所示。其中,DRAM和NVM共享地址空間,混合內(nèi)存控制器負責(zé)處理CPU訪問DRAM或NVM的內(nèi)存請求?;旌蟽?nèi)存控制器可以直接存取DRAM或NVM中的頁。這種系統(tǒng)結(jié)構(gòu)可以減少芯片面積并降低能耗。本文并不針對特別的嵌入式系統(tǒng)或應(yīng)用研究DRAM和NVM的配置比率,而是考慮這種架構(gòu)下的頁面分配方法。
圖1 混合內(nèi)存系統(tǒng)架構(gòu)圖
由于DRAM和NVM各有優(yōu)勢,為了在嵌入式系統(tǒng)中獲得更高性能和更低能耗,必須根據(jù)系統(tǒng)訪問數(shù)據(jù)的特征,在恰當(dāng)?shù)膬?nèi)存中為的數(shù)據(jù)頁分配物理頁。
2.2 數(shù)據(jù)頁的訪問方式及分類
系統(tǒng)的數(shù)據(jù)頁在其使用過程中具有不同的訪問方式,即不同的訪問權(quán)限和訪問頻率。根據(jù)數(shù)據(jù)頁的訪問方式,可以把數(shù)據(jù)頁分為三類:
(1)只讀頁,即在其使用周期中不會發(fā)生寫操作的頁。這類頁面包括存放內(nèi)核及用戶程序的代碼段、庫文件等的頁;
(2)讀頻繁頁,即在其使用周期中讀操作居多的頁。例如以讀方式打開的文件的映射頁等;
(3)寫頻繁頁,即在其使用周期中寫操作居多的頁。例如存放內(nèi)核數(shù)據(jù)結(jié)構(gòu)的頁、屬于進程堆、棧的頁,以及用寫方式打開的文件的映射頁等。
根據(jù)不同類型數(shù)據(jù)頁的特征,為其分配恰當(dāng)?shù)奈锢眄摽梢詼p少數(shù)據(jù)頁在NVM和DRAM間的遷移,從而提高系統(tǒng)性能并降低能耗開銷。
本節(jié)介紹混合內(nèi)存頁面管理(HMPM)機制。HMPM分為兩部分。一是根據(jù)數(shù)據(jù)頁的訪問方式,在系統(tǒng)初次使用該頁面時,靜態(tài)地為頁面分配恰當(dāng)?shù)奈锢眄?,即初始化分配。二是動態(tài)地對系統(tǒng)中已有數(shù)據(jù)頁的頁面再分配策略。
3.1 基于頁分類的初始化分配策略
基于頁分類的初始化分配策略是指在系統(tǒng)或用戶進程創(chuàng)建該數(shù)據(jù)頁時,根據(jù)所創(chuàng)建的數(shù)據(jù)頁的類別,為數(shù)據(jù)頁分配適當(dāng)?shù)奈锢眄摗?/p>
我們提出的初始化分配策略為:在創(chuàng)建數(shù)據(jù)頁時,系統(tǒng)從NVM為只讀頁和讀頻繁頁分配物理頁,而從DRAM為寫頻繁頁分配物理空間。對于臨界情況,當(dāng)DRAM空間不足時,系統(tǒng)所有的物理頁都從NVM分配,當(dāng)NVM不足時,系統(tǒng)所有的物理頁都從DRAM分配。而當(dāng)DRAM和NVM空間都不足時,系統(tǒng)必須結(jié)束進程或?qū)?shù)據(jù)頁交換到外部儲存器來釋放內(nèi)存。本文將不討論DRAM和NVM空間都不足的這種情況。從DRAM和NVM分配物理空間時,HMPM使用Linux系統(tǒng)現(xiàn)有的分配策略,即伙伴系統(tǒng)算法及slab分配器。這兩種分配策略充分地考慮了系統(tǒng)空間的外部碎片和內(nèi)部碎片的問題,是現(xiàn)代操作系統(tǒng)中最常用的分配算法。
3.2 再分配策略
在現(xiàn)有Linux系統(tǒng)中,當(dāng)系統(tǒng)內(nèi)存不足時,使用頁交換機制在主存和交換區(qū)之間遷移數(shù)據(jù)頁以釋放內(nèi)存空間。每當(dāng)系統(tǒng)需要訪問被遷移到交換區(qū)上的頁時,都必須在主存中為該數(shù)據(jù)頁重新分配物理頁,這種機制容易引起頻繁的頁面再分配,即“顛簸(Thrashing)”現(xiàn)象,對系統(tǒng)性能造成極大的損害。
HMPM為NVM頁和DRAM頁設(shè)計不同的再分配策略,以減少頁面再分配的次數(shù)。需要注意的是,在混合內(nèi)存體系結(jié)構(gòu)中,每當(dāng)頁面在NVM和DRAM之間進行交換時,數(shù)據(jù)頁虛擬地址到對應(yīng)物理地址的映射關(guān)系,即頁表也會進行修改,所以進程仍然可以通過數(shù)據(jù)頁的虛擬地址訪問交換后的物理頁。
(1)NVM頁再分配到DRAM
在現(xiàn)有操作系統(tǒng)的內(nèi)存管理機制中,當(dāng)內(nèi)存不足時,頁框回收算法會選擇部分非活動的頁換出到交換分區(qū)中,從而釋放內(nèi)存空間。進程一旦請求訪問已經(jīng)換到交換分區(qū)中的頁時,無論訪問方式是讀或是寫,都必須執(zhí)行換入操作。這種方式使得再分配操作非常頻繁,并且沒有利用NVM的特性,嚴重損害系統(tǒng)性能。
為了最小化系統(tǒng)中的再分配操作,本文提出“懶分配(Lazy allocation)”的再分配方法。懶分配的主要思想是盡量不將NVM的頁換入到DRAM中。當(dāng)進程讀NVM的頁時,不執(zhí)行再分配操作;當(dāng)進程寫NVM的頁時,并不立即執(zhí)行再分配操作,僅當(dāng)該頁的寫次數(shù)達到設(shè)定的閾值時才進行再分配。
進程訪問數(shù)據(jù)頁的信息可以定義如下:假設(shè)進程要訪問位于NVM上的頁p,訪問方式為a。a是一個二值變量,a=0表示讀,a=1表示寫。設(shè)p對應(yīng)的物理頁已有的寫次數(shù)為Wp。根據(jù)以上定義,懶分配的具體描述如算法1所述。
算法1懶交換的再分配方法。
輸入:被訪問的數(shù)據(jù)頁p,p的訪問方式a,p對應(yīng)的物理頁的寫次數(shù)Wp,閾值Γ。
輸出:訪問后的數(shù)據(jù)頁p。
直接讀取該物理頁;
在DRAM上為頁p再分配頁并修改頁表;釋放NVM上頁p對應(yīng)的物理頁,Wp=0;在相應(yīng)的DRAM頁上執(zhí)行寫操作;
在算法1中,當(dāng)進程需要訪問NVM上的數(shù)據(jù)頁時,算法首先判斷其訪問方式a。a等于0時,進程直接讀取該頁。否則,判斷所請求頁p對應(yīng)的物理頁的寫次數(shù)是否超過預(yù)設(shè)的閾值Γ。如果未超過閾值,則直接寫頁p對應(yīng)的NVM物理頁,并增加當(dāng)前數(shù)據(jù)頁寫次數(shù)的值;否則執(zhí)行再分配操作,即在DRAM為該數(shù)據(jù)頁分配一個新的物理空間,并將頁p的數(shù)據(jù)移動到新分配的頁,然后釋放原來的NVM頁并重置Wp的值。最后,在頁p新分配到的DRAM物理頁上寫數(shù)據(jù)。
為了實現(xiàn)虛擬再分配策略,我們在控制器中為NVM物理頁面設(shè)置一個當(dāng)前寫次數(shù)計數(shù)器WCcur,用于記錄該頁面發(fā)生寫操作的頻繁程度,并設(shè)定寫次數(shù)閾值Γ。
(2)閾值的設(shè)定
在3.2(1)中,算法1根據(jù)閾值Γ斷定是否應(yīng)該將NVM的頁換入DRAM。適當(dāng)?shù)拈撝郸π阅苤陵P(guān)重要。本節(jié)討論閾值Γ的設(shè)置方法。
從系統(tǒng)性能的角度考慮,當(dāng)寫NVM上的頁p的開銷大于頁面再分配所產(chǎn)生的開銷時,就應(yīng)當(dāng)為p進行再分配操作,將其換入DRAM中。此后所有針對頁p的寫操作都可以利用DRAM寫性能的優(yōu)勢。我們用Γ表示閾值,以CN表示直接寫一個NVM頁產(chǎn)生的開銷,以CRA表示一個NVM頁先經(jīng)過頁面再分配,再完成寫操作所產(chǎn)生的開銷。CRA包括從DRAM中再分配頁的開銷和讀取數(shù)據(jù)頁的開銷CS,以及寫一個DRAM頁的開銷CD。因此,閾值Γ的取值滿足式(1)。
根據(jù)我們的實驗測算,Linux系統(tǒng)中CS的時間開銷是18μs。寫一個DRAM頁的開銷為0.4μs左右,即CD=0.4μs。此外,設(shè)NVM寫延遲為DRAM寫延遲的5倍[4],即CN=2μs。因此,通過式(1)可得閾值Γ取值10。
下面我們驗證上述閾值計算方法是2-optimal的方法,即最壞情況下的開銷是最優(yōu)解的兩倍。假設(shè)對一個頁進行N次寫操作,以RC表示懶分配算法的開銷,則RC滿足式(2):
如果N〈Γ,系統(tǒng)不采取再分配操作,此時的解是最優(yōu)解。當(dāng)N≥Γ時,懶分配算法首先寫NVM頁Γ-1次,然后將其再分配到DRAM上并進行剩余的寫操作。然而此時的最優(yōu)解應(yīng)該是第一次寫之前就將頁換入DRAM,然后寫DRAM,即最優(yōu)解的開銷是CS+N*CD= ΓCN-CD+N*CD。這種情況下懶分配算法產(chǎn)生的開銷與最優(yōu)解的開銷的比值Ra為:
因此,使用這種閾值設(shè)置的懶分配算法,最壞情況下產(chǎn)生兩倍于最優(yōu)解的開銷,即這種閾值生成算法是2-optimal。
(3)DRAM頁再分配到NVM
現(xiàn)有操作系統(tǒng)在內(nèi)存空間不足時,使用“最近最少使用(LRU)”算法從DRAM中選取需要交換到交換區(qū)中的頁。Linux的LRU使用非活動鏈表Lina和活動鏈表La來記錄系統(tǒng)中正在使用頁面的冷熱情況(即訪問頻率高低程度)。當(dāng)內(nèi)存空間不足時,系統(tǒng)只從非活動鏈表Lina中選擇部分冷數(shù)據(jù)頁交換到磁盤來釋放內(nèi)存空間。
LRU只區(qū)別數(shù)據(jù)頁的冷熱情況不適用于混合內(nèi)存架構(gòu),原因在于使用NVM作為部分內(nèi)存時,由于NVM具有讀寫不對稱的特性,因此不僅要考慮數(shù)據(jù)頁的冷熱程度,還需要考慮數(shù)據(jù)頁的讀寫方式。
為此,本文提出同時考慮數(shù)據(jù)冷熱程度和訪問方式的“最近最少寫(Least Recently Write,簡稱LRW)”算法。LRW算法不僅將DRAM上的冷數(shù)據(jù)頁遷移到NVM,還將讀頻繁的熱數(shù)據(jù)頁遷移到NVM?!白x頻繁的熱數(shù)據(jù)頁”在LRW算法里是指在活動列表La里最近沒有被寫的數(shù)據(jù)頁。LRW算法相較LRU算法有兩個好處:第一,LRW可以釋放更多的DRAM空間,將其留給寫頻繁頁使用;第二,讀頻繁熱數(shù)據(jù)頁放在NVM上可以使系統(tǒng)在保證性能不損失的情況下達到降低能耗的目的。由于CPU可以直接訪問NVM上的頁,進程讀NVM頁時也不需要進行再分配操作,避免了額外的開銷。
LRW算法也使用非活動鏈表Lina記錄冷數(shù)據(jù)頁,用活動鏈表La記錄熱數(shù)據(jù)頁。Lina和La中的每一個頁都有一個臟標(biāo)記位,用于表示該頁最近是否被寫過。當(dāng)DRAM不足時,內(nèi)存管理系統(tǒng)使用LRW算法逐個檢查所有已分配的DRAM頁,判斷是否應(yīng)該釋放該頁。LRW算法的具體描述如下:
如算法2所示,LRW算法在循環(huán)中逐個檢查已分配的DRAM數(shù)據(jù)頁。算法先判斷已分配數(shù)據(jù)頁p是否屬于非活動鏈表。若屬于就將其加入待再分配鏈表Lrea。否則,算法通過頁的臟標(biāo)記來檢測該頁最近是否被寫過。如果該頁最近未被寫過,就將其加入待再分配鏈表Lrea。最后,LRW返回Lrea鏈表。內(nèi)存管理系統(tǒng)按照實際需求選取Lrea中一定數(shù)量的頁移動到NVM上。
從算法2的描述容易看出,LRW算法的時間復(fù)雜度為O(n),n為系統(tǒng)正在使用的DRAM頁數(shù)量。這與LRU算法的時間復(fù)雜度一樣,只是在LRW算法的第三步,算法增加了對每個頁面臟標(biāo)記位的判斷,這一操作是常數(shù)時間完成的,其對系統(tǒng)性能的影響可以忽略不計。
本章對比分析提出的HMPM方法和Linux內(nèi)核既有方法。首先介紹實驗設(shè)置,其次比較兩種方法所產(chǎn)生的再分配次數(shù),然后對比兩種方法的整體性能,最后分析兩種方法的能耗開銷。
4.1 實驗設(shè)置
本文仿真實驗平臺的硬件環(huán)境為4核Intel i3 CPU,頻率為3.30GHz,內(nèi)存16GB,操作系統(tǒng)為Ubuntu Linux14.04內(nèi)核。仿真實驗設(shè)置DRAM內(nèi)存區(qū)的大小為4GB,NVM內(nèi)存區(qū)的大小為12GB。
實驗一共設(shè)置9組不同的測試集,每組測試集都包括超過200萬次的頁面分配請求和超過2000萬次的數(shù)據(jù)頁訪問請求。不同測試集的主要區(qū)別在于它們訪問內(nèi)存數(shù)據(jù)頁的讀寫比例不同。例如,在讀寫比為0.9的測試集中,90%的頁面分配請求是分配只讀頁或讀頻繁頁。同時,90%的數(shù)據(jù)頁訪問請求都是讀請求。實驗記錄這9組測試集在執(zhí)行過程中產(chǎn)生的頁面再分配次數(shù),以及讀寫DRAM和NVM的次數(shù),再根據(jù)性能和能耗模型計算不同策略下系統(tǒng)使用內(nèi)存的性能和能耗。
4.2 再分配次數(shù)的比較
圖2描述了HMPM策略和Linux策略在不同讀請求比例下再分配次數(shù)情況,即數(shù)據(jù)頁在DRAM和NVM之間發(fā)生交換的次數(shù)情況。再分配會產(chǎn)生大的能耗和性能開銷。圖例中的“L”表示Linux策略,“H”表示我們的HMPM策略,“D2N”表示DRAM數(shù)據(jù)頁再分配到NVM,“N2D”表示NVM頁再分配到DRAM。
從圖2中可以看出,在不同的讀請求比例下,Linux策略下的再分配次數(shù)基本保持不變,且都高于HMPM策略下的再分配次數(shù)。其原因在于,在Linux策略中,不管對數(shù)據(jù)頁的訪問方式是讀或者寫,只要系統(tǒng)訪問位于NVM的數(shù)據(jù)頁,即換出頁,就會產(chǎn)生NVM到DRAM的再分配操作。這在一方面這增加了“N2D”再分配操作的次數(shù),另一方面增加了DRAM的訪存壓力,間接導(dǎo)致“D2N”再分配操作次數(shù)的增加。
HMPM策略下兩種類型的再分配次數(shù)都隨著讀請求的增加而減少。HMPM策略把讀頻繁的數(shù)據(jù)頁直接分配到NVM,并且當(dāng)以讀的方式訪問NVM的數(shù)據(jù)頁時,不執(zhí)行再分配操作。因此,在讀請求越多的系統(tǒng)環(huán)境中,數(shù)據(jù)頁越多的位于NVM,減少了“N2D”的次數(shù),也減少了DRAM的訪存壓力。
4.3 系統(tǒng)性能的比較
寫NVM的速度遠高于DRAM的寫速度,HMPM能大幅減少在NVM上的寫次數(shù),進而提高系統(tǒng)性能。圖3描述了在不同讀請求比例的情況下,HMPM策略相比于既有Linux策略的性能對比情況。性能的對比采用歸一化的方式,我們以Linux策略的系統(tǒng)性能為1,然后來衡量HMPM策略下的系統(tǒng)性能。圖3表明,HMPM策略帶來的系統(tǒng)性能提升隨著讀請求比例的增大而增加。讀請求比例為0.1時,HMPM策略性能為Linux策略性能的1.26倍,當(dāng)讀請求比例為0.9時,HMPM策略性能為Linux系統(tǒng)性能的2.49倍。
圖2 兩種策略的再分配次數(shù)對比
圖3 兩種策略的性能對比
系統(tǒng)性能的提升來自于兩個方面。其一是因為隨著讀請求比例的增加,HMPM策略的再分配次數(shù)減少,使得系統(tǒng)中頁面遷移的開銷減少。其二是因為隨著讀請求比例的增加,寫NVM的次數(shù)相應(yīng)減少。由于寫NVM的開銷大于讀NVM以及讀寫DRAM的開銷,因此寫NVM的比例下降使得系統(tǒng)性能得到提升。
4.4 系統(tǒng)能耗的比較
我們使用文獻[5]中的能耗模型來衡量HMPM策略和Linux策略在不同讀寫請求比例下的能耗情況。
表2 訪問DRAM和NVM的能耗數(shù)據(jù)及助記符[5]
表2列出了訪問DRAM和NVM產(chǎn)生的能耗數(shù)據(jù)及對應(yīng)的助記符,系統(tǒng)訪問內(nèi)存產(chǎn)生的能耗分為動態(tài)能耗ED和靜態(tài)能耗ES兩種,即讀寫數(shù)據(jù)頁面所產(chǎn)生的能耗以及維持數(shù)據(jù)所產(chǎn)生的能耗。因此,系統(tǒng)訪問內(nèi)存所產(chǎn)生的能耗E滿足式(5)
其中系統(tǒng)運行過程中讀、寫DRAM數(shù)據(jù)的大小分別為SRD、SWD字節(jié),讀、寫NVM數(shù)據(jù)的大小分別為SRN、SWN字節(jié),它的大小由系統(tǒng)DRAM容量Cdram、NVM的容量Cnvm以及系統(tǒng)運行時間T決定。
圖4描述了在不同讀請求比例下HMPM和Linux兩種策略的能耗變化情況。隨著讀請求比例的增大,使用HMPM策略的系統(tǒng)訪問內(nèi)存的能耗持續(xù)降低,而Linux策略的能耗幾乎不變。在讀請求所占比例為90%時,Linux策略下的能耗為1344.9J,HMPM策略下的能耗為599.2J,即HMPM策略下的能耗相比Linux策略降低了55.4%。
圖4 兩種策略的能耗對比
通過圖4可以發(fā)現(xiàn),在寫請求比例較大時,HMPM策略的能耗也低于Linux策略。這是因為Linux策略下的再分配次數(shù)要遠大于HMPM的再分配次數(shù),大量的“D2N”遷移操作增加了NVM的寫次數(shù)。
本文討論了使用混合內(nèi)存結(jié)構(gòu)的嵌入式系統(tǒng)的頁面分配方法,提出了一套高效低能耗的內(nèi)存頁面管理方法。該方法主要從靜態(tài)初始化分配和動態(tài)再分配兩個方面來決定數(shù)據(jù)頁在混合內(nèi)存系統(tǒng)中的存儲位置,以充分利用NVM的高速讀和低讀能耗、低閑時能耗,和DRAM高速寫等特性。仿真實驗結(jié)果表明,HMPM方法在系統(tǒng)性能、能耗以及NVM使用壽命三個方面都比既有Linux策略表現(xiàn)更好。本文的方法在以下方面存在局限性:(1)某些數(shù)據(jù)頁的訪問特征不明顯,初始化分配策略分配此類數(shù)據(jù)頁時可能會預(yù)測失??;(2)本文假設(shè)DRAM和NVM的總?cè)萘磕軡M足所有的內(nèi)存分配請求,未考慮內(nèi)存空間不足的情況。下一步工作將研究在內(nèi)存空間不足時的頁回收策略,以及數(shù)據(jù)頁在混合內(nèi)存與交換區(qū)之間的交換策略。
[1]Ferreira,A.P,Miao Zhou,Bock,S,et al.Increasing PCM Main Memory Lifetime.Proceedings of the Design,Automation&Test in Europe Conference&Exhibition 2010(DATE'10).Dresden,Germany,2010:914-919.
[2]Luo H,Zhuge Q,Shi L,et al.Accurate Age Counter for Wear Leveling on Non-Volatile Based Main Memory.Design Automation for Embedded Systems,2014,17(9):543-564.
[3]Chen C H,Hsiu P C,Kuo T W,et al.Age-based PCM Wear Leveling with Nearly Zero Search Cost.Proceedings of the 49th Design Automation Conference(DAC'12).San Francisco,USA,2012:453-458.
[4]冒偉,劉景寧,等.基于相變存儲器的存儲技術(shù)研究綜述.計算機學(xué)報,2015,38(5):944-958.
[5]Zhong K,Zhu X,Wang T,et al.DR.Swap:Energy-Efficient Paging for Smartphones.Proceedings of the International Symposium on Low Power Electronics and Design 2014(ISLPED'14).New York,USA,2014:81-86.
[6]Qureshi M K,Karidis J,Franceschini M,et al.Enhancing Lifetime and Security of PCM-based Main Memory with Start-Gap Wear Leveling.Proceedings of theIEEE/ACM International Symposium on Microarchitecture 2009(MICRO'09).New York,USA,2009:14-23.
[7]王強,陳嵐,郝曉冉.一種基于訪存行為地址映射機制的混合內(nèi)存系統(tǒng).小型微型計算機系統(tǒng),2014,35(6):1201-1206.
[8]Qureshi M K,Srinivasan V,Rivers J A.Scalable High Performance Main Memory System Using Phase-Change Memory Technology. Proceedings of the 36th International Symposium on Computer Architecture(ISCA'09).Austin,USA,2009:24-33.
[9]Dhiman G,Ayoub R,Rosing T.PDRAM:A hybrid PRAM and DRAM Main Memory System.Proceedings of the 46th Design Automation Conference(DAC'09).San Francisco,USA,2009:664-669.
[10]Shao Z,Liu Y,Chen Y,et al.Utilizing PCM for Energy Optimization in Embedded Systems.Proceedings of the IEEE Computer Society Annual Symposium on VLSI 2012(ISVLSI'12).Amherst,USA,2012:398-403.
[11]Seong N H,Woo D H,Lee H H S.Security Refresh:Prevent Malicious Wear-Out and Increase Durability for Phase-Change Memory with dynamically randomized address mapping.ACM SIGARCH Computer Architecture News,2010,38(3):383-394.
[12]Bock S,Childers B,Melhem R,et al.Analyzing the Impact of Useless Rite-Backs on the Endurance and Energy Consumption of PCM Main Memory.Proceedings of the IEEEInternational Symposium on Performance Analysis of Systems and Software 2011(ISPASS'11).Austin,USA,2011:56-65.
[13]Lee B C,Ipek E,Mutlu O,et al.Architecting Phase Change Memory as a Scalable Dram Alternative.ACM SIGARCH Computer Architecture News,2009,37(3):2-13.
[14]Ragunathan(Raj),Insup Lee,Lui Sha,John Stankovic.Cyber-Physical Systems:the Next Computing Revolution.Proceedings of the 47th Design Automation Conference(DAC'10).New York,USA,2010:731-736.
[15]岳瑋寧,董士海,王悅等.普適計算的人機交互框架研究.計算機學(xué)報,2004,27(12):1657-1664.
作者簡介:
陳俊熹(1991-),男,碩士研究生,研究方向為新型體系結(jié)構(gòu)、先進存儲體系結(jié)構(gòu)
Research on the Efficiency and Energy Consumption of Hybrid-Memory Page Management Mechanism
CHEN Jun-xi1,SHA Xing-mian1,2,ZHUGE Qing-feng1,2,CHEN Xian-zhang1
(1.College of Computer Science,Chongqing University,Chongqing 400044;
(2.Key Laboratory of Dependable Service Computing in Cyber Physical Society,Ministry of Education,Chongqing 400044)
With the development of Cyber-Physical Systems and Ubiquitous Computing,it is hard for existing memory systems to meet the high requirements of performance,energy consumption,and area of embedded systems.Industry and academia have been proposing to use the hybrid memory system of emerging Non-Volatile Memory(NVM)and DRAM to tackle the problem.Proposes a novel page management mechanism,achieves high performance and low energy consumption,for hybrid memory based embedded systems.Based on the access features and history information of pages,the mechanism designs a new strategy to determine the initial allocation of pages,an approach to dynamically adjust the physical locations of pages based on the history of data accesses on the pages.The experimental results show that,comparing with existing memory management approaches in Linux,the proposed method can improve performance by 149%,save 55.4%of energy.
Hybrid Memory Management;Performance Optimization;Energy Optimization;Non-Volatile Memory
“863”國家高技術(shù)研究發(fā)展計劃(No.2015AA015304)、國家自然科學(xué)基金項目(No.61472052、No.61173014)、重慶市科技攻關(guān)項目(No.cstc2014yykfB40007)
1007-1423(2017)11-0010-08
10.3969/j.issn.1007-1423.2017.11.002
沙行勉(1964-),男,博士,教授、研究方向為大數(shù)據(jù)存儲和計算、嵌入式和實時系統(tǒng)、先進體系結(jié)構(gòu)等
E-mail:edwinsha@cqu.edu.cn
2017-03-16
2017-04-10
諸葛晴鳳(1970-),女,博士,博導(dǎo)教授,研究方向為面向大數(shù)據(jù)應(yīng)用的新型體系結(jié)構(gòu)和系統(tǒng)優(yōu)化、內(nèi)存計算系統(tǒng)、先進存儲體系結(jié)構(gòu)等
陳咸彰(1989-),男,博士研究生,研究方向為新型體系結(jié)構(gòu)、嵌入式和實時系統(tǒng)