面向大數(shù)據(jù)應(yīng)用的混合內(nèi)存架構(gòu)特征分析_第1頁
面向大數(shù)據(jù)應(yīng)用的混合內(nèi)存架構(gòu)特征分析_第2頁
面向大數(shù)據(jù)應(yīng)用的混合內(nèi)存架構(gòu)特征分析_第3頁
面向大數(shù)據(jù)應(yīng)用的混合內(nèi)存架構(gòu)特征分析_第4頁
面向大數(shù)據(jù)應(yīng)用的混合內(nèi)存架構(gòu)特征分析_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

摘要:受限于DRAM的擴(kuò)展性,大數(shù)據(jù)分析及相關(guān)應(yīng)用性能難以有效提升。新型非易失性

存儲(chǔ)器憑借其非易失性、高存儲(chǔ)密度、低能耗等優(yōu)點(diǎn),為大數(shù)據(jù)應(yīng)用的性能與效率提升帶來

了契機(jī)。以新型非易失性存儲(chǔ)器為基礎(chǔ),闡述PCM/DRAM混合存儲(chǔ)架構(gòu),通過對(duì)該混合存

儲(chǔ)架構(gòu)在性能優(yōu)化、能耗優(yōu)化、內(nèi)存管理策略等方面的綜述分析,詳述了混合存儲(chǔ)架構(gòu)在大

數(shù)據(jù)應(yīng)用方面的優(yōu)勢(shì)及可行性,總結(jié)了現(xiàn)有研究工作的缺陷,展望了PCM/DRAM混合內(nèi)存

后續(xù)的研究方向。

關(guān)鍵詞:大數(shù)據(jù);非易失性存儲(chǔ)器;相變存儲(chǔ)器;性能優(yōu)化

1引言

隨著大數(shù)據(jù)的出現(xiàn)及大數(shù)據(jù)分析技術(shù)的發(fā)展,大數(shù)據(jù)應(yīng)用受到越來越廣泛的關(guān)注。大數(shù)據(jù)具

有數(shù)據(jù)量巨大、數(shù)據(jù)種類繁多、數(shù)據(jù)價(jià)值密度低以及處理數(shù)據(jù)時(shí)效性要求高等特點(diǎn)囚。大數(shù)

據(jù)應(yīng)用需要執(zhí)行大量計(jì)算工作,同時(shí)對(duì)大數(shù)據(jù)的處理與存儲(chǔ)也有著低時(shí)延、低開銷、高效率

等需求。現(xiàn)在無論是數(shù)據(jù)中心里的超級(jí)計(jì)算機(jī)還是個(gè)人計(jì)算機(jī)都利用以動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器

(dynamicrandomaccessmemory,DRAM)為核心構(gòu)成的內(nèi)存架構(gòu)來管理和存儲(chǔ)大數(shù)據(jù),

DRAM的可擴(kuò)展性受限會(huì)增加大數(shù)據(jù)分析的操作時(shí)間,從而降低吞吐量,無法高效地對(duì)大數(shù)

據(jù)進(jìn)行存儲(chǔ)和分析。雖然工業(yè)界和學(xué)術(shù)界一直都在軟件方面研究并嘗試解決這一系列的問

題,并在一定程度上緩解了現(xiàn)有存儲(chǔ)架構(gòu)的缺陷,但卻很難獲得本質(zhì)上的突破。

新型非易失性存儲(chǔ)器(non-volatilememory.NVM)的出現(xiàn),給傳統(tǒng)的以DRAM為主體構(gòu)成

的內(nèi)存系統(tǒng)帶來了挑戰(zhàn),也為優(yōu)化大數(shù)據(jù)應(yīng)用提供了契機(jī)。其中,相變寄存器(phasechange

memory,PCM)被認(rèn)為是目前有可能取代DRAM作為內(nèi)存構(gòu)成的選擇之一。與DRAM相比,

PCM具有非易失性、高存儲(chǔ)密度和良好擴(kuò)展性等合乎大數(shù)據(jù)存儲(chǔ)技術(shù)需求的特征。但是,

非易失性存儲(chǔ)器還存在以下問題。

?PCM讀寫不對(duì)稱。在性能方面,寫時(shí)延相對(duì)DRAM較長(zhǎng),會(huì)導(dǎo)致訪問內(nèi)存的時(shí)間延長(zhǎng),

降低系統(tǒng)的性能;在能耗方面,對(duì)PCM進(jìn)行寫操作比讀操作的能耗要高,會(huì)導(dǎo)致更多的能

源消耗。

?PCM的耐寫度有限。數(shù)據(jù)在PCM內(nèi)存架構(gòu)上的寫操作分布不均勻會(huì)縮短PCM的壽命,

也會(huì)對(duì)存儲(chǔ)在PCM上的數(shù)據(jù)的安全性造成影響。

由此可見,如果用PCM完全取代DRAM作為構(gòu)成計(jì)算系統(tǒng)的內(nèi)存,會(huì)對(duì)計(jì)算系統(tǒng)的壽命、

性能、能耗和安全性等造成一定的影響。因此,必須有效解決上述問題,才能發(fā)揮PCM在

優(yōu)化大數(shù)據(jù)應(yīng)用方面的效用,而采用基于PCM和DRAM的混合內(nèi)存架構(gòu)是當(dāng)前的主要方

式。

本文從分析大數(shù)據(jù)應(yīng)用和NVM的特征入手,旨在分析PCM/DRAM混合存儲(chǔ)架構(gòu)在優(yōu)化大

數(shù)據(jù)應(yīng)用方面的可行性及優(yōu)化方向。通過研究比較DRAM與PCM不同的組成方案和管理策

略,從混合存儲(chǔ)架構(gòu)的性能優(yōu)化和能耗優(yōu)化兩方面分析主要的優(yōu)化算法和相關(guān)的故障處理,

并討論未來的優(yōu)化方向,以達(dá)到最大限度地利用DRAM和PCM優(yōu)勢(shì)的目的,為全面利用

PCM/DRAM混合內(nèi)存架構(gòu)開展大數(shù)據(jù)應(yīng)用調(diào)度優(yōu)化提供基礎(chǔ)。

2大數(shù)據(jù)應(yīng)用及NVM的特征

2.1典型應(yīng)用場(chǎng)景下大數(shù)據(jù)應(yīng)用特征

隨著大數(shù)據(jù)概念的出現(xiàn),學(xué)術(shù)界和工業(yè)界都利用大數(shù)據(jù)分析技術(shù)的優(yōu)勢(shì)開展應(yīng)用,以提升服

務(wù)或應(yīng)用效率,現(xiàn)今大數(shù)據(jù)典型應(yīng)用場(chǎng)景有:企業(yè)內(nèi)部大數(shù)據(jù)應(yīng)用、物聯(lián)網(wǎng)大數(shù)據(jù)應(yīng)用、面

向在線社交網(wǎng)絡(luò)大數(shù)據(jù)的應(yīng)用、醫(yī)療健康大數(shù)據(jù)應(yīng)用、群智感知和智能發(fā)電等[2]。這些應(yīng)用

體現(xiàn)了大數(shù)據(jù)的數(shù)字化、全球化、超海量、實(shí)時(shí)性、價(jià)值密度低等特點(diǎn)[3,4]。大數(shù)據(jù)的應(yīng)用

特征表現(xiàn)在以下兩個(gè)方面。

(1)數(shù)據(jù)處理時(shí)效性要求高,處理速度問題突出

許多嵌入式的系統(tǒng)都會(huì)產(chǎn)生大量的物理數(shù)據(jù),需要?jiǎng)討B(tài)地處理分析這些數(shù)據(jù)。企業(yè)大數(shù)據(jù)應(yīng)

用也需要實(shí)時(shí)地對(duì)數(shù)據(jù)的變化做出應(yīng)對(duì)和決策。數(shù)據(jù)處理的響應(yīng)時(shí)間也從批處理響應(yīng)時(shí)間逐

漸轉(zhuǎn)變?yōu)閷?shí)時(shí)的流數(shù)據(jù)處理響應(yīng)時(shí)間[5]。根據(jù)國(guó)際數(shù)據(jù)公司(InternationalDataCorporation)

發(fā)布的名為《大數(shù)據(jù),更大的數(shù)字身影,最大增長(zhǎng)在遠(yuǎn)東》的研究報(bào)告,預(yù)計(jì)到2020年,

數(shù)字宇宙規(guī)模將達(dá)到40ZB[6]O這些均表明大數(shù)據(jù)時(shí)代對(duì)數(shù)據(jù)處理效率有著迫切的需求。

(2)數(shù)據(jù)精確性要求高

數(shù)據(jù)來源的多元化降低了數(shù)據(jù)的可靠度和質(zhì)量,但是面向大數(shù)據(jù)的計(jì)算系統(tǒng)需要追求高并

發(fā)、高性能讀寫訪問、低功耗等特性,其精確需求難以很好地滿足。

