速緩存丟失這個(gè)標(biāo)記條目是否正等待從數(shù)據(jù)存儲(chǔ)器140中抓取數(shù)據(jù)。每一個(gè)標(biāo)記條目的中斷位126被初始設(shè)置為指示非中斷狀態(tài)(即,中斷位126=0)。在此實(shí)施方式中,即使一個(gè)特定標(biāo)記條目的中斷位126被設(shè)置為指示特定標(biāo)記條目進(jìn)入中斷狀態(tài)(S卩,中斷位126=1),與這個(gè)特定標(biāo)記條目相關(guān)聯(lián)的數(shù)據(jù)存儲(chǔ)線112 (例如,高速緩存線)仍然是可存取的。其原因在于,回收標(biāo)記(即,第二標(biāo)記條目116中的一個(gè))被特定設(shè)置為與數(shù)據(jù)存儲(chǔ)線112(例如,高速緩存線)相關(guān)聯(lián)。與回收數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)數(shù)據(jù)有關(guān)的細(xì)節(jié)將在下文中進(jìn)一步詳述。關(guān)于標(biāo)記域128,標(biāo)記域128包括一部分地址,該部分地址對(duì)應(yīng)于存儲(chǔ)于這個(gè)標(biāo)記條目相關(guān)聯(lián)的數(shù)據(jù)存儲(chǔ)線112(例如,高速緩存線)中的數(shù)據(jù)。
[0019]控制器106耦接于數(shù)據(jù)存儲(chǔ)器102和標(biāo)記存儲(chǔ)器104之間,并且控制器106控制存儲(chǔ)系統(tǒng)100的操作。舉例來(lái)說(shuō),控制器106可為探聽(tīng)(snoop)處理器130總線活動(dòng)的高速緩存控制器,并且控制器106確定請(qǐng)求的數(shù)據(jù)DATAk的地址ADDR是否引起高速緩存命中或高速緩存缺失。當(dāng)通過(guò)控制器106確定高速緩存命中時(shí),控制器106從一個(gè)數(shù)據(jù)存儲(chǔ)線112 (例如,高速緩存線)中抓取請(qǐng)求的數(shù)據(jù)DATAk并返回請(qǐng)求的數(shù)據(jù)DATAk至處理器130。當(dāng)通過(guò)控制器106確定高速緩存缺失時(shí),控制器106遵循替換規(guī)則而更新一個(gè)數(shù)據(jù)存儲(chǔ)線112 (例如,高速緩存線)和相關(guān)聯(lián)的標(biāo)記條目,并返回從數(shù)據(jù)存儲(chǔ)器140中抓取的請(qǐng)求的數(shù)據(jù)DATAk至處理器130。
[0020]請(qǐng)參考圖2,圖2為圖1所示的存儲(chǔ)系統(tǒng)100中用于偵測(cè)高速緩存命中/缺失的決策邏輯的實(shí)施方式的示意圖。假定存儲(chǔ)系統(tǒng)100為N-路組相聯(lián)高速緩存,數(shù)據(jù)存儲(chǔ)器102的容量為M字節(jié),每一個(gè)數(shù)據(jù)存儲(chǔ)線112 (例如,高速緩存線)的數(shù)據(jù)存儲(chǔ)線尺寸為P字節(jié),以及處理器130使用k位地址ADDR。因此,分配于數(shù)據(jù)存儲(chǔ)器102中的數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)的數(shù)目Na等于Μ/P ;在N-路組相聯(lián)高速緩存中的組數(shù)目Ns等于Να/Ν ;選擇一個(gè)組的地址位的數(shù)目m等于1g2Ns;以及在同一數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)中對(duì)應(yīng)于字節(jié)的地址位的數(shù)目η等于log2P。k比特地址線ADDER的剩余地址線作為數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)的標(biāo)記。因此,在每一個(gè)標(biāo)記條目中的標(biāo)記域?yàn)?k-m-n)比特。若有j個(gè)狀態(tài)位(例如,有效位,修改標(biāo)志位及/或中斷位),每一個(gè)標(biāo)記條目為(k-m-n)+j比特。當(dāng)每一個(gè)數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)與一個(gè)標(biāo)記條目(即,一個(gè)主標(biāo)記)相關(guān)聯(lián)時(shí),標(biāo)記存儲(chǔ)器104的容量為[(k-m-n)+j] XNcl比特。
[0021]如圖2所示,地址位ADDR[0]-ADDR[n_l]代表偏移,該偏移不用于高速緩存命中/缺失決策;地址位ADDR[n]-ADDR[m+n-1]由控制器106使用以在N路組相聯(lián)高速緩存中選擇一個(gè)Ns組;以及地址位ADDR[m+n]-ADDR[k-1]分別代表請(qǐng)求的標(biāo)記,該請(qǐng)求的標(biāo)記將通過(guò)比較電路與屬于已選擇的組的所有標(biāo)記條目中的標(biāo)記域的標(biāo)記內(nèi)容進(jìn)行比較。當(dāng)請(qǐng)求的標(biāo)記與標(biāo)記條目中存儲(chǔ)的標(biāo)記內(nèi)容匹配時(shí),比較電路的比較輸出CR可以設(shè)置為“I”;以及當(dāng)請(qǐng)求的標(biāo)記與標(biāo)記條目中存儲(chǔ)的標(biāo)記內(nèi)容不匹配時(shí),比較電路的比較輸出CR可以設(shè)置為“O”。比較電路202_1-202_N的比較輸出CR分別被饋入多個(gè)與門(mén)204_1_204_N。與門(mén)的邏輯輸出依據(jù)接收的比較結(jié)果和對(duì)應(yīng)的標(biāo)記條目的狀態(tài)位(例如,有效位和中斷位)。在此實(shí)施方式中,當(dāng)有效位122=1、中斷位126=0以及比較輸出CR=I時(shí),與門(mén)的邏輯輸出被設(shè)置為“I”?;谂c門(mén)204_1-204_N的邏輯輸出,或門(mén)206將指示是否高速緩存命中或高速緩存缺失。
[0022]在較佳的實(shí)施方式中,本發(fā)明的控制器106能夠根據(jù)應(yīng)用/計(jì)算需求而編程分配于數(shù)據(jù)存儲(chǔ)器102中的每一個(gè)數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)的數(shù)據(jù)存儲(chǔ)線尺寸。由于數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)尺寸可編程,當(dāng)控制器106改變數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)尺寸為更大值時(shí),一些標(biāo)記條目將變?yōu)閭溆脳l目。舉例來(lái)說(shuō),每一個(gè)數(shù)據(jù)存儲(chǔ)線112(例如,高速緩存線)的數(shù)據(jù)存儲(chǔ)線尺寸可以編程為P’字節(jié),其中P’ >P。因此,分配于數(shù)據(jù)存儲(chǔ)器102中的數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)的數(shù)目Na’等于M/P’,其中M/P’〈M/P。在N路組相聯(lián)高速緩存中的組數(shù)目Ns’等于Να’ /N,其中Να’ /Ν〈Να/Ν。選擇一個(gè)組的地址位的數(shù)目m’等于1g2N/,其中m’<m。對(duì)應(yīng)于在相同數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)中的字節(jié)的地址位η’的數(shù)目為log2P’,其中η’ >η。因此,在每一個(gè)標(biāo)記條目中的標(biāo)記域具有(k-m’ -η’ )比特。在根據(jù)本發(fā)明的一個(gè)實(shí)施方式,由于m’ <m并且n’ >n, (k_m’ -η’ )可以等于(k-m-n)。如上所述,Να’ <Να,根據(jù)本發(fā)明的一個(gè)實(shí)施方式,若標(biāo)記條目的數(shù)目為Na、數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)的數(shù)目為Να’且數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)中的每一個(gè)具有較大的數(shù)據(jù)存儲(chǔ)線尺寸P’,則意味著僅一部分標(biāo)記條目的需要視為與Να’個(gè)數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)關(guān)聯(lián)的Να’個(gè)主標(biāo)記。在此實(shí)施方式中,Na標(biāo)記條目的剩余標(biāo)記條目可以視為數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)數(shù)據(jù)回收的回收標(biāo)記。
[0023]舉例來(lái)說(shuō),關(guān)于具有128字節(jié)的數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)和4路組相聯(lián)的64KB靜態(tài)隨機(jī)存儲(chǔ)器,數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)的數(shù)目等于64K字節(jié)/128字節(jié)(即,64*1024/128=512),選擇一個(gè)組的地址位的數(shù)目等于1g2 (512/4) =7,以及在相同數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)中的128字節(jié)的地址位的數(shù)目等于log2(128)=7。此外,若使用32位存儲(chǔ)地址以及每一個(gè)標(biāo)記條目具有兩個(gè)狀態(tài)位(例如,一個(gè)有效位和一個(gè)中斷位),則標(biāo)記條目尺寸等于32 - (7+7)+2=20。關(guān)于具有64字節(jié)的數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)和4路組相聯(lián)的64KB靜態(tài)隨機(jī)存儲(chǔ)器,數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)的數(shù)目等于64K字節(jié)/64字節(jié)(即,64*1024/64=1024),選擇一個(gè)組的地址位的數(shù)目等于1g2 (1024/4) =8,以及在相同數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)中的64字節(jié)的地址位的數(shù)目等于log2(64)=6。此夕卜,若使用32位存儲(chǔ)地址以及每一個(gè)標(biāo)記條目具有兩個(gè)狀態(tài)位(例如,一個(gè)有效位和一個(gè)中斷位),則標(biāo)記條目尺寸等于32 - (8+6)+2=20。為設(shè)計(jì)配置/編程數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)尺寸,由于數(shù)據(jù)存儲(chǔ)器102的容量是固定的,數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)102的總數(shù)會(huì)改變。對(duì)于128字節(jié)的數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)尺寸,需要521個(gè)標(biāo)記條目與分配于數(shù)據(jù)存儲(chǔ)器102中的512個(gè)數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)相關(guān)聯(lián),其中標(biāo)記條目尺寸為20比特。對(duì)于64字節(jié)的數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)尺寸,需要1024個(gè)標(biāo)記條目與分配于數(shù)據(jù)存儲(chǔ)器102中的1024個(gè)數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)相關(guān)聯(lián),其中標(biāo)記條目尺寸也為20比特。請(qǐng)注意,與具有128字節(jié)的數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)尺寸的高速緩存存儲(chǔ)器需要的主標(biāo)記數(shù)相比,具有64字節(jié)的數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)尺寸的高速緩存存儲(chǔ)器需要的主標(biāo)記數(shù)為前者的2倍。為支持128字節(jié)的數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)尺寸和64字節(jié)的數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)尺寸,標(biāo)記存儲(chǔ)器104可以使用具有容量為1024*20比特的靜態(tài)隨機(jī)存儲(chǔ)器來(lái)實(shí)現(xiàn)。根據(jù)本發(fā)明的較佳實(shí)施方式,在標(biāo)記存儲(chǔ)器104中的標(biāo)記條目可以分類為奇數(shù)標(biāo)記和偶數(shù)標(biāo)記。本發(fā)明以此實(shí)施方式來(lái)說(shuō)明,而并非用于限制本發(fā)明。如圖1所示的第一標(biāo)記條目114具有偶數(shù)標(biāo)記,以及如圖1所示的第二標(biāo)記條目116具有奇數(shù)標(biāo)記。當(dāng)使用64字節(jié)的數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)尺寸和32位存儲(chǔ)地址時(shí),地址位ADDR[6]由控制器106引用以選擇偶數(shù)標(biāo)記或奇數(shù)標(biāo)記用于標(biāo)記匹配檢測(cè)(即,高速緩存命中測(cè)試/高速緩存缺失測(cè)試)。舉例來(lái)說(shuō),當(dāng)?shù)刂肺籄DDR[6]=0時(shí),控制器106選擇偶數(shù)標(biāo)記來(lái)執(zhí)行標(biāo)記匹配檢測(cè),以及當(dāng)?shù)刂肺籄DDR[6] =1時(shí),控制器106選擇奇數(shù)標(biāo)記來(lái)執(zhí)行標(biāo)記匹配檢測(cè)。當(dāng)使用128字節(jié)數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)尺寸時(shí),僅偶數(shù)標(biāo)記作為主標(biāo)記來(lái)使用,而奇數(shù)標(biāo)記作為回收標(biāo)記來(lái)使用。用于提高命中率和降低訪存流量的回收數(shù)據(jù)存儲(chǔ)線(例如,高速緩存線)數(shù)據(jù)的細(xì)節(jié)將在下文中詳述。
[0024]圖3為通過(guò)圖1所示的存儲(chǔ)系統(tǒng)100執(zhí)行讀操作的流程圖。若提供的結(jié)果實(shí)質(zhì)上相同的話,則本發(fā)明的步驟并不需要按圖3所示的步驟順序來(lái)嚴(yán)格執(zhí)行。在步驟302中,控制器106接收從處理器130發(fā)出的傳入(incoming)的地址ADDR以得到請(qǐng)求的數(shù)據(jù)DATAa?;诘刂稟DD