鬼佬大哥大
  • / 12
  • 下載費用:30 金幣  

一種基于BANK劃分的自適應頁策略確定方法.pdf

摘要
申請專利號:

CN201510450737.8

申請日:

2015.07.28

公開號:

CN105068940A

公開日:

2015.11.18

當前法律狀態:

授權

有效性:

有權

法律詳情: 授權|||實質審查的生效IPC(主分類):G06F 12/08申請日:20150728|||公開
IPC分類號: G06F12/08 主分類號: G06F12/08
申請人: 北京工業大學
發明人: 方娟; 路佳佳; 蔡旻; 郝曉婷; 范清文
地址: 100124北京市朝陽區平樂園100號
優先權:
專利代理機構: 北京思海天達知識產權代理有限公司11203 代理人: 沈波
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201510450737.8

授權公告號:

||||||

法律狀態公告日:

2018.07.31|||2015.12.16|||2015.11.18

法律狀態類型:

授權|||實質審查的生效|||公開

摘要

一種基于Bank劃分的自適應頁策略確定方法,首先進行Bank劃分,使不同核的訪存請求映射到不同的Bank,隔離多個核的訪存請求,徹底消除了多個核訪存請求的相互干擾,最大程度的保留了每一個核的訪存請求的特點。在Bank劃分的基礎上,根據每一個Bank接收的訪存請求的特點動態地分配最優的頁策略。從而達到降低內存功耗,提升系統性能的目的。因為每一個Bank接收的訪存請求的特點不一樣,開放頁策略和關閉頁策略也都有各自的特點,根據每一個Bank接收的訪存請求的特點,為該Bank分配最佳的頁策略。通過本方法可顯著提高Bank的使用率,進而在降低DRAM功耗的基礎上,達到提高系統性能的目的。

權利要求書

1.一種基于Bank劃分的自適應頁策略確定方法,首先進行Bank劃分,使
不同核的訪存請求映射到不同的Bank,隔離多個核的訪存請求,徹底消除了多
個核訪存請求的相互干擾,最大程度的保留了每一個核的訪存請求的特點;在
Bank劃分的基礎上,根據每一個Bank接收的訪存請求的特點動態地分配最優的
頁策略;從而達到降低內存功耗,提升系統性能的目的;
其特征在于:該方法包括如下步驟,
步驟1,實現Bank劃分;
步驟1.1,跟蹤訪存請求,用線程ID標記來自不同核的訪存請求;
步驟1.2,根據訪存請求的線程ID決定該訪存請求映射到的rank地址;
步驟1.3,根據內存控制器的地址映射機制,計算出訪存請求對應的DRAM
地址,所述DRAM地址包括內存通道地址、rank地址、Bank地址、行地址、列
地址;
步驟1.4,根據步驟1.3得出的Bank地址和該訪存請求的線程ID,重新計
算新的Bank地址;
步驟1.5,通過以上幾步對內存地址的重定向,將不同線程的訪存請求映射
到不同的Bank上;
步驟2,通過步驟1,隔離了各個核之間訪存請求的相互干擾,保留了每一
個核的訪存請求的特點;收集統計每一個核訪存請求的特點實現自適應頁策略;
步驟2.1,監控訪存請求,獲取每一個Bank所接收的訪存行為信息;分別
統計每一個Bank接收的訪存請求的數目記為accesses,行命中率記為hitRate;
步驟2.2,根據每一個Bank的accesses和hitRate,為不同的Bank分配不同
的頁策略;accessest為判斷Bank接收訪存請求數目多少的臨界值,hitRatet為判
斷Bank接收訪存請求命中率高低的臨界值;方法如下:
(1)如果所述Bank的accesses小于accessest,為該Bank的行緩存分配閉合
頁策略;
(2)如果所述Bank的accesses大于accessest且hitRate小于hitRatet,為該Bank
的行緩存分配閉合頁策略;
(3)如果所述Bank的accesses大于accessest且hitRate大于hitRatet,為該Bank
的行緩存分配開放頁策略;
步驟2.3,周期性執行步驟2.1,2.2,將根據當前周期的訪存行為信息,在下
一個周期開始時為相應的Bank分配最佳的頁策略。

說明書

一種基于Bank劃分的自適應頁策略確定方法

技術領域

本發明屬于計算機體系內存系統結構領域,具體涉及一種基于Bank劃分的
自適應頁策略確定方法。

背景技術

