緩沖存儲(chǔ)器、緩沖存儲(chǔ)器控制單元和緩沖存儲(chǔ)器的控制方法
【專(zhuān)利摘要】本發(fā)明涉及緩沖存儲(chǔ)器及其控制方法以及緩沖存儲(chǔ)器控制單元。所述緩沖存儲(chǔ)器包括:標(biāo)記存儲(chǔ)部,在該標(biāo)記存儲(chǔ)部中由被訪問(wèn)地址的第一地址部分查找多個(gè)索引中的一個(gè)索引,各索引包括多個(gè)標(biāo)記地址和一個(gè)暫停表示部;數(shù)據(jù)存儲(chǔ)部;標(biāo)記控制部,當(dāng)查找到的索引中包含的所述暫停表示部指示暫停時(shí),所述標(biāo)記控制部使與所述被訪問(wèn)地址相關(guān)的訪問(wèn)進(jìn)行等待,并且當(dāng)所述查找到的索引中包含的所述暫停表示部指示不暫停時(shí),將所述被訪問(wèn)地址中的不同于所述第一地址部分的第二地址部分與所述查找到的索引中包含的所述多個(gè)標(biāo)記地址中的各標(biāo)記地址進(jìn)行比較,并檢測(cè)出與所述第二地址部分相一致的標(biāo)記地址;及數(shù)據(jù)控制部。根據(jù)本發(fā)明,能夠以簡(jiǎn)單構(gòu)造實(shí)現(xiàn)訪問(wèn)暫停。
【專(zhuān)利說(shuō)明】緩沖存儲(chǔ)器、緩沖存儲(chǔ)器控制單元和緩沖存儲(chǔ)器的控制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及緩沖存儲(chǔ)器(cache memory)。特別地,本發(fā)明涉及能夠在不等待先前對(duì)存儲(chǔ)器的訪問(wèn)的響應(yīng)情況下發(fā)出后續(xù)的訪問(wèn)的成組相聯(lián)型緩沖存儲(chǔ)器、緩沖存儲(chǔ)器控制單元及該緩沖存儲(chǔ)器的控制方法。
【背景技術(shù)】
[0002]緩沖存儲(chǔ)器已被用作減少?gòu)奶幚砥鞯街鞔鎯?chǔ)器的訪問(wèn)頻率的措施。由于對(duì)主存儲(chǔ)器的訪問(wèn)的完成時(shí)間的減少程度小于處理器的處理速度的增加程度,所以對(duì)緩沖存儲(chǔ)器的這類(lèi)使用進(jìn)行了研究。主存儲(chǔ)器的單位容量的成本相對(duì)較低,但是訪問(wèn)完成時(shí)間相對(duì)較長(zhǎng)。相反地,緩沖存儲(chǔ)器的單位容量的成本相對(duì)較高,但是訪問(wèn)完成時(shí)間相對(duì)較短。通過(guò)在處理器和主存儲(chǔ)器之間設(shè)置具有緩沖存儲(chǔ)器的等級(jí)化存儲(chǔ)機(jī)制,能夠?qū)崿F(xiàn)成本的降低和訪問(wèn)完成時(shí)間的縮短。
[0003]近來(lái),在各種包含處理器的系統(tǒng)中,包含多個(gè)處理器的系統(tǒng)正在成為主流系統(tǒng)。上述存儲(chǔ)機(jī)制的等級(jí)化的發(fā)展導(dǎo)致了使用二級(jí)緩存或三級(jí)緩存,二級(jí)緩存或三級(jí)緩存可以是由多個(gè)處理器共用的存儲(chǔ)器件。
[0004]當(dāng)處理器訪問(wèn)緩沖存儲(chǔ)器時(shí),所期望的數(shù)據(jù)優(yōu)選地存在于緩沖存儲(chǔ)器中。然而,所期望的數(shù)據(jù)實(shí)際上可能不存在于緩沖存儲(chǔ)器上,這導(dǎo)致了緩存缺失(cache miss)。在這樣的情況下,當(dāng)緩沖存儲(chǔ)器是比主存儲(chǔ)器更靠近處理器的一級(jí)時(shí),發(fā)生了從緩沖存儲(chǔ)器到主存儲(chǔ)器的訪問(wèn)。
[0005]在多個(gè)處理器共用緩沖存儲(chǔ)器的情況下,出現(xiàn)了這樣的問(wèn)題:在對(duì)主存儲(chǔ)器的這樣的訪問(wèn)期間,整個(gè)系統(tǒng)如何高效地進(jìn)行處理直到完成訪問(wèn)而不中斷操作。可采用下列途徑來(lái)解決上述問(wèn)題。
[0006](I)當(dāng)對(duì)該緩沖存儲(chǔ)器的后續(xù)訪問(wèn)導(dǎo)致緩存命中(cache hit)時(shí),繼續(xù)此處理(缺失命中,hit under miss)。
[0007](2)除(I)之外,當(dāng)對(duì)該緩沖存儲(chǔ)器的后續(xù)訪問(wèn)導(dǎo)致緩存缺失時(shí),也繼續(xù)此處理(缺失下缺失,miss under miss)。
[0008]當(dāng)試圖實(shí)現(xiàn)這樣的缺失命中或缺失下缺失時(shí),必須暫停對(duì)該緩存線的訪問(wèn)直到完成因緩存缺失而產(chǎn)生的填充或回寫(xiě)處理。因而,在先前提出的緩沖存儲(chǔ)器中,為了使緩存線暫停直到完成填充處理,為各緩存線設(shè)置有例如用于表明訪問(wèn)是否暫停的標(biāo)記(例如,日本待審查專(zhuān)利申請(qǐng)H6-149673和2010-033480)。
【發(fā)明內(nèi)容】
[0009]在上述現(xiàn)有的方式中,通過(guò)為各緩沖線設(shè)置標(biāo)記來(lái)暫停對(duì)相關(guān)緩存線的訪問(wèn)。然而,當(dāng)組合提供這樣的標(biāo)記、有效和臟管理以及緩存線選擇控制時(shí),電路規(guī)模增大,且這類(lèi)功能的校驗(yàn)不利地變得復(fù)雜。
[0010]因此,期望以簡(jiǎn)單構(gòu)造實(shí)現(xiàn)緩沖存儲(chǔ)器中的訪問(wèn)暫停。
[0011]本發(fā)明的實(shí)施例提供了一種緩沖存儲(chǔ)器,其包括:標(biāo)記存儲(chǔ)部,在所述標(biāo)記存儲(chǔ)部中由被訪問(wèn)地址的第一地址部分查找多個(gè)索引中的一個(gè)索引,每個(gè)索引包含多個(gè)標(biāo)記地址和一個(gè)暫停表示部;數(shù)據(jù)存儲(chǔ)部,所述數(shù)據(jù)存儲(chǔ)部用于存儲(chǔ)與所述多個(gè)索引中的每個(gè)索引的所述多個(gè)標(biāo)記地址相對(duì)應(yīng)的各項(xiàng)數(shù)據(jù);標(biāo)記控制部,當(dāng)查找到的索引中包含的所述暫停表示部指示暫停時(shí),所述標(biāo)記控制部使與所述被訪問(wèn)地址相關(guān)的訪問(wèn)進(jìn)行等待,并且當(dāng)所述查找到的索引中包含的所述暫停表示部指示不暫停時(shí),所述標(biāo)記控制部將所述被訪問(wèn)地址的不同于所述第一地址部分的第二地址部分與所述查找到的索引中包含的所述多個(gè)標(biāo)記地址中的各標(biāo)記地址進(jìn)行比較,并檢測(cè)與所述第二地址部分相一致的標(biāo)記地址;以及數(shù)據(jù)控制部,當(dāng)所述查找到的索引中包含的所述暫停表示部指示不暫停時(shí),所述數(shù)據(jù)控制部從所述數(shù)據(jù)存儲(chǔ)部中選擇與如下標(biāo)記地址相對(duì)應(yīng)的數(shù)據(jù),該標(biāo)記地址是所述查找到的索引中包含的所述多個(gè)標(biāo)記地址之中的與所述第二地址部分相一致的標(biāo)記地址。因此,提供了通過(guò)參照所述查找到的索引中包含的所述暫停表示部來(lái)確定是否使所述緩沖存儲(chǔ)器的處理進(jìn)行等待的功能。
[0012]有利地,所述暫停表示部可以包括讀取引起暫停表示部和寫(xiě)入引起暫停表示部,所述讀取引起暫停表示部用于表示由讀取處理引起的暫停,且所述寫(xiě)入引起暫停表示部用于表示由寫(xiě)入處理引起的暫停,且當(dāng)在所述查找到的索引中所述讀取引起暫停表示部和所述寫(xiě)入引起暫停表示部中的一者或兩者指示暫停時(shí),所述標(biāo)記控制部使與所述被訪問(wèn)地址相關(guān)的所述訪問(wèn)進(jìn)行等待。因此,提供了將引起暫停的處理分離的功能。
[0013]有利地,所述緩沖存儲(chǔ)器可以是由多個(gè)主機(jī)共用的公用緩沖存儲(chǔ)器。
[0014]本發(fā)明的實(shí)施例提供了一種緩沖存儲(chǔ)器控制單元,其包括:標(biāo)記存儲(chǔ)部,在所述標(biāo)記存儲(chǔ)部中由被訪問(wèn)地址的第一地址部分查找多個(gè)索引中的一個(gè)索引,每個(gè)索引包含多個(gè)標(biāo)記地址和一個(gè)暫停表示部;及標(biāo)記控制部,當(dāng)查找到的索引中包含的所述暫停表示部指示暫停時(shí),所述標(biāo)記控制部使與所述被訪問(wèn)地址相關(guān)的訪問(wèn)進(jìn)行等待,并且當(dāng)所述查找到的索引中包含的所述暫停表示部指示不暫停時(shí),所述標(biāo)記控制部將所述被訪問(wèn)地址的不同于所述第一地址部分的第二地址部分與所述查找到的索引中包含的所述多個(gè)標(biāo)記地址中的各標(biāo)記地址進(jìn)行比較,并檢測(cè)與所述第二地址部分相一致的標(biāo)記地址。因此,提供了通過(guò)參照所述查找到的索引中包含的所述暫停表示部來(lái)確定是否使訪問(wèn)進(jìn)行等待的功能。
[0015]本發(fā)明的實(shí)施例提供了一種控制緩沖存儲(chǔ)器的方法,所述緩沖存儲(chǔ)器標(biāo)包括記存儲(chǔ)部,在所述標(biāo)記存儲(chǔ)部中由被訪問(wèn)地址的第一地址部分查找多個(gè)索引中的一個(gè)索引,每個(gè)索引包含多個(gè)標(biāo)記地址和一個(gè)暫停表示部,所述方法包括:當(dāng)查找到的索引中包含的所述暫停表示部指示暫停時(shí),使與所述被訪問(wèn)地址相關(guān)的訪問(wèn)進(jìn)行等待;及當(dāng)所述查找到的索引中包含的所述暫停表示部指示不暫停時(shí),將所述被訪問(wèn)地址的不同于所述第一地址部分的第二地址部分與所述查找到的索引中包含的所述多個(gè)標(biāo)記地址中的各標(biāo)記地址進(jìn)行比較,并檢測(cè)與所述第二地址部分相一致的標(biāo)記地址。因此,提供了通過(guò)參照所述查找到的索引中包含的所述暫停表示部來(lái)確定是否使訪問(wèn)進(jìn)行等待的功能。
[0016]根據(jù)上述實(shí)施例中的任何實(shí)施例,提供了以簡(jiǎn)單構(gòu)造在所述緩沖存儲(chǔ)器中實(shí)現(xiàn)訪問(wèn)暫停的出色效果。
[0017]應(yīng)當(dāng)理解,前面的一般性說(shuō)明和下面的詳細(xì)說(shuō)明都是示例性的,且旨在提供對(duì)所要求保護(hù)的發(fā)明的進(jìn)一步說(shuō)明。
【專(zhuān)利附圖】
【附圖說(shuō)明】
[0018]所包含的附圖提供了對(duì)本發(fā)明的進(jìn)一步理解,并被合并到說(shuō)明書(shū)中以作為說(shuō)明書(shū)的一部分。附圖圖示了本發(fā)明的實(shí)施例,并與說(shuō)明書(shū)一起用于說(shuō)明本發(fā)明的技術(shù)原理。
[0019]圖1圖示了本發(fā)明實(shí)施例中的信息處理系統(tǒng)的構(gòu)造示例。
[0020]圖2圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200的功能構(gòu)造示例。
[0021]圖3圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200的電路構(gòu)造示例。
[0022]圖4圖示了本發(fā)明實(shí)施例中的標(biāo)記存儲(chǔ)部220的構(gòu)造示例。
[0023]圖5圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200的處理過(guò)程示例。
[0024]圖6圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200響應(yīng)于讀取指令的狀態(tài)轉(zhuǎn)換示例。
[0025]圖7圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200響應(yīng)于寫(xiě)入指令的狀態(tài)轉(zhuǎn)換示例。
[0026]圖8圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200響應(yīng)于填充指令的狀態(tài)轉(zhuǎn)換示例。
[0027]圖9圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200響應(yīng)于刷新指令地址型的狀態(tài)轉(zhuǎn)換示例。
[0028]圖10圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200響應(yīng)于刷新指令索引型的狀態(tài)轉(zhuǎn)換示例。
[0029]圖11圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200響應(yīng)于無(wú)效指令地址型的狀態(tài)轉(zhuǎn)換示例。
[0030]圖12圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200響應(yīng)于無(wú)效指令索引型的狀態(tài)轉(zhuǎn)換示例。
[0031]圖13圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200響應(yīng)于刷新和無(wú)效指令地址型的狀態(tài)轉(zhuǎn)換示例。
[0032]圖14圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200響應(yīng)于刷新和無(wú)效指令索引型的狀態(tài)轉(zhuǎn)換示例。
[0033]圖15圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200響應(yīng)于分配指令的狀態(tài)轉(zhuǎn)換示例。
[0034]圖16是圖示了本發(fā)明實(shí)施例中的讀取指令的執(zhí)行的第一示例的時(shí)序圖。
[0035]圖17是圖示了本發(fā)明實(shí)施例中的讀取指令的執(zhí)行的第二示例的時(shí)序圖。
[0036]圖18是圖示了本發(fā)明實(shí)施例中的讀取指令的執(zhí)行的第三示例的時(shí)序圖。
[0037]圖19是圖示了本發(fā)明實(shí)施例中的讀取指令的執(zhí)行的第四示例的時(shí)序圖。
[0038]圖20是圖示了本發(fā)明實(shí)施例中的讀取指令的執(zhí)行的第五示例的時(shí)序圖。
[0039]圖21圖示了本發(fā)明實(shí)施例的變形例中的標(biāo)記存儲(chǔ)部220的構(gòu)造示例。
[0040]圖22是圖示了本發(fā)明實(shí)施例的變形例中的二級(jí)緩存200的處理過(guò)程示例的流程圖。
[0041]具體實(shí)施形式
[0042]在下文中對(duì)本發(fā)明的實(shí)施例進(jìn)行了說(shuō)明。按照下列順序進(jìn)行說(shuō)明。
[0043]1.實(shí)施例(讀取和寫(xiě)入被分離時(shí)的未完成管理(outstanding management)的示例)。
[0044]2.變形例(不分離讀取和寫(xiě)入時(shí)的未完成管理的示例)。
[0045]1.實(shí)施例
[0046]信息處理系統(tǒng)的構(gòu)造
[0047]圖1圖示了本發(fā)明實(shí)施例中的信息處理系統(tǒng)的構(gòu)造示例。該信息處理系統(tǒng)包括P(P是I以上的整數(shù))個(gè)處理器100-1?100-P(在下文中,這類(lèi)處理器被統(tǒng)稱(chēng)為處理器100)、二級(jí)緩存200和主存儲(chǔ)器300。
[0048]各個(gè)處理器100內(nèi)部包括一級(jí)緩存110-1?110-p(在下文中,這類(lèi)緩存被統(tǒng)稱(chēng)為一級(jí)緩存110)。因此,只要一級(jí)緩存I1被命中,處理器100使用一級(jí)緩存100來(lái)進(jìn)行數(shù)據(jù)訪問(wèn)。當(dāng)一級(jí)緩存100脫革EKmiss-hit)時(shí),處理器100訪問(wèn)二級(jí)緩存200。當(dāng)一級(jí)緩存110脫靶時(shí),只要二級(jí)緩存200命中時(shí),處理器100使用二級(jí)緩存200來(lái)進(jìn)行數(shù)據(jù)訪問(wèn)。另一方面,當(dāng)二級(jí)緩存200脫靶時(shí),處理器100訪問(wèn)主存儲(chǔ)器300。
[0049]以此方式,本發(fā)明的實(shí)施例具有三級(jí)存儲(chǔ)結(jié)構(gòu),該三級(jí)存儲(chǔ)結(jié)構(gòu)由各個(gè)處理器100的一級(jí)緩存110、各處理器100共用的二級(jí)緩存200以及主存儲(chǔ)器300構(gòu)成。當(dāng)將處理器100看作主機(jī)時(shí),二級(jí)緩存200用作由多個(gè)主機(jī)共用的公共緩沖存儲(chǔ)器。
[0050]二級(jí)緩存的構(gòu)造
[0051]圖2是圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200的功能構(gòu)造示例的圖。二級(jí)緩存200包括仲裁部210、標(biāo)記存儲(chǔ)部220、標(biāo)記控制部230、數(shù)據(jù)存儲(chǔ)部240、數(shù)據(jù)控制部250及響應(yīng)部260。
[0052]仲裁部210對(duì)來(lái)自處理器100-1?100_p中的各者和主存儲(chǔ)器300的訪問(wèn)進(jìn)行仲裁,并給予他們中的一者訪問(wèn)權(quán)限。在仲裁部210做出的可能的仲裁中,例如,可按循環(huán)的方式順序地將訪問(wèn)權(quán)限分配給處理器100-1?100-p和主存儲(chǔ)器300。將被允許的訪問(wèn)提供至標(biāo)記控制部230。
[0053]標(biāo)記存儲(chǔ)部220是由多個(gè)條目構(gòu)成的存儲(chǔ)器,并在各條目中保持標(biāo)記地址等。如稍后所述,標(biāo)記地址表示訪問(wèn)地址的一部分。通過(guò)訪問(wèn)地址的另一部分來(lái)查找標(biāo)記存儲(chǔ)部220的各條目。
[0054]標(biāo)記控制部230根據(jù)訪問(wèn)地址來(lái)選擇和控制標(biāo)記存儲(chǔ)部220將被訪問(wèn)的條目。標(biāo)記控制部230選擇的條目被通知給數(shù)據(jù)控制部250。
[0055]數(shù)據(jù)存儲(chǔ)部240存儲(chǔ)與標(biāo)記存儲(chǔ)部220的每個(gè)條目相對(duì)應(yīng)的數(shù)據(jù)。各緩存線的數(shù)據(jù)在被管理的同時(shí)被存儲(chǔ)在數(shù)據(jù)存儲(chǔ)部240中。此外,各緩存線的數(shù)據(jù)被傳輸至主存儲(chǔ)器300或各處理器100,或者從主存儲(chǔ)器300或各處理器100傳輸來(lái)各緩存線的數(shù)據(jù)。
[0056]數(shù)據(jù)控制部250根據(jù)由標(biāo)記控制部230選擇的條目來(lái)訪問(wèn)存儲(chǔ)在數(shù)據(jù)存儲(chǔ)部240中的數(shù)據(jù)。在讀取訪問(wèn)或回寫(xiě)操作的情況下,將從數(shù)據(jù)存儲(chǔ)部240讀取的數(shù)據(jù)提供至響應(yīng)部260。在寫(xiě)入訪問(wèn)的情況下,將寫(xiě)入數(shù)據(jù)埋于從數(shù)據(jù)存儲(chǔ)部240讀取的數(shù)據(jù)中的對(duì)應(yīng)位置處并再次將其存儲(chǔ)在數(shù)據(jù)存儲(chǔ)部240中。
[0057]響應(yīng)部260將從數(shù)據(jù)控制部250提供的數(shù)據(jù)輸出至處理器100_1?100_p中的一者或主存儲(chǔ)器300。在響應(yīng)于處理器100的讀取訪問(wèn)的情況下,數(shù)據(jù)被輸出至已進(jìn)行了該訪問(wèn)的處理器100。在主存儲(chǔ)器300的回寫(xiě)操作的情況下,數(shù)據(jù)被輸出至主存儲(chǔ)器300。
[0058]圖3圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200的電路構(gòu)造示例。這里,假定二級(jí)緩存200是線數(shù)為128且線尺寸為64字節(jié)(B)的四路組相聯(lián)緩存。具體地,相同的索引地址能夠存儲(chǔ)多達(dá)四條緩存線,且與各緩存線相對(duì)應(yīng)的數(shù)據(jù)大小為64B。
[0059]當(dāng)主存儲(chǔ)器300的區(qū)域是256MB時(shí),必要的地址包括28位。由于塊大小為64B,所以將訪問(wèn)地址的第零位至第五位,即總共六位分配給線內(nèi)地址(in-line address)。由于線數(shù)為128,所以將用于查找標(biāo)記存儲(chǔ)部220的條目的索引地址分配至訪問(wèn)地址的第六位至第十二位,即總共七位。因此,將標(biāo)記地址分配至訪問(wèn)地址的第十三位至第二十七位,即總共十五位。通過(guò)信號(hào)線201、信號(hào)線202和信號(hào)線203分別將訪問(wèn)地址的標(biāo)記地址、索引地址和線內(nèi)地址提供至二級(jí)緩存200。
[0060]標(biāo)記存儲(chǔ)部220包括分別由128個(gè)條目構(gòu)成的四條路徑,即路徑#0?路徑#3。通過(guò)經(jīng)由信號(hào)線202提供的索引地址來(lái)查找標(biāo)記存儲(chǔ)部220的各路徑。因此,在此示例中查找出了四個(gè)條目。
[0061]標(biāo)記控制部230包括比較器231?234以及邏輯和運(yùn)算器235,并且對(duì)標(biāo)記存儲(chǔ)部220中的所查找的條目之中的具有一致的標(biāo)記地址的條目進(jìn)行檢測(cè)。比較器231將在標(biāo)記存儲(chǔ)部220的路徑#0中查找到的條目中包含的標(biāo)記地址與通過(guò)信號(hào)線201提供的標(biāo)記地址進(jìn)行比較,并檢測(cè)這兩個(gè)標(biāo)記地址之間的一致。比較器232將在標(biāo)記存儲(chǔ)部220的路徑#1中查找到的條目中包含的標(biāo)記地址與通過(guò)信號(hào)線201提供的標(biāo)記地址進(jìn)行比較,并檢測(cè)這兩個(gè)標(biāo)記地址之間的一致。類(lèi)似地,比較器233應(yīng)對(duì)標(biāo)記存儲(chǔ)部220的路徑#2,且比較器234應(yīng)對(duì)標(biāo)記存儲(chǔ)部220的路徑#3。將這類(lèi)比較器231?234的比較結(jié)果提供至邏輯和運(yùn)算器235和數(shù)據(jù)控制部250。當(dāng)比較器231?234中的一者檢測(cè)到一致時(shí),邏輯和運(yùn)算器235通過(guò)信號(hào)線298輸出命中的通知。然而,如稍后所述,在對(duì)應(yīng)的條目的有效位指示無(wú)效的情況下,比較結(jié)果被確定為脫靶。
[0062]數(shù)據(jù)存儲(chǔ)部240包括分別由128個(gè)緩存線構(gòu)成的四個(gè)路徑,即路徑#0?路徑#3,并存儲(chǔ)與標(biāo)記存儲(chǔ)部220的每個(gè)條目相對(duì)應(yīng)的數(shù)據(jù)。與標(biāo)記存儲(chǔ)部220 —樣,數(shù)據(jù)存儲(chǔ)部240是通過(guò)經(jīng)由信號(hào)線202提供的索引地址來(lái)進(jìn)行查找的。因此,將四個(gè)64B的線數(shù)據(jù)提供至數(shù)據(jù)控制部250。
[0063]數(shù)據(jù)控制部250包括選擇器251和252。選擇器251選擇從數(shù)據(jù)存儲(chǔ)部240提供的四個(gè)64B的數(shù)據(jù)中的一個(gè)數(shù)據(jù)。具體地,當(dāng)比較器231檢測(cè)到一致時(shí),選擇數(shù)據(jù)存儲(chǔ)部240的路徑#0的線數(shù)據(jù)。當(dāng)比較器232檢測(cè)到一致時(shí),選擇數(shù)據(jù)存儲(chǔ)部240的路徑#1的線數(shù)據(jù)。當(dāng)比較器233檢測(cè)到一致時(shí),選擇數(shù)據(jù)存儲(chǔ)部240的路徑#2的線數(shù)據(jù)。當(dāng)比較器234檢測(cè)到一致時(shí),選擇數(shù)據(jù)存儲(chǔ)部240的路徑#3的線數(shù)據(jù)。然而,如稍后所述,在其中檢測(cè)到一致的條目的有效位表示無(wú)效的情況下,不選擇該緩存線的數(shù)據(jù)。當(dāng)比較器231和232均未檢測(cè)到一致時(shí),不選擇任何緩存線的數(shù)據(jù)。
[0064]選擇器252選擇在所選擇的線數(shù)據(jù)中被指定為線內(nèi)地址的位置處的數(shù)據(jù)。通過(guò)信號(hào)線203來(lái)提供線內(nèi)地址。然而,選擇器252的這類(lèi)功能可以設(shè)置在處理器100中。在每種情況下,通過(guò)信號(hào)線299將整個(gè)或部分線數(shù)據(jù)輸出至響應(yīng)部260。
[0065]圖4圖示了本發(fā)明實(shí)施例中的標(biāo)記存儲(chǔ)部220的構(gòu)造示例。標(biāo)記存儲(chǔ)部220在四條路徑中的每個(gè)緩存線中包括標(biāo)記地址221、有效222和臟223的字段。標(biāo)記存儲(chǔ)部220在每個(gè)索引中還包括讀取未完成255、寫(xiě)入未完成226和替換算法227的字段。
[0066]標(biāo)記地址221存儲(chǔ)與該條目相對(duì)應(yīng)的緩存線的標(biāo)記地址(地址的高15位)。在附圖中,標(biāo)記地址221被縮寫(xiě)為“TAG”。
[0067]有效222存儲(chǔ)用于表示該條目的有效性的有效位(Valid)。當(dāng)有效222指示“I”時(shí),與該條目相對(duì)應(yīng)的緩存線的數(shù)據(jù)有效。當(dāng)有效222指示“O”時(shí),即使比較器231?234中的一者檢測(cè)到一致,也不作出命中的判定。在附圖中,有效222被縮寫(xiě)為“V”。
[0068]臟223存儲(chǔ)用于表示與該條目相對(duì)應(yīng)的緩存線的數(shù)據(jù)與主存儲(chǔ)器300的數(shù)據(jù)失配的臟位(Dirty)。如果臟223指示“ 1”,那么與該條目相對(duì)應(yīng)的緩存線的數(shù)據(jù)不與主存儲(chǔ)器300的數(shù)據(jù)一致,即二級(jí)緩存200的數(shù)據(jù)是最新數(shù)據(jù)。另一方面,如果臟223指示“0”,那么與該條目相對(duì)應(yīng)的緩存線的數(shù)據(jù)與主存儲(chǔ)器300的數(shù)據(jù)一致。在附圖中,臟223被縮寫(xiě)為“D”。
[0069]讀取未完成225存儲(chǔ)讀取未完成位(Read_Outstanding),該讀取未完成位用于表示與該索引相對(duì)應(yīng)的一個(gè)緩存線處于從主存儲(chǔ)器300讀取的等待狀態(tài)。如果讀取未完成225指示“1”,那么與該索引相對(duì)應(yīng)的一個(gè)緩存線處于從主存儲(chǔ)器300讀取的等待狀態(tài)。另一方面,如果讀取未完成225指示“0”,那么在與該索引相對(duì)應(yīng)的任何緩存線中都不會(huì)發(fā)生從主存儲(chǔ)器300讀取的等待狀態(tài)。這樣的讀取的等待狀態(tài)出現(xiàn)在緩存線的填充處理期間。當(dāng)從主存儲(chǔ)器300讀取適當(dāng)?shù)臄?shù)據(jù)并將其寫(xiě)入至適當(dāng)?shù)木彺婢€時(shí),填充處理完成并且讀取未完成(ROS)被清零。在附圖中,將讀取未完成225縮寫(xiě)為“R0S”。應(yīng)當(dāng)注意的是,讀取未完成225對(duì)應(yīng)于根據(jù)本發(fā)明所附的權(quán)利要求的暫停表示部的示例。
[0070]寫(xiě)入未完成226存儲(chǔ)寫(xiě)入未完成位(Write_Outstanding),該寫(xiě)入未完成位用于表示與該索引相對(duì)應(yīng)的一個(gè)緩存線處于寫(xiě)入至主存儲(chǔ)器300的等待狀態(tài)。如果寫(xiě)入未完成226指示“1”,那么與該索引相對(duì)應(yīng)的一個(gè)緩存線處于寫(xiě)入至主存儲(chǔ)器300的等待狀態(tài)。另一方面,如果寫(xiě)入未完成226指示“0”,那么在與該索引相對(duì)應(yīng)的任何緩存線中都不會(huì)發(fā)生寫(xiě)入至主存儲(chǔ)器300的等待狀態(tài)。這樣的寫(xiě)入的等待狀態(tài)出現(xiàn)在緩存線的回寫(xiě)處理期間。當(dāng)收到響應(yīng)于寫(xiě)入至主存儲(chǔ)器300的寫(xiě)入指令完成寫(xiě)入的通知時(shí),回寫(xiě)處理完成,且寫(xiě)入未完成(WOS)被清零。在附圖中,將寫(xiě)入未完成226縮寫(xiě)為“W0S”。應(yīng)當(dāng)注意的是,寫(xiě)入未完成226對(duì)應(yīng)于根據(jù)本發(fā)明所附的權(quán)利要求的暫停表示部的示例。
[0071]替換算法227存儲(chǔ)用于確定當(dāng)各索引存儲(chǔ)新緩存線時(shí)將被替換的路徑的信息。雖然在此實(shí)施例中可以使用任何類(lèi)型的替換算法,但是假定這里使用如下方法:在該方法中,不是最近最少使用(LRU)的緩存線被排除。在附圖中,將替換算法227縮寫(xiě)為“LRU”。
[0072]因此,分別管理讀取未完成225和寫(xiě)入未完成226,從而在完成寫(xiě)入操作之后確實(shí)能夠進(jìn)行隨后的填充操作。這使得能夠保持相同地址的某回寫(xiě)操作以及后續(xù)的填充操作的順序。例如,如本實(shí)施例中假設(shè)的那樣,可將AXI總線列為具有表示寫(xiě)入操作完成的響應(yīng)的協(xié)議。
[0073]二級(jí)緩存的操作
[0074]圖5是圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200的處理過(guò)程示例的流程圖。
[0075]首先,當(dāng)處理器100訪問(wèn)二級(jí)緩存200時(shí)(步驟S911:是),仲裁部210判定多個(gè)處理器100-1?100-P中的哪一個(gè)處理器被許可訪問(wèn)(步驟S912)。根據(jù)被許可的處理器100訪問(wèn)的地址來(lái)查找標(biāo)記存儲(chǔ)部220,且讀取標(biāo)記和其它類(lèi)型的信息(步驟S913)。
[0076]此時(shí),當(dāng)讀取的索引的讀取未完成位或?qū)懭胛赐瓿晌恢甘尽癐”時(shí)(步驟S914:是),暫停該訪問(wèn),且處理返回至仲裁處理(步驟S912)。另一方面,當(dāng)讀取未完成位和寫(xiě)入未完成位均指示“O”時(shí)(步驟S914:否),該訪問(wèn)被許可,并且進(jìn)行標(biāo)記的比較,且參照有效位等(步驟S915)。因此,確定了緩存操作(步驟S916)。隨后,對(duì)標(biāo)記地址221、有效222和臟223的字段進(jìn)行更新。
[0077]從此流程圖中看出,在本實(shí)施例中,由于在標(biāo)記比較等之前的階段中檢查讀取未完成位和寫(xiě)入未完成位,所以能夠?qū)⑻幚泶笾路譃閮蓚€(gè)階段,這使得控制得到簡(jiǎn)化。
[0078]當(dāng)主存儲(chǔ)器300不依賴(lài)此順序流程圖而進(jìn)行響應(yīng)時(shí),目標(biāo)緩存線的讀取未完成位或?qū)懭胛赐瓿晌槐磺辶?。在填充處理的情況下,將來(lái)自主存儲(chǔ)器300的數(shù)據(jù)存儲(chǔ)在二級(jí)緩存200中。
[0079]二級(jí)緩存的狀態(tài)轉(zhuǎn)換
[0080]現(xiàn)在,在各處理中分別說(shuō)明二級(jí)緩存200的狀態(tài)轉(zhuǎn)換。在本發(fā)明的實(shí)施例中,當(dāng)V為“O”時(shí),D在任何情況下也都為“0”,而不會(huì)出現(xiàn)V=O且D=I等情況。此外,R0S/W0S=0意味著讀取未完成位和寫(xiě)入未完成位均為“O”。另一方面,R0S/W0S=1意味著讀取未完成位和與入未完成位中的一者或兩者為“ I ”。在各項(xiàng)中,“*”意味著值或狀態(tài)沒(méi)有被指定。
[0081]圖6圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200響應(yīng)于讀取指令的狀態(tài)轉(zhuǎn)換示例。為了從主存儲(chǔ)器300讀取數(shù)據(jù),從處理器100發(fā)出讀取指令。二級(jí)緩存200連接在處理器100和主存儲(chǔ)器300之間,并在接收到從處理器100發(fā)出的讀取指令時(shí)進(jìn)行下列操作。
[0082]當(dāng)ROS和WOS中的一者或兩者為“I”時(shí),讀取處理暫停并等待直至ROS和WOS均變?yōu)椤癘”。在這樣的等待期間,可接收根據(jù)其它指令對(duì)二級(jí)緩存200的訪問(wèn)。在此情況下,V、D、ROS和WOS的狀態(tài)均不發(fā)生變化。
[0083]如果比較器231?234中的一個(gè)比較器在一個(gè)條目中檢測(cè)到標(biāo)記地址一致,且如果V為1,那么基本上做出命中判定,且從對(duì)應(yīng)的緩存線中讀取數(shù)據(jù)。此時(shí),即使D為1,也不進(jìn)行向主存儲(chǔ)器300的回寫(xiě)。在此情況下,V、D、ROS和WOS的狀態(tài)均不發(fā)生變化。
[0084]如果比較器231?234均沒(méi)有檢測(cè)到標(biāo)記地址一致,或者如果即使檢測(cè)到這樣的一致但V為0,那么基本上做出脫靶判定。因此,當(dāng)沒(méi)有檢測(cè)到標(biāo)記地址一致時(shí),通過(guò)LRU法等來(lái)確定將被替換的路徑,且從主存儲(chǔ)器300進(jìn)行適當(dāng)?shù)木彺婢€的填充操作。此時(shí),如果D為I,那么在替換之前還進(jìn)行主存儲(chǔ)器300的回寫(xiě)。如果即使檢測(cè)到這樣的一致但如果V為0,那么新路徑可能無(wú)法確定,因此,可以從主存儲(chǔ)器300進(jìn)行該緩存線的填充操作。在這類(lèi)情況下,當(dāng)填充操作的指令被發(fā)送至主存儲(chǔ)器300時(shí),狀態(tài)被轉(zhuǎn)換成ROS=I的狀態(tài)。當(dāng)發(fā)出回寫(xiě)操作的指令時(shí),狀態(tài)被轉(zhuǎn)換成WOS=I的狀態(tài)。
[0085]圖7圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200響應(yīng)于寫(xiě)入指令的狀態(tài)轉(zhuǎn)換示例。為了將數(shù)據(jù)寫(xiě)入主存儲(chǔ)器300,從處理器100發(fā)出此寫(xiě)入指令。二級(jí)緩存200連接在處理器100和主存儲(chǔ)器300之間,并在接收到從處理器100發(fā)出的寫(xiě)入指令時(shí)執(zhí)行下列操作。
[0086]當(dāng)ROS和WOS中的一者或兩者為“ I ”時(shí),寫(xiě)入處理程暫停并等待直至ROS和WOS均變?yōu)椤癘”。在這樣的等待期間,可接收根據(jù)其它指令對(duì)二級(jí)緩存200的訪問(wèn)。在此情況下,V、D、ROS和WOS的狀態(tài)均不發(fā)生變化。
[0087]如果比較器231?234中的一個(gè)比較器在一個(gè)條目中檢測(cè)到標(biāo)記地址一致,且如果V為1,那么基本上做出命中判定,且將數(shù)據(jù)寫(xiě)入至對(duì)應(yīng)的緩存線。此時(shí),即使D為1,也不進(jìn)行對(duì)主存儲(chǔ)器300的回寫(xiě)。在進(jìn)行寫(xiě)入之后,狀態(tài)變成D=I的狀態(tài)。
[0088]如果比較器231?234都沒(méi)有檢測(cè)到標(biāo)記地址一致,或者即使檢測(cè)到這樣的一致但V為0,那么基本上做出脫靶判定。因此,當(dāng)沒(méi)有檢測(cè)到標(biāo)記地址一致時(shí),通過(guò)LRU法等來(lái)確定將被替換的路徑,且從主存儲(chǔ)器300進(jìn)行適當(dāng)?shù)木彺婢€的填充操作,然后寫(xiě)入數(shù)據(jù)。此時(shí),如果D為1,那么在替換之前還進(jìn)行向主存儲(chǔ)器300的回寫(xiě)。如果即使檢測(cè)到這樣的一致但V為0,那么新路徑可能無(wú)法確定;因此,可從主存儲(chǔ)器300進(jìn)行該緩存線的填充操作。在這類(lèi)情況下,當(dāng)填充操作的指令被發(fā)送至主存儲(chǔ)器300時(shí),狀態(tài)被轉(zhuǎn)換成ROS=I的狀態(tài)。當(dāng)發(fā)出回寫(xiě)操作的指令時(shí),狀態(tài)被轉(zhuǎn)換成WOS=I的狀態(tài)。
[0089]圖8圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200響應(yīng)于填充指令的狀態(tài)轉(zhuǎn)換示例。填充指令是用于從主存儲(chǔ)器300讀取緩存線至二級(jí)緩存200的指令。然而,當(dāng)二級(jí)緩存200命中時(shí),可直接使用緩存線,因此,不進(jìn)行操作。
[0090]當(dāng)ROS和WOS中的一者或兩者為“ I”時(shí),填充處理暫停并等待直至ROS和WOS均變成“O”。在這樣的等待期間,可接收根據(jù)其它指令的對(duì)二級(jí)緩存200的訪問(wèn)。在此情況下,V、D、ROS和WOS的狀態(tài)均不發(fā)生變化。
[0091]如果比較器231?234中的一個(gè)比較器在一個(gè)條目中檢測(cè)到標(biāo)記地址一致,且如果V為I,那么基本上做出命中判定,且不進(jìn)行任何操作。在此情況下,V、D、ROS和WOS的狀態(tài)均不發(fā)生變化。
[0092]如果比較器231?234均沒(méi)有檢測(cè)到標(biāo)記地址一致,或者如果即使檢測(cè)到這樣的一致但V為0,那么基本上做出脫靶判定。因此,當(dāng)沒(méi)有檢測(cè)到標(biāo)記地址一致時(shí),通過(guò)LRU法等來(lái)確定將被替換的路徑,且從主存儲(chǔ)器300執(zhí)行適當(dāng)?shù)木彺婢€的填充操作。此時(shí),如果D為1,那么在替換之前還進(jìn)行向主存儲(chǔ)器300的回寫(xiě)。在這樣的情況下,當(dāng)填充操作的指令被發(fā)送至主存儲(chǔ)器300時(shí),狀態(tài)被轉(zhuǎn)換成ROS=I的狀態(tài)。當(dāng)發(fā)出回寫(xiě)操作的指令時(shí),狀態(tài)被轉(zhuǎn)換成WOS=I的狀態(tài)。
[0093]圖9圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200響應(yīng)于刷新指令地址型的狀態(tài)轉(zhuǎn)換示例。刷新指令是用于將緩存線寫(xiě)回至主存儲(chǔ)器300的指令。在刷新指令地址型的情況下,目標(biāo)緩存線由地址指定。
[0094]當(dāng)ROS和WOS中的一者或兩者為“I”時(shí),刷新處理暫停并等待直至ROS和WOS均變成“O”。在這樣的等待期間,可接收根據(jù)其它指令對(duì)二級(jí)緩存200的訪問(wèn)。在此情況下,V、D、ROS和WOS的狀態(tài)均不發(fā)生變化。
[0095]如果比較器231?234中的一個(gè)比較器在一個(gè)條目中檢測(cè)到標(biāo)記地址一致,且如果V為1,那么基本上做出命中判定。此時(shí),如果D為1,那么進(jìn)行回寫(xiě)。當(dāng)發(fā)出回寫(xiě)操作的指令時(shí),狀態(tài)被轉(zhuǎn)換成WOS=I的狀態(tài)。
[0096]如果比較器231?234均沒(méi)有檢測(cè)到標(biāo)記地址一致,或者如果即使檢測(cè)到這樣的一致但V為0,那么基本上做出脫靶判定,且不進(jìn)行操作。在此情況下,V、D、ROS和WOS的狀態(tài)均不發(fā)生變化。
[0097]圖10是圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200響應(yīng)于刷新指令索引型的狀態(tài)轉(zhuǎn)換示例。在刷新指令索引型的情況下,目標(biāo)緩存線是由索引值和路徑值指定的。因此,不依賴(lài)于比較器231?234的比較結(jié)果來(lái)進(jìn)行處理。
[0098]當(dāng)ROS和WOS中的一者或兩者為“I”時(shí),刷新處理暫停并等待直至ROS和WOS均變成“O”。在這樣的等待期間,可接收根據(jù)其它指令對(duì)二級(jí)緩存200的訪問(wèn)。在此情況下,V、D、ROS和WOS的狀態(tài)均不發(fā)生變化。
[0099]與指定的索引值和路徑值相對(duì)應(yīng)的條目顯示V=I和D=l,進(jìn)行回寫(xiě)操作。當(dāng)發(fā)出回寫(xiě)操作的指令時(shí),狀態(tài)被轉(zhuǎn)換成WOS=I的狀態(tài)。
[0100]與指定的索引值和路徑值相對(duì)應(yīng)的條目顯示D=0,可以不進(jìn)行刷新,因此,不進(jìn)行操作。在此情況下,V、D、ROS和WOS的狀態(tài)均不發(fā)生變化。
[0101]圖11圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200響應(yīng)于無(wú)效指令地址型的狀態(tài)轉(zhuǎn)換示例。無(wú)效指令是用于緩存線的無(wú)效化的指令。在無(wú)效指令地址型的情況下,目標(biāo)緩存線由地址指定。
[0102]當(dāng)ROS和WOS中的一者或兩者為“I”時(shí),刷新處理暫停并等待直至ROS和WOS均變?yōu)椤癘”。在這樣的等待期間,可接收根據(jù)其它指令對(duì)二級(jí)緩存200的訪問(wèn)。在此情況下,V、D、ROS和WOS的狀態(tài)均不發(fā)生變化。
[0103]如果比較器231?234中的一個(gè)比較器在一個(gè)條目中檢測(cè)到標(biāo)記地址一致,且如果V為I,那么基本上做出命中判定,且相關(guān)緩存線被無(wú)效化。因此,V、D、ROS和WOS的狀態(tài)均被清零。在此情況下,即使D為I,也不進(jìn)行回寫(xiě)。
[0104]如果比較器231?234均沒(méi)有檢測(cè)到標(biāo)記地址一致,或者如果即使檢測(cè)到這樣的一致但V為0,那么基本上做出脫靶判定,且不進(jìn)行操作。在此情況下,V、D、ROS和WOS的狀態(tài)均不發(fā)生變化。
[0105]圖12圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200響應(yīng)于無(wú)效指令索引型的狀態(tài)轉(zhuǎn)換示例。在無(wú)效指令索引型的情況下,目標(biāo)緩存線由索引值和路徑值指定。因此,不依賴(lài)于比較器231?234的比較結(jié)果來(lái)進(jìn)行處理。
[0106]當(dāng)ROS和WOS中的一者或兩者為“I”時(shí),無(wú)效處理暫停并等待直至ROS和WOS均變?yōu)椤癘”。在這樣的等待期間,可以接收根據(jù)其它指令對(duì)二級(jí)緩存200的訪問(wèn)。在此情況下,V、D、ROS和WOS的狀態(tài)均不發(fā)生變化。
[0107]與指定的索引值和路徑值相對(duì)應(yīng)的條目顯示V=l,相關(guān)緩存線被無(wú)效化。因此,V、D、ROS和WOS的狀態(tài)均被清零。在此情況下,即使D為1,也不進(jìn)行回寫(xiě)。
[0108]與指定的索引值和路徑值相對(duì)應(yīng)的條目顯示V=0,緩存線可能未被無(wú)效化,因此,不進(jìn)行操作。在此情況下,V、D、ROS和WOS的狀態(tài)均不發(fā)生變化。
[0109]圖13圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200響應(yīng)于刷新與無(wú)效指令地址型的狀態(tài)轉(zhuǎn)換示例。刷新與無(wú)效指令是用于在緩存線被回寫(xiě)至主存儲(chǔ)器300之后將緩存線無(wú)效化的指令。在刷新與無(wú)效指令地址型的情況下,目標(biāo)緩存線由地址指定。
[0110]當(dāng)ROS和WOS中的一者或兩者為“ I ”時(shí),刷新與無(wú)效處理暫停并等待直至ROS和WOS均變?yōu)椤癘”。在這樣的等待期間,可接收根據(jù)其它指令對(duì)二級(jí)緩存200的訪問(wèn)。在此情況下,V、D、ROS和WOS的狀態(tài)均不發(fā)生變化。
[0111]如果比較器231?234中的一個(gè)比較器在一個(gè)條目中檢測(cè)到標(biāo)記地址一致,且如果V為1,那么基本上做出命中判定,且相關(guān)緩存線被無(wú)效化。此時(shí),如果D為I,那么在無(wú)效化之間先進(jìn)行回寫(xiě)。當(dāng)發(fā)出回寫(xiě)操作的指令時(shí),狀態(tài)被轉(zhuǎn)換成WOS=I的狀態(tài)。
[0112]如果比較器231?234均沒(méi)有檢測(cè)到標(biāo)記地址一致,或者如果即使檢測(cè)到這樣的一致但V為0,那么基本上做出脫靶判定,且不進(jìn)行操作。在此情況下,V、D、ROS和WOS的狀態(tài)均不發(fā)生變化。
[0113]圖14圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200響應(yīng)于刷新與無(wú)效指令索引型的狀態(tài)轉(zhuǎn)換示例。在刷新與無(wú)效指令索引型中,目標(biāo)緩存線是由索引值和路徑值指定的。因此,不依賴(lài)于比較器231?234的比較結(jié)果來(lái)進(jìn)行處理。
[0114]當(dāng)ROS和WOS中的一者或兩者為“I”時(shí),刷新與無(wú)效處理暫停并等待直至ROS和WOS均變?yōu)椤癘”。在這樣的等待期間,可接收根據(jù)其它指令對(duì)二級(jí)緩存200的訪問(wèn)。在此情況下,V、D、ROS和WOS的狀態(tài)均不發(fā)生變化。
[0115]與指定的索引值和路徑值相對(duì)應(yīng)的條目顯示V=l,相關(guān)緩存線被無(wú)效化。此時(shí),如果D為1,那么在無(wú)效化之前先進(jìn)行回寫(xiě)。當(dāng)發(fā)出回寫(xiě)操作的指令時(shí),狀態(tài)被轉(zhuǎn)換成WOS=I的狀態(tài)。
[0116]與指定的索引值和路徑值相對(duì)應(yīng)的條目顯示V=0,緩存線可能未被無(wú)效化,因此,不進(jìn)行操作。在此情況下,V、D、ROS和WOS的狀態(tài)均不發(fā)生變化。
[0117]圖15圖示了本發(fā)明實(shí)施例中的二級(jí)緩存200響應(yīng)于分配指令的狀態(tài)轉(zhuǎn)換示例。分配指令是用于保留二級(jí)緩存200中的與指定的地址相對(duì)應(yīng)的緩存線的指令。然而,當(dāng)二級(jí)緩存200命中時(shí),可直接使用該緩存線,因此,不進(jìn)行操作。與填充指令不同,不從主存儲(chǔ)器300讀取數(shù)據(jù)。
[0118]當(dāng)ROS和WOS中的一者或兩者為“I”時(shí),分配處理暫停并等待直至ROS和WOS均變?yōu)椤癘”。在這樣的等待期間,可接收根據(jù)其它指令對(duì)二級(jí)緩存200的訪問(wèn)。在此情況下,V、D、ROS和WOS的狀態(tài)均不發(fā)生變化。
[0119]如果比較器231?234中的一個(gè)比較器在一個(gè)條目中檢測(cè)到標(biāo)記地址一致,且如果V為I,那么基本上做出命中判定,且不進(jìn)行操作。在此情況下,V、D、ROS和WOS的狀態(tài)均不發(fā)生變化。
[0120]如果比較器231?234均沒(méi)有檢測(cè)到標(biāo)記地址一致,或者如果即使檢測(cè)到這樣的一致但V為0,那么基本上做出脫靶判定。因此,當(dāng)沒(méi)有檢測(cè)到標(biāo)記地址一致時(shí),通過(guò)LRU法等來(lái)確定將被替換的路徑。此時(shí),如果D為I,那么在保留路徑之前還進(jìn)行向主存儲(chǔ)器300的回寫(xiě)。當(dāng)發(fā)出回寫(xiě)操作的指令時(shí),狀態(tài)被轉(zhuǎn)換成WOS=I的狀態(tài)。
[0121]二級(jí)緩存的操作時(shí)序
[0122]現(xiàn)在說(shuō)明在各情況下二級(jí)緩存200的操作時(shí)序示例。
[0123]圖16是圖示了本發(fā)明實(shí)施例中的讀取指令的執(zhí)行的第一示例的時(shí)序圖。該示例性情況假設(shè):在前面的訪問(wèn)中進(jìn)行填充處理并且暫停后續(xù)的訪問(wèn)。
[0124]假定處理器#1 (100-1)發(fā)出讀取指令(711),且二級(jí)緩存200的標(biāo)記控制部230做出脫靶判定(712)。此時(shí),二級(jí)緩存200的響應(yīng)部260向主存儲(chǔ)器300發(fā)出填充緩存線的指令(713)。因此,ROS在對(duì)應(yīng)的緩存索引中變成I。
[0125]隨后,處理器#2 (100-2)向相同的緩存索引發(fā)出讀取指令(714),且二級(jí)緩存200的標(biāo)記控制部230檢測(cè)到R0S=1。因此,暫停根據(jù)來(lái)自處理器#2的讀取指令的讀取處理(715)。
[0126]當(dāng)完成根據(jù)來(lái)自處理器#1的讀取指令的填充處理時(shí)(717),ROS在對(duì)應(yīng)的緩存索引中變成0,且關(guān)于來(lái)自處理器#1的讀取指令進(jìn)行從二級(jí)緩存200的讀取操作(718)。此夕卜,還關(guān)于來(lái)自處理器#2的讀取指令進(jìn)行從二級(jí)緩存200的讀取操作(719)。
[0127]圖17是圖示了本發(fā)明實(shí)施例中的讀取指令的執(zhí)行的第二示例的時(shí)序圖。該示例性情況假設(shè):在前面的訪問(wèn)中進(jìn)行填充處理和回寫(xiě)處理,且暫停后續(xù)的訪問(wèn)。
[0128]假定處理器#1發(fā)出讀取指令(721),且二級(jí)緩存200的標(biāo)記控制部230做出脫靶和臟的判定(722)。此時(shí),二級(jí)緩存200的響應(yīng)部260向主存儲(chǔ)器300發(fā)出緩存線的填充和回寫(xiě)的指令(723)。因此,ROS和WOS在對(duì)應(yīng)的緩存索引中均變成I。
[0129]接著,處理器#2向相同的緩存索引發(fā)出讀取指令(724),且二級(jí)緩存200的標(biāo)記控制部230檢測(cè)到ROS=I和WOS=I。因此,暫停根據(jù)來(lái)自處理器#2的讀取指令的讀取處理(725)。
[0130]雖然同時(shí)發(fā)出填充處理的指令和回寫(xiě)處理的指令,但是先完成的處理根據(jù)二級(jí)緩存200的外部狀態(tài)而變化。這里,假定先完成填充處理(726和727)。當(dāng)填充處理和回寫(xiě)處理都完成時(shí),ROS和WOS在對(duì)應(yīng)的緩存索引中均變成0,且關(guān)于來(lái)自處理器#1的讀取指令進(jìn)行從二級(jí)緩存200的讀取操作(728)。此外,還關(guān)于來(lái)自處理器#2的讀取指令進(jìn)行從二級(jí)緩存200的讀取操作(729)。
[0131]圖18是圖示了本發(fā)明實(shí)施例中的讀取指令的執(zhí)行的第三示例的時(shí)序圖。此示例性情況假設(shè):在前面的訪問(wèn)中進(jìn)行填充處理和回寫(xiě)處理,并且完成了填充處理之后的后續(xù)訪問(wèn)暫停。
[0132]假定處理器#1發(fā)出讀取指令(731),且二級(jí)緩存200的標(biāo)記控制部230做出脫靶和臟的判定(732)。此時(shí),二級(jí)緩存200的響應(yīng)部260向主存儲(chǔ)器300發(fā)出緩存線的填充指令和回寫(xiě)指令(733)。因此,ROS和WOS在對(duì)應(yīng)的緩存索引中均變成I。雖然同時(shí)發(fā)出填充處理的指令和回寫(xiě)處理的指令,但是先完成的處理根據(jù)二級(jí)緩存200的外部狀態(tài)而變化。這里,假定先完成填充處理(736)。當(dāng)完成填充處理時(shí),ROS變成“O”,但是WOS仍為“I”。
[0133]在完成填充處理之后,處理器#2向相同的緩存索引發(fā)出讀取指令(734),且二級(jí)緩存200的標(biāo)記控制部230檢測(cè)到ROS=O和WOS=I。因此,基于來(lái)自處理器#2的讀取指令的讀取處理暫停(735)。
[0134]隨后,當(dāng)完成回寫(xiě)處理時(shí)(737),ROS和WOS在對(duì)應(yīng)的緩存索引中均變成0,且關(guān)于來(lái)自處理器#1的讀取指令進(jìn)行從二級(jí)緩存200的讀取操作(738)。此外,還關(guān)于來(lái)自處理器#2的讀取指令進(jìn)行從二級(jí)緩存200的讀取操作(739)。
[0135]圖19是圖示了本發(fā)明實(shí)施例中的讀取指令的執(zhí)行的第四示例的時(shí)序圖。本示例性情況假設(shè):前面的訪問(wèn)的索引地址與后續(xù)的訪問(wèn)的索引地址不同。
[0136]假定處理器#1發(fā)出讀取指令(741),且二級(jí)緩存200的標(biāo)記控制部230做出脫靶和臟的判定(742)。此時(shí),二級(jí)緩存200的響應(yīng)部260向主存儲(chǔ)器300發(fā)出緩存線的填充指令和回寫(xiě)指令(743)。因此,ROS和WOS在對(duì)應(yīng)的緩存索引中均變成I。
[0137]另一方面,當(dāng)處理器#2發(fā)出讀取指令(744)時(shí),假定將被訪問(wèn)的緩存索引不同。在此情況下,二級(jí)緩存200的標(biāo)記控制部230在該緩存索引中檢測(cè)到ROS=O和W0S=0。當(dāng)標(biāo)記控制部230檢測(cè)到緩存命中時(shí)(745),關(guān)于來(lái)自處理器#2的讀取指令進(jìn)行從二級(jí)緩存200的讀取操作(749)。
[0138]當(dāng)完成基于來(lái)自處理器#1的讀取指令的填充處理和回寫(xiě)處理時(shí)(746和747),ROS和WOS在對(duì)應(yīng)的緩存索引中均變成O。因此,關(guān)于來(lái)自處理器#1的讀取指令進(jìn)行從二級(jí)緩存200的讀取操作(748)。
[0139]圖20是圖示了本發(fā)明實(shí)施例中的讀取指令的執(zhí)行的第五示例的時(shí)序圖。該示例性情況假設(shè):前面的訪問(wèn)的索引地址與后續(xù)的訪問(wèn)的索引地址不同,并且在各訪問(wèn)操作中進(jìn)行填充處理和回寫(xiě)處理。
[0140]假定處理器#1發(fā)出讀取指令(751),且二級(jí)緩存200的標(biāo)記控制部230做出脫靶和臟的判定(752)。此時(shí),二級(jí)緩存200的響應(yīng)部260向主存儲(chǔ)部300發(fā)出緩存線的填充指令和回寫(xiě)指令(753)。因此,ROS和WOS在對(duì)應(yīng)的緩存索引中均變成I。
[0141]另一方面,當(dāng)處理器#2發(fā)出讀取指令(762)時(shí),假定將被訪問(wèn)的緩存索引不同。在此情況下,二級(jí)緩存200的標(biāo)記控制部230在該緩存索引中檢測(cè)到ROS=O和W0S=0。假定標(biāo)記控制部230做出脫靶和臟的判定(762)。此時(shí),二級(jí)緩存200的響應(yīng)部260向主存儲(chǔ)器300發(fā)出緩存線的填充指令和回寫(xiě)指令(763)。因此,ROS和WOS在對(duì)應(yīng)的緩存索引中均變成I。
[0142]因此,當(dāng)前面的訪問(wèn)的索引地址與后續(xù)的訪問(wèn)的索引地址不同時(shí),可為這兩個(gè)訪問(wèn)操作發(fā)出填充指令和回寫(xiě)指令。在此情況下,在填充處理和回寫(xiě)處理之中先完成的那個(gè)處理也根據(jù)二級(jí)緩存200的外部狀態(tài)而變化。在此示例中,對(duì)于來(lái)自處理器#1的讀取指令而言,先完成填充處理(754),然后完成回寫(xiě)處理(755)。因此,ROS和WOS在對(duì)應(yīng)的緩存索引中均變成0,且關(guān)于來(lái)自處理器#1的讀取指令進(jìn)行從二級(jí)緩存200的讀取操作(756)。另一方面,在此示例中,對(duì)于來(lái)自處理器#2的讀取指令而言,先完成回寫(xiě)處理(765),然后完成填充處理(764)。因此,ROS和WOS在對(duì)應(yīng)的緩存索引中均變成0,且關(guān)于來(lái)自處理器#2的讀取指令進(jìn)行二級(jí)緩存200的讀取操作(766)。
[0143]因此,根據(jù)本發(fā)明的實(shí)施例,在各緩存索引中設(shè)置有讀取未完成225和寫(xiě)入未完成226,從而能夠以簡(jiǎn)單的構(gòu)造在二級(jí)緩存200中實(shí)現(xiàn)訪問(wèn)暫停。具體地,能夠在對(duì)無(wú)效或臟狀態(tài)進(jìn)行處理或者進(jìn)行標(biāo)記比較之前的階段中判斷是否暫停訪問(wèn),因此能夠避免復(fù)雜的處理。在典型的緩沖存儲(chǔ)器電路中,對(duì)于保證操作時(shí)序而言最困難的部分是:根據(jù)來(lái)自標(biāo)記存儲(chǔ)部的讀取信息來(lái)判定操作。在本發(fā)明的實(shí)施例中,電路被簡(jiǎn)化,因此,即使進(jìn)行諸如缺失下缺失等復(fù)雜操作,在電路合成時(shí)也能夠容易地實(shí)現(xiàn)時(shí)序一致。
[0144]2.變形例
[0145]雖然在上述實(shí)施例中,在各緩存索引中單獨(dú)地設(shè)置讀取未完成225和寫(xiě)入未完成226,但是它們也可以共同設(shè)置。這樣,難以將由讀取處理引起的暫停與由寫(xiě)入處理引起的暫停區(qū)分開(kāi),但是硬件構(gòu)造及其控制更加簡(jiǎn)化。應(yīng)當(dāng)注意的是,由于基本構(gòu)造類(lèi)似于上述實(shí)施例中的構(gòu)造,所以省略了對(duì)該基本構(gòu)造的詳細(xì)說(shuō)明。
[0146]標(biāo)記存儲(chǔ)部的構(gòu)造
[0147]圖21圖示了根據(jù)本發(fā)明實(shí)施例的變形例的標(biāo)記存儲(chǔ)部220的構(gòu)造示例。標(biāo)記存儲(chǔ)部220與上述實(shí)施例中的標(biāo)記存儲(chǔ)部220類(lèi)似之處在于,標(biāo)記地址221、有效222和臟223的字段設(shè)置在四個(gè)路徑中的各緩存線中。在此變形例中,在各索引中設(shè)置有未完成224和替換算法227的字段。替換算法227類(lèi)似于上述實(shí)施例中的替換算法227。
[0148]未完成224存儲(chǔ)未完成位(Outstanding),該未完成位用于表示與該索引相對(duì)應(yīng)的一個(gè)緩存線處于從主存儲(chǔ)器300讀取的等待狀態(tài)或向主存儲(chǔ)器300寫(xiě)入的等待狀態(tài)。如果未完成224指示“ 1”,與該索引相對(duì)應(yīng)的一個(gè)緩存線處于從主存儲(chǔ)器300讀取的等待狀態(tài)或向主存儲(chǔ)器300寫(xiě)入的等待狀態(tài)。另一方面,如果未完成224指示“0”,在與該索引相對(duì)應(yīng)的任何緩存線中都不發(fā)生從主存儲(chǔ)器300讀取的等待狀態(tài)或向主存儲(chǔ)器300寫(xiě)入的等待狀態(tài)。在附圖中,將未完成224縮寫(xiě)為“OS”。應(yīng)當(dāng)注意的是,未完成224對(duì)應(yīng)于根據(jù)本發(fā)明所附的權(quán)利要求的暫停表示部的示例。
[0149]此變形例中的未完成224被認(rèn)為是上述實(shí)施例中的讀取未完成225和寫(xiě)入未完成226的邏輯和(OR)。因此,當(dāng)發(fā)出緩存線的填充或回寫(xiě)指令時(shí),未完成224被設(shè)定為I(OS=I)0隨后,當(dāng)完成填充處理和回寫(xiě)處理時(shí),且當(dāng)該緩存線的讀取或?qū)懭氲乃械却隣顟B(tài)都消除時(shí),未完成224被清為O (0S=0)。
[0150]二級(jí)緩存的操作
[0151]圖22是圖示了本發(fā)明實(shí)施例的變形例的第二緩存200的處理過(guò)程示例的流程圖。雖然在上述實(shí)施例中的步驟S914中,在讀取未完成位225和寫(xiě)入未完成位226都指示“O”的條件下處理前進(jìn)至后續(xù)的處理,但是在此變形例中僅涉及未完成224。具體地,如果未完成224為“1”,就暫停訪問(wèn)(步驟S924:是)。如果未完成224為“O”,就進(jìn)行標(biāo)記比較等(步驟 S924:否)。
[0152]因此,根據(jù)本發(fā)明實(shí)施例的變形例,硬件構(gòu)造及其控制更加簡(jiǎn)化。
[0153]應(yīng)當(dāng)注意的是,上述實(shí)施例示出了本發(fā)明的示例性實(shí)施例。上述實(shí)施例中的各主題與由所附的權(quán)利要求中的發(fā)明所指定的各主題具有對(duì)應(yīng)關(guān)系。類(lèi)似的,用于說(shuō)明所要保護(hù)的發(fā)明的各事項(xiàng)與和本發(fā)明的上述實(shí)施例中的主題的設(shè)計(jì)相同的主題具有對(duì)應(yīng)關(guān)系。然而,本發(fā)明不限于上述實(shí)施例,并可以在不偏離本發(fā)明的精神的范圍內(nèi)通過(guò)這樣的實(shí)施例的各種修改或改變來(lái)實(shí)現(xiàn)。
[0154]根據(jù)本發(fā)明的上述實(shí)施例,能夠?qū)崿F(xiàn)至少下列構(gòu)造。
[0155](I) 一種緩沖存儲(chǔ)器,其包括:
[0156]標(biāo)記存儲(chǔ)部,在所述標(biāo)記存儲(chǔ)部中由被訪問(wèn)地址的第一地址部分查找多個(gè)索引中的一個(gè)索引,每個(gè)索引包含多個(gè)標(biāo)記地址和一個(gè)暫停表示部;
[0157]數(shù)據(jù)存儲(chǔ)部,所述數(shù)據(jù)存儲(chǔ)部用于存儲(chǔ)與所述多個(gè)索引中的每個(gè)索引的所述多個(gè)標(biāo)記地址相對(duì)應(yīng)的各項(xiàng)數(shù)據(jù);
[0158]標(biāo)記控制部,當(dāng)查找到的索引中包含的所述暫停表示部指示暫停時(shí),所述標(biāo)記控制部使與所述被訪問(wèn)地址相關(guān)的訪問(wèn)進(jìn)行等待,并且當(dāng)所述查找到的索引中包含的所述暫停表示部指示不暫停時(shí),所述標(biāo)記控制部將所述被訪問(wèn)地址的不同于所述第一地址部分的第二地址部分與所述查找到的索引中包含的所述多個(gè)標(biāo)記地址中的各標(biāo)記地址進(jìn)行比較,并檢測(cè)與所述第二地址部分相一致的標(biāo)記地址;及
[0159]數(shù)據(jù)控制部,當(dāng)所述查找到的索引中包含的所述暫停表示部指示不暫停時(shí),所述數(shù)據(jù)控制部從所述數(shù)據(jù)存儲(chǔ)部中選擇與如下標(biāo)記地址相對(duì)應(yīng)的數(shù)據(jù),該標(biāo)記地址是所述查找到的索引中包含的所述多個(gè)標(biāo)記地址之中的與所述第二地址部分相一致的標(biāo)記地址。
[0160]( 2 )根據(jù)(I)所述的緩沖存儲(chǔ)器,其中,
[0161]所述暫停表示部包括讀取引起暫停表示部和寫(xiě)入引起暫停表示部,所述讀取引起暫停表示部用于表示由讀取處理引起的暫停,且所述寫(xiě)入引起暫停表示部用于表示由寫(xiě)入處理引起的暫停,且
[0162]當(dāng)在所述查找到的索引中所述讀取引起暫停表示部和所述寫(xiě)入引起暫停表示部中的一者或兩者指示暫停時(shí),所述標(biāo)記控制部使與所述被訪問(wèn)地址相關(guān)的所述訪問(wèn)進(jìn)行等待。
[0163](3)根據(jù)(I)或(2)所述的緩沖存儲(chǔ)器,其中,
[0164]所述緩沖存儲(chǔ)器是由多個(gè)主機(jī)共用的公共緩沖存儲(chǔ)器。
[0165](4) 一種緩沖存儲(chǔ)器控制單元,其包括:
[0166]標(biāo)記存儲(chǔ)部,在所述標(biāo)記存儲(chǔ)部中由被訪問(wèn)地址的第一地址部分查找多個(gè)索引中的一個(gè)索引,每個(gè)索引包含多個(gè)標(biāo)記地址和一個(gè)暫停表示部 '及
[0167]標(biāo)記控制部,當(dāng)查找到的索引中包含的所述暫停表示部指示暫停時(shí),所述標(biāo)記控制部使與所述被訪問(wèn)地址相關(guān)的訪問(wèn)進(jìn)行等待,并且當(dāng)所述查找到的索引中包含的所述暫停表示部指示不暫停時(shí),所述標(biāo)記控制部將所述被訪問(wèn)地址的不同于所述第一地址部分的第二地址部分與所述查找到的索引中包含的所述多個(gè)標(biāo)記地址中的各標(biāo)記地址進(jìn)行比較,并檢測(cè)與所述第二地址部分相一致的標(biāo)記地址。
[0168](5)—種控制緩沖存儲(chǔ)器的方法,其中所述緩沖存儲(chǔ)器包括標(biāo)記存儲(chǔ)部,在所述標(biāo)記存儲(chǔ)部中由被訪問(wèn)地址的第一地址部分查找多個(gè)索引中的一個(gè)索引,每個(gè)索引包含多個(gè)標(biāo)記地址和一個(gè)暫停表示部,所述方法包括如下步驟:
[0169]當(dāng)查找到的索引中包含的所述暫停表示部指示暫停時(shí),使與所述被訪問(wèn)地址相關(guān)的訪問(wèn)進(jìn)行等待;及
[0170]當(dāng)所述查找到的索引中包含的所述暫停表示部指示不暫停時(shí),將所述被訪問(wèn)地址的不同于所述第一地址部分的第二地址部分與所述查找到的索引中包含的所述多個(gè)標(biāo)記地址中的各標(biāo)記地址進(jìn)行比較,并檢測(cè)與所述第二地址部分相一致的標(biāo)記地址。
[0171]本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,依據(jù)設(shè)計(jì)要求和其他因素,可以在本發(fā)明所附的權(quán)利要求或其等同物的范圍內(nèi),進(jìn)行不同的修改,合成,次合成及改變。
[0172]本申請(qǐng)要求2013年3月25日提交的日本優(yōu)先權(quán)專(zhuān)利申請(qǐng)JP2013-061360的權(quán)益,在此將該日本優(yōu)先權(quán)申請(qǐng)的全部?jī)?nèi)容以引用的方式并入本文。
【權(quán)利要求】
1.一種緩沖存儲(chǔ)器,其包括: 標(biāo)記存儲(chǔ)部,在所述標(biāo)記存儲(chǔ)部中由被訪問(wèn)地址的第一地址部分查找多個(gè)索引中的一個(gè)索引,每個(gè)索引包含多個(gè)標(biāo)記地址和一個(gè)暫停表示部; 數(shù)據(jù)存儲(chǔ)部,所述數(shù)據(jù)存儲(chǔ)部用于存儲(chǔ)與所述多個(gè)索引中的每個(gè)索引的所述多個(gè)標(biāo)記地址相對(duì)應(yīng)的各項(xiàng)數(shù)據(jù); 標(biāo)記控制部,當(dāng)查找到的索引中包含的所述暫停表示部指示暫停時(shí),所述標(biāo)記控制部使與所述被訪問(wèn)地址相關(guān)的訪問(wèn)進(jìn)行等待,并且當(dāng)所述查找到的索引中包含的所述暫停表示部指示不暫停時(shí),所述標(biāo)記控制部將所述被訪問(wèn)地址的不同于所述第一地址部分的第二地址部分與所述查找到的索引中包含的所述多個(gè)標(biāo)記地址中的各標(biāo)記地址進(jìn)行比較,并檢測(cè)與所述第二地址部分相一致的標(biāo)記地址;及 數(shù)據(jù)控制部,當(dāng)所述查找到的索引中包含的所述暫停表示部指示不暫停時(shí),所述數(shù)據(jù)控制部從所述數(shù)據(jù)存儲(chǔ)部中選擇與如下標(biāo)記地址相對(duì)應(yīng)的數(shù)據(jù),該標(biāo)記地址是所述查找到的索引中包含的所述多個(gè)標(biāo)記地址之中的與所述第二地址部分相一致的標(biāo)記地址。
2.如權(quán)利要求1所述的緩沖存儲(chǔ)器,其中, 所述暫停表示部包括讀取引起暫停表示部和寫(xiě)入引起暫停表示部,所述讀取引起暫停表示部用于表示由讀取處理引起的暫停,且所述寫(xiě)入引起暫停表示部用于表示由寫(xiě)入處理引起的暫停,且 當(dāng)在所述查找到的索引中所述讀取引起暫停表示部和所述寫(xiě)入引起暫停表示部中的一者或兩者指示暫停時(shí),所述標(biāo)記控制部使與所述被訪問(wèn)地址相關(guān)的所述訪問(wèn)進(jìn)行等待。
3.如權(quán)利要求1或2所述的緩沖存儲(chǔ)器,其中, 所述緩沖存儲(chǔ)器是由多個(gè)主機(jī)共用的公共緩沖存儲(chǔ)器。
4.一種緩沖存儲(chǔ)器控制單元,其包括: 標(biāo)記存儲(chǔ)部,在所述標(biāo)記存儲(chǔ)部中由被訪問(wèn)地址的第一地址部分查找多個(gè)索引中的一個(gè)索引,每個(gè)索引包含多個(gè)標(biāo)記地址和一個(gè)暫停表示部 '及 標(biāo)記控制部,當(dāng)查找到的索引中包含的所述暫停表示部指示暫停時(shí),所述標(biāo)記控制部使與所述被訪問(wèn)地址相關(guān)的訪問(wèn)進(jìn)行等待,并且當(dāng)所述查找到的索引中包含的所述暫停表示部指示不暫停時(shí),所述標(biāo)記控制部將所述被訪問(wèn)地址的不同于所述第一地址部分的第二地址部分與所述查找到的索引中包含的所述多個(gè)標(biāo)記地址中的各標(biāo)記地址進(jìn)行比較,并檢測(cè)與所述第二地址部分相一致的標(biāo)記地址。
5.一種控制緩沖存儲(chǔ)器的方法,其中所述緩沖存儲(chǔ)器包括標(biāo)記存儲(chǔ)部,在所述標(biāo)記存儲(chǔ)部中由被訪問(wèn)地址的第一地址部分查找多個(gè)索引中的一個(gè)索引,每個(gè)索引包含多個(gè)標(biāo)記地址和一個(gè)暫停表示部,所述方法包括如下步驟: 當(dāng)查找到的索引中包含的所述暫停表示部指示暫停時(shí),使與所述被訪問(wèn)地址相關(guān)的訪問(wèn)進(jìn)行等待;及 當(dāng)所述查找到的索引中包含的所述暫停表示部指示不暫停時(shí),將所述被訪問(wèn)地址的不同于所述第一地址部分的第二地址部分與所述查找到的索引中包含的所述多個(gè)標(biāo)記地址中的各標(biāo)記地址進(jìn)行比較,并檢測(cè)與所述第二地址部分相一致的標(biāo)記地址。
【文檔編號(hào)】G06F12/08GK104077237SQ201410101367
【公開(kāi)日】2014年10月1日 申請(qǐng)日期:2014年3月18日 優(yōu)先權(quán)日:2013年3月25日
【發(fā)明者】平尾太一 申請(qǐng)人:索尼公司