專利名稱:Bht在具有可變長度指令集執(zhí)行模式的處理器中的有效使用的制作方法
技術(shù)領(lǐng)域:
本發(fā)明通常涉及處理器領(lǐng)域,且特定來說涉及在具有可變長度指令集執(zhí)行模式的 處理器中分支歷史表的有效組織。
背景技術(shù):
處理器的傳統(tǒng)指令集架構(gòu)具有統(tǒng)一的指令長度。即,指令集中的每一指令均包括 相同數(shù)目的位(例如,16或32)。所述技術(shù)中已知具有可變長度指令集執(zhí)行模式的 處理器-其中所述處理器可執(zhí)行具有不同位長度的指令。例如,ARM架構(gòu)的最近版本 包含在16位指令集執(zhí)行模式(Thumb模式)中執(zhí)行的16位指令以及在32位指令集 執(zhí)行模式(ARM模式)中執(zhí)行的傳統(tǒng)32位ARM指令。
執(zhí)行可變長度指令的處理器的一個問題是指令不會落在統(tǒng)一存儲器邊界上。因 此,通過指令(或與指令相關(guān)聯(lián)的輔助構(gòu)造)遞增或?qū)λ鲋噶铍S機定址的電路或操 作不能利用統(tǒng)一遞增或定址方案。相反,其必須基于當前正在執(zhí)行的指令的長度(即 當前指令集執(zhí)行模式)改變定址方案。
大多數(shù)現(xiàn)代處理器采用管線式架構(gòu),其中使各自具有多個執(zhí)行步驟的順續(xù)指令交 疊執(zhí)行。為得到最大效能,指令應連續(xù)地流過管線。致使指令在管線中停止的任何情 形均有害地影響效能。如果必須從管線清除并隨后重新提取指令,那么效能及功率消 耗兩者均遭受損失。
幾乎所有的現(xiàn)實世界程序均包含條件分支指令,且條件分支指令的實際分支行為 直到在管線深處對所述指令進行評價時才獲知。為避免由等待分支指令的實際評價將 引起的停止,大多數(shù)現(xiàn)代處理器采用某一形式的分支預測,借此在管線中較早地預測 條件分支指令的分支行為?;谒A測的分支評價,處理器推測性地提取并執(zhí)行來自 預測的地址的指令,所述預測的地址是分支目標地址(如果預測采用所述分支)或者 所述分支指令之后的下一順序地址(如果預測不采用所述分支)。當確定實際的分支 行為時,如果對分支進行了錯誤地預測,那么必須從管線中清除所述推測性地提取的 指令,且從正確的下一地址提取新的指令。響應于不正確的分支預測而推測性地提取 指令會負面影響處理器效能和功率消耗。因此,改善分支預測的準確性是重要的設計 目標。
分支預測的數(shù)種方法是基于正在預測的分支指令及/或同一代碼中的其它分支指 令的分支評價歷史。對實際代碼的廣泛分析指示,不久以前的分支評價樣式可能是未 來分支指令的評價的良好指示符。已知一種形式的分支預測利用分支歷史表(BHT)來存儲對最近分支評價的預測。
作為一個實例,BHT可包括多個飽和計數(shù)器,所述多個飽和計數(shù)器的MSB充當雙模 態(tài)分支預測器。例如,每一計數(shù)器均可包括呈現(xiàn)四種狀態(tài)中的一者的2位計數(shù)器,所
述四種狀態(tài)中的每一者被指派一加權(quán)預測值,例如
ll-強預測采用
10-弱預測采用
01-弱預測不采用
OO-強預測不采用
每當對應的分支指令評價為"采用"時,計數(shù)器均遞增,而每當所述指令評價為 "不采用"時,計數(shù)器均遞減。計數(shù)器的MSB是雙模態(tài)分支預測器;其將預測待采 用或者不采用的分支,而不管基本預測的強度或權(quán)重如何。飽和計數(shù)器減少罕見分支 評價的預測錯誤,因為在一個方向上的單個分支評價不會改變在另一方向上為飽和的 計數(shù)器的預測。
在"局部"BHT的情況下,每一分支指令(正在預測其分支評價)與單個BHT 計數(shù)器相關(guān)聯(lián)。因此,用分支指令地址(BIA)的一部分給BHT加索引。許多現(xiàn)代處 理器在單個提取操作中提取塊或提取群組中的多個指令。在此情況下,認為與塊或提
取群組相關(guān)聯(lián)的地址為BIA,如所述措辭在本文中所使用的。在"全局"BHT的情況 下,在給BHT計數(shù)器加索引之前,最近全局分支評價歷史可與BIA級聯(lián)(g選擇)
或與其散列(g共享)。
具有不同指令長度的指令集使BHT的設計復雜。特定來說,在每一不同的指令 集執(zhí)行模式中對BHT進行不同的理想加索引,這是因為每一計數(shù)器均與一分支指令 相關(guān)聯(lián),且在不同的指令集執(zhí)行模式中所述指令落在不同的存儲器邊界上。 一個已知 解決方案是簡單地基于最大指令長度確定BHT大小,而基于最小指令長度對其定址。
此解決方案使得表的大部分空白,或具有與較長分支指令相關(guān)聯(lián)的復制條目。另一已 知解決方案是在每一不同指令集執(zhí)行模式中有效地使用指令地址的不同部分來多路 復用BHT索引地址。此添加大量多路復用器,從而增加硅面積及功率消耗。然而, 更關(guān)鍵地,其對關(guān)鍵路徑添加延遲,由此增加循環(huán)時間且負面地影響處理器效能。
發(fā)明內(nèi)容
根據(jù)一個或一個以上實施例,形成BHT行及計數(shù)器索引地址,所述BHT行及計 數(shù)器索引地址存取BHT中的每一計數(shù)器且減少基于當前指令集執(zhí)行模式進行多路復 用的地址位的數(shù)目。此外,在一個實施例中,以使得在一個指令集執(zhí)行模式中針對每 一存取對BHT的一半斷電的方式來布置BHT行內(nèi)的計數(shù)器。
一個實施例涉及一種在可變長度指令集處理器中形成用以給BHT中的每一行加 索引的地址的方法,所述處理器至少在具有第一最小指令長度的第一指令集執(zhí)行模式中及具有較小的第二最小指令長度的第二指令集執(zhí)行模式中執(zhí)行指令,借此每一指令 集執(zhí)行模式使用不同的地址位子集給BHT中的行邏輯地加索引。識別第一及第二指
令集執(zhí)行模式的共用BHT行索引地址位?;谥噶罴瘓?zhí)行模式指示符多路復用第一 指令集執(zhí)行模式專有的最高有效BHT行索引地址位及第二指令集執(zhí)行模式專有的最 低有效BHT行索引地址位。將共用及經(jīng)多路復用的地址位級聯(lián),且使用經(jīng)級聯(lián)的地 址給BHT中的行加索引。
另一實施例涉及一種在可變長度指令集處理器中形成用以存取BHT中的每一計 數(shù)器的行及計數(shù)器索引地址的方法,所述可變長度指令集處理器至少在具有第一最小 指令長度的第一指令集執(zhí)行模式中及具有較小的第二最小指令長度的第二指令集執(zhí) 行模式中執(zhí)行指令。使用第二指令集執(zhí)行模式的行索引地址位給BHT中的行加索引。 基于指令集執(zhí)行模式指示符多路復用第一指令集執(zhí)行模式專有的最高有效BHT行索 引地址位及第二指令集執(zhí)行模式專有的最低有效BHT計數(shù)器索引地址位。每一 BHT 行中的計數(shù)器均使用除第二指令集執(zhí)行模式的最低有效計數(shù)器索引地址位之外的與 經(jīng)多路復用位級聯(lián)的所有位來加索引。
又一實施例涉及一種在可變長度指令集處理器中操作包括多個計數(shù)器的BHT的
方法,所述可變長度指令集處理器至少在具有第一最小指令長度的第一指令集執(zhí)行模 式中及具有較小的第二最小指令長度的第二指令集執(zhí)行模式中執(zhí)行指令。在第二指令
集執(zhí)行模式中,在BHT存取期間,給全部BHT通電。在第一指令集執(zhí)行模式中在 BHT存取期間僅給BHT的一半通電。
另一實施例涉及一種處理器。所述處理器包含具有提取級且操作以至少在具有第 一最小指令長度的第一指令集執(zhí)行模式中及具有較小的第二最小指令長度的第二指 令集執(zhí)行模式中執(zhí)行指令的指令執(zhí)行管線。所述處理器還包含BHT,其包括由提取 管線級中的指令地址所布置及加索引的多個計數(shù)器以使得在第一指令集執(zhí)行模式中, 僅給BHT的一半通電。
圖l是處理器的功能方框圖。
圖2是處理器的提取級的功能方框圖。
圖3是根據(jù)一個實施例的BHT的功能方框圖。
圖4是根據(jù)不同實施例的BHT的功能方框圖,其中在一個處理器指令集執(zhí)行模 式期間僅對BHT的一半通電。
具體實施例方式
圖1描繪處理器10的功能方框圖。處理器10包含指令單元12及一個或一個以 上執(zhí)行單元14。指令單元12提供對到執(zhí)行單元14的指令流的集中控制。指令單元12從指令高速緩沖存儲器16提取指令,其中存儲器地址翻譯及許可是由指令側(cè)翻譯
旁視緩沖器(ITLB) 18來進行管理。
執(zhí)行單元14執(zhí)行指令單元12所分派的指令。執(zhí)行單元14對通用寄存器(GPR) 20進行讀取及寫入操作且從數(shù)據(jù)高速緩沖存儲器22存取數(shù)據(jù),其中存儲器地址翻譯 及許可是由主要翻譯旁視緩沖器(TLB) 24來進行管理。在各種實施例中,ITLB 18 可包括部分TLB24的副本。另一選擇為,可集成ITLB 18及TLB24。類似地,在處 理器10的各種實施例中,可集成或聯(lián)合指令高速緩沖存儲器16和數(shù)據(jù)高速緩沖存儲 器22。指令高速緩沖存儲器16及/或數(shù)據(jù)高速緩沖存儲器22中的未命中致使對第二 層級或L2高速緩沖存儲器26的存取,盡管在圖1中將其描繪為統(tǒng)一的指令及數(shù)據(jù)高 速緩沖存儲器26,但其它實施例可包含分開的L2高速緩沖存儲器。L2高速緩沖存儲 器26中的未命中致使對受存儲器接口30控制的主要(芯片外)存儲器28的存取。
指令單元12包含處理器10管線的提取32及解碼36級。提取級32執(zhí)行指令高 速緩沖存儲器16存取以檢索指令,如果所需指令不駐存在指令高速緩沖存儲器16或 L2高速緩沖存儲器26中,那么所述存取可分別包含L2高速緩沖存儲器26及/或存 儲器28存取。解碼級36解碼所檢索的指令。指令單元12進一步包含用以存儲解碼 級36所解碼的指令的指令隊列38,及用以分派所排隊指令到適合執(zhí)行單元14的指 令分派單元40。
分支預測單元(BPU) 42預測條件分支指令的執(zhí)行行為。與從指令高速緩沖存 儲器16的指令提取并行,提取級32中的指令地址存取分支目標地址高速緩沖存儲器 (BTAC) 44及分支歷史表(BHT) 46。 BTAC 44中的命中指示先前評價為采用的分 支指令,且BTAC44提供所述分支指令的前一執(zhí)行的分支目標地址(BTA) 。 BHT46 維持對應于已決定的分支指令的分支預測記錄,所述記錄指示已知分支在先前是被評 價為采用還是不采用。BHT 46記錄可(例如)包含飽和計數(shù)器,所述飽和計數(shù)器基 于所述分支指令的先前評價提供將采用或不采用分支的弱到強預測。BPU 42評估來 自BTAC 44的命中/未命中信息及來自BHT46的分支歷史信息以構(gòu)成分支預測。BPU 42可包含額外電路(未顯示)以增加分支預測準確性,例如追蹤先前分支預測的準 確性的全局分支歷史寄存器、表或電路等。
圖2是更加詳細地描繪指令單元12的提取級32及分支預測電路的功能方框圖。 應注意,圖2中的虛線描繪功能存取關(guān)系,而不必為直接連接。提取級32包含從各 種源選擇指令地址的高速緩沖存儲器存取操縱邏輯48。每循環(huán)將一個指令地址發(fā)射 到指令提取管線中,在此實施例中所述指令提取管線包括三個級提取(FETCH) 1 級50、提取2級52及提取3級54。
高速緩沖存儲器存取操縱邏輯48從各種源選擇用以發(fā)射到提取管線中的指令地 址。 一個指令地址源是對提取1管線級50的輸出進行操作以產(chǎn)生下一順序指令地址
(其可能與一個指令或包括多個指令的塊或提取群組相關(guān)聯(lián))的遞增器56的輸出。 另一指令地址源是BTAC 44,如果BPU 42預測分支評價為采用,那么BTAC 44提供分支指令的先前執(zhí)行的分支目標地址。其它指令地址源包含異常處理程序、中斷向 量地址等。
提取l級50及提取2級52執(zhí)行對指令高速緩沖存儲器16及BTAC44的同時、 并行、兩級存取且在第一循環(huán)中同時存取BHT 46。特定來說,在第一高速緩沖存儲 器存取循環(huán)期間,提取l級50中的指令地址存取指令高速緩沖存儲器16、 BTAC44 及BHT46以斷定與所述地址相關(guān)聯(lián)的指令是否駐存在指令高速緩沖存儲器16中(經(jīng) 由指令高速緩沖存儲器16中的命中或未命中);是否已知分支指令與所述指令地址 相關(guān)聯(lián)(經(jīng)由BTAC44中的命中或未命中);及獲得分支預測(經(jīng)由BHT46中的計 數(shù)器值)。在隨后的第二高速緩沖存儲器存取循環(huán)中,指令地址運動到提取2級52, 且如果指令地址在相應的高速緩沖存儲器16、 44中命中,那么可從指令高速緩沖存 儲器16獲取指令及/或可從BTAC44獲取分支目標地址(BTA)。
如果指令地址在指令高速緩沖存儲器16中未命中,那么其繼續(xù)進行到提取3級 54以啟動L2高速緩沖存儲器26存取。所屬技術(shù)領(lǐng)域的技術(shù)人員將易于認識到,取 決于(例如)指令高速緩沖存儲器16及BTAC44的存取定時,提取管線可包括比圖 2中所描繪的實施例多或少的寄存器級。
如本文中所使用,措詞"功能指令地址"是指實際中用來存取指令的字節(jié)存儲器 地址的位,而不管最低有效端上不使用的位如何。功能指令地址是使用用于不同指令 長度的不同字節(jié)存儲器地址位而形成。例如,4096 16位指令通過字節(jié)存儲器地址位 [12:1]來定址。位0不是用于16位指令的功能指令地址的一部分,這是因為不對個別 字節(jié)定址。類似地,4096 32位指令通過字節(jié)存儲器地址位[13:2]來定址。字節(jié)存儲器 地址位[1:0]中的任一者都不是用于32位指令的功能指令地址的一部分,這是因為既 不對字節(jié)也不對半字進行定址。
圖3中描繪BHT 46的一個實施例的功能方框圖。BHT 46包含布置為512個行 的4096個2位計數(shù)器,其中每行8個計數(shù)器。因此,行索引地址包括九個位,且計 數(shù)器索引地址包括三個位。然而,在執(zhí)行不同最小長度指令的不同指令集執(zhí)行模式中, 對應于功能指令地址中的不同,行及計數(shù)器地址位將不同。特定來說,在32位指令 集執(zhí)行模式中,本機行索引地址將包括指令地址位[13:5]而在16位指令集執(zhí)行模式中 包括位[12:4]。類似地,在32位指令集執(zhí)行模式中,本機計數(shù)器索引地址將包括指令 地址位[4:2]而在16位指令集執(zhí)行模式中包括位[3:1]。
如本文中所使用,具有特定最小指令長度的既定指令集執(zhí)行模式的措辭"本機" 行及計數(shù)器索引地址是指將用于存取BHT 46 (如果所有指令具有相同長度)的指令 地址位。特定來說,本機計數(shù)器索引地址包括給每行所有2n個計數(shù)器唯一地加索引 所需的最低有效n個功能指令地址位。本機行索引地址包括給BHT 46中的所有2m 個行唯一地加索引所需的功能指令地址中的接下來m個較有效位。
使用指令集執(zhí)行模式作為選擇器的本機行與計數(shù)器索引地址之間的多路復用需 要多路復用所有(m+n)個位(在圖3的實施例中為12個位),從而導致不可接受的功率消耗及存取延遲。
在圖3中所描繪的實施例中,通過采用32位及16位指令集執(zhí)行模式兩者所共用 的本機行索引地址位(即位[12:5])且使在對應指令集執(zhí)行模式中時每一相應本機行 索引地址專有的位級聯(lián)到所述共用位來形成行索引地址。g卩,基于當前指令集執(zhí)行模 式將位13 (32位指令集執(zhí)行模式專有的本機行索引地址)及位4 (16位指令集執(zhí)行 模式專有的本機行索引地址)多路復用在一起,且使其級聯(lián)到共用位[12:5]以形成9 位行索引地址。
如圖3中所描繪,在給BHT46的行加索引之前,此9位行索引地址可任選地與 全局分支歷史信息組合在一起,例如通過散列函數(shù)或其它邏輯58。在此實施例中, 基于當前指令集執(zhí)行模式對全部本機計數(shù)器索引地址進行多路復用。特定來說,32 位指令集執(zhí)行模式中的位[4:2]及16位指令集執(zhí)行模式中的位[3:1]給每一行內(nèi)的計數(shù) 器加索引。此需要多路復用計數(shù)器索引地址中的三個位及行索引地址中的一個位(總 共四個多路復用器用于BHT 46),此與當多路復用全部本機行及計數(shù)器索引地址位 時的12個相反。
圖4描繪BHT 46的另一實施例,其中在32位及16位指令集執(zhí)行模式兩者中僅 需要單個位多路復用器來完全利用BHT46中的每一計數(shù)器。所述行索引地址為具有 較小最小指令長度的指令集執(zhí)行模式的本機行索引地址-在此情況下,為16位指令集 執(zhí)行模式-即,位[12:4]。還是此處,行索引地址可通過邏輯58中的全局分支歷史來 修改。計數(shù)器索引地址是通過采用32位及16位指令集執(zhí)行模式兩者所共用的本機計 數(shù)器索引地址位(即位[3:2])且使每一經(jīng)級聯(lián)的本機行/計數(shù)器索引地址專有的位級聯(lián) 到這些共用位而形成。即,基于當前指令集執(zhí)行模式,將位13 (32位指令集執(zhí)行模 式的本機行索引地址專有)及位1 (16位指令集執(zhí)行模式的本機計數(shù)器索引地址專有) 多路復用在一起且使其級聯(lián)到共用位[3:2]以形成3位計數(shù)器索引地址。
另外,在圖4的實施例中,BHT46被劃分為兩半,對其中的每一者單獨通電。 此外,在每一行中布置計數(shù)器以使得具有偶數(shù)計數(shù)器索引地址(即,以0結(jié)束)的計 數(shù)器在所述行的一半中,且具有奇數(shù)計數(shù)器索引地址(即以1結(jié)束)的計數(shù)器在所述 行的另一半中。由于在32位指令集執(zhí)行模式中,計數(shù)器索引地址的最低有效位為位 13,當處于所述模式中時,僅需要對BHT46的一半通電,-BHT 46的活動一半通過 位13來選擇。此表示當處理器在32位指令集執(zhí)行模式中操作時顯著省電。
在圖2中所描繪的處理器10的提取級32的實施例中,提取n級寄存器50、 52、 54各自持有四個半字(8個字節(jié))。因此,在32位指令集執(zhí)行模式中,每一提取n 級寄存器50、 52、 54持有最大2個指令且在16位指令集執(zhí)行模式中持有最大四個指 令。因此,BHT 46存取在32位模式中可檢索高達兩個計數(shù)器值且在16位模式中檢 索高達四個計數(shù)器值。絕不可能在同一循環(huán)中存取所有八個計數(shù)器值。
在圖4的BHT 46實施例中,在每一行中進一步布置計數(shù)器以使得為特定BHT 46 存取互相專有的計數(shù)器值-即兩個不能被同時存取-直接鄰近。此允許計數(shù)器值在BHT46中被多路復用,如圖4中第一行輸出多路復用器所描繪,從而減少BHT46輸出處 的布線聚集。對布置計數(shù)器的此約束在圖4的實施例中是通過并置其計數(shù)器索引地址 僅在其最大有效位中不同的計數(shù)器來實現(xiàn)。例如,僅在位3處不同的計數(shù)器索引地址 0xl (001)及0x5 (101)鄰近。到輸出多路復用器的第一層級中的每一者的選擇輸 入是相關(guān)聯(lián)指令地址中的位3。
在32位指令集執(zhí)行模式中,可在單個BHT 46存取中檢索最大兩個計數(shù)器值。 圖4中所描繪的多路復用器的第二層級將BHT 46的偶數(shù)側(cè)的輸出操縱到BHT 46的 奇數(shù)側(cè)。還在此處,此減少BHT 46輸出處的布線聚集且簡化32位指令集執(zhí)行模式 中計數(shù)器值的檢索。
盡管本文中相對于32位及16位指令集執(zhí)行模式描述了本發(fā)明,但本發(fā)明并不限 于此實施方案,且有利地,可將本發(fā)明應用于任何可變長度指令集處理器。另外,所 屬技術(shù)領(lǐng)域的技術(shù)人員可改變計數(shù)器值的特定布置及多路復用以針對任何特定實施 方案最優(yōu)化本發(fā)明。通常,盡管本文中己相對于本發(fā)明的特定特征、方面及實施例對 本發(fā)明進行了描述,但很明顯在本發(fā)明寬泛范圍內(nèi)可存在諸多改變、修改及其它實施 例,且因此所有改變、修改及實施例皆視為屬于本發(fā)明范圍內(nèi)。因此,應在所有方面 將本發(fā)明實施例理解為說明性而非限制性,且包含在所附權(quán)利要求書的含義和等效范 圍內(nèi)的所有變化均涵蓋在所附權(quán)利要求范圍內(nèi)。
權(quán)利要求
1、一種在可變長度指令集處理器中、形成用于給分支歷史表(BHT)中的每一行加索引的地址的方法,所述可變長度指令集處理器至少在具有第一最小指令集長度的第一指令集執(zhí)行模式及具有較小的第二最小指令長度的第二指令集執(zhí)行模式中執(zhí)行指令,借此每一指令集執(zhí)行模式均具有不同的本機索引地址,所述方法包括識別所述第一及第二指令集執(zhí)行模式的共用本機行索引地址位,基于指令集執(zhí)行模式指示符,在所述第一指令集執(zhí)行模式專有的最高有效本機行索引地址位與所述第二指令集執(zhí)行模式專有的最低有效本機行索引地址位之間進行多路復用;使所述共用及經(jīng)多路復用的地址位級聯(lián);及使用所述經(jīng)級聯(lián)的地址給所述BHT中的行加索引。
2、 如權(quán)利要求l所述的方法,其進一步包括在給所述BHT中的行加索引之前, 對所述經(jīng)級聯(lián)的地址與全局分支歷史值進行散列。
3、 如權(quán)利要求2所述的方法,其中對所述經(jīng)級聯(lián)的地址與所述全局分支歷史值 進行散列包括在所述經(jīng)級聯(lián)的地址與所述全局分支歷史值之間執(zhí)行邏輯異或。
4、 如權(quán)利要求1所述的方法,其中通過在所述第一指令集執(zhí)行模式的所述本機 計數(shù)器索引地址與所述第二指令集執(zhí)行模式的所述本機計數(shù)器索引地址之間進行多 路復用來形成經(jīng)加索引行的計數(shù)器索引地址。
5、 如權(quán)利要求1所述的方法,其中所述第一最小指令長度為32位且所述第二最 小指令長度為16位。
6、 如權(quán)利要求4所述的方法,其中所述BHT包括每行8個計數(shù)器的512個行, 且其中所述共用本機行索弓I地址位包括位[12:5];所述第一指令集執(zhí)行模式專有的所述最高有效本機行索引地址位包括位13;且 所述第二指令集執(zhí)行模式專有的所述最低有效本機行索引地址位包括位4。
7、 如權(quán)利要求5所述的方法,其中通過在所述第一指令集執(zhí)行模式中的地址位 [4:2]與所述第二指令集執(zhí)行模式中的地址位[3:1]之間進行多路復用來形成經(jīng)加索引 行的計數(shù)器索引地址。
8、 一種在可變長度指令集處理器中、形成用以存取分支歷史表(BHT)中的每一計數(shù)器的行及計數(shù)器索引地址的方法,所述可變長度指令集處理器至少在具有第一 最小指令長度的第一指令集執(zhí)行模式及具有較小的第二最小指令長度的第二指令集執(zhí)行模式中執(zhí)行指令,所述方法包括使用所述第二指令集執(zhí)行模式的本機行索引地址給所述BHT中的行加索引;基于指令集執(zhí)行模式指示符,在所述第一指令集執(zhí)行模式專有的最高有效本機行 索引地址位與所述第二指令集執(zhí)行模式專有的最低有效本機計數(shù)器索引地址位之間 進行多路復用;及使用除所述第二指令集執(zhí)行模式的所述最低有效本機計數(shù)器索引地址位之外的與所述經(jīng)多路復用位級聯(lián)的所有位給每一 BHT行中的計數(shù)器加索引。
9、 如權(quán)利要求8所述的方法,其進一步包括 給所述BHT的兩半單獨通電;給每一行中的所述計數(shù)器定序以使得將具有奇數(shù)計數(shù)器索引地址的計數(shù)器分組 在一半中而將具有偶數(shù)計數(shù)器索引地址的計數(shù)器分組在另一半中;及在所述第一指令集執(zhí)行模式中基于所述第一指令集執(zhí)行模式專有的所述最高有 效本機行索引地址位的值,僅給所述BHT的一半通電。
10、 如權(quán)利要求9所述的方法,其進一步包括給每一行中的所述計數(shù)器定序以使 得不能同時從所述BHT讀取的計數(shù)器值是相鄰的。
11、 如權(quán)利要求8所述的方法,其中所述第一最小指令長度為32位且所述第二 最小指令長度為16位。
12、 如權(quán)利要求11所述的方法,其中所述BHT包括每行8個計數(shù)器的512個行, 且其中所述第二指令集執(zhí)行模式的所述本機行索引地址位包括位[12:4];所述第一指令集執(zhí)行模式專有的所述最高有效本機行索引地址位包括位13,且 所述第二指令集執(zhí)行模式專有的所述最低有效本機計數(shù)器索引地址位包括位1;且除所述第二指令集執(zhí)行模式的所述最低有效本機計數(shù)器索引地址位之外的所有 位包括位[3:2]。
13、 一種在可變長度指令集處理器中操作包括多個計數(shù)器的分支歷史表(BHT) 的方法,所述可變長度指令集處理器至少在具有第一最小指令長度的第一指令集執(zhí)行 模式及具有較小的第二最小指令長度的第二指令集執(zhí)行模式中執(zhí)行指令,所述方法包 括在所述第二指令集執(zhí)行模式中在BHT存取期間給所述全部BHT通電;及 在所述第一指令集執(zhí)行模式中在BHT存取期間僅給所述BHT的一半通電。
14、 如權(quán)利要求13所述的方法,其進一步包括將所述多個計數(shù)器布置成多個行, 每一行含有多個計數(shù)器以使得所有具有偶數(shù)計數(shù)器索引地址的所述計數(shù)器都在其相 應行的一半中,且所有具有奇數(shù)計數(shù)器索引地址的所述計數(shù)器都在其相應行的另一半 中。
15、 如權(quán)利要求14所述的方法,其中使不能同時存取的計數(shù)器在其相應行中彼 此鄰近地并置。
16、 一種處理器,其包括指令執(zhí)行管線,其具有提取級且操作以至少在具有第一最小指令長度的第一指令 集執(zhí)行模式及具有較小的第二最小指令長度的第二指令集執(zhí)行模式中執(zhí)行指令;及分支歷史表(BHT),其包括由所述提取管線級中的指令地址布置并加索引的多 個計數(shù)器,以使得在所述第一指令集執(zhí)行模式中僅給所述BHT的一半通電。
17、 如權(quán)利要求16所述的處理器,其中所述BHT中的所述多個計數(shù)器被布置成 多個行,每一行含有多個計數(shù)器,以使得所有具有偶數(shù)計數(shù)器索引地址的所述計數(shù)器 都在其相應行的一半中,且所有具有奇數(shù)計數(shù)器索引地址的所述計數(shù)器都在其相應行 的另一半中。
18、 如權(quán)利要求17所述的處理器,其中所述BHT中不能同時存取的計數(shù)器在其 相應行中彼此鄰近地并置。
全文摘要
在至少在具有第一最小指令長度的第一指令集執(zhí)行模式及具有較小的第二最小指令長度的第二指令集執(zhí)行模式中執(zhí)行指令的處理器中形成行及計數(shù)器索引地址,所述行及計數(shù)器索引地址存取分支歷史表(BHT)中的每一計數(shù)器且減少基于當前指令集執(zhí)行模式而多路復用的索引地址位的數(shù)目。在一個實施例中,以使得在一個指令集執(zhí)行模式中可針對每一存取給所述BHT的一半斷電的方式布置BHT行內(nèi)的計數(shù)器并給其加索引。
文檔編號G06F9/38GK101517534SQ200780034094
公開日2009年8月26日 申請日期2007年9月28日 優(yōu)先權(quán)日2006年9月29日
發(fā)明者布萊恩·邁克爾·斯坦普爾, 羅德尼·韋恩·史密斯 申請人:高通股份有限公司