現代的DRAM內存系統,主要是依靠訪存請求的局部性原理來優化內存系
統的功耗效率和性能,但是隨著片上多核處理器集成了越來越多的核,核與核之
間對共享內存資源的競爭越來越激烈,不同核之間的訪存請求交織在一起,相互
干擾,單個應用的訪存請求的局部性逐漸消失,致使內存的功耗已接近甚至超過
了處理器的功耗。而存儲墻問題,也導致了存儲器已經成為整個系統性能提升的
瓶頸。因此,降低DRAM內存系統的功耗,提高系統性能已經是迫切需要解決
的問題。

內存控制器會根據訪存請求的物理地址和自身的地址映射機制,確定其在
DRAM中具體的位置(包括訪存請求的內存通道的地址,rank地址,Bank地址,
行地址,列地址)。在DRAM內存系統中,Bank(存儲體)是一個包含行和列
的二維結構。每一個Bank只有一個數據區和一個行緩存。行緩存用來存儲Bank
中某一行的數據,Bank中的數據只能從該Bank中的行緩存中被訪問。每一次訪
存請求都必須經歷三個步驟:

1)行激活(rowactivation)。根據行地址把目標行中的數據寫入行緩存。

2)列訪問(columnaccess)。根據列地址對行緩存中的目標行進行列數據
的讀/寫。

3)預充電(precharge)。將存儲在行緩存中的數據寫回Bank的數據區,并
清空行緩存使其處于空閑狀態。

如果目標行已經在行緩存中,只須進行列訪問,稱為行命中;否則稱為行沖
突。行沖突需要首先進行預充電,行激活,然后才能進行列訪問。顯然,行沖突
相比行命中,需要進行更多的行激活和預充電操作,這勢必會引起更多的訪存延
遲和功耗消耗。因此增加行命中率也是優化內存系統的一個關鍵因素。

DRAM內存系統,功耗分成四類:背景功耗(backgroundpower),操作功耗
(operationpower),讀/寫功耗(read/writepower)和輸入/輸出功耗(I/Opower)。不
管是否有訪存請求,背景功耗一直被消耗;操作功耗只消耗在激活行和預充電的
過程中;讀/寫功耗主要消耗在列訪問讀寫數據的過程中;輸入/輸出功耗主要消
耗在數據的輸入/輸出上。在DRAM中,rank是最小的功耗管理單位。當一個rank
中所有的Bank處于空閑狀態時,可以將該rank處于低功耗模式(power-down
mode),此時該rank的背景功耗最小。本發明所降低的功耗主要是指降低背景功
耗和操作功耗。因此,增大rank處于低功耗狀態的機會也是降低功耗的一種有
效方法。

對行緩存的管理方法就是行緩存頁策略,頁策略對于DRAM系統的功耗和
性能有很大的影響,不同的頁策略可以提高內存系統的性能或者降低內存系統的
功耗開銷。有兩種行緩存頁策略:開放頁策略和閉合頁策略。這兩種不同的頁策
略主要的不同在于進行預充電的時機不同。開放頁策略是在列訪問之后延緩對行
緩存的預充電操作,保持該目標行繼續有效直至新的目標行的訪存請求到來,如
果發生行命中,則避免了連續訪問同一目標行需要進行再次激活造成的不必要延
遲和功耗;如果發生行沖突,增加了額外的預充電和行激活的操作,也就增大了
內存額外開銷。閉合頁策略是在列訪問后,立刻將行緩存的數據寫回到數據陣列,
使行緩存處于空閑狀態,接下來的訪存請求就可以直接進行行激活操作。閉合頁
策略不需要考慮下一個訪存請求是否發生行命中。開放頁策略和閉合頁策略各有
特點,但隨著片上處理器集成了越來越多的核,多個核對共享內存資源的爭奪越
來越激烈。不同的訪存請求相互交織在一起,相互干擾,訪存請求的局部性原理
的逐漸消失使得單一的頁策略不再適合多核共享的內存系統。研究表明,最好的
頁策略是根據訪存請求的特點制定的,因此本發明提出自適應頁策略來代替傳統
單一的策略來優化內存性能。

