一種多核處理器系統(tǒng)的目錄緩存管理方法
【專利摘要】本發(fā)明公開了一種多核處理器系統(tǒng)的目錄緩存管理方法,包括以下步驟:利用內(nèi)存地址的緩存塊索引位對目錄緩存進行劃分;于系統(tǒng)物理內(nèi)存分配時,通過為不同并行單元的數(shù)據(jù)分配不同的緩存塊索引位,控制所述并行單元所占用的目錄緩存容量。本發(fā)明公開的多核處理器系統(tǒng)的目錄緩存管理方法,能夠解決由于目錄緩存的容量有限,不同并行單元的數(shù)據(jù)在目錄緩存中的沖突造成系統(tǒng)性能降低的問題。
【專利說明】—種多核處理器系統(tǒng)的目錄緩存管理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及多核處理器系統(tǒng),尤其涉及一種多核處理器系統(tǒng)的目錄緩存管理方法。
【背景技術(shù)】
[0002]隨著半導(dǎo)體工藝技術(shù)的進步,片上晶體管的數(shù)目依舊符合摩爾定律,每36個月翻一番。然而受限于處理器散熱與封裝技術(shù)的限制,商業(yè)串行處理器已經(jīng)遇到了進一步提升性能的瓶頸。為了獲得更好的性能面積比與性能功耗比,依靠挖掘線程級并行的片上多處理器與多核處理器成為目前的主流的架構(gòu)。
[0003]其中,私有緩存是提升多核處理器性能的重要組件,維護私有緩存數(shù)據(jù)的一致性是多核處理器設(shè)計中的重點與難點?;趥陕牭膮f(xié)議與基于目錄的協(xié)議是目前最常用的兩種緩存一致性協(xié)議。基于偵聽的協(xié)議,設(shè)計簡單,通過廣播的方式通知所有的私有數(shù)據(jù)備份來維護數(shù)據(jù)一致性,但是廣播的網(wǎng)絡(luò)開銷巨大,使其不具備可擴展性。基于目錄的協(xié)議,通過集中式的目錄記錄所有的內(nèi)存塊在私有緩存中的備份情況,避免了廣播的開銷,更適合大規(guī)模的并行系統(tǒng)。
[0004]在基于目錄的緩存一致性協(xié)議中,為了維護私有數(shù)據(jù)的一致性,處理器每次內(nèi)存訪問都首先要訪問目錄,因此其訪問延遲對多核處理器的性能極為重要。為了降低訪問延遲,研究人員采用了片上目錄緩存來維護一致性。與目錄記錄整個內(nèi)存的備份情況不同,片上目錄緩存僅記錄處理器內(nèi)部私有緩存中的數(shù)據(jù)備份情況,片上目錄緩存的容量對執(zhí)行負(fù)載程序的性能極為關(guān)鍵。
[0005]圖1所示多核處理器系統(tǒng)的結(jié)構(gòu)示意圖。圖2所示為圖1所示處理器一次訪存流程圖。如圖1所示,多核處理器例如由四個Tile組成,每個Tile包括一個處理器核、一個LlCache與一個L2Cache,每個Tile通過內(nèi)部網(wǎng)絡(luò)共享L3Cache。目錄緩存(DirectoryCache)與L3Cache同層用來維護該處理器內(nèi)部的一致性。處理器通過外部網(wǎng)絡(luò)與內(nèi)存(DDR)以及其他處理器相連。如圖2所示,處理器核執(zhí)行訪存指令,經(jīng)過流水線通過訪存部件發(fā)到LICache,如果LlCache命中則返回數(shù)據(jù),如果LlCache缺失則將數(shù)據(jù)請求發(fā)往L2Cache。請求在L2Cache查找,如果L2Cache命中則返回數(shù)據(jù),如果L2Cache缺失則發(fā)往目錄緩存。在目錄緩存中查找,如果命中則根據(jù)緩存一致性協(xié)議維護私有緩存的數(shù)據(jù)一致性,如果缺失,則在目錄緩存中尋找一個空閑位置,如果沒有空閑位置,則執(zhí)行替換,執(zhí)行替換過程中需要使無效私有緩存中的數(shù)據(jù)備份。最后,從L3Cache或者DDR中獲取數(shù)據(jù)并返回。
[0006]由于片上目錄緩存的容量問題是隨著處理器內(nèi)部的核數(shù)快速增長而出現(xiàn)的,目前相關(guān)研究尚處于起步階段,主要的研究工作集中在降低目錄緩存的面積、避免組內(nèi)沖突、避免私有數(shù)據(jù)的使無效消息等。然而,針對目錄緩存的數(shù)據(jù)隔離與容量控制的研究工作,目前仍是空白。
【發(fā)明內(nèi)容】
[0007]本發(fā)明提供一種多核處理器系統(tǒng)的目錄緩存管理方法,用來解決由于目錄緩存的容量有限,不同并行單元的數(shù)據(jù)在目錄緩存中的沖突造成系統(tǒng)性能降低的問題。
[0008]為了解決上述技術(shù)問題,本發(fā)明提供一種多核處理器系統(tǒng)的目錄緩存管理方法,包括以下步驟:利用內(nèi)存地址的緩存塊索引位對目錄緩存進行劃分;于系統(tǒng)物理內(nèi)存分配時,通過為不同并行單元的數(shù)據(jù)分配不同的緩存塊索引位,控制所述并行單元所占用的目錄緩存容量。
[0009]進一步地,所述利用內(nèi)存地址的緩存塊索引位對目錄緩存進行劃分的過程包括:在目錄緩存中,將內(nèi)存地址分成Tag-1ndex-Offset三段,其中,Tag是內(nèi)存地址的標(biāo)簽,用來決定所述內(nèi)存地址是否在目錄緩存中命中,Index是一組緩存塊的索引位,Offset是緩存塊的偏移。
[0010]進一步地,于系統(tǒng)物理內(nèi)存分配時,通過為不同并行單元的數(shù)據(jù)分配不同的緩存塊索引位,控制所述并行單元所占用的目錄緩存容量的過程包括:在物理內(nèi)存中,內(nèi)存地址分成PageNumber-PageOffset兩段,其中PageNumber是物理頁號,PageOffset是頁內(nèi)偏移,所述緩存塊的索引位與所述物理頁號有重合部分,通過對物理頁號的管理控制數(shù)據(jù)在目錄緩存中的位置,其中,所述緩存塊的索引位與所述物理頁號重合部分定義為頁著色位。
[0011]進一步地,同一并行單元的數(shù)據(jù)分配在頁著色位相同的物理內(nèi)存頁中。
[0012]進一步地,本發(fā)明提供的多核處理器系統(tǒng)的目錄緩存管理方法,還包括以下步驟:利用爬山法動態(tài)調(diào)整不同并行單元的數(shù)據(jù)所占用的目錄緩存容量,尋找最優(yōu)解。
[0013]進一步地,所述利用爬山法動態(tài)調(diào)整不同并行單元的數(shù)據(jù)所占用的目錄緩存容量,尋找最優(yōu)解的過程包括:S1:為每個并行單元分配容量有限的目錄緩存塊;S2:增加分配給所述并行單元的目錄緩存塊容量,統(tǒng)計性能監(jiān)控寄存器(PMC)的執(zhí)行狀態(tài);S3:判斷所述并行單元的性能是否獲得提升,若所述并行單元可以獲得性能提升,則返回S2,若所述并行單元的性能不再提升,則當(dāng)前為所述并行單元分配的目錄緩存容量即為最優(yōu)解。
[0014]進一步地,所述并行單元為不同進程或同一進程中的不同線程。
[0015]本發(fā)明提供的多核處理器系統(tǒng)的目錄緩存管理方法,通過頁著色的方法,在片上目錄緩存中隔離不同并行單元的數(shù)據(jù),并基于爬山法調(diào)整并行單元占用目錄緩存的容量,獲取系統(tǒng)的最大性能。
【專利附圖】
【附圖說明】
[0016]圖1所示為多核處理器系統(tǒng)的結(jié)構(gòu)示意圖;
[0017]圖2所示為圖1所示處理器一次訪存流程圖;
[0018]圖3所示為本發(fā)明較佳實施例提供的目錄緩存的索引方式示意圖;
[0019]圖4所示為本發(fā)明較佳實施例提供的物理頁號劃分目錄緩存示意圖;
[0020]圖5所示為本發(fā)明較佳實施例提供的爬山法的流程圖。
【具體實施方式】
[0021]下面結(jié)合附圖及實施例對本發(fā)明作進一步詳細(xì)說明。
[0022]圖3所示為目錄緩存的索引方式,圖3所示的是一個四路組相聯(lián)的目錄緩存。在訪問目錄緩存的過程中,訪存地址被劃分成了三段Tag-1ndex-Offset。其中,Tag是地址的標(biāo)簽,用來決定地址是否在目錄緩存中命中;Index是一組緩存塊的索引位,用來索引每一路(Way)中的某個緩存塊,對于IMB容量的四路組相聯(lián)結(jié)構(gòu),Index需要12Bits ;0ffset是緩存塊的塊內(nèi)偏移,由緩存塊的大小決定,對于64字節(jié)的緩存塊,Offset是6Bits。
[0023]圖4所示為根據(jù)物理頁號劃分目錄緩存的示意圖。如圖4所示,上半部分展示了內(nèi)存管理算法對內(nèi)存地址的組織,內(nèi)存的物理地址被分成了物理頁號(PageNumber)與頁內(nèi)偏移(PageOffset)兩段。其中,物理頁號用來索引物理頁。下半部分給出了目錄緩存對內(nèi)存地址的組織,內(nèi)存的物理地址被分成了三段標(biāo)簽(Tag)、塊索引(Index)以及塊內(nèi)偏移(Offset),其中塊索引用來查找緩存塊。在一個IMB容量的四路組相聯(lián)目錄緩存中(塊長度為64字節(jié)),物理頁號與塊索引有6Bits的數(shù)據(jù)位重疊,在此,定義為頁著色位。在操作系統(tǒng)的物理內(nèi)存分配當(dāng)中,可以將同一個并行單元的數(shù)據(jù)分配在頁著色位相同的物理內(nèi)存當(dāng)中。如此,該并行單元的數(shù)據(jù)在目錄緩存中會占用固定的幾組緩存塊,通過對物理頁號的管理,可以控制數(shù)據(jù)在目錄緩存中的位置,從而實現(xiàn)不同并行單元之間的目錄緩存數(shù)據(jù)隔離。
[0024]在實際的執(zhí)行系統(tǒng)中,不同程序?qū)δ夸浘彺娴男枨蟛煌?。部分程序,對目錄容量不敏?這類程序?qū)?shù)據(jù)訪問呈數(shù)據(jù)流式(Stream),局部性很差,但是數(shù)據(jù)集很大。部分程序,對目錄容量敏感,分配更多的目錄緩存可以取得相應(yīng)的性能提升。為了最大化系統(tǒng)性能,本發(fā)明基于爬山法動態(tài)調(diào)整每個并行單元占用的目錄緩存容量,需找最優(yōu)解。圖5所示為本發(fā)明較佳實施例的爬山法的流程圖。如圖5所示,首先,為每個并行單元分配固定容量的目錄緩存塊(如步驟SI);然后,如步驟S2,增加分配給并行單元的目錄緩存容量,統(tǒng)計性能監(jiān)控寄存器(PMC)的執(zhí)行狀態(tài),具體而言,抽樣并行單兀的Ll-cache-miss、L2-cache_miss等PMC寄存器統(tǒng)計程序的執(zhí)行狀態(tài);接著,判斷并行單元的性能是否提升(如步驟S3),若并行單元有性能提升,則返回步驟S2,即進一步增加為其分配的目錄緩存容量,若沒有性能提升,則當(dāng)前為并行單元分配的目錄緩存容量即為最優(yōu)解(如步驟S4)。
[0025]以上顯示和描述了本發(fā)明的基本原理和主要特征和本發(fā)明的優(yōu)點。本發(fā)明不受上述實施例的限制,上述實施例和說明書中描述的只是說明本發(fā)明的原理,在不脫離本發(fā)明精神和范圍的前提下,本發(fā)明還會有各種變化和改進,這些變化和改進都落入要求保護的本發(fā)明范圍內(nèi)。
【權(quán)利要求】
1.一種多核處理器系統(tǒng)的目錄緩存管理方法,其特征在于,包括以下步驟: 利用內(nèi)存地址的緩存塊索引位對目錄緩存進行劃分; 于系統(tǒng)物理內(nèi)存分配時,通過為不同并行單元的數(shù)據(jù)分配不同的緩存塊索引位,控制所述并行單元所占用的目錄緩存容量。
2.如權(quán)利要求1所述的多核處理器系統(tǒng)的目錄緩存管理方法,其特征在于,所述利用內(nèi)存地址的緩存塊索引位對目錄緩存進行劃分的過程包括:在目錄緩存中,將內(nèi)存地址分成Tag-1ndex-Offset三段,其中,Tag是內(nèi)存地址的標(biāo)簽,用來決定所述內(nèi)存地址是否在目錄緩存中命中,Index是一組緩存塊的索引位,Offset是緩存塊的偏移。
3.如權(quán)利要求2所述的多核處理器系統(tǒng)的目錄緩存管理方法,其特征在于,于系統(tǒng)物理內(nèi)存分配時,通過為不同并行單元的數(shù)據(jù)分配不同的緩存塊索引位,控制所述并行單元所占用的目錄緩存容量的過程包括:在物理內(nèi)存中,內(nèi)存地址分成PageNumber-PageOffset兩段,其中PageNumber是物理頁號,PageOffset是頁內(nèi)偏移,所述緩存塊的索引位與所述物理頁號有重合部分,通過對物理頁號的管理控制數(shù)據(jù)在目錄緩存中的位置,其中,所述緩存塊的索引位與所述物理頁號重合部分定義為頁著色位。
4.如權(quán)利要求3所述的多核處理器系統(tǒng)的目錄緩存管理方法,其特征在于:同一并行單元的數(shù)據(jù)分配在頁著色位相同的物理內(nèi)存頁中。
5.如權(quán)利要求1所述的多核處理器系統(tǒng)的目錄緩存管理方法,其特征在于,還包括以下步驟:利用爬山法動態(tài)調(diào)整不同并行單元的數(shù)據(jù)所占用的目錄緩存容量,尋找最優(yōu)解。
6.如權(quán)利要求5所述的多核處理器系統(tǒng)的目錄緩存管理方法,其特征在于,所述利用爬山法動態(tài)調(diào)整不同并行單元的數(shù)據(jù)所占用的目錄緩存容量,尋找最優(yōu)解的過程包括: S1:為每個并行單元分配容量有限的目錄緩存塊; S2:增加分配給所述并行單元的目錄緩存塊容量,統(tǒng)計性能監(jiān)控寄存器(PMC)的執(zhí)行狀態(tài); S3:判斷所述并行單元的性能是否獲得提升,若所述并行單元可以獲得性能提升,則返回S2,若所述并行單元的性能不再提升,則當(dāng)前為所述并行單元分配的目錄緩存容量即為最優(yōu)解。
7.如權(quán)利要求1、3、4、5或6所述的多核處理器系統(tǒng)的目錄緩存管理方法,其特征在于:所述并行單元為不同進程或同一進程中的不同線程。
【文檔編號】G06F12/08GK104331377SQ201410645205
【公開日】2015年2月4日 申請日期:2014年11月12日 優(yōu)先權(quán)日:2014年11月12日
【發(fā)明者】唐士斌, 陳繼承, 王洪偉, 倪璠 申請人:浪潮(北京)電子信息產(chǎn)業(yè)有限公司