基于PDRAM混合內(nèi)存架構(gòu)的Linux內(nèi)存管理算法
發(fā)布時(shí)間:2021-11-14 12:47
近些年來,相變存儲(chǔ)器(PRAM)憑借其良好的特性極有可能替代動(dòng)態(tài)存儲(chǔ)器(DRAM),發(fā)展為下一代主流內(nèi)存技術(shù).由于PRAM在延時(shí)和壽命方面的性能退化,因而采用了位于Linux同一物理地址空間的一大塊PRAM和一小塊DRAM作為主內(nèi)存.現(xiàn)有的Linux內(nèi)核并不是針對混合內(nèi)存架構(gòu)而開發(fā)的,無法降低PDRAM的內(nèi)存功耗,因而,采用了基于PDRAM混合內(nèi)存架構(gòu)的Linux內(nèi)存管理算法,針對不同頁幀進(jìn)行管理,并根據(jù)虛擬地址空間頁面的一般訪問性質(zhì)進(jìn)行選擇分配內(nèi)存頁幀,動(dòng)態(tài)遷移內(nèi)存頁幀,將頻繁讀為主的數(shù)據(jù)存儲(chǔ)在PRAM,頻繁寫為主的數(shù)據(jù)存儲(chǔ)在DRAM,從而在只增加0.4%的內(nèi)存延時(shí)情況下,降低50%左右的內(nèi)存功耗,并且沒有影響PRAM的壽命.
【文章來源】:微電子學(xué)與計(jì)算機(jī). 2014,31(05)北大核心CSCD
【文章頁數(shù)】:7 頁
【部分圖文】:
圖1混合主內(nèi)存體系架構(gòu)內(nèi)存管理算法
代碼段開始和結(jié)束的虛擬內(nèi)存地址分別通過start_code和end_code標(biāo)記.參數(shù)address描述了當(dāng)前進(jìn)程產(chǎn)生缺頁異常的虛擬空間地址.這樣,當(dāng)處理器產(chǎn)生按需調(diào)頁、按需分配、頁面交換或者寫時(shí)復(fù)制的缺頁異常時(shí),通過比較產(chǎn)生缺頁異常的虛擬空間地址address和內(nèi)存描述符mm_struct中各個(gè)內(nèi)存區(qū)的起止地址,就可以判斷出這個(gè)虛擬地址是屬于堆棧段還是其它段,并為其標(biāo)志相應(yīng)內(nèi)存修飾符,從而分配PRAM頁幀或DRAM頁幀,其流程如圖3所示.圖3頁幀選擇分配算法流程圖3.3頁幀的動(dòng)態(tài)遷移頁幀選擇分配算法是一種靜態(tài)的算法,無法動(dòng)態(tài)調(diào)度不符合虛擬地址空間頁面的一般訪問性質(zhì)的頁幀.例如,以頻繁讀為主的堆棧段數(shù)據(jù)仍然分配DRAM頁幀,以頻繁寫為主的其他段數(shù)據(jù)仍然分配PRAM頁幀.如果PRAM頁幀頻繁進(jìn)行寫操作,那么主內(nèi)存的動(dòng)態(tài)功耗和延時(shí)將會(huì)有顯著的增加,而且過多的寫操作勢必會(huì)減少主內(nèi)存的使用壽命.因此,本文提出的基于混合內(nèi)存PDRAM的Linux內(nèi)存管理動(dòng)態(tài)遷移算法,流程圖如圖4所示,該算法基于著名的局部性原理[4]:最近不讀(寫)的頁幀在未來也不會(huì)需要頻繁進(jìn)行讀(寫)操作;最近讀(寫)次數(shù)多的頁幀在未來也會(huì)需要頻繁進(jìn)行讀(寫)操作.冷DRAM頁幀遷移:通過傳統(tǒng)的最近最少使用(LRU)算法,將最近最少讀寫的DRAM頁幀遷移到PRAM存儲(chǔ)空間,由于未來該頁幀也不會(huì)頻繁進(jìn)行讀寫操作,因此,遷移后該頁幀的訪問行為不會(huì)大量增加PRAM的功耗.每個(gè)內(nèi)存域包含了兩個(gè)雙向LRU鏈表:活動(dòng)(act
作系統(tǒng)修改版32位Linux3.9.1寫操作閾值1000讀寫比例閾值5:2表3DRAM和PRAM特性[6]DRAMPRAM讀功率200mW80mW寫功率200mW500mW讀延時(shí)50ns50ns寫延時(shí)50ns150nsDRAM同質(zhì)內(nèi)存架構(gòu)、不包含選擇分配和動(dòng)態(tài)遷移內(nèi)存管理算法的PDRAM混合內(nèi)存架構(gòu)、只包含選擇分配內(nèi)存管理算法的PDRAM混合內(nèi)存架構(gòu)、包含選擇分配和動(dòng)態(tài)遷移內(nèi)存管理算法的PDRAM混合內(nèi)存架構(gòu)的歸一化內(nèi)存功耗如圖5所示.圖5歸一化功耗當(dāng)DRAM同質(zhì)內(nèi)存架構(gòu)位于低地址空間的大部分物理內(nèi)存被PRAM所取代時(shí),盡管PRAM的寫功耗高于DRAM的寫功耗,但是由于PRAM的讀功耗低于DRAM的讀功耗,而且在此區(qū)域依舊呈現(xiàn)讀操作次數(shù)多、寫操作次數(shù)少的內(nèi)存訪問模式,因此不包含選擇分配和動(dòng)態(tài)遷移內(nèi)存管理算法的PDRAM混合內(nèi)存架構(gòu)可以平均降低15%的內(nèi)存功耗.其中,Bitcount測試程序發(fā)生在PRAM存儲(chǔ)空間的讀操作次數(shù)(305萬次)很少,因而僅僅內(nèi)存功耗降低了0.2%.相反的,StringSearch發(fā)生在PRAM存儲(chǔ)空間的讀操作次數(shù)(4864萬次)很多、寫操作次數(shù)(10萬次)很少,因而內(nèi)存功耗降低了46.0%.只包含選擇分配內(nèi)存管理算法的PDRAM混合內(nèi)存架構(gòu),在不包含選擇分配和動(dòng)態(tài)遷移內(nèi)存管理算法的PDRAM混合內(nèi)存架構(gòu)的基礎(chǔ)上,大量增加了發(fā)生在PRAM存儲(chǔ)空間的讀操作次數(shù)(減少了發(fā)生在DRAM存儲(chǔ)空間的讀操作次數(shù)),因此比不包含選擇分配和動(dòng)態(tài)遷移內(nèi)存
本文編號:3494665
【文章來源】:微電子學(xué)與計(jì)算機(jī). 2014,31(05)北大核心CSCD
【文章頁數(shù)】:7 頁
【部分圖文】:
圖1混合主內(nèi)存體系架構(gòu)內(nèi)存管理算法
代碼段開始和結(jié)束的虛擬內(nèi)存地址分別通過start_code和end_code標(biāo)記.參數(shù)address描述了當(dāng)前進(jìn)程產(chǎn)生缺頁異常的虛擬空間地址.這樣,當(dāng)處理器產(chǎn)生按需調(diào)頁、按需分配、頁面交換或者寫時(shí)復(fù)制的缺頁異常時(shí),通過比較產(chǎn)生缺頁異常的虛擬空間地址address和內(nèi)存描述符mm_struct中各個(gè)內(nèi)存區(qū)的起止地址,就可以判斷出這個(gè)虛擬地址是屬于堆棧段還是其它段,并為其標(biāo)志相應(yīng)內(nèi)存修飾符,從而分配PRAM頁幀或DRAM頁幀,其流程如圖3所示.圖3頁幀選擇分配算法流程圖3.3頁幀的動(dòng)態(tài)遷移頁幀選擇分配算法是一種靜態(tài)的算法,無法動(dòng)態(tài)調(diào)度不符合虛擬地址空間頁面的一般訪問性質(zhì)的頁幀.例如,以頻繁讀為主的堆棧段數(shù)據(jù)仍然分配DRAM頁幀,以頻繁寫為主的其他段數(shù)據(jù)仍然分配PRAM頁幀.如果PRAM頁幀頻繁進(jìn)行寫操作,那么主內(nèi)存的動(dòng)態(tài)功耗和延時(shí)將會(huì)有顯著的增加,而且過多的寫操作勢必會(huì)減少主內(nèi)存的使用壽命.因此,本文提出的基于混合內(nèi)存PDRAM的Linux內(nèi)存管理動(dòng)態(tài)遷移算法,流程圖如圖4所示,該算法基于著名的局部性原理[4]:最近不讀(寫)的頁幀在未來也不會(huì)需要頻繁進(jìn)行讀(寫)操作;最近讀(寫)次數(shù)多的頁幀在未來也會(huì)需要頻繁進(jìn)行讀(寫)操作.冷DRAM頁幀遷移:通過傳統(tǒng)的最近最少使用(LRU)算法,將最近最少讀寫的DRAM頁幀遷移到PRAM存儲(chǔ)空間,由于未來該頁幀也不會(huì)頻繁進(jìn)行讀寫操作,因此,遷移后該頁幀的訪問行為不會(huì)大量增加PRAM的功耗.每個(gè)內(nèi)存域包含了兩個(gè)雙向LRU鏈表:活動(dòng)(act
作系統(tǒng)修改版32位Linux3.9.1寫操作閾值1000讀寫比例閾值5:2表3DRAM和PRAM特性[6]DRAMPRAM讀功率200mW80mW寫功率200mW500mW讀延時(shí)50ns50ns寫延時(shí)50ns150nsDRAM同質(zhì)內(nèi)存架構(gòu)、不包含選擇分配和動(dòng)態(tài)遷移內(nèi)存管理算法的PDRAM混合內(nèi)存架構(gòu)、只包含選擇分配內(nèi)存管理算法的PDRAM混合內(nèi)存架構(gòu)、包含選擇分配和動(dòng)態(tài)遷移內(nèi)存管理算法的PDRAM混合內(nèi)存架構(gòu)的歸一化內(nèi)存功耗如圖5所示.圖5歸一化功耗當(dāng)DRAM同質(zhì)內(nèi)存架構(gòu)位于低地址空間的大部分物理內(nèi)存被PRAM所取代時(shí),盡管PRAM的寫功耗高于DRAM的寫功耗,但是由于PRAM的讀功耗低于DRAM的讀功耗,而且在此區(qū)域依舊呈現(xiàn)讀操作次數(shù)多、寫操作次數(shù)少的內(nèi)存訪問模式,因此不包含選擇分配和動(dòng)態(tài)遷移內(nèi)存管理算法的PDRAM混合內(nèi)存架構(gòu)可以平均降低15%的內(nèi)存功耗.其中,Bitcount測試程序發(fā)生在PRAM存儲(chǔ)空間的讀操作次數(shù)(305萬次)很少,因而僅僅內(nèi)存功耗降低了0.2%.相反的,StringSearch發(fā)生在PRAM存儲(chǔ)空間的讀操作次數(shù)(4864萬次)很多、寫操作次數(shù)(10萬次)很少,因而內(nèi)存功耗降低了46.0%.只包含選擇分配內(nèi)存管理算法的PDRAM混合內(nèi)存架構(gòu),在不包含選擇分配和動(dòng)態(tài)遷移內(nèi)存管理算法的PDRAM混合內(nèi)存架構(gòu)的基礎(chǔ)上,大量增加了發(fā)生在PRAM存儲(chǔ)空間的讀操作次數(shù)(減少了發(fā)生在DRAM存儲(chǔ)空間的讀操作次數(shù)),因此比不包含選擇分配和動(dòng)態(tài)遷移內(nèi)存
本文編號:3494665
本文鏈接:http://sikaile.net/kejilunwen/jisuanjikexuelunwen/3494665.html
最近更新
教材專著