目前,已有一些研究致力于降低DRAM內存系統功耗或系統性能。
Muralidhara等人提出基于內存通道的劃分,其原理是監控應用運行時的訪存行
為,根據不同線程的訪存行為給應用分配不同的內存通道,可以減少不同線程間
使用內存通道的干擾,提高內存功耗效率。但是基于內存通道的劃分,相對來說
劃分的粒度太大,因為系統中線程數一般比內存通道數要多,所以一部分線程必
須被分配到同一內存通道中,共享通道的線程間的訪存請求同樣會相互干擾,影
響內存的性能。MingliXie等人提出基于應用的頁策略,其原理是根據每一個應
用的訪存行為特征,為不同的應用分配不同的頁策略。此方法雖然也是動態的根
據訪存請求的特點動態的分配頁策略,但是每一個應用的訪存請求可以映射到的
Bank的數目是相同的,每一個Bank接收的訪存請求的特點是不同的,如果為一
個應用所對應的所有Bank分配同一種頁策略,就會大大降低每一個Bank的使
用率。XiaoweiShen等人提出了基于行地址的頁策略,其原理是跟蹤每一個訪
存請求的行地址并且根據行地址決定是否關閉行緩存。但是他并沒有考慮多核訪
存請求之間的干擾,也并沒有對內存的功耗有太多的優化。

發明內容

本發明提出了一種基于Bank劃分的自適應頁策略確定方法。首先進行Bank
劃分,使不同核的訪存請求映射到不同的Bank,隔離多個核的訪存請求,徹底
消除了多個核訪存請求的相互干擾,最大程度的保留了每一個核的訪存請求的特
點。在Bank劃分的基礎上,根據每一個Bank接收的訪存請求的特點動態地分
配最優的頁策略。從而達到降低內存功耗,提升系統性能的目的。

為達到上述目的,本發明采用以下技術方案。

步驟1,實現Bank劃分。

步驟1.1,跟蹤訪存請求,用線程ID標記來自不同核的訪存請求。

步驟1.2,根據訪存請求的線程ID決定該訪存請求映射到的rank地址。

步驟1.3,根據內存控制器的地址映射機制,計算出訪存請求對應的DRAM
地址,所述DRAM地址包括內存通道地址、rank地址、Bank地址、行地址、列
地址。

步驟1.4,根據步驟1.3得出的Bank地址和該訪存請求的線程ID,重新計
算新的Bank地址。

步驟1.5,通過以上幾步對內存地址的重定向,將不同線程的訪存請求映射
到不同的Bank上。

步驟2,通過步驟1,隔離了各個核之間訪存請求的相互干擾,保留了每一
個核的訪存請求的特點;收集統計每一個核訪存請求的特點實現自適應頁策略。

步驟2.1,監控訪存請求,獲取每一個Bank所接收的訪存行為信息。分別
統計每一個Bank接收的訪存請求的數目(記為accesses),行命中率(記為hitRate)。

步驟2.2,根據每一個Bank的accesses和hitRate,為不同的Bank分配不同
的頁策略。方法如下:(accessest為判斷Bank接收訪存請求數目多少的臨界值,
hitRatet為判斷Bank接收訪存請求命中率高低的臨界值):

(1)如果所述Bank的accesses小于accessest,為該Bank的行緩存分配閉合
頁策略。

(2)如果所述Bank的accesses大于accessest且hitRate小于hitRatet,為該Bank
的行緩存分配閉合頁策略。

(3)如果所述Bank的accesses大于accessest且hitRate大于hitRatet,為該Bank
的行緩存分配開放頁策略。

步驟2.3,周期性執行步驟2.1,2.2,將根據當前周期的訪存行為信息,在
下一個周期開始時為相應的Bank分配最佳的頁策略。

與現有技術相比,本發明具有以下優點:

以Bank為劃分粒度,將不同核的訪存請求映射到不同的Bank上,從根本
上消除多個核之間訪存請求的相互干擾。保留了每個核訪存請求的原始特征。在
Bank劃分的基礎上,用自適應的頁策略代替了傳統的單一的頁策略。因為每一
個Bank接收的訪存請求的特點不一樣,開放頁策略和關閉頁策略也都有各自的
特點,所以就根據每一個Bank接收的訪存請求的特點,為該Bank分配最佳的
頁策略。通過本方法可顯著提高Bank的使用率,進而在降低DRAM功耗的基
礎上,達到提高系統性能的目的。

附圖說明

為使本發明的目的,方案更加通俗易懂,下面將結合附圖對本發明進一步說
明。

圖1為DRAM內存系統的層次結構圖,內存晶粒之間依據層級由大到小:內
存通道(channel)>雙列直插式存儲模塊(DIMM)>存儲體陣列(rank)>存儲體
(Bank),本方法主要研究Bank這一層;