2.2大數(shù)據(jù)應(yīng)用在傳統(tǒng)存儲(chǔ)架構(gòu)下的瓶頸

大數(shù)據(jù)應(yīng)用的特征使大數(shù)據(jù)處理存在很多困難,在傳統(tǒng)存儲(chǔ)架構(gòu)下,計(jì)算機(jī)內(nèi)存容量有限、

輸入/輸出壓力大等缺陷使大數(shù)據(jù)處理效率低、能耗高。大數(shù)據(jù)應(yīng)用面臨操作(分析、查詢

等)時(shí)延長(zhǎng)、能源消耗大和存儲(chǔ)容量有限這3個(gè)瓶頸。

(1)操作時(shí)延長(zhǎng)

在傳統(tǒng)的馮諾伊曼結(jié)構(gòu)中,CPU的處理速率遠(yuǎn)快于內(nèi)存的處理速率,當(dāng)CPU需要在大量的

資源或數(shù)據(jù)上執(zhí)行一些簡(jiǎn)單的指令時(shí),由于I/O流量與CPU的工作效率相差太大,計(jì)算機(jī)

運(yùn)行的整體效率受到嚴(yán)重的限制。現(xiàn)實(shí)中,處理器和內(nèi)存的性能一直在提升但卻具有不同的

提升速率,兩者之間的帶寬差距也在增加。大數(shù)據(jù)繼承了互聯(lián)網(wǎng)的數(shù)字化表示,傳統(tǒng)的內(nèi)存

器件DRAM用電容的充放電來表示“0”和“V,為了防止電容因漏電而導(dǎo)致信息丟失,需

要周期性地刷新DRAM以保存DRAM中的數(shù)據(jù),這就帶來了計(jì)算系統(tǒng)的額外時(shí)間開銷,導(dǎo)

致大數(shù)據(jù)的實(shí)時(shí)性需求得不到滿足。

(2)能源消耗大

能源消耗是現(xiàn)代計(jì)算系統(tǒng)設(shè)計(jì)的一個(gè)重要考慮因素。近年來,能源管理的研究大多集中在中

央處理器的動(dòng)態(tài)管理上,研究人認(rèn)為它是能源消耗的最主要因素。然而,最近的研究表明,

在現(xiàn)代計(jì)算系統(tǒng)中,內(nèi)存已經(jīng)成為最顯著的能源消耗部件,占據(jù)能源總消耗的30%~50%[7-

ll]o

DRAM內(nèi)存被組織為一個(gè)包含行和列的網(wǎng)格,每一位數(shù)據(jù)都以小電容充電的形式存儲(chǔ)在這

個(gè)網(wǎng)格中。漏電和頻繁的訪問會(huì)導(dǎo)致電荷耗盡,DRAM需要一個(gè)持續(xù)的刷新操作來維持它的

數(shù)據(jù),因此,進(jìn)行刷新操作的電源就會(huì)導(dǎo)致持續(xù)的能源消耗。同時(shí)DRAM設(shè)置行和列給物

理地址訪問時(shí)要消耗能源。當(dāng)其他行需要訪問時(shí),DRAM關(guān)閉一行也需要額外的能源開銷。

此外,在進(jìn)行實(shí)際的讀寫操作時(shí),因?yàn)槁╇姾椭芷谛缘墓?yīng),持續(xù)的備用電源都會(huì)造成能源

的損耗。

雖然關(guān)鍵的大數(shù)據(jù)技術(shù)仍處在初步階段[2],但是學(xué)術(shù)界和工業(yè)界對(duì)大數(shù)據(jù)的應(yīng)用已經(jīng)越來

越廣泛,這些應(yīng)用更多地轉(zhuǎn)移到包含大量信息和通信技術(shù)的大數(shù)據(jù)中心,呈現(xiàn)大數(shù)據(jù)中心化

的特征。目前大數(shù)據(jù)中心包括數(shù)以萬計(jì)的服務(wù)器,其能源消耗量甚至可以超過一座小型城鎮(zhèn)

的能源消耗量[12]。與此同時(shí),這些服務(wù)器在曰常工作中約有30%的時(shí)間是不承擔(dān)任何任務(wù)

的,閑置的服務(wù)器只消耗能源,不產(chǎn)生價(jià)值,大數(shù)據(jù)中心的能源利用率普遍只有5%~10%[12]0

(3)存儲(chǔ)容量有限

當(dāng)前需要存儲(chǔ)和處理的大數(shù)據(jù)達(dá)到了PB量級(jí),因此存儲(chǔ)器的存儲(chǔ)容量和存儲(chǔ)密度也是一個(gè)

亟須解決的問題。由于磁盤的I/。速度比計(jì)算系統(tǒng)其他部分慢5個(gè)數(shù)量級(jí)[13],如果擴(kuò)大磁

盤容量,尋址時(shí)間會(huì)隨磁盤容量的擴(kuò)大而增加,進(jìn)而增加操作的時(shí)延,從而降低I/O的吞吐

量。由于DRAM存儲(chǔ)密度較小、價(jià)格較高,如果擴(kuò)大DRAM內(nèi)存容量,則會(huì)導(dǎo)致能源消耗

進(jìn)一步加劇,并顯著增加計(jì)算系統(tǒng)的成本。

學(xué)術(shù)界與工業(yè)界都嘗試在軟件方面對(duì)現(xiàn)有的存儲(chǔ)機(jī)構(gòu)進(jìn)行改進(jìn),解決大數(shù)據(jù)存儲(chǔ)的問題,其

中包括以Hadoop分布式文件系統(tǒng)(Hadoopdistributedfilesystem,HDFS)[14]和以非關(guān)系

型數(shù)據(jù)庫(kù)(notonlySQL,NoSQL)為代表的大規(guī)模分布式數(shù)據(jù)庫(kù)系統(tǒng)設(shè)計(jì)、基于以DRAM為

核心的內(nèi)存數(shù)據(jù)庫(kù)技術(shù)等。然而,這些軟件或軟硬件結(jié)合的方案都是從傳統(tǒng)的DRAM內(nèi)存

架構(gòu)考慮的,沒有實(shí)質(zhì)上的突破。在大數(shù)據(jù)應(yīng)用的環(huán)境下,內(nèi)存與外存之間的處理速率仍然

相差很大,需要從硬件的角度考慮才能更好地滿足大數(shù)據(jù)應(yīng)用的需求。

2.3新型非易失性存儲(chǔ)器

由前文可知,以DRAM為核心構(gòu)成內(nèi)存的傳統(tǒng)架構(gòu)已經(jīng)不能滿足大數(shù)據(jù)的應(yīng)用需求。隨著

新型的非易失性存儲(chǔ)器阻變式存儲(chǔ)器(resistiverandomaccessmemory,RRAM)、鐵電存儲(chǔ)

器(ferroelectricrandomaccessmemory,FRAM)、磁阻內(nèi)存(magneticrandomaccess

memory,MRAM)、相變存儲(chǔ)器(phasechangememory,PCM)以及閃存(flashmemory)

走出實(shí)驗(yàn)室,NVM成本降低并實(shí)現(xiàn)了產(chǎn)品化,為研究適合高效率、低能耗的大數(shù)據(jù)存儲(chǔ)和

管理的新型存儲(chǔ)架構(gòu)帶來了新的機(jī)遇。

閃存技術(shù)的快速發(fā)展給數(shù)據(jù)管理研究帶來了巨大沖擊,但是受按頁存取的方式和存取性能等

因素限制,閃存較適合作為二級(jí)存儲(chǔ)器[15]。基于閃存的數(shù)據(jù)存儲(chǔ)與管理技術(shù)只是優(yōu)化了磁

盤級(jí)別的I/O時(shí)延口6],對(duì)傳統(tǒng)存儲(chǔ)架構(gòu)的變革沒有太大的影響。

其他新型的非易失性存儲(chǔ)器還存在以下缺點(diǎn)。

?MRAM工作原理依賴磁性,磁性材料在200。(3左右的溫度環(huán)境下會(huì)喪失磁性,而在制造

和集成工藝的過程中,溫度通常會(huì)達(dá)到400℃;并且MRAM品質(zhì)不容易控制,如果磁性薄

膜系統(tǒng)沒有良好的均勻性,會(huì)導(dǎo)致寫入或讀取發(fā)生錯(cuò)誤。

?FeRAM隨工藝縮小的能力比較差,存儲(chǔ)密度不夠高,在高密度非揮發(fā)型存儲(chǔ)器領(lǐng)域尚且

不能和閃存競(jìng)爭(zhēng)口7]。

?雖然RRAM具有可縮小性好、操作電流低、讀寫速度快、阻態(tài)保持特性好等特點(diǎn)[18],

但其仍處于開發(fā)的初級(jí)階段,其開關(guān)阻變機(jī)理不夠清晰。

