国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種改進的多核共享cache替換方法

      文檔序號:6399584閱讀:324來源:國知局
      專利名稱:一種改進的多核共享cache替換方法
      技術(shù)領(lǐng)域
      本發(fā)明屬于計算機體系結(jié)構(gòu)領(lǐng)域,具體涉及一種改進的多核共享cache替換方法。
      背景技術(shù)
      隨著片上多核逐漸成為高性能微處理器的主流設(shè)計,多核處理器所面臨的一系列問題成為了人們研究的重點。而替換方法的優(yōu)劣是處理器性能的一個重要指標,傳統(tǒng)的LRU替換方法在單核處理器中得到廣泛應(yīng)用,而多核環(huán)境大都采用多核共享最后一級cache (LLC),應(yīng)用的工作集越來越大,L2cache容量不斷增加,cache相聯(lián)度不斷提高,存儲墻以及線程干擾等問題都使得多核處理器性能受到嚴重影響,多核環(huán)境的這一系列變化都使得LRU替換方法和理論最優(yōu)替換方法之間的差距越來越大。因此,如何有效的管理片上L2cache,盡可能的降低缺失率、提高性能已成為多核領(lǐng)域研究的重點。然而,目前多核領(lǐng)域cache的替換方法都還是基于傳統(tǒng)的單核情況下的LRU替換方法,部分研究考慮到cache的訪問頻率,以及在cache的插入推舉策略上進行改進,但也并沒有考慮到多核情況下的大工作集、線程干擾和當前多核共享L2cache所采用的chche列劃分的現(xiàn)狀。

      發(fā)明內(nèi)容
      本發(fā)明在cache劃分的基礎(chǔ)上,考慮到cache列的訪問頻率以及LRU信息,利用cache列的插入推舉策略,盡可能將部分當前使用的工作集保留在cache內(nèi),從而提高cache的命中率。同時方法還考慮到各個核的利用率不同的問題,提出了 cache列竊取方案,使得多核之間更加有效的利用cache資源。本發(fā)明采用缺失率和系統(tǒng)IPC作為評價系統(tǒng)性能的指標,IPC是每個時鐘 執(zhí)行的指令數(shù)(Instruction Per Cycle)。本發(fā)明提供技術(shù)方案如下:本發(fā)明,所述的cache替換策略主要分成三個階段:初始化,替換策略,回溯。初始化是指平均劃分cache列,保證每個核擁有屬于自己的cache列;替換方法又細分為選擇逐出單元,插入訪問單元,提升優(yōu)先級。其中選擇逐出單元表示根據(jù)一定的原則,盡可能選擇效益最小的單元替換出去;插入訪問單元是將從內(nèi)存取出的cache單元放置到cache組的合適位置;優(yōu)先級提升,貝1J是當cache單元命中時,提高cache單元的優(yōu)先級,以利于下次利用局部性原理訪問。Cache替換方法中,每個cache單元通過計數(shù)器記錄該單元的訪問頻率信息,同時有兩個基本的參數(shù):LRU候選范圍M和時間片t。M—般取值在3-5,t取值在100000 5000000個時鐘周期之間。方法的主要過程如下:假設(shè)當前訪問核Corei,劃分給該核的列π ^ = (Lil, Li2..., Lik),要訪問的cache組為s,M個LRU候選列分別為(C1,C2…,Cm),候選列由組s中訪問頻率最低的M個列組成,MRU列為最近訪問的列。每一組的候選列跟核劃分信息無關(guān),得出候選列后,根據(jù)當前訪問核的列劃分信息表,cache列的訪問頻率以及核竊取信息表,選擇相應(yīng)的替換策略。
      —種改進的多核共享cache替換方法,其特征在于包含以下步驟:1、初始化:1.1)初始化cache列劃分信息表和路竊取信息表,以核為單位將cache列平均劃分,保證每個核擁有自己的cache列,列劃分信息表為矩陣IAXB,々表示核的個數(shù),B表示能訪問的所有cache列的個數(shù),其中Iu為矩陣Iaxb中第i行第j列的元素,Iij表示cache的第j列是否屬于第i個核Corei ;路竊取信息表為矩陣Laxa,A表示核的個數(shù),Lij為矩陣Laxa中第i行第j列的元素,Lij包含兩類信息,其一為核Corei是否竊取了核Corej對應(yīng)的cache的存儲單元,其二為被竊取的核COl^的存儲單元對應(yīng)的組號集合;1.2)當處理器核Corei發(fā)出一個L2Cache的訪問請求時,根據(jù)所要訪問的地址確定地址所映射的Cache組q和Corei的列劃分信息表確定屬于Corei的cache存儲單元集合,并在存儲單元集合中判斷是否命中,1.2.1)如果命中,存取cache存儲單元,命中單元即為請求所要訪問的單元,繼續(xù)執(zhí)行步驟3 ;1.2.2)如果未命中,判斷核Corei是否竊取了其他核的列;1.2.2.1)如果核Corei竊取了核Coreni的列,根據(jù)路竊取信息表確定被竊取的核Coreffl的存儲單元對應(yīng)的組號集合Q ;并判斷q是否屬于Q ;

      1.2.2.1.1)如果q屬于Q,則搜索組q中核corej^應(yīng)的存儲單元;判斷是否命中;1.2.2.1.1.1)如果命中,存取cache存儲單元,繼續(xù)執(zhí)行步驟4 ;1.2.2.1.1.2)未命中,順序執(zhí)行步驟2 ;1.2.2.1.2)如果q不屬于Q,順序執(zhí)行步驟2 ;1.2.2.2、如果核Corei并未竊取其他核的列,順序執(zhí)行步驟2 ;2、cache 替換方法:2.1)根據(jù)Cache組q對應(yīng)的候選路信息Mq,核Corei的列劃分信息,以及核Corei對應(yīng)的cache路竊取信息選擇逐出單元,所述的候選路Mq表示Cache組q中按訪問頻率升序排列中的前M個存儲單元對應(yīng)的Cache列號,選擇逐出單元的步驟如下:2.1.1)如果候選路信息Mq對應(yīng)的存儲單元存在屬于Corei的存儲單元Ci,則Ci為逐出單元,繼續(xù)執(zhí)行步驟(2.2);否則順序執(zhí)行步驟2.1.2);2.1.2)根據(jù)路竊取信息表,判斷corek是否竊取了核Corei的存儲單元;2.1.2.1)如果存在corek竊取了核Corei的存儲單元,判斷竊取的是否是組q中的cache存儲單元;2.1.2.1.1)如果是,將組q中所對應(yīng)的存儲單元選為逐出單元,更新路竊取信息表,繼續(xù)執(zhí)行步驟(2.2),2.1.2.1.2)如果不是,順序執(zhí)行步驟2.1.3)2.1.2.2)如果Corek沒有竊取其他核的存儲單元,順序執(zhí)行步驟2.1.3)2.1.3)選擇候選路信息Mq中訪問頻率最低的存儲單元作為逐出單元,順序執(zhí)行步驟(2.2);(2.2)將要存取的數(shù)據(jù)塊插入到cache中優(yōu)先級為M的存儲單元f中,更新存儲單元f的訪問頻率信息,繼續(xù)執(zhí)行步驟4,其中用LRU信息排列優(yōu)先級;
      3、提升優(yōu)先級:當cache存儲單元命中時,更新命中的cache存儲單元的優(yōu)先級,更新步驟如下:如果命中的存儲單元屬于候選路信息M,,則將命中的存儲單元的優(yōu)先級提升為最近訪問的路MRU,繼續(xù)下一步;如果命中的存儲單元不屬于候選路信息Mq,則將命中的cache存儲單元的優(yōu)先級提升一級,繼續(xù)下一步;4、回溯階段,程序運行時間t后,如果程序結(jié)束繼續(xù)執(zhí)行步驟5,否則,清除所有cache存儲單元訪問頻率信息和路竊取信息表,并返回步驟1.2);5、輸出運行結(jié)果,分析缺失率,功耗,以及整體IPC。本發(fā)明將新插入的cache單元插入到M位置,有效地防止了無用單元長時間占據(jù)cache空間;候選列命中時將其直接推舉到MRU位,滿足了 cache局部性原理,防止出現(xiàn)重用塊的抖動現(xiàn)象。當不是后選列命中時,使用逐級推舉策略,也是為了中和無用單元長時間占據(jù)cache空間,盡量將當前工作集保留在cache中的一個有效方法。之所以采用這種分類推舉策略,是考慮到cache單元的訪問模式,對于屬于候選列的cache單元,是最近從內(nèi)存插入到L2cache的單元,根據(jù)程序的局部性訪問原理,很有可能下次也會訪問到此cache單元,因此退居到MRU位置。對于不屬于候選列的cache單元,意味著已經(jīng)訪問了不止一次,下次被訪問到的可能性有所降低,因此采用逐級推舉策略,而不是直接推舉到MRU位置。本發(fā)明還為在一定時間周期后清零計數(shù)器,有效地降低了開銷。同時核與核之間增加了一個路竊取信息表,來存放各個核之間的竊取情況,利用率高的核可以充分利用屬于利用率低的核的單元。這些竊取信息可以通過cache替換進行清除,同時每隔一個時間片t進行全部清除,有效地進行維護。在cache替換時充分考慮屬于各個核的單元的利用情況,有效利用存在閑置單兀的核,從而提聞cache命中率。


      圖1是本發(fā)明所述的cache列劃分以示意圖;圖2是本發(fā)明所述的竊取信息表示意3是本發(fā)明流程圖;圖4是本發(fā)明所述cache替換方法流程圖;圖5.1.1訪問M中的單元的優(yōu)先級提升方法示意圖-提升前;圖5.1.2訪問M中的單元的優(yōu)先級提升方法示意圖-提升后;圖5.2.1訪問M之外的單元的優(yōu)先級提升方法示意圖-提升前;圖5.2.2訪問M之外的單元的優(yōu)先級提升方法示意圖_提升后;
      具體實施方式
      :下面以一個兩級Cache結(jié)構(gòu)的片上多核處理器為例,對本發(fā)明所述的替換方法進行詳細的描述。配置如表1:
      權(quán)利要求
      1.一種改進的多核共享cache替換方法,其特征在于包含以下步驟: 1)、初始化: 1.0初始化cache列劃分信息表和路竊取信息表,以核為單位將cache列平均劃分,保證每個核擁有自己的cache列,列劃分信息表為矩陣IAXB,A表示核的個數(shù),B表示能訪問的所有cache列的個數(shù),其中Iu為矩陣Iaxb中第i行第j列的元素,Iij表示cache的第j列是否屬于第i個核Corei ; 路竊取信息表為矩陣Laxa,A表示核的個數(shù),Lu為矩陣Laxa中第i行第j列的元素,Lij包含兩類信息,其一為核Corei是否竊取了核Corej對應(yīng)的cache的存儲單元,其二為被竊取的核Corej的存儲單元對應(yīng)的組號集合; 1.2)當處理器核Corei發(fā)出一個L2Cache的訪問請求時,根據(jù)所要訪問的地址確定地址所映射的Cache組q和Corei的列劃分信息表確定屬于Corei的cache存儲單元集合,并在存儲單元集合中判斷是否命中, 1.2.1)如果命中,存取cache存儲單元,命中單元即為請求所要訪問的單元,繼續(xù)執(zhí)行步驟3 ; 1.2.2)如果未命中,判斷核Corei是否竊取了其他核的列; 1.2.2.1)如果核Corei竊取了核corem的列,根據(jù)路竊取信息表確定被竊取的核corem的存儲單元對應(yīng)的組號集合Q ;并判斷q是否屬于Q ; 1.2.2.1.1)如果q屬于Q,則搜索組q中核Corem對應(yīng)的存儲單元;判斷是否命中; 1.2.2.1.1.1)如果命中,存取cache存儲單元,繼續(xù)執(zhí)行步驟4 ; 1.2.2.1.1.2)如果未命中,順序執(zhí)行步驟2 ; 1.2.2.1.2)如果q不屬于Q,順序執(zhí)行步驟2 ; 1.2.2.2)如果核Corei并未竊取其他核的列,順序執(zhí)行步驟2 ; 2)、cache替換算法: (2.1)根據(jù)Cache組q對應(yīng)的候選路信息Mq,核Corei的列劃分信息,以及核Corei對應(yīng)的cache路竊取信息選擇逐出單元,所述的候選路Mq表示Cache組q中按訪問頻率升序排列中的前M個存儲單元對應(yīng)的Cache列號,選擇逐出單元的步驟如下: .2.1.1)如果候選路信息Mq對應(yīng)的存儲單元存在屬于Corei的存儲單元Ci,則Ci為逐出單元,繼續(xù)執(zhí)行步驟(2.2);否則順序執(zhí)行步驟2.1.2); .2.1.2)根據(jù)路竊取信息表,判斷Corek是否竊取了核Corei的存儲單元; .2.1.2.1)如果存在corek竊取了核Corei的存儲單元,判斷竊取的是否是組q中的cache存儲單元; .2.1.2.1.1)如果是,將組q中所對應(yīng)的存儲單元選為逐出單元,更新路竊取信息表,繼續(xù)執(zhí)行步驟(2.2), .2.1.2.1.2)如果不是,順序執(zhí)行步驟2.1.3) .2.1.2.2)如果Corek沒有竊取核Corei的存儲單元,順序執(zhí)行步驟2.1.3); .2.1.3)選擇候選路信息Mq中訪問頻率最低的存儲單元作為逐出單元,更新路竊取信息表,順序執(zhí)行步驟(2.2); (2.2)將要存取的數(shù)據(jù)塊插入到cache組q中優(yōu)先級為M的存儲單元f中,更新存儲單元f的訪問頻率信息,繼續(xù)執(zhí)行步驟4,其中用訪問頻率信息排列優(yōu)先級;3)、提升優(yōu)先級:當cache存儲單元命中時,更新命中的cache存儲單元的優(yōu)先級,更新步驟如下: 如果命中的存儲單元屬于候選路M,,則將命中的存儲單元的優(yōu)先級提升為最近訪問的列的優(yōu)先級,繼續(xù)下一步; 如果命中的存儲單元不屬于候選路M,,則將命中的cache存儲單元的優(yōu)先級提升一級繼續(xù)下一步; 4)、回溯階段,程序運行時間t后,如果程序結(jié)束繼續(xù)執(zhí)行步驟5,否則,清除所有cache存儲單元訪問頻率信息和路竊取信息表,并返回步驟1.2); 5)、輸出運行結(jié)果,分 析缺失率,功耗,以及整體IPC,本步驟屬于常規(guī)方法。
      全文摘要
      本發(fā)明涉及一種改進的多核共享cache替換方法,主要分成三個階段初始化,替換策略,回溯。初始化是指平均劃分cache列,保證每個核擁有屬于自己的cache列;替換策略又細分為選擇逐出單元,插入訪問單元,提升優(yōu)先級。其中選擇逐出單元表示根據(jù)一定的原則,盡可能選擇效益最小的單元替換出去;插入訪問單元是將從內(nèi)存取出的cache單元放置到cache組的合適位置;優(yōu)先級提升,則是當cache單元命中時,提高cache單元的優(yōu)先級,以利于下次利用局部性原理訪問。本發(fā)明在cache劃分的基礎(chǔ)上,盡可能將部分當前使用的工作集保留在cache內(nèi),從而提高cache的命中率。
      文檔編號G06F12/08GK103150266SQ20131005509
      公開日2013年6月12日 申請日期2013年2月20日 優(yōu)先權(quán)日2013年2月20日
      發(fā)明者方娟, 李成艷 申請人:北京工業(yè)大學
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1