一種高速緩沖存儲器中數(shù)據(jù)塊的替換方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及存儲技術(shù)領(lǐng)域,特別涉及一種高速緩沖存儲器中數(shù)據(jù)塊的替換方法和
目.0
【背景技術(shù)】
[0002]高速緩沖存儲器(Cache)是存在于主存儲器(Main memory)與中央處理器(Central Processing Unit,簡稱CPU)之間的存儲器。Cache的存儲空間分為若干組(set),各set均包括若干路(way)且各set包括的way的數(shù)量相同,way為Cache中存儲數(shù)據(jù)的最小單位。與set相對的,主存儲器的存儲空間劃分為若干區(qū),各區(qū)均包括若干塊且各區(qū)包括的塊的數(shù)量均等于Cache中set的數(shù)量,每個區(qū)包括的各塊均與各set存在地址映射,每個區(qū)的某塊存儲的數(shù)據(jù)均可以存儲到與該塊存在地址映射的set包括的任意一個way 中 ο
[0003]目前的Cache可以支持多模隔離,多模隔離是多個模式(網(wǎng)絡(luò)制式或虛擬機(Virtual Machine,簡稱VM))的數(shù)據(jù)可以存儲在一個Cache中。當主存儲器中的數(shù)據(jù)塊存儲到配置給某個模式的way中時,由于一般配置給各個模式的way不是Cache中的所有way,因此通常采用如下方式實現(xiàn):先根據(jù)主存儲器中存儲該數(shù)據(jù)塊的塊,將Cache中與該塊存在地址映射的set,確定為存儲該數(shù)據(jù)塊的set ;若確定的set包括的所有way中均存儲有數(shù)據(jù),則從所有way中,隨機選擇一個way ;再從配置給該模式的way中,將距離選擇的way最近的一個way,確定為存儲該數(shù)據(jù)塊的way ;將該數(shù)據(jù)塊替換確定的way中原先存儲的數(shù)據(jù)。
[0004]在實現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題:
[0005]若配置給該模式的way未均勾分布在所有way時,則會造成配置給該模式的各個way進行數(shù)據(jù)塊替換的概率不均等,影響系統(tǒng)性能;而若要將配置給各個模式的way均勻分布在所有way中,則實現(xiàn)難度較大。
【發(fā)明內(nèi)容】
[0006]為了解決現(xiàn)有技術(shù)各個way進行數(shù)據(jù)替換的概率不均等的問題,本發(fā)明實施例提供了一種Cache中數(shù)據(jù)塊的替換方法和裝置。所述技術(shù)方案如下:
[0007]一方面,本發(fā)明實施例提供了一種Cache中數(shù)據(jù)塊的替換方法,所述Cache包括若干路way,所述若干way配置給多個模式使用,所述模式為網(wǎng)絡(luò)制式或虛擬機VM,所述替換方法包括:
[0008]每隔設(shè)定時間從第一模式的可用way中選擇一個可用ray,作為所述第一模式的待替換way,且所述第一模式的各個可用way作為所述第一模式的待替換的way的概率均等,所述第一模式為所述多個模式中的一個,所述第一模式的可用way為配置給所述第一模式使用的way ;
[0009]接收第一數(shù)據(jù)訪問請求,所述第一數(shù)據(jù)訪問請求包括所述第一模式的標識;
[0010]當所述Cache中沒有存儲所述第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊時,將所述第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊存儲在所述第一模式的待替換way中。
[0011]在本發(fā)明實施例一種可能的實現(xiàn)方式中,每隔設(shè)定時間選擇的可用way周期性循環(huán)變化或隨機變化。
[0012]在本發(fā)明實施例另一種可能的實現(xiàn)方式中,所述每隔設(shè)定時間從第一模式的可用way中選擇一個可用way,作為所述第一模式的待替換way,包括:
[0013]采用一個掩碼替換路產(chǎn)生器MRWG確定所述第一模式的待替換way,所述MRWG的輸入為表示所述第一模式的可用way的掩碼,所述MRWG的輸出為表示所述第一模式的待替換way的指示信號。
[0014]可選地,所述當所述Cache中沒有存儲所述第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊時,將所述第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊存儲在所述第一模式的待替換way中,包括:
[0015]根據(jù)第一模式的標識與MRWG的標識的對應(yīng)關(guān)系,選擇與所述第一模式對應(yīng)的MRffG ;
[0016]將選擇的MRWG的輸出表示的way作為所述第一模式的待替換way ;
[0017]將所述第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊存儲在所述第一模式的待替換way中。
[0018]在本發(fā)明實施例又一種可能的實現(xiàn)方式中,所述替換方法還包括:
[0019]當所述從第一模式的可用way中選擇一個可用way,作為所述第一模式的待替換way時,從第二模式的可用way中選擇一個可用way,作為所述第二模式的待替換way,且所述第二模式的各個可用way作為所述第二模式的待替換的way的概率均等,所述第二模式為所述多個模式中的一個,所述第二模式的可用way為配置給所述第二模式使用的way。
[0020]在本發(fā)明實施例又一種可能的實現(xiàn)方式中,所述替換方法還包括:
[0021]接收第二數(shù)據(jù)訪問請求,所述第二數(shù)據(jù)訪問請求包括第三模式的標識,所述第三模式為所述多個模式中的一個;
[0022]當所述Cache中沒有存儲所述第二數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊時,采用預(yù)設(shè)的規(guī)貝1J,從設(shè)定的way中選擇一個way,作為所述第三模式的待替換way ;
[0023]將所述第二數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊存儲在所述第三模式的待替換way中。
[0024]另一方面,本發(fā)明實施例提供了一種Cache中數(shù)據(jù)塊的替換裝置,所述Cache包括若干路way,所述若干way配置給多個模式使用,所述模式為網(wǎng)絡(luò)制式或虛擬機VM,所述替換裝置包括:
[0025]第一確定模塊,用于每隔設(shè)定時間從第一模式的可用way中選擇一個可用way,作為所述第一模式的待替換way,且所述第一模式的各個可用way作為所述第一模式的待替換的way的概率均等,所述第一模式為所述多個模式中的一個,所述第一模式的可用way為配置給所述第一模式使用的way ;
[0026]第一接收模塊,用于接收第一數(shù)據(jù)訪問請求,所述第一數(shù)據(jù)訪問請求包括所述第一模式的標識;
[0027]第一存儲模塊,用于當所述Cache中沒有存儲所述第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊時,將所述第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊存儲在所述第一模式的待替換way中。
[0028]在本發(fā)明實施例一種可能的實現(xiàn)方式中,每隔設(shè)定時間選擇的可用way周期性循環(huán)變化或隨機變化。
[0029]在本發(fā)明實施例另一種可能的實現(xiàn)方式中,所述第一確定模塊用于,
[0030]采用一個掩碼替換路產(chǎn)生器MRWG確定所述第一模式的待替換way,所述MRWG的輸入為表示所述第一模式的可用way的掩碼,所述MRWG的輸出為表示所述第一模式的待替換way的指示信號。
[0031 ] 可選地,所述第一存儲模塊用于,
[0032]選擇單元,用于根據(jù)第一模式的標識與MRWG的標識的對應(yīng)關(guān)系,選擇與所述第一模式對應(yīng)的MRWG ;
[0033]確定單元,用于將選擇的MRWG的輸出表示的way作為所述第一模式的待替換way ;
[0034]存儲單元,用于將所述第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊存儲在所述第一模式的待替換way中。
[0035]在本發(fā)明實施例又一種可能的實現(xiàn)方式中,所述替換裝置還包括:
[0036]第二確定模塊,用于當所述從第一模式的可用way中選擇一個可用way,作為所述第一模式的待替換way時,從第二模式的可用way中選擇一個可用way,作為所述第二模式的待替換way,且所述第二模式的各個可用way作為所述第二模式的待替換的way的概率均等,所述第二模式為所述多個模式中的一個,所述第二模式的可用way為配置給所述第二模式使用的way。
[0037]在本發(fā)明實施例又一種可能的實現(xiàn)方式中,所述替換裝置還包括:
[0038]第二接收模塊,用于接收第二數(shù)據(jù)訪問請求,所述第二數(shù)據(jù)訪問請求包括第三模式的標識,所述第三模式為所述多個模式中的一個;
[0039]選擇模塊,用于當所述Cache中沒有存儲所述第二數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊時,采用預(yù)設(shè)的規(guī)則,從設(shè)定的way中選擇一個way,作為所述第三模式的待替換way ;
[0040]第二存儲模塊,用于將所述第二數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊存儲在所述第三模式的待替換way中。
[0041]本發(fā)明實施例提供的技術(shù)方案帶來的有益效果是:
[0042]通過每隔設(shè)定時間從第一模式的可用way中選擇一個可用ray,作為第一模式的待替換way,且第一模式的各個可用way作為第一模式的待替換way的概率均等,也就是說,第一模式的待替換way是第一模式的任意一個可用way的概率是均等的。由于當Cache中沒有存儲第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊時,會將第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊存儲在第一模式的待替換way中,因此第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊存儲在第一模式的各個可用way的概率是均等的,即采用第一模式的各個可用way實現(xiàn)第一模式的數(shù)據(jù)塊替換的概率均等。
【附圖說明】
[0043]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0044]圖1是本發(fā)明實施例提供的Cache中數(shù)據(jù)塊的替換方法的應(yīng)用場景圖;
[0045]圖2是本發(fā)明實施例提供的CPU請求與Cache結(jié)構(gòu)之間的關(guān)系示意圖;
[0046]圖3是本發(fā)明實施例提供的主存儲器與Cache結(jié)構(gòu)之間的關(guān)系示意圖;
[0047]圖4是本發(fā)明實施例一提供的一種Cache中數(shù)據(jù)塊的替換方法的流程圖;
[0048]圖5是本發(fā)明實施例二提供的一種Cache中數(shù)據(jù)塊的替換方法的流程圖;
[0049]圖6是本發(fā)明實施例二提供的選擇第一模式的待替換way的硬件實現(xiàn)示意圖;
[0050]圖7是本發(fā)明實施例三提供的一種Cache中數(shù)據(jù)塊的替換裝置的結(jié)構(gòu)示意圖;
[0051]圖8是本發(fā)明實施例四提供的一種Cache中數(shù)據(jù)塊的替換裝置的結(jié)構(gòu)示意圖。
【具體實施方式】
[0052]為使本發(fā)明的目的、技術(shù)方案和優(yōu)點更加清楚,下面將結(jié)合附圖對本發(fā)明實施方式作進一步地詳細描述。
[0053]下面先結(jié)合圖1簡單介紹一下本發(fā)明實施例提供的Cache中數(shù)據(jù)塊的替換方法的應(yīng)用場景。如圖1所示,一個或多個Cache I設(shè)置在CPU 2和主存儲器3之間。當有多個Cache I時,各個Cache I依次設(shè)置在CPU 2和主存儲器3之間,分別稱為第一級Cache、第二級Cache……,依此類推。其中,沿從CPU 2到主存儲器3方向,各個Cache I的訪問速度依次遞減、容量依次遞增。例如,與CPU 2距離最近的第一級Cache是各個Cache I中訪問速度最快但容量最小的,與主存儲器3距離最近(即與CPU 2距離最遠)的最后一個CacheI (如圖1所示的第三級Cache)是各個Cache I中訪問速度最慢但容量最大的。
[0054]各個Cache I均可以存儲主存儲器3中的數(shù)據(jù)塊。當CPU 2訪問主存儲器3中的某個數(shù)據(jù)塊時,CPU 2不會直接將請求發(fā)送給主存儲器3,而是先將請求發(fā)送給第一級Cache。若第一級Ca