目前研究較成熟的PCM被認(rèn)為是最有可能取代DRAM的非易失性存儲(chǔ)器。PCM以硫系化

合物GST材料為存儲(chǔ)介質(zhì),利用納米尺寸的相變材料在晶態(tài)(材料成低阻狀態(tài))與非晶態(tài)

(高阻狀態(tài))時(shí)呈現(xiàn)出的阻值差異實(shí)現(xiàn)數(shù)據(jù)存儲(chǔ)[19],通過給上下級(jí)加一定的電壓,使相變

材料在晶態(tài)和非晶態(tài)之間轉(zhuǎn)變。高阻下非晶態(tài)表示二進(jìn)制“0”,低阻下晶態(tài)表示二進(jìn)制“V,

從而能夠?qū)憽?"或'To綜合而言,PCM具有如下特征[15,20]。

(1)高存儲(chǔ)密度

NORflash和NANDflash結(jié)構(gòu)中,門電路厚度固定,需要高于10V的電源供電,導(dǎo)致其存

儲(chǔ)器體積很難縮小,而CMOS邏輯門只要IV或者更少電源即可。根據(jù)摩爾定律,存儲(chǔ)器

縮小一代,密集程度將提高一倍[21]。PCM可以將不同的電阻區(qū)組合在一個(gè)存儲(chǔ)單元內(nèi),存

儲(chǔ)一個(gè)或以上的字節(jié)。其存儲(chǔ)單元小,相變材料體積小,具有很強(qiáng)的縮放性,從而存儲(chǔ)密度

提升,內(nèi)存容量擴(kuò)大。

(2)非易失性

PCM利用相變材料(如硫系化合物合金材料Ge2sb2Te5)的電阻值來保存數(shù)據(jù),不需要像

DRAM一樣通過電容的充放電來表示數(shù)據(jù),也不需要通過周期性的刷新操作來維持存儲(chǔ)單

元內(nèi)的數(shù)據(jù)。掉電后數(shù)據(jù)存儲(chǔ)期限可達(dá)10年之久。

(3)按位尋址

PCM具有按位存儲(chǔ)的特性,其單元值可直接由“0"變?yōu)?1"或由"T變?yōu)椤?”,不需要

單獨(dú)的擦除操作,可以降低能耗,節(jié)省時(shí)間。這與傳統(tǒng)的DRAM按字節(jié)尋址略有不同,只

需更改少許內(nèi)存管理策略。

(4)低能耗

PCM芯片是由相變材料構(gòu)成的,漏電能耗極少,幾乎可以忽略不計(jì),也不需要DRAM周期

性地刷新電流。PCM最大的特點(diǎn)是,在大數(shù)據(jù)應(yīng)用的環(huán)境中,相對(duì)于DRAM,能節(jié)約海量

的能源消耗。

2.4PCM的缺陷及大數(shù)據(jù)應(yīng)用的需求

雖然PCM是最理想的內(nèi)存選擇之一,但是PCM在讀操作和耐寫度兩方面存在明顯缺陷。

一是讀寫不對(duì)稱。PCM讀取時(shí)延約為200~300ns,具有與DRAM相近的讀取帶寬。但是

PCM的寫速度較慢,是DRAM的1/10[22],雖然PCM的寫速度比閃存快,但在大數(shù)據(jù)應(yīng)用

要求低延時(shí)的背景下需要考慮如何減少PCM上的寫操作以提升系統(tǒng)性能。二是耐寫度有限。

過多的寫操作(106~108次)會(huì)導(dǎo)致PCM器件單元失效。這意味著,在最理想的情況下,

一塊16GB的PCM芯片的壽命為10年左右[22],但由于寫操作的速率不同或者寫操作的分

布不均勻,PCM芯片的壽命會(huì)進(jìn)一步地縮短。

鑒于此,在大數(shù)據(jù)應(yīng)用環(huán)境下,還需要對(duì)PCM進(jìn)行以下兩方面的提升及優(yōu)化,以更好地滿

足大數(shù)據(jù)應(yīng)用的需求。

(1)減少PCM上的寫操作

在實(shí)際應(yīng)用中,從系統(tǒng)的性能考慮,對(duì)內(nèi)存的讀寫速度有迫切的需求。然而PCM存在讀寫

性能不對(duì)稱的問題,寫請(qǐng)求會(huì)導(dǎo)致讀時(shí)延延長(zhǎng)2.3倍[23]。

當(dāng)有許多寫操作發(fā)生時(shí),一個(gè)較高的寫時(shí)延能夠通過緩沖區(qū)和智能調(diào)度來解決。但是,當(dāng)一

個(gè)寫請(qǐng)求被調(diào)度到一個(gè)PCM塊上時(shí),如果這個(gè)塊在寫操作完成之前發(fā)出讀請(qǐng)求,那么這個(gè)

讀請(qǐng)求就需要等待,因此,寫請(qǐng)求會(huì)引起讀請(qǐng)求時(shí)延的延長(zhǎng)。和寫訪問請(qǐng)求不同的是,讀訪

問請(qǐng)求是系統(tǒng)時(shí)延的關(guān)鍵,讀操作的延緩會(huì)對(duì)系統(tǒng)的性能造成顯著的影響。參考文獻(xiàn)[23]中

的基準(zhǔn)系統(tǒng)的讀時(shí)延為2290個(gè)周期,是讀寫競(jìng)爭(zhēng)較少的系統(tǒng)(1000個(gè)周期)的3倍。如

果寫時(shí)延縮減到1000個(gè)周期,則讀時(shí)延會(huì)縮減到1159個(gè)周期,這表明競(jìng)爭(zhēng)主要是由寫請(qǐng)

求引起的,并且是導(dǎo)致讀操作效率降低的主要因素[23]。所以,減少發(fā)生在PCM上的寫操作

可以減少操作時(shí)延,提升系統(tǒng)性能。

(2)降低PCM的寫能耗

PCM不僅存在讀寫性能不對(duì)稱的問題,還存在讀寫能耗不對(duì)稱的問題。PCM使用的相變材

料通過熱量的應(yīng)用來轉(zhuǎn)換存儲(chǔ)單元內(nèi)"0”和"V的狀態(tài)。例如相變材料Ge2sb2Te5(GST),

當(dāng)其溫度超過其結(jié)晶溫度(300七左右)但在其熔化溫度(60(TC左右)之下時(shí),就會(huì)進(jìn)入

結(jié)晶狀態(tài)來表示邏輯上的“V;當(dāng)熱度超過熔化溫度,GST就會(huì)進(jìn)入非結(jié)晶狀態(tài)來表示邏輯

“0"(亦即reset狀態(tài))[24]。因此當(dāng)對(duì)一?1-PCM存儲(chǔ)單元進(jìn)行寫操作(set和reset操作)

時(shí),在位線①上需要不同的電流和電壓,并且需要不同的完成時(shí)間。reset操作需要最高水

平的電壓在短時(shí)間內(nèi)熔融相變材料,使PCM單元變成非結(jié)晶的狀態(tài)。set操作通過長(zhǎng)時(shí)間的

低電壓使存儲(chǔ)單元結(jié)晶化。因此對(duì)PCM的讀寫操作所需要的能耗存在較大的差異,讀操作

的能耗與DRAM相近,寫操作的能耗卻比DRAM大[15]。

由于在PCM上進(jìn)行寫操作會(huì)消耗大量的能源,如果不降低PCM寫能耗,在一定的寫次數(shù)

之后,PCM內(nèi)的存儲(chǔ)單元就會(huì)被損壞,從而引發(fā)如下兩個(gè)方面的問題。

?影響PCM的壽命。應(yīng)用通常會(huì)有對(duì)內(nèi)存系統(tǒng)進(jìn)行分布不均勻的寫操作,這會(huì)導(dǎo)致系統(tǒng)的

壽命急劇下降,比在理想狀態(tài)下完全均勻地分布在PCM上的寫操作的系統(tǒng)壽命縮短1/20左

右。在大數(shù)據(jù)應(yīng)用和分析的全球化特征下,計(jì)算系統(tǒng)要承受更多的或者分布更不均勻的寫操

作,如果不對(duì)這些寫操作進(jìn)行處理和恰當(dāng)?shù)牟渴穑敲从?jì)算系統(tǒng)就會(huì)過早地?fù)p毀,造成不可

估量的成本開銷。

?影響PCM安全性。PCM某些單元損壞后可能會(huì)使原本存儲(chǔ)在這些單元的數(shù)據(jù)丟失。一

個(gè)惡意的攻擊程序可以使PCM內(nèi)存在其指定的某一行或小范圍內(nèi)的某些行進(jìn)行反復(fù)寫操作,

致使PCM的存儲(chǔ)單元在一分鐘內(nèi)出現(xiàn)故障甚至損壞[25,26]。此外,如果操作系統(tǒng)被攻擊者