圖2為行緩存策略的示意圖,行沖突的開銷是行命中的2-5倍,要減少行沖
突,充分利用行命中的優勢;

圖3為多核之間訪存請求相互干擾的圖;

圖4為存儲體劃分方法的示意圖;

圖5為存儲體劃分方法消除干擾的示意圖;

圖6為本發明實施例方法使用的測試程序分組圖;

圖7為本發明實施例方法對行命中率影響的示意圖;

圖8為本發明實施例方法對內存性能影響示意圖;

圖9為本發明實施例方法對DRAM內存功耗的影響示意圖;

具體實施方式

為使本發明的目的,技術方案和優點更加清楚明白,下文中將結合附圖對本
發明的實施例進行詳細說明。

本發明所涉及的是基于Bank劃分的自適應頁策略確定方法,以一個具有1
個內存通道(channel),2rank/channel,8Bank/rank的DRAM內存系統和4個核
的處理器為例。運行的測試程序是單線程的SPECCPU2006,每一個workload
由4個測試程序組成,每一個核運行一個benchmark,共十組workload,如圖6
所示。具體步驟如下:

步驟1,為消除線程間訪存請求的相互干擾,實現Bank劃分。

運行一個workloadgroup(4個測試程序),每個核上運行一個測試程序,這
4個核的訪存請求相互交織在一起,使得訪存的局部性原理逐漸變弱,行沖突率
大大增加。如圖3所示,每一個存儲體接收的訪存請求是來自不同核的,兩個線
程的訪存請求相互干擾,使得原本行命中的變成行沖突,行沖突率大大增加,訪
存延遲增大。

步驟1.1,跟蹤訪存請求,用線程ID標記來自不同核的訪存請求,通過線程
ID可以區分開來自4個核的訪存請求。

步驟1.2,在進行物理地址到DRAM主存地址映射的時候,根據訪存請求的
線程ID決定訪存請求映射到的rank地址。公式如下:

rankID=threadID%numRanks(1)

上式中,threadID指的發送該訪存請求的線程編號,numRanks指的是內存
中rank的個數;

步驟1.3,根據內存控制器的地址映射機制,計算出訪存請求對應的DRAM
地址(包括channelID,BankID,rowID,columnID)。

步驟1.4,根據步驟1.3得出的Bank地址和該訪存請求的線程ID,重新計
算新的Bank地址。方法如下:

如圖4所示,每一個核的訪存請求映射到一個存儲體(Bank)上,隔離開
兩個核的訪存請求,從而避免線程間訪存請求的相互干擾。如圖5所示,將DRAM
主存系統劃分成4組(每組4個Bank),如果將4個線程映射到2個rank上不同
的Bank上,線程0映射到rank0上的Bank0-Bank3,線程2映射到rank0上的
Bank4-Bank7。同樣,線程1映射到rank1上的Bank0-Bank3,線程3映射到rank1
上的Bank4-Bank7。這樣就隔離開4個線程的訪存請求。

步驟1.5,通過以上幾步對內存地址的重定向,為不同的核分配不同的Bank
來隔離各個應用的訪存請求,從根本上消除不同應用訪存請求之間的相互干擾,
提高了行命中率。Bank劃分方法將各個應用的訪存請求隔離,因此,單個應用
的訪存特性就仍然保留,每一個Bank接收的訪存請求的特性也保留下來,這為
自適應頁策略的實現奠定了基礎。Bank劃分的實驗效果用行命中率來衡量,如
圖7所示,就傳統的單一的開放或者關閉的頁策略而言,這10個測試程序組的
行命中率都比較低,尤其是測試程序組3和4(行命中率幾乎為0)。而基于Bank
劃分的自適應頁策略大大增加了行命中率通過消除核之間訪存請求的相互干擾。

步驟2,通過步驟1,隔離了各個核之間訪存請求的相互干擾,保留了每一
個核的訪存請求的特點。以便于收集統計每一個核訪存請求的特點實現自適應頁
策略。

步驟2.1,監控訪存請求,獲取每一個Bank所接收的訪存行為信息。方法
如下:

由于主存功耗和每一個Bank所接收的訪存請求密集度密切相關,因此可以
使用每一個周期內Bank接收的訪存請求的數目accesses來衡量訪存密集程度;
用行命中率hitRate表示行局部性。

