呂 暉,謝向輝
(數(shù)學(xué)工程與先進(jìn)計(jì)算國家重點(diǎn)實(shí)驗(yàn)室,江蘇 無錫214125)
隨著集成電路技術(shù)的發(fā)展,片上計(jì)算資源的集成度越來越高,片上所能集成的計(jì)算核心數(shù)量已經(jīng)從單核、多核一直發(fā)展到數(shù)百甚至數(shù)千核心[1,2]。但是,存儲(chǔ)技術(shù)的發(fā)展速度遠(yuǎn)不能滿足計(jì)算能力的發(fā)展需求。特別受芯片信號(hào)引腳數(shù)量和數(shù)據(jù)傳輸率兩方面因素的限制,訪存帶寬已經(jīng)成為系統(tǒng)性能的最主要瓶頸。如何充分發(fā)掘有限的訪存帶寬資源,成為系統(tǒng)設(shè)計(jì)者需要重點(diǎn)考慮的問題之一。
基于成本和性能等多方面因素的考量,SDRAM成為構(gòu)建現(xiàn)代主存系統(tǒng)的基礎(chǔ)。從用于通用計(jì)算系統(tǒng)的DDR系列存儲(chǔ)技術(shù)(DDR、DDR2、DDR3、DDR4),到用于嵌入式/手持計(jì)算系統(tǒng)的LPDDR系列存儲(chǔ)技術(shù)(LPDDR2、LPDDR3、LPDDR4),以及用于顯存領(lǐng)域的GDDR系列存儲(chǔ)技術(shù)(GDDR3、GDDR5),甚至混合存儲(chǔ)立方體HMC(Hybrid Memory Cube)等新型存儲(chǔ)技術(shù)[3],SDRAM都是其中最重要的組成部分。
SDRAM的結(jié)構(gòu)特征和工作原理,決定了頁策略是提升實(shí)際訪存效率的重要因素之一。傳統(tǒng)上,頁策略分為頁打開策略和頁關(guān)閉策略。一般情況下,頁打開策略適用于頁命中率較高的訪存序列,而頁關(guān)閉策略適用于頁命中率相對(duì)較低的序列。這樣,無論固定采用頁打開策略,還是固定采用頁關(guān)閉策略,均存在性能相對(duì)較差的情況。因此,如何將兩種頁策略相結(jié)合,就成為研究者們的關(guān)注點(diǎn)[4~12]。
在上述研究工作中,絕大多數(shù)均基于預(yù)測機(jī)制[4~10]。調(diào)度器記錄訪存序列的歷史信息,對(duì)未知的訪存請(qǐng)求的行為特征進(jìn)行預(yù)測,然后依此動(dòng)態(tài)確定采用何種頁策略。這類基于預(yù)測機(jī)制的頁策略,其性能取決于頁策略切換時(shí)機(jī)是否能夠精確契合訪存序列的行為特征。受限于應(yīng)用程序訪存行為的復(fù)雜程度以及硬件預(yù)測機(jī)制的實(shí)現(xiàn)代價(jià),基于預(yù)測機(jī)制的動(dòng)態(tài)頁策略對(duì)訪存性能的改善程度有限。
文獻(xiàn)[11,12]則采用了基于預(yù)知信息的頁策略。文獻(xiàn)[11]所使用的預(yù)知信息由處理器提供,當(dāng)存儲(chǔ)控制器中的訪存請(qǐng)求緩沖為空時(shí),方可進(jìn)行頁策略轉(zhuǎn)換。該方法使用單獨(dú)的“預(yù)充電”命令關(guān)閉頁,而不是采用“帶預(yù)充電功能的讀/寫”命令,這就導(dǎo)致無法有效降低對(duì)命令總線帶寬的需求。
文獻(xiàn)[12]所使用的預(yù)知信息由存儲(chǔ)控制器內(nèi)部的訪存請(qǐng)求緩沖提供。當(dāng)請(qǐng)求隊(duì)列非空時(shí),該方法能夠根據(jù)請(qǐng)求調(diào)度緩沖中的待處理請(qǐng)求的地址信息,直接計(jì)算出后續(xù)訪存請(qǐng)求的頁命中情況,存儲(chǔ)控制器可依此動(dòng)態(tài)決定采用何種頁策略;當(dāng)請(qǐng)求隊(duì)列為空時(shí),該方法則固定采用頁打開策略。盡管文獻(xiàn)[12]是迄今為止相對(duì)最理想的動(dòng)態(tài)頁策略之一,但卻并未對(duì)預(yù)知信息對(duì)不同頁策略的系統(tǒng)性能優(yōu)化程度進(jìn)行全面研究。此外,當(dāng)訪存請(qǐng)求較為稀疏,導(dǎo)致請(qǐng)求隊(duì)列為空時(shí),該方法不具備對(duì)后續(xù)訪存序列頁命中情況的有效預(yù)測能力。
基于以上分析,本文系統(tǒng)研究了使用預(yù)知信息對(duì)多種頁策略的性能優(yōu)化效果,并提出了一種同時(shí)基于預(yù)知信息和預(yù)測機(jī)制的動(dòng)態(tài)頁策略。該策略能夠更好地適用各類不同類型的訪存序列,有效提升實(shí)際訪存效率。該策略的關(guān)鍵思想是,若請(qǐng)求隊(duì)列非空,則最適宜當(dāng)前請(qǐng)求的頁策略可以精確獲知;若請(qǐng)求隊(duì)列為空,則依據(jù)歷史信息對(duì)最適宜當(dāng)前請(qǐng)求的頁策略進(jìn)行預(yù)測。
為了系統(tǒng)研究基于預(yù)知信息的多種動(dòng)態(tài)頁策略的性能優(yōu)化效果,并證實(shí)本文所提出的動(dòng)態(tài)頁策略的有效性,作者采用SPEC2006中的部分測試程序分別在1核、2核、4核、8核環(huán)境下進(jìn)行了36項(xiàng)測試。每項(xiàng)測試完成六種頁策略實(shí)驗(yàn),其中,三種使用傳統(tǒng)頁策略,三種使用基于預(yù)知信息的動(dòng)態(tài)頁策略。從實(shí)驗(yàn)結(jié)果可以看出,基于預(yù)知信息的頁策略均優(yōu)于不基于預(yù)知信息的頁策略,最好情況下,實(shí)際訪存帶寬可提升42%。此外,對(duì)于三種基于預(yù)知信息的頁策略而言,三者性能差異相對(duì)較小,而本文所提出的“同時(shí)基于預(yù)知信息和預(yù)測機(jī)制的動(dòng)態(tài)頁模式調(diào)度策略”的多數(shù)情況下性能較優(yōu),能夠較好地適應(yīng)各類不同的訪存序列。
在現(xiàn)代SDRAM系統(tǒng)中,每個(gè)存儲(chǔ)顆粒由若干存儲(chǔ)體(Bank)組成,每個(gè)存儲(chǔ)體由存儲(chǔ)陣列、頁緩沖以及附加邏輯等組成。在訪問SDRAM時(shí),需要先使用激活A(yù)CT(Active)操作將SDRAM的存儲(chǔ)陣列中的內(nèi)容讀入頁緩沖,然后才能使用讀RD(Read)或者寫 WE(Write)命令對(duì)其進(jìn)行訪問,訪問完畢后可以使用預(yù)充電命令PRE(Precharge)將頁緩沖的數(shù)據(jù)寫回SDRAM的存儲(chǔ)陣列。當(dāng)預(yù)充電命令緊隨讀命令(或者寫命令)之后時(shí),可以使用一條“帶預(yù)充電的讀命令(或者寫命令)”替代由“讀命令(或者寫命令)和預(yù)充電命令”組成的命令序列。其中,“帶預(yù)充電的讀命令”簡記為RDap,“帶預(yù)充電的寫命令”簡記為WEap。
如果在一次讀寫訪問之后,將數(shù)據(jù)繼續(xù)保持在頁緩沖中,而不是將其寫回至存儲(chǔ)陣列,那么這種頁策略就稱為“頁打開策略”;如果在一次訪問之后,將頁緩沖中的數(shù)據(jù)寫回SDRAM的存儲(chǔ)陣列,那么這種頁策略就稱為“頁關(guān)閉策略”[2]。訪存序列如圖1所示。
頁打開策略和頁關(guān)閉策略擁有各自的優(yōu)缺點(diǎn)。對(duì)于頁打開策略,若后續(xù)訪問能夠命中頁緩沖中的數(shù)據(jù),則能減少訪存延遲、減少訪存命令數(shù)量,有利于增加訪存帶寬;但是,若后續(xù)訪問不命中頁緩沖的數(shù)據(jù),則增加訪存延遲、增加訪存命令數(shù)量,不利于提升訪存帶寬。對(duì)于頁關(guān)閉策略,其訪存延遲、所耗用的訪存命令數(shù)量均與是否命中頁緩沖無關(guān),其好處是訪存延遲、訪存帶寬不受頁命中率高低的影響;其不足是當(dāng)頁緩沖命中率較高時(shí),無法使訪存延遲、訪存帶寬最優(yōu)化。
圖1 SDRAM頁打開策略和頁關(guān)閉策略的訪存命令序列圖Figure 1 SDRAM command sequence for the page open/close policy
無論固定采用頁打開策略,還是固定采用頁關(guān)閉策略,都無法使訪存性能在各類情況下均獲得最優(yōu)。因此,根據(jù)訪存行為的特征,混合使用頁打開和頁關(guān)閉策略組成的動(dòng)態(tài)頁策略,是提升系統(tǒng)訪存性能的有效手段之一。
根據(jù)策略選擇依據(jù)的不同,動(dòng)態(tài)頁策略可分為兩類:一類是基于預(yù)測的頁策略,一類是基于預(yù)知信息的頁策略。在能夠獲知后續(xù)訪存請(qǐng)求的地址信息的條件下,基于預(yù)知信息的頁策略能夠更精確地對(duì)頁模式進(jìn)行調(diào)度,對(duì)訪存性能的優(yōu)化效果更為顯著。在無法獲知后續(xù)訪存請(qǐng)求的地址信息的條件下,若基于合適的預(yù)測機(jī)制對(duì)頁模式進(jìn)行調(diào)度,則有可能獲得更好的優(yōu)化效果。
總之,動(dòng)態(tài)頁策略對(duì)于訪存延遲、訪存帶寬、主存系統(tǒng)功耗等都會(huì)產(chǎn)生顯著影響,有必要對(duì)其進(jìn)行深入研究。
為了能對(duì)基于預(yù)知信息的動(dòng)態(tài)頁策略進(jìn)行系統(tǒng)的分析,本文設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)能以較低的硬件代價(jià)同時(shí)支持六種頁策略的SDRAM存儲(chǔ)控制器。
該存儲(chǔ)控制器由以下幾個(gè)主要功能模塊構(gòu)成:訪存請(qǐng)求緩沖、請(qǐng)求解析狀態(tài)機(jī)、數(shù)據(jù)寫入緩沖、數(shù)據(jù)讀出緩沖等。其中,訪存請(qǐng)求緩沖用于存放用戶訪存請(qǐng)求;請(qǐng)求解析狀態(tài)機(jī)則負(fù)責(zé)將訪存請(qǐng)求緩沖的模塊依次取出,并將其翻譯成SDRAM命令序列;數(shù)據(jù)寫入緩沖,用于接收用戶數(shù)據(jù),并在合適的時(shí)機(jī)將其送入SDRAM;數(shù)據(jù)讀出緩沖,用于接收來自SDRAM的數(shù)據(jù),并將其以約定的格式送回用戶??傮w結(jié)構(gòu)如圖2所示。
Figure 2 Architecture of the memory controller圖2 存儲(chǔ)控制器總體結(jié)構(gòu)
請(qǐng)求解析狀態(tài)機(jī)是存儲(chǔ)控制器的核心模塊。該狀態(tài)機(jī)根據(jù)SDRAM頁緩沖中的數(shù)據(jù)是否有效、訪存請(qǐng)求地址是否命中頁緩沖等信息,決定是否在SDRAM讀寫命令之前發(fā)送激活命令、預(yù)充電命令;然后,根據(jù)頁策略控制信息,決定是發(fā)送帶預(yù)充電功能的SDRAM讀寫命令,還是發(fā)送不帶預(yù)充電功能的SDRAM讀寫命令。請(qǐng)求解析狀態(tài)機(jī)的算法狀態(tài)圖如圖3所示。
為了實(shí)現(xiàn)基于預(yù)知信息的SDRAM動(dòng)態(tài)頁策略,需要由訪存請(qǐng)求緩沖模塊向請(qǐng)求解析狀態(tài)機(jī)提供頁策略控制信息。該信息為位寬為1的控制位,當(dāng)其取值為1時(shí),表示需要采用頁打開策略;當(dāng)其取值為0時(shí),表示需要采用頁關(guān)閉策略。該控制位的取值可由所采用的頁策略、后續(xù)請(qǐng)求的頁命中情況動(dòng)態(tài)確定。其生成邏輯的實(shí)現(xiàn)結(jié)構(gòu)如圖4所示。
Figure 3 Algorithm state diagram of the request decomposing state machine圖3 請(qǐng)求解析狀態(tài)機(jī)的算法狀態(tài)圖
Figure 4 Generation of the page controlling policy圖4 頁策略控制信息的生成
在上述結(jié)構(gòu)中,“非預(yù)知/預(yù)知”開關(guān)用于選擇是否采用“基于預(yù)知信息的頁策略”,“預(yù)測/非預(yù)測”開關(guān)用于選擇是否采用“基于預(yù)測機(jī)制的頁策略”,“頁打開/關(guān)閉策略”開關(guān)用于選擇是采用頁打開策略或是采用頁關(guān)閉策略。
當(dāng)“非預(yù)知/預(yù)知”開關(guān)取值為1時(shí),所控制的2選1邏輯輸出為0,該輸出將作為下一級(jí)選擇邏輯的控制開關(guān)值,因此,由地址對(duì)比邏輯所生成的“實(shí)測保持頁打開”信息將被忽略,此時(shí),將采用“非預(yù)知”類型的頁策略。
當(dāng)“非預(yù)知/預(yù)知”開關(guān)取值為0時(shí),所控制的2選1邏輯輸出為“請(qǐng)求FIFO非空”值,該輸出將作為下一級(jí)選擇邏輯的控制開關(guān)值。當(dāng)請(qǐng)求FIFO非空時(shí),由地址對(duì)比邏輯所生成的“實(shí)測保持頁打開”信息將被選中,此時(shí)可精確預(yù)知后續(xù)請(qǐng)求的頁策略需求;當(dāng)請(qǐng)求FIFO為空時(shí),將采用頁打開、頁關(guān)閉或者基于預(yù)測的動(dòng)態(tài)頁策略。
各個(gè)頁策略的配置編碼表如表1所示。
Table 1 Configuration codes for page policies表1 頁策略的配置編碼表
其中,模式預(yù)測狀態(tài)機(jī)的算法狀態(tài)圖如圖5所示。
Figure 5 Algorithm state diagram of the mode-prediction state machine圖5 模式預(yù)測狀態(tài)機(jī)的算法狀態(tài)圖
請(qǐng)求FIFO是已有結(jié)構(gòu),2個(gè)地址對(duì)比邏輯、4個(gè)2選1選擇器、1個(gè)模式預(yù)測狀態(tài)機(jī)和用于存放“當(dāng)前正在處理的請(qǐng)求”和“最近一個(gè)已處理請(qǐng)求”的兩個(gè)寄存器是新增結(jié)構(gòu)。其中,各新增結(jié)構(gòu)的硬件實(shí)現(xiàn)代價(jià)分析如下:
(2)2選1選擇器。其邏輯表達(dá)式可記為:a[i]=a[i]·(~s)+b[i]·s。其中,c為邏輯的輸出,a、b為邏輯的輸入,~為“邏輯非”操作,·為“邏輯與”操作,+為“邏輯或”操作。對(duì)于位寬為1的“2選1選擇器”而言,使用2個(gè)與門、1個(gè)非門、1個(gè)或門即可完成邏輯的搭建。
(3)模式預(yù)測狀態(tài)機(jī)。模式預(yù)測狀態(tài)機(jī)由一個(gè)位寬為2的當(dāng)前狀態(tài)寄存器及其對(duì)應(yīng)的次態(tài)生成邏輯構(gòu)成。該狀態(tài)寄存器記為c,其次態(tài)生成邏輯的輸出記為n,頁命中標(biāo)記記為p,根據(jù)模式預(yù)測狀態(tài)機(jī)的工作原理圖,可以得到次態(tài)生成邏輯的表達(dá)式如下:
其次態(tài)生成邏輯使用16個(gè)與門、6個(gè)或門、12個(gè)非門即可搭建完成。
由以上分析可知,所需要的新增硬件結(jié)構(gòu)實(shí)現(xiàn)代價(jià)很小。
為了深入分析基于預(yù)知信息的SDRAM動(dòng)態(tài)頁策略優(yōu)化效果,作者使用Gem5模擬器搭建了1核心、2核心、4核心、8核心等四個(gè)不同核心數(shù)量的實(shí)驗(yàn)系統(tǒng)。各個(gè)核心通過總線相連,共享同一個(gè)訪存通路。各系統(tǒng)中每個(gè)核心的主要硬件參數(shù)如表2所示。
本文采用SPEC cpu2006測試套件作為測試激勵(lì)。本文隨機(jī)選取了9個(gè)測試程序,運(yùn)行在四個(gè)不同核心數(shù)量的實(shí)驗(yàn)系統(tǒng)上。每個(gè)系統(tǒng)均對(duì)頁關(guān)閉策略、頁打開策略、基于預(yù)測的動(dòng)態(tài)頁策略、基于預(yù)知信息的頁關(guān)閉策略、基于預(yù)知信息的頁打開策略、同時(shí)基于預(yù)知信息和預(yù)測機(jī)制的頁策略等六種策略進(jìn)行測試。
Table 2 Hardware parameters of the experimental system表2 實(shí)驗(yàn)系統(tǒng)的硬件參數(shù)
對(duì)于實(shí)驗(yàn)結(jié)果,本文重點(diǎn)關(guān)注未施加/已施加預(yù)知信息的頁策略之間的訪存帶寬差異。例如,“頁關(guān)閉策略”和“基于預(yù)知信息的頁關(guān)閉策略”之間的性能差異、“頁打開策略”和“基于預(yù)知信息的頁打開策略”之間的性能差異、“基于預(yù)測的動(dòng)態(tài)頁策略”和“同時(shí)基于預(yù)知信息和預(yù)測機(jī)制的頁策略”之間的性能差異。
此外,為了衡量未施加/已施加預(yù)知信息的兩組頁策略各自的性能數(shù)據(jù)的離散程度,本文引入“相對(duì)極差”這一統(tǒng)計(jì)學(xué)當(dāng)中的常用統(tǒng)計(jì)指標(biāo)。該指標(biāo)主要用于比較不同組別數(shù)據(jù)的離散程度,其取值越大,表示該組數(shù)據(jù)的離散程度越大;其取值越小,表示該組數(shù)據(jù)的離散程度越小。計(jì)算方法為:
其中,RR表示相對(duì)極差,xmax和xmin分別表示測量數(shù)據(jù)中的最大值和最小值,μ表示測量數(shù)據(jù)的平均數(shù)。
實(shí)驗(yàn)結(jié)果如圖6所示。圖6的縱坐標(biāo)為不同頁策略所獲得的訪存帶寬,橫坐標(biāo)為不同核心數(shù)量下的測試激勵(lì)。其中,每一項(xiàng)測試激勵(lì)都使用六種頁策略進(jìn)行測試,其測試結(jié)果從左至右分別對(duì)應(yīng)著頁關(guān)閉策略、基于預(yù)知信息的頁關(guān)閉策略、頁打開策略、基于預(yù)知信息的頁打開策略、基于預(yù)測的動(dòng)態(tài)頁策略、同時(shí)基于預(yù)知信息和預(yù)測機(jī)制的動(dòng)態(tài)頁策略。
Figure 6 Experimental results圖6 實(shí)驗(yàn)結(jié)果
Figure 7 Relative range of memory bandwidth of the two page policies圖7 兩組頁策略訪存帶寬的相對(duì)極差
從上述實(shí)驗(yàn)數(shù)據(jù)中可以看出,當(dāng)在基礎(chǔ)頁策略上施加預(yù)知信息進(jìn)行優(yōu)化后,訪存帶寬均獲改善,最好情況下,實(shí)際訪存帶寬可提升42%強(qiáng)。此外,對(duì)于未施加預(yù)知信息的頁關(guān)閉、頁打開、基于預(yù)測的動(dòng)態(tài)頁策略,三者之間的訪存性能差異較大,其相對(duì)極差最大可達(dá)37%;而對(duì)于基于預(yù)知信息的頁關(guān)閉、基于預(yù)知信息的頁關(guān)閉頁打開、同時(shí)基于預(yù)知信息和預(yù)測機(jī)制的動(dòng)態(tài)頁策略,三者之間的性能差異普遍顯著降低,均不超過19%。特別地,對(duì)于8核心系統(tǒng),后三者的相對(duì)極差最大僅為6%,如圖7所示。這說明三種基于預(yù)知信息的頁策略之間的性能差異不大,均可獲得較理想的實(shí)際訪存帶寬。
對(duì)于每一項(xiàng)測試激勵(lì)而言,基于預(yù)知信息的三種頁策略(頁打開、頁關(guān)閉、基于預(yù)測的動(dòng)態(tài)頁策略)的性能相對(duì)優(yōu)劣如表3所示。
Table 3 Performance comparison of the three page policies based on advance information表3 三種基于預(yù)知信息的頁策略性能比較
從表3中可以看出,對(duì)于大多數(shù)測試激勵(lì),同時(shí)基于預(yù)知信息和預(yù)測機(jī)制的動(dòng)態(tài)頁模式調(diào)度策略最優(yōu),基于預(yù)知信息的頁打開策略性能略差,基于預(yù)知信息的頁關(guān)閉策略性能最差。
綜上所述,基于預(yù)知信息的三類頁策略均能有效提升系統(tǒng)訪存性能。三者之中相對(duì)而言,“同時(shí)基于預(yù)知信息和預(yù)測機(jī)制的動(dòng)態(tài)頁模式調(diào)度策略”性能最優(yōu),帶寬最高的測試項(xiàng)數(shù)最多,即適應(yīng)范圍最廣。
對(duì)于SDRAM頁策略,已經(jīng)有若干相關(guān)研究工作。除了最基本的頁打開、頁關(guān)閉兩種固定頁策略[2]以外,還出現(xiàn)了若干混合使用頁打開/頁關(guān)閉兩種頁策略的動(dòng)態(tài)頁策略。
這些動(dòng)態(tài)頁策略可分為三類。基于預(yù)測的動(dòng)態(tài)頁策略、基于定時(shí)器的動(dòng)態(tài)頁策略、基于預(yù)知信息的動(dòng)態(tài)頁策略。
文獻(xiàn)[4~10]都是基于預(yù)測的動(dòng)態(tài)頁策略?;陬A(yù)測的動(dòng)態(tài)頁策略可分為兩種,第一種基于歷史訪存序列進(jìn)行預(yù)測,第二種是基于定時(shí)器機(jī)制進(jìn)行預(yù)測?;跉v史訪存序列的動(dòng)態(tài)頁策略,其基本原理是利用訪存序列的歷史信息,對(duì)后續(xù)訪存請(qǐng)求的頁命中情況進(jìn)行預(yù)測,以選擇合適的頁策略。其中,文獻(xiàn)[4]使用有限狀態(tài)自動(dòng)機(jī)記錄歷史信息,最多記錄4個(gè)歷史訪存請(qǐng)求的頁命中情況;文獻(xiàn)[5]則是僅記錄歷史訪存序列中的頁不命中次數(shù),所記錄的歷史頁不命中最大次數(shù)動(dòng)態(tài)可調(diào)整;文獻(xiàn)[6,7]可記錄連續(xù)16個(gè)以上的歷史訪存請(qǐng)求的頁命中情況;文獻(xiàn)[8]則是利用周期采樣技術(shù)對(duì)歷史訪存請(qǐng)求的頁命中情況進(jìn)行分析。
文獻(xiàn)[9,10]都是基于定時(shí)器的動(dòng)態(tài)頁策略,該策略的基本原理是每次訪存之后,保持頁打開一定時(shí)間(該時(shí)間長度由定時(shí)器決定),如無新的請(qǐng)求到來,則頁關(guān)閉。其中,文獻(xiàn)[9]中的定時(shí)器取值固定不變,文獻(xiàn)[10]中的定時(shí)器的取值隨著訪存序列特征的變動(dòng)而動(dòng)態(tài)變化。
文獻(xiàn)[11,12]則采用了基于預(yù)知信息的動(dòng)態(tài)頁策略。該策略不再利用訪存序列的歷史信息對(duì)后續(xù)訪存請(qǐng)求的頁命中情況進(jìn)行預(yù)測,而是直接觀察后續(xù)訪存請(qǐng)求的頁命中情況,以選擇合適的頁策略。其中,文獻(xiàn)[11]由處理器核心向存儲(chǔ)控制器提供后續(xù)訪存請(qǐng)求的頁命中情況,文獻(xiàn)[12]則由存儲(chǔ)控制器內(nèi)部的訪存請(qǐng)求緩沖自行計(jì)算后續(xù)訪存請(qǐng)求的頁命中情況。
上述混合使用頁打開/頁關(guān)閉兩種頁策略的動(dòng)態(tài)頁策略的效果,和對(duì)訪存序列行為特征的契合程度密切相關(guān)。總體來說,基于預(yù)知信息的動(dòng)態(tài)頁策略的適應(yīng)面相對(duì)較廣,但是仍對(duì)相當(dāng)數(shù)量的訪存序列適應(yīng)性較差,因此本文進(jìn)行了進(jìn)一步的深入研究。
本文對(duì)三類主要的基于預(yù)知信息的動(dòng)態(tài)頁策略進(jìn)行了系統(tǒng)研究,并提出了一種同時(shí)基于預(yù)知信息和預(yù)測機(jī)制的SDRAM動(dòng)態(tài)頁策略。該策略可充分利用緩存在FIFO中的待處理訪存請(qǐng)求的地址信息,對(duì)后續(xù)頁命中情況進(jìn)行精確判斷,并以之對(duì)頁策略進(jìn)行管理;而當(dāng)沒有待處理訪存請(qǐng)求可預(yù)知時(shí),則利用所記錄的歷史信息對(duì)后續(xù)頁命中情況進(jìn)行預(yù)測,為后續(xù)請(qǐng)求選擇合適的頁策略。
經(jīng)實(shí)驗(yàn)證實(shí),總體而言,三類基于預(yù)知信息的動(dòng)態(tài)頁策略之間的性能差異較小,均能獲得較理想的訪存帶寬。其中,同時(shí)基于預(yù)知信息和預(yù)測機(jī)制的動(dòng)態(tài)頁策略的性能在三者之中最優(yōu),適應(yīng)面最廣泛。
[1] Sodani A.Intel Xeon Phi processor“knights landing”architectural overview[EB/OL].[2015-11-17].http:∥ www.nersc. gov/assets/uploads/KNL-ISC-2015-Workshop-Keynote.pdf.
[2] Johnson D R,Johnson M R,Kelm J H,et al.Rigel:A 1,024-core single-chip accelerator architecture[J].IEEE Micro,2011,31(4):30-41.
[3] Ahn J,Yoo S,Choi K.Dynamic power management of offchip links for hybrid memory cubes[C]∥Proc of the 51st ACM Annual Design Automation Conference,2014:1-6.
[4] Park S,Park I.History-based memory mode prediction for improving memory performance[C]∥Proc of the 2003IEEE International Symposium on Circuits and Systems,2003:185-188.
[5] Miura S,Ayukawa K,Watanabe T.A dynamic-SDRAM-mode-control scheme for low-power systems with a 32-bit RISC CPU[C]∥Proc of the ACM 2001International Symposium on Low Power Electronics and Design,2001:358-363.
[6] Xu Y,Agarwal A S,Davis B T.Prediction in dynamic SDRAM controller policies[C]∥Proc of the 9th International Workshop on Embedded Computer Systems:Architectures,Modeling,and Simulation,2009:128-138.
[7] Awasthi M,Nellans D W,Balasubramonian R,et al.Prediction based DRAM row-buffer management in the many-core era[C]∥Proc of the 11th IEEE International Conference on Parallel Architectures and Compilation Techniques,2011:183-184.
[8] Xie M,Tong D,F(xiàn)eng Y,et al.Page policy control with memory partitioning for DRAM performance and power efficiency[C]∥Proc of the 2013IEEE International Symposium on Low Power Electronics and Design,2013:298-303.
[9] Kahn O D,Wilcox J R.Method for dynamically adjusting a memory page closing policy:U.S.Patent 6799241[P].2004-9-28.
[10] Sander B T,Madrid P E,Smaus G W.Dynamic idle counter threshold value for use in memory paging policy:U.S.Patent 6976122[P].2005-12-13.
[11] Huan D,Li Z,Hu W,et al.Processor directed dynamic page policy[C]∥Proc of the 11th Asia-Pacific Computer Systems Architecture Conference,2006:109-122.
[12] Binkert N,Beckmann B,Black G,et al.The gem5simulator[J].ACM SIGARCH Computer Architecture News,2011,39(2):1-7.