攻破,那么虛擬地址到物理地址的映射就會(huì)很容易被識(shí)破,攻擊者就可以做一個(gè)簡(jiǎn)單的程序,

通過將大量數(shù)據(jù)寫到精心挑選的緩存行,使緩存不斷刷新其數(shù)據(jù)。

運(yùn)用合理的策略優(yōu)化PCM的缺陷所帶來的問題,成為當(dāng)前研究的熱點(diǎn)之一。

3PCM/DRAM混合存儲(chǔ)架構(gòu)及優(yōu)化策略

3.1PCM/DRAM混合存儲(chǔ)架構(gòu)的優(yōu)勢(shì)

PCM存在高存儲(chǔ)密度、非易失性、低能耗等優(yōu)點(diǎn),而DRAM具有讀寫操作速度快的優(yōu)勢(shì),

兩者結(jié)合,則可能既規(guī)避PCM讀寫不對(duì)稱等劣勢(shì),又彌補(bǔ)DRAM低存儲(chǔ)容量、易丟失的缺

陷,從而出現(xiàn)了PCM/DRAM混合存儲(chǔ)架構(gòu)。

PCM/DRAM混合存儲(chǔ)架構(gòu)就是用PCM芯片和DRAM芯片共同構(gòu)成內(nèi)存系統(tǒng),以往對(duì)該架

構(gòu)的研究主要分成PCM/DRAM同級(jí)混合存儲(chǔ)系統(tǒng)和DRAM作為PCM緩存的內(nèi)存系統(tǒng)。本

節(jié)主要討論P(yáng)CM/DRAM混合存儲(chǔ)架構(gòu)在性能和能耗方面與傳統(tǒng)DRAM內(nèi)存系統(tǒng)相比存在

的優(yōu)勢(shì)。

(1)性能

大數(shù)據(jù)應(yīng)用在傳統(tǒng)的DRAM內(nèi)存架構(gòu)下運(yùn)行,由于DRAM通過充放電來表示數(shù)據(jù)的特性,

所以應(yīng)用需要等待多個(gè)周期才能存取數(shù)據(jù)進(jìn)行讀寫操作。而在PCM/DRAM混合存儲(chǔ)架構(gòu)中,

影響系統(tǒng)性能的主要因素是發(fā)生在PCM上的寫操作所帶來的時(shí)延以及內(nèi)存發(fā)生缺頁錯(cuò)誤時(shí)

需要等待的周期時(shí)長(zhǎng)。IBM公司的研究提出了基于PCM和DRAM的混合存儲(chǔ)架構(gòu)[22],使

用PCM能最大限度地?cái)U(kuò)充內(nèi)存的容量,將快速的DRAM放在PCM內(nèi)存和處理器之間,作

為內(nèi)存中的緩存區(qū),提升系統(tǒng)性能。通過用更大的PCM內(nèi)存和3%PCM內(nèi)存塊大小的DRAM

構(gòu)成混合存儲(chǔ)架構(gòu)來打破DRAM和PCM在時(shí)延方面的差距。研究中還提出了延遲寫管理

(lazywriteorganization)作為混合內(nèi)存架構(gòu)的管理機(jī)制,通過減少對(duì)PCM的寫操作來克服

PCM寫速度較慢的缺點(diǎn)。同時(shí)還采取了行級(jí)回寫(line-levelwriteback)s細(xì)粒度磨損均衡

(fine-grainedwearleveling)s頁級(jí)分流(pagelevelbypass)等機(jī)制區(qū)分?jǐn)?shù)據(jù)塊的訪問頻繁

性,減少PCM中的寫操作。實(shí)驗(yàn)結(jié)果表明這些策略能顯著減少缺頁錯(cuò)誤的發(fā)生,系統(tǒng)性能

與傳統(tǒng)存儲(chǔ)架構(gòu)相比提速3倍。

(2)能耗

能耗是計(jì)算系統(tǒng)在處理大數(shù)據(jù)應(yīng)用時(shí)主要考慮的因素之一。DRAM內(nèi)存系統(tǒng)的漏電效應(yīng)導(dǎo)

致處理大數(shù)據(jù)時(shí)會(huì)引起很高的能耗,如何平衡能源效率和系統(tǒng)性能是目前PCM/DRAM混合

存儲(chǔ)系統(tǒng)的熱門研究方向。在計(jì)算系統(tǒng)中,圖形處理器(graphicsprocessingunit,GPU)用

于在通用內(nèi)存中處理大規(guī)模的并行計(jì)算,這些并行計(jì)算會(huì)引起很多寫操作,由于PCM的讀

寫不對(duì)稱,寫操作會(huì)引起更多的能耗(354%)[27],WangB利用PCM/DRAM混合存儲(chǔ)架

構(gòu),通過硬件和編譯器優(yōu)化GPU大規(guī)模并行計(jì)算環(huán)境下的能源效率。該方案通過調(diào)整硬件

的構(gòu)成和編譯器的功能,利用一個(gè)基于并行處理的數(shù)據(jù)遷移框架完成數(shù)據(jù)遷移,并利用編譯

器抉擇數(shù)據(jù)遷移和數(shù)據(jù)部署的計(jì)劃,避免引起額外的讀寫操作,消耗大量能源。最終與只有

DRAM構(gòu)成和只有PCM構(gòu)成的并行計(jì)算內(nèi)存系統(tǒng)相比,在系統(tǒng)性能損失不到2%的情況下,

能源效率分別提升了6%和49%[27]。

3.2混合存儲(chǔ)架構(gòu)的優(yōu)化策略

基于以上論證,PCM/DRAM混合存儲(chǔ)架構(gòu)在能耗和性能方面能對(duì)大數(shù)據(jù)應(yīng)用進(jìn)行優(yōu)化,但

是PCM讀寫不對(duì)稱和耐久度有限的缺陷會(huì)使混合存儲(chǔ)架構(gòu)在大數(shù)據(jù)應(yīng)用時(shí)出現(xiàn)時(shí)延高、壽

命短等問題,下文將針對(duì)能耗和性能這兩方面討論優(yōu)化策略和算法。

3.2.1減少PCM上的寫操作

由于PCM的讀寫性能和能耗不對(duì)稱,過多的PCM寫操作會(huì)引起額外的系統(tǒng)的內(nèi)存訪問開

銷和能源開銷,減少部署在PCM上的寫操作不僅可以延長(zhǎng)PCM的壽命,也可以提升PCM

內(nèi)存系統(tǒng)在應(yīng)用環(huán)境下的性能,減少應(yīng)用中的能耗開銷,達(dá)到更好的能耗優(yōu)化效果。目前,

減少PCM上的寫操作主要分為兩個(gè)方面:冷熱數(shù)據(jù)劃分和讀寫傾向劃分口5]。

(1)冷熱數(shù)據(jù)劃分

根據(jù)數(shù)據(jù)被訪問的頻率和讀寫操作的次數(shù)可以將數(shù)據(jù)劃分為冷數(shù)據(jù)和熱數(shù)據(jù),將冷數(shù)據(jù)存放

在PCM±,將熱數(shù)據(jù)存放在DRAM±,就可以將寫操作次數(shù)更多、訪問更頻繁的數(shù)據(jù)從

PCM遷移至ijDRAM上,同時(shí)也就將寫操作遷移到DRAM上,減少PCM上的寫操作。

為了提升PCM系統(tǒng)性能,延長(zhǎng)PCM系統(tǒng)的壽命,LeeS等人[28]提出了基于臟數(shù)據(jù)位和寫

頻繁度的時(shí)鐘算法(CLOCKw讓hdirtybitsandwritefrequency,CLOCKDWF)o算法利用PCM

和DRAM同級(jí)混合存儲(chǔ)架構(gòu),將讀請(qǐng)求和干凈頁面(cleanpage)部署在PCM±,將寫請(qǐng)

求和臟頁面部署在DRAM上。當(dāng)一個(gè)寫操作發(fā)生在PCM時(shí),這個(gè)頁面就會(huì)被標(biāo)記為臟頁面,

CLOCK-DWF算法就將這個(gè)頁面從PCM遷移到DRAM上。如果此時(shí)DRAM為滿,那么就會(huì)

選中一個(gè)頁面遷移到PCM上。算法通過統(tǒng)計(jì)頁面的寫頻繁度區(qū)分頁面是熱還是冷,并通過

臟數(shù)據(jù)位統(tǒng)計(jì)頁面的寫頻繁度。如果一個(gè)候選頁面的臟數(shù)據(jù)位為"1",那么算法就會(huì)將這個(gè)

頁面標(biāo)記為干凈頁面但在寫頻繁度上加1,如果候選頁面的臟數(shù)據(jù)位為“0”,那么算法就會(huì)

檢查這個(gè)頁面是熱還是冷,如果為冷就遷移到PCM上。實(shí)驗(yàn)結(jié)果表明,與DRAM作為PCM