(1)在每一個Bank內設置一個accesses計數器記錄該Bank的訪存密集度
accesses。

(2)在每一個Bank內設置一個hit_accesses計數器,記錄該Bank的訪存請
求的命中次數。同時在每一個Bank內添加一個寄存器,記錄上一次訪
問該Bank的訪存請求的rowID,然后用新訪存的地址和寄存器中的
rowID相比,如果相同,行命中次數增加1,相應Bank的hit_accesses
計數器增加1。

(3)用公式hitRate=hit_accesses/accesses,計算Bank的hitRate。其
中,accesses指的是Bank接收的訪存請求的次數,hit_accesses指的是
Bank發生行命中的次數。

步驟2.2,根據每一個Bank的accesses和hitRate,為不同的Bank分配最佳
的頁策略。方法如下(accessest為判斷Bank接收訪存請求密集程度的臨界值,
hitRatet為判斷Bank行局部性高低的臨界值):

(1)如果所述Bank的accesses小于accessest,為該Bank的行緩存分配閉合
頁策略。因為這類Bank接收的訪存請求比較少,就不需要考慮訪存請
求的局部性。而且相鄰兩次訪存請求的時間間隔很大,如果行緩存一直
處于開放的狀態等待下一次訪存請求的到來,不僅增大了訪存延遲,還
會消耗更多的背景功耗。所以為Bank分配閉合頁策略,列訪問之后,
立即關閉行緩存。不僅減小了訪存延遲,而且延長了Bank處于空閑狀
態的時間,增大了rank處于低功耗模式的機會,進一步減小背景功耗。

(2)如果所述Bank的accesses大于accessest且rowHit小于rowHitt,為該Bank
的行緩存分配閉合頁策略。因為Bank的行局部性較低,行沖突的概率
大大增加。沒有必要讓行緩存保留上一次訪存請求的行等待下次訪存請
求的到來,為該Bank分配閉合頁策略,降低訪存延遲,下次的訪存請
求直接進行行激活。

(3)如果所述Bank的accesses大于accessest且rowHit大于rowHitt,為該Bank
的行緩存分配開放頁策略。因為Bank的行局部性較高,訪存請求比較
密集,行命中率大大增加,為該Bank分配開放頁策略。大大減少了行
激活和預充電的次數,不僅降低了操作功耗,也降低了訪存延遲。

步驟2.3,周期性執行步驟2.1,2.2,將根據當前周期的訪存行為信息,在
下一個周期開始時為相應的Bank分配最佳的頁策略。

下面根據實驗結果再做具體的分析:

自適應頁策略對性能的影響用加速比來衡量,如圖8所示:對測試程序組1
到3,每一組對應的4個測試程序的訪存請求比較密集且行命中率高,自適應頁
策略通過減少行激活和預充電的次數,降低了對同一Bank同一行相鄰兩次訪存
請求的延遲,使得系統性能平均增加了11.2%(最高達到14%)。對測試程序組4
到7,每一組對應的4個測試程序的訪存請求是混合型的(有密集型且行命中率
高的,有不密集型的,有密集型但行命中率低的),自適應頁策略的效果更加明
顯,平均提高系統性能39.6%(最高達到55%)。根據每一個Bank接收的訪存請
求自適應的分配頁策略,大大提高了系統性能。對測試程序組8到10,每一組
測試程序相對應的4個核的訪存請求比較稀疏,所以自適應頁策略和單一的頁策
略相比沒有太明顯的效果。自適應頁策略對DRAM內存系統的功耗的影響如圖
9所示:對測試程序組1到3,每一組對應的4個測試程序的訪存請求比較密集
且行命中率高,自適應頁策略通過減少行激活和預充電的次數,使得DRAM內
存功耗平均降低了8.4%(最高降低了14%)。對測試程序組4到7,訪存請求是
混合型,DRAM內存功耗平均降低11.5%(最高降低了29%)。根據每一個Bank
接收的訪存請求自適應的分配頁策略,大大降低了內存系統的功耗。對測試程序
組8到10,每一組測試程序相對應的4個核的訪存請求比較稀疏,所以自適應
頁策略和單一的關閉策略相比沒有太明顯的區別。

關 鍵 詞:
一種 基于 BANK 劃分 自適應 策略 確定 方法
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:一種基于BANK劃分的自適應頁策略確定方法.pdf
鏈接地址:http://www.wwszu.club/p-6385930.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
鬼佬大哥大