專利名稱:用于分級高速緩存行替換的方法、系統(tǒng)及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明公開涉及一種高速緩沖存儲器,例如用于替換高速緩存行的方案。
背景技術(shù):
眾所周知,高速緩存存儲了計算機(jī)或計算系統(tǒng)的信息以便減小處理器進(jìn)行數(shù)據(jù)檢索的次數(shù)。計算系統(tǒng)的一些示例如個人數(shù)字助理、Internet圖形輸入裝置、以及蜂窩電話。高速緩存將信息的特定子集存儲在高速存儲器中。信息的幾個示例是指令、地址及數(shù)據(jù)。當(dāng)處理器請求一段信息時,系統(tǒng)首先核心查高速緩存,以便察看所述信息是否存儲在該高速緩存中。如果是,那么與將數(shù)據(jù)存儲在其他計算機(jī)可讀媒體的情況相比,處理器可以更快地檢索出所述信息,這些其他計算機(jī)可讀媒體例如是隨機(jī)訪問存儲器、硬盤、致密盤只讀存儲器(CD ROM),或軟盤。
相對于被映射到預(yù)定的高速緩沖單元(location)的尋址單元,高速緩沖存儲器具有若干不同的結(jié)構(gòu)。例如,高速緩沖存儲器可被直接映射或全關(guān)聯(lián)。替換地,另一個高速緩沖存儲器是一組關(guān)聯(lián)高速緩存,其是直接映射高速緩存與全關(guān)聯(lián)高速緩存之間的一種折衷方式。在直接映射高速緩沖中,每組中都有一個尋址單元。相反,N路關(guān)聯(lián)的全關(guān)聯(lián)高速緩存在所述高速緩存中總共有N個模塊。最后,通常稱為N路組關(guān)聯(lián)的一組關(guān)聯(lián)高速緩存將所述高速緩存分成多個N路,其中對于一個標(biāo)記來講關(guān)聯(lián)地搜索每個地址。
在高速緩存未中事件中,有效高速緩存操作利用高速緩存管理技術(shù)來替換高速緩存單元。在典型的高速緩存未中時,將從系統(tǒng)或主存儲器中獲取的地址和數(shù)據(jù)存儲在高速緩沖存儲器中。然而,高速緩存需要確定哪個高速緩存單元將由系統(tǒng)存儲器的新地址和數(shù)據(jù)替換。一種用于替換高速緩存單元的技術(shù)由一個具有最近最少使用(LRU)二進(jìn)制位(bit)的協(xié)議來實現(xiàn)。為每個高速緩存單元保存最近最少使用的二進(jìn)制位,以及在訪問或替換高速緩存單元時對最近最少使用的二進(jìn)制位進(jìn)行更新。有效二進(jìn)制位決定了各個高速緩存單元的相參性(coherency)狀態(tài)。因此,基于最近最少使用的二進(jìn)制位的值和有效二進(jìn)制位的值,高速緩存有效地替換其中最近最少使用的二進(jìn)制位,表明該行最近最少使用或者該行無效的那些高速緩存單元。存在著可利用的多種高速緩沖存儲器的替換協(xié)議,如偽-LRU、隨機(jī)、非最近使用(NRU)協(xié)議。然而,本發(fā)明的替換協(xié)議可產(chǎn)生增大的高速緩存間通信量。例如,從所包含的末級高速緩存中替換一行需要將該行從所有較低級高速緩存中逐出(evict)。因此,這產(chǎn)生了增大的高速緩存間通信量。
在說明書的結(jié)論部分顯著且清楚的指明了所要求保護(hù)的主題。然而,在理解附圖的同時參考以下詳細(xì)說明可以最好的理解所要求保護(hù)的主題,該主題既作為與對象、特征一起的操作結(jié)構(gòu)及方法,又作為其優(yōu)點,其中圖1是顯示高速緩存間通信量的示意圖。
圖2是第一實施例所采用的高速緩存行的狀態(tài)與通信成本之間關(guān)系的表。
圖3是第一實施例所采用的高速緩存行的多個LRU狀態(tài)中下兩個替換對象的表。
圖4是第一實施例所采用的用于替換可能高速緩存行候選對象的每種組合的期望替換對象的表。
圖5是第一實施例所采用的示意圖。
圖6是第二實施例所采用的高速緩存行的狀態(tài)與通信成本之間關(guān)系的表。
圖7是第二實施例所采用的高速緩存行的多個LRU狀態(tài)中下兩個替換對象的表。
圖8是第二實施例所采用的用于替換高速緩存行候選對象的可能每種組合的期望替換對象的表。
圖9是第二實施例所采用的示意圖。
圖10是由多個實施例所采用的系統(tǒng)。
具體實施例方式
在以下詳細(xì)說明中,闡述了大量的具體細(xì)節(jié),以便提供對所要求保護(hù)主題的透徹理解。然而,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的是,在沒有這些具體細(xì)節(jié)的情況下可以實現(xiàn)所要求保護(hù)的主題。在其它例子中,未詳細(xì)描述公知方法、過程、部件及電路,以便不致模糊所要求保護(hù)的主題。
當(dāng)前技術(shù)發(fā)展的一個領(lǐng)域涉及了提高高速緩沖存儲器替換協(xié)議的速度和效率。如前面所描述的,本替換協(xié)議可以產(chǎn)生增大的高速緩存間通信量。例如,從所包含的末級高速緩存中替換一行需要將該行從所有較低級高速緩存中逐出。因此,這產(chǎn)生了增大的高速緩存間通信量。例如,圖1描述了在二級(L2)高速緩存和一級(L1)高速緩存之間的高速緩存間通信量。
相反,至少部分基于與特定替換對象行相關(guān)的可能高速緩存間通信量,所要求保護(hù)的主題有利于替換協(xié)議來選定用于替換的替換對象行。因此,根據(jù)高速緩存間通信量來選擇替換對象行允許有效地替換高速緩存行,和/或降低高速緩存上以及各級高速緩存上的競爭,其導(dǎo)致了更有效的總線利用。在一個實施例中,所述替換協(xié)議是一個四路偽最近最少使用(LRU)替換協(xié)議且支持MESI(已修改專有共享無效)。在另一個實施例中,所述替換協(xié)議是一個四路偽最近最少使用(LRU)替換協(xié)議并且支持MESI(已修改專有共享無效)及附加的如MI、MS和ES的高速緩存狀態(tài)。所述附加的高速緩存狀態(tài)MI、MS和ES便于監(jiān)聽(snoop)過濾。為了描述這些狀態(tài),人們可以從系統(tǒng)的觀點來解釋所述高速緩存狀態(tài),第一個字母代表了末級高速緩存中的行狀態(tài),相反,第二個字母代表了下一較低級的高速緩存中的行。如前面所描述的,對M、E、S和I給出了相同的定義。例如,將具有MI狀態(tài)的高速緩存行解釋成在末級高速緩存中的行呈修改狀態(tài),而在下一較低級高速緩存中的行呈無效狀態(tài)。
所要求保護(hù)主題使LRU協(xié)議便于支持結(jié)合附圖2-5所描述的單核心處理器,以及支持結(jié)合圖6-9所描述的多核心處理器,以及結(jié)合圖10所描述的利用單核心或多核心處理器或同時采用這兩種處理器的系統(tǒng)。
圖2是一個實施例中所采用的高速緩存行的狀態(tài)與通信成本之間關(guān)系的表。該表描述了高速緩存狀態(tài)的可能值(202)、高速緩存間通信量(204)、以及逐出呈特定高速緩存狀態(tài)的高速緩存行的相對成本(206)。逐出高速緩存行可能導(dǎo)致不同數(shù)量的高速緩存間通信量。例如,逐出具有修改狀態(tài)(M狀態(tài))的二級高速緩存(L2高速緩存)中的高速緩存行要采用兩個附加的操作首先,使得從所有較低級高速緩存中移除該行均無效,其次,回寫主存儲器以記錄所修改的數(shù)據(jù)。
相反,因為不必將該行從任意其它高速緩存中移除,所以,逐出處于無效狀態(tài)(I狀態(tài))中的高速緩存行不會引起任何附加的通信量。因此,表中指定了這種高速緩存狀態(tài)為0成本。
圖3是一個實施例所采用高速緩存行的多個LRU狀態(tài)中下兩個替換對象的候選對象表。在這個實施例中,采用四路偽LRU替換協(xié)議,而每組有三個二進(jìn)制位(如列302中所描述的)。例如,每個二進(jìn)制位是二進(jìn)制樹中的一個節(jié)點,其指向下一個替換對象。從而,將指向所選路的所有路徑均被轉(zhuǎn)換到樹的另一端以指向下一個替換對象。因此,在一個方面,該表為每個可能的LRU狀態(tài)(如列304中所示)描述了下兩個替換對象。
圖4是一個實施例所采用的用于替換的可能高速緩存行候選對象的每種組合的期望替換對象的表。如前面所描述的,結(jié)合圖3的該表描述了可能替換的該路候選對象。圖4通過描述兩個可能候選對象狀態(tài)的每種組合以及至少部分基于高速緩存間通信量而選擇候選對象之一來利用所述信息。例如,兩個候選對象的每種可能狀態(tài)由“狀態(tài)1”列和“狀態(tài)2”列表示。相反,“替換對象”列描述了要替換兩個候選對象中的哪一個。在一個實施例中,當(dāng)替換對象值為0時,將替換第一候選對象(狀態(tài)1)。相反,當(dāng)替換對象值為1時,將替換第二候選對象(狀態(tài)2)。
因此,在考慮結(jié)合圖2所描述的成本函數(shù)時,根據(jù)結(jié)合圖3所描述的兩個可能候選對象而選擇替換對象.。例如,我們來分析該表第二行中的第一組候選對象。狀態(tài)1的候選對象呈修改狀態(tài),而狀態(tài)2的候選對象呈專有狀態(tài),應(yīng)用圖2中的成本函數(shù)分析。因此,由于第二候選對象產(chǎn)生了較小的高速緩存間通信量(E∶M的相對成本是2∶4)而選定第二候選對象。
圖5是一個實施例所采用的示意圖。一方面,該示意圖描述了與結(jié)合圖4中所描述的分析相關(guān)的邏輯,用于在兩個候選對象中選擇一個用以替換。如前面所描述的,分析每條路的狀態(tài)并且在多路復(fù)用器504處成本函數(shù)(結(jié)合圖2中所述的)選擇用于替換的替換對象。
圖6是一個實施例所采用的高速緩存行的狀態(tài)與通信成本之間關(guān)系的表。在這個實施例中,圖6支持多核心處理器或具有多核心處理器的系統(tǒng)。該表描述了高速緩存狀態(tài)的可能值(602)、具有數(shù)據(jù)的核心數(shù)量(604)、高速緩存間通信量(606)、以及逐出具有特定高速緩存狀態(tài)的高速緩存行的相對成本(608)。逐出一個高速緩存行可能會產(chǎn)生不同數(shù)量的高速緩存間通信量。例如,對于一個核心來講,逐出具有修改狀態(tài)(M狀態(tài))的二級高速緩存(L2高速緩存)中的一個高速緩存行要采用兩個附加的操作首先,使得從所有較低級高速緩存中移除該行均無效;其次,回寫主存儲器以記錄所修改的數(shù)據(jù)。從而,其與該狀態(tài)相關(guān)的較高相對成本值為7。
相反,由于無須將該行從任意其它高速緩存中移除,因而,逐出一個呈無效狀態(tài)(I狀態(tài))的高速緩存行不會引起任何附加的通信量。因此,在表中將這種高速緩存狀態(tài)指定為0成本。
圖7是一個實施例中所采用的高速緩存行的多個LRU狀態(tài)中下兩個替換對象的候選對象的表。在這個實施例中,采用了四路偽LRU替換協(xié)議,而每組有三個二進(jìn)制位(如列302所描述的)。例如,每個二進(jìn)制位都是二進(jìn)制樹上的一個節(jié)點,其指向下一個替換對象。從而,將所有導(dǎo)向所選路的路徑轉(zhuǎn)換到樹的另一端以指向下一替換對象。因此,一方面,該表為每種可能LRU狀態(tài)描述了下兩個替換對象(如列304所述)。
圖8是由一個實施例所采用的用于替換的可能高速緩存行候選對象的每種組合的期望替換對象的表。如前面所述,結(jié)合圖7的表描述了可能替換的該路候選對象。圖8通過描述兩個可能候選對象狀態(tài)的每種組合以及至少部分根據(jù)高速緩存間通信量而選擇所述候選對象之一來利用這一信息。例如,在“狀態(tài)1/#核心”及“狀態(tài)2/#核心”(包括具有相關(guān)數(shù)據(jù)的核心數(shù)量)的每列中描述了兩個候選對象的每種可能狀態(tài)。相反,替換對象列描述了要替換兩個候選對象中的哪一個。在一個實施例中,當(dāng)替換對象值是0時,替換第一候選對象(狀態(tài)1)。相反,當(dāng)替換對象值是1時,替換第二候選對象(狀態(tài)2)。
因此,在考慮結(jié)合圖6所描述的成本函數(shù)的同時,根據(jù)結(jié)合圖7所描述的兩個可能候選對象而選擇替換對象。例如,我們來分析該表第二行中的第一組候選對象。對于一個核心來講,狀態(tài)1的候選對象呈修改狀態(tài),而狀態(tài)2的候選對象呈專有狀態(tài),應(yīng)用圖6中的成本函數(shù)分析。從而,由于第二候選對象產(chǎn)生了較小的高速緩存間通信量(E∶M的相對成本是3∶7)而選定第二候選對象。
圖9是一個實施例所采用的示意圖。一方面,所述示意圖描述了與結(jié)合圖8所描述的分析相關(guān)的邏輯,以基于在各個路中高速緩存行狀態(tài)以及核心二進(jìn)制位的值來選擇兩個候選對象中的一個用于替換。在一個實施例中,將核心二進(jìn)制位與表明較低級別高速緩存是否具有高速緩存行拷貝的每個高速緩存行一起存儲。在這個實施例中,為共享末級高速緩存的每個核心采用了單個核心二進(jìn)制位。如前面所述,分析每條路的狀態(tài)并且在多路復(fù)用器904處成本函數(shù)(結(jié)合圖6所描述的)選擇用于替換的替換對象。
圖10是用于多個實施例的系統(tǒng)。所述多個實施例1002、1004用于代表一系列具有一個或多個處理器的系統(tǒng),如計算機(jī)系統(tǒng)、實時監(jiān)視系統(tǒng)等??商鎿Q的多處理器系統(tǒng)可以包括更多、更少和/或不同的元件。在某些情況下,此處所描述的高速緩存管理技術(shù)既可用于單處理器系統(tǒng)也可用于多處理器系統(tǒng)??偩€系統(tǒng)CFB(高速緩存前端總線)可包括任何數(shù)量的總線以及相關(guān)互連電路,例如,總線橋。所述處理器可與存儲控制集線器(MCH)進(jìn)行通信。
所述系統(tǒng)可支持任何動態(tài)存儲器裝置(如隨機(jī)訪問存儲器)和靜態(tài)存儲器裝置(如只讀存儲器、CD-ROM、盤存儲器、閃存)以及在需要情況下的相關(guān)驅(qū)動器。所述存儲器裝置用于存儲由處理器或多處理器所執(zhí)行的信息及指令。
經(jīng)由有線或無線的遠(yuǎn)程連接,可將指令從靜態(tài)或遠(yuǎn)程存儲裝置中提供給系統(tǒng)1002或1004,所述存儲裝置如磁盤、只讀存儲器(ROM)集成電路、CD-ROM、DVD。在可替換的實施例中,可以使用硬接線(hard-wired)的電路來代替軟件指令或與軟件指令相結(jié)合使用。因而,指令序列的執(zhí)行不限于任何具體硬件電路與軟件指令的結(jié)合。
說明書中所指的“一個實施例”或“一實施例”意味著結(jié)合該實施例所描述的特定特征、結(jié)構(gòu)或特性包含在本發(fā)明的至少一個實施例中。在說明書中多處出現(xiàn)的短語“在一個實施例中”不一定指的是同一個實施例。
在前面的說明書中,其中參考特定的實施例描述了本發(fā)明。然而,很顯然在不脫離本發(fā)明較寬泛精神及范圍的情況下可以作出多種修改及變化。因此,說明書及附圖應(yīng)當(dāng)看成是說明性的而不是限制性的。
權(quán)利要求
1.一種用于在具有多級高速緩沖存儲器的結(jié)構(gòu)中替換一行的方法,每個高速緩沖存儲器具有多條路,每條路有多行,所述方法包括為至少兩條路中的至少一個高速緩存行指定一種狀態(tài);以及為與要替換高速緩存行相關(guān)的高速緩存行狀態(tài)指定一個用于高速緩存間通信量的相對成本函數(shù)。
2.如權(quán)利要求1所述的方法,其中,多條路的數(shù)量是4。
3.如權(quán)利要求1所述的方法,其中,高速緩存行的狀態(tài)是修改、專有、共享、或無效。
4.一種用于在具有多級高速緩沖存儲器的結(jié)構(gòu)中替換一行的方法,每個高速緩沖存儲器具有多條路,每條路有多行,所述方法包括為至少兩條路中的至少一個高速緩存行指定一種狀態(tài);為與要替換高速緩存行相關(guān)的高速緩存行狀態(tài)指定一個用于高速緩存間通信量的相對成本函數(shù);以及至少部分根據(jù)該成本函數(shù)而選擇要替換的高速緩存行。
5.如權(quán)利要求4所述的方法,其中,多條路的數(shù)量是4。
6.如權(quán)利要求4所述的方法,其中,高速緩存行的狀態(tài)是修改、專有、共享、或無效。
7.一種用于在具有多級高速緩沖存儲器的結(jié)構(gòu)中替換一行的高速緩存行替換協(xié)議的方法,每個高速緩沖存儲器具有多條路,每條路有多行,所述方法包括為至少兩條路中的至少一個高速緩存行指定一種狀態(tài);為與要替換高速緩存行相關(guān)的高速緩存行狀態(tài)指定一個用于高速緩存間通信量的相對成本函數(shù);識別用于替換的兩個可能高速緩存行;以及至少部分根據(jù)該成本函數(shù)而選擇兩個可能高速緩存行中的一個以進(jìn)行替換。
8.如權(quán)利要求7所述的方法,其中,多條路的數(shù)量是4。
9.如權(quán)利要求7所述的方法,其中,高速緩存行的狀態(tài)是修改、專有、共享、或無效。
10.如權(quán)利要求7所述的方法,其中,所述高速緩存行替換協(xié)議是用于四路高速緩存的三個二進(jìn)制位偽隨機(jī)協(xié)議。
11.一種系統(tǒng),包括至少一個處理器;一個高速緩存,其耦合到所述處理器,具有多條路,多條路中的每一條具有多個行;其中為至少兩條路中的至少一個高速緩存行指定一種狀態(tài),以及一個用于高速緩存間通信量的相對成本函數(shù),被指定用于與要替換高速緩存行相關(guān)的高速緩存行的狀態(tài);以及至少部分根據(jù)該成本函數(shù)而選擇要替換的高速緩存行。
12.如權(quán)利要求11所述的系統(tǒng),其中,所述處理器與存儲控制集線器(MCH)進(jìn)行通信。
13.如權(quán)利要求11所述的方法,其中,多條路的數(shù)量是4。
14.如權(quán)利要求11所述的方法,其中,高速緩存行的狀態(tài)是修改、專有、共享、或無效。
15.一種用于替換具有多條路的多核心處理器的多級高速緩沖存儲器中行的方法,每條路有多行,所述方法包括為至少兩條路中的至少一個高速緩存行指定一種狀態(tài);為在多級高速緩沖存儲器中共享末級高速緩存的每個核心指定一個核心二進(jìn)制位;以及為與要替換高速緩存行相關(guān)的高速緩存行的狀態(tài)指定一個用于高速緩存間通信量的相對成本函數(shù)。
16.如權(quán)利要求15所述的方法,其中,多條路的數(shù)量是4。
17.如權(quán)利要求15所述的方法,其中,高速緩存行的狀態(tài)是修改、專有、共享、或無效。
18.一種用于在具有多級高速緩沖存儲器的結(jié)構(gòu)中替換一行的方法,每個高速緩沖存儲器具有多條路,每條路具有多行,所述方法包括為至少兩條路中的至少一個高速緩存行指定一種狀態(tài);為在多級高速緩沖存儲器中共享末級高速緩存的每個核心指定一個核心二進(jìn)制位;為與要替換高速緩存行相關(guān)的高速緩存行的狀態(tài)指定一個用于高速緩存間通信量的相對成本函數(shù);以及至少部分根據(jù)該成本函數(shù)而選擇要替換的高速緩存行。
19.如權(quán)利要求18所述的方法,其中,多條路的數(shù)量是4。
20.如權(quán)利要求18所述的方法,其中,高速緩存行的狀態(tài)是修改、專有、共享、或無效。
全文摘要
作為替換高速緩存行的結(jié)果而產(chǎn)生一種高速緩存行替換協(xié)議,該高速緩存行替換協(xié)議至少部分基于高速緩存間通信量而選擇用于替換的高速緩存行。
文檔編號G06F12/08GK1677369SQ20051005423
公開日2005年10月5日 申請日期2005年2月8日 優(yōu)先權(quán)日2004年2月13日
發(fā)明者C·香農(nóng), G·斯里尼瓦薩, M·羅蘭德 申請人:英特爾公司