緩存的混合存儲(chǔ)架構(gòu)相比,算法平均能減少35.4%的寫操作,與傳統(tǒng)的CLOCK算法相比,平

均減少14%的寫操作。

為了避免冷熱數(shù)據(jù)劃分帶來的遷移導(dǎo)致過多的寫操作,LeeM等人[29]提出了遷移優(yōu)化的頁

面替換時(shí)鐘(migrationoptimizedCLOCK,M-CLOCK)算法。為了有效地區(qū)分DRAM上寫

頻繁頁面和讀頻繁頁面,M-CLOCK算法利用了兩個(gè)時(shí)鐘指針:D指針和C指針。D指針負(fù)

責(zé)管理熱臟頁面,C指針負(fù)責(zé)管理短期內(nèi)不具有寫傾向的頁面。當(dāng)一個(gè)候選頁面被寫操作重

新訪問時(shí),M-CLOCK算法就會(huì)通過寫傾向位和臟數(shù)據(jù)位確定這個(gè)頁面是否為熱臟頁面。當(dāng)

DRAM為滿,D指針就會(huì)在臟熱頁面里選擇一個(gè)具有最低寫頻繁度的頁面,如果頁面寫傾向

位為"1",那么這個(gè)頁面就會(huì)被選為候選頁面,否則就將頁面寫傾向位設(shè)置為"0",然后指

向下一個(gè)頁面。如果D指針找不到最低寫頻繁度的頁面(寫傾向位為"0"),那么就會(huì)由C

指針在干凈頁面內(nèi)選擇候選頁面。M-CLQCK通過這樣的遷移方法,將DRAM中的讀冷頁面

遷移到PCM上,與過往的算法相比,能減少最多98%的寫操作,最高提升34%的系統(tǒng)訪問

時(shí)間。

為了在盡量小的性能代價(jià)下,優(yōu)化混合存儲(chǔ)系統(tǒng)在應(yīng)用環(huán)境下的能耗,避免不必要的DRAM

到PCM頁面遷移所引起的寫操作,ShinDJ等人[30]提出了自適應(yīng)的頁面組管理(adaptive

pagegrouping,APG)。算法認(rèn)為物理距離相近的頁面具有相似的訪問請(qǐng)求次數(shù),于是根據(jù)

頁面的物理距離,統(tǒng)計(jì)頁表中各個(gè)頁面中讀寫請(qǐng)求的次數(shù),從而決定訪問熱度,將訪問熱度

相近的頁面聚類在一個(gè)分組,如果組的平均熱度超過熱度閾值,則將組設(shè)定為熱組;如果低

于冷度閾值,就設(shè)定為冷組;熱度閾值和冷度閾值之間的頁面為暖組(warmgroup)。算法

將熱組部署在DRAM上,冷組部署在PCM上,暖組不發(fā)生遷移操作。實(shí)驗(yàn)結(jié)果表明,算法

能有效地減少PCM寫操作,且與DRAM系統(tǒng)相比,減少36%的能源消耗,與低時(shí)延的PRAM

相比,內(nèi)存訪問效率增加了80%。

CLOCK-DWF算法通過數(shù)據(jù)被訪問的頻繁度與寫訪問請(qǐng)求的歷史記錄,準(zhǔn)確地估計(jì)數(shù)據(jù)未來

的冷熱度,并利用DRAM吸收更多的寫操作,但當(dāng)寫請(qǐng)求訪問PCM上的一個(gè)頁面時(shí),就會(huì)

將這個(gè)頁面遷移到DRAM上,如果此時(shí)DRAM已滿,則需從DRAM里面選取冷頁面與PCM

交換,如果后面這個(gè)頁面被寫請(qǐng)求訪問,那么又要將頁面換回到DRAM,引起大量的額外讀

寫操作。而且當(dāng)發(fā)生缺頁錯(cuò)誤時(shí),CLOCK-DWF將大部分的錯(cuò)誤頁面部署到了PCM上,這

也會(huì)引起額外的PCM的寫操作。

M-CLOCK算法根據(jù)數(shù)據(jù)的訪問熱度和是否為臟數(shù)據(jù)來決定數(shù)據(jù)是否需要遷移,還利用了一

個(gè)懶惰遷移(lazymigration)來延緩PCM到DRAM的頁面遷移,解決CLOCK-DWF的遷移

顛簸問題。

APG算法通過將熱度相近的頁面聚類在一起,并設(shè)置閾值,將頁面組劃分為冷熱組,但APG

不能區(qū)分空間相鄰的頁面的訪問頻繁度,可能會(huì)造成冷頁面的遷移,導(dǎo)致額外的內(nèi)存訪問時(shí)

延。

(2)讀寫傾向劃分

讀寫傾向的劃分主要是根據(jù)數(shù)據(jù)的寫操作次數(shù)將數(shù)據(jù)劃分為具有讀傾向還是具有寫傾向,將

具有讀傾向的數(shù)據(jù)存放在PCM上,將具有寫傾向的數(shù)據(jù)存放在DRAM上,可以減少部署在

PCM上引起寫操作的數(shù)據(jù),達(dá)到減少PCM上寫操作的目的。

以往的研究發(fā)現(xiàn),大多數(shù)高速緩存中的未命中是由于被訪問的數(shù)據(jù)塊同時(shí)被重疊地映射到相

同的緩存組,而在DRAM作為PCM的緩存的混合存儲(chǔ)架構(gòu)中,緩存的未命中會(huì)導(dǎo)致數(shù)據(jù)寫

回到PCM上。基于此,KhouzaniHA等人[31]提出了基于沖突的頁面分配算法(conflict-aware

proactivepageallocationalgorithm),利用虛擬頁面映射到物理頁的靈活性,根據(jù)頁面分段

信息和DRAM中的未命中,通過設(shè)置不同的DRAM組,重新分布DRAM中有很高寫傾向的

頁面。該算法由兩個(gè)部分組成。首先,內(nèi)存控制器(MC)負(fù)責(zé)記錄DRAM上未命中的頁面

沖突。其次,當(dāng)內(nèi)存發(fā)生頁面錯(cuò)誤時(shí),操作系統(tǒng)負(fù)責(zé)比較DRAM中的內(nèi)存塊并選出具有更

少頁面沖突的內(nèi)存塊。這個(gè)部分能決定硬件的構(gòu)成并展示在硬件成本和算法復(fù)雜度方面如何

最大限度地發(fā)揮算法的效率。當(dāng)一個(gè)訪問請(qǐng)求在DRAM上未能命中,而在PCM上命中了,

這意味著,DRAM的大小或者相關(guān)性提高,就可以避免這次未命中并將其記作一個(gè)未命中的

沖突。該算法為了記錄DRAM內(nèi)存塊上的這些不同數(shù)量的未命中的沖突,在每個(gè)內(nèi)存塊上

設(shè)置了一個(gè)基于硬件的計(jì)數(shù)器。由于這些沖突數(shù)量可能會(huì)非常大,基于存儲(chǔ)開銷和訪問時(shí)間

的考慮,該算法只在DRAM內(nèi)存塊添加了一個(gè)2位飽和計(jì)數(shù)器用于區(qū)分更高沖突性和更低

沖突性的內(nèi)存塊。內(nèi)存管理器負(fù)責(zé)管理DRAM和PCM之間的通信,也負(fù)責(zé)管理內(nèi)存塊中的

計(jì)數(shù)器。當(dāng)發(fā)生更高優(yōu)先級(jí)沖突時(shí)(即DRAM未命中而引起的寫回),計(jì)數(shù)器的值就增加2;

如果是常規(guī)沖突,計(jì)數(shù)器的值增加lo當(dāng)發(fā)生頁面錯(cuò)誤時(shí),如果請(qǐng)求的頁面不屬于文本段,

則將分配給該頁一個(gè)更低沖突性的內(nèi)存塊。由于該算法只使用了一個(gè)低開銷的2位飽和計(jì)

數(shù)器,直接比較所有計(jì)數(shù)器來找出最小沖突塊的代價(jià)是昂貴和不必要的,因此該算法還利用

了經(jīng)典的時(shí)鐘算法來找出最低沖突性的內(nèi)存塊。當(dāng)發(fā)生缺頁錯(cuò)誤時(shí),時(shí)鐘指針以循環(huán)的方式

逐個(gè)掃描DRAM內(nèi)存塊中的計(jì)數(shù)器。如果計(jì)數(shù)器的值不為零,則計(jì)數(shù)器的值減1;當(dāng)時(shí)鐘指

針指向計(jì)數(shù)器值為零的內(nèi)存塊時(shí),這個(gè)內(nèi)存塊就會(huì)被選中,并作為候選的具有更低沖突性的

內(nèi)存塊,保存發(fā)生錯(cuò)誤的頁面。在記錄驅(qū)動(dòng)的實(shí)驗(yàn)中證實(shí)了該算法能有效地戒少PCM上的

