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

一種多路組相聯(lián)的高速緩沖存儲器及其處理方法

文檔序號:8223434閱讀:738來源:國知局
一種多路組相聯(lián)的高速緩沖存儲器及其處理方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,特別涉及一種多路組相聯(lián)的高速緩沖存儲器(Cache)及其處理方法。
【背景技術(shù)】
[0002]為了提高中央處理器(Central Processing Unit,CPU)系統(tǒng)的性能,通常會采用Cache結(jié)構(gòu)來緩存最近經(jīng)常使用的一些指令或數(shù)據(jù),這樣,每次取指令、或者進行數(shù)據(jù)操作時,就不需要都訪問內(nèi)存了,從而大大降低了操作的延遲,典型的CPU系統(tǒng)如圖1所示。距離CPU最近的是第一級Cache (Level I Cache, LlCache),其訪問速度最快,但容量一般不大;LlCache的外圍設(shè)置L2Cache,其訪問速度比LlCache稍慢,但容量明顯增加;大型的多核 CPU 系統(tǒng)中還會有 L3Cache,甚至 L4Cache ;在最后一級 Cache (LLC,Last Level Cache)的下游,才是通常所說的內(nèi)存(Memory),其訪問速度相對各級Cache會慢很多,但是容量大了很多。
[0003]CPU發(fā)出的請求(Request)主要分為兩大類,一是取指令的操作,二是數(shù)據(jù)操作。取指令操作表現(xiàn)為讀操作,數(shù)據(jù)操作表現(xiàn)為讀操作和寫操作。不論是讀操作還是寫操作,請求中都會攜帶有地址信息。CPU先把請求發(fā)往第一級Cache ;第一級Cache根據(jù)請求的地址信息判斷出該請求的數(shù)據(jù)是否存在于第一級Cache中,若存在,直接在第一級Cache中完成操作,若不存在,第一級Cache將請求發(fā)往下一級存儲器(可能是下一級Cache或者內(nèi)存)。
[0004]Cache的結(jié)構(gòu)主要有三種:直接映射、全相聯(lián)和組相聯(lián)。其中應(yīng)用最廣泛的是組相聯(lián)結(jié)構(gòu),典型的組相聯(lián)Cache結(jié)構(gòu)如圖2所示。以收到一個讀請求為例,處理過程如下:首先,根據(jù)該讀請求的地址信息中的索引(Index)域段找到一個組(Set),其中,每個Set包括若干條路(Way),每條Way都可能存有請求的數(shù)據(jù);然后,將請求地址中的標(biāo)簽(Tag)域段與每條Way中存的Tag信息進行比較,若出現(xiàn)相等,貝Ij表示命中(Hit) 了某條Way,該Way中存有請求的數(shù)據(jù);若未出現(xiàn)相等,則表示發(fā)生了未命中(Miss),該級Cache中并不含有請求的數(shù)據(jù),需要將請求發(fā)往下一級存儲器。
[0005]在大容量Cache結(jié)構(gòu)的設(shè)計中,為了降低功耗,一般是采用先查TagRam(Random-Access Memory,隨機存取存儲器)進行Hit/Miss判斷,根據(jù)查詢結(jié)果再決定是否讀取Data Ram的方式。為了提高吞吐率,查詢Tag Ram—般是采用流水線結(jié)構(gòu)。目前常采用如下方式:
[0006]將所有Tag Ram作為一條流水線,每個時鐘周期內(nèi)接收一個查詢請求,在對查詢請求進行Tag查詢時,同時訪問某一個Index中所有的way的信息,讀出后一起進行Hit/Miss判斷。流水線每個時鐘周期都能接收一個查詢請求,每個時鐘周期都可以翻轉(zhuǎn)。當(dāng)Cache的路數(shù)越來越多時,上述方式存在以下兩方面的問題:1)查詢需要并行訪問的Tag Ram越多,判斷Hit/Miss的邏輯復(fù)雜度越高,使得處理效率低;2)由于需要同時翻轉(zhuǎn)的Tag Ram數(shù)量較多,會造成峰值功耗的增加。

【發(fā)明內(nèi)容】

