欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

一種高速緩沖存儲器中數(shù)據(jù)塊的替換方法和裝置的制造方法_3

文檔序號:9217131閱讀:來源:國知局
置給各個模式使用的way相同。例如,默認(rèn)配置的way為way0_15、或者wayO和wayl,則采用默認(rèn)配置的方式配置給所有模式使用的way均為wayO-15,或者均為wayO和wayl。另一種是與默認(rèn)配置相對的單獨配置,單獨將所有或部分way配置給某個模式使用。采用單獨配置方式配置給各個模式使用的way可以相同,也可以完全不同,還可以部分相同,部分不同。在本實施例中,采用單獨配置的方式配置第一模式使用的way。
[0078]而對于配置有同一個Cache中的way使用的所有模式(網(wǎng)絡(luò)制式或VM)來說,可以給所有模式都采用單獨配置的方式配置way,也可以給部分模式采用單獨配置的方式配置way,給其余模式采用默認(rèn)配置的方式配置way。例如,給不大于設(shè)定個數(shù)(如16)的模式采用單獨配置的方式配置way,給其余模式采用默認(rèn)配置的方式配置way。具體地,采用單獨配置的方式配置way的模式可以為需要擁有獨立資源的模式、容易對其他模式產(chǎn)生干擾的模式中的至少一種??梢岳斫獾?,采用單獨配置的方式比采用默認(rèn)配置的方式占用的資源和開銷要多,因此只給不大于設(shè)定個數(shù)的模式采用單獨配置的方式配置way,與給所有模式都采用單獨配置的方式配置way相比,可以減少資源的占用和開銷。
[0079]在本實施例的一種實現(xiàn)方式中,每隔設(shè)定時間選擇的第一模式的可用way可以周期性循環(huán)變化。
[0080]例如,配置給模式I的way為wayO、way4、way8、wayl2,每隔設(shè)定時間選擇的模式
I的可用 way 依次為 wayO、way4、way8、wayl2、wayO、way4、way8、wayl2......,以此循環(huán)。
[0081 ] 在具體實現(xiàn)中,上述實現(xiàn)方式可以采用循環(huán)計數(shù)器實現(xiàn),循環(huán)計數(shù)器的輸入為某個模式的所有可用way的標(biāo)號(可能為一個,也可能為多個),循環(huán)計數(shù)器的輸出即為該模式的待替換way的標(biāo)號。每隔設(shè)定時間,循環(huán)計數(shù)器輸出一個新的標(biāo)號,新的標(biāo)號代替舊的標(biāo)號作為該模式的待替換way的標(biāo)號。
[0082]在本實施例的另一種實現(xiàn)方式中,每隔設(shè)定時間選擇的第一模式的可用way可以隨機(jī)變化。
[0083]在具體實現(xiàn)中,上述實現(xiàn)方式可以采用隨機(jī)數(shù)生成器實現(xiàn),隨機(jī)數(shù)生成器的輸入為某個模式的所有可用way的標(biāo)號,隨機(jī)數(shù)生成器的輸出即為該模式的待替換way的標(biāo)號。
[0084]可以理解地,采用上述兩種實現(xiàn)方式中的任一種,均可以實現(xiàn)第一模式的各個可用way被選為待替換way的概率都是均等的。
[0085]具體地,該步驟201可以包括:
[0086]米用一個掩碼替換路產(chǎn)生器(Masked Replace Way Generator,簡稱MRWG)確定第一模式的待替換way,該MRWG的輸入為表示第一模式的可用way的掩碼,該MRWG的輸出為表示第一模式的待替換way的指示信號。
[0087]例如,模式I 的可用 way 為 way O、way 4、way 8、way 12。將掩碼 0111_0111_0111_0111輸入與模式I對應(yīng)的MRWG,其中,掩碼的各位依次表示各個way是否為模式I的可用way,0表示是,I表示不是,比如,掩碼的第I位為0,表示模式I的可用way包括wayO ;掩碼的第2位為I,表示模式I的可用way不包括rayl。與模式I對應(yīng)的MRWG接收到輸入的掩碼,依次輸出0x0、0x4、0x8、0x12、0x0、0x4、0x8、0x12......,如此循環(huán)。輸出的數(shù)值即為待替換way
的標(biāo)號。
[0088]在本實施例的一種實現(xiàn)方式中,該替換方法還可以包括:
[0089]當(dāng)從第一模式的可用way中選擇一個可用way,作為第一模式的待替換way時,從第二模式的可用way中選擇一個可用way,作為第二模式的待替換way,且第二模式的各個可用way作為第二模式的待替換的way的概率均等,第二模式為多個模式中的一個,第二模式的可用way為配置給第二模式使用的way。
[0090]在上述實現(xiàn)方式中,第二模式與第一模式一樣,也是采用單獨配置的方式配置way。而兩者之間的不同之處在于,第一模式為數(shù)據(jù)訪問請求訪問的模式(詳見步驟202),而第二模式不是。需要說明的是,在配置有Cache的way的多個模式中,第二模式的個數(shù)可以為一個,也可以為多個。
[0091]同樣地,從第二模式的可用way中選擇一個可用way,作為第二模式的待替換way,可以包括:
[0092]采用一個MRWG確定第二模式的待替換way,該MRWG的輸入為表示第二模式的可用way的掩碼,該MRWG的輸出為表示第二模式的待替換way的指示信號。
[0093]也就是說,Cache中會設(shè)置多個MRWG,各個MRWG與各個采用單獨配置的方式配置
way的模式--對應(yīng),無論是否接收到數(shù)據(jù)訪問請求,MRWG都會每隔設(shè)定時間都會確定一次對應(yīng)的模式的待替換way。
[0094]具體地,MRWG i的輸入為模式j(luò)的可用way的掩碼mask i,MRffG i的輸出為表示模式j(luò)的待替換way的指示信號way jk,0 ( i <采用單獨配置的方式配置way的模式的個數(shù)(如16)且i為整數(shù),模式j(luò)為采用單獨配置的方式配置way的所有模式中的任意一個,wayjk為模式j(luò)的可用way中的任意一個。如圖6所示,MRWG I的輸入為模式I的可用way的掩碼mask 1(0111_0111_0111_0111),MRffG I的輸出為表示模式I的待替換way的指示信號 way O ;MRWG 2 的輸入為模式 2 的可用 way 的掩碼 mask 2 (1011_1011_1011_1011) ,MRffG2的輸出為表示模式2的待替換way的指示信號way I ;MRffG 3的輸入為模式3的可用way的掩碼mask 3(1101_1101_1101_1101),MRffG 3的輸出為表示模式3的待替換way的指示信號way 2 ;MRWG 4的輸入為模式4的可用way的掩碼mask 4 (1110_1110_1110_1110),MRffG 4的輸出為表示模式4的待替換way的指示信號way 3。需要說明的是,圖6僅為示例,本發(fā)明并不限制于此。
[0095]在具體應(yīng)用中,MRWG可以為循環(huán)計數(shù)器,也可以為隨機(jī)數(shù)生成器。容易知道,各個可用way選擇為待替換way的概率是相同的。
[0096]在實際應(yīng)用中,給各個模式配置way之后,會建立或更新一張配置表,配置表中列出了各個模式與給各個模式配置的所有way (即各個模式的可用way)之間的對應(yīng)關(guān)系。直接查詢該配置表,即可獲取各個模式的可用way,進(jìn)而產(chǎn)生表示各個模式的可用way的掩碼,并將其輸入各自對應(yīng)的MRWG。
[0097]步驟202:接收第一數(shù)據(jù)訪問請求,第一數(shù)據(jù)訪問請求包括第一模式的標(biāo)識。該步驟202與步驟201的執(zhí)行沒有先后順序。
[0098]如前應(yīng)用場景部分所述,第一數(shù)據(jù)訪問請求中的address部分包括tag、index和offset三個字段。如前所述,index字段用于索引到某個set ;tag字段用于與Cache中的各個way的tag字段進(jìn)行比較,以確定各個way存儲的數(shù)據(jù)塊是否為訪問的數(shù)據(jù)塊;offset為訪問的數(shù)據(jù)在數(shù)據(jù)塊內(nèi)的地址。
[0099]步驟203:根據(jù)第一數(shù)據(jù)訪問請求,判斷Cache中是否存儲有第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊。當(dāng)Cache中存儲有第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊時,執(zhí)行步驟2041 ;當(dāng)Cache中沒有存儲第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊時,執(zhí)行步驟2042-2043。
[0100]具體地,該步驟203可以包括:
[0101]根據(jù)第一數(shù)據(jù)訪問請求的address部分中的index字段,確定第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊所在的set ;
[0102]將第一數(shù)據(jù)訪問請求的address部分中的tag字段與確定的set中各個way的tag字段進(jìn)行比較;
[0103]若第一數(shù)據(jù)訪問請求的address部分中的tag字段與確定的set中某個way的tag字段相同,判定Cache中存儲有第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊;
[0104]若第一數(shù)據(jù)訪問請求的address部分中的tag字段與確定的set中所有way的tag字段均不同,判定Cache中沒有存儲第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊。
[0105]步驟2041:在Cache中對第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊進(jìn)行讀操作或?qū)懖僮鳌?br>[0106]具體地,該步驟2041可以包括:
[0107]當(dāng)?shù)谝粩?shù)據(jù)訪問請求為讀數(shù)據(jù)時,將Cache中存儲的第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊發(fā)送給CPU;
[0108]當(dāng)?shù)谝粩?shù)據(jù)訪問請求為寫數(shù)據(jù)時,用第一數(shù)據(jù)訪問請求中的數(shù)據(jù)更新Cache中存儲的第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊。
[0109]步驟2042:將第一數(shù)據(jù)訪問請求轉(zhuǎn)發(fā)給其它存儲器。
[0110]具體地,將第一數(shù)據(jù)訪問請求發(fā)送給下一級存儲器。當(dāng)CPU與主存儲器之間只設(shè)置了一個Cache時,下一級存儲器為主存儲器。當(dāng)CPU與主存儲器之間設(shè)置有多層Cache時,下一級存儲器為與該Cache相鄰且與主存儲器的距離比該Cache近的一個存儲器(Cache或主存儲器)。
[0111]容易知道,當(dāng)Cache中沒有存儲第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊時,Cache會先將第一數(shù)據(jù)訪問請求轉(zhuǎn)發(fā)給其它Cache或者主存儲器。在CPU在其它Cache或者主存儲器中完成對第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊的訪問(即在其它Cache或者主存儲器中對第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊進(jìn)行讀操作或?qū)懖僮?之后,Cache再將第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊存儲在自身的way中(詳見步驟2043)。
[0112]步驟2043:將第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊存儲在Cache中。
[0113]在本實施例的一種實現(xiàn)方式中,當(dāng)?shù)谝粩?shù)據(jù)訪問請求訪問的數(shù)據(jù)塊所在的set中,配置給第一模式的所有way中存在沒有存儲數(shù)據(jù)塊的空way時,該步驟2043可以包括:
[0114]將第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊存儲在第一模式的任意一個空way中。
[0115]在本實施例的另一種實現(xiàn)方式中,當(dāng)?shù)谝粩?shù)據(jù)訪問請求訪問的數(shù)據(jù)塊所在的set中,配置給第一模式的所有way中均存儲有數(shù)據(jù)塊時,該步驟2043可以包括:
[0116]根據(jù)第一模式的標(biāo)識,從各個模式的待替換way中,選擇第一模式的待替換way ;
[0117]將第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊存儲在第一模式的待替換way中。
[0118]如前步驟201部分所述,Cache中不止一個待替換way,至少包括第一模式的待替換way和第二模式的待替換way。當(dāng)接收到第一數(shù)據(jù)訪問請求時,需要先根據(jù)第一數(shù)據(jù)訪問請求包括的第一模式的標(biāo)識,從所有待替換way中,選出第一模式的待替換way,然后才能將第一數(shù)據(jù)訪問請求訪問的數(shù)據(jù)塊存儲在第一模式的待替換way中。
[0119]例如,配置給模式I的way為wayO-7,配置給模式2的way為way8_15,模式I的待替換way為wayO,模式2的待替換way為wayl5,第一模式為模式2,先從wayO和wayl5中選出wayl5,然后再將第一數(shù)據(jù)訪問請
當(dāng)前第3頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
宝坻区| 分宜县| 富川| 丰镇市| 新闻| 彰化县| 西畴县| 大关县| 上饶县| 若羌县| 丹东市| 伊宁市| 二手房| 晋中市| 孙吴县| 凤冈县| 汝城县| 武义县| 白沙| 万宁市| 新化县| 安仁县| 广宗县| 达日县| 诏安县| 定陶县| 田东县| 江门市| 池州市| 延边| 天等县| 江都市| 达孜县| 乐东| 宽甸| 萍乡市| 石台县| 南昌市| 长岛县| 九江市| 周口市|