寫操作(25%)和提高DRAM中的命中率(減少27%的未命中),因此,同時(shí)也能提高

DRAM/PCM混合內(nèi)存的性能和壽命。

為了減少PCM上的寫操作并且保持穩(wěn)定的系統(tǒng)應(yīng)用性能,WuZL等人[32]提出了基于訪問

形式預(yù)測(cè)的LRU(accesspattern-prediction-basedLRU,APPLRU)算法(②LRU是least

recentlyused的縮寫,即最近最少使用。LRU算法是內(nèi)存管理的一種頁面置換算法)。APP-

LRU算法中包含3個(gè)鏈表:LRU鏈表、PCM鏈表和DRAM鏈表。LRU鏈表用于管理PCM和

DRAM,當(dāng)一個(gè)頁面被訪問時(shí),就會(huì)將其放置在LRU鏈表中最近最頻繁使用的一段。PCM鏈

表和DRAM鏈表中所有的頁面都會(huì)被分成若干含有一定數(shù)量頁面的組。PCM鏈表中的同一

組內(nèi)所有的頁面都具有相等的寫次數(shù),而DRAM鏈表中的同一組內(nèi)頁面具有相等的讀次數(shù)。

PCM鏈表(DRAM鏈表)頭部的組的頁面具有最大的寫(讀)操作次數(shù),當(dāng)一個(gè)頁面從磁

盤里讀出來或從DRAM遷移到PCM(或從PCM遷移到DRAM)時(shí),這個(gè)頁面就會(huì)被放置

到鏈表的尾部。當(dāng)讀取或更新DRAM中的頁面時(shí),該頁面將會(huì)從屬于PCM鏈表中的組遷移

到屬于DRAM鏈中的組。APP-LRU就是通過這樣的遷移方法來減少PCM上的寫操作的,在

有效地減少PCM上寫操作的前提下,與CLOCK-DWF算法和LRU算法相比,其遷移操作是

傳統(tǒng)算法的1/6左右。

為了在減少PCM上的寫操作的同時(shí)保證系統(tǒng)的命中率,確保系統(tǒng)在應(yīng)用中的性能,ChenK

等人[33]提出了保持命中率的LRU(maintain-hit-ratioLRU,MHRLRU)替換算法。算法使用

LRU鏈表管理混合內(nèi)存架構(gòu)中的內(nèi)存頁面,所有頁面根據(jù)其最近的使用時(shí)間排列在內(nèi)存中。

當(dāng)出現(xiàn)缺頁錯(cuò)誤時(shí),在最近最少使用位置的頁面就會(huì)被選中。在DRAM里,算法使用了一

個(gè)基于DRAM寫數(shù)據(jù)的LRU鏈表(DRAMwrite-awareLRUlist,DWL),DRAM上的頁面根

據(jù)最近的寫傾向時(shí)間排列在這個(gè)鏈表中。當(dāng)發(fā)生頁面錯(cuò)誤并選中一個(gè)候選頁面時(shí),MHR-LRU

就會(huì)檢測(cè)頁面的訪問是讀還是寫,并找出候選頁面的位置,如果頁面的訪問模式為寫并且部

署在PCM上,那么算法實(shí)行頁面的遷移,釋放PCM中的候選頁面,并且將DWL鏈表中在

最近最少使用位置的頁面遷移到PCM±,那么這個(gè)提出寫訪問請(qǐng)求的頁面就會(huì)被部署到

DRAM±o實(shí)驗(yàn)結(jié)果表明,與其他算法相比,MHR-LRU算法在保證命中率的情況下平均減

少6.48%的PCM上的寫操作。

將具有寫傾向的頁面從PCM上遷移到DRAM上可以有效地減少PCM,基于沖突的頁面分

配算法利用DRAM作為緩存,吸收了具有寫傾向的頁面,減少了PCM上的寫操作。在此前

提下,還減少了由于緩存的未命中引起的對(duì)PCM的寫操作,最終延長(zhǎng)了系統(tǒng)的壽命,同時(shí)

也提升了系統(tǒng)的性能。但是對(duì)于利用DRAM作為PCM的緩存的混合內(nèi)存架構(gòu),由于DRAM

只作為系統(tǒng)的緩存,在后續(xù)的應(yīng)用運(yùn)行中,如果PCM上的頁面發(fā)生讀寫傾向的改變,那么

就無法將PCM上的頁面遷移到DRAM±o

APP-LRU和MHR-LRU算法都利用了PCM/DRAM同級(jí)混合內(nèi)存架構(gòu),APPLRU算法通過元

數(shù)據(jù)表記錄頁面的訪問歷史區(qū)分頁面的讀寫傾向,MHR-LRU算法通過LRU鏈表管理讀寫傾

向劃分后按照使用時(shí)間排序的頁面。APP-LRU由于沒有考慮頁面的使用頻繁度,所以可能

會(huì)遷移最近使用比較少的頁面,降低系統(tǒng)的命中率,增加額外的時(shí)間開銷;MHR-LRU算法

通過使用頻繁度的排序,保證了系統(tǒng)的命中率,但是僅能將DRAM上讀傾向使用不頻繁的

頁面遷移到PCM上,不能將PCM上寫傾向使用頻繁的頁面遷移到DRAM±,不能更有效

地減少PCM上的寫操作。

3.2.2磨損均衡

在很多大數(shù)據(jù)應(yīng)用場(chǎng)景中,寫操作會(huì)集中在內(nèi)存的某一行或某一頁,承受過多寫操作的區(qū)域

由于耐久度有限會(huì)更早地?fù)p壞,從而縮短PCM的整體壽命。磨損均衡(wearleveling)就是

研究如何使PCM上的寫操作均勻分布,以延長(zhǎng)計(jì)算系統(tǒng)壽命的算法。現(xiàn)有的具有代表性的

工作有以下幾個(gè)。

(1)Start-gap磨損均衡

由于現(xiàn)有的磨損均衡算法需要一個(gè)很大的表來追蹤發(fā)生在PCM上寫操作的次數(shù),QureshiM

K等人[25]提出了Start-gap磨損均衡算法,利用一個(gè)簡(jiǎn)單的物理機(jī)構(gòu),既避免了已有的磨損

均衡算法所需的存儲(chǔ)空間和操作時(shí)延,同時(shí)也盡可能地達(dá)到了理想磨損均衡算法下PCM的

壽命。算法利用了兩個(gè)物理寄存器Start和gap,還用了一個(gè)空隔行(gapline),每發(fā)生100

次寫操作就移動(dòng)一次gap指針和空隔行,同時(shí)gap寄存器中的數(shù)值減1(gap寄存器初始值

為當(dāng)前總行數(shù)減1),每次寫操作都從Start指針開始,其基本過程如圖1所示。當(dāng)gap指針

指向0時(shí),Start指針和寄存器加1。Start-gap磨損均衡算法就是通過在連續(xù)不斷的PCM空

間上不停地移動(dòng)空隔行(不進(jìn)行寫操作)達(dá)到磨損均衡效果的。但由于寫操作通常聚集在相

鄰的行,實(shí)驗(yàn)過程中,只能達(dá)到理想情況53%的效果,所以需要隨機(jī)地分配地址,將寫操作

均勻地分布在不同的區(qū)域。Start-gap磨損均衡算法在此基礎(chǔ)上還分別引入了密碼學(xué)技術(shù)

Feistel網(wǎng)絡(luò)和一個(gè)隨機(jī)可逆的二維矩陣,達(dá)到邏輯地址對(duì)物理地址的隨機(jī)代數(shù)式映射。最終,

在采取了隨機(jī)地址映射的方法后,Start-gap磨損均衡算法能達(dá)到超過97%的理想狀況下

PCM壽命的效果。

-0

Start指針12

3

4

5

6

7

8

9

10

11

12

13

14

15

■16

gap指針

圖1Start-gap磨損均衡算法

(2)軟件實(shí)現(xiàn)的磨損均衡算法

軟件實(shí)現(xiàn)的磨損均衡算法主要考慮的問題是,通過程序或者編譯器均勻分配PCM上的寫操

作,并考慮內(nèi)存訪問的時(shí)間。HuJ等人[34]提出的基于嵌入式系統(tǒng)的軟件實(shí)現(xiàn)磨損均衡,在

數(shù)據(jù)已經(jīng)被部署在混合存儲(chǔ)系統(tǒng)中,并且已經(jīng)知道每個(gè)數(shù)據(jù)將會(huì)引起多少寫操作的前提下,

利用程序?qū)崿F(xiàn)均勻分配PCM上的寫操作。循環(huán)的開始和結(jié)束將程序劃分為不同的區(qū)域。首

先用最優(yōu)數(shù)據(jù)分配(optimaldataallocation,ODA)算法(③該算法無差別對(duì)待PCM的地址

總是將PCM上第一個(gè)可用的空間分配給變量配置數(shù)據(jù)的分布,以獲得分配在PCM上的變

量)。然后利用一個(gè)數(shù)組W記錄PCM上每個(gè)地址的寫操作次數(shù)。然后軟件實(shí)現(xiàn)的磨損均衡

