亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于管理高速緩存數(shù)據(jù)的方法和數(shù)據(jù)處理系統(tǒng)的制作方法

文檔序號(hào):6561055閱讀:111來(lái)源:國(guó)知局

專(zhuān)利名稱::用于管理高速緩存數(shù)據(jù)的方法和數(shù)據(jù)處理系統(tǒng)的制作方法
技術(shù)領(lǐng)域
:本發(fā)明一般地涉及一種改進(jìn)的數(shù)據(jù)處理系統(tǒng),并且特別地涉及一種用于管理數(shù)據(jù)的用計(jì)算機(jī)實(shí)現(xiàn)的方法和設(shè)備。更特別地,本發(fā)明涉及一種用于在多級(jí)高速緩存系統(tǒng)中管理數(shù)據(jù)的用計(jì)算機(jī)實(shí)現(xiàn)的方法和設(shè)備。
背景技術(shù)
:高速緩存是一種在數(shù)據(jù)處理系統(tǒng)中用于加速數(shù)據(jù)傳送的組件。高速緩存可以是臨時(shí)性的或永久性的。關(guān)于處理器所使用的高速緩存,這些類(lèi)型的高速緩存通常用于使得能夠以與使用主存儲(chǔ)器相比更高的速度執(zhí)行指令并且讀取和寫(xiě)入數(shù)據(jù)。指令和數(shù)據(jù)以塊的形式從主存儲(chǔ)器傳送到高速緩存。通常使用預(yù)讀(look-ahead)算法來(lái)執(zhí)行這種傳送。如果例程中的指令是連續(xù)的或者被讀取或?qū)懭氲臄?shù)據(jù)是連續(xù)的,就很有可能出現(xiàn)下一個(gè)需要的項(xiàng)已經(jīng)存在于高速緩存中的情形。這種情形可以在數(shù)據(jù)處理系統(tǒng)中得到較好的性能。高速緩存的例子包括存儲(chǔ)器高速緩存、硬件和軟件磁盤(pán)高速緩存以及頁(yè)面高速緩存(pagecache)。關(guān)于由微處理器用于執(zhí)行代碼的高速緩存,建立了內(nèi)部提供了一級(jí)高速緩存的多個(gè)系統(tǒng),其中以處理器的速度來(lái)訪問(wèn)該一級(jí)高速緩存。這種一級(jí)高速緩存也稱作L1高速緩存。此外,大多數(shù)系統(tǒng)還包括二級(jí)高速緩存,也稱作L2高速緩存。這種L2高速緩存通常與處理器相集成。例如,放置在母板上的處理器通常實(shí)際包含兩個(gè)芯片。一個(gè)芯片包含具有L1高速緩存的處理器電路。另一個(gè)芯片包含L2高速緩存。這些類(lèi)型的系統(tǒng)還包括三級(jí)或L3高速緩存。這種L3高速緩存通常設(shè)計(jì)為位于母板上的專(zhuān)用存儲(chǔ)器組,以提供比主存儲(chǔ)器更快、但是比位于處理器本身上的L2高速緩存或L3高速緩存更慢的訪問(wèn)。L2高速緩存中的條目是最新的,并且當(dāng)在數(shù)據(jù)處理系統(tǒng)中切換虛擬分區(qū)時(shí),L2高速緩存中的大多數(shù)條目需要重新加載。通過(guò)共享的處理器邏輯分區(qū)(SPLPAR)的活化(Vitalization)是一種使得多個(gè)操作系統(tǒng)實(shí)例可以共享單個(gè)的處理器的技術(shù)。在SPLPAR之前,單獨(dú)的處理器是單個(gè)的操作系統(tǒng)的域。為了在單個(gè)的處理器上運(yùn)行多個(gè)操作系統(tǒng)實(shí)例,定期地停止正在運(yùn)行的分區(qū),保存其狀態(tài),并且在同一處理器上啟動(dòng)另一分區(qū)。當(dāng)可以從L3高速緩存中獲取虛擬分區(qū)的L2高速緩存的覆蓋區(qū)(footprint),則將是所期望的。如果條目沒(méi)有出現(xiàn)在L3高速緩存中,則要從另一高速緩存或存儲(chǔ)器中取出地址。這種情形導(dǎo)致需要更多的時(shí)間來(lái)獲取這種信息。當(dāng)在處理器中切換虛擬分區(qū)時(shí),為了有利于新的虛擬分區(qū)的L2高速緩存覆蓋區(qū),L2高速緩存中的大多數(shù)條目將被逐出或移除。高速緩存的覆蓋區(qū)是該高速緩存內(nèi)的區(qū)域,其包含與當(dāng)前執(zhí)行分區(qū)的運(yùn)行工作量相關(guān)的條目。L3高速緩存通常用作犧牲性高速緩存(victimcache)。犧牲性高速緩存是一種保存已經(jīng)從較高級(jí)別的高速緩存中逐出或移除的指令和數(shù)據(jù)的高速緩存。當(dāng)從存儲(chǔ)器中取出新的地址時(shí),L3高速緩存使用最近最少使用(LRU)算法從L3高速緩存中逐出地址。由于來(lái)自先前的條目(其已被逐出)的L2條目將很快變得過(guò)期或老化,并且因此其將會(huì)被從L3高速緩存中逐出。出現(xiàn)這種情形是因?yàn)樾碌奶摂M分區(qū)不使用由于先前的分區(qū)而存在的L2高速緩存中的條目。因此,當(dāng)切換回先前的虛擬分區(qū)發(fā)生時(shí),由于該老化過(guò)程,L3高速緩存包含很少的與用于該先前分區(qū)的指令或數(shù)據(jù)有關(guān)的信息。較高級(jí)別的高速緩存(即L1和L2高速緩存)包含用于當(dāng)前分區(qū)的信息。因此,當(dāng)進(jìn)行回到先前的分區(qū)的切換時(shí),較高級(jí)別的高速緩存中存在很少的用于該分區(qū)的信息。因此,用于該分區(qū)的大量信息必須從主存儲(chǔ)器或某些其他位置獲取。這種情形導(dǎo)致在虛擬分區(qū)之間進(jìn)行切換時(shí)性能會(huì)下降。
發(fā)明內(nèi)容本發(fā)明的各個(gè)方面提供了用于管理高速緩存數(shù)據(jù)的用計(jì)算機(jī)實(shí)現(xiàn)的方法、設(shè)備和計(jì)算機(jī)可用代碼。將分區(qū)標(biāo)識(shí)符與高速緩存中的高速緩存條目相關(guān)聯(lián),其中分區(qū)標(biāo)識(shí)符標(biāo)識(shí)訪問(wèn)該高速緩存條目的最后分區(qū)。響應(yīng)于將該高速緩存條目移動(dòng)到相對(duì)于該高速緩存的較低級(jí)別的高速緩存中,將與該高速緩存條目相關(guān)聯(lián)的分區(qū)標(biāo)識(shí)符與位于處理器寄存器中的前一分區(qū)標(biāo)識(shí)符相比較。如果與該高速緩存條目相關(guān)聯(lián)的分區(qū)標(biāo)識(shí)符與位于處理器寄存器中的前一分區(qū)標(biāo)識(shí)符相匹配,則對(duì)該高速緩存條目進(jìn)行標(biāo)記以形成有標(biāo)記的高速緩存條目。該有標(biāo)記的高速緩存條目以相對(duì)于無(wú)標(biāo)記的高速緩存條目較慢的速率老化。所附權(quán)利要求中闡明了所確信的本發(fā)明所特有的新穎特征。然而,通過(guò)參考結(jié)合附圖閱讀的以下對(duì)說(shuō)明性實(shí)施例的詳細(xì)描述,將最好地理解本發(fā)明本身以及其優(yōu)選應(yīng)用模式、其另外的目的和優(yōu)點(diǎn),其中圖1是其中可以實(shí)現(xiàn)本發(fā)明的各個(gè)方面的數(shù)據(jù)處理系統(tǒng)的圖示;圖2是其中可以實(shí)現(xiàn)本發(fā)明的各個(gè)方面的所示數(shù)據(jù)處理系統(tǒng)的框圖;圖3是示出在根據(jù)本發(fā)明的說(shuō)明性實(shí)施例管理多級(jí)高速緩存系統(tǒng)中的高速緩存條目時(shí)所用的各組件的示圖;圖4是示出根據(jù)本發(fā)明的說(shuō)明性實(shí)施例的示例性高速緩存條目的示圖;圖5是根據(jù)本發(fā)明的說(shuō)明性實(shí)施例用于設(shè)置處理器寄存器的處理的流程圖;圖6是根據(jù)本發(fā)明的說(shuō)明性實(shí)施例用于處理從L2高速緩存中移除的高速緩存條目的處理的流程圖;以及圖7是根據(jù)本發(fā)明的說(shuō)明性實(shí)施例用于從L3高速緩存中使條目老化并移除條目的處理的流程圖。具體實(shí)施例方式現(xiàn)在參考附圖,并且特別參考圖1,即其中可以實(shí)現(xiàn)本發(fā)明的各個(gè)方面的數(shù)據(jù)處理系統(tǒng)的圖示。圖中描述了計(jì)算機(jī)100,其包括系統(tǒng)單元102、視頻顯示終端104、鍵盤(pán)106、存儲(chǔ)裝置108(其可以包括軟驅(qū)和其他類(lèi)型的永久性可移動(dòng)存儲(chǔ)介質(zhì))以及鼠標(biāo)110。個(gè)人計(jì)算機(jī)100還可以包括其他的輸入裝置,例如操縱桿、觸摸板、觸摸屏、軌跡球、麥克風(fēng)等等。計(jì)算機(jī)100可以使用任意適合的計(jì)算機(jī)來(lái)實(shí)現(xiàn),這些計(jì)算機(jī)諸如IBMeSever計(jì)算機(jī)或IntelliStation計(jì)算機(jī),其都是位于紐約州阿芒克市的IBM(國(guó)際商業(yè)機(jī)器)公司的產(chǎn)品。盡管所描述的圖示只示出了一個(gè)計(jì)算機(jī),但是本發(fā)明的其他實(shí)施例也可以以其他類(lèi)型的數(shù)據(jù)處理系統(tǒng)(例如網(wǎng)絡(luò)計(jì)算機(jī))來(lái)實(shí)現(xiàn)。計(jì)算機(jī)100還優(yōu)選地包括圖形用戶界面(GUI),其可以通過(guò)駐留于計(jì)算機(jī)可讀介質(zhì)中的系統(tǒng)軟件來(lái)實(shí)現(xiàn),其中該計(jì)算機(jī)可讀介質(zhì)在計(jì)算機(jī)100中工作。現(xiàn)在參考圖2,示出了其中可以實(shí)現(xiàn)本發(fā)明的各個(gè)方面的數(shù)據(jù)處理系統(tǒng)的框圖。數(shù)據(jù)處理系統(tǒng)200是計(jì)算機(jī)的例子,諸如圖1中的計(jì)算機(jī)100,實(shí)現(xiàn)本發(fā)明的處理的代碼或指令可以位于其中。在所描述的例子中,數(shù)據(jù)處理系統(tǒng)200采用中心體系結(jié)構(gòu),該體系結(jié)構(gòu)包括北橋和內(nèi)存控制器中心(MCH)208以及南橋和輸入/輸出(I/O)控制器中心(ICH)210。處理器202、主存儲(chǔ)器204和圖形處理器218連接到MCH208。例如,圖形處理器218可以通過(guò)加速圖形端口(AGP)連接到MCH。在所描述的例子中,局域網(wǎng)(LAN)適配器212、音頻適配器216、鍵盤(pán)和鼠標(biāo)適配器220、調(diào)制解調(diào)器222、只讀存儲(chǔ)器(ROM)224、硬盤(pán)驅(qū)動(dòng)器(HDD)226、CD-ROM(壓縮光盤(pán)-只讀存儲(chǔ)器)驅(qū)動(dòng)器230、通用串行總線(USB)端口和其他通信端口232以及PCI/PCIe(外圍組件接口/高速外圍組件接口)裝置234連接到ICH210。PCI/PCIe裝置可以包括例如以太網(wǎng)適配器、插入卡(add-incard)和用于筆記本計(jì)算機(jī)的PC卡等。PCI使用卡總線(CardBus)控制器,而PCIe則不使用卡總線控制器。ROM224可以是例如閃速二進(jìn)制輸入/輸出系統(tǒng)(BIOS)。硬盤(pán)驅(qū)動(dòng)器226和CD-ROM驅(qū)動(dòng)器230可以采用例如集成設(shè)備電路(IDE)接口或串行高級(jí)技術(shù)附件(SATA)接口。超級(jí)I/O(SIO)裝置236可以連接到ICH210。操作系統(tǒng)運(yùn)行于處理器202上,并協(xié)調(diào)和提供對(duì)圖2中的數(shù)據(jù)處理系統(tǒng)200內(nèi)的各種組件的控制。操作系統(tǒng)可以是諸如高級(jí)交互執(zhí)行體(AdvancedInteractiveExecutive)(AIX)操作系統(tǒng)或LINUX操作系統(tǒng)(“eServer”、“pSeries”和“AIX”是國(guó)際商業(yè)機(jī)器公司在美國(guó)、其他國(guó)家或同時(shí)在美國(guó)和其他國(guó)家的商標(biāo),而“Linux”是LinusTorvalds公司在美國(guó)、其他國(guó)家或同時(shí)在美國(guó)和其他國(guó)家的商標(biāo))之類(lèi)的市面上有售的操作系統(tǒng)。諸如WebSphere編程系統(tǒng)之類(lèi)的面向?qū)ο蟮木幊滔到y(tǒng)可以結(jié)合操作系統(tǒng)而運(yùn)行,并從在數(shù)據(jù)處理系統(tǒng)200上執(zhí)行的程序或應(yīng)用提供對(duì)操作系統(tǒng)的調(diào)用?!癢ebSphere”是國(guó)際商業(yè)機(jī)器公司的商標(biāo)(“Java”是Sun微系統(tǒng)有限公司在美國(guó)、其他國(guó)家或同時(shí)在美國(guó)和其他國(guó)家的商標(biāo))。用于操作系統(tǒng)、面向?qū)ο蟮木幊滔到y(tǒng)以及應(yīng)用或程序的指令位于諸如硬盤(pán)驅(qū)動(dòng)器226之類(lèi)的存儲(chǔ)裝置中,并且可以加載到主存儲(chǔ)器204中以便由處理器202執(zhí)行。本發(fā)明的處理由處理器202使用用計(jì)算機(jī)實(shí)現(xiàn)的指令來(lái)執(zhí)行,該用計(jì)算機(jī)實(shí)現(xiàn)的指令可以位于諸如主存儲(chǔ)器204、只讀存儲(chǔ)器224之類(lèi)的存儲(chǔ)器中,或者位于一個(gè)或多個(gè)外圍裝置中。本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)意識(shí)到,圖1-圖2中的硬件可以根據(jù)實(shí)現(xiàn)方式而改變。諸如閃存、等效的非易失性存儲(chǔ)器或光盤(pán)驅(qū)動(dòng)器等其他的內(nèi)部硬件或外圍裝置可以用于補(bǔ)充或替代圖1-圖2中所描述的硬件。同樣,本發(fā)明的處理可以應(yīng)用于多處理器數(shù)據(jù)處理系統(tǒng)。在某些說(shuō)明性例子中,數(shù)據(jù)處理系統(tǒng)200可以是個(gè)人數(shù)字助理(PDA),其配備有閃存,用以提供用于存儲(chǔ)操作系統(tǒng)文件和/或用戶生成的數(shù)據(jù)的非易失性存儲(chǔ)器。總線系統(tǒng)可以包括一個(gè)或多個(gè)總線,諸如系統(tǒng)總線、I/O總線和PCI總線。當(dāng)然,總線系統(tǒng)可以采用任意類(lèi)型的通信架構(gòu)或體系結(jié)構(gòu)來(lái)實(shí)現(xiàn),該架構(gòu)或體系結(jié)構(gòu)規(guī)定了在連接到該架構(gòu)或體系結(jié)構(gòu)的不同組件或裝置之間進(jìn)行的數(shù)據(jù)傳送。通信單元可以包括用于發(fā)送和接收數(shù)據(jù)的一個(gè)或多個(gè)裝置,諸如調(diào)制解調(diào)器或網(wǎng)絡(luò)適配器。存儲(chǔ)器可以是例如主存儲(chǔ)器204或諸如在MCH208中見(jiàn)到的高速緩存。處理單元可以包括一個(gè)或多個(gè)處理器或CPU。在圖1-圖2中所描述的例子和上述例子并非意圖暗示體系結(jié)構(gòu)上的限制。例如,除采取PDA的形式之外,數(shù)據(jù)處理系統(tǒng)200還可以是寫(xiě)字板計(jì)算機(jī)(tabletcomputer)、膝上型計(jì)算機(jī)或電話裝置。本發(fā)明的各不同方面提供了一種用于管理多級(jí)高速緩存系統(tǒng)中的數(shù)據(jù)的用計(jì)算機(jī)實(shí)現(xiàn)的方法、設(shè)備和計(jì)算機(jī)可用程序代碼。在這些例子中,多級(jí)高速緩存系統(tǒng)包括L1、L2和L3高速緩存。由于虛擬分區(qū)交換而從L2高速緩存移動(dòng)或逐出到L3高速緩存中的條目以比L3高速緩存中的其他條目更慢的速率老化或被移除。通過(guò)以較慢的速率使L2高速緩存條目(其在虛擬分區(qū)交換期間被逐出)老化,增大了在交換回虛擬分區(qū)以在處理器中進(jìn)行處理時(shí)L2高速緩存條目的熱覆蓋區(qū)(hotfootprint)出現(xiàn)在L3高速緩存中的可能性。該說(shuō)明性實(shí)施例在處理器中使用了兩個(gè)寄存器。第一寄存器包含當(dāng)前運(yùn)行分區(qū)的標(biāo)識(shí)。該標(biāo)識(shí)稱作運(yùn)行分區(qū)標(biāo)識(shí)。第二寄存器包含在處理器中運(yùn)行的前一分區(qū)的標(biāo)識(shí)。該標(biāo)識(shí)稱作前一分區(qū)標(biāo)識(shí)。L2高速緩存中的每個(gè)條目標(biāo)有標(biāo)識(shí)最后訪問(wèn)該條目的分區(qū)的分區(qū)標(biāo)識(shí)。當(dāng)從L2高速緩存中逐出或移除條目時(shí),如果訪問(wèn)該條目的最后分區(qū)與寄存器中的前一分區(qū)ID(標(biāo)識(shí))相匹配,則將該高速緩存條目標(biāo)記為緩慢老化。通過(guò)向該高速緩存條目添加一組比特來(lái)執(zhí)行L3高速緩存中的高速緩存條目的實(shí)際老化。在此說(shuō)明性實(shí)施例中,在將高速緩存條目標(biāo)記為緩慢老化時(shí)設(shè)置這些比特。在這些例子中,這一個(gè)或多個(gè)比特還稱作一組比特。每當(dāng)選擇一個(gè)高速緩存條目以便從L3高速緩存中移除時(shí),檢查這組比特。如果這組比特為零,則從L3高速緩存中逐出或移除該條目。否則,則遞減該組比特,并將該條目移回到列表的開(kāi)頭。在這些例子中,將條目移回到列表的開(kāi)頭表明該高速緩存條目是最近使用過(guò)的高速緩存條目。現(xiàn)在轉(zhuǎn)向圖3,其中根據(jù)本發(fā)明的說(shuō)明性實(shí)施例描述了示出管理多級(jí)高速緩存系統(tǒng)中的高速緩存條目時(shí)所用的組件的示圖。在這些例子中,處理器300包含L1高速緩存302和L2高速緩存304。另外的高速緩存即L3高速緩存306位于存儲(chǔ)器308中。存儲(chǔ)器308可以是例如母板上的存儲(chǔ)器。L3高速緩存306具有比L1高速緩存302或L2高速緩存304更慢的訪問(wèn)速率。然而,L3高速緩存306具有比系統(tǒng)存儲(chǔ)器更快的訪問(wèn)。使用高速緩存控制器310來(lái)執(zhí)行對(duì)這些高速緩存中信息的管理。在這些例子中的高速緩存中的信息包括指令、將由指令來(lái)操作的數(shù)據(jù)或指令和數(shù)據(jù)的組合。處理器300中的當(dāng)前的分區(qū)寄存器312是增加的寄存器,其包含當(dāng)前正在由處理器300運(yùn)行的分區(qū)的當(dāng)前分區(qū)標(biāo)識(shí)。前一分區(qū)寄存器314也是在這些例子中所使用的附加的寄存器,并且其包含前一分區(qū)標(biāo)識(shí)。該寄存器識(shí)別曾經(jīng)由處理器300運(yùn)行的前一分區(qū)。高速緩存條目316包含在執(zhí)行一個(gè)分區(qū)期間處理器300可能使用的信息。在這些例子中,每個(gè)高速緩存條目是一個(gè)高速緩存行。高速緩存行是通過(guò)由高速緩存控制器310執(zhí)行的高速緩存行填充或回寫(xiě)操作而在主存儲(chǔ)器與高速緩存之間傳送的大量數(shù)據(jù)。高速緩存條目316中的每個(gè)高速緩存條目與一個(gè)分區(qū)標(biāo)識(shí)符相關(guān)聯(lián)。該分區(qū)標(biāo)識(shí)符標(biāo)識(shí)訪問(wèn)該高速緩存條目的最后分區(qū)。當(dāng)將當(dāng)前運(yùn)行的分區(qū)交換出去以運(yùn)行一個(gè)新的分區(qū)時(shí),處理器300用該新的分區(qū)的標(biāo)識(shí)來(lái)設(shè)置當(dāng)前的分區(qū)寄存器312。將被交換出去的分區(qū)的分區(qū)標(biāo)識(shí)符置入前一分區(qū)寄存器314中。在這些例子中,這些操作由高速緩存控制器310來(lái)執(zhí)行。當(dāng)將新的分區(qū)交換進(jìn)來(lái)以便由處理器300來(lái)執(zhí)行時(shí),由于從存儲(chǔ)器取出用于該新的分區(qū)的新的地址,大多數(shù)條目和高速緩存條目316被從L2高速緩存304中移除或逐出,并被置入L3高速緩存306中。因此,在本例中L3高速緩存306用作犧牲性高速緩存。每當(dāng)選擇一個(gè)條目以便從L2高速緩存304中移除時(shí),高速緩存控制器310將與該高速緩存條目相關(guān)聯(lián)的分區(qū)標(biāo)識(shí)符與位于前一分區(qū)寄存器314中的前一分區(qū)標(biāo)識(shí)符相比較。如果在這兩個(gè)標(biāo)識(shí)符之間存在匹配,則當(dāng)將該高速緩存條目置入高速緩存條目318以及L3高速緩存306中時(shí)為該高速緩存條目設(shè)置一組比特。設(shè)置這組比特實(shí)現(xiàn)了與前一分區(qū)寄存器314中的前一分區(qū)標(biāo)識(shí)符相關(guān)聯(lián)的條目的更緩慢老化。通過(guò)使與前一分區(qū)相關(guān)聯(lián)的高速緩存條目的老化變緩,這些高速緩存條目被保持較長(zhǎng)的時(shí)間段,并且在交換回前一分區(qū)以便由處理器300執(zhí)行時(shí)這些條目更有可能是可用的。在這些說(shuō)明性的例子中,當(dāng)L3高速緩存306變得太滿時(shí),高速緩存控制器310從高速緩存條目318中移除條目。在這些例子中,當(dāng)達(dá)到或超過(guò)某一門(mén)限時(shí)認(rèn)為L(zhǎng)3高速緩存太滿。這一門(mén)限可以對(duì)應(yīng)于當(dāng)L3高速緩存完全充滿或在L3高速緩存306中還有一些其他的使用量時(shí)。作為替代,可以根據(jù)特定的實(shí)現(xiàn)方式、響應(yīng)于任意事件來(lái)執(zhí)行對(duì)高速緩存條目的移除。這種事件可以是定期的或不定期的。高速緩存條目被移除是因?yàn)樵撐恢檬撬璧?。如果在同余?lèi)(congruenceclass)中存在8組比特,則對(duì)應(yīng)于每個(gè)同余類(lèi)只存在8個(gè)條目。因此,為了插入第9個(gè)條目,必須逐出一個(gè)當(dāng)前的條目。本發(fā)明的各個(gè)方面以不同的速率使條目老化,以便某些條目在高速緩存中停留得更久。在這些例子中,使用最近最少使用算法(LRU)來(lái)選擇用于移除的高速緩存條目。每當(dāng)選擇移除高速緩存條目318中的一個(gè)高速緩存條目時(shí),高速緩存控制器310就檢查該組比特,并確定該組比特是否等于零。如果該組比特等于零,則從L3高速緩存306中逐出或移除該高速緩存條目。否則,則遞減該組比特,并將該條目移回到列表的開(kāi)頭,且將其看作在此時(shí)最近使用的高速緩存條目。隨著當(dāng)前分區(qū)的執(zhí)行,前一分區(qū)的L2條目很快變得過(guò)期。接著轉(zhuǎn)向圖4,其中根據(jù)本發(fā)明的說(shuō)明性實(shí)施例描述了示出示例性高速緩存條目的示圖。高速緩存條目400是位于L2高速緩存(諸如圖3中的L2高速緩存304)中的高速緩存條目的例子。高速緩存條目400包含高速緩存信息402以及分區(qū)標(biāo)識(shí)符404。高速緩存信息402包含由處理器使用的數(shù)據(jù)或指令。分區(qū)標(biāo)識(shí)符404是最后訪問(wèn)高速緩存條目400的分區(qū)的標(biāo)識(shí)。高速緩存條目406是L3高速緩存(諸如圖3中的L3高速緩存306)中存儲(chǔ)的高速緩存條目的例子。高速緩存條目406包含高速緩存信息408和比特410。比特410是用于使得L3高速緩存中的高速緩存條目老化的一組比特。當(dāng)從L2高速緩存移除的高速緩存條目是由被交換出去的前一分區(qū)最后訪問(wèn)的,則設(shè)置比特410。比特410是一組比特,其根據(jù)特定的實(shí)現(xiàn)方式可以包括一個(gè)或多個(gè)比特。每當(dāng)選擇高速緩存條目406以便從L3高速緩存中移除時(shí),遞減比特410。如果比特410不等于零,則遞減比特410。否則,從L3高速緩存中移除高速緩存條目406。如果不從L3高速緩存中移除條目406,則在該特定例子中,將該高速緩存條目移動(dòng)到列表的開(kāi)頭,并且此時(shí)將該條目看作是最近使用的高速緩存條目。當(dāng)然,根據(jù)特定的實(shí)現(xiàn)方式,高速緩存條目406可以不移動(dòng)到列表的開(kāi)頭?,F(xiàn)在轉(zhuǎn)向圖5,其中根據(jù)本發(fā)明的說(shuō)明性實(shí)施例描述了用于設(shè)置處理器寄存器的處理的流程圖。圖5中示出的處理可以實(shí)現(xiàn)于諸如圖3中的高速緩存控制器310之類(lèi)的裝置中。特別地,該處理進(jìn)行對(duì)如圖3所示的那些當(dāng)前分區(qū)寄存器和前一分區(qū)寄存器的設(shè)置。該處理開(kāi)始于接收到分區(qū)交換的通知(步驟500)。在此之后,該處理識(shí)別將由處理器來(lái)運(yùn)行的新的分區(qū)(步驟502)。將當(dāng)前分區(qū)標(biāo)識(shí)符的副本復(fù)制到前一分區(qū)寄存器中(步驟504)。然后,該處理將該新的分區(qū)的分區(qū)標(biāo)識(shí)符寫(xiě)入當(dāng)前分區(qū)標(biāo)識(shí)符(步驟506),在此之后處理結(jié)束。現(xiàn)在轉(zhuǎn)向圖6,其中根據(jù)本發(fā)明的說(shuō)明性實(shí)施例描述了用于對(duì)從L2高速緩存中移除的高速緩存條目進(jìn)行處理的處理的流程圖。圖6中示出的處理可以實(shí)現(xiàn)于諸如圖3中的高速緩存控制器310之類(lèi)的高速緩存控制器中。在這些例子中,當(dāng)分區(qū)交換發(fā)生時(shí)發(fā)起該處理。該處理開(kāi)始于檢測(cè)到從L2高速緩存中移除高速緩存條目以放置在L3高速緩存中(步驟600)。對(duì)訪問(wèn)該高速緩存條目的最后分區(qū)進(jìn)行識(shí)別(步驟602)。通過(guò)檢查與該高速緩存條目相關(guān)聯(lián)的分區(qū)標(biāo)識(shí)符而在步驟602中識(shí)別該最后的分區(qū)。使用來(lái)自處理器寄存器的前一分區(qū)標(biāo)識(shí)符來(lái)標(biāo)識(shí)處理器中的前一分區(qū)(步驟604)。在本例中,處理器寄存器是前一分區(qū)寄存器。接著,對(duì)該最后分區(qū)與前一分區(qū)之間是否存在匹配進(jìn)行確定(步驟606)。通過(guò)將與該高速緩存條目相關(guān)聯(lián)的分區(qū)標(biāo)識(shí)符與具有處理標(biāo)識(shí)符的前一分區(qū)標(biāo)識(shí)符相比較來(lái)進(jìn)行該確定。如果存在匹配,則為該高速緩存條目設(shè)置比特(步驟608),在此之后該處理結(jié)束。如果不存在匹配,則同樣在步驟606中該處理結(jié)束。轉(zhuǎn)向圖7,其中根據(jù)本發(fā)明的說(shuō)明性實(shí)施例描述了用于從L3高速緩存中使條目老化并移除條目的處理的流程圖。圖7示出的處理可以實(shí)現(xiàn)于諸如圖3中的高速緩存控制器310之類(lèi)的高速緩存控制器中。該處理開(kāi)始于選擇一個(gè)高速緩存條目以便從L3高速緩存中移除(步驟700)。接著,對(duì)在該選定的高速緩存條目中的該組比特是否等于零進(jìn)行確定(步驟702)。如果該選定的高速緩存條目中的該組比特不等于零,則遞減該組比特(步驟704)。將該高速緩存條目移到列表的開(kāi)頭(步驟706)。將該高速緩存條目移到列表的開(kāi)頭使得該條目成為最近使用的高速緩存條目。接著,對(duì)是否要選擇更多的高速緩存條目進(jìn)行確定(步驟708)。如果不存在更多的待選擇高速緩存條目,則在此之后處理結(jié)束。如果存在更多的待選擇高速緩存條目,則處理返回到步驟700,以選擇用于從L3高速緩存中移除的高速緩存條目。返回到步驟702,如果在選定高速緩存條目中的該組比特等于零,則將該高速緩存條目從L3高速緩存中移除(步驟710),處理前進(jìn)到步驟708。本發(fā)明可以采取完全硬件實(shí)施例、完全軟件實(shí)施例或者同時(shí)包含硬件單元和軟件單元的實(shí)施例的形式。在優(yōu)選的實(shí)施例中,本發(fā)明是以諸如高速緩存控制器之類(lèi)的硬件實(shí)現(xiàn)的。在其他的實(shí)施例中,本發(fā)明是以軟件實(shí)現(xiàn)的,該軟件包括但不限于固件、駐留軟件、微代碼等。此外,本發(fā)明可以采取可從計(jì)算機(jī)可用介質(zhì)或計(jì)算機(jī)可讀介質(zhì)訪問(wèn)的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可用介質(zhì)或計(jì)算機(jī)可讀介質(zhì)提供程序代碼以供計(jì)算機(jī)或任何指令執(zhí)行系統(tǒng)使用或結(jié)合計(jì)算機(jī)或任意指令執(zhí)行系統(tǒng)而使用。出于本描述的目的,計(jì)算機(jī)可用介質(zhì)或計(jì)算機(jī)可讀介質(zhì)可以是任意能夠包含、存儲(chǔ)、傳送、傳播或傳輸供指令執(zhí)行系統(tǒng)、設(shè)備或裝置使用或結(jié)合指令執(zhí)行系統(tǒng)、設(shè)備或裝置而使用的程序的設(shè)備。該介質(zhì)可以是電子的、磁的、光的、電磁的、紅外的或半導(dǎo)體的系統(tǒng)(或設(shè)備、裝置)或者傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的例子包括半導(dǎo)體或固態(tài)存儲(chǔ)器、磁帶、可拆卸的計(jì)算機(jī)磁盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、硬盤(pán)以及光盤(pán)。目前的光盤(pán)例子包括壓縮光盤(pán)-只讀存儲(chǔ)器(CD-ROM)、壓縮光盤(pán)-讀/寫(xiě)(CD-R/W)和DVD(數(shù)字視頻光盤(pán))。適合于存儲(chǔ)和/或執(zhí)行程序代碼的數(shù)據(jù)處理系統(tǒng)可以包括直接地或通過(guò)系統(tǒng)總線間接地連接到存儲(chǔ)單元的至少一個(gè)處理器。這些存儲(chǔ)單元可以包括在實(shí)際執(zhí)行程序代碼期間所使用的本地存儲(chǔ)器,大容量存儲(chǔ)器(bulkstorage),以及為至少某些程序代碼提供臨時(shí)存儲(chǔ)以便減少在執(zhí)行期間必須從大容量存儲(chǔ)器中獲取代碼的次數(shù)的高速緩存存儲(chǔ)器。輸入/輸出裝置或I/O裝置(包括但不限于鍵盤(pán)、顯示器、指示裝置等)可以直接地或通過(guò)中間I/O控制器連接到系統(tǒng)。網(wǎng)絡(luò)適配器同樣可以連接到系統(tǒng),以使得數(shù)據(jù)處理系統(tǒng)能夠通過(guò)中間的專(zhuān)用的或公共的網(wǎng)絡(luò)而連接到其他數(shù)據(jù)處理系統(tǒng)或者遠(yuǎn)端的打印機(jī)或存儲(chǔ)裝置。調(diào)制解調(diào)器、電纜調(diào)制解調(diào)器和以太網(wǎng)卡只是當(dāng)前可用的幾類(lèi)網(wǎng)絡(luò)適配器。已經(jīng)提出了對(duì)本發(fā)明的描述,目的是進(jìn)行說(shuō)明和描述,而不是旨在窮舉或使本發(fā)明限于所公開(kāi)的形式。各種修改和變更對(duì)于本領(lǐng)域的普通技術(shù)人員是明顯的。選擇和描述實(shí)施例是為了最好地說(shuō)明發(fā)明的原理、實(shí)際應(yīng)用,并使本領(lǐng)域的普通技術(shù)人員能夠理解本發(fā)明的具有適合于預(yù)期的特定應(yīng)用的各種修改的各種實(shí)施例。權(quán)利要求1.一種用于管理高速緩存數(shù)據(jù)的用計(jì)算機(jī)實(shí)現(xiàn)的方法,所述用計(jì)算機(jī)實(shí)現(xiàn)的方法包括將分區(qū)標(biāo)識(shí)符與高速緩存中的高速緩存條目相關(guān)聯(lián),其中所述分區(qū)標(biāo)識(shí)符標(biāo)識(shí)訪問(wèn)所述高速緩存條目的最后分區(qū);響應(yīng)于所述高速緩存條目被移動(dòng)到相對(duì)于所述高速緩存的較低級(jí)別的高速緩存中,將與所述高速緩存條目相關(guān)聯(lián)的所述分區(qū)標(biāo)識(shí)符與位于處理器寄存器中的先前的分區(qū)標(biāo)識(shí)符相比較;以及如果與所述高速緩存條目相關(guān)聯(lián)的所述分區(qū)標(biāo)識(shí)符與位于所述處理器寄存器中的所述前一分區(qū)標(biāo)識(shí)符相匹配,則對(duì)所述高速緩存條目進(jìn)行標(biāo)記以形成有標(biāo)記的高速緩存條目,其中所述有標(biāo)記的高速緩存條目以相對(duì)于無(wú)標(biāo)記的高速緩存條目較慢的速率老化。2.根據(jù)權(quán)利要求1所述的用計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括當(dāng)發(fā)生分區(qū)交換時(shí),將所述高速緩存條目移動(dòng)到所述較低級(jí)別的高速緩存中。3.根據(jù)權(quán)利要求1所述的用計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括設(shè)定用于所述有標(biāo)記的高速緩存條目的一組比特。4.根據(jù)權(quán)利要求3所述的用計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括選擇一個(gè)特定的高速緩存條目以便從所述較低級(jí)別的高速緩存中移除;確定用于所述特定的高速緩存條目的一組比特是否等于零;如果用于所述特定的高速緩存條目的所述一組比特等于零,則將所述特定的高速緩存條目從所述較低級(jí)別的高速緩存中移除;以及如果用于所述特定的高速緩存條目的所述一組比特不等于零,則遞減所述一組比特。5.根據(jù)權(quán)利要求4所述的用計(jì)算機(jī)實(shí)現(xiàn)的方法,還包括如果所述一組比特不等于零,則將所述特定的高速緩存條目移動(dòng)到高速緩存條目列表的開(kāi)頭。6.根據(jù)權(quán)利要求1所述的用計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述高速緩存是L2高速緩存,并且所述較低級(jí)別的高速緩存是L3高速緩存。7.根據(jù)權(quán)利要求1所述的用計(jì)算機(jī)實(shí)現(xiàn)的方法,其中所述處理器寄存器是第二處理器寄存器,并且第一處理器寄存器包含當(dāng)前分區(qū)的標(biāo)識(shí)。8.根據(jù)權(quán)利要求1所述的用計(jì)算機(jī)實(shí)現(xiàn)的方法,其中使用最近最少使用算法來(lái)執(zhí)行所述選擇步驟。9.一種計(jì)算機(jī)程序產(chǎn)品,包括計(jì)算機(jī)可用介質(zhì),其包括用于管理高速緩存數(shù)據(jù)的計(jì)算機(jī)可用程序代碼;所述計(jì)算機(jī)程序產(chǎn)品包括用于實(shí)現(xiàn)根據(jù)前述方法權(quán)利要求的任何一種方法的計(jì)算機(jī)可用程序代碼。10.一種數(shù)據(jù)處理系統(tǒng),包括總線;連接到所述總線的通信單元;連接到所述總線的存儲(chǔ)裝置,其中所述存儲(chǔ)裝置包括計(jì)算機(jī)可用代碼;以及連接到所述總線的處理器單元,其中所述處理器單元執(zhí)行所述計(jì)算機(jī)可用代碼,以便將分區(qū)標(biāo)識(shí)符與高速緩存中的高速緩存條目相關(guān)聯(lián),其中所述分區(qū)標(biāo)識(shí)符標(biāo)識(shí)訪問(wèn)所述高速緩存條目的最后分區(qū);響應(yīng)于所述高速緩存條目被移動(dòng)到相對(duì)于所述高速緩存的較低級(jí)別的高速緩存中,將與所述高速緩存條目相關(guān)聯(lián)的所述分區(qū)標(biāo)識(shí)符與位于處理器寄存器中的前一分區(qū)標(biāo)識(shí)符相比較;以及如果與所述高速緩存條目相關(guān)聯(lián)的所述分區(qū)標(biāo)識(shí)符與位于所述處理器寄存器中的所述前一分區(qū)標(biāo)識(shí)符相匹配,則對(duì)所述高速緩存條目進(jìn)行標(biāo)記以形成有標(biāo)記的高速緩存條目,其中所述有標(biāo)記的高速緩存條目以相對(duì)于無(wú)標(biāo)記的高速緩存條目較慢的速率老化。11.根據(jù)權(quán)利要求10所述的數(shù)據(jù)處理系統(tǒng),其中所述處理器單元還執(zhí)行用于當(dāng)發(fā)生分區(qū)交換時(shí)將所述高速緩存條目移動(dòng)到所述較低級(jí)別的高速緩存中的計(jì)算機(jī)可用代碼。12.根據(jù)權(quán)利要求10所述的數(shù)據(jù)處理系統(tǒng),其中所述處理器單元還執(zhí)行用于設(shè)定用于所述有標(biāo)記的高速緩存條目的一組比特以對(duì)所述有標(biāo)記的高速緩存條目進(jìn)行標(biāo)記的計(jì)算機(jī)可用代碼。13.根據(jù)權(quán)利要求12所述的數(shù)據(jù)處理系統(tǒng),其中所述處理器單元還執(zhí)行用于實(shí)現(xiàn)以下操作的計(jì)算機(jī)可用代碼選擇一個(gè)特定的高速緩存條目以便從所述較低級(jí)別的高速緩存中移除;確定用于所述特定的高速緩存條目的一組比特是否等于零;如果用于所述特定的高速緩存條目的所述一組比特等于零,則將所述特定的高速緩存條目從所述較低級(jí)別的高速緩存中移除;以及如果用于所述特定的高速緩存條目的所述一組比特不等于零,則遞減所述一組比特。全文摘要一種用于管理高速緩存數(shù)據(jù)的用計(jì)算機(jī)實(shí)現(xiàn)的方法、設(shè)備和計(jì)算機(jī)可用代碼。將分區(qū)標(biāo)識(shí)符與高速緩存中的高速緩存條目相關(guān)聯(lián),其中該分區(qū)標(biāo)識(shí)符標(biāo)識(shí)訪問(wèn)該高速緩存條目的最后分區(qū)。響應(yīng)于該高速緩存條目被移動(dòng)到相對(duì)于該高速緩存的較低級(jí)別的高速緩存中,將與該高速緩存條目相關(guān)聯(lián)的分區(qū)標(biāo)識(shí)符與位于處理器寄存器中的前一分區(qū)標(biāo)識(shí)符相比較。如果與該高速緩存條目相關(guān)聯(lián)的分區(qū)標(biāo)識(shí)符與位于處理器寄存器中的前一分區(qū)標(biāo)識(shí)符相匹配,則對(duì)該高速緩存條目進(jìn)行標(biāo)記以形成有標(biāo)記的高速緩存條目,其中該有標(biāo)記的高速緩存條目以相對(duì)于無(wú)標(biāo)記的高速緩存條目較慢的速率老化。文檔編號(hào)G06F12/08GK1912853SQ200610115470公開(kāi)日2007年2月14日申請(qǐng)日期2006年8月10日優(yōu)先權(quán)日2005年8月11日發(fā)明者安德魯·鄧希,米索里·塞斯亞納蘭亞納·斯里尼瓦斯,格雷·R·梅惠恩奈伊,喬斯·曼紐爾·阿克卡帕迪申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1