趙曉菲
摘 要:隨著大規(guī)模的密集數(shù)據(jù)型的應(yīng)用在社會(huì)生產(chǎn)生活方面的融入,密集型程序越來(lái)越突出的顯示出主存儲(chǔ)器容量越大,程序的效率越高的特點(diǎn)。傳統(tǒng)意義上,動(dòng)態(tài)隨機(jī)存儲(chǔ)器(DRAM)因其具備較低的訪問(wèn)延遲、讀寫速度的對(duì)稱性以及更經(jīng)濟(jì)的單位比特成本而廣泛應(yīng)用于現(xiàn)代計(jì)算機(jī)系統(tǒng)之中。
關(guān)鍵詞:計(jì)算緩沖器;DRAM技術(shù);設(shè)計(jì);
一、DRAM技術(shù)暴露出的自身技術(shù)缺點(diǎn):
(一)較高的閑置率;作為計(jì)算機(jī)系統(tǒng)中的主存儲(chǔ)器,DRAM的使用效率完全由計(jì)算機(jī)的計(jì)算負(fù)荷決定,且在未被使用時(shí)進(jìn)行利用。
(二)較低的擴(kuò)展性;通?;陔娐冯娖骱涂偩€等原因,在一個(gè)計(jì)算機(jī)系統(tǒng)中部署大量的DRAM是極為困難的。計(jì)算機(jī)的DRAM大小要么受制于DRAM芯片大小,要么在高性能計(jì)算機(jī)系統(tǒng)(HA)中還可以通過(guò)內(nèi)存載板(DRAMCELL)擴(kuò)展。無(wú)論上述那種方式,對(duì)于已定的計(jì)算機(jī)系統(tǒng)擴(kuò)展其系統(tǒng)DRAM都將是非常困難的。
(三)易失性;DRAM因其基本的對(duì)于電荷的依賴的物理特性,嚴(yán)重降低了作為主存儲(chǔ)器的可靠性。
新興的非易失性存儲(chǔ)器(NVM)具備很好的特性以解決上述缺點(diǎn),例如低閑置功率、高密度和無(wú)波動(dòng)性。NVM技術(shù)包括相變存儲(chǔ)器(PCM)、旋轉(zhuǎn)傳遞扭矩磁性隨機(jī)存取存儲(chǔ)器(STT-MRAM),金屬氧化物電阻RAM和記憶電阻器。當(dāng)然,NVM也有非常明顯的自身的缺點(diǎn),如使用壽命限制、較長(zhǎng)的延遲,讀寫的不對(duì)稱性等,這些缺點(diǎn)也決定DRAM仍然是計(jì)算機(jī)系統(tǒng)的主內(nèi)存。為了使NVM在設(shè)備上發(fā)揮上述積極的優(yōu)點(diǎn),現(xiàn)在國(guó)際上普遍使用混合型的體系結(jié)構(gòu)(HMAS),其使用DRAM與NVM組成的單層或者多層的結(jié)構(gòu)。
在這種HMAS結(jié)構(gòu)中,通常都有內(nèi)存緩沖管理器(Buffer manager)來(lái)協(xié)調(diào)DRAM與NVM之間的工作。本文將從構(gòu)架角度來(lái)分析多種學(xué)術(shù)界提出的HMAS構(gòu)架,并結(jié)合最新的NVM發(fā)展技術(shù)來(lái)總結(jié)其優(yōu)缺點(diǎn)。
二、設(shè)計(jì)
國(guó)際上最近的研究重點(diǎn)從在HMAS系統(tǒng)中優(yōu)化NVM技術(shù)本身以及存儲(chǔ)層次結(jié)構(gòu)緩存管理策略上開展的。
(一)基于NVM某個(gè)特定優(yōu)勢(shì)的內(nèi)存計(jì)算設(shè)計(jì)
Alexander van Renen(德國(guó)慕尼黑工業(yè)大學(xué))等人提出的方案是,緩沖管理器將需要緩沖的數(shù)據(jù)從磁盤(包含SSD)遷移加載到到內(nèi)存使用之后[7],當(dāng)緩存頁(yè)面數(shù)據(jù)從內(nèi)存中逐出時(shí),該方案的緩沖管理器判斷它是否最近被訪問(wèn)而寫入位于NVM的緩沖區(qū)。當(dāng)判斷為最近未寫入內(nèi)存則丟棄;當(dāng)判斷為最近寫入DRAM則保存在NVM之中,用于下次調(diào)用時(shí)CPU直接讀取。
該方案的特點(diǎn)是依然以DRAM作為主要存儲(chǔ)器,而NVM設(shè)備組成的存儲(chǔ)池緩沖器用來(lái)存儲(chǔ)DRAM存儲(chǔ)歷史中的比較熱的數(shù)據(jù),即緩沖器判斷DRAM中的數(shù)據(jù)再被拋棄時(shí)判斷該數(shù)據(jù)是否被多次讀入DRAM。如果是,該數(shù)據(jù)被DRAM拋棄的同時(shí),緩沖器會(huì)將該數(shù)據(jù)完整的寫入NVM所組成的緩沖池之中,同時(shí)DRAM中會(huì)存儲(chǔ)該段數(shù)據(jù)在NVM中的地址而不是傳統(tǒng)的磁盤地址,因此當(dāng)該段數(shù)據(jù)需要重新被讀取的時(shí)候,緩沖器可以快速的將該數(shù)據(jù)從NVM掉入DRAM,而不是速度較慢的磁盤。這種方案利用了NVM設(shè)備的大容量及比起磁盤更快速的讀寫響應(yīng),因此某個(gè)特定的應(yīng)用需要DRAM重復(fù)調(diào)入多段磁盤數(shù)據(jù)時(shí),這種設(shè)計(jì)將極大改善系統(tǒng)的處理能力。
其缺點(diǎn)是,這種緩沖器設(shè)計(jì)策略雖然在實(shí)驗(yàn)室環(huán)境或某些應(yīng)用環(huán)境中工作良好,但它們的工作對(duì)于存儲(chǔ)的層次結(jié)構(gòu)和工作負(fù)載具有一定的局限性。
(二)操作系統(tǒng)方面的內(nèi)存計(jì)算設(shè)計(jì)
Youngjin Kwon(得克薩斯大學(xué)奧斯汀分校)等人在2017年的SOSP(操作系統(tǒng)原理大會(huì))大會(huì)上提出了一種多層緩存系統(tǒng),它不會(huì)在DRAM上緩存NVM駐留的數(shù)據(jù),并在執(zhí)行同步寫操作時(shí)主動(dòng)繞過(guò)內(nèi)存。其具體過(guò)程是內(nèi)核利用英特爾libpmem通道,通過(guò)mmap方式繞過(guò)DRAM直接訪問(wèn)NVM存儲(chǔ)空間。
優(yōu)點(diǎn):繞過(guò)DRAM的緩沖器設(shè)計(jì),避免了系統(tǒng)內(nèi)核的開銷,直接由應(yīng)用程序?qū)崿F(xiàn)實(shí)現(xiàn)磁盤數(shù)據(jù)讀寫,因此省去DRAM的寫入延時(shí)已經(jīng)驗(yàn)證Log的操作。該方案利用了新型NVM在接口方面的優(yōu)勢(shì),直接將NVM的數(shù)據(jù)IO提升到與DRAM相同的層級(jí)。缺點(diǎn),某種意義上,這種設(shè)計(jì)需要從操作系統(tǒng)至應(yīng)用軟件及系統(tǒng)內(nèi)核的支持;同時(shí),這對(duì)于NVM硬件也有較為苛刻的條件,一般地講這種設(shè)計(jì)只適合部署在內(nèi)部存儲(chǔ)通道的NVM。
(三)多層NVM結(jié)構(gòu)的內(nèi)存計(jì)算設(shè)計(jì)
該方案引入數(shù)據(jù)遷移優(yōu)化的思想,這些優(yōu)化包含了以前系統(tǒng)中使用的特定技術(shù),其根據(jù)設(shè)備和工作負(fù)載特征來(lái)定制內(nèi)存計(jì)算管理策略。一般的這些內(nèi)存計(jì)算管理策略中有響應(yīng)的適配機(jī)制來(lái)實(shí)現(xiàn)自適應(yīng)內(nèi)存數(shù)據(jù)遷移,它基本可以為任意工作負(fù)載和存儲(chǔ)層次結(jié)構(gòu)實(shí)現(xiàn)了近乎最優(yōu)的內(nèi)存數(shù)據(jù)緩沖管理策略??傊涮攸c(diǎn)是為NVM感知數(shù)據(jù)遷移優(yōu)化引入了分類,對(duì)于不同的數(shù)據(jù)流配合不同的NVM硬件設(shè)計(jì),并提出了管理多層存儲(chǔ)層次結(jié)構(gòu)的策略。同時(shí),在緩沖區(qū)管理器中引入了一種無(wú)需任何手動(dòng)調(diào)整適應(yīng)機(jī)制。
三、趨勢(shì)
NVM技術(shù)的發(fā)展主要在于兩個(gè)與主存儲(chǔ)器相關(guān)的兩個(gè)方面,一是更低的訪問(wèn)延遲;二是更大的容量。上述兩點(diǎn)也是NVM發(fā)展的兩個(gè)主要的方向,在訪問(wèn)延遲方面NVM已經(jīng)可以提供DIMM接口規(guī)范的硬件接口,從而提供與DRAM接近的訪問(wèn)延時(shí)。容量方面NVM隨著芯片技術(shù)的發(fā)展,NVM所提供的容量也逐漸的開始接近傳統(tǒng)磁盤。因此內(nèi)存計(jì)算緩沖器將擁有更為廣泛的設(shè)計(jì)基礎(chǔ)。
四、總結(jié)
本文討論了用于NVM的內(nèi)存計(jì)算緩沖器設(shè)計(jì)思想及其趨勢(shì),其主要分為三種,一種是基于NVM某個(gè)特定優(yōu)勢(shì)而設(shè)計(jì),如利用NVM的低寫入延時(shí)而設(shè)計(jì)的熱數(shù)據(jù)存儲(chǔ)池的設(shè)計(jì);第二種是在操作系統(tǒng)層面直接繞過(guò)系統(tǒng)內(nèi)核直接寫入NVM設(shè)備的設(shè)計(jì);第三種是利用數(shù)據(jù)感知的方法控制內(nèi)存數(shù)據(jù)流在DRAM、NVM與緩沖池之間的傳輸。