算法將PCM按照地址的前后分為兩個(gè)組。對(duì)于第一個(gè)組的數(shù)據(jù)Dj,程序先通過數(shù)組W獲

得地址addrj的寫次數(shù),然后對(duì)地址addrj的寫次數(shù)和數(shù)據(jù)Dj的寫次數(shù)進(jìn)行求和,再與閾值

進(jìn)行比較,如果寫次數(shù)的和小于或等于閾值,那么數(shù)據(jù)Dj將會(huì)留在原地址;否則,就從W

里面找出寫次數(shù)最少的地址,并計(jì)算該地址的寫次數(shù)與數(shù)據(jù)Dj寫次數(shù)的和值,如果未超過

閾值,則將數(shù)據(jù)Di遷移到這個(gè)地址上,若超過閾值,則要重新設(shè)置閾值。對(duì)于第二組的數(shù)

據(jù)Dk,程序直接從W找出寫次數(shù)最少的地址,并計(jì)算該地址的寫次數(shù)與數(shù)據(jù)Dk寫次數(shù)的

和,如果未超過閾值,則將數(shù)據(jù)Dj遷移到這個(gè)地址上,若超過閾值,則要重新設(shè)置閾值。

最后實(shí)驗(yàn)中,軟件實(shí)現(xiàn)的磨損均衡算法在先利用QDA算法進(jìn)行數(shù)據(jù)部署、在可接受的額外

的應(yīng)用時(shí)間開銷(5.46%)的前提下,使PCM的壽命時(shí)間平均延長(zhǎng)了3.13倍。

(3)自適應(yīng)磨損均衡算法

為了減少和均勻分配PCM上的寫操作,ParkSK等人[35]提出了自適應(yīng)磨損均衡算法

(adaptivewear-levelingalgorithm)。由于臟數(shù)據(jù)的清除會(huì)引起PCM上的寫回(writeback),

增加應(yīng)用過程PCM上的寫操作,因此首先將DRAM(3%)作為PCM的緩存并將DRAM緩

存分為兩層,分別處理臟數(shù)據(jù)(dirtydata)與干凈數(shù)據(jù)(cleandata)。第一層利用傳統(tǒng)的LRU

算法決定臟數(shù)據(jù)和干凈數(shù)據(jù)的替換順序,第二層通過統(tǒng)計(jì)臟數(shù)據(jù)的寫操作次數(shù),將寫操作次

數(shù)最少的臟數(shù)據(jù)替換出去。基于操作時(shí)間與一次所要交換的頁面數(shù)量的考慮,自適應(yīng)磨損均

衡算法第二步提供了一個(gè)自適應(yīng)的多數(shù)據(jù)交換和移動(dòng)的框架以實(shí)現(xiàn)磨損均衡。通過周期性地

檢測(cè)最大寫入數(shù)的增量,查詢寫入訪問是否傾向某一行或某一頁,以此動(dòng)態(tài)地調(diào)整頁面交換

的負(fù)載模式。自適應(yīng)磨損均衡算法的最后,在頁面或行交換的時(shí)候,將頁面或行內(nèi)所包含的

臟數(shù)據(jù)也先替換出緩存,并寫回到PCM上,避免了頁面或行交換和臟數(shù)據(jù)的重復(fù)寫操作。

通過這3個(gè)步驟,自適應(yīng)磨損均衡算法能將以往的磨損均衡算法下的PCM壽命從0.68年提

升到5.32年。

(4)基于行的映射和循環(huán)利用磨損算法

已有的錯(cuò)誤修改指針(errorcorrectingpointers,ECP)算法在出現(xiàn)了不可修復(fù)的錯(cuò)誤行的時(shí)

候就將其標(biāo)記為不可用,這樣就會(huì)造成PCM上的空間不連續(xù),不能與Start-gap磨損均衡

算法組合起來,JiangL[36]提出了基于行的映射和循環(huán)利用(line-levelmappingand

salvaging,LLS)磨損均衡算法。首先將PCM上一定的空間分為28個(gè)數(shù)據(jù)塊作為主空間,

其余的作為備用的PCM空間。用已有的循環(huán)利用算法ECP對(duì)出現(xiàn)錯(cuò)誤的行進(jìn)行修復(fù),當(dāng)出

現(xiàn)第一個(gè)ECP無法修復(fù)的錯(cuò)誤行時(shí),就啟用LLS.LLS將主空間的錯(cuò)誤行部署到備用的PCM

的空間,這樣錯(cuò)誤行就能被標(biāo)記并且重映射到一個(gè)健康的行中。當(dāng)PCM主空間里損壞的行

比備用PCM空間里還未損壞的行多時(shí),就會(huì)激活PCM的大小調(diào)整,以提供PCM上連續(xù)的

地址空間。LLS磨損均衡算法比ECP算法下PCM壽命平均延長(zhǎng)了24%。

(5)基于桶和基于數(shù)組的磨損均衡算法

基于時(shí)間和空間復(fù)雜度的考慮,ChenCH等人[37]提出了基于桶和基于數(shù)組的磨損均衡算

法。基于桶的磨損均衡算法如圖2所示。先將PCM內(nèi)的頁面以桶的形式按照頁面的磨損程

度聚類,在桶內(nèi)的頁面按照寫次數(shù)的多少排列,再將這些桶分為兩個(gè)鏈表,即空閑鏈表和正

在被占用的鏈表。當(dāng)需要調(diào)用頁面時(shí),先調(diào)用空閑鏈表中磨損程度最低的頁面,如這個(gè)桶為

空,則將正在被占用鏈表的基桶(磨損程度最低)頁面的數(shù)據(jù)寫入寫次數(shù)最多的空閑頁面,

然后再調(diào)用這個(gè)頁面。基于數(shù)組的磨損均衡算法如圖3所示。在物理頁面上添加了兩個(gè)物理

計(jì)數(shù)器b、m和一個(gè)指針,當(dāng)頁面的磨損程度超過了初始設(shè)定的閾值,就以指針為中心,將

鄰近的若干個(gè)頁面磨損程度最低的頁面交換。最終,基于桶和基于數(shù)組的磨損均衡算法下的

PCM內(nèi)存壽命達(dá)到了完全磨損均衡理想狀態(tài)下的80%o

(o+aV-1)modN

(b+M2)modN

空閑鏈表正在被占用的鏈表

圖2基于桶的磨損均衡算法

物理頁面

計(jì)數(shù)器6

計(jì)數(shù)器〃7

圖3基于數(shù)組的磨損均衡算法

磨損均衡算法小結(jié)如下。

?Start-gap算法將PCM內(nèi)存行移動(dòng)到鄰近的地址空間,利用兩種隨機(jī)映射地址的技術(shù),

分配區(qū)域集中的寫操作。

?軟件實(shí)現(xiàn)的磨損均衡算法通過數(shù)組統(tǒng)計(jì)數(shù)據(jù)的寫次數(shù),利用軟件對(duì)數(shù)據(jù)進(jìn)行遷移,但由

于該算法要先利用ODA算法對(duì)數(shù)據(jù)進(jìn)行分配,所以會(huì)引起額外的內(nèi)存訪問時(shí)間開銷。

?自適應(yīng)的磨損均衡算法能夠根據(jù)寫操作的分布情況,自動(dòng)調(diào)整數(shù)據(jù)的交換和遷移,在盡

量避免不必要的交換和遷移引起的額外的寫操作前提下,達(dá)到了良好的延長(zhǎng)PCM壽命的效

果。但是該算法需要大量的附加硬件支持,每512MB的PRAM就需要32MB的內(nèi)存空間

以支持算法。

?LLS算法通過對(duì)硬件故障修復(fù)技術(shù)ECP的改進(jìn),使PCM上的可使用地址恢復(fù)連續(xù)性,得

以和Start-gap算法結(jié)合,同時(shí)實(shí)現(xiàn)PCM的回收利用和磨損均衡的效果。

?基于桶和基于數(shù)組的磨損均衡算法僅能達(dá)到理想狀態(tài)下PCM壽命的80%,會(huì)引起2%的

額外寫操作,但由于算法不需要跟蹤內(nèi)存頁面的寫頻繁度,所以對(duì)系統(tǒng)的性能影響幾乎為零。

3.2.3PCM的故障處理

傳統(tǒng)的DRAM技術(shù)擁有容錯(cuò)技術(shù),在沒有壽命限制的情況下,內(nèi)存系統(tǒng)利用錯(cuò)誤檢查和糾

正(errorcheckingandcorrecting,ECC)編碼修復(fù)DRAM中的瞬態(tài)故障。然而在PCM內(nèi)

