用于對(duì)晶片外高速緩存存儲(chǔ)器的標(biāo)簽集高速緩存的方法、裝置和系統(tǒng)的制作方法
【專利摘要】在確定對(duì)高速緩存數(shù)據(jù)的訪問(wèn)中提供高速緩存標(biāo)簽的高速緩存的技術(shù)和機(jī)制。在實(shí)施例中,標(biāo)簽存儲(chǔ)存儲(chǔ)第一集合,其包括與高速緩存存儲(chǔ)器的相應(yīng)數(shù)據(jù)位置關(guān)聯(lián)的標(biāo)簽。高速緩存標(biāo)簽的高速緩存存儲(chǔ)標(biāo)簽存儲(chǔ)所存儲(chǔ)的標(biāo)簽的子集。在第一集合的標(biāo)簽要存儲(chǔ)到高速緩存標(biāo)簽的高速緩存的情況下,第一集合的所有標(biāo)簽被存儲(chǔ)到第一部分。在另一個(gè)實(shí)施例中,第一集合的標(biāo)簽到高速緩存標(biāo)簽的高速緩存的任何存儲(chǔ)包括第一集合的標(biāo)簽到僅高速緩存標(biāo)簽的高速緩存的第一部分的存儲(chǔ)。維持替換表以供在基于高速緩存標(biāo)簽的高速緩存的集合的所指示的活動(dòng)性水平來(lái)驅(qū)逐或替換高速緩存標(biāo)簽中使用。
【專利說(shuō)明】
用于對(duì)晶片外高速緩存存儲(chǔ)器的標(biāo)簽集高速緩存的方法、裝置和系統(tǒng)
技術(shù)領(lǐng)域
[0001 ]本發(fā)明大體上涉及高速緩存標(biāo)簽存儲(chǔ)。更具體地,某些實(shí)施例涉及用于高速緩存標(biāo)簽存儲(chǔ)的標(biāo)簽集的技術(shù)。
【背景技術(shù)】
[0002]所有種類的處理器由于相對(duì)于處理器核速度的相對(duì)慢存儲(chǔ)器速度而變得更加依賴于高速緩存。幾十年來(lái)已使用許多高速緩存架構(gòu)。一個(gè)常見高速緩存架構(gòu)是集合關(guān)聯(lián)高速緩存。高速緩存架構(gòu)具有存儲(chǔ)來(lái)自系統(tǒng)存儲(chǔ)器位置的數(shù)據(jù)的存儲(chǔ)器存儲(chǔ),以及存儲(chǔ)標(biāo)簽集的標(biāo)簽存儲(chǔ)結(jié)構(gòu)。
[0003]在標(biāo)準(zhǔn)高速緩存層次結(jié)構(gòu)中,大體上,高速緩存位置越接近處理器核,高速緩存變得越小且越快。最小且最快的高速緩存大體上駐存在處理器核硅晶片(silicon die)上。另一方面,最大的高速緩存(LLC或最后級(jí)別的高速緩存)或多個(gè)這樣的高速緩存有時(shí)在存儲(chǔ)器核晶片外駐存。因?yàn)橐ǜL(zhǎng)時(shí)間將數(shù)據(jù)傳送到處理器核,訪問(wèn)(access)駐存在晶片外高速緩存的數(shù)據(jù)(如與晶片上高速緩存不同)大體上造成額外延遲。
[0004]每個(gè)高速緩存具有標(biāo)簽存儲(chǔ)結(jié)構(gòu)。如果處理器需要來(lái)自某一存儲(chǔ)器位置的數(shù)據(jù),它可以通過(guò)進(jìn)行存儲(chǔ)器位置地址和指定高速緩存的標(biāo)簽存儲(chǔ)結(jié)構(gòu)的比較來(lái)確定數(shù)據(jù)是否存儲(chǔ)在該高速緩存中。如果標(biāo)簽存儲(chǔ)結(jié)構(gòu)在晶片外,進(jìn)行標(biāo)簽查找的延遲將比如果標(biāo)簽存儲(chǔ)結(jié)構(gòu)在晶片上的要大。從而,盡管晶片上標(biāo)簽存儲(chǔ)結(jié)構(gòu)因?yàn)樗鼈冋紦?jù)有價(jià)值空間而使處理器晶片的成本增加,它們通過(guò)使標(biāo)簽查找的延遲相對(duì)于晶片外高速緩存減少而有助于加快執(zhí)行。
【附圖說(shuō)明】
[0005]本發(fā)明的各種實(shí)施例通過(guò)示例而非限制的方式在附圖的圖中圖示,并且其中:
圖1是圖示根據(jù)實(shí)施例高速緩存標(biāo)簽信息的系統(tǒng)的元件的功能框圖。
[0006]圖2圖示根據(jù)實(shí)施例提供對(duì)高速緩存數(shù)據(jù)的訪問(wèn)的高速緩存標(biāo)簽的高速緩存和標(biāo)簽存儲(chǔ)的特征。
[0007]圖3A是圖示根據(jù)實(shí)施例訪問(wèn)高速緩存標(biāo)簽的高速緩存的方法的要素的流程圖。
[0008]圖3B是圖示根據(jù)實(shí)施例在對(duì)高速緩存數(shù)據(jù)提供訪問(wèn)中使用的標(biāo)簽信息的要素的框圖。
[0009]圖3C是圖示根據(jù)實(shí)施例在對(duì)高速緩存數(shù)據(jù)提供訪問(wèn)中使用的標(biāo)簽信息的要素的框圖。
[0010]圖4A是圖示根據(jù)實(shí)施例用于維持高速緩存標(biāo)簽的高速緩存的方法的要素的流程圖。
[0011]圖4B圖示根據(jù)實(shí)施例在維持高速緩存標(biāo)簽的高速緩存中使用的替換表和狀態(tài)圖的要素。
[0012]圖4C是圖示根據(jù)實(shí)施例在對(duì)高速緩存數(shù)據(jù)提供訪問(wèn)中使用的標(biāo)簽信息的要素的框圖。
[0013]圖5是圖示根據(jù)實(shí)施例對(duì)高速緩存數(shù)據(jù)提供訪問(wèn)的計(jì)算機(jī)系統(tǒng)的元件的框圖。
[0014]圖6是圖示根據(jù)實(shí)施例對(duì)高速緩存數(shù)據(jù)提供訪問(wèn)的移動(dòng)設(shè)備的元件的框圖。
【具體實(shí)施方式】
[0015]描述實(shí)現(xiàn)高速緩存標(biāo)簽的高速緩存的裝置、系統(tǒng)和方法的實(shí)施例。在下列描述中,闡述許多特定細(xì)節(jié)。然而,理解實(shí)施例可在沒有這些特定細(xì)節(jié)的情況下實(shí)踐。在其他實(shí)例中,未詳細(xì)論述眾所周知的元件、規(guī)范和協(xié)議以避免使某些實(shí)施例難以理解。
[0016]圖1描述實(shí)現(xiàn)高速緩存標(biāo)簽的高速緩存的系統(tǒng)100的一個(gè)實(shí)施例。在許多實(shí)施例中,一個(gè)或多個(gè)處理器核104可以駐存在微處理器硅晶片上,例如晶片I 102。在其他微處理器實(shí)施例中,可以存在耦合在一起的多個(gè)處理器晶片,每個(gè)包括每晶片一個(gè)或多個(gè)核(對(duì)于多個(gè)晶片上的處理器核的架構(gòu)未在圖1中示出)?;氐綀D1,處理器核可以耦合于互連105。在不同的實(shí)施例中,處理器核104可以是設(shè)計(jì)成供在任何形式的個(gè)人計(jì)算機(jī)、手持設(shè)備、服務(wù)器、工作站或現(xiàn)今可用的其他計(jì)算設(shè)備中使用的任何類型的中央處理單元(CPU)。為了便于解釋而示出單個(gè)互連105以便不使本發(fā)明難以理解。在實(shí)踐中,該單個(gè)互連105可以由使不同個(gè)體設(shè)備耦合在一起的多個(gè)互連組成。另外,在許多實(shí)施例中,未示出的更多設(shè)備(例如,芯片集)可耦合于互連105。
[0017]處理器核104可以-例如,通過(guò)互連105-耦合于物理定位在與處理器核104相同晶片上的一個(gè)或多個(gè)晶片上高速緩存106。在許多實(shí)施例中,高速緩存具有與它關(guān)聯(lián)的存儲(chǔ)對(duì)于所有高速緩存存儲(chǔ)器位置的標(biāo)簽的標(biāo)簽存儲(chǔ)114。在許多實(shí)施例中,標(biāo)簽存儲(chǔ)114駐存在與處理器核104分離的硅晶片上,例如晶片2 112。在許多實(shí)施例中,標(biāo)簽存儲(chǔ)114耦合于一個(gè)或多個(gè)晶片外(非處理器晶片)高速緩存116-例如,通過(guò)互連105-并且位于與晶片外高速緩存116相同的晶片上。
[0018]高速緩存標(biāo)簽的高速緩存(CoCT)108可以在處理器晶片102上存儲(chǔ)晶片外高速緩存標(biāo)簽的子集。具體地,盡管標(biāo)簽存儲(chǔ)114存儲(chǔ)所有索引值和每索引值的關(guān)聯(lián)標(biāo)簽集,另一方面,CoCT 108可不存儲(chǔ)所有可能的索引值。相反,為了節(jié)省存儲(chǔ)空間,CoCT 108可以僅存儲(chǔ)在標(biāo)簽存儲(chǔ)114中所存儲(chǔ)的標(biāo)簽的子集。在一些實(shí)施例中,不是所有的索引位置在任何指定時(shí)間都在CoCT 108中表示。
[0019]在一些實(shí)施例中,控制對(duì)CoCT108的訪問(wèn)的控制器110確定存儲(chǔ)器請(qǐng)求何時(shí)與當(dāng)前位于CoCT 108內(nèi)的標(biāo)簽匹配并且將這一點(diǎn)向處理器報(bào)告。在不同的實(shí)施例中,存儲(chǔ)器請(qǐng)求可以源于系統(tǒng)中許多設(shè)備中的一個(gè),例如處理器核中的一個(gè)或其他可能存儲(chǔ)器請(qǐng)求發(fā)起方之中的總線主I/O設(shè)備。存儲(chǔ)器訪問(wèn)請(qǐng)求每個(gè)可以包括到系統(tǒng)存儲(chǔ)器122內(nèi)的特定位置的相應(yīng)地址。標(biāo)簽存儲(chǔ)114可以包括與晶片外高速緩存116中的特定位置關(guān)聯(lián)的所有標(biāo)簽集。
[0020]從而,在存儲(chǔ)器請(qǐng)求被控制器110接收時(shí),控制器110可以在存儲(chǔ)器請(qǐng)求地址中解析出索引字段(例如,其包括指向集合的指針或集合的標(biāo)識(shí)符)和標(biāo)簽字段并且然后可檢查來(lái)看看與特定存儲(chǔ)器位置關(guān)聯(lián)的標(biāo)簽的索引是否存儲(chǔ)在高速緩存標(biāo)簽的高速緩存108內(nèi)。如果原始索引被存儲(chǔ),則控制器110可以檢查與存儲(chǔ)器位置關(guān)聯(lián)的原始標(biāo)簽是否在原始索引位置處以多個(gè)方式之一存儲(chǔ)在CoCT 108內(nèi)。如果原始標(biāo)簽位于與原始索引位置關(guān)聯(lián)的CoCT 108的條目中,則結(jié)果是存儲(chǔ)器請(qǐng)求是高速緩存標(biāo)簽的高速緩存108標(biāo)簽命中(S卩,高速緩存命中)。如果原始標(biāo)簽未存儲(chǔ)在CoCT 108的任何這樣的條目處,則結(jié)果是存儲(chǔ)器請(qǐng)求是高速緩存標(biāo)簽的高速緩存108標(biāo)簽未命中。如果來(lái)自指定集合的所有方式的標(biāo)簽在CoCT108中被高速緩存,這也是特定類型的高速緩存未命中,在本文稱為集合未命中。
[0021]另一方面,如果控制器110在初始查找時(shí)未找到存儲(chǔ)在CoCT108中的原始索引,結(jié)果是存儲(chǔ)器請(qǐng)求是高速緩存標(biāo)簽的高速緩存108索引未命中。在該情況下,控制器110必須從存儲(chǔ)器請(qǐng)求提取原始索引值并且然后通過(guò)替換當(dāng)前存儲(chǔ)在CoCT 108中的索引而將其插ACoCT 108。在一些實(shí)施例(其中CoCT 108自身是關(guān)聯(lián)高速緩存)中,替換政策可以是最近使用最少的政策,其中最近使用最少的索引值被替換。在其他實(shí)施例中,其他標(biāo)準(zhǔn)替換政策方案可用于替換CoCT 108中的索引值。
[0022]一旦將新的索引值插入CoCT 108,則控制器110可以確定與存儲(chǔ)器請(qǐng)求關(guān)聯(lián)的特定標(biāo)簽當(dāng)前是否在索引位置處存儲(chǔ)在標(biāo)簽存儲(chǔ)114中。如果是這樣的話,則結(jié)果是標(biāo)簽存儲(chǔ)114中的標(biāo)簽命中并且控制器110可以對(duì)于在索引位置處存儲(chǔ)在標(biāo)簽存儲(chǔ)114中的所有方式在新的索引位置處將標(biāo)簽信息輸入CoCT 108。
[0023]否則,結(jié)果是標(biāo)簽存儲(chǔ)114中的標(biāo)簽未命中并且控制器110需要發(fā)起用與存儲(chǔ)器請(qǐng)求關(guān)聯(lián)的標(biāo)簽替換最近使用最少的標(biāo)簽(在標(biāo)簽存儲(chǔ)114中的索引位置處的方式中的一個(gè))。該替換將位于存儲(chǔ)器請(qǐng)求的地址處的數(shù)據(jù)從系統(tǒng)存儲(chǔ)器輸入高速緩存存儲(chǔ)器內(nèi)并且將原始標(biāo)簽從存儲(chǔ)器請(qǐng)求輸入標(biāo)簽存儲(chǔ)114。一旦將標(biāo)簽從系統(tǒng)存儲(chǔ)器122輸入標(biāo)簽存儲(chǔ)114內(nèi),則在一些實(shí)施例中,控制器110可發(fā)起用當(dāng)前存儲(chǔ)在標(biāo)簽存儲(chǔ)114中的來(lái)自索引值處的每個(gè)方式的標(biāo)簽替換CoCT 108中的所有方式(在索引值處)。
[0024]在一些實(shí)施例中,高速緩存存儲(chǔ)器是扇區(qū)高速緩存。在扇區(qū)高速緩存實(shí)施例中,標(biāo)簽存儲(chǔ)114中的整體標(biāo)簽存儲(chǔ)要求因?yàn)槊總€(gè)標(biāo)簽被多個(gè)高速緩存條目(例如,高速緩存子塊)所共享而減少。在這些扇區(qū)高速緩存實(shí)施例中,對(duì)狀態(tài)信息的存儲(chǔ)要求因?yàn)閷?duì)于每個(gè)標(biāo)簽必須有針對(duì)于標(biāo)簽關(guān)聯(lián)的每個(gè)潛在條目的狀態(tài)信息(狀態(tài)信息在背景章節(jié)中以及在與圖2有關(guān)的論述中論述)而增加。例如,如果標(biāo)簽是14位,在非扇區(qū)高速緩存中,每扇區(qū)將包括2位的狀態(tài)信息。在具有每個(gè)方式8個(gè)扇區(qū)的扇區(qū)高速緩存中,存在與每個(gè)標(biāo)簽關(guān)聯(lián)的8個(gè)高速緩存條目,從而每標(biāo)簽將需要包括16位(2位.8)的狀態(tài)信息。在該示例中,狀態(tài)信息比標(biāo)簽信息占據(jù)更多的空間。
[0025]在根據(jù)一個(gè)實(shí)施例的一個(gè)說(shuō)明性場(chǎng)景中,集合的存儲(chǔ)要求是8.5個(gè)字節(jié),其包括標(biāo)簽信息、狀態(tài)信息、驅(qū)逐/高速緩存替換政策(RP)信息。在一些實(shí)施例中,高速緩存標(biāo)簽的高速緩存使用最近使用最少(LRU)的替換政策或其他政策。具體地,下列信息將存儲(chǔ)在高速緩存標(biāo)簽集的尚速緩存中:
(14位標(biāo)簽+2位狀態(tài)).4個(gè)方式+4位RP信息=8.5個(gè)字節(jié)
為了在這樣的情景中在CoCT 108中存儲(chǔ)2K(2n)個(gè)集合,存儲(chǔ)要求則將是17K(2K*8.5B)。高速緩存標(biāo)簽的高速緩存中條目的細(xì)節(jié)在下文參考圖2論述。從而,高速緩存標(biāo)簽的高速緩存的實(shí)施例可以駐存在處理器晶片上來(lái)執(zhí)行最近使用最多的標(biāo)簽的查找并且晶片的負(fù)擔(dān)是17Κ。晶片上的17Κ存儲(chǔ)大小成本是比8.5Μ大小的全標(biāo)簽存儲(chǔ)結(jié)構(gòu)小得多的存儲(chǔ)負(fù)擔(dān)。
[0026]盡管某些實(shí)施例在該方面不受限制,CoCT 108的不同部分可以專用于-至少關(guān)于標(biāo)簽的高速緩存方面-標(biāo)簽存儲(chǔ)114中存儲(chǔ)的標(biāo)簽的不同的相應(yīng)集合。通過(guò)圖示而非限制的方式,CoCT 108可包括相應(yīng)部分118、120,并且標(biāo)簽存儲(chǔ)114可包括標(biāo)簽130的一個(gè)或多個(gè)集合和標(biāo)簽132的一個(gè)或多個(gè)集合。在這樣的實(shí)施例中,控制器110的配置狀態(tài)可定義或另外指示在部分118、120中由CoCT 108對(duì)一個(gè)或多個(gè)集合130的任何標(biāo)簽高速緩存要僅用部分118(例如)執(zhí)行。相似地,控制器110可實(shí)現(xiàn)高速緩存,其中在部分118、120中由CoCT 108對(duì)一個(gè)或多個(gè)集合132的任何標(biāo)簽高速緩存可以僅用部分120執(zhí)行。
[0027]備選地或另外,CoCT108自身可以是N方式集合關(guān)聯(lián)高速緩存。在這樣的實(shí)施例中,標(biāo)簽存儲(chǔ)114的標(biāo)簽可在每集合基礎(chǔ)上被高速緩存到CoCT 108-例如,其中對(duì)于標(biāo)簽存儲(chǔ)114的一些或所有集合,指定集合的標(biāo)簽到CoCT 108的任何高速緩存是該集合的所有標(biāo)簽到CoCT 108的高速緩存的部分。相似地,對(duì)于標(biāo)簽存儲(chǔ)114的一些或所有集合,指定集合的標(biāo)簽從CoCT 108的任何驅(qū)逐可以是該集合的所有標(biāo)簽從CoCT 108驅(qū)逐的部分。
[0028]圖2圖示根據(jù)一個(gè)實(shí)施例的N方式集合關(guān)聯(lián)配置中的標(biāo)簽地址結(jié)構(gòu)、高速緩存標(biāo)簽集的高速緩存的結(jié)構(gòu)和高速緩存標(biāo)簽的高速緩存的個(gè)體標(biāo)簽地址條目的特征。
[0029]在說(shuō)明性實(shí)施例中,對(duì)40位(例如)地址空間的存儲(chǔ)器訪問(wèn)請(qǐng)求可以包括40位地址字段中的下列信息片段:原始標(biāo)簽字段、原始索引字段和偏移字段。典型地,僅原始標(biāo)簽字段存儲(chǔ)在標(biāo)簽存儲(chǔ)結(jié)構(gòu)中所存儲(chǔ)的標(biāo)簽條目200內(nèi)。在256M的直接映射(I方式關(guān)聯(lián))高速緩存中使用具有64字節(jié)高速緩存行大小的40位尋址示例,地址中每個(gè)子段的大小的示例可以包括12位原始標(biāo)簽、22位索引和6位偏移。22位索引字段可以是指向標(biāo)簽存儲(chǔ)結(jié)構(gòu)中的特定索引化位置的指針。12位原始標(biāo)簽可以是實(shí)際存儲(chǔ)器地址的最高12個(gè)位。標(biāo)簽的大小還可以通過(guò)它的關(guān)聯(lián)性和高速緩存行大小來(lái)確定。例如,具有64字節(jié)高速緩存行的256MB 4方式集合關(guān)聯(lián)高速緩存可具有20位索引字段和4M標(biāo)簽(22°.4),其中每個(gè)標(biāo)簽的大小是14個(gè)位。
[0030]圖2還圖示標(biāo)簽集202的實(shí)施例。對(duì)于4方式集合關(guān)聯(lián)高速緩存的標(biāo)簽集202存儲(chǔ)四個(gè)標(biāo)簽。每方式(方式O-方式3)可存儲(chǔ)特定標(biāo)簽以及與每個(gè)標(biāo)簽關(guān)聯(lián)的高速緩存條目有關(guān)的特定數(shù)量的狀態(tài)信息。狀態(tài)信息可以是每標(biāo)簽特定的,從而,可需要有與每個(gè)標(biāo)簽關(guān)聯(lián)的狀態(tài)信息位。另外,標(biāo)簽集還可需要包括高速緩存替換政策信息,例如LRU位或其他LRU型信息,以在可需要存儲(chǔ)新標(biāo)簽時(shí)告知控制器四個(gè)標(biāo)簽中的哪個(gè)應(yīng)得到驅(qū)逐。盡管某些實(shí)施例在該方面不受限制,糾錯(cuò)碼(ECC)位還可每集合地來(lái)使用以使標(biāo)簽集的存儲(chǔ)錯(cuò)誤最小化。
[0031]圖2還描述在高速緩存標(biāo)簽的高速緩存內(nèi)存儲(chǔ)的標(biāo)簽集條目(CoCT標(biāo)簽集條目204)的實(shí)施例。集合關(guān)聯(lián)高速緩存大體上對(duì)于許多類型的高速緩存配置都受到歡迎。從而,在許多實(shí)施例中,高速緩存是多方式集合關(guān)聯(lián)高速緩存。因此,高速緩存標(biāo)簽的高速緩存中的條目可需要在特定索引位置存儲(chǔ)對(duì)于高速緩存的所有方式的標(biāo)簽信息(標(biāo)簽集206的內(nèi)容/數(shù)據(jù))。在這些實(shí)施例中,來(lái)自原始地址(例如,如上文論述的40位地址配置)的索引字段(標(biāo)簽集208的尋址)可以指向高速緩存標(biāo)簽的高速緩存內(nèi)存儲(chǔ)的標(biāo)簽集合的位置。在一些實(shí)施例中,高速緩存標(biāo)簽的高速緩存的結(jié)構(gòu)本身也采用集合關(guān)聯(lián)方式存儲(chǔ)。從而,原始索引字段可分為高速緩存標(biāo)簽的高速緩存的標(biāo)簽字段以及高速緩存標(biāo)簽的高速緩存的索引字段以允許在高速緩存標(biāo)簽的高速緩存內(nèi)提取集合。例如,使用來(lái)自40位地址的20位原始索引字段,原始索引字段的較高的12個(gè)位可用作高速緩存標(biāo)簽的集合關(guān)聯(lián)高速緩存中的標(biāo)簽字段。在該示例中,原始索引字段的較低的8個(gè)位可用作高速緩存標(biāo)簽的高速緩存中的索引字段。
[0032]圖3A圖示根據(jù)實(shí)施例用于維持高速緩存標(biāo)簽的高速緩存的方法300的要素??梢詧?zhí)行方法300以例如基于來(lái)自處理器(例如一個(gè)或多個(gè)處理器核104)的存儲(chǔ)器訪問(wèn)請(qǐng)求使CoCT 108保持為最新。在實(shí)施例中,用控制器110執(zhí)行方法300。
[0033]方法300可以包括在310處在標(biāo)簽存儲(chǔ)處存儲(chǔ)包括第一標(biāo)簽的集合。這些第一標(biāo)簽每個(gè)可以與高速緩存存儲(chǔ)器的相應(yīng)數(shù)據(jù)位置關(guān)聯(lián)-例如,晶片外高速緩存116。通過(guò)圖示而非限制的方式,圖3B示出根據(jù)一個(gè)實(shí)施例的說(shuō)明性系統(tǒng)350。在系統(tǒng)350中,標(biāo)簽存儲(chǔ)352包括八個(gè)集合,每個(gè)包括八個(gè)相應(yīng)的方式。每個(gè)這樣的方式可存儲(chǔ)相應(yīng)標(biāo)簽,其中標(biāo)簽存儲(chǔ)352的第j集合的第i方式的標(biāo)簽T在本文由標(biāo)記Tij指示。標(biāo)簽存儲(chǔ)352的每個(gè)這樣的標(biāo)簽Tij可對(duì)應(yīng)于高速緩存存儲(chǔ)器(未示出)中存儲(chǔ)的數(shù)據(jù)的相應(yīng)位置。如在圖3C中進(jìn)一步圖示的,根據(jù)另一個(gè)實(shí)施例的系統(tǒng)360可以包括標(biāo)簽存儲(chǔ)365,其具有例如標(biāo)簽存儲(chǔ)352的特征中的一些或全部。某些實(shí)施例關(guān)于存儲(chǔ)到數(shù)據(jù)存儲(chǔ)的集合的數(shù)量和/或關(guān)于指定集合中方式的總數(shù)量不受限制。而且,理解標(biāo)簽存儲(chǔ)中集合的方式可以包括除標(biāo)簽以外的其他信息-例如如在本文關(guān)于圖2論述的。
[0034]方法300可以進(jìn)一步包括在320處在高速緩存標(biāo)簽的高速緩存處存儲(chǔ)標(biāo)簽存儲(chǔ)處所存儲(chǔ)的標(biāo)簽的子集。例如,系統(tǒng)350的高速緩存標(biāo)簽的高速緩存CoCT 354可以包括一個(gè)或多個(gè)集合-如由說(shuō)明性集合S0、S1、S2、S3表示的-每個(gè)存儲(chǔ)標(biāo)簽存儲(chǔ)352的八個(gè)集合中的相應(yīng)一個(gè)的標(biāo)簽。在指定時(shí)間,CoCT 354可存儲(chǔ)僅標(biāo)簽存儲(chǔ)352的八個(gè)集合中的一些的標(biāo)簽。在系統(tǒng)360的實(shí)施例中,CoCT 370包括一個(gè)或多個(gè)集合-如由說(shuō)明性集合772、774、776、778表示的-每個(gè)存儲(chǔ)標(biāo)簽存儲(chǔ)365的八個(gè)集合中的相應(yīng)一個(gè)的標(biāo)簽。與CoCT 354相似,在標(biāo)簽存儲(chǔ)365的八個(gè)集合中,CoCT 370可以僅存儲(chǔ)這些集合中的一些的標(biāo)簽。
[0035]高速緩存標(biāo)簽的高速緩存可以包括第一部分和第二部分,其包括不同相應(yīng)的高速緩存存儲(chǔ)位置-例如設(shè)置為相應(yīng)的一個(gè)或多個(gè)集合。在這樣的實(shí)施例中,第一部分和第二部分可以至少關(guān)于存儲(chǔ)標(biāo)簽存儲(chǔ)的標(biāo)簽而專用于標(biāo)簽存儲(chǔ)的不同相應(yīng)集合。使CoCT的不同部分專用于標(biāo)簽存儲(chǔ)的不同相應(yīng)集合可使要搜索來(lái)識(shí)別命中事件的出現(xiàn)(缺乏)的CoCT的總高速緩存存儲(chǔ)位置減少。
[0036]例如,方法300可以進(jìn)一步包括在330處基于來(lái)自處理器的存儲(chǔ)器訪問(wèn)請(qǐng)求來(lái)更新標(biāo)簽的子集,其中第一集合的標(biāo)簽到高速緩存標(biāo)簽的高速緩存的任何存儲(chǔ)包括第一集合的標(biāo)簽到僅第一部分的存儲(chǔ)。通過(guò)圖示而非限制的方式,系統(tǒng)350可以是這樣的實(shí)施例,其中控制器邏輯(未示出)(例如執(zhí)行方法400的那些)專用于CoCT 354的一個(gè)或多個(gè)集合-例如,說(shuō)明性集合S1、S2、S3、S4中的一些或全部-每個(gè)僅存儲(chǔ)標(biāo)簽存儲(chǔ)350的八個(gè)集合中的相應(yīng)一個(gè)的標(biāo)簽。這樣的控制器的映射信息或其他配置狀態(tài)可以定義或另外指示SO的標(biāo)簽存儲(chǔ)僅針對(duì)集合0的標(biāo)簽1'()()、1'『47(),31的標(biāo)簽存儲(chǔ)僅針對(duì)集合2的標(biāo)簽1'()2、1'1^72,32的標(biāo)簽存儲(chǔ)僅針對(duì)集合4的標(biāo)簽并且/或S3的標(biāo)簽存儲(chǔ)僅針對(duì)集合6的標(biāo)簽Το6、Τ16...Τ76。這樣的SO(或CoCT 354的其他集合)專用于標(biāo)簽存儲(chǔ)352的特定集合對(duì)于標(biāo)簽存儲(chǔ)352的該特定集合的采用SO的“靜態(tài)”(例如,恒定)跟蹤是永久的。
[0037]在系統(tǒng)360的其他說(shuō)明性實(shí)施例中,控制器邏輯(未示出)(例如執(zhí)行方法300的那些)提供CoCT 370的集合-例如,說(shuō)明性集合772、774、776、778中的一個(gè)-以在不同的時(shí)間存儲(chǔ)標(biāo)簽存儲(chǔ)365的不同集合的標(biāo)簽。通過(guò)圖示而非限制的方式,控制器邏輯的關(guān)聯(lián)映射或其他這樣的功能性可規(guī)定集合772、774每個(gè)可用于存儲(chǔ)僅標(biāo)簽存儲(chǔ)365的第一多個(gè)集合的標(biāo)簽-如由標(biāo)簽存儲(chǔ)365的說(shuō)明性“偶數(shù)”集合0、2、4、6表示的。備選地或另外,集合776、778可每個(gè)可用于存儲(chǔ)僅標(biāo)簽存儲(chǔ)365的第二多個(gè)集合的標(biāo)簽-例如,標(biāo)簽存儲(chǔ)365的說(shuō)明性“奇數(shù)”集合1、3、5、7。不同的實(shí)施例可對(duì)標(biāo)簽存儲(chǔ)的不同相應(yīng)集合提供CoCT部分(例如集合)的各種其他關(guān)聯(lián)映射中的任一個(gè)。
[0038]在對(duì)于系統(tǒng)360的實(shí)施例的說(shuō)明性場(chǎng)景中,集合772可在用圖3C圖示的指定時(shí)間點(diǎn)存儲(chǔ)標(biāo)簽TotKTfTYo和標(biāo)簽值“00”,其指示集合772當(dāng)前存儲(chǔ)集合772可用于的偶數(shù)集合的第O集合的標(biāo)簽。同時(shí),集合774可以存儲(chǔ)集合6的標(biāo)簽To6、T16...T76和標(biāo)簽值“II”,其指示集合774當(dāng)前存儲(chǔ)集合774可用于的奇數(shù)集合的第3集合(其是標(biāo)簽存儲(chǔ)365的全部八個(gè)集合中的第6集合)的標(biāo)簽。此外,集合776可存儲(chǔ)標(biāo)簽To3、T13...T73和標(biāo)簽值“OI”,其指示奇數(shù)集合的第I集合(標(biāo)簽存儲(chǔ)365的全部八個(gè)集合中的第3個(gè))的標(biāo)簽當(dāng)前被集合776存儲(chǔ)。同時(shí),集合778可存儲(chǔ)標(biāo)簽To7Jn-177和標(biāo)簽值“11”,其指示奇數(shù)集合的第3集合(標(biāo)簽存儲(chǔ)365的全部八個(gè)集合中的第7個(gè))的標(biāo)簽當(dāng)前被集合778存儲(chǔ)。
[0039]在實(shí)施例中,集合772、774每個(gè)進(jìn)一步存儲(chǔ)相應(yīng)的替換政策(RP)信息,其例如指示對(duì)應(yīng)集合是集合772、774中最近使用最多(MRU)還是最近使用最少(LRU)的。這樣的RP信息可被控制器使用來(lái)確定-例如響應(yīng)于以標(biāo)簽存儲(chǔ)265的未高速緩存偶數(shù)集合的標(biāo)簽為目標(biāo)的存儲(chǔ)器請(qǐng)求-要選擇集合772、774中的哪個(gè)以用于標(biāo)簽驅(qū)逐以及未高速緩存偶數(shù)集合的標(biāo)簽的存儲(chǔ)?;谶@樣的選擇,所選集合的標(biāo)簽信息可以用新近高速緩存的偶數(shù)集合的標(biāo)識(shí)符來(lái)更新,并且集合772、774的RP信息可被更新來(lái)反映集合772、774中所選的一個(gè)現(xiàn)在是MRU集合。
[0040]相似地,集合776、778每個(gè)可以進(jìn)一步存儲(chǔ)相應(yīng)的RP信息,其指示對(duì)應(yīng)集合是集合776、778中的MRU還是LRU。這樣的RP信息可以用于確定-例如響應(yīng)于以標(biāo)簽存儲(chǔ)365的未高速緩存的奇數(shù)集合的標(biāo)簽為目標(biāo)的存儲(chǔ)器請(qǐng)求-要選擇集合776、778中的哪個(gè)以用于標(biāo)簽驅(qū)逐以及未高速緩存奇數(shù)集合的標(biāo)簽的存儲(chǔ)。基于這樣的選擇,所選集合的標(biāo)簽信息可以用新近高速緩存的奇數(shù)集合的標(biāo)識(shí)符來(lái)更新,并且集合776、778的RP信息可被更新來(lái)反映集合776、778中所選的一個(gè)現(xiàn)在是MRU集合。
[0041]在一些實(shí)施例中,方法300在每集合基礎(chǔ)上將集合的所有標(biāo)簽存儲(chǔ)到高速緩存標(biāo)簽的高速緩存。例如,執(zhí)行方法300的控制器邏輯可規(guī)定響應(yīng)于第一集合的標(biāo)簽要存儲(chǔ)到高速緩存標(biāo)簽的高速緩存的任何確定將第一集合的所有標(biāo)簽存儲(chǔ)到CoCT的第一部分。在實(shí)施例中,標(biāo)簽存儲(chǔ)可進(jìn)一步存儲(chǔ)第二集合,其包括第二標(biāo)簽,每個(gè)與高速緩存存儲(chǔ)器內(nèi)存儲(chǔ)的相應(yīng)數(shù)據(jù)位置關(guān)聯(lián)。執(zhí)行方法300的控制器邏輯可以進(jìn)一步規(guī)定第二集合的標(biāo)簽通過(guò)控制器到高速緩存標(biāo)簽的高速緩存的任何存儲(chǔ)包括第二集合的標(biāo)簽到僅CoCT的第二部分的存儲(chǔ)。備選地或另外,這樣的控制器邏輯可規(guī)定響應(yīng)于第二集合的標(biāo)簽要存儲(chǔ)到高速緩存標(biāo)簽的高速緩存的任何確定將第二集合的所有標(biāo)簽存儲(chǔ)到高速緩存標(biāo)簽的高速緩存的第二部分。
[0042]如在圖4A-4C中圖示的,根據(jù)某些實(shí)施例的控制器邏輯可維持?jǐn)?shù)據(jù)結(jié)構(gòu)-在本文稱為替換表-以用作參考來(lái)對(duì)多集合高速緩存標(biāo)簽確定選擇哪個(gè)集合的標(biāo)簽從高速緩存標(biāo)簽的尚速緩存驅(qū)逐(例如以允許替換集合的標(biāo)簽到尚速緩存標(biāo)簽的尚速緩存的后續(xù)存儲(chǔ))。這樣的驅(qū)逐可例如響應(yīng)于存儲(chǔ)器訪問(wèn)請(qǐng)求來(lái)執(zhí)行,該存儲(chǔ)器訪問(wèn)請(qǐng)求包括無(wú)法與當(dāng)前存儲(chǔ)在高速緩存標(biāo)簽的高速緩存中的任何標(biāo)簽匹配并且其中標(biāo)簽的集合當(dāng)前在CoCT中未被跟蹤的標(biāo)簽。
[0043 ]圖4A圖示根據(jù)實(shí)施例用于訪問(wèn)高速緩存標(biāo)簽的高速緩存的方法400的要素。例如,方法400可由(例如控制器110的)控制器邏輯執(zhí)行。盡管某些實(shí)施例在該方面不受限制,方法400可以作為方法300的部分執(zhí)行或作為方法300的補(bǔ)充還可執(zhí)行方法400以用于維持高速緩存標(biāo)簽的高速緩存。
[0044]方法400可以包括在405處使替換表的第一條目與存儲(chǔ)到高速緩存標(biāo)簽的高速緩存的第一集合標(biāo)簽關(guān)聯(lián)。在實(shí)施例中,405處的關(guān)聯(lián)可以響應(yīng)于第一集合標(biāo)簽到高速緩存標(biāo)簽的高速緩存的存儲(chǔ)而執(zhí)行。405處的關(guān)聯(lián)可以包括將第一條目的活動(dòng)性變量設(shè)置成預(yù)定多個(gè)值的初始值。
[0045]通過(guò)圖示而非限制的方式,圖4B圖示根據(jù)一個(gè)實(shí)施例的替換表RT450,用于高速緩存標(biāo)簽(未示出)的高速緩存,其包括N個(gè)標(biāo)簽高速緩存(TC)集合O、I...(N-2)、(N-1) 3C集合可以隨時(shí)間各自被不同地分配來(lái)存儲(chǔ)標(biāo)簽存儲(chǔ)(未示出)的相應(yīng)標(biāo)簽集的標(biāo)簽。圖4B還示出說(shuō)明性狀態(tài)圖454,其可以用于對(duì)RT 450的指定條目確定預(yù)定多個(gè)值中的哪個(gè)要賦予該條目的活動(dòng)性變量。盡管某些實(shí)施例在該方面不受限制,狀態(tài)圖454可包括預(yù)定多的四個(gè)值O至3 AT條目的活動(dòng)性變量可響應(yīng)于連續(xù)存儲(chǔ)器請(qǐng)求被更新來(lái)反映較高活動(dòng)性,這些連續(xù)存儲(chǔ)器請(qǐng)求每個(gè)命中(匹配)對(duì)應(yīng)高速緩存標(biāo)簽集的相應(yīng)標(biāo)簽。備選地或另外,如果存儲(chǔ)器請(qǐng)求未命中高速緩存標(biāo)簽集中的任何標(biāo)簽,這樣的活動(dòng)性變量可被更新以反映較低活動(dòng)性。
[0046]例如,方法400可以在410處確定第一存儲(chǔ)器訪問(wèn)請(qǐng)求的標(biāo)簽是否對(duì)應(yīng)于(匹配)第一集合標(biāo)簽的標(biāo)簽。響應(yīng)于在410處確定第一存儲(chǔ)器訪問(wèn)請(qǐng)求的標(biāo)簽對(duì)應(yīng)于這樣的高速緩存標(biāo)簽的評(píng)估,方法400可以在415處改變第一條目的變量來(lái)指示第一集合的增加活動(dòng)性。方法400可以進(jìn)一步服務(wù)于第一請(qǐng)求,如在420處由訪問(wèn)高速緩存存儲(chǔ)器中的位置(其對(duì)應(yīng)于第一存儲(chǔ)器訪問(wèn)請(qǐng)求的標(biāo)簽)的操作所指示的。否則,方法400可以在425處改變第一條目的變量來(lái)指示第一集合的減小活動(dòng)性。
[0047]繼第一存儲(chǔ)器訪問(wèn)請(qǐng)求之后,第二存儲(chǔ)器訪問(wèn)請(qǐng)求可以從主處理器或其他這樣的請(qǐng)求方邏輯發(fā)出。第二存儲(chǔ)器訪問(wèn)請(qǐng)求可以以當(dāng)前未在高速緩存標(biāo)簽的高速緩存中表示的存儲(chǔ)器位置為目標(biāo)。例如,控制器邏輯可以評(píng)估第二存儲(chǔ)器訪問(wèn)請(qǐng)求中包括的標(biāo)簽來(lái)確定該標(biāo)簽是否匹配高速緩存標(biāo)簽的高速緩存中存儲(chǔ)或另外被跟蹤的任何標(biāo)簽-例如來(lái)檢測(cè)集合未命中事件。響應(yīng)于未能識(shí)別任何這樣的匹配高速緩存標(biāo)簽,方法400可以在435處基于替換表的對(duì)應(yīng)條目的活動(dòng)性值選擇標(biāo)簽的集合。例如,指針452可以移動(dòng)-例如作為410處的確定之前、期間或響應(yīng)于其的后臺(tái)進(jìn)程-以連續(xù)檢查RT 450的條目來(lái)識(shí)別指示足夠低活動(dòng)性水平的活動(dòng)性變量。通過(guò)圖示而非限制的方式,435處的選擇可以包括搜索替換表中的等于初始值(例如,第一條目的活動(dòng)性變量在405處所設(shè)置成的值)的活動(dòng)性變量。如由狀態(tài)圖454圖示的,可以選擇標(biāo)簽的高速緩存集合以用于替換,其中它識(shí)別為指示預(yù)定多個(gè)這樣的水平中的最低-或另外足夠低-的活動(dòng)性水平(例如,值3)。方法400然后可以在440處從高速緩存標(biāo)簽的高速緩存驅(qū)逐所選集合的標(biāo)簽。
[0048]圖4C圖示系統(tǒng)460,其根據(jù)實(shí)施例根據(jù)技術(shù)(其包括方法400的特征中的一些或全部)來(lái)操作。系統(tǒng)460包括標(biāo)簽存儲(chǔ)465來(lái)存儲(chǔ)標(biāo)簽集,如由說(shuō)明性八個(gè)集合SetO…Set7所表示的。盡管某些實(shí)施例在該方面不受限制,標(biāo)簽存儲(chǔ)465的這八個(gè)集合每個(gè)可以包括四個(gè)相應(yīng)的方式,其進(jìn)而每個(gè)包括對(duì)于高速緩存存儲(chǔ)器(未示出)中的對(duì)應(yīng)位置的相應(yīng)標(biāo)簽。
[0049]系統(tǒng)460可以進(jìn)一步包括高速緩存標(biāo)簽的高速緩存CoCT480,其在說(shuō)明性實(shí)施例中包括三個(gè)集合CSetO、CSet1、CSet2。在指定時(shí)間,CSetO、CSet1、CSet2每個(gè)可被不同地分配來(lái)存儲(chǔ)SetO…Set7中相應(yīng)一個(gè)的標(biāo)簽。例如,系統(tǒng)460的控制器470可以維持標(biāo)簽高速緩存(TC)索引474,其包括條目,每個(gè)對(duì)應(yīng)于SetO…Set7中不同的相應(yīng)一個(gè)?;诖鎯?chǔ)器訪問(wèn)請(qǐng)求的處理,控制器470可不同地將值存儲(chǔ)到TC索引474的條目,每個(gè)值定義或另外指示?36切工36七1工36七2中的哪個(gè)(如有的話)當(dāng)前存儲(chǔ)36切丨36七7中對(duì)應(yīng)一個(gè)的標(biāo)簽。例如,在時(shí)間Tl,值0、1、2被不同地存儲(chǔ)在TC索引474的對(duì)應(yīng)條目中來(lái)指示SetO、Set2和Set5的標(biāo)簽被分別存儲(chǔ)在CSetO、CSetl、CSet2處。在這樣的實(shí)施例中,TC索引474的條目中的值3可以指示SetO…Set7中對(duì)應(yīng)一個(gè)的標(biāo)簽當(dāng)前未存儲(chǔ)在CoCT 480中。
[0050]控制器470可以進(jìn)一步維持替換表RT 472來(lái)充當(dāng)參考以選擇CSetO、CSetl、CSet2中的一個(gè)用于驅(qū)逐一個(gè)集合的標(biāo)簽并且用于存儲(chǔ)標(biāo)簽存儲(chǔ)465的下一集合的標(biāo)簽。RT 472可以包括條目,每個(gè)存儲(chǔ)相應(yīng)變量,其指示CSetO、CSetl、CSet2中對(duì)應(yīng)一個(gè)的活動(dòng)性水平。RT 472的條目可以根據(jù)狀態(tài)圖454來(lái)維持,但某些實(shí)施例在該方面不受限制。例如,在時(shí)間Tl,RT 472對(duì)CSetO、CSetl、CSet2指示相應(yīng)活動(dòng)性水平0、3、1。因此,CSetl可以-在時(shí)間Tl-有資格被選擇用于Set2的標(biāo)簽從CoCT 480的驅(qū)逐。這樣的標(biāo)簽驅(qū)逐可隨后響應(yīng)于未命中當(dāng)前高速緩存到CoCT 480的SetO、Set2和Set5的標(biāo)簽中的任一個(gè)的存儲(chǔ)器訪問(wèn)請(qǐng)求而實(shí)現(xiàn)。例如,下一個(gè)存儲(chǔ)器訪問(wèn)請(qǐng)求可以包括Se t3的標(biāo)簽Tq3、T13、T23、T33中的一個(gè)。這樣的存儲(chǔ)器訪問(wèn)請(qǐng)求的結(jié)果在圖4C中在繼時(shí)間Tl之后的時(shí)間T2圖示。
[0051 ]例如,在時(shí)間T2,RT 472可被更新來(lái)指示CSetO的較低水平活動(dòng)性-例如,其中對(duì)應(yīng)于CSetO的條目的活動(dòng)性變量從O變?yōu)镮。然而,因?yàn)镾et3的新近高速緩存標(biāo)簽初始有資格用于后續(xù)驅(qū)逐,對(duì)應(yīng)于CSetl的RT 472的條目可以保持在某一最低水平(例如圖示的水平3)。選擇CSetl用于標(biāo)簽驅(qū)逐可阻止RE 472的條目(其對(duì)應(yīng)于CSet2)的檢查(和更新)。在實(shí)施例中,TC索引474被更新來(lái)反映CSetO、CSetI和CSet2分別存儲(chǔ)SetO、Set3、Set5的標(biāo)簽。
[0052]圖5是其中可以實(shí)現(xiàn)存儲(chǔ)器訪問(wèn)的計(jì)算系統(tǒng)的實(shí)施例的框圖。系統(tǒng)500代表根據(jù)本文描述的任何實(shí)施例的計(jì)算設(shè)備,并且可以是膝上型計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、服務(wù)器、游戲或娛樂(lè)控制系統(tǒng)、掃描儀、復(fù)印機(jī)、打印機(jī)或其他電子設(shè)備。系統(tǒng)500可以包括處理器520,其對(duì)系統(tǒng)500提供處理、操作管理和指令的執(zhí)行。處理器520可以包括任何類型的微處理器、中央處理單元(CPU)、處理核或其他處理硬件來(lái)對(duì)系統(tǒng)500提供處理。處理器520控制系統(tǒng)500的整體操作,并且可以是或包括一個(gè)或多個(gè)可編程通用或?qū)S梦⑻幚砥鳌?shù)字信號(hào)處理器(DSP)、可編程控制器、專用集成電路(ASIC)、可編程邏輯設(shè)備(PLD)或類似物,或這樣的設(shè)備的組合。
[0053]存儲(chǔ)器子系統(tǒng)530代表系統(tǒng)500的主存儲(chǔ)器,并且對(duì)要由處理器520執(zhí)行的代碼或要在執(zhí)行例程中使用的數(shù)據(jù)值提供暫時(shí)存儲(chǔ)。存儲(chǔ)器子系統(tǒng)530可以包括一個(gè)或多個(gè)存儲(chǔ)器設(shè)備,例如只讀存儲(chǔ)器(R0M)、閃速存儲(chǔ)器、一個(gè)或多個(gè)種類的隨機(jī)存取存儲(chǔ)器(RAM)或其他存儲(chǔ)器設(shè)備或這樣的設(shè)備的組合。除其他外,存儲(chǔ)器子系統(tǒng)530還可以存儲(chǔ)和托管操作系統(tǒng)(0S)536來(lái)提供軟件平臺(tái)以用于在系統(tǒng)500中執(zhí)行指令。另外,存儲(chǔ)和執(zhí)行來(lái)自存儲(chǔ)器子系統(tǒng)530的其他指令538以提供系統(tǒng)500的邏輯和處理。OS 536和指令538由處理器520執(zhí)行。
[0054]存儲(chǔ)器子系統(tǒng)530可以包括存儲(chǔ)器設(shè)備532,其中它存儲(chǔ)數(shù)據(jù)、指令、程序或其他項(xiàng)。在一個(gè)實(shí)施例中,存儲(chǔ)器子系統(tǒng)包括存儲(chǔ)器控制器534,其是根據(jù)本文描述的任何實(shí)施例的存儲(chǔ)器控制器,并且其提供用于訪問(wèn)存儲(chǔ)器設(shè)備532的機(jī)構(gòu)。在一個(gè)實(shí)施例中,存儲(chǔ)器控制器534提供命令來(lái)訪問(wèn)存儲(chǔ)器設(shè)備532。
[0055]在一些實(shí)施例中,系統(tǒng)500包括兩級(jí)存儲(chǔ)器(備選地在本文稱為‘2LM’),其包括系統(tǒng)盤級(jí)存儲(chǔ)的高速緩存子集(例如除運(yùn)行時(shí)數(shù)據(jù)外)。該主存儲(chǔ)器可以包括第一級(jí)(備選地在本文稱為“近存儲(chǔ)器”),其包括由例如DRAM組成的相對(duì)小的快速存儲(chǔ)器;和第二級(jí)(備選地在本文稱為“遠(yuǎn)存儲(chǔ)器”),其包括相對(duì)較大且較慢(相對(duì)于近存儲(chǔ)器)的易失性存儲(chǔ)器(例如,DRAM)或非易失性存儲(chǔ)器存儲(chǔ)-例如,其包括相變存儲(chǔ)器(PCM)、三維交叉點(diǎn)存儲(chǔ)器、電阻存儲(chǔ)器、納米線存儲(chǔ)器、鐵電晶體管隨機(jī)存取存儲(chǔ)器(FeTRAM)、包含憶阻器技術(shù)的磁阻隨機(jī)存取存儲(chǔ)器(MRAM)存儲(chǔ)器、自旋轉(zhuǎn)移轉(zhuǎn)矩(STT)-MRAM和/或類似物。遠(yuǎn)存儲(chǔ)器可以作為“主存儲(chǔ)器”對(duì)用處理器520執(zhí)行的主操作系統(tǒng)(OS)呈現(xiàn),其中近存儲(chǔ)器是遠(yuǎn)存儲(chǔ)器的高速緩存,其例如對(duì)于OS是透明的。兩級(jí)存儲(chǔ)器的管理可以通過(guò)經(jīng)由主中央處理單元(CPU)執(zhí)行的控制器邏輯和模塊的組合來(lái)進(jìn)行。
[0056]例如,存儲(chǔ)器控制器534可以控制處理器520對(duì)遠(yuǎn)存儲(chǔ)器的訪問(wèn)-例如存儲(chǔ)器532中的一些或全部中包括的,可以充當(dāng)處理器520的遠(yuǎn)存儲(chǔ)器,其中存儲(chǔ)器控制器534作為遠(yuǎn)存儲(chǔ)器控制邏輯操作。在這樣的實(shí)施例中,處理器520可以包括或耦合于近存儲(chǔ)器控制器邏輯來(lái)訪問(wèn)近存儲(chǔ)器(未示出)_例如除存儲(chǔ)器532夕卜-和耦合于此的2LM控制器邏輯。這樣的2LM控制器邏輯可以包括CoCT和管理器邏輯以根據(jù)本文論述的技術(shù)來(lái)維持CoCT。近存儲(chǔ)器可為了高效處理而經(jīng)由高帶寬、低延遲部件耦合于處理器520。遠(yuǎn)存儲(chǔ)器可以經(jīng)由低帶寬、高延遲部件(如與近存儲(chǔ)器相比較)耦合于處理器520。
[0057]處理器520和存儲(chǔ)器子系統(tǒng)530耦合于總線/總線系統(tǒng)510。總線510是抽象概念,其代表通過(guò)合適的網(wǎng)橋、適配器和/或控制器連接的任何一個(gè)或多個(gè)獨(dú)立物理總線、通信線/接口和/或點(diǎn)到點(diǎn)連接。因此,總線510可以包括例如系統(tǒng)總線、外圍部件互連(PCI)總線、超傳輸或工業(yè)標(biāo)準(zhǔn)架構(gòu)(ISA)總線、小型計(jì)算機(jī)系統(tǒng)接口(SCSI)總線、通用串行總線(USB)或電氣和電子工程師協(xié)會(huì)(IEEE)標(biāo)準(zhǔn)1394總線(統(tǒng)稱為“Firewire”)中的一個(gè)或多個(gè)。總線510的總線還可以對(duì)應(yīng)于網(wǎng)絡(luò)接口 550中的接口。
[0058]系統(tǒng)500還可以包括耦合于總線510的一個(gè)或多個(gè)輸入/輸出(I/O)接口540、網(wǎng)絡(luò)接口 550、一個(gè)或多個(gè)內(nèi)部大容量存儲(chǔ)設(shè)備560和外圍接口 570。1/0接口 540可以包括一個(gè)或多個(gè)接口部件,用戶可通過(guò)其來(lái)與系統(tǒng)500交互(例如,視頻、音頻和/或字母數(shù)字接口)。網(wǎng)絡(luò)接口 550對(duì)系統(tǒng)500提供通過(guò)一個(gè)或多個(gè)網(wǎng)絡(luò)與遠(yuǎn)程設(shè)備(例如,服務(wù)器、其他計(jì)算設(shè)備)通信的能力。網(wǎng)絡(luò)接口 550可以包括以太網(wǎng)適配器、無(wú)線互聯(lián)部件、USB(通用串行總線)或其他基于有線或無(wú)線標(biāo)準(zhǔn)的或?qū)S媒涌凇?br>[0059]存儲(chǔ)560可以是或包括用于采用非易失性方式存儲(chǔ)大量數(shù)據(jù)的任何常規(guī)介質(zhì),例如一個(gè)或多個(gè)磁、固態(tài)或基于光的盤或組合。存儲(chǔ)560以永久狀態(tài)持有代碼或指令和數(shù)據(jù)562(8卩,盡管到系統(tǒng)500的電力中斷,也保留值)。盡管存儲(chǔ)器530在執(zhí)行或操作存儲(chǔ)器來(lái)對(duì)處理器520提供指令,存儲(chǔ)560—般可以視為“存儲(chǔ)器”。雖然存儲(chǔ)760是非易失性的,存儲(chǔ)器530可以包括易失性存儲(chǔ)器(S卩,如果中斷到系統(tǒng)500的電力,數(shù)據(jù)的值或狀態(tài)是不確定的)。
[0060]外圍接口570可以包括上文未專門提到的任何硬件接口。外設(shè)大體上指依賴性地連接到系統(tǒng)500的設(shè)備。依賴性連接是其中系統(tǒng)500提供軟件和/或硬件平臺(tái)(在其上執(zhí)行操作并且用戶與之交互)的連接。
[0061]圖6是其中可實(shí)現(xiàn)存儲(chǔ)器訪問(wèn)的移動(dòng)設(shè)備的實(shí)施例的框圖。設(shè)備600代表移動(dòng)計(jì)算設(shè)備,例如計(jì)算平板、移動(dòng)電話或智能電話、支持無(wú)線的電子閱讀器或其他移動(dòng)設(shè)備。將理解大體上示出部件中的某些,并且不是這樣的設(shè)備的所有部件都在設(shè)備600中示出。
[0062]設(shè)備600可以包括處理器610,其執(zhí)行設(shè)備600的主要處理操作。處理器610可以包括一個(gè)或多個(gè)物理設(shè)備,例如微處理器、應(yīng)用處理器、微控制器、可編程邏輯設(shè)備或其他處理部件。由處理器610執(zhí)行的處理操作包括在其上執(zhí)行應(yīng)用和/或設(shè)備功能的操作平臺(tái)或操作系統(tǒng)的執(zhí)行。處理操作包括與人類用戶或其他設(shè)備的1/0(輸入/輸出)有關(guān)的操作、與電力管理有關(guān)的操作和/或與使設(shè)備600連接到另一個(gè)設(shè)備有關(guān)的操作。處理操作還可以包括與音頻I/O和/或顯示I/O有關(guān)的操作。
[0063]在一個(gè)實(shí)施例中,設(shè)備600包括音頻子系統(tǒng)620,其代表與向計(jì)算設(shè)備提供音頻功能關(guān)聯(lián)的硬件(例如,音頻硬件和音頻電路)和軟件(例如,驅(qū)動(dòng)器、編解碼器)部件。音頻功能可以包括揚(yáng)聲器和/或耳機(jī)輸出,以及麥克風(fēng)輸入。對(duì)于這樣的功能的設(shè)備可以集成到設(shè)備600內(nèi),或連接到設(shè)備600。在一個(gè)實(shí)施例中,用戶通過(guò)提供被處理器610接收和處理的音頻命令而與設(shè)備600交互。
[0064]顯示子系統(tǒng)630代表對(duì)用戶提供視覺和/或觸覺顯示來(lái)與計(jì)算設(shè)備交互的硬件(例如,顯示設(shè)備)和軟件(例如,驅(qū)動(dòng)器)部件。顯示子系統(tǒng)630可以包括顯示界面632,其包括用于向用戶提供顯示的特定屏幕或硬件設(shè)備。在一個(gè)實(shí)施例中,顯示界面632包括與處理器610分離來(lái)執(zhí)行與顯示有關(guān)的至少一些處理的邏輯。在一個(gè)實(shí)施例中,顯示子系統(tǒng)630包括觸屏設(shè)備,其向用戶提供輸出和輸入兩者。
[0065]I/O控制器640代表與用戶的交互有關(guān)的硬件設(shè)備和軟件部件。I/O控制器640可以操作來(lái)管理是音頻子系統(tǒng)620和/或顯示子系統(tǒng)630的部分的硬件。另外,I/O控制器640圖示對(duì)于連接到設(shè)備600的額外裝置的連接點(diǎn),由此用戶可與系統(tǒng)交互。例如,可以附連到設(shè)備600的設(shè)備可包括麥克風(fēng)設(shè)備、揚(yáng)聲器或立體音響系統(tǒng)、視頻系統(tǒng)或其他顯示設(shè)備、鍵盤或鍵區(qū)設(shè)備或用于與例如卡閱讀器或其他設(shè)備等特定應(yīng)用一起使用的其他I/O設(shè)備。
[0066]如上文提到的,I/O控制器640可以與音頻子系統(tǒng)620和/或顯示子系統(tǒng)630交互。例如,通過(guò)麥克風(fēng)或其他音頻設(shè)備的輸入可以對(duì)設(shè)備600的一個(gè)或多個(gè)應(yīng)用或功能提供輸入或命令。另外,代替顯示輸出或除顯示輸出外,還可以提供音頻輸出。在另一個(gè)示例中,如果顯示子系統(tǒng)包括觸屏,顯示設(shè)備還充當(dāng)輸入設(shè)備,其可以至少部分由I/O控制器640管理。在設(shè)備600上還可以存在額外按鈕或開關(guān)來(lái)提供由I/O控制器640管理的I/O功能。
[0067]在一個(gè)實(shí)施例中,I/O控制器640管理例如加速計(jì)、拍攝裝置、光傳感器或其他環(huán)境傳感器、陀螺儀、全球定位系統(tǒng)(GPS)、或可以包括在設(shè)備600中的其他硬件等設(shè)備。輸入可以是直接用戶交互的部分,以及向系統(tǒng)提供環(huán)境輸入來(lái)影響它的操作(例如對(duì)于噪聲的過(guò)濾、調(diào)整顯示器用于亮度檢測(cè)、對(duì)拍攝裝置應(yīng)用閃光燈,或其他特征)。
[0068]在一個(gè)實(shí)施例中,設(shè)備600包括電力管理650,其管理電池電力使用、電池的充電和與電力節(jié)省操作有關(guān)的特征。存儲(chǔ)器子系統(tǒng)660可以包括存儲(chǔ)器設(shè)備662,用于將信息存儲(chǔ)在設(shè)備600中。存儲(chǔ)器子系統(tǒng)660可以包括非易失性(如果到存儲(chǔ)器設(shè)備的電力被中斷則狀態(tài)不改變)和/或易失性(如果到存儲(chǔ)器設(shè)備的電力被狀態(tài)則狀態(tài)未定)存儲(chǔ)器設(shè)備。存儲(chǔ)器660可存儲(chǔ)應(yīng)用數(shù)據(jù)、用戶數(shù)據(jù)、音樂(lè)、照片、文件或其他數(shù)據(jù),以及與系統(tǒng)600的應(yīng)用和功能的執(zhí)行有關(guān)的系統(tǒng)數(shù)據(jù)(無(wú)論是長(zhǎng)期還是暫時(shí)的)。在一個(gè)實(shí)施例中,存儲(chǔ)器子系統(tǒng)660包括存儲(chǔ)器控制器664(其也可以視為系統(tǒng)600的控制的部分,并且可以潛在地視為處理器610的部分)來(lái)控制存儲(chǔ)器662。
[0069]連接性670可以包括用于使設(shè)備600能夠與外部設(shè)備通信的硬件設(shè)備(例如,無(wú)線和/或有線連接器和通信硬件)和軟件部件(例如,驅(qū)動(dòng)器、協(xié)議棧)。設(shè)備可以是例如其他計(jì)算設(shè)備、無(wú)線接入點(diǎn)或基站等獨(dú)立設(shè)備,以及例如耳機(jī)、打印機(jī)或其他設(shè)備等外設(shè)。
[0070]連接性670可以包括多個(gè)不同類型的連接性。為了泛化,設(shè)備600圖示有蜂窩連接性672和無(wú)線連接性674。蜂窩連接性672大體上指由無(wú)線載波提供的蜂窩網(wǎng)絡(luò)連接性,例如經(jīng)由GSM(全球移動(dòng)通信系統(tǒng))或變化或衍生、CDMA(碼分多址)或變化或衍生、TDM(時(shí)分復(fù)用)或變化或衍生、LTE(長(zhǎng)期演進(jìn)-也稱為“4G”)或其他蜂窩服務(wù)標(biāo)準(zhǔn)提供的。無(wú)線連接性674指的是不是蜂窩的無(wú)線連接性,并且可以包括個(gè)人區(qū)域網(wǎng)(例如藍(lán)牙)、局域網(wǎng)(例如WiFi)和/或廣域網(wǎng)(例如WiMax)或其他無(wú)線通信。無(wú)線通信指通過(guò)使用通過(guò)非固態(tài)介質(zhì)的調(diào)制電磁輻射來(lái)傳遞數(shù)據(jù)。有線通信通過(guò)固態(tài)通信介質(zhì)而發(fā)生。
[0071]外圍連接680包括硬件接口和連接器,以及軟件部件(例如,驅(qū)動(dòng)器、協(xié)議棧),用于進(jìn)行外圍連接。將理解設(shè)備600可以既是到其他計(jì)算設(shè)備(“到”682)的外圍設(shè)備,又具有連接到它的外圍設(shè)備(“從”684)。設(shè)備600通常具有“對(duì)接”連接器,用于連接到其他計(jì)算設(shè)備以用于例如管理(例如,下載和/或上傳、改變、同步)設(shè)備600上的內(nèi)容等目的。另外,對(duì)接連接器可以允許設(shè)備600連接到某些外設(shè),其允許設(shè)備600控制例如到視聽或其他系統(tǒng)的內(nèi)容輸出。
[0072]除外圍對(duì)接連接器或其他外圍連接硬件外,設(shè)備600可以經(jīng)由公共或基于標(biāo)準(zhǔn)的連接器來(lái)進(jìn)行外圍連接680。常見類型可以包括通用串行總線(USB)連接器(其可以包括許多不同硬件接口中的任一個(gè))、DisplayPort(其包括MiniDispIayPort(MDP))、高清晰度多媒體接口(HDMI)、Firewire或其他類型。
[0073]在一個(gè)實(shí)現(xiàn)中,裝置包括耦合于處理器的高速緩存存儲(chǔ)器、耦合于該高速緩存存儲(chǔ)器來(lái)存儲(chǔ)第一集合(其包括第一標(biāo)簽,每個(gè)與高速緩存存儲(chǔ)器的相應(yīng)數(shù)據(jù)位置關(guān)聯(lián))的標(biāo)簽存儲(chǔ)和高速緩存標(biāo)簽的高速緩存,用于存儲(chǔ)標(biāo)簽存儲(chǔ)處所存儲(chǔ)的標(biāo)簽的子集,該高速緩存標(biāo)簽的高速緩存包括第一部分和第二部分。裝置進(jìn)一步包括控制器,其耦合于高速緩存標(biāo)簽的高速緩存,該控制器基于來(lái)自處理器的存儲(chǔ)器訪問(wèn)請(qǐng)求來(lái)更新標(biāo)簽子集,其中響應(yīng)于第一集合的標(biāo)簽要存儲(chǔ)到高速緩存標(biāo)簽的高速緩存的任何確定,控制器將第一集合的所有標(biāo)簽存儲(chǔ)到第一部分,其中第一集合的標(biāo)簽通過(guò)控制器到高速緩存標(biāo)簽的高速緩存的任何存儲(chǔ)包括第一集合的標(biāo)簽到僅第一部分的存儲(chǔ)。
[0074]在實(shí)施例中,標(biāo)簽存儲(chǔ)進(jìn)一步存儲(chǔ)第二集合,其包括第二標(biāo)簽,每個(gè)與高速緩存存儲(chǔ)器內(nèi)存儲(chǔ)的相應(yīng)數(shù)據(jù)位置關(guān)聯(lián)。在另一個(gè)實(shí)施例中,響應(yīng)于第二集合的標(biāo)簽要存儲(chǔ)到高速緩存標(biāo)簽的高速緩存的任何確定,控制器將第二集合的所有標(biāo)簽存儲(chǔ)到第二部分,其中第二集合的標(biāo)簽通過(guò)控制器到高速緩存標(biāo)簽的高速緩存的任何存儲(chǔ)包括第二集合的標(biāo)簽到僅第二部分的存儲(chǔ)。在另一個(gè)實(shí)施例中,在標(biāo)簽存儲(chǔ)的標(biāo)簽的所有集合中,第一部分僅存儲(chǔ)第一集合的標(biāo)簽。
[0075]在另一個(gè)實(shí)施例中,標(biāo)簽存儲(chǔ)包括:第一多個(gè)集合,其包括第一集合;和第二多個(gè)集合,其包括第二集合,其中在第一多個(gè)集合和第二多個(gè)集合中,第一部分僅專用于第一多個(gè)集合并且第二部分僅專用于第二多個(gè)集合。在另一個(gè)實(shí)施例中,第一多個(gè)集合對(duì)應(yīng)于高速緩存存儲(chǔ)器的奇數(shù)集合并且第二多個(gè)集合對(duì)應(yīng)于高速緩存存儲(chǔ)器的偶數(shù)集合。在另一個(gè)實(shí)施例中,高速緩存標(biāo)簽的高速緩存和處理器位于第一晶片上。在另一個(gè)實(shí)施例中,標(biāo)簽存儲(chǔ)結(jié)構(gòu)位于耦合于第一晶片的第二晶片上。
[0076]在另一個(gè)實(shí)現(xiàn)中,方法包括:在標(biāo)簽存儲(chǔ)處存儲(chǔ)第一集合,其包括第一標(biāo)簽,每個(gè)與耦合于處理器的高速緩存存儲(chǔ)器的相應(yīng)數(shù)據(jù)位置關(guān)聯(lián);在高速緩存標(biāo)簽的高速緩存處存儲(chǔ)標(biāo)簽存儲(chǔ)處所存儲(chǔ)的標(biāo)簽的子集,該高速緩存標(biāo)簽的高速緩存包括第一部分和第二部分;以及基于來(lái)自處理器的存儲(chǔ)器訪問(wèn)請(qǐng)求來(lái)更新標(biāo)簽的子集,其中響應(yīng)于第一集合的標(biāo)簽要存儲(chǔ)到高速緩存標(biāo)簽的高速緩存的任何確定,第一集合的所有標(biāo)簽存儲(chǔ)到第一部分,其中第一集合的標(biāo)簽到高速緩存標(biāo)簽的高速緩存的任何存儲(chǔ)包括第一集合的標(biāo)簽到僅第一部分的存儲(chǔ)。
[0077]在實(shí)施例中,方法進(jìn)一步包括:在標(biāo)簽存儲(chǔ)處存儲(chǔ)第二集合,其包括第二標(biāo)簽,每個(gè)與高速緩存存儲(chǔ)器內(nèi)存儲(chǔ)的相應(yīng)數(shù)據(jù)位置關(guān)聯(lián);以及響應(yīng)于第二集合的標(biāo)簽要存儲(chǔ)到高速緩存標(biāo)簽的高速緩存的任何確定,將第二集合的所有標(biāo)簽存儲(chǔ)到第二部分。在另一個(gè)實(shí)施例中,第二集合的標(biāo)簽通過(guò)控制器到高速緩存標(biāo)簽的高速緩存的任何存儲(chǔ)包括第二集合的標(biāo)簽到僅第二部分的存儲(chǔ)。在另一個(gè)實(shí)施例中,在標(biāo)簽存儲(chǔ)的標(biāo)簽的所有集合中,第一部分僅存儲(chǔ)第一集合的標(biāo)簽。
[0078]在另一個(gè)實(shí)施例中,其中標(biāo)簽存儲(chǔ)包括:第一多個(gè)集合,其包括第一集合;和第二多個(gè)集合,其包括第二集合,其中在第一多個(gè)集合和第二多個(gè)集合中,第一部分僅專用于第一多個(gè)集合并且第二部分僅專用于第二多個(gè)集合。在另一個(gè)實(shí)施例中,第一多個(gè)集合對(duì)應(yīng)于高速緩存存儲(chǔ)器的奇數(shù)集合并且其中第二多個(gè)集合對(duì)應(yīng)于高速緩存存儲(chǔ)器的偶數(shù)集合。在另一個(gè)實(shí)施例中,高速緩存標(biāo)簽的高速緩存和處理器位于第一晶片上。在另一個(gè)實(shí)施例中,標(biāo)簽存儲(chǔ)結(jié)構(gòu)位于耦合于第一晶片的第二晶片上。
[0079]在另一個(gè)實(shí)現(xiàn)中,裝置包括:高速緩存標(biāo)簽的高速緩存,用于存儲(chǔ)標(biāo)簽存儲(chǔ)處所存儲(chǔ)的標(biāo)簽的子集,該標(biāo)簽的子集每個(gè)與高速緩存存儲(chǔ)器的相應(yīng)數(shù)據(jù)位置關(guān)聯(lián);和控制器,其包括電路,用于使替換表的第一條目與存儲(chǔ)到高速緩存標(biāo)簽的高速緩存的第一集合標(biāo)簽關(guān)聯(lián),其包括控制器將第一條目的第一變量設(shè)置為預(yù)定多個(gè)值的初始值。如果第一存儲(chǔ)器訪問(wèn)請(qǐng)求包括對(duì)應(yīng)于第一集合標(biāo)簽中的一個(gè)的標(biāo)簽,則控制器進(jìn)一步使第一變量變?yōu)轭A(yù)定多個(gè)值中的另一個(gè)來(lái)指示活動(dòng)性水平增加,否則,控制器使第一變量變?yōu)轭A(yù)定多個(gè)值中的另一個(gè)來(lái)指示活動(dòng)性水平減小。響應(yīng)于未能識(shí)別與第二存儲(chǔ)器訪問(wèn)請(qǐng)求的標(biāo)簽匹配的高速緩存標(biāo)簽的尚速緩存的任何標(biāo)簽,控制器進(jìn)一步選擇標(biāo)簽集以從尚速緩存標(biāo)簽的尚速緩存驅(qū)逐,包括控制器搜索替換表中的等于初始值的變量。
[0080]在實(shí)施例中,響應(yīng)于第一集合的標(biāo)簽要存儲(chǔ)到高速緩存標(biāo)簽的高速緩存的任何確定,控制器將第一集合的所有標(biāo)簽存儲(chǔ)到第一部分。在另一個(gè)實(shí)施例中,提供第一存儲(chǔ)器訪問(wèn)請(qǐng)求的處理器和高速緩存標(biāo)簽的高速緩存位于第一晶片上。在另一個(gè)實(shí)施例中,標(biāo)簽存儲(chǔ)結(jié)構(gòu)位于耦合于第一晶片的第二晶片上。在另一個(gè)實(shí)施例中,高速緩存標(biāo)簽的高速緩存包含標(biāo)簽存儲(chǔ)結(jié)構(gòu)中存儲(chǔ)的最近使用最多的標(biāo)簽中的一個(gè)或多個(gè)。
[0081]在另一個(gè)實(shí)現(xiàn)中,方法包括:響應(yīng)于第一集合標(biāo)簽到高速緩存標(biāo)簽的高速緩存的存儲(chǔ),使替換表的第一條目與第一集合標(biāo)簽關(guān)聯(lián),其包括將第一條目的第一活動(dòng)性變量設(shè)置為預(yù)定多個(gè)值的初始值,其中標(biāo)簽存儲(chǔ)存儲(chǔ)標(biāo)簽,其每個(gè)與高速緩存存儲(chǔ)器的相應(yīng)數(shù)據(jù)位置關(guān)聯(lián),并且其中高速緩存標(biāo)簽的高速緩存存儲(chǔ)標(biāo)簽存儲(chǔ)處所存儲(chǔ)的標(biāo)簽的子集。方法進(jìn)一步包括如果第一存儲(chǔ)器訪問(wèn)請(qǐng)求包括對(duì)應(yīng)于第一集合標(biāo)簽中的一個(gè)的標(biāo)簽,則使第一活動(dòng)性變量變?yōu)轭A(yù)定多個(gè)值中的另一個(gè)來(lái)指示第一集合的活動(dòng)性水平的增加,否則使第一活動(dòng)性變量變?yōu)轭A(yù)定多個(gè)值中的另一個(gè)來(lái)指示第一集合的活動(dòng)性水平的減小。方法進(jìn)一步包括響應(yīng)于未能識(shí)別與第二存儲(chǔ)器訪問(wèn)請(qǐng)求的標(biāo)簽匹配的高速緩存標(biāo)簽的高速緩存的任何標(biāo)簽,選擇標(biāo)簽集以從高速緩存標(biāo)簽的高速緩存驅(qū)逐,其包括搜索替換表中的等于初始值的活動(dòng)性變量。
[0082]在實(shí)施例中,響應(yīng)于第一集合的標(biāo)簽要存儲(chǔ)到高速緩存標(biāo)簽的高速緩存的任何確定,控制器將第一集合的所有標(biāo)簽存儲(chǔ)到第一部分。在另一個(gè)實(shí)施例中,提供第一存儲(chǔ)器訪問(wèn)請(qǐng)求的處理器和高速緩存標(biāo)簽的高速緩存位于第一晶片上。在另一個(gè)實(shí)施例中,標(biāo)簽存儲(chǔ)結(jié)構(gòu)位于耦合于第一晶片的第二晶片上。在另一個(gè)實(shí)施例中,高速緩存標(biāo)簽的高速緩存包含標(biāo)簽存儲(chǔ)結(jié)構(gòu)中所存儲(chǔ)的最近使用最多的標(biāo)簽中的一個(gè)或多個(gè)。
[0083]本文描述用于對(duì)高速緩存數(shù)據(jù)提供訪問(wèn)的技術(shù)和架構(gòu)。在上文的描述中,為了解釋目的,闡述許多特定細(xì)節(jié)以提供對(duì)某些實(shí)施例的全面理解。然而,某些實(shí)施例可在沒有這些特定細(xì)節(jié)的情況下實(shí)踐,這對(duì)于本領(lǐng)域內(nèi)技術(shù)人員將是明顯的。在其它實(shí)例中,以框圖的形式示出結(jié)構(gòu)和設(shè)備以便避免使描述難以理解。
[0084]在說(shuō)明書中對(duì)“一個(gè)實(shí)施例”或“實(shí)施例”的引用意指結(jié)合實(shí)施例描述的特定特征、結(jié)構(gòu)或特性包括在本發(fā)明的至少一個(gè)實(shí)施例中。短語(yǔ)“在一個(gè)實(shí)施例中”在說(shuō)明書中各種地方中的出現(xiàn)不一定都指相同的實(shí)施例。
[0085]從關(guān)于計(jì)算機(jī)存儲(chǔ)器內(nèi)的數(shù)據(jù)位的操作的算法和符號(hào)表示方面呈現(xiàn)本文的詳細(xì)描述中的一些部分。這些算法描述和表示是由計(jì)算領(lǐng)域內(nèi)的技術(shù)人員使用以最有效地向本領(lǐng)域內(nèi)其他技術(shù)人員傳達(dá)它們的工作實(shí)質(zhì)的手段。算法在這里并且一般設(shè)想為導(dǎo)致期望結(jié)果的步驟的自洽順序。這些步驟是需要物理操縱物理量的那些。通常,盡管不是必須的,這些量采取能夠被存儲(chǔ)、轉(zhuǎn)移、組合、比較和用別的方式而操縱的電或磁信號(hào)的形式。已經(jīng)證實(shí)有時(shí)主要由于常見使用的原因?qū)⑦@些信號(hào)稱為位、值、要素、符號(hào)、字符、項(xiàng)、數(shù)字或類似物是方便的。
[0086]然而,應(yīng)該牢記所有這些和相似的術(shù)語(yǔ)要與適當(dāng)?shù)奈锢砹筷P(guān)聯(lián)并且僅是應(yīng)用于這些量的方便標(biāo)簽。除非另外具體闡述(如從上文論述顯而易見的),意識(shí)到在整個(gè)說(shuō)明中,利用例如“處理”或“計(jì)算”或“運(yùn)算”或“確定”或“顯示”或類似物等術(shù)語(yǔ)的論述指計(jì)算機(jī)系統(tǒng)或相似的電子計(jì)算設(shè)備的行為和進(jìn)程,其操縱表示為計(jì)算機(jī)系統(tǒng)的寄存器和存儲(chǔ)器內(nèi)的物理(電子)量的數(shù)據(jù)并且將其轉(zhuǎn)換為相似地表示為計(jì)算機(jī)系統(tǒng)存儲(chǔ)器或寄存器或其他這樣的信息存儲(chǔ)、傳輸或顯示裝置內(nèi)的物理量的其他數(shù)據(jù)。
[0087]某些實(shí)施例還涉及用于執(zhí)行本文的操作的裝置。該裝置可專門對(duì)于所需目的而構(gòu)造,或它可包括由存儲(chǔ)在計(jì)算機(jī)中的計(jì)算機(jī)程序選擇性地激活或重新配置的通用計(jì)算機(jī)。這樣的計(jì)算機(jī)程序可存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)(例如但不限于任何類型的盤,其包括軟盤、光盤、CD-ROM和磁光盤、只讀存儲(chǔ)器(ROM)、例如動(dòng)態(tài)RAM(DRAM)、EPROM、EEPROM等隨機(jī)存取存儲(chǔ)器(RAM)、磁或光卡或適合用于存儲(chǔ)電子指令的任何類型的介質(zhì))中,并且耦合于計(jì)算機(jī)系統(tǒng)總線。
[0088]本文呈現(xiàn)的算法和顯示器不固有地涉及任何特定計(jì)算機(jī)或其他裝置。各種通用系統(tǒng)可根據(jù)本文的教導(dǎo)與程序一起使用,或可證明便于構(gòu)造更專業(yè)的裝置來(lái)執(zhí)行需要的方法步驟。多種的這些系統(tǒng)需要的結(jié)構(gòu)將從下文的描述顯而易見。另外,未參考任何特定編程語(yǔ)言來(lái)描述某些實(shí)施例。將意識(shí)到多種編程語(yǔ)言可用于實(shí)現(xiàn)如本文描述的這樣的實(shí)施例的教
B
寸ο
[0089]除上文描述的外,可對(duì)公開的實(shí)施例和其實(shí)現(xiàn)做出各種修改而不偏離它們的范圍。因此,本文的說(shuō)明和示例應(yīng)在說(shuō)明性而非限制性意義上解釋。本發(fā)明的范圍應(yīng)僅僅通過(guò)參考后跟的權(quán)利要求來(lái)度量。
【主權(quán)項(xiàng)】
1.一種裝置,其包括: 高速緩存存儲(chǔ)器,用于耦合于處理器; 標(biāo)簽存儲(chǔ),其耦合于所述高速緩存存儲(chǔ)器,用于存儲(chǔ)第一集合,其包括第一標(biāo)簽,每個(gè)第一標(biāo)簽與所述高速緩存存儲(chǔ)器的相應(yīng)數(shù)據(jù)位置關(guān)聯(lián); 高速緩存標(biāo)簽的高速緩存,用于存儲(chǔ)所述標(biāo)簽存儲(chǔ)處所存儲(chǔ)的標(biāo)簽的子集,所述高速緩存標(biāo)簽的高速緩存包括第一部分和第二部分;以及 控制器,其耦合于所述高速緩存標(biāo)簽的高速緩存,所述控制器用于基于來(lái)自所述處理器的存儲(chǔ)器訪問(wèn)請(qǐng)求來(lái)更新所述標(biāo)簽的子集,其中響應(yīng)于所述第一集合的標(biāo)簽要存儲(chǔ)到所述高速緩存標(biāo)簽的高速緩存的任何確定,所述控制器用于將所述第一集合的所有標(biāo)簽存儲(chǔ)到所述第一部分,其中所述第一集合的標(biāo)簽通過(guò)所述控制器到所述高速緩存標(biāo)簽的高速緩存的任何存儲(chǔ)包括所述第一集合的標(biāo)簽到僅所述第一部分的存儲(chǔ)。2.如權(quán)利要求1所述的裝置,所述標(biāo)簽存儲(chǔ)進(jìn)一步用于存儲(chǔ)第二集合,其包括第二標(biāo)簽,每個(gè)第二標(biāo)簽與所述高速緩存存儲(chǔ)器內(nèi)存儲(chǔ)的相應(yīng)數(shù)據(jù)位置關(guān)聯(lián)。3.如權(quán)利要求2所述的裝置,其中響應(yīng)于所述第二集合的標(biāo)簽要存儲(chǔ)到所述高速緩存標(biāo)簽的高速緩存的任何確定,所述控制器用于將所述第二集合的所有標(biāo)簽存儲(chǔ)到所述第二部分,其中所述第二集合的標(biāo)簽通過(guò)所述控制器到所述高速緩存標(biāo)簽的高速緩存的任何存儲(chǔ)包括所述第二集合的標(biāo)簽到僅所述第二部分的存儲(chǔ)。4.如權(quán)利要求1和2中任一項(xiàng)所述的裝置,其中在所述標(biāo)簽存儲(chǔ)的標(biāo)簽的所有集合中,所述第一部分僅存儲(chǔ)所述第一集合的標(biāo)簽。5.如權(quán)利要求1、2和4中任一項(xiàng)所述的裝置,其中所述標(biāo)簽存儲(chǔ)包括: 第一多個(gè)集合,其包括所述第一集合;以及 第二多個(gè)集合,其包括所述第二集合; 其中在所述第一多個(gè)集合和所述第二多個(gè)集合中,所述第一部分僅專用于所述第一多個(gè)集合并且所述第二部分僅專用于所述第二多個(gè)集合。6.如權(quán)利要求5所述的裝置,其中所述第一多個(gè)集合對(duì)應(yīng)于所述高速緩存存儲(chǔ)器的奇數(shù)集合并且其中所述第二多個(gè)集合對(duì)應(yīng)于所述高速緩存存儲(chǔ)器的偶數(shù)集合。7.如權(quán)利要求1、2和4中任一項(xiàng)所述的裝置,其中所述高速緩存標(biāo)簽的高速緩存和所述處理器位于第一晶片上。8.如權(quán)利要求7所述的裝置,其中所述標(biāo)簽存儲(chǔ)結(jié)構(gòu)位于耦合于所述第一晶片的第二晶片上。9.一種方法,其包括: 在標(biāo)簽存儲(chǔ)處存儲(chǔ)第一集合,其包括第一標(biāo)簽,每個(gè)第一標(biāo)簽與耦合于處理器的高速緩存存儲(chǔ)器的相應(yīng)數(shù)據(jù)位置關(guān)聯(lián); 在高速緩存標(biāo)簽的高速緩存處存儲(chǔ)所述標(biāo)簽存儲(chǔ)處所存儲(chǔ)的標(biāo)簽的子集,所述高速緩存標(biāo)簽的高速緩存包括第一部分和第二部分;以及 基于來(lái)自所述處理器的存儲(chǔ)器訪問(wèn)請(qǐng)求來(lái)更新所述標(biāo)簽的子集,其中響應(yīng)于所述第一集合的標(biāo)簽要存儲(chǔ)到所述高速緩存標(biāo)簽的高速緩存的任何確定,所述第一集合的所有標(biāo)簽被存儲(chǔ)到所述第一部分,其中所述第一集合的標(biāo)簽到所述高速緩存標(biāo)簽的高速緩存的任何存儲(chǔ)包括所述第一集合的標(biāo)簽到僅所述第一部分的存儲(chǔ)。10.如權(quán)利要求9所述的方法,其進(jìn)一步包括: 在所述標(biāo)簽存儲(chǔ)處存儲(chǔ)第二集合,其包括第二標(biāo)簽,每個(gè)第二標(biāo)簽與所述高速緩存存儲(chǔ)器內(nèi)存儲(chǔ)的相應(yīng)數(shù)據(jù)位置關(guān)聯(lián);以及 響應(yīng)于所述第二集合的標(biāo)簽要存儲(chǔ)到所述高速緩存標(biāo)簽的高速緩存的任何確定,將所述第二集合的所有標(biāo)簽存儲(chǔ)到所述第二部分。11.如權(quán)利要求10所述的方法,其中所述第二集合的標(biāo)簽通過(guò)所述控制器到所述高速緩存標(biāo)簽的高速緩存的任何存儲(chǔ)包括所述第二集合的標(biāo)簽到僅所述第二部分的存儲(chǔ)。12.如權(quán)利要求9和10中任一項(xiàng)所述的方法,其中在所述標(biāo)簽存儲(chǔ)的標(biāo)簽的所有集合中,所述第一部分僅存儲(chǔ)所述第一集合的標(biāo)簽。13.如權(quán)利要求9、1和12中任一項(xiàng)所述的方法,其中所述標(biāo)簽存儲(chǔ)包括: 第一多個(gè)集合,其包括所述第一集合;和 第二多個(gè)集合,其包括所述第二集合; 其中在所述第一多個(gè)集合和所述第二多個(gè)集合中,所述第一部分僅專用于所述第一多個(gè)集合并且所述第二部分僅專用于所述第二多個(gè)集合。14.如權(quán)利要求13所述的方法,其中所述第一多個(gè)集合對(duì)應(yīng)于所述高速緩存存儲(chǔ)器的奇數(shù)集合并且其中所述第二多個(gè)集合對(duì)應(yīng)于所述高速緩存存儲(chǔ)器的偶數(shù)集合。15.如權(quán)利要求9、10和12中任一項(xiàng)所述的方法,其中所述高速緩存標(biāo)簽的高速緩存和所述處理器位于第一晶片上。16.如權(quán)利要求15的方法,其中所述標(biāo)簽存儲(chǔ)結(jié)構(gòu)位于耦合于所述第一晶片的第二晶片上。17.一種裝置,其包括: 尚速緩存標(biāo)簽的尚速緩存,用于存儲(chǔ)標(biāo)簽存儲(chǔ)處所存儲(chǔ)的標(biāo)簽的子集,所述標(biāo)簽的子集每個(gè)與高速緩存存儲(chǔ)器的相應(yīng)數(shù)據(jù)位置關(guān)聯(lián);和 控制器,其包括電路,用于使替換表的第一條目與存儲(chǔ)到所述高速緩存標(biāo)簽的高速緩存的第一集合標(biāo)簽關(guān)聯(lián),包括所述控制器用于將所述第一條目的第一變量設(shè)置為預(yù)定多個(gè)值中的初始值, 其中,如果第一存儲(chǔ)器訪問(wèn)請(qǐng)求包括對(duì)應(yīng)于所述第一集合標(biāo)簽中的一個(gè)的標(biāo)簽,則所述控制器進(jìn)一步用于使所述第一變量變?yōu)樗鲱A(yù)定多個(gè)值中的另一個(gè)來(lái)指示活動(dòng)性水平增加,否則,所述控制器用于使所述第一變量變?yōu)轭A(yù)定多個(gè)值中的另一個(gè)來(lái)指示活動(dòng)性水平減??;以及 其中,響應(yīng)于未能識(shí)別與第二存儲(chǔ)器訪問(wèn)請(qǐng)求的標(biāo)簽匹配的高速緩存標(biāo)簽的高速緩存的任何標(biāo)簽,所述控制器進(jìn)一步用于選擇標(biāo)簽集以從所述高速緩存標(biāo)簽的高速緩存驅(qū)逐,包括所述控制器用于搜索所述替換表中的等于初始值的變量。18.如權(quán)利要求17所述的裝置,其中響應(yīng)于所述第一集合的標(biāo)簽要存儲(chǔ)到所述高速緩存標(biāo)簽的高速緩存的任何確定,所述控制器用于將所述第一集合的所有標(biāo)簽存儲(chǔ)到所述第一部分。19.如權(quán)利要求17和18中任一項(xiàng)所述的裝置,其中提供所述第一存儲(chǔ)器訪問(wèn)請(qǐng)求的所述處理器和所述高速緩存標(biāo)簽的高速緩存位于第一晶片上。20.如權(quán)利要求19所述的裝置,其中所述標(biāo)簽存儲(chǔ)結(jié)構(gòu)位于耦合于所述第一晶片的第^■晶片上。21.如權(quán)利要求17、18和19中任一項(xiàng)所述的裝置,其中所述高速緩存標(biāo)簽的高速緩存包含所述標(biāo)簽存儲(chǔ)結(jié)構(gòu)中存儲(chǔ)的最近使用最多的標(biāo)簽中的一個(gè)或多個(gè)。22.—種方法,其包括: 響應(yīng)于第一集合標(biāo)簽到高速緩存標(biāo)簽的高速緩存的存儲(chǔ),使替換表的第一條目與第一集合標(biāo)簽關(guān)聯(lián),包括將所述第一條目的第一活動(dòng)性變量設(shè)置為預(yù)定多個(gè)值中的初始值,其中標(biāo)簽存儲(chǔ)存儲(chǔ)每個(gè)與高速緩存存儲(chǔ)器的相應(yīng)數(shù)據(jù)位置關(guān)聯(lián)的標(biāo)簽,并且其中所述高速緩存標(biāo)簽的高速緩存存儲(chǔ)所述標(biāo)簽存儲(chǔ)處所存儲(chǔ)的標(biāo)簽的子集;以及 如果第一存儲(chǔ)器訪問(wèn)請(qǐng)求包括對(duì)應(yīng)于所述第一集合標(biāo)簽中的一個(gè)的標(biāo)簽,則使所述第一活動(dòng)性變量變?yōu)樗鲱A(yù)定多個(gè)值中的另一個(gè)來(lái)指示所述第一集合的活動(dòng)性水平的增加,否則使所述第一活動(dòng)性變量變?yōu)樗鲱A(yù)定多個(gè)值中的另一個(gè)來(lái)指示所述第一集合的活動(dòng)性水平的減??;以及 響應(yīng)于未能識(shí)別與第二存儲(chǔ)器訪問(wèn)請(qǐng)求的標(biāo)簽匹配的高速緩存標(biāo)簽的高速緩存的任何標(biāo)簽,選擇標(biāo)簽集以從所述高速緩存標(biāo)簽的高速緩存驅(qū)逐,包括搜索所述替換表中的等于初始值的活動(dòng)性變量。23.如權(quán)利要求22所述的方法,其中響應(yīng)于所述第一集合的標(biāo)簽要存儲(chǔ)到所述高速緩存標(biāo)簽的高速緩存的任何確定,所述控制器用于將所述第一集合的所有標(biāo)簽存儲(chǔ)到所述第一部分。24.如權(quán)利要求22和23中任一項(xiàng)所述的方法,其中提供所述第一存儲(chǔ)器訪問(wèn)請(qǐng)求的處理器和所述高速緩存標(biāo)簽的高速緩存位于第一晶片上。25.如權(quán)利要求24所述的方法,其中所述標(biāo)簽存儲(chǔ)結(jié)構(gòu)位于耦合于所述第一晶片的第二晶片上。
【文檔編號(hào)】G06F12/0864GK106030549SQ201580010714
【公開日】2016年10月12日
【申請(qǐng)日】2015年2月23日
【發(fā)明人】D.羅蘭, N.休塞諾瓦, B.A.奎斯塔, Q.蔡
【申請(qǐng)人】英特爾公司