專利名稱:具有省電指令高速緩存通路預(yù)測(cè)器和指令代替方案的微處理器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般地涉及微處理器,以及降低微處理器中的功耗。
背景技術(shù):
微處理器的指令提取單元負(fù)責(zé)向微處理器的執(zhí)行單元持續(xù)提供
下一個(gè)適當(dāng)?shù)闹噶?。傳統(tǒng)的指令提取單元典型地采用大指令高速緩
存,這種高速緩存能夠始終盡可能快地向執(zhí)行單元提供指令。盡管傳 統(tǒng)的提取單元能夠達(dá)到它們期望的目的,但它們消耗了巨大的微處理
器總功率。這樣就使得具有傳統(tǒng)提取單元的微處理器不期望和/或不實(shí) 用于許多應(yīng)用。
需要一種微處理器和指令提取單元,能夠在消耗功率小于傳統(tǒng)提 取單元的同時(shí)提供大指令高速緩存的性能優(yōu)勢(shì)。
發(fā)明內(nèi)容
本發(fā)明提供了 一種具有省電指令高速緩存通路預(yù)測(cè)器和指令代 替方案的微處理器。在一個(gè)實(shí)施例中,根據(jù)本發(fā)明的處理器內(nèi)核具有
提高了性能的多循環(huán)處理流水線。該處理器內(nèi)核包括多通路組相關(guān) 高速緩存、通路預(yù)測(cè)器和策略計(jì)數(shù)器。多通路組相關(guān)高速緩存可以是 例如2通路組相關(guān)高速緩存、4通路組相關(guān)高速緩存、8通路組相關(guān) 高速緩存等。策略計(jì)數(shù)器向通路預(yù)測(cè)器提供信號(hào),以確定通路預(yù)測(cè)器 是在第一省電模式還是在第二省電模式下運(yùn)行。
當(dāng)通路預(yù)測(cè)器在第 一省電模式下運(yùn)行時(shí),通路預(yù)測(cè)器在第 一個(gè)處 理周期期間使能所預(yù)測(cè)的具有要從高速緩存提取指令的數(shù)據(jù)內(nèi)存以 及與該數(shù)據(jù)內(nèi)存相關(guān)的標(biāo)記內(nèi)存。如果該指令存在于所預(yù)測(cè)數(shù)據(jù)內(nèi)存
中,則提取該指令,并且更新通路預(yù)測(cè)器和策略計(jì)數(shù)器,以反映出現(xiàn) 高速緩存命中。如果該指令不在所預(yù)測(cè)數(shù)據(jù)內(nèi)存中,則通路預(yù)測(cè)器禁 能數(shù)據(jù)內(nèi)存及其相關(guān)標(biāo)記內(nèi)存,并且在第二處理周期中使能所有剩余 數(shù)據(jù)內(nèi)存和它們相關(guān)標(biāo)記內(nèi)存。如果確定該指令在在第二處理周期期 間使能的一個(gè)數(shù)據(jù)內(nèi)存中,則提取該指令,并且更新通路預(yù)測(cè)器和策 略計(jì)數(shù)器,以表示出現(xiàn)高速緩存命中和存儲(chǔ)該指令的數(shù)據(jù)內(nèi)存(通 路)。如果該指令沒有在任一個(gè)數(shù)據(jù)內(nèi)存中,則通路預(yù)測(cè)器生成高速 緩存未中信號(hào),并且更新策略計(jì)數(shù)器,以表示出現(xiàn)高速緩存未中。
當(dāng)通路預(yù)測(cè)器在第二省電模式下運(yùn)行時(shí),通路預(yù)測(cè)器在第一處理 周期內(nèi)使能與高速緩存的數(shù)據(jù)內(nèi)存相關(guān)的所有標(biāo)記內(nèi)存。如果確定該 指令存在于一個(gè)數(shù)據(jù)內(nèi)存中,則在第二處理周期中禁能標(biāo)記內(nèi)存和使 能包含該指令的數(shù)據(jù)內(nèi)存。然后,提取該指令,并且更新通路預(yù)測(cè)器 和策略計(jì)數(shù)器,以表示出現(xiàn)高速緩存命中。如果確定該指令沒有在任 一個(gè)數(shù)據(jù)內(nèi)存中,則通路預(yù)測(cè)器生成高速緩存未中信號(hào),并且更新策 略計(jì)數(shù)器,以反映出現(xiàn)高速緩存未中。
在本發(fā)明的一個(gè)實(shí)施例中,策略計(jì)數(shù)器包括寄存器,被配置為存 儲(chǔ)計(jì)數(shù)值?;诟咚倬彺婷泻透咚倬彺嫖粗校诘谝恢岛偷诙抵?br>
間增加和減少該計(jì)數(shù)值。首先將計(jì)數(shù)值設(shè)置為第一值(例如,0),
并且策略計(jì)數(shù)器向通路預(yù)測(cè)器提供第一策略信號(hào),以使得通路預(yù)測(cè)器 在第一省電模式下運(yùn)行。在選擇數(shù)目的高速緩存未中(例如,計(jì)數(shù)值
增加至3)之后,策略計(jì)數(shù)器向通路預(yù)測(cè)器提供第二策略信號(hào),以使 得通路預(yù)測(cè)器在第二省電模式下運(yùn)行。如果由于多次高速緩存命中使 得計(jì)數(shù)值隨后減少到第 一值,則策略計(jì)數(shù)器向通路預(yù)測(cè)器再次提供第 一策略信號(hào),并且通路預(yù)測(cè)器在第一省電模式下運(yùn)行。
在本發(fā)明的一個(gè)實(shí)施例中,處理器內(nèi)核包括高速緩存再填充電 路,其使用至少最近填充方案在高速緩存未中之后再填充高速緩存。 所述高速緩存再填充電路通過以下方式運(yùn)行,即選擇多通路組相關(guān)高 速緩存的通路并且將(與該通路的所選數(shù)據(jù)內(nèi)存域相關(guān)的)層號(hào)與通 路-組-層號(hào)相比較。如果所述層號(hào)不等于所述通路-組-層號(hào),則高速緩
存再填充電路從存儲(chǔ)器向所選域?qū)懭霐?shù)據(jù)塊。如果所述層號(hào)等于所述 通路-組-層號(hào),則高速緩存再填充電路切換到另一個(gè)(例如,下一個(gè) 更高或下一個(gè)更低)通路,并重復(fù)上述步驟。如果所述層號(hào)再次等于 所述通路-組-層號(hào),則對(duì)于多通路組相關(guān)高速緩存的其它通路重復(fù)所 述步驟,直到向所述多通路組相關(guān)高速緩存寫入存儲(chǔ)塊。所迷高速緩 存再填充電路增加寫入存儲(chǔ)塊的所選域的層號(hào)。
在一個(gè)實(shí)施例中,將與數(shù)據(jù)內(nèi)存的域相關(guān)的層號(hào)存儲(chǔ)在與數(shù)據(jù)內(nèi) 存分開的通路內(nèi)存數(shù)據(jù)結(jié)構(gòu)中。數(shù)據(jù)內(nèi)存僅在高速緩存再填充期間被 訪問,并且在高速緩存再填充之間被禁能,以減少功耗。
在本發(fā)明的 一個(gè)實(shí)施例中,將通路預(yù)測(cè)器的功能擴(kuò)展為預(yù)測(cè)要提 取的指令是否駐留在除了多通路組相關(guān)高速緩存之外的存儲(chǔ)器中,例
如暫存器(scratchpad)或填充緩沖器。
在一個(gè)實(shí)施例中,通過控制向處理器內(nèi)核的組件(例如,標(biāo)記內(nèi) 存、數(shù)據(jù)內(nèi)存和/或暫存器)提供的時(shí)鐘信號(hào)對(duì)所述組件禁能,以減少 功耗。通過將輸入時(shí)鐘信號(hào)保持在恒定高值或恒定低值,掛起所述組 件中的狀態(tài)寄存器以防止鎖住新值,并且將狀態(tài)寄存器之間的邏輯塊 放于穩(wěn)定狀態(tài)下。 一旦所述組件處于穩(wěn)定狀態(tài),掛起在狀態(tài)寄存器和 邏輯塊中的晶體管,以防止改變狀態(tài),因此不消耗用以轉(zhuǎn)換狀態(tài)所需 的功率。在一個(gè)實(shí)施例中,當(dāng)禁能組件以減少功耗時(shí),向所述組件施 加偏置電壓,以進(jìn)一步減少由于泄露帶來的功耗。
以下,參照附圖詳細(xì)描述本發(fā)明的其它實(shí)施例、特征和優(yōu)點(diǎn)以及 本發(fā)明的各個(gè)實(shí)施例的結(jié)構(gòu)和操作。
在這里結(jié)合的并形成說明書一部分的附圖和說明書一起示出本 發(fā)明,并且進(jìn)一步用于說明本發(fā)明的原理,并使得本領(lǐng)域普通技術(shù)人 員能夠?qū)嵤┖褪褂帽景l(fā)明。
圖l是根據(jù)本發(fā)明實(shí)施例的處理器內(nèi)核的示圖,
圖2是根據(jù)本發(fā)明實(shí)施例的標(biāo)記內(nèi)存和數(shù)據(jù)內(nèi)存的示圖。圖3是根據(jù)本發(fā)明實(shí)施例的預(yù)測(cè)器和策略計(jì)數(shù)器的示圖。 圖4A和圖4B描述用以示出本發(fā)明的第一方法的步驟的流程圖。 圖5是示出本發(fā)明的第二方法的步驟的流程圖。 參照附圖描述本發(fā)明。典型地,通過對(duì)應(yīng)標(biāo)號(hào)中的最左端數(shù)字表 示元件首先出現(xiàn)的附圖。
具體實(shí)施例方式
本發(fā)明提供了一種具有省電指令高速緩存通路預(yù)測(cè)器和指令代 替方案的微處理器。在隨后的本發(fā)明的具體實(shí)施方式
中,提及的"一 個(gè)實(shí)施例"、"實(shí)施例"、"示例性實(shí)施例"等指得是所描述的實(shí)施例可 包括特定特點(diǎn)、結(jié)構(gòu)或特征,但是每一個(gè)實(shí)施例不一定包括該特定特 點(diǎn)、結(jié)構(gòu)或特征。此外,這種短語不一定指得是同一實(shí)施例。此外, 當(dāng)結(jié)合實(shí)施例描述特定特點(diǎn)、結(jié)構(gòu)或特征時(shí),可以理解,本領(lǐng)域普通 技術(shù)人員可以獲知可通過結(jié)合被明確描述或沒有被明確描述的其它 實(shí)施例來實(shí)現(xiàn)這種特點(diǎn)、結(jié)構(gòu)或特征。
圖1是根據(jù)本發(fā)明實(shí)施例的處理器內(nèi)核100的示圖。如圖l所示, 處理器內(nèi)核100包括執(zhí)行單元102、提取單元104、浮點(diǎn)單元106、 加載/存儲(chǔ)單元108、存儲(chǔ)器管理單元(MMU) 110、指令高速緩存 (cache) 112、數(shù)據(jù)高速緩存114、總線接口單元116、電力管理單元 118、乘/除單元(MDU) 120和協(xié)處理器122。盡管這里描述的處理 器內(nèi)核100包括幾個(gè)單獨(dú)的組件,但是這些組件中的多數(shù)是可以不存 在于本發(fā)明的每一個(gè)實(shí)施例中的可選組件,或例如是可以組合的組 件,從而兩個(gè)組件的功能駐留在一個(gè)組件中。因此,圖l中所示的各 個(gè)組件是示例性的,并且不限制本發(fā)明。
執(zhí)行單元102優(yōu)選地實(shí)現(xiàn)具有單循環(huán)算術(shù)邏輯單元運(yùn)算(例如, 邏輯、移位、加、減等)的加栽-存儲(chǔ)(RISC)結(jié)構(gòu)。在一個(gè)實(shí)施例 中,執(zhí)行單元102包括用于標(biāo)量整數(shù)運(yùn)算(scalar integer operation ) 和地址計(jì)算的32位通用寄存器(未示出)。可選地,可包括一個(gè)或 多個(gè)附加寄存器文件組,以例如在中斷和/或異常處理期間最小化內(nèi)容
切換開銷。執(zhí)行單元102與提取單元104、浮點(diǎn)單元106、加栽/存儲(chǔ) 單元108、乘-除單元120和協(xié)處理器122對(duì)接。
提取單元104負(fù)責(zé)向執(zhí)行單元102提供指令。在一個(gè)實(shí)施例中, 提取單元104包括用于指令高速緩存112的控制邏輯、用于記錄壓 縮格式指令的記錄器、動(dòng)態(tài)分支預(yù)測(cè)器、從執(zhí)行單元102斷開提取單 元104的操作的指令緩沖器、與暫存器(未示出)的接口 。提取單元 104與執(zhí)行單元102、存儲(chǔ)器管理單元110、指令高速緩存112和總線 接口單元116對(duì)接。
如這里所使用的,暫存器是提供被映射到指令地址空間的一個(gè)或 多個(gè)指定區(qū)域的指令的存儲(chǔ)器。暫存器的一個(gè)或多個(gè)指定地址區(qū)域可 以預(yù)先配置,或在微處理器運(yùn)行時(shí)編程配置。地址區(qū)域是例如可通過 基地址和區(qū)域大小指定的地址的連續(xù)范圍。當(dāng)使用基地址和區(qū)域大小 時(shí),基地址指定地址區(qū)域的開始,例如將區(qū)域大小增加到基地址以指 定地址區(qū)域的結(jié)束。 一旦為暫存器指定地址區(qū)域,則可以從暫存器檢
索與指定的地址區(qū)域?qū)?yīng)的所有指令。
浮點(diǎn)單元106與執(zhí)行單元102對(duì)接,并且對(duì)非整數(shù)數(shù)據(jù)進(jìn)行運(yùn)算。 由于許多應(yīng)用不需要浮點(diǎn)單元的功能,所以處理器內(nèi)核100的這個(gè)組 件可以不存在于本發(fā)明的實(shí)施例中。
加載/存儲(chǔ)單元108負(fù)責(zé)數(shù)據(jù)加栽和存儲(chǔ),并且包括數(shù)據(jù)高速緩 存控制邏輯。加載/存儲(chǔ)單元108與數(shù)據(jù)高速緩存114和其它存儲(chǔ)器(例 如,暫存器和/或填充緩沖器)對(duì)接。加載/存儲(chǔ)單元108還與存儲(chǔ)器 管理單元IIO和總線接口單元116對(duì)接。
存儲(chǔ)器管理單元110將虛擬地址轉(zhuǎn)換成用于存儲(chǔ)器訪問的物理 地址。在一個(gè)實(shí)施例中,存儲(chǔ)器管理單元110包括旁路轉(zhuǎn)換緩沖器 (TLB),并且可包括分離指令TLB和分離數(shù)據(jù)TLB。存儲(chǔ)器管理 單元110與提取單元104和加載/存儲(chǔ)單元108對(duì)接。
指令高速緩存112是組織成多通路組相關(guān)高速緩存(例如,2通 路組相關(guān)高速緩存、4通路組相關(guān)高速緩存、8通路組相關(guān)高速緩存 等)的片上存儲(chǔ)器陣列。優(yōu)選地,對(duì)指令高速緩存112進(jìn)行虛擬索引
處理和物理標(biāo)記處理,從而能夠與高速緩存訪問并行地發(fā)生虛擬至物 理的地址轉(zhuǎn)換。在一個(gè)實(shí)施例中,除了物理地址位之外,標(biāo)記包括有 效位和可選的校驗(yàn)位。如下文更詳細(xì)所述,本發(fā)明的特點(diǎn)在于,指令
高速緩存112的組件可選擇性使能和禁能,以減少處理器內(nèi)核100消 耗的總功率。指令高速緩存112與提取單元104對(duì)接。
數(shù)據(jù)高速緩存114也是片上存儲(chǔ)器陣列。優(yōu)選地,對(duì)數(shù)據(jù)高速緩 存114進(jìn)行虛擬索引處理和物理標(biāo)記處理。在一個(gè)實(shí)施例中,除了物 理地址位之外,標(biāo)記包括有效位和可選的校驗(yàn)位。數(shù)據(jù)高速緩存114 與加載/存儲(chǔ)單元108對(duì)接。
總線接口單元116控制用于處理器內(nèi)核100的外部接口信號(hào)。在 一個(gè)實(shí)施例中,總線接口單元116包括破壞(collapse)寫入緩沖器, 其用于合并完全寫入事務(wù)和聚集從未高速緩沖的存儲(chǔ)設(shè)備的寫入操 作。
電力管理單元118提供多個(gè)電力管理特征,包括,電力不足設(shè)計(jì) 特征、有源電力管理特征和運(yùn)行的省電模式。在一個(gè)實(shí)施例中,處理 器內(nèi)核100實(shí)施等待指令,該指令向應(yīng)該停止執(zhí)行和/或計(jì)時(shí)的處理器 內(nèi)核100的選擇組件進(jìn)行信號(hào)傳輸,從而減少在閑置期間的功耗。除 了省電特征之外,在這里參照例如圖3-5描述這些電力管理特征。
乘/除單元120對(duì)處理器內(nèi)核100執(zhí)行乘法和除法運(yùn)算。在一個(gè) 實(shí)施例中,優(yōu)選地,乘/除單元120包括流水線乘法器、結(jié)果和累積寄 存器和乘法除法狀態(tài)機(jī),以及執(zhí)行例如乘法、乘加和除法功能所需的 所有控制邏輯。如圖1所示,乘/除單元120與執(zhí)行單元102對(duì)接。
協(xié)處理器122執(zhí)行用于處理器內(nèi)核100的各種開銷功能。在一個(gè) 實(shí)施例中,協(xié)處理器122負(fù)責(zé)虛擬到物理地址轉(zhuǎn)換、實(shí)施高速緩存協(xié) 議、異常處理、運(yùn)行模式選擇和使能/禁能中斷功能。協(xié)處理器l22 與執(zhí)行單元102對(duì)接。
圖2是構(gòu)成4通路組相關(guān)高速緩存的4個(gè)標(biāo)記內(nèi)存(tagram )202 和4個(gè)數(shù)據(jù)內(nèi)存(dataram ) 204的示圖。該高速緩存結(jié)構(gòu)代表用于指 令高速緩存112的一個(gè)實(shí)施例。
如圖2所示,每一個(gè)標(biāo)記內(nèi)存202包括用以存儲(chǔ)物理地址位或標(biāo) 記的多個(gè)域214。每一個(gè)標(biāo)記具有相關(guān)有效位212。例如校驗(yàn)位的附 加位(未示出)也可以與每一個(gè)標(biāo)記相關(guān)。
每一個(gè)數(shù)據(jù)內(nèi)存204包括用以存儲(chǔ)數(shù)據(jù)/指令塊的多個(gè)域218。如 圖2所示,每一個(gè)數(shù)據(jù)塊具有相關(guān)層號(hào)216。如下文參照?qǐng)D5更詳細(xì) 描述,層號(hào)216用于確定在高速緩存中在高速緩存未中之后存儲(chǔ)新數(shù) 據(jù)塊的位置。在一個(gè)實(shí)施例中,層號(hào)216存儲(chǔ)在數(shù)據(jù)結(jié)構(gòu)208中,在 這里稱為通路內(nèi)存(wayram)。通路內(nèi)存208可以是與數(shù)據(jù)內(nèi)存204 分開的數(shù)據(jù)結(jié)構(gòu),其僅在高速緩存重新填充/高速緩存寫入期間使能。
使用地址206訪問在標(biāo)記內(nèi)存202a-d和數(shù)據(jù)內(nèi)存204a-d中存儲(chǔ) 的信息。地址206包括標(biāo)記222、索引224和偏移226。特定索引224 唯一地指向每一個(gè)標(biāo)記內(nèi)存202的所選域214和每一個(gè)數(shù)據(jù)內(nèi)存204 的所選域218。為了確定特定指令是否存儲(chǔ)在指令高速緩存的通路(例 如,數(shù)據(jù)內(nèi)存204)中,以對(duì)于本說明書給出的相關(guān)領(lǐng)域技術(shù)人員清 楚的方式將地址206的標(biāo)記222與標(biāo)記內(nèi)存202中存儲(chǔ)的標(biāo)記相比較。
圖2中的數(shù)據(jù)結(jié)構(gòu)210存儲(chǔ)通路-組-層號(hào)220。如下文參照?qǐng)D5 更詳細(xì)描述,通路-組-層號(hào)220與層號(hào)216 —起用于確定在高速緩存 中在高速緩存未中之后存儲(chǔ)新數(shù)據(jù)塊的位置。盡管在圖2中層號(hào)216 和通路-組-層號(hào)220示出為單位值,但是可以理解,在不脫離本發(fā)明 范圍的情況下,它們可以是多位值。
圖3是根據(jù)本發(fā)明實(shí)施例的通路預(yù)測(cè)器(預(yù)測(cè)器)302和策略計(jì) 數(shù)器304。預(yù)測(cè)器302預(yù)測(cè)要提取的指令的存儲(chǔ)位置,并且向策略計(jì) 數(shù)器304提供高速緩存命中和未中數(shù)據(jù)。在一個(gè)實(shí)施例中,預(yù)測(cè)器302 通常預(yù)測(cè)要提取的下一個(gè)指令位于從中提取最后指令的通路中。其它 實(shí)施例使用更復(fù)雜的預(yù)測(cè)方案。策略計(jì)數(shù)器304包括存儲(chǔ)器元件,例 如保存高速緩存命中和未中記錄的寄存器?;谟深A(yù)測(cè)器302提供的 高速緩存命中和未中數(shù)據(jù),策略計(jì)數(shù)器304向預(yù)測(cè)器302提供策略信 號(hào),以確定預(yù)測(cè)器302的運(yùn)行模式。
預(yù)測(cè)器302與多個(gè)標(biāo)記/數(shù)據(jù)內(nèi)存306和標(biāo)記比較電路308對(duì)接。
標(biāo)記/數(shù)據(jù)內(nèi)存306a-d代表多路(例如,4路)組相關(guān)高速緩存。預(yù) 測(cè)器302還選擇性地與一個(gè)或多個(gè)其它存儲(chǔ)器元件306e (例如,暫存 器或填充緩沖器)和它們的相關(guān)標(biāo)記比較電路308e對(duì)接。
在本發(fā)明的一個(gè)實(shí)施例中,策略計(jì)數(shù)器304向預(yù)測(cè)器302提供策 略信號(hào),以確定預(yù)測(cè)器302在第一省電模式還是在第二省電模式下運(yùn) 行。在本發(fā)明的某些實(shí)施例中,預(yù)測(cè)器302以多于兩個(gè)省電模式運(yùn)行。 在每一個(gè)運(yùn)行模式下,使能和/或禁能的組件數(shù)目改變,從而改變由處 理器消耗的電力。
當(dāng)預(yù)測(cè)器302在第一省電模式下運(yùn)行時(shí),預(yù)測(cè)器302在一個(gè)處理 周期內(nèi)使能被預(yù)測(cè)具有要提取指令的數(shù)據(jù)內(nèi)存以及與該數(shù)據(jù)內(nèi)存相 關(guān)的標(biāo)記內(nèi)存。如果該指令存在于所預(yù)測(cè)數(shù)據(jù)內(nèi)存中,則提取該指令, 并且更新預(yù)測(cè)器302和策略計(jì)數(shù)器304,以表示出現(xiàn)高速緩存命中。 如圖3所示,關(guān)于數(shù)據(jù)內(nèi)存是否包含指令的反饋來自標(biāo)記比較電路 308。如果該指令不在所預(yù)測(cè)數(shù)據(jù)內(nèi)存中,則預(yù)測(cè)器302禁能數(shù)據(jù)內(nèi) 存及其相關(guān)標(biāo)記內(nèi)存,并且在第二處理周期中使能所有剩余數(shù)據(jù)內(nèi)存 和它們的相關(guān)標(biāo)記內(nèi)存。如果確定該指令是在第二處理周期期間使能 的數(shù)據(jù)內(nèi)存之一,則提取該指令,并且更新預(yù)測(cè)器302和策略計(jì)數(shù)器 304,以反映出現(xiàn)高速緩存命中和存儲(chǔ)該指令的數(shù)據(jù)內(nèi)存。如果該指 令沒有在任一個(gè)數(shù)據(jù)內(nèi)存中,則由預(yù)測(cè)器302生成高速緩存未中信號(hào), 并且更新策略計(jì)數(shù)器304,以反映出現(xiàn)高速緩存未中。在一個(gè)實(shí)施例 中,與剩余數(shù)據(jù)內(nèi)存并行地檢查暫存器、填充緩沖器或其它存儲(chǔ)器。
當(dāng)預(yù)測(cè)器302在第二省電模式下運(yùn)行時(shí),預(yù)測(cè)器302在第一處理 周期內(nèi)使能與高速緩存的數(shù)據(jù)內(nèi)存相關(guān)的所有標(biāo)記內(nèi)存。這個(gè)運(yùn)行模 式增加了由處理器消耗的電力,但是這個(gè)模式使得處理器比第一省電 模式更快地處理高速緩存未中。如果(例如,使用標(biāo)記比較電路308) 確定要提取的指令存在于一個(gè)數(shù)據(jù)內(nèi)存中,則在第二處理周期中禁能 標(biāo)記內(nèi)存和使能包含該指令的數(shù)據(jù)內(nèi)存。然后,提取該指令,并且更 新預(yù)測(cè)器302和策略計(jì)數(shù)器304。如果確定該指令沒有在任一個(gè)數(shù)據(jù) 內(nèi)存中,則由預(yù)測(cè)器302生成高速緩存未中信號(hào),并且更新策略計(jì)數(shù)
器304,以反映出現(xiàn)高速緩存未中。在一個(gè)實(shí)施例中,與剩余數(shù)據(jù)內(nèi) 存并行地檢查暫存器、填充緩沖器或其它存儲(chǔ)器。
在本發(fā)明的一個(gè)實(shí)施例中,策略計(jì)數(shù)器304包括寄存器(未示 出),被配置為存儲(chǔ)計(jì)數(shù)值?;诟咚倬彺婷泻透咚倬彺嫖粗校?第一值和第二值(例如0和3)之間增加和減少該計(jì)數(shù)值。如圖3所 示,由預(yù)測(cè)器302向策略計(jì)數(shù)器304提供命中和未中數(shù)據(jù)。在操作中, 首先將計(jì)數(shù)值設(shè)置為第一值(例如,0),并且策略計(jì)數(shù)器304向預(yù) 測(cè)器302提供第一策略信號(hào),以使得預(yù)測(cè)器302在第一省電模式下運(yùn) 行。對(duì)于每一次高速援存未中,計(jì)數(shù)值增加。對(duì)于每一次高速緩存命 中,計(jì)數(shù)值減少。在選擇數(shù)目的高速緩存未中之后(例如,計(jì)數(shù)值增 加至3),策略計(jì)數(shù)器304向預(yù)測(cè)器302提供第二策略信號(hào),以在第 二省電模式下運(yùn)行。如果計(jì)數(shù)值隨后減少到第一值(例如,0),則 策略計(jì)數(shù)器304向預(yù)測(cè)器302再次提供第 一策略信號(hào),并且預(yù)測(cè)器302 在第一省電模式下運(yùn)行。
圖4A和4B描述了用以示出方法400的步驟的流程圖。方法400 用于根據(jù)本發(fā)明實(shí)施例從高速緩存檢索指令。盡管可以根據(jù)本發(fā)明使 用處理器內(nèi)核(例如處理器內(nèi)核100)實(shí)施方法400,但是本發(fā)明不 限于通過處理器內(nèi)核100實(shí)施。方法400開始于步驟401。
在步驟401,接收從多通路組相關(guān)高速緩存提取的指令的地址。 例如,通過將該地址加栽到處理器的程序計(jì)數(shù)器來接收該地址。
在步驟402,確定處理器的預(yù)測(cè)器是否在如模式0的步驟402中 指示的特定模式下運(yùn)行。如果預(yù)測(cè)器在模式O下運(yùn)行(例如,上述笫 一省電模式),則控制轉(zhuǎn)移到步驟404。如果預(yù)測(cè)器沒有在模式O下 運(yùn)行,則控制轉(zhuǎn)移到步驟418。
在步驟404,使能包含要提取指令的由預(yù)測(cè)器預(yù)測(cè)的數(shù)據(jù)內(nèi)存。 還使能與該數(shù)據(jù)內(nèi)存相關(guān)的標(biāo)記內(nèi)存。在本發(fā)明的一個(gè)實(shí)施例中,預(yù) 測(cè)器預(yù)測(cè)包含最后提取指令的數(shù)據(jù)內(nèi)存也將包含要提取的下一個(gè)指 令。
在步驟406,在使能的標(biāo)記內(nèi)存中將要提取的指令地址的標(biāo)記部
分與所選標(biāo)記相比較。所選標(biāo)記是由步驟401中接收的地址的索引部 分所指向的標(biāo)記。如果地址的標(biāo)記部分與使能的標(biāo)記內(nèi)存中存儲(chǔ)的所 選標(biāo)記匹配,并且假設(shè)在標(biāo)記內(nèi)存中的所選標(biāo)記有效,則控制從步驟 406轉(zhuǎn)移到408。如果地址的標(biāo)記部分與使能的標(biāo)記內(nèi)存中存儲(chǔ)的所 選標(biāo)記不匹配,則控制從步驟406轉(zhuǎn)移到412。
在步驟408,從數(shù)據(jù)內(nèi)存讀取要提取的指令。控制從步驟408轉(zhuǎn) 移到步驟410。
在步驟410,根據(jù)是否出現(xiàn)高速緩存命中或高速緩存未中,以及 由預(yù)測(cè)器作出的關(guān)于哪個(gè)數(shù)據(jù)內(nèi)存包括該指令的預(yù)測(cè)是否正確,更新 處理器的預(yù)測(cè)器和處理器的策略計(jì)數(shù)器。策略計(jì)數(shù)器向預(yù)測(cè)器提供策 略信號(hào),以基于高速緩存命中和高速緩存未中信息確定預(yù)測(cè)器是在模 式O下還是在其它模式(例如,上述第二省電模式)下運(yùn)行??刂茝?步驟410回轉(zhuǎn)到步驟401。
在步驟412,禁能在步驟406中被使能的標(biāo)記內(nèi)存和數(shù)據(jù)內(nèi)存, 并且使能高速緩存的剩余標(biāo)記內(nèi)存和數(shù)據(jù)內(nèi)存。如在此所述,可根據(jù) 本發(fā)明通過控制組件的輸入時(shí)鐘信號(hào)禁能例如標(biāo)記內(nèi)存和數(shù)據(jù)內(nèi)存 的處理器組件,以減少功耗??刂茝牟襟E412轉(zhuǎn)移到步驟414。
在步驟414,確定要提取的指令是否存儲(chǔ)在其中一個(gè)使能的數(shù)據(jù) 內(nèi)存中。如果指令存儲(chǔ)在其中一個(gè)數(shù)據(jù)內(nèi)存中,則控制轉(zhuǎn)移到步驟 408,即從數(shù)據(jù)內(nèi)存讀取指令。如果指令沒有存儲(chǔ)在其中一個(gè)數(shù)據(jù)內(nèi) 存中,則發(fā)生高速緩存未中,并且控制轉(zhuǎn)移到步驟416。
在步驟416,將數(shù)據(jù)的新存儲(chǔ)塊加栽到包含要提取指令的高速緩 存中。在一個(gè)實(shí)施例中,根據(jù)下述的方法500,將數(shù)據(jù)塊加栽到高速 緩存中??刂茝牟襟E416轉(zhuǎn)移到步驟408。
在步驟418,使能高速緩存的所有標(biāo)記內(nèi)存。這使得處理器例如 在一個(gè)處理周期中確定要提取的指令是否駐留在高速緩存的其中一 個(gè)數(shù)據(jù)內(nèi)存中??刂茝牟襟E418轉(zhuǎn)移到步驟420。
在步驟420,確定要提取的指令是否駐留在其中一個(gè)數(shù)據(jù)內(nèi)存 中。如果指令存儲(chǔ)在其中一個(gè)數(shù)據(jù)內(nèi)存中,則控制轉(zhuǎn)移到步驟422。
如果指令沒有存儲(chǔ)在其中 一個(gè)數(shù)據(jù)內(nèi)存中,則控制轉(zhuǎn)移到步驟428。 在步驟422,禁能標(biāo)記內(nèi)存,并且使能包含指令的數(shù)據(jù)內(nèi)存,以
允許提取指令??刂茝牟襟E422轉(zhuǎn)移到步驟424。
在步驟424,從數(shù)據(jù)內(nèi)存讀取要提取的指令??刂茝牟襟E424轉(zhuǎn)
移到步驟426。
在步驟426,根據(jù)是否出現(xiàn)高速緩存命中或高速緩存未中更新處 理器的預(yù)測(cè)器和處理器的策略計(jì)數(shù)器??刂茝牟襟E426轉(zhuǎn)移到步驟 401。
在步驟428,將數(shù)據(jù)的新存儲(chǔ)塊加栽到包含要提取指令的高速緩 存中。在一個(gè)實(shí)施例中,根據(jù)下述的方法500,將數(shù)據(jù)塊加栽到高速 緩存中??刂茝牟襟E428轉(zhuǎn)移到步驟424,從而可提取指令。
如本領(lǐng)域普通技術(shù)人員將理解的,方法400的步驟可以改變,例 如改變特定步驟中使能和/或禁能的標(biāo)記內(nèi)存和數(shù)據(jù)內(nèi)存的數(shù)目,以適 應(yīng)不同的控制方案。某些步驟的順序也可以改變。這些改變保持在本 發(fā)明的范圍內(nèi)。此外,如圖3所示,也可以使能和/或禁能除了高速緩 存的標(biāo)記內(nèi)存和數(shù)據(jù)內(nèi)存之外的存儲(chǔ)器,例如暫存器、填充緩沖器等。
圖5是示出本發(fā)明的方法500的步驟的流程圖。在較高程度上, 方法500可被認(rèn)為是至少最近填充的高速緩存再填充方案。更具體地, 在高速緩存未中之后,使用方法500將數(shù)據(jù)存儲(chǔ)塊加載到4通路組相 關(guān)高速緩存。然而,如這里給出描述的對(duì)本領(lǐng)域普通技術(shù)人員清楚的 是,方法500可適用于通過其它多通路組相關(guān)高速緩存(例如,2通 路組相關(guān)高速緩存、8通路組相關(guān)高速緩存等)來使用。如方法400, 例如可根據(jù)本發(fā)明使用處理器內(nèi)核(例如處理器內(nèi)核100)實(shí)施方法 500,但是不限于通過處理器內(nèi)核100實(shí)施。
方法500開始于步驟502。在步驟502,方法等待發(fā)生高速緩存 未中。當(dāng)檢測(cè)到高速緩存未中時(shí),控制轉(zhuǎn)移到步驟504。
在步驟504,讀取與高速緩存未中相關(guān)的路組的層號(hào)。如在此所 用的,術(shù)語"路組,,表示可對(duì)存儲(chǔ)器的特定塊存儲(chǔ)的多通路組相關(guān)高速 緩存的數(shù)據(jù)內(nèi)存的域。路組層號(hào)是用于控制利用數(shù)據(jù)新塊再填充高速
緩存的值。
在步驟506,將在步驟504中讀取的通路-組-層號(hào)與高速緩存的 路-O的層號(hào)相比較。如果路-0的層號(hào)與通路-組-層號(hào)不同,則控制轉(zhuǎn) 移到步驟508。如果該層號(hào)與通路-組-層號(hào)沒有不同,則控制轉(zhuǎn)移到 步驟512。
在步驟508,將數(shù)據(jù)的新存儲(chǔ)塊寫入高速緩存的路-0中。然后, 控制轉(zhuǎn)移到步驟510。
在步驟510,對(duì)于寫入數(shù)據(jù)的存儲(chǔ)塊的通路的層號(hào)增加??刂茝?步驟510返回到步驟502。
在步驟512,將在步驟504中讀取的通路-組-層號(hào)與高速緩存的 路-1的層號(hào)相比較。如果路-1的層號(hào)與通路-組-層號(hào)不同,則控制轉(zhuǎn) 移到步驟514。如果該層號(hào)與通路-組-層號(hào)沒有不同,則控制轉(zhuǎn)移到 步驟516。
在步驟514,將數(shù)據(jù)的新存儲(chǔ)塊寫入高速緩存的路-1中。然后, 控制轉(zhuǎn)移到步驟510。
在步驟516,將在步驟504中讀取的通路-組-層號(hào)與高速緩存的 路-2的層號(hào)相比較。如果路-2的層號(hào)與通路-組-層號(hào)不同,則控制轉(zhuǎn) 移到步驟518。如果該層號(hào)與通路-組-層號(hào)沒有不同,則控制轉(zhuǎn)移到 步驟522。
在步驟518,將數(shù)據(jù)的新存儲(chǔ)塊寫入高速緩存的路-2中。然后, 控制轉(zhuǎn)移到步驟510。
在步驟522,將數(shù)據(jù)的新存儲(chǔ)塊寫入高速緩存的路-3中。然后, 控制轉(zhuǎn)移到步驟524。
在步驟524,對(duì)于路-3的層號(hào)增加。然后,控制從步驟524轉(zhuǎn)移 到526。
在步驟526,對(duì)于該路組的層號(hào)增加。控制從步驟526返回到步 驟502。
在本發(fā)明的一個(gè)實(shí)施例中,方法500可以進(jìn)行如下修改。首先, 將通路-組-層號(hào)修改為固定值(例如,1),而不是可變值。這使得可
繞過或消除步驟504。在處理器的開始,將高速緩存的所有層號(hào)設(shè)置 成不同于該固定值的值(例如,0)。接下來,將步驟510修改為, 在將數(shù)據(jù)塊寫入通路之后,將該通路的層號(hào)修改為固定值(例如,1)。 最后,步驟524和526用將通路的適當(dāng)層號(hào)重設(shè)為不同于該固定值的 值(例如,0)的新步驟代替,從而將下一個(gè)高速緩存充填寫入路-0 (因?yàn)楫?dāng)執(zhí)行步驟506時(shí),對(duì)于路-0的層號(hào)與固定的通路-組-層號(hào)不 同)。
基于本說明書,本領(lǐng)域技術(shù)人員可以理解,由于不需要跟蹤在高 速緩存中數(shù)據(jù)塊使用的頻度,所以方法500及其修改消除了與傳統(tǒng)的 最近很少使用的高速緩存再填充方案相關(guān)的大部分開銷。此外,方法 500的再填充方案提高了本發(fā)明的預(yù)測(cè)器的精度(例如,當(dāng)設(shè)置預(yù)測(cè) 器以預(yù)測(cè)下一個(gè)指令將來自與最后指令相同的通路時(shí))。這是由于本 發(fā)明的高速緩存再填充方案改善了高速緩存線路項(xiàng)目之間的順序,并 且提供了無序項(xiàng)目段的收斂。
盡管上文描述了本發(fā)明的各個(gè)實(shí)施例,但是應(yīng)該理解,它們通過 實(shí)例呈現(xiàn),而沒有限制。對(duì)于相關(guān)計(jì)算機(jī)領(lǐng)域的普通技術(shù)人員清楚的 是,可以在不脫離本發(fā)明的精神和范圍的情況下在其中進(jìn)行形式和細(xì) 節(jié)上的各種改變。此外,應(yīng)該理解,這里提供的本發(fā)明的具體實(shí)施方 式部分,并非發(fā)明內(nèi)容和摘要部分,旨在用于解釋權(quán)利要求。發(fā)明內(nèi) 容和摘要部分可闡述由發(fā)明人預(yù)期的一個(gè)或多個(gè)但并非所有本發(fā)明 示例性實(shí)施例。
例如,除了使用(例如,在中央處理單元("CPU")、微處理器、 微控制器、數(shù)字信號(hào)處理器、處理器內(nèi)核、片上系統(tǒng)("SOC")或任 意其它可編程或電子器件中或與其耦接的)硬件實(shí)現(xiàn)之外,也可以使 用在例如計(jì)算機(jī)可用(例如,可讀)介質(zhì)中配置的軟件(例如,計(jì)算 機(jī)可讀代碼、程序代碼、以任意形式配置的指令和/或數(shù)據(jù),例如,源 語言、目標(biāo)語言或機(jī)器語言)來實(shí)現(xiàn),其中所述計(jì)算機(jī)可用介質(zhì)配置 為存儲(chǔ)軟件。這種軟件能夠?qū)崿F(xiàn)例如這里所述的裝置和方法的功能、 制造、模型、模擬、描述和/或檢測(cè)。例如,這可通過使用通用編程語
言(例如,C、 C++) 、 GDSII數(shù)據(jù)庫、包括VerilogHDL、 VHDL、 SystemC寄存器傳輸級(jí)(RTL )等的硬件描述語言(HDL )、或其它 可用程序、數(shù)據(jù)庫和/或電路(即,示意性)捕獲工具來實(shí)現(xiàn)。這種軟 件可配置在包括半導(dǎo)體、磁盤、光盤(例如,CD-ROM、 DVD-ROM 等)的任意已知計(jì)算機(jī)可用介質(zhì)中,以及可作為在計(jì)算機(jī)可用(例如, 可讀)傳輸介質(zhì)中實(shí)現(xiàn)的計(jì)算機(jī)數(shù)據(jù)信號(hào)(例如,載波或包括基于數(shù) 字介質(zhì)、光學(xué)介質(zhì)或模擬介質(zhì)的任意其它介質(zhì))。這樣,可以在包括 互聯(lián)網(wǎng)和企業(yè)網(wǎng)的通信網(wǎng)絡(luò)上發(fā)送該軟件。
應(yīng)該理解,這里描述的裝置和方法實(shí)施例可包括在半導(dǎo)體知識(shí)產(chǎn) 權(quán)核中,例如(例如,以HDL實(shí)現(xiàn)的)微處理器內(nèi)核,以及可轉(zhuǎn)換 成在集成電路產(chǎn)品中的硬件。此外,這里描述的裝置和方法實(shí)施例可 以作為硬件和軟件的組合實(shí)現(xiàn)。因此,本發(fā)明不應(yīng)限于任一個(gè)上述示 例性實(shí)施例,但是應(yīng)該僅根據(jù)所附權(quán)利要求及其等同物所限定。
權(quán)利要求
1.一種處理器,包括多路高速緩存;耦接至所述多路高速緩存的預(yù)測(cè)器,用于預(yù)測(cè)所述多路高速緩存的哪個(gè)通路包含要提取的指令;和耦接至所述預(yù)測(cè)器的策略計(jì)數(shù)器;其中響應(yīng)于由所述策略計(jì)數(shù)器向所述預(yù)測(cè)器提供的策略信號(hào),所述預(yù)測(cè)器在多個(gè)省電模式中的一個(gè)省電模式下運(yùn)行。
2. 權(quán)利要求l所述的處理器,其中當(dāng)所述預(yù)測(cè)器在第一省電模 式下運(yùn)行時(shí),所述預(yù)測(cè)器在第一個(gè)處理周期期間使能與所述預(yù)測(cè)器預(yù) 測(cè)的包含要提取的指令的多路高速緩存的通路相關(guān)的標(biāo)記內(nèi)存。
3. 權(quán)利要求2所述的處理器,其中所述預(yù)測(cè)器在第一個(gè)處理周 期期間使能與所述多路高速緩存的通路相關(guān)的數(shù)據(jù)內(nèi)存。
4. 權(quán)利要求3所述的處理器,其中在所述預(yù)測(cè)器預(yù)測(cè)失準(zhǔn)之后, 所述預(yù)測(cè)器禁能所述標(biāo)記內(nèi)存和數(shù)據(jù)內(nèi)存,并且在第二處理器周期期 間使能與所述多路高速緩存的第二通路相關(guān)的第二標(biāo)記內(nèi)存。
5. 權(quán)利要求2所述的處理器,其中當(dāng)所述預(yù)測(cè)器在第二省電模 式下運(yùn)行時(shí),所述預(yù)測(cè)器在第一個(gè)處理周期期間使能與所述多路高速 緩存相關(guān)的所有標(biāo)記內(nèi)存。
6. 權(quán)利要求l所述的處理器,其中所述策略計(jì)數(shù)器包括寄存 器,被配置為存儲(chǔ)在第一值和第二值之間基于高速緩存命中增加并且 基于高速緩存未中減少的值。
7. 權(quán)利要求l所述的處理器,還包括耦接至所述多路高速緩存的高速緩存再填充電路,將與所述多路 高速緩存的通路的所選擇域相關(guān)的層號(hào)與通路-組-層號(hào)相比較,并且 如果所述層號(hào)不等于所述通路-組-層號(hào),所述高速緩存再填充電路從 存儲(chǔ)器向所選擇域?qū)懭霐?shù)據(jù)塊。
8. 權(quán)利要求7所述的處理器,其中所述高速緩存再填充電路增加與寫入數(shù)據(jù)塊的所選擇域相關(guān)的層號(hào)。
9. 一種處理器的控制電路,包括耦接至多路高速緩存的預(yù)測(cè)器子電路,用于預(yù)測(cè)所述多路高速緩 存的哪個(gè)通路包含要提取的指令;和耦接至所述預(yù)測(cè)子電路的策略計(jì)數(shù)器子電路;其中響應(yīng)于由所述策略計(jì)數(shù)器子電路向所述預(yù)測(cè)器子電路提供 的策略信號(hào),所述預(yù)測(cè)器子電路在多個(gè)省電模式中的一個(gè)省電模式下 運(yùn)行。
10. 權(quán)利要求9所述的控制電路,其中當(dāng)所述預(yù)測(cè)器子電路在 第一省電模式下運(yùn)行時(shí),所述預(yù)測(cè)器子電路在笫一個(gè)處理周期期間使 能與所述預(yù)測(cè)器子電路預(yù)測(cè)的包含要提取的指令的多路高速緩存的 通路相關(guān)的標(biāo)記內(nèi)存。
11. 權(quán)利要求10所述的控制電路,其中所述預(yù)測(cè)器子電路在 笫一個(gè)處理周期期間使能與所述多路高速緩存的通路相關(guān)的數(shù)據(jù)內(nèi) 存。
12. 權(quán)利要求ll所述的控制電路,其中在所述預(yù)測(cè)器子電路 預(yù)測(cè)失準(zhǔn)之后,所述預(yù)測(cè)器子電路禁能所述標(biāo)記內(nèi)存和數(shù)據(jù)內(nèi)存,并 且在第二處理器周期期間使能與所述多路高速緩存的第二通路相關(guān) 的第二標(biāo)記內(nèi)存。
13. 權(quán)利要求10所述的控制電路,其中當(dāng)所述預(yù)測(cè)器子電路 在第二省電模式下運(yùn)行時(shí),所迷預(yù)測(cè)器子電路在第 一個(gè)處理周期期間 使能與所述多路高速緩存相關(guān)的所有標(biāo)記內(nèi)存。
14. 權(quán)利要求9所迷的控制電路,其中所述策略計(jì)數(shù)器子電路 包括寄存器,被配置為存儲(chǔ)在第一值和第二值之間基于高速緩存命 中增加并且基于高速緩存未中減少的值。
15. —種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),包括以軟件實(shí)現(xiàn)的處理器,該 處理器包括多路高速緩存;耦接至所述多路高速緩存的預(yù)測(cè)器,用于預(yù)測(cè)所述多路高速緩存 的哪個(gè)通路包含要提取的指令;和 耦接至所述預(yù)測(cè)器的策略計(jì)數(shù)器;其中響應(yīng)于由所述策略計(jì)數(shù)器向所述預(yù)測(cè)器提供的策略信號(hào),所 述預(yù)測(cè)器在多個(gè)省電模式中的一個(gè)省電模式下運(yùn)行。
16. 權(quán)利要求15所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中當(dāng)所述預(yù) 測(cè)器在第一省電模式下運(yùn)行時(shí),所述預(yù)測(cè)器在第一個(gè)處理周期期間使 能與所述預(yù)測(cè)器預(yù)測(cè)的包含要提取的指令的多路高速緩存的通路相 關(guān)的才示i己內(nèi)存。
17. 權(quán)利要求16所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述預(yù)測(cè) 器在第一個(gè)處理周期期間使能與所迷多路高速緩存的通路相關(guān)的數(shù) 據(jù)內(nèi)存。
18. 權(quán)利要求17所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中在所述預(yù) 測(cè)器預(yù)測(cè)失準(zhǔn)之后,所述預(yù)測(cè)器禁能所述標(biāo)記內(nèi)存和數(shù)據(jù)內(nèi)存,并且 在第二處理器周期期間使能與所述多路高速緩存的第二通路相關(guān)的 笫二標(biāo)記內(nèi)存。
19. 權(quán)利要求16所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中當(dāng)所述預(yù) 測(cè)器在第二省電模式下運(yùn)行時(shí),所述預(yù)測(cè)器在第一個(gè)處理周期期間使 能與所述多路高速緩存相關(guān)的所有標(biāo)記內(nèi)存。
20. 權(quán)利要求15所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述策略 計(jì)數(shù)器包括寄存器,被配置為存儲(chǔ)在第一值和第二值之間基于高速 緩存命中增加并且基于高速緩存未中減少的值。
21. 權(quán)利要求15所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述計(jì)算 機(jī)可讀程序代碼是硬件描述語言代碼。
22. 權(quán)利要求15所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其中所述計(jì)算 機(jī)可讀程序代碼是Verilog硬件描述語言代碼、VHDL硬件描迷語言 代碼和SystemC ^!件描述語言代碼之一。
23. —種在高速緩存未中之后向處理器的多路高速緩存寫入 數(shù)據(jù)的方法,其中所述多路高速緩存包括多個(gè)數(shù)據(jù)內(nèi)存,每一個(gè)數(shù)據(jù) 內(nèi)存包括用于存儲(chǔ)數(shù)據(jù)的多個(gè)域,并且每一個(gè)域具有相關(guān)的層號(hào),該 方法包括(1) 將與所述多路高速緩存的通路的所選域相關(guān)的層號(hào)與通路 -組-層號(hào)相比較;(2) 如果所述層號(hào)不等于所述通路-組-層號(hào),則向所選域?qū)懭霐?shù) 據(jù)塊;和(3) 增加寫入數(shù)據(jù)塊的所選域的層號(hào)。
24. 權(quán)利要求23所述的方法,還包括(4) 如果所述層號(hào)等于所述通路-組-層號(hào),將與所述多路高速緩 存的第二通路的第二所選域相關(guān)的第二層號(hào)與所述通路-組-層號(hào)相比 較;和(5) 如果所述第二層號(hào)不等于所述通路-組-層號(hào),則向所述第二 所選域?qū)懭霐?shù)據(jù)塊。
25. —種從處理器的多路高速緩存提取指令的方法,包括(1) 預(yù)測(cè)所述多路高速緩存的哪個(gè)通路包含要提取的指令;(2) 如果所述處理器在第一省電模式下運(yùn)行,則使能與預(yù)測(cè)的包舍所述指令的多路高速緩存的通路相關(guān)的標(biāo)記內(nèi)存;(3) 如果在所述標(biāo)記內(nèi)存中存儲(chǔ)的標(biāo)記與所述指令的物理地址匹配,則提取所述指令;和(4) 更新用以控制所述處理器是在所述第一省電模式下還是在第二省電模式下運(yùn)行的策略計(jì)數(shù)器值。
26. 權(quán)利要求25所述的方法,還包括(5) 如果在所述標(biāo)記內(nèi)存中存儲(chǔ)的標(biāo)記與所述指令的物理地址 不匹配,則禁能所述標(biāo)記內(nèi)存;(6) 使能與所述多路高速緩存的第二通路相關(guān)的第二標(biāo)記內(nèi) 存5和(7) 如果在所述第二標(biāo)記內(nèi)存中存儲(chǔ)的第二標(biāo)記與所述指令的 物理地址匹配,則提取所述指令。
27. 權(quán)利要求25所述的方法,還包括(5)如果所述處理器在所述第二省電模式下運(yùn)行,則使能與所述多路高速緩存相關(guān)的所有標(biāo)記內(nèi)存。
28. 權(quán)利要求25所述的方法,其中步驟U)包括(i) 在高速緩存命中時(shí)增加所述策略計(jì)數(shù)器值;和(ii) 在高速緩存未中時(shí)減少所述策略計(jì)數(shù)器值。
全文摘要
公開一種具有省電指令高速緩存通路預(yù)測(cè)器和指令代替方案的微處理器。在一個(gè)實(shí)施例中,處理器包括多通路組高速緩存、通路預(yù)測(cè)器、策略計(jì)數(shù)器和高速緩存再填充電路。策略計(jì)數(shù)器向通路預(yù)測(cè)器提供信號(hào),以確定通路預(yù)測(cè)器是在第一模式還是在第二模式下運(yùn)行。在高速緩存未中之后,高速緩存再填充電路選擇高速緩存的通路,并且將與該通路的數(shù)據(jù)內(nèi)存域相關(guān)的層號(hào)與通路-組-層號(hào)相比較。如果所述層號(hào)與所述通路-組-層號(hào)不匹配,則高速緩存再填充電路向所述域?qū)懭霐?shù)據(jù)塊。如果所述層號(hào)等于所述通路-組-層號(hào),則高速緩存再填充電路為其它通路重復(fù)上述步驟,直到將存儲(chǔ)塊寫入高速緩存。
文檔編號(hào)G06F12/12GK101375228SQ200680050617
公開日2009年2月25日 申請(qǐng)日期2006年11月15日 優(yōu)先權(quán)日2005年11月15日
發(fā)明者M·科諾斯 申請(qǐng)人:Mips技術(shù)公司