存系統(tǒng)中,由于在一定次數(shù)的寫操作之后,存儲(chǔ)單元很快被磨損,基于電阻內(nèi)存的ECC修

復(fù)編碼快速失效。一旦存儲(chǔ)單元出現(xiàn)了故障,該單元上的數(shù)據(jù)就無法繼續(xù)使用,PCM也會(huì)

被認(rèn)定為已經(jīng)損壞,所以,在PCM/DRAM混合存儲(chǔ)系統(tǒng)中,需要新的容錯(cuò)機(jī)制以修復(fù)內(nèi)存

存儲(chǔ)單元的故障。為了保證存儲(chǔ)在PCM上的數(shù)據(jù)的安全性,修復(fù)PCM上的故障存儲(chǔ)單元,

目前主要的工作如下。

(1)ECP算法

為了盡量減少寫磨損,處理永久性的存儲(chǔ)單元故障,提高內(nèi)存系統(tǒng)的壽命,修正早期的存儲(chǔ)

單元故障,SchechterS等人[38]提出了ECP算法。ECP算法通過將故障單元的位置永久編碼

到表中并分配單元替它們來糾正錯(cuò)誤。圖4(a)顯示了ECP算法一個(gè)最簡(jiǎn)單的應(yīng)用,即對(duì)

一個(gè)位的修正,當(dāng)一個(gè)位出現(xiàn)故障時(shí),這個(gè)位就會(huì)被標(biāo)記為滿,修正指針就會(huì)指向這個(gè)位,

然后就會(huì)用一個(gè)新的存儲(chǔ)單元存儲(chǔ)這個(gè)位原來具有的值。當(dāng)需要對(duì)內(nèi)存單元進(jìn)行n位修正

時(shí),如圖4(b)所示,當(dāng)出現(xiàn)第一個(gè)故障時(shí),就利用修正記錄位。進(jìn)行修正。當(dāng)替代的單

元也出現(xiàn)了故障時(shí)就用圖4(c)的方法進(jìn)行修正,當(dāng)修正指針發(fā)生故障時(shí)就會(huì)利用圖4(d)

的方法進(jìn)行修正。ECP算法在大量的寫操作發(fā)生后,仍能保持頁面的健康性。

滿”修訂入口

III]

0|。|。|。|。|。|。|。|11。|In

I8765432I01R替代單元

修訂指針

?數(shù)據(jù)單元

|o|l|I|。|…|I|/1。口

III1101091083210

4I

(a)糾正1位錯(cuò)誤的ECP方案(b)糾正5個(gè)故障單元的FCP方案

(c)替代單元發(fā)生故障時(shí)的ECP方案(d)修正指針發(fā)生故障時(shí)的ECP方窠

圖4ECP的應(yīng)用例子

(2)動(dòng)態(tài)復(fù)制的內(nèi)存

為了在硬件和操作系統(tǒng)層面有效地延續(xù)PCM的物理可使用性,IpekE等人[11]提出了動(dòng)態(tài)

復(fù)制的內(nèi)存(dynamicallyreplicatedmemory,DRM)算法修復(fù)PCM上的硬件故障。為了便

于動(dòng)態(tài)復(fù)制,DRM引入了一個(gè)新的間接尋址層,位于系統(tǒng)的物理地址空間的PCM和真實(shí)地

址空間的PCM之間。物理地址中的每一頁都被映射到一個(gè)未使用過的無故障的真實(shí)頁面,

或兩個(gè)有故障的但在同一個(gè)位上沒有故障的兼容性頁面,因此,可以配對(duì)在每一個(gè)位上進(jìn)行

讀寫操作的物理頁。為了完成這樣的映射,DRM算法在PCM上存儲(chǔ)了3個(gè)獨(dú)立的副本表,

若對(duì)第一個(gè)副本表的復(fù)制出現(xiàn)錯(cuò)誤,那么系統(tǒng)就會(huì)嘗試第二個(gè)副本表、第三個(gè)副本表;如果

所有的副本表都出現(xiàn)故障,相應(yīng)的物理頁面都會(huì)被棄用。為了從映射之后的PCM地址獲得

數(shù)據(jù),DRM算法利用硬件追蹤真實(shí)地址,并利用操作系統(tǒng)保證沒有不兼容的頁面被配對(duì)在

一起。DRM算法與傳統(tǒng)的內(nèi)存錯(cuò)誤修復(fù)機(jī)制相比,在過程變化程度(processvariation,以

下用CoV表示)不同的情況下,能不同程度地延長(zhǎng)PCM的壽命。當(dāng)CoV=0.1、CoV=0.2和

CoV=0.3時(shí),DRM能分別將PCM的壽命延長(zhǎng)至1.25倍、2.7倍和40倍。

PCM的故障處理技術(shù)算法小結(jié)如下。

?ECP算法利用操作系統(tǒng)對(duì)出現(xiàn)故障的單元進(jìn)行追蹤,將其標(biāo)記為不可用并取回?cái)?shù)據(jù)。ECP

算法標(biāo)記所有的出錯(cuò)單元,因此當(dāng)故障單元數(shù)超出了一定的限制后,ECP算法便無法進(jìn)行修

復(fù),并且會(huì)使PCM上的可使用地址空間不再連續(xù),無法繼續(xù)使用其他利用隨機(jī)地址映射方

式的優(yōu)化技術(shù)。

?DRM算法動(dòng)態(tài)地配對(duì)兩個(gè)故障頁面,從中獲得一個(gè)可使用的頁面來回復(fù)PCM早期的故

障頁面,但動(dòng)態(tài)配對(duì)需要檢測(cè)兩個(gè)故障頁面的故障單元數(shù)和故障單元的位置,如果故障頁面

的故障單元過多,會(huì)導(dǎo)致大量額外的時(shí)間開銷和能耗開銷。

所以故障修復(fù)處理技術(shù)必須與現(xiàn)有的磨損均衡算法和減少PCM上寫操作的算法結(jié)合起來,

才能更好地延長(zhǎng)PCM的壽命,并節(jié)省時(shí)間與能源開銷。

4混合內(nèi)存未來的優(yōu)化及研究方向

4.1已有工作的不足

現(xiàn)有工作存在以下不足。

?DRAM作為PCM的緩存的混合內(nèi)存架構(gòu),如果沒有額外的存儲(chǔ)容量的支持與開銷,系統(tǒng)

的性能優(yōu)化效果不能得到保證,與存儲(chǔ)容量較小的DRAM系統(tǒng)相比,性能的優(yōu)化效果顯著,

但與存儲(chǔ)容量相近的DRAM系統(tǒng)相比,性能上還是存在微弱的劣勢(shì)。

?在PCM和DRAM同級(jí)混合內(nèi)存架構(gòu)中,數(shù)據(jù)部署在不同的存儲(chǔ)介質(zhì)中,而由于PCM和

DRAM的性能屬性不同,對(duì)數(shù)據(jù)進(jìn)行冷熱度和讀寫傾向劃分時(shí),需要統(tǒng)計(jì)數(shù)據(jù)的讀寫歷史次

數(shù),這會(huì)導(dǎo)致額外的時(shí)間開銷和能耗開銷,而且數(shù)據(jù)的劃分會(huì)導(dǎo)致遷移操作,這些遷移操作

會(huì)引起額外的讀寫操作,降低PCM和DRAM同級(jí)混合內(nèi)存架構(gòu)的優(yōu)化效果。

?對(duì)于讀寫傾向的劃分和冷熱數(shù)據(jù)劃分,冷頁面的遷移會(huì)帶來PCM上不必要的寫操作,同

時(shí)PCM與DRAM之間的頁面遷移次數(shù)與遷移時(shí)機(jī)的不恰當(dāng)也會(huì)導(dǎo)致遷移顛簸。

?在以往磨損均衡的研究工作中,數(shù)據(jù)的交換和遷移會(huì)導(dǎo)致額外的PCM上的寫操作,目前

可依靠良好的閾值設(shè)定來控制數(shù)據(jù)的交換、遷移的次數(shù)和頻繁度,但靜態(tài)的閾值設(shè)定無法滿

足應(yīng)用寫操作的動(dòng)態(tài)變化,動(dòng)態(tài)的閾值設(shè)定則需要硬件、操作系統(tǒng)或者軟件來支撐,帶來額

外的成本開銷與時(shí)間開銷。

?在PCM的故障處理中,最顯著的問題是,當(dāng)PCM的故障單元超過一定的限制后,這些

技術(shù)就無法再使用,而將磨損均衡與故障處理的技術(shù)結(jié)合起來需要提供連續(xù)的PCM可使用

的地址空間。

4.2PCM/DRAM混合內(nèi)存的優(yōu)化研究方向

在大數(shù)據(jù)應(yīng)用優(yōu)化的需求背景下,對(duì)PCM/DRAM混合內(nèi)存管理策略的研究,關(guān)鍵在于結(jié)合

應(yīng)用特征以及算法策略,并

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論