[0007]本發(fā)明提供了一種多路組相聯(lián)的高速緩沖存儲器及其處理方法,解決了現(xiàn)有多路組相聯(lián)的高速緩沖存儲器中存在的處理效率低,峰值功耗大的問題。
[0008]第一方面,一種多路組相聯(lián)的高速緩沖存儲器,該高速緩沖存儲器包括:M條流水線、控制器以及數(shù)據(jù)存儲器,M為大于等于2的正整數(shù),其中任一流水線包括執(zhí)行流水處理的仲裁電路、標(biāo)簽存儲器和判斷電路;所述任一流水線中:
[0009]所述仲裁電路,用于在第N時刻接收至少一個查詢請求,根據(jù)預(yù)設(shè)的仲裁策略,從所述至少一個查詢請求中確定出第一查詢請求,其中,N為正整數(shù),所述第一查詢請求攜帶有第一索引地址和第一標(biāo)簽地址;
[0010]所述標(biāo)簽存儲器,用于根據(jù)所述第一索引地址,對自身存儲的標(biāo)簽信息進行查詢,以獲取與所述第一索引地址對應(yīng)的至少一個目標(biāo)標(biāo)簽地址并發(fā)送給所述判斷電路;
[0011]所述判斷電路,用于判斷所述至少一個目標(biāo)標(biāo)簽地址中是否存在與所述第一標(biāo)簽地址相匹配的地址;
[0012]所述控制器,用于當(dāng)所述判斷電路判斷出所述至少一個目標(biāo)標(biāo)簽地址中不存在與所述第一標(biāo)簽地址相匹配的地址時,將所述第一查詢請求發(fā)給下一級設(shè)備或者除所述任一流水線之外的其它流水線進行處理;
[0013]其中,每條流水線的標(biāo)簽存儲器所存儲的標(biāo)簽信息各不相同,且所述M條流水線各自的標(biāo)簽存儲器存儲的標(biāo)簽信息為所述高速緩沖存儲器的標(biāo)簽信息的子集,所述高速緩沖存儲器的各個標(biāo)簽信息與所述數(shù)據(jù)存儲器中的各個存儲塊一一對應(yīng)。
[0014]結(jié)合第一方面,在第一種可能的實現(xiàn)方式中,所述高速緩沖存儲器的標(biāo)簽信息劃分為至少兩個組,每條流水線中的標(biāo)簽存儲器所存儲的標(biāo)簽信息是將所述高速緩沖存儲器各個組內(nèi)的標(biāo)簽信息按照流水線的總數(shù)M平分后得到的。
[0015]結(jié)合第一方面,在第二種可能的實現(xiàn)方式中,當(dāng)所述判斷電路判斷出所述至少一個目標(biāo)標(biāo)簽地址中不存在與所述第一標(biāo)簽地址相匹配的地址時,所述控制器用于:
[0016]判斷所述其它流水線是否已處理過所述第一查詢請求;
[0017]若所述其它流水線均已處理過所述第一查詢請求,則將所述第一查詢請求發(fā)給下一級設(shè)備進行處理;
[0018]若所述其它流水線中至少一條流水線未處理過所述第一查詢請求,則在第N+1時刻將所述第一查詢請求發(fā)給未處理過所述第一查詢請求的所述至少一條流水線中的任意一條進行處理。
[0019]結(jié)合第一方面的第二種可能的實現(xiàn)方式,在第三種可能的實現(xiàn)方式中,所述控制器判斷所述其它流水線是否已處理過所述第一查詢請求,包括:
[0020]檢測所述第一查詢請求中是否攜帶有指示信息,其中,所述指示信息中包括:所述第一查詢請求被處理的次數(shù)、和/或處理過所述第一查詢請求的流水線的標(biāo)識信息;
[0021]若所述第一查詢請求中攜帶有所述指示信息,且所述指示信息指示所述第一查詢請求已被處理過M-1次,則確定所述其它流水線均已處理過所述第一查詢請求;
[0022]若所述第一查詢請求中攜帶有所述指示信息,且所述指示信息指示所述第一查詢請求已被處理的次數(shù)小于M-1次,則確定所述其它流水線中存在未處理過所述第一查詢請求的所述至少一條流水線;
[0023]若所述第一查詢請求中未攜帶所述指示信息,則確定所述其它流水線未處理過所述第一查詢請求。
[0024]結(jié)合第一方面的第三種可能的實現(xiàn)方式,在第四種可能的實現(xiàn)方式中,若所述指示信息指示所述第一查詢請求已被處理的次數(shù)小于M-1次,所述控制器還用于:
[0025]將所述第一查詢請求發(fā)送給所述其它流水線處理時,更新所述指示信息中的所述第一查詢請求已被處理的次數(shù)、和/或?qū)⑺鋈我涣魉€的標(biāo)識信息更新到所述指示信息中。
[0026]結(jié)合第一方面的第三種可能的實現(xiàn)方式,在第五種可能的實現(xiàn)方式中,若所述第一查詢請求中未攜帶所述指示信息,所述控制器還用于:
[0027]將所述第一查詢請求發(fā)送給所述其它流水線處理時,攜帶用于指示所述第一查詢請求為首次處理、和/或指示處理過所述第一查詢請求的所述任一流水線的標(biāo)識信息的指示信息。
[0028]結(jié)合第一方面、或者第一方面的第一種至第五種可能的實現(xiàn)方式中的任一方式,在第六種可能的實現(xiàn)方式中,所述控制器還用于:
[0029]當(dāng)所述判斷電路判斷出所述至少一個目標(biāo)標(biāo)簽地址中存在與所述第一標(biāo)簽地址相匹配的第一目標(biāo)地址時,根據(jù)所述第一目標(biāo)地址,從所述數(shù)據(jù)存儲器中與所述第一目標(biāo)地址相對應(yīng)的存儲塊里讀取數(shù)據(jù)。
[0030]結(jié)合第一方面、或者第一方面的第一種至第六種可能的實現(xiàn)方式中的任一方式,在第七種可能的實現(xiàn)方式中,若M等于2,所述預(yù)設(shè)的仲裁策略包括:
[0031]當(dāng)所述至少一個查詢請求中僅包括上游設(shè)備發(fā)送的查詢請求時,將所述上游設(shè)備發(fā)送的查詢請求作為所述第一查詢請求;
[0032]當(dāng)所述至少一個查詢請求中僅包括所述其它流水線發(fā)送的查詢請求時,將接收到的查詢請求作為所述第一查詢請求;
[0033]當(dāng)所述至少一個查詢請求中包括上游設(shè)備發(fā)送的查詢請求和所述其它流水線發(fā)送的查詢請求時,將所述其它流水線發(fā)送的查詢請求作為所述第一查詢請求,并緩存所述上游設(shè)備發(fā)送的查詢請求。
[0034]結(jié)合第一方面、或者第一方面的第一種至第六種可能的實現(xiàn)方式中的任一方式,在第八種可能的實現(xiàn)方式中,若M大于2,所述預(yù)設(shè)的仲裁策略包括:
[0035]當(dāng)所述至少一個查詢請求中僅包括所述其它流水線發(fā)送的至少兩個查詢請求時,則根據(jù)預(yù)設(shè)的流水線的優(yōu)先級,將所述其它流水線中優(yōu)先級最高的流水線所發(fā)送的查詢請求作為所述第一查詢請求,并緩存其余的查詢請求;
[0036]當(dāng)所述至少一個查詢請求中包括上游設(shè)備發(fā)送的查詢請求和所述其它流水線發(fā)送的至少兩個查詢請求時,將所述其它流水線中優(yōu)先級最高的流水線發(fā)送的查詢請求作為所述第一查詢請求,并緩存所述上游設(shè)備和所述其它流水線中除優(yōu)先級最高的流水線之外的流水線發(fā)送的查詢請求。
[0037]結(jié)合第一方面的第七種可能的實現(xiàn)方式、或者第一方面的第八種可能的實現(xiàn)方式,在第九種可能的實現(xiàn)方式中,所述預(yù)設(shè)的仲裁策略還包括:
[0038]當(dāng)所述至少一個查詢請求中還包括已緩存的查詢請求時,將所述至少一個查詢請求中優(yōu)先級最高的流水線發(fā)送查詢請求作為所述第一查詢請求,并緩存所述至少一個查詢請求中除所述第一查詢請求之外的查詢請求;其中,所述其它流水線的優(yōu)先級高于所述上游設(shè)備的優(yōu)先級。
[0039]結(jié)合第一方面、或者第一方面的第一種至第九種可能的實現(xiàn)方式中的任一方式,在第十種可能的實現(xiàn)方式中,所述高速緩沖存儲器還包括:
[0040]使能電路,用于在第N時刻,從所述M條流水線中確定用于處理所述至少一個查詢請求的所述任一流水線,并使能所述任一流水線以觸發(fā)所述任一流水線中的所述仲裁電路接收所述至少一個查詢請求。
[0041]第二方面,一種多路組相聯(lián)的高速緩沖存儲器的處理方法,所述高速緩沖存儲器包括M條流水線,M為大于等于2的正整數(shù),任一條流水線的處理方法包括:
[0042]在第N時刻接收至少一個查詢請求,根據(jù)預(yù)設(shè)的仲裁策略,從所述至少一個查詢請求中確定出第一查詢請求,其中,N為正整數(shù),所述第一查詢請求攜帶有第一索引地址和第一標(biāo)簽地址;
[0043]根據(jù)所述第一索引地址,對本地存儲的標(biāo)簽信息進行查詢,以獲取與所述第一索引地址對應(yīng)的至少一個目標(biāo)標(biāo)簽地址;
[0044]當(dāng)判斷出所述至少一個目標(biāo)標(biāo)簽地址中不存在與所述第一標(biāo)簽地址相匹配的地址時,將所述第一查詢請求發(fā)給下一級設(shè)備或者除所述任一流水線之外的其它流水線進行處理;
[0045]其中,所述M條流水線各自存儲的標(biāo)簽信息為所述高速緩沖存儲器的標(biāo)簽信息的子集,所述高速緩沖存儲器的各個標(biāo)簽信息與所述高速緩沖存儲器中的數(shù)據(jù)存儲器中的各個存儲塊一一對應(yīng)。
[0046]結(jié)合第二方面,在第一種可能的實現(xiàn)方式中,所述高速緩沖存儲器的標(biāo)簽信息劃分為至少兩個組,每條流水
當(dāng)前第1頁1 2 3 4 5 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
来安县| 安乡县| 康定县| 加查县| 天镇县| 浏阳市| 呈贡县| 临西县| 西丰县| 芦山县| 司法| 金沙县| 平阳县| 湖北省| 连平县| 海宁市| 吉安市| 巨野县| 德钦县| 东乡县| 鹤壁市| 新乐市| 克东县| 景宁| 临洮县| 四川省| 南丰县| 延长县| 南华县| 牙克石市| 清水县| 漳浦县| 大兴区| 阿鲁科尔沁旗| 沭阳县| 平度市| 南平市| 新晃| 平果县| 长垣县| 洛川县|