專利名稱:根據(jù)優(yōu)先級(jí)來(lái)處理高速緩存分配請(qǐng)求的方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及處理器系統(tǒng)內(nèi)的存儲(chǔ)器,更具體地說(shuō),涉及根據(jù)優(yōu)先級(jí)來(lái)處理高速緩存分配請(qǐng)求的方法和裝置。
背景技術(shù):
通常,高速緩存是一種存儲(chǔ)器,與主存儲(chǔ)器芯片上的隨機(jī)存取存儲(chǔ)器(RAM)相比,處理器可以更迅速地訪問(wèn)該存儲(chǔ)器??梢愿鶕?jù)存儲(chǔ)器與該處理器的接近度和可達(dá)到程度來(lái)識(shí)別高速緩存。例如,一級(jí)統(tǒng)一標(biāo)準(zhǔn)(L1)高速緩存可能在與該處理器相同的芯片上。例如,當(dāng)該處理器執(zhí)行指令時(shí),該處理器首先觀察其芯片上的高速緩存,來(lái)發(fā)現(xiàn)與那個(gè)指令關(guān)聯(lián)的數(shù)據(jù),以避免更加耗時(shí)地在別處(例如,離開(kāi)芯片或在主存儲(chǔ)器芯片上的RAM上)搜索該數(shù)據(jù)。
當(dāng)前的處理器系統(tǒng)中所執(zhí)行的高速緩存通常不知道如何將高速緩存行分配給多個(gè)引入的應(yīng)用流。例如,當(dāng)處理器發(fā)出關(guān)于高速緩存內(nèi)的數(shù)據(jù)塊的裝載/存儲(chǔ)請(qǐng)求時(shí),該處理器只核對(duì)該高速緩存內(nèi)的那個(gè)數(shù)據(jù)塊。也就是說(shuō),如果該數(shù)據(jù)塊不在該高速緩存內(nèi),則該高速緩存控制器向該主存儲(chǔ)器發(fā)出請(qǐng)求。一從該主存儲(chǔ)器接收到響應(yīng),該高速緩存控制器就將該數(shù)據(jù)塊分配到該高速緩存中。
在使用多線程核心、多核心處理器、多任務(wù)核心和/或虛擬化(virtualized)核心的處理器系統(tǒng)中,多個(gè)引入的應(yīng)用流可能會(huì)相互干擾,結(jié)果,可能會(huì)導(dǎo)致共享高速緩存的無(wú)效操作率。與多個(gè)引入的應(yīng)用流共享具有相等優(yōu)先級(jí)的高速緩存空間經(jīng)常導(dǎo)致高速緩存資源到更重要的存儲(chǔ)密集應(yīng)用程序的亞最佳分配。
圖1是框圖,表現(xiàn)了一種范例高速緩存分配系統(tǒng)。
圖2是框圖,表現(xiàn)了與圖1所示的范例高速緩存分配系統(tǒng)關(guān)聯(lián)的范例高速緩存分配請(qǐng)求。
圖3是框圖,表現(xiàn)了與圖1所示的范例高速緩存分配系統(tǒng)關(guān)聯(lián)的范例優(yōu)先級(jí)表格。
圖4是框圖,表現(xiàn)了與圖1所示的范例高速緩存分配系統(tǒng)關(guān)聯(lián)的另一個(gè)范例優(yōu)先級(jí)表格。
圖5是流程圖,表現(xiàn)了圖1中的該系統(tǒng)可以處理高速緩存分配請(qǐng)求的一種方式。
圖6是框圖,表現(xiàn)了可以被用來(lái)執(zhí)行圖1所示的該系統(tǒng)的范例處理器系統(tǒng)。
具體實(shí)施例方式
雖然下文揭示了包括(在其他部件之中)在硬件上執(zhí)行的軟件或固件的范例系統(tǒng),但是,應(yīng)該注意,這類系統(tǒng)只是起說(shuō)明的作用,而不應(yīng)該被認(rèn)為起限制的作用。例如,預(yù)期任何或所有這些所揭示的硬件、軟件和/或固件部件都可以專門在硬件中、專門在軟件中、專門在固件中或者在硬件、軟件和/或固件的某種組合中加以具體表現(xiàn)。
在圖1和圖2的例子中,所展示的高速緩存分配系統(tǒng)100包括優(yōu)先級(jí)賦值單元110、高速緩存控制器120和高速緩存130。一般而言,優(yōu)先級(jí)賦值單元110將優(yōu)先級(jí)分配給來(lái)自多個(gè)引入的應(yīng)用流的高速緩存分配請(qǐng)求210(通常被示作212、214、216和218)中的每個(gè)高速緩存分配請(qǐng)求。例如,優(yōu)先級(jí)賦值單元110可以分配P1、P2、P3或P4的優(yōu)先級(jí)——P1作為最高優(yōu)先級(jí),P4作為最低優(yōu)先級(jí)。根據(jù)該優(yōu)先級(jí),高速緩存控制器120提供分配選擇220,以提高高速緩存效率和性能,來(lái)適應(yīng)關(guān)于高速緩存130內(nèi)的高速緩存線230的高速緩存分配請(qǐng)求210。例如,高速緩存130可能是一級(jí)統(tǒng)一標(biāo)準(zhǔn)高速緩存(L1)、二級(jí)統(tǒng)一標(biāo)準(zhǔn)高速緩存(L2)、三級(jí)統(tǒng)一標(biāo)準(zhǔn)高速緩存(L3)和/或用于存儲(chǔ)數(shù)據(jù)的任何其他合適的結(jié)構(gòu),這是掌握該技術(shù)領(lǐng)域的普通技能的人將會(huì)容易認(rèn)識(shí)到的。
如上所述,優(yōu)先級(jí)賦值單元110將優(yōu)先級(jí)分配給高速緩存控制器120所接收的引入的應(yīng)用流的高速緩存分配請(qǐng)求210中的每個(gè)高速緩存分配請(qǐng)求??梢允褂貌僮飨到y(tǒng)(OS)來(lái)執(zhí)行優(yōu)先級(jí)賦值單元110。例如,該OS可以根據(jù)用戶定義的參數(shù),來(lái)將優(yōu)先級(jí)分配給在處理器(例如,圖6中的處理器1020)中運(yùn)行的應(yīng)用線程。當(dāng)該應(yīng)用線程發(fā)出存儲(chǔ)器請(qǐng)求或一系列存儲(chǔ)器請(qǐng)求時(shí),該OS將優(yōu)先級(jí)分配給那個(gè)應(yīng)用線程。在另一個(gè)例子中,優(yōu)先級(jí)賦值單元110可能是將優(yōu)先級(jí)分配給該應(yīng)用線程或該應(yīng)用線程提出的每個(gè)存儲(chǔ)器請(qǐng)求的編譯器。作為選擇,優(yōu)先級(jí)賦值單元110可能是硬件(例如,特定用途集成電路(ASIC)),以便將優(yōu)先級(jí)分配給高速緩存分配請(qǐng)求210中的每個(gè)高速緩存分配請(qǐng)求。
不管執(zhí)行優(yōu)先級(jí)賦值單元110的特殊方式如何,優(yōu)先級(jí)賦值單元110都根據(jù)高速緩存分配請(qǐng)求210的性質(zhì)來(lái)分配該優(yōu)先級(jí)。例如,與數(shù)據(jù)相比,優(yōu)先級(jí)賦值單元110可能將更高優(yōu)先級(jí)分配給指令;與數(shù)據(jù)存儲(chǔ)相比,它可能將更高優(yōu)先級(jí)分配給數(shù)據(jù)負(fù)載;并且/或者,與預(yù)取和推測(cè)的存儲(chǔ)器引導(dǎo)相比,它可能將更高優(yōu)先級(jí)分配給命令請(qǐng)求。優(yōu)先級(jí)賦值單元110也可能根據(jù)特定線程的該高速緩存錯(cuò)過(guò)率來(lái)分配該優(yōu)先級(jí)。換言之,優(yōu)先級(jí)賦值單元110可能維持計(jì)數(shù)器,以跟蹤高速緩存分配請(qǐng)求210的數(shù)量和關(guān)于每個(gè)高速緩存的該錯(cuò)過(guò)率。根據(jù)這些計(jì)數(shù)器值,優(yōu)先級(jí)賦值單元110可以將更高優(yōu)先級(jí)分配給具有更高高速緩存分配請(qǐng)求比率、更高高速緩存錯(cuò)過(guò)率和/或更高命中率的線程。另外,優(yōu)先級(jí)賦值單元110可以根據(jù)這些引入的應(yīng)用流的起源(即這些引入的應(yīng)用線程的來(lái)源的類型)來(lái)分配該優(yōu)先級(jí)。例如,如果高速緩存130是中央處理器(CPU),那么,與其他設(shè)備(例如,存儲(chǔ)控制器和/或正嘗試將數(shù)據(jù)發(fā)(即推)入高速緩存130的網(wǎng)絡(luò)設(shè)備)相比,優(yōu)先級(jí)賦值單元110可以將更高優(yōu)先級(jí)分配給CPU啟動(dòng)的高速緩存分配請(qǐng)求。
在圖3的范例優(yōu)先級(jí)表格300中,優(yōu)先級(jí)賦值單元110根據(jù)這些引入的應(yīng)用流,將優(yōu)先級(jí)分配給高速緩存分配請(qǐng)求210中的每個(gè)高速緩存分配請(qǐng)求。也就是說(shuō),優(yōu)先級(jí)賦值單元110可以將P1的優(yōu)先級(jí)(即最高優(yōu)先級(jí))分配給與主要主機(jī)應(yīng)用程序(例如,前端web服務(wù))關(guān)聯(lián)的引入的應(yīng)用流,將P2的優(yōu)先級(jí)分配給與次要主機(jī)應(yīng)用程序(例如,中級(jí)工作負(fù)荷)關(guān)聯(lián)的引入的應(yīng)用流,將P3的優(yōu)先級(jí)分配給與外圍應(yīng)用程序(例如,輸入/輸出驅(qū)動(dòng)程序和/或OS線程)關(guān)聯(lián)的引入的應(yīng)用流,并將P4的優(yōu)先級(jí)(即最低優(yōu)先級(jí))分配給與其他應(yīng)用程序(例如,文字處理應(yīng)用程序)關(guān)聯(lián)的引入的應(yīng)用流。
高速緩存控制器120將分配概率(AP)分配給每個(gè)優(yōu)先級(jí)。例如,在優(yōu)先級(jí)表格300中,優(yōu)先級(jí)P1(即最高優(yōu)先級(jí))可以被分配100%的AP,優(yōu)先級(jí)P2可以被分配75%的AP,優(yōu)先級(jí)P3可以被分配50%的AP,優(yōu)先級(jí)P4(即最低優(yōu)先級(jí))可以被分配25%的AP。關(guān)于每個(gè)線程請(qǐng)求分配,高速緩存控制器120生成零(0)與一百(100)之間的隨機(jī)數(shù),并且將該隨機(jī)數(shù)與為高速緩存分配請(qǐng)求210中的每個(gè)高速緩存分配請(qǐng)求而分配的該AP進(jìn)行比較。如果該AP大于該隨機(jī)數(shù),那么,高速緩存控制器120允許將高速緩存130內(nèi)的那些高速緩存線分配給該請(qǐng)求線程。另一方面,如果該AP小于或等于該隨機(jī)數(shù),則高速緩存控制器120拒絕將高速緩存130內(nèi)的高速緩存線分配給該請(qǐng)求線程。
關(guān)于在不同的執(zhí)行階段具有不同特征的應(yīng)用程序,優(yōu)先級(jí)賦值單元110可以動(dòng)態(tài)地改變?yōu)楦咚倬彺娣峙湔?qǐng)求210而分配的這些優(yōu)先級(jí)。在建立優(yōu)先級(jí)集合(例如,如圖3所示)并且為高速緩存分配請(qǐng)求210分配優(yōu)先級(jí)之后,將高速緩存分配請(qǐng)求210和對(duì)應(yīng)的優(yōu)先級(jí)提供給高速緩存控制器120,用于處理。例如,通過(guò)要么直接將該優(yōu)先級(jí)編碼為該高速緩存分配請(qǐng)求、要么將流標(biāo)識(shí)符用作進(jìn)入優(yōu)先級(jí)表格300的索引(優(yōu)先級(jí)表格300又維持這些優(yōu)先級(jí)到流類型的映射),可以提供高速緩存分配請(qǐng)求的該優(yōu)先級(jí)。為了在運(yùn)行時(shí)間期間動(dòng)態(tài)地修改這些優(yōu)先級(jí),高速緩存控制器120可以更改該線程中的該優(yōu)先值或者運(yùn)行指令,以更新優(yōu)先級(jí)表格300。
特別是,高速緩存控制器120可以根據(jù)時(shí)間間隔來(lái)將AP分配給高速緩存分配請(qǐng)求210中的每個(gè)高速緩存分配請(qǐng)求。在圖4的范例優(yōu)先級(jí)表格400中,高速緩存控制器120根據(jù)時(shí)間間隔來(lái)分配AP。例如,高速緩存控制器120可以將一系列時(shí)間間隔(T1、T2、T3和T4)分配給高速緩存分配請(qǐng)求210中的每個(gè)高速緩存分配請(qǐng)求。例如,時(shí)間間隔T1、T2、T3和T4中的每個(gè)時(shí)間間隔可能是一毫秒(1ms)。最初,高速緩存控制器120將這個(gè)引入的應(yīng)用流放入時(shí)間間隔T1,并在經(jīng)過(guò)時(shí)間T1之后進(jìn)入時(shí)間間隔T2,并且循環(huán)通過(guò)這些時(shí)間間隔中的每個(gè)時(shí)間間隔,以便通過(guò)使用優(yōu)先級(jí)表格400,在完成時(shí)間間隔T4之后,這個(gè)引入的應(yīng)用流可返回到時(shí)間間隔T1。這樣,這個(gè)引入的應(yīng)用流的該AP基于該優(yōu)先級(jí)和該當(dāng)前時(shí)間間隔。明確地說(shuō),該AP可能是該優(yōu)先級(jí)(P)和該當(dāng)前時(shí)間間隔(T)的函數(shù),以便AP=(1/P)×(1/T)×100。
如上所述,高速緩存130可以由多個(gè)引入的應(yīng)用流共享。掌握該技術(shù)領(lǐng)域的普通技能的人將會(huì)容易認(rèn)識(shí)到高速緩存130包括高速緩存線230(即數(shù)據(jù))和標(biāo)記(即狀態(tài)信息和/或替換信息)。高速緩存130的該存儲(chǔ)空間可以被劃分,以便為每個(gè)分區(qū)分配特定的優(yōu)先級(jí)。然后,當(dāng)向特定的存儲(chǔ)地址提出高速緩存分配請(qǐng)求時(shí),優(yōu)先級(jí)賦值單元110通過(guò)將該地址位置與存儲(chǔ)范圍查找表格進(jìn)行比較以便識(shí)別與那個(gè)特定的存儲(chǔ)地址相對(duì)應(yīng)的優(yōu)先級(jí),來(lái)將該優(yōu)先級(jí)分配給那個(gè)高速緩存分配請(qǐng)求。
圖3和圖4所示的優(yōu)先級(jí)表格300和400的這些流類型、優(yōu)先級(jí)、時(shí)間間隔和AP分別特別適合四個(gè)等級(jí)中的執(zhí)行,但掌握該技術(shù)領(lǐng)域的普通技能的人將會(huì)容易理解可以使用任何數(shù)量的等級(jí)(例如,兩個(gè)或更多)來(lái)對(duì)這些流類型、優(yōu)先級(jí)、時(shí)間間隔和AP進(jìn)行分類。
回頭參考圖1和圖2,可以使用高速緩存占有率圖140來(lái)提供選擇性分配220,以進(jìn)一步增強(qiáng)高速緩存控制器120。高速緩存占有率圖140包括與高速緩存130內(nèi)的空間利用關(guān)聯(lián)的信息,該信息可以被高速緩存控制器120用來(lái)確定高速緩存130的利用。特別是,高速緩存占有率圖140可能包括一個(gè)或多個(gè)計(jì)數(shù)器,以了解每個(gè)優(yōu)先級(jí)在高速緩存130內(nèi)所占有的高速緩存線的數(shù)量。例如,高速緩存130可能包括被相等地分派給優(yōu)先級(jí)P1、P2、P3和P4中的每個(gè)優(yōu)先級(jí)的一百條高速緩存線230(即,25條高速緩存線/優(yōu)先級(jí))。如果高速緩存占有率圖140指出10條高速緩存線被優(yōu)先級(jí)P1的數(shù)據(jù)塊占有,25條高速緩存線被優(yōu)先級(jí)P2的數(shù)據(jù)塊占有,但優(yōu)先級(jí)P2的數(shù)據(jù)塊可能需要35條高速緩存線;那么,高速緩存控制器120可能會(huì)再分派這些高速緩存線230,以適應(yīng)優(yōu)先級(jí)P2的這些數(shù)據(jù)塊。也就是說(shuō),高速緩存控制器120可能會(huì)為優(yōu)先級(jí)P1的數(shù)據(jù)塊分派10條高速緩存線,為優(yōu)先級(jí)P2的數(shù)據(jù)塊分派35條高速緩存線。作為選擇,高速緩存占有率圖140可能是包括以每一集合為基礎(chǔ)的計(jì)數(shù)器的表格。當(dāng)通過(guò)高速緩存分配請(qǐng)求210而將線加入高速緩存130時(shí),這些計(jì)數(shù)器遞增;當(dāng)驅(qū)逐或無(wú)效導(dǎo)致線從高速緩存130中被除去時(shí),這些計(jì)數(shù)器遞減。
圖5展示了流程圖500,它表現(xiàn)了圖1中的高速緩存分配系統(tǒng)100可以處理高速緩存分配請(qǐng)求的一種方式。掌握該技術(shù)領(lǐng)域的普通技能的人將會(huì)理解可以使用由處理系統(tǒng)執(zhí)行的機(jī)器可訪問(wèn)的指令,來(lái)執(zhí)行圖5中的流程圖500。特別是,可以按利用被存儲(chǔ)在任何許多計(jì)算機(jī)可讀介質(zhì)(例如,易失或非易失存儲(chǔ)器或其他海量存儲(chǔ)設(shè)備(例如,軟盤、CD和DVD))上的任何許多不同的程序碼的任何許多不同的方法來(lái)執(zhí)行這些指令。例如,這些機(jī)器可訪問(wèn)的指令可以在機(jī)器可讀介質(zhì)(例如,可擦可編程只讀存儲(chǔ)器(EPROM)、只讀存儲(chǔ)器(ROM)、隨機(jī)存取存儲(chǔ)器(RAM)、磁性介質(zhì)、光學(xué)介質(zhì)和/或任何其他合適類型的介質(zhì))中得到具體表現(xiàn)。
作為選擇,這些機(jī)器可訪問(wèn)的指令可以在可編程門陣列和/或特定用途集成電路(ASIC)中得到具體表現(xiàn)。另外,雖然圖5展示了動(dòng)作的特定順序,但是,掌握該技術(shù)領(lǐng)域的普通技能的人將會(huì)理解可以按其他的時(shí)間次序來(lái)執(zhí)行這些動(dòng)作。再有,流程圖500只是作為處理高速緩存分配請(qǐng)求的一種方法的例子。
流程圖500始于優(yōu)先級(jí)賦值單元110將優(yōu)先級(jí)分配給來(lái)自多個(gè)引入的應(yīng)用流的高速緩存分配請(qǐng)求210中的每個(gè)高速緩存分配請(qǐng)求(方框510)。例如,優(yōu)先級(jí)賦值單元可以根據(jù)這個(gè)引入的應(yīng)用流的流類型、這個(gè)引入的應(yīng)用流的源類型和/或如以上詳細(xì)描述的任何其他合適的方法,來(lái)將優(yōu)先級(jí)分配給該高速緩存分配請(qǐng)求。例如,根據(jù)優(yōu)先級(jí)表格300,高速緩存控制器120識(shí)別與高速緩存分配請(qǐng)求210中的每個(gè)高速緩存分配請(qǐng)求的優(yōu)先級(jí)相對(duì)應(yīng)的AP(方框520)。通過(guò)使用優(yōu)先級(jí)表格300和/或優(yōu)先級(jí)表格400,高速緩存控制器120也可以識(shí)別與高速緩存分配請(qǐng)求210中的每個(gè)高速緩存分配請(qǐng)求的優(yōu)先級(jí)和當(dāng)前時(shí)間間隔相對(duì)應(yīng)的AP。為了確定應(yīng)該允許、還是拒絕高速緩存分配請(qǐng)求210,高速緩存控制器120使用基于該AP的分配條件或分流條件來(lái)識(shí)別高速緩存分配請(qǐng)求210中的每個(gè)高速緩存分配請(qǐng)求。例如,高速緩存控制器120可以生成隨機(jī)數(shù)(方框530),并將該AP與該隨機(jī)數(shù)進(jìn)行比較(方框540)。作為選擇,高速緩存控制器120可以將該AP與預(yù)定數(shù)進(jìn)行比較。如果該AP大于該隨機(jī)數(shù)(或該預(yù)定數(shù)),則高速緩存控制器120利用分配條件來(lái)識(shí)別高速緩存分配請(qǐng)求210之一,并將高速緩存130的一個(gè)部分(例如,一個(gè)或多個(gè)高速緩存線230)分配給高速緩存分配請(qǐng)求210(方框550)。對(duì)比而言,如果該AP小于或等于該隨機(jī)數(shù)(或該預(yù)定數(shù)),則高速緩存控制器120利用分流條件來(lái)識(shí)別高速緩存分配請(qǐng)求210之一,并拒絕該高速緩存分配請(qǐng)求(方框560)。結(jié)果,當(dāng)多個(gè)應(yīng)用程序正共享高速緩存130時(shí),可提高高速緩存效率和性能。
圖6是適合執(zhí)行這里所揭示的方法和裝置的范例處理器系統(tǒng)1000的框圖。處理器系統(tǒng)1000可能是臺(tái)式計(jì)算機(jī)、膝上型計(jì)算機(jī)、筆記本計(jì)算機(jī)、個(gè)人數(shù)字助理(PDA)、服務(wù)器、因特網(wǎng)工具或任何其他類型的計(jì)算設(shè)備。
圖6所展示的處理器系統(tǒng)1000包括芯片集1010,芯片集1010包括存儲(chǔ)控制器1012和輸入/輸出(I/O)控制器1014。眾所周知,芯片集通常提供存儲(chǔ)器和I/O管理功能、以及處理器1020可獲得或使用的多個(gè)通用和/或?qū)S玫募拇嫫鳌⒍〞r(shí)器等。使用一個(gè)或多個(gè)處理器來(lái)執(zhí)行處理器1020。例如,可以使用英特爾奔騰技術(shù)、英特爾Itanium技術(shù)、英特爾CentrinoTM技術(shù)和/或英特爾XScale技術(shù)中的一項(xiàng)或多項(xiàng)技術(shù)來(lái)執(zhí)行處理器1020。作為選擇,也可以使用其他處理技術(shù)來(lái)執(zhí)行處理器1020。處理器1020包括高速緩存1022,可以使用一級(jí)統(tǒng)一標(biāo)準(zhǔn)高速緩存(L1)、二級(jí)統(tǒng)一標(biāo)準(zhǔn)高速緩存(L2)、三級(jí)統(tǒng)一標(biāo)準(zhǔn)高速緩存(L3)和/或用于存儲(chǔ)數(shù)據(jù)的任何其他合適的結(jié)構(gòu)來(lái)執(zhí)行高速緩存1022,掌握該技術(shù)領(lǐng)域的普通技能的人將會(huì)容易認(rèn)識(shí)到這一點(diǎn)。
按照慣例,存儲(chǔ)控制器1012執(zhí)行允許處理器1020訪問(wèn)包括易失存儲(chǔ)器1032和非易失存儲(chǔ)器1034的主存儲(chǔ)器1030并經(jīng)由總線1040與其進(jìn)行通信的功能。易失存儲(chǔ)器1032可能由“同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器”(SDRAM)、“動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器”(DRAM)、“RAMBUS動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器”(RDRAM)和/或任何其他類型的隨機(jī)存取存儲(chǔ)設(shè)備來(lái)加以執(zhí)行??梢允褂每扉W存儲(chǔ)器、“只讀存儲(chǔ)器”(ROM)、“電可擦除可編程只讀存儲(chǔ)器”(EEPROM)和/或任何其他所需類型的存儲(chǔ)設(shè)備來(lái)執(zhí)行非易失存儲(chǔ)器1034。
處理器系統(tǒng)1000也包括被耦合到總線1040的接口電路1050??梢允褂萌魏晤愋偷谋娝苤慕涌跇?biāo)準(zhǔn)(例如,以太網(wǎng)接口、通用串行總線(USB)、第三代輸入/輸出接口(3GIO)接口和/或任何其他合適類型的接口)來(lái)執(zhí)行接口電路1050。
一個(gè)或多個(gè)輸入設(shè)備1060與接口電路1050連接。輸入設(shè)備1060允許用戶將數(shù)據(jù)和命令輸入處理器1020。例如,輸入設(shè)備1060可以由鍵盤、鼠標(biāo)、觸控式顯示器、跟蹤墊、跟蹤球、isopoint和/或語(yǔ)音識(shí)別系統(tǒng)來(lái)加以執(zhí)行。
一個(gè)或多個(gè)輸出設(shè)備1070也與接口電路1050連接。例如,輸出設(shè)備1070可以由顯示設(shè)備(例如,發(fā)光顯示器(LED)、液晶顯示器(LCD)、陰極射線管(CRT)顯示器、打印機(jī)和/或揚(yáng)聲器)來(lái)加以執(zhí)行。這樣,接口電路1050通常包括(在其他事物之中)圖形驅(qū)動(dòng)卡。
處理器系統(tǒng)1000也包括用于存儲(chǔ)軟件和數(shù)據(jù)的一個(gè)或多個(gè)海量存儲(chǔ)設(shè)備1080。這種海量存儲(chǔ)設(shè)備1080的例子包括軟盤和驅(qū)動(dòng)器、硬盤驅(qū)動(dòng)器、光盤和驅(qū)動(dòng)器、以及數(shù)字通用光盤(DVD)和驅(qū)動(dòng)器。
接口電路1050也包括通信設(shè)備(例如,調(diào)制解調(diào)器或網(wǎng)絡(luò)接口卡),以促進(jìn)經(jīng)由網(wǎng)絡(luò)而與外部計(jì)算機(jī)交換數(shù)據(jù)。處理器系統(tǒng)1000與該網(wǎng)絡(luò)之間的該通信鏈路可能是任何類型的網(wǎng)絡(luò)連接(例如,以太網(wǎng)連接、數(shù)字訂戶線(DSL)、電話路線、移動(dòng)電話系統(tǒng)、同軸電纜等)。
對(duì)輸入設(shè)備1060、輸出設(shè)備1070、海量存儲(chǔ)設(shè)備1080和/或該網(wǎng)絡(luò)的使用通常由I/O控制器1014按傳統(tǒng)方式來(lái)加以控制。特別是,I/O控制器1014執(zhí)行允許處理器1020經(jīng)由總線1040和接口電路1050而與輸入設(shè)備1060、輸出設(shè)備1070、海量存儲(chǔ)設(shè)備1080和/或該網(wǎng)絡(luò)進(jìn)行通信的功能。
圖6所示的這些部件被描繪成處理器系統(tǒng)1000內(nèi)的單獨(dú)的塊,但這些塊中的一些塊所執(zhí)行的這些功能可以被并入單一半導(dǎo)體電路內(nèi),或者可以使用兩個(gè)或更多單獨(dú)的集成電路來(lái)加以執(zhí)行。例如,雖然存儲(chǔ)控制器1012和I/O控制器1014被描繪成芯片集1010內(nèi)的單獨(dú)的塊,但是,掌握該技術(shù)領(lǐng)域的普通技能的人將會(huì)容易理解存儲(chǔ)控制器1012和I/O控制器1014可以被并入單一半導(dǎo)體電路內(nèi)。
這里所揭示的方法和裝置特別適用于處理器高速緩存中。但是,掌握該技術(shù)領(lǐng)域的普通技能的人將會(huì)理解該揭示說(shuō)明的教導(dǎo)可以在其他合適的環(huán)境中被應(yīng)用于處理高速緩存分配請(qǐng)求。
雖然這里已描述某些范例方法、裝置和制造物品,但是,本專利的覆蓋范圍并不局限于此。相反,本專利包括要么在字面上、要么在相等物的教旨下完全處于所附權(quán)利要求書的范圍以內(nèi)的所有方法、裝置和制造物品。
權(quán)利要求
1.一種方法,其特征在于,包括將優(yōu)先級(jí)分配給高速緩存分配請(qǐng)求;根據(jù)該優(yōu)先級(jí)來(lái)識(shí)別與該高速緩存分配請(qǐng)求關(guān)聯(lián)的分配概率;以及,利用基于該分配概率的分配條件和分流條件之一來(lái)識(shí)別該高速緩存分配請(qǐng)求。
2.如權(quán)利要求1所述的方法,其特征在于,將該優(yōu)先級(jí)分配給該高速緩存分配請(qǐng)求包括根據(jù)流類型、源類型和高速緩存占有率圖中的至少一項(xiàng),來(lái)將該優(yōu)先級(jí)分配給該高速緩存分配請(qǐng)求。
3.如權(quán)利要求1所述的方法,其特征在于,將優(yōu)先級(jí)分配給該高速緩存分配請(qǐng)求包括將優(yōu)先級(jí)分配給與主要主機(jī)應(yīng)用程序關(guān)聯(lián)的高速緩存分配請(qǐng)求、與次要主機(jī)應(yīng)用程序關(guān)聯(lián)的高速緩存分配請(qǐng)求、以及與外圍應(yīng)用程序關(guān)聯(lián)的高速緩存分配請(qǐng)求中的至少一個(gè)請(qǐng)求。
4.如權(quán)利要求1所述的方法,其特征在于,利用基于該分配概率的分配條件和分流條件之一來(lái)識(shí)別該高速緩存分配請(qǐng)求包括將該分配概率與任意生成的數(shù)字和預(yù)定數(shù)中的至少一個(gè)數(shù)字進(jìn)行比較。
5.如權(quán)利要求1所述的方法,其特征在于,利用基于該分配概率的分配條件和分流條件之一來(lái)識(shí)別該高速緩存分配請(qǐng)求包括響應(yīng)于大于或等于任意生成的數(shù)字和預(yù)定數(shù)中的至少一個(gè)數(shù)字的該分配概率,利用該分配條件來(lái)識(shí)別該高速緩存分配請(qǐng)求。
6.如權(quán)利要求1所述的方法,其特征在于,利用基于該分配概率的分配條件和分流條件之一來(lái)識(shí)別該高速緩存分配請(qǐng)求包括響應(yīng)于小于任意生成的數(shù)字和預(yù)定數(shù)中的至少一個(gè)數(shù)字的該分配概率,利用該分流條件來(lái)識(shí)別該高速緩存分配請(qǐng)求。
7.如權(quán)利要求1所述的方法,其特征在于,進(jìn)一步包括響應(yīng)于利用該分配條件而識(shí)別該高速緩存分配請(qǐng)求,來(lái)將高速緩存的一個(gè)部分分配給該高速緩存分配請(qǐng)求;并且,響應(yīng)于利用該分流條件而識(shí)別該高速緩存分配請(qǐng)求,來(lái)拒絕該高速緩存分配請(qǐng)求。
8.一種存儲(chǔ)指令的機(jī)器可訪問(wèn)的介質(zhì),其特征在于當(dāng)被執(zhí)行時(shí),這些指令使處理系統(tǒng)將優(yōu)先級(jí)分配給高速緩存分配請(qǐng)求;根據(jù)該優(yōu)先級(jí)來(lái)識(shí)別與該高速緩存分配請(qǐng)求關(guān)聯(lián)的分配概率;以及,利用基于該分配概率的分配條件和分流條件之一來(lái)識(shí)別該高速緩存分配請(qǐng)求。
9.如權(quán)利要求8中所定義的機(jī)器可訪問(wèn)的介質(zhì),其特征在于,通過(guò)根據(jù)流類型、源類型和高速緩存占有率圖中的至少一項(xiàng)而將優(yōu)先級(jí)分配給該高速緩存分配請(qǐng)求,當(dāng)被執(zhí)行時(shí),這些指令使該機(jī)器將該優(yōu)先級(jí)分配給該高速緩存分配請(qǐng)求。
10.如權(quán)利要求8中所定義的機(jī)器可訪問(wèn)的介質(zhì),其特征在于,通過(guò)將優(yōu)先級(jí)分配給與主要主機(jī)應(yīng)用程序關(guān)聯(lián)的高速緩存分配請(qǐng)求、與次要主機(jī)應(yīng)用程序關(guān)聯(lián)的高速緩存分配請(qǐng)求、以及與外圍應(yīng)用程序關(guān)聯(lián)的高速緩存分配請(qǐng)求中的至少一個(gè)請(qǐng)求,當(dāng)被執(zhí)行時(shí),這些指令使該機(jī)器將該優(yōu)先級(jí)分配給該高速緩存分配請(qǐng)求。
11.如權(quán)利要求8中所定義的機(jī)器可訪問(wèn)的介質(zhì),其特征在于,通過(guò)將該分配概率與任意生成的數(shù)字和預(yù)定數(shù)中的至少一個(gè)數(shù)字進(jìn)行比較,當(dāng)被執(zhí)行時(shí),這些指令使該機(jī)器利用該分配條件和該分流條件之一來(lái)識(shí)別該高速緩存分配請(qǐng)求。
12.如權(quán)利要求8中所定義的機(jī)器可訪問(wèn)的介質(zhì),其特征在于,通過(guò)響應(yīng)于大于或等于任意生成的數(shù)字和預(yù)定數(shù)中的至少一個(gè)數(shù)字而利用該分配條件來(lái)識(shí)別該高速緩存分配請(qǐng)求,當(dāng)被執(zhí)行時(shí),這些指令使該機(jī)器利用基于該分配概率的該分配條件和該分流條件之一來(lái)識(shí)別該高速緩存分配請(qǐng)求。
13.如權(quán)利要求8中所定義的機(jī)器可訪問(wèn)的介質(zhì),其特征在于,通過(guò)響應(yīng)于小于任意生成的數(shù)字和預(yù)定數(shù)中的至少一個(gè)數(shù)字的該分配概率而利用該分流條件來(lái)識(shí)別該高速緩存分配請(qǐng)求,當(dāng)被執(zhí)行時(shí),這些指令使該機(jī)器利用基于該分配概率的該分配條件和該分流條件之一來(lái)識(shí)別該高速緩存分配請(qǐng)求。
14.如權(quán)利要求8中所定義的機(jī)器可訪問(wèn)的介質(zhì),其特征在于,當(dāng)被執(zhí)行時(shí),這些指令使該機(jī)器響應(yīng)于利用該分配條件來(lái)識(shí)別該高速緩存分配請(qǐng)求,而將高速緩存的一個(gè)部分分配給該高速緩存分配請(qǐng)求;并使該機(jī)器響應(yīng)于利用該分流條件來(lái)識(shí)別該高速緩存分配請(qǐng)求,而拒絕該高速緩存分配請(qǐng)求。
15.如權(quán)利要求8中所定義的機(jī)器可訪問(wèn)的介質(zhì),其特征在于,該機(jī)器可讀介質(zhì)包括可編程門陣列、特定用途集成電路、電可擦除可編程只讀存儲(chǔ)器、只讀存儲(chǔ)器、隨機(jī)存取存儲(chǔ)器、磁性介質(zhì)和光學(xué)介質(zhì)之一。
16.一種裝置,其特征在于,包括高速緩存,用于存儲(chǔ)高速緩存分配請(qǐng)求的一個(gè)或多個(gè)數(shù)據(jù)塊;優(yōu)先級(jí)賦值單元,用于將優(yōu)先級(jí)分配給高速緩存分配請(qǐng)求;以及,高速緩存控制器,用于根據(jù)該優(yōu)先級(jí)來(lái)識(shí)別與該高速緩存分配請(qǐng)求關(guān)聯(lián)的分配概率,并用于利用基于該分配概率的分配條件和分流條件之一來(lái)識(shí)別該高速緩存分配請(qǐng)求。
17.如權(quán)利要求16中所定義的裝置,其特征在于,該高速緩存分配請(qǐng)求包括與主要主機(jī)應(yīng)用程序關(guān)聯(lián)的高速緩存分配請(qǐng)求、與次要主機(jī)應(yīng)用程序關(guān)聯(lián)的高速緩存分配請(qǐng)求、以及與外圍應(yīng)用程序關(guān)聯(lián)的高速緩存分配請(qǐng)求中的至少一個(gè)請(qǐng)求。
18.如權(quán)利要求16中所定義的裝置,其特征在于,該優(yōu)先級(jí)賦值單元包括操作系統(tǒng)、編譯器和特定用途集成電路中的至少一項(xiàng)。
19.如權(quán)利要求16中所定義的裝置,其特征在于,該高速緩存控制器將要根據(jù)流類型、源類型和高速緩存占有率圖中的至少一項(xiàng),來(lái)把該優(yōu)先級(jí)分配給該高速緩存分配請(qǐng)求。
20.如權(quán)利要求16中所定義的裝置,其特征在于,該高速緩存控制器將要將該分配概率與任意生成的數(shù)字和預(yù)定數(shù)中的至少一個(gè)數(shù)字進(jìn)行比較。
21.如權(quán)利要求16中所定義的裝置,其特征在于,該高速緩存控制器將要響應(yīng)于大于或等于任意生成的數(shù)字和預(yù)定數(shù)中的至少一個(gè)數(shù)字的該分配概率,利用該分配條件來(lái)識(shí)別該高速緩存分配請(qǐng)求。
22.如權(quán)利要求16中所定義的裝置,其特征在于,該高速緩存控制器將要響應(yīng)于小于任意生成的數(shù)字和預(yù)定數(shù)中的至少一個(gè)數(shù)字的該分配概率,利用該分流條件來(lái)識(shí)別該高速緩存分配請(qǐng)求。
23.如權(quán)利要求16中所定義的裝置,其特征在于,該高速緩存控制器將要響應(yīng)于利用該分配條件而識(shí)別該高速緩存分配請(qǐng)求,來(lái)把該高速緩存的一個(gè)部分分配給該高速緩存分配請(qǐng)求。
24.一種處理器系統(tǒng),其特征在于,包括靜態(tài)隨機(jī)存取存儲(chǔ)器(SRAM),用于存儲(chǔ)高速緩存分配請(qǐng)求的一個(gè)或多個(gè)數(shù)據(jù)塊;以及,被耦合到該SRAM的處理器,該處理器用于將優(yōu)先級(jí)分配給高速緩存分配請(qǐng)求;根據(jù)該優(yōu)先級(jí)來(lái)識(shí)別與該高速緩存分配請(qǐng)求關(guān)聯(lián)的分配概率;以及,利用基于該分配概率的分配條件和分流條件之一來(lái)識(shí)別該高速緩存分配請(qǐng)求。
25.如權(quán)利要求24中所定義的處理器系統(tǒng),其特征在于,該高速緩存分配請(qǐng)求包括與主要主機(jī)應(yīng)用程序關(guān)聯(lián)的高速緩存分配請(qǐng)求、與次要主機(jī)應(yīng)用程序關(guān)聯(lián)的高速緩存分配請(qǐng)求、以及與外圍應(yīng)用程序關(guān)聯(lián)的高速緩存分配請(qǐng)求中的至少一個(gè)請(qǐng)求。
26.如權(quán)利要求24中所定義的處理器系統(tǒng),其特征在于,該處理器將要根據(jù)流類型、源類型和高速緩存占有率圖中的至少一項(xiàng),來(lái)把該優(yōu)先級(jí)分配給該高速緩存分配請(qǐng)求。
27.如權(quán)利要求24中所定義的處理器系統(tǒng),其特征在于,該處理器將要將該分配概率與任意生成的數(shù)字和預(yù)定數(shù)中的至少一個(gè)數(shù)字進(jìn)行比較。
28.如權(quán)利要求24中所定義的處理器系統(tǒng),其特征在于,該處理器將要響應(yīng)于大于或等于任意生成的數(shù)字和預(yù)定數(shù)中的至少一個(gè)數(shù)字的該分配概率,利用該分配條件來(lái)識(shí)別該高速緩存分配請(qǐng)求。
29.如權(quán)利要求24中所定義的處理器系統(tǒng),其特征在于,該處理器將要響應(yīng)于小于任意生成的數(shù)字和預(yù)定數(shù)中的至少一個(gè)數(shù)字的該分配概率,利用該分流條件來(lái)識(shí)別該高速緩存分配請(qǐng)求。
30.如權(quán)利要求24中所定義的處理器系統(tǒng),其特征在于,該處理器將要響應(yīng)于利用該分配條件而識(shí)別該高速緩存分配請(qǐng)求,來(lái)把該SRAM的一個(gè)部分分配給該高速緩存分配請(qǐng)求。
全文摘要
揭示了用于處理高速緩存分配請(qǐng)求的方法和裝置。在范例方法中,將優(yōu)先級(jí)分配給高速緩存分配請(qǐng)求。根據(jù)該優(yōu)先級(jí),來(lái)識(shí)別與該高速緩存分配請(qǐng)求關(guān)聯(lián)的分配概率。根據(jù)該分配概率,利用分配條件或分流條件來(lái)識(shí)別該高速緩存分配請(qǐng)求。
文檔編號(hào)G06F12/08GK1645341SQ20041009564
公開(kāi)日2005年7月27日 申請(qǐng)日期2004年11月26日 優(yōu)先權(quán)日2003年11月26日
發(fā)明者R·艾爾 申請(qǐng)人:英特爾公司