TW455810B - A method and apparatus for branch prediction using a second level branch prediction table - Google Patents

A method and apparatus for branch prediction using a second level branch prediction table Download PDF

Info

Publication number
TW455810B
TW455810B TW088113818A TW88113818A TW455810B TW 455810 B TW455810 B TW 455810B TW 088113818 A TW088113818 A TW 088113818A TW 88113818 A TW88113818 A TW 88113818A TW 455810 B TW455810 B TW 455810B
Authority
TW
Taiwan
Prior art keywords
address
branch
bpt
branch prediction
patent application
Prior art date
Application number
TW088113818A
Other languages
English (en)
Inventor
Tse-Yu Yeh
Harshvardhan P Sharangpani
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Application granted granted Critical
Publication of TW455810B publication Critical patent/TW455810B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3804Instruction prefetching for branches, e.g. hedging, branch folding
    • G06F9/3806Instruction prefetching for branches, e.g. hedging, branch folding using address prediction, e.g. return stack, branch history buffer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3842Speculative instruction execution
    • G06F9/3844Speculative instruction execution using dynamic branch prediction, e.g. using branch history tables

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Advance Control (AREA)

Description

A7 B7 45^81〇 五、發明說明( 發明領域 本發明係相關於電腦系統’更特定於— J用第·一階與第 二階分支預測表執行分支預測的處理器。 、 發明背景 高等處理器採用管線技術來非常高速地執行指人。在匕 樣的處理器上,整個的機器被組織成多個 : \&線,包含幾個 率接級的硬體。指令的處理被劃分為—連_的動作,而每 個動作係由相對應管線級Γ導管級")中的硬體執行;Z幾 個指令無關的動作可以由不同的導管級同時處理,增加此 處理器的指令處理量。其中管線的處理器包含在每個導管 級中的多個執行資源,此處理器的處理量可以超過每時鐘 週期一個指令。要完全利用指令的執行能力,必須從正= 的執行路徑提供足夠的指令給此處理器的執行資源。 經濟部智慧財產局員工消費合作 '社印製 在典型的電腦系統中,一指令指標(ΙΡ)指引此處理器從 此程式碼的一個指令到下一個指令。一指令可以指引ΙΡ 以晋通的程式碼順序到下一個指令,或者它可以指引工Ρ 跳過一部份的程式碼並繼續執行非連績性的指令。使得處 理5或繼績依序地執行下一個指令或"分支,,到—不同, 4 L η彳Ej令的心令稱為分支指令。例如,當字處理器做了 扭平檢查,執行軟體指令來驗證每個字是正確的拼字。只 要子把得正確,此指令便依序地執行。然而,一旦發現不 正確括字的字,一分支指令指引I p分支到一副程序,其 週知使用者此不正確的拼字。這個副程序接著由處理器執 行。 -4™ 氏張尺度翻_關家標準(CNS)A4規格(21ϋ X 297公爱) 5 經濟部智慧財產局員工消費合作社印製 4
B 1 Q A7 ---—---- B7 五、發明說明(2 ) 分支指令提出保持管線填滿來自正確執行路徑之指令的 王要挑戰。當執行-分支指令而分支條件滿足時,處理器 的控制流程跳到-個新的程式順序,&自新程式碼順序的 指令轉移到此管線。分支執行通常發生在管線的後端,而 指令則是在管線的前端取回。如果指令的取回依賴分支的 執行來決定正確的執行路徑,在分支條件決定出來之前, 此處理器管線可能填滿來自錯誤執行路徑的指令。這些指 令接著可能必須要自管線中清除掉,在來自正確執行路徑 的指令取回的同時讓受到影響的管線級中的資源間置。此 間置的管線級參考為管線氣泡’因為在它們被填入來自正 確執行路徑的指令前所提供的無用的輸出。 現代的處理器納入分支預測模组在它們的管線前端,以 降低管線氣泡的數目。當分支指令進入管線的前端時,當 它在管線後端執行時此分支預測模组預測是否這個分支指 令將被採用。如果預測此分支會被採用(非順序性的指令 執行)’此分支預測模組提供一分支標的位址給指令取回 模組’藉由設定此I P位址等於包含分支的程式碼之第一 個指令的位址來將此I p轉向。包含分支的程式碼之第— 個指令的位址稱為"標的位址,,。此取回模组,其同樣位 在管線前端的,開始從此標的位址取回指令。如果,反過 來說’一分支預測器預測將不會採用此分支(順序的指令 執行),此分支預測器遞增此I P位址,這樣I p則指向益通 程式碼順序的下一個指令。當分支執行發生在管線後端 時’此處理器可以驗證在前端做出的預測是否正確。如果 -5- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) i Ί ί- I ---!裂…— . (請先閱讀背面之注意事項莽:.寫本頁) 訂· -線_ 4 5 5 8 1 0 A7 B7 五、發明說明(3 ) 是不正確的,此管線被清除掉。此分支預測的準確度越 高,管線氣泡及清除掉的數目越少。 經濟部智慧財產局員工消費合作社印製 傳統的分支預測模组採用分支標的緩衝器(BTBs)來错 存預測輸入項,其包含的資訊例如是否採用一分支及在分 支被採用時可能的標的位址。這些分支預測輸入項與包含 分支指令的此IP位址結合。對於在分支預測表中追赖的 每個I P位址,其結合的分支預測輸入項包含此I ρ位址與 歷史資訊,其有助於預測此分支是否在將來會被採用。然 而,即使在B T B中指令的查閱處理,決定出是否採用此 分支’以及在被採用的預測提供標的位址給取回模組,造 成再導引此處理器到此標的位址的延遲°這項延遲可以讓 來自錯誤執行路徑的指令進入並在管線中傳播向下。因為 這些指令並未加到預測執行路徑的向前進行,當它們被清 除掉時其在管線中建立”氣泡”。更為準確及完整的分支 預測演繹(利用較大尺寸的分支表)花更久時間來完成並在 再導處理中產生更大的延遲。再引導此管線所需要的時 鐘週期數目越大,則在管線中產生的氣泡數目越大^因此 在存取分支預測結構的速度及這些結構内容的大小與準確 度要有折裒。對於速度及成本的原因,現代的處理器經常 會限制所採用B T B的大小。這會降低分支檢測及預測的 準確度,特別是在大工作量時。假定較小尺寸的B τ B, 有時必須以新的分支預測輸入項覆寫較舊的分支預測輸入 項=如裝一結合被覆寫分支預測輸入項的分支指令接著由 處埋器重新執行,並沒有存在歷史資訊來幫助此分支預刹 -6 - 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 45531 〇 A7 B7 五、發明說明(4 ) 盗預測此分支是否被採用。結果,分支預測準確度減低, _低了處理器的效能。當軟體應用程式大小增加時,在這 些應用程式中分支指令的數目也增加,而分支預測表的限 制大小變成很大的問題。因此需要提供一解決方案,其提 供最頻繁分支子集的低延遲分支預測(那些具高位置關 係)’並再提供整體工作集的有意義預測。 發明概要 說明的是一個分支預測器。一第一分支預測表連結到一 Ϊ P產生器來儲存分支預測輸入項。一第二分支預測表也 速結到此1 p產生器來儲存較大數目的分支預測入項。 根據本發明的具體實例,可找出此兩個層次的分支預測 結構來結合高速(低延遲)分支預測及分支的最高位置關係 的再引導的好處,以及整體高準確度的分支檢測及大型即 使降低速度的整體工作集合的預測。這可以完成而不需要 預測大小相當的成長。本發明的其他特色及優點將從隨附 圖式及梃面的詳細說明變得明顯。 圖式簡述 本發明藉由範例的方式加以說明但不受隨附圖式的眼 制’其中類似參考指示出類似的元件,其中: 圖2顯7F根據本發明之一具體實例的分支預測管線; 圆3顯不出圖2的分支預測器;以及 圆1為顯示本發明之方法的流程圖。 詳細說明 說明一具有第一階與第二階分支預測表之處理器的分支 -7- 本紙張尺度1¾用中國國豕標準(CNS)A4規格(210x297公髮) i:---,-ιϊ! -裝 i — (請先閲讀背面之注意事項寫本頁) 訂_ ΐ 經濟部智慧財產局員工消費合作社印製 4 5 5 8 1 〇 a? B7 經濟部智慧財產局員工消f合作社印製 五、發明說明(5 ) 預測器。一起始的指令指標(I P )位址由I p產生器所產 生。在此第一階(L 1 )的分支預測表(BPT )及第二階(L2) BPT中搜尋與起始I P位址結合的分支預測輸入項。對於本 發明的具體實例,此L1 BPT為結合性的(也就是,完全結 合或多向集合結合的)而L2 BPT是直接對映的。 因為此LI BPT為結合性的,分支預測輸入項被加上標 籤’而這些標籤,與分支預測資訊一起,被儲存在u BPT。在直接對映L2 BPT中的分支預測輸入項沒有加上標 籤,所以只有分支預測資訊儲存在L2 BPT中。因為L1 BPT中的分支預測輸入項大於L2 BPT中的分支預測輸入 項,此L2 BPT在與U BPT相同量的空間中可以有較多的 分1預測輸入項=因而,雖然LI BPT可比L2 BPT更為準 確及更快,此L2 BPT當做是LI BPT的"備援·•,可以讓額 外的分支預測資訊儲存在相當小量增加的處理器大小。藉 由在一處理器中同時包含LI BPT及L2 BPT,分支預測準 確度及整體的速度可同時改善而不須大量增加硬體成本。 力外’適度的增加L2 BPT的大小可以進—步的增強儲存 容量以便用大工作集合維持程式中的大量分支。 糾不結合起始I p位址的分支預測輸入項在[1 bpt中找 到(稱為L I BPT的”命中"),則與此輸入項結合的分支預 測访訊被用來預測一分支被採用或不採用(也就是,預測 接F來的i p位址)。如果與此起始I p位址結合的分支預測 輸入’未在此L 1 BPT找到(稱為LI BPT中的,'失誤"),則 與此[P位址結合的指令被解碼來決定其是否為分支指 -8- 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公釐〉 --:---.---------裂 *-- (請先閱讀背面之注意事項里本頁) >SJ· Γ 線· ^6 58 1 〇
經濟部智慧財產居員工消費合作社印製 五、發明說明(6 ) 々。如果是分支指令’則來自L2 BPT的分支預測資訊被 用來預測一分支的採用或不採用。 對於本發明的替代具體實例,此軟體提供對此處理器的 提π來幫助分支預測。對此具體實例,這些提示係用來決 足疋否使用此來自L2 ΒΡΤ的分支預測資訊或在軟體本身 解碼的分支預測資訊來預測—分支被採用或不採用。 —兩層次的分支預測器設計,例如可以發現這對用來執 行大型應用私式的處理器特別有用,例如那些在词服器及 工作站上執行的。本發明的具體實例的更詳盡說明,包含 不同組態及貫作’在下面提供°圖1為顯示本發明之方法 的流程圖。在步騾205上’對Li&L2分支預測表搜尋與 起始I P位址結合的分支預測輸入項。此Li BPT為—加上 標籤’結合性的表而L2 BPT為未加標籤直接對映的表。 對一具體實例,此LI BPT儲存比丄2 bpt為少的分支預測 輸入項’但此LI BPT較快且提供比L2 BPT更好的分支預 測+確度。因為此L1 BPT儲存較少的分支預測輸入項, 此LI BPT只儲存最近使用到的那些分支預測輸入項,因 而,最可能在最近的未來再次使用到的。 在圖I的步驟210上’決定出在結合起始丨^位址的 BPT中是否有命中。如果在LI BPT有命中,接著在步驟 2 1 5決定出是否結合起始I p位址的l 1 BPT中的分支預測 資訊指示出此分支應被預測為採用。如果此分支預測為採 用1則在步驟2 2 0上接下來的〖p位址再引導至來自τ a匸 或R S B的位址°如果,取而代之的,此分支預測為不採 -9 - 本紙張尺度適用令國國家標準(CNS)A4規格(210x 297公釐) ------.--------I --- (請先閱讀背面之注意事項表ί'寫本頁) 1Γ ;線. 45 581 〇 Α7 五、發明說明(7 ) 用,則在步騾2 2 5沒有再引導信號送出。 如果在LI BPT中沒有命中(L 1 BPT中的失誤),一解瑪 器在圖1的步驟2 3 0上解碼至少部份的指令來決定出結合 起始I P位址的指令為一分支指令。如果決定出此指令為 一分支指令’一標的位址也由解碼器在步騾2 3 〇做解碼, 以及是否此指令為一回傳。對其中分支預測命中由分支指 令提供到分支預測器的具體實例,此解碼器也在步驟2 3 〇 上解碼此命中資訊。 如果在圖1中的步驟2 3 5上決定出此指令不是分支指 令,則在步驟2 4 0上没有任何再引導信號送出。如果此指 令經決/i出為一分支指令,則接下來在步驟2 5 〇決定結合 此刀支‘令的命中疋否為靜態的。應注意到本發明的一替 代具體實例其中沒有實作命中,步驟25〇及26〇被除去, 而如果決定出此指令為一分支,則此處理流跳過步騾2 3 5 到步项:2 5 5 。 經濟部智慧財產局員工消費合作社印製 如果結合此分支指令的命中不是靜態的(也就是,是動 恐的)’則在圖1的步驟2 5 5上接著決定結合起始〗p位址的 L2 B PT中的分支預測資訊是否表示出此分支應預測為採 用=如果分支經預測為採用的,則在步驟265上此接下來 i p位址被再引導,預測接下來的t p為來自丁 A c、r s b的 位址(如果決足出指令為—回傳指令),或是由解碼器解碼 的位址。如果,取代的,此分支預測為不採用的’則在步 驟2 4 0上沒有再引導信號送出。 如裒,取代的,與此分支指令結合的提示為靜態的,則 -10- 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公釐) 455810 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(8 ) 接下來在圖1的步騾260中決定出此提示是否表示此分支 應被預測為採用或不採用。如果此分支被提示為採用,則 此處理流程如上述的繼續到步驟2 6 5。如果,取代的,此 分支被提示為不採用’則此處理流程如上述的繼續到步驟 240 = 應注意到在本發明的具體實例中,在圖1的步驟2 2 〇或 2 2 5上做出的分支預測比步驟2 4 0或2 6 5上的分支預測為 較早完成。 圖2顯示根據本發明的具體實例之分支預測管線。根據 圖2的管線’ I p多工器^ 0的輸出提供起始I p位址到遞增器 2 0 ’第一階(l 1 )分支預測器2 1及第二階(L 2 )分支預測器 2」遞心器20適當的遞增起始ιρ位址來產生接下來的ip L址並在第一管線級期間内提供接下來I p位址回到1 p 多工器10的輸入。IP遞增器20採用起始IP位址並以預定 I:遞増之=此加到起始I p位址的遞増量是將要執行的程 式碼的儲存連續性指令或指令群之兩個連續記憶體位址間 的差異。 分支預測器2丨可以產生一再引導信號並提供此信號 到丨P控制1 1的輸入。此信號指示出是否接下來的丨p位址 與此起始IP位址是連續的。如果L1分支預測器21送出再 引導信號到IP控制丨丨,這表示接下來的IP是非連續性 的,而Li分支預測器21接著在第二管線級期間内提供接 下來的I P位址到丨P多工器i 〇的輸入a L2分支預測器22還可以產生一再引導信號並提供此信 -11 - 本紙張尺度通用中國國家標準(CNS)A4規格(210 χ 297公釐) -1 ----------I------ (請先閱讀背面之注意事項寫本頁> iJ_ Γ -線_ 5 經濟部智慧財產局員工消費合作社印製 4 8 1 〇 Α7 --------B7 五、發明說明(9 ) 號到I P控制1 1的另一個輸入。此信號同樣的指示是否接 下來的I P位址與起始的I P位址為連續的。如果L 2分支預 測器2 2送出再引導信號到丨p控制1 1,這表示接下來的I P 是非連續的’而L 2分支預測器2 2接著在第三管線及期間 内提供接下來的1 P位址到I P多工器I 0的輸入。 I P控制1 1接著決定出,根據來自L 2分支預測器2 2及 L 1分支預測器2 1的信號,I p多工器1 〇的三個輸入中的那 一個會傳遞到此多工器的輸出,如果L I分支預測器2 i及 L 2分支預測器2 2都不送出再引導信號,來自遞增器2 〇的 遞增IP位址被選為來自多工器的接下來11}位址輸出。 如果L 1分支預測器2 t送出再引導信號,來自l丨分支預測 器2 1輸出的I p位址被選為來自多工器1 〇的接下來丨p位 址輸出。如果L 2分支預測器2 1送出再引導信號,來自L 2 刀支預測器2 1輸出的I p位址被選為來自多工器1 〇的接下 來丨P位址輸出。應注意到在此使用的’術語,,起始丨p位址 V考到任意I P位址,其用作預測接下來丨p位址的參考 加 畦始I P位址"並不限制於結合特定軟體應用程式的 0 —吖程式碼的I P位址。起始丨p位址可以是結合—應用 程式 < 任意行程式碼的任意丨p位址。圖3顯示根據本發明 具體rr例 < 圖2中L I分支預測器2丨及L 2分支預測器2 2。 圖3的分支預測器可以整個的包含在與此分支預測I為之 做分支預測的處理器同一個半導體基質上。對另_個具體 赏分:‘此分支_器的一或多個功能方塊位在分開的丰導 體基質上。例如,要減少處理器的整個大小,L2BPT i⑽ -12- 4 5 5 8 1 〇 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(1Q ) 可以位在分開的丰導體基質上。L1 BPT 100為一結合表, 其包含由位址標籤參考的分支預測輸入項。每個位址標籤 結合一包含分支指令的1]3位址。LI BPT 1〇〇中的每個分支 預測輸入項包含,除了結合的位址標籤外,分支預測資 訊* °此分支預測資訊係由分支預測器用來預測此分支是否 被採用。儲存在L 1 BPT 1 〇〇中特定形態之分支預測資訊等 比例於分支預測器可實作之任何不同形態分支預測演繹法 則’其令許多為熟習本技藝人所熟知。例如,根據本發明 的具體實例’位置關係歷史預測演繹法則併同u Βρτ ι〇〇 一起製作。對於另一個具體實例,總體性歷史分支預測演 釋法則或計數器預測器(例如,2位元的上下計數器,也 習知為兩種統計分支預測器)製作在L1 BPT 100中。對於 替代的具體實例’ L1 BPT i00被分割兩或多個分開的分支 于貝測表,每個表實作不同的分支預測演繹法則。一選擇器 電路接著決定那個演繹法則可提供特定案例的最準確預測 並選擇適當的表。 對於本發明之一具體實例,圖3的LI BPT 100為一多向 集合結合。對於本發明的另一具體實例,LI BPT 100為完 全結合性的》要改善LI BPT 1〇〇中的分支預測輸入向的搜 尋速度’此表要保持相當的小,有大約5 1 2到2 K的分支 預測輸入項的儲存容量》 起始I P位址提供到圖3的L !分支預測器2 1。這個起始 1 P仏址係.用來搜哥LI BPT 100及標的位址快取記憶體 (TAC) 101 。如果此位址在li bpt中找到,這是—個命 -13- > t -I I J------I! *-- . \)/ <請先閱讀背面之注意事項严..一寫本頁) 訂! -Γ -線. 本紙張尺度適用t囤國家標準(CNS)A4規格(210 χ·297公楚) 4 5 5 8 1 0 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(11 ) 中’而一命中信號從命中/失誤信號線1 2 1送到A N 〇閉 I 4 4的輸入。如果此位址沒有在LI BPT 100中找到,遠是 一個失誤’而一失誤信號在命中/失誤信號線1 2 1上送 出。如果在LI BPT 100中有一命中,而LI BPT 100中的結 合輸入項指示此分支被採用,這是由在採用/不採用信號 線1 2 2上送到A N D閘1 4 4其他輸入的採用信號指示。如果 在LI BPT 100中有一命中,而LI BPT 100中的結合輸入項 指示出此分支不被採用,這是由在採用/不採用信號線 122上送出的不採用信號指示。如果有一命中從liBP 丁 100中取出,而此L1BPT還指示出此分支是一回傳,遠是 由在回傳/不回傳信號線1 4 3設定到多工器1 〇 6的控制輸 入之回傳信號指示。如果有一命中自L1 BPT 100取出,而 此LI BPT指示出此分支不是回傳,這是由在回傳/不回傳 k號線上1 4 3設定的不回傳信號指示。 如果在圖3的LI BPT 100中有一命中,而此LI BPT指示 出此分支被採用,A N D閘1 4 4輸出再引導信號到I p控制 1 1 :如果在LI BPT 100中有一失誤或或在LI BPT中不採 用命屮’ A N D閘1 4 4不輸出一再引導信號。如果a N D閘 1 4 4輪出一再引導信號,也從多工器1 〇 6輸出丨p位址。回 傳/不回傳信號線1 4 3決定多工器1 〇 6的輪出。如果信號 線丨4 3指示出此分支為一回傳指令,來自連結到多工器 1 0 6輸入的回傳堆疊緩衝器(RSB) ίο之回傳位址傳遞到 夕工,ίττ I 0 6的輸出’接著到I p多工器1 〇。如果信號線1 4 3 指示出分支不是回傳指令(對於LI BPT〗〇〇中的採用命 -14 - 本纸張尺度適用令國國家標準(CNS)A4規格(210 X 297公釐) - -------------裝 (請先M讀背面之注意事ifif:,寫本頁〕 Γ ----訂---------線
HKiη!Η~ΓΤΓΗML 4 5 5 8 1 〇 A7 _ _B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(12 ) 中)’來自TAC 101的標的位址’其透過標的匯流排1 2 3連 結到多工器1 〇 ό的其他輸入,其傳遞到多工器丨〇 6的輸 出’並接著,到I P多工器1 〇。另外,在TAC 101中找到的 標的位址,與一命中失誤信號—起,也被提供到L 2分支 預測器2 2的多工器1 0 9輸入,如下面說明的。 圖3的L2 BPT 102為一包含分支預測輸入項的直接對映 表*其包含沒有位址標籤的分支預測資訊。此分支預測資 訊係由分支預測器用來預測~分支是否將被採用。儲存在 L2 BPT 102中的特定形態之分支預測資訊等比例於分支預 測器可實作之任何不同形態分支預測演繹法則,其中許多 為熟習本技藝人所熟知。某些這些分支預測演繹法則在上 面併同U BPT 100 —起說明。L2 BPT 102可以實作任何的 這些演繹法則或這些演繹法則的組合,不管Li BPT 100所 實作的演繹法則形態。 這是很優異的,特別是在成本上的考量,對於圖3的L2 B P T 1 0 2中贯作的分支預測演绎法則佔了極少量的空間。 因此’根據本發明的具體實例,L2 BPT 102實作出二位元 的計數器演繹法则做為它的分支預測方法。雖然二位元計 數器演繹法則可能不像,例如,在LI BPT 100中實作的本 地或總體的分支預測演繹法則一樣準確,一使用二位元計 數器演繹法則的分支預測表對每個分支預測輸入項只需要 兩個位元的儲存單元。實作本地的或總體的分支預測演繹 法則的分支預測表對於每個分支預測輸入項可需要恰好超 過兩個位元的儲存單元^藉由利用未加標籤的分支預測輸 -15- 本紙張尺度適用中國國豕標準(CNS)A4規格(21〇 κ 297公爱) (請先閱讀背面之注意事項导iv寫本頁) 裝 訂 Γ 線· 5 I. I: 45581〇 A7 _ ____ B7 五、發明說明(13 ) 入項及二位元計數器演繹法則,L2 BPT 102可用大約相同 量的空間儲存四到八倍或更多倍L1 BPT 100所可以儲存的 分支預測輸入項。因此’對於本發明的一個具體實例,L2 BPT 102有相當大的儲存容量大約2 κ到8 κ或更多的分支 預測輸入項。對一具體實例,其中L2 ΒΡΤ是未加標籤 的,一沒有結合的靜態提示(在下面更詳盡說明的)的分支 可以在失效後更新L2 ΒΡΤ預測。 儲存在結合起始I Ρ位址的分支預測輸入項中的分支預測 資訊從圖3的L2 ΒΡΤ 102讀取,而一採用或不採用的分支 預測利用這項資訊加以計算。取決分支的預測,採用或不 採用信號在t / η線1 2 6上送到多工器I 〇 7的輸入。對本發 明的具體實例’其中的L2 ΒΡΤ 102是直接對映的,總是會 有命中在這個表中。這表示某些百分比的這些命中可結合 一個I Ρ位址與不同I ρ位址的分支預測資訊。避免此問題 的一個方式為將位址標籤儲存在L2 ΒΡΤ 102中,並將那些 標奴與進來的I Ρ位址的標籤做比較。然而,藉由不儲存 標蕺在L2 ΒΡΤ 102中降低表大小之成本效益,可以發現比 儲存標蕺而獲得增加的分支預測準確度更有價值。 利m來自圖3之I Ρ多工器丨〇的ί Ρ位址對輸入指令緩衝器 1 0 3搜分而結合的指令提供給指令解碼器1 〇 4。對本發明 之一具體實例’解碼器1 〇 4部份或完全的解碼此指令來決 定出此指令是否為一分支指令,並且,如果是的話,解碼 器颔外的決定出此標的位址以及此指令是否為一回傳。取 決於此指令是否為一分支(或回傳),適當的信號經由b/nb -16- 本紙張尺度適用中國國家標準(CNS)A4規格(210 χ 297公釐) I _---1----!·裝 i ! (諳先閱讀背面之注意事項^.'寫本頁) Γ .線- 經濟部智慧財產局員工消費合作社印製 4-55810 Α7 Β7 五、發明說明(14 ) 線1 2 9送到A N D閘1 0 8的輪入。標的位址i 3 〇從解碼器 104送到多工器1〇9的輸入。 對其中分支預測提示包含在此指令中的—具體實例,圖 3的解碼器1 〇 4還決定出此分支預測提示是靜態的或是動 態的,並也’如果是靜態的,此解碼器決定出此提示為採 用的或不採用的。一指示此提示為靜態的或動態的信號經 由s/d提示線1 2 7提供到多工器! 0 7的控制輸入。一指示出 提πτ為採用或不採用的信號經t/ll提示線1 2 8提供到多工器 1 0 7的一個輸入。一靜態提示指示此分支預測器該結合的 分支指令應總是預測為採用或不不採用(取決於採用/不採 用提示值)而不管在L2 BPT 102中找到的任何分支預測資 訊。一動態提示指示此分支預測器在L2 Βρτ 102中找到的 分支預測資訊應被用來預測此分支為採用的或不採用。對 於本發明的替代性具體實例,一包含動態提示的指令還包 含一採用/不採用提示’其用來做為此分支指令的起始執 行時的此分支預測。之後,儲存在分支預測表中的分支預 測資訊被用來決定此分支指令接下來的分支預測。 經濟部智慧財產局員工消費合作社印製 如果經由sM提示線1 2 7提供到圖3的多工器1 〇 7的控制 輸入信號指示出此提示為動態的,則此多工器選擇,做為 它的輸出,此跨t/n線I 2 6來自L2 BPT 102的採用/不採用 信號。如果提供到多工器1 0 7控制輸入的信號取代的指示 此提示為靜感的’則此多工器選擇,做為它的輸出,此跨 t/n線1 2 8來自解碼器1 〇 4的採用/不採用提示信號。對於 其中L 2 β P T F為加上標藏的具體實例,此提示為動態的, -17- 本紙張尺度適用中國國家標準(CNS)A4規格(210、297公g ) 5 4 經濟部智慧財產局員工消費合作社印製 58 10 κι -------一 _Β7____五、發明說明(15 ) 而在此L2 BPT中有一失誤,此解碼的預測仍然被使用。 對此具體實例’ 一來自L2 BPT 102的命中/失誤線(或其之 相反值)與s/d提示線1 2 7 (或其之相反值)ANDed (或 W ANDed) ’而其輸出連結到多工器丨〇 7的控制輸入。 如果'經由圖3 b/nb線1 2 9提供到A N D閘1 0 8的信號指示 〜&此IP位址的指令為一分支(或回傳)指令’而多工 盗1 0 7的輸出指數出此分支為採用的,則A N D閛1 〇 8輸出 一再引導信號到AN D閘1 4 1的一個輸入。否則的話, A NJ D閉I 〇 8並不輸出一再引導信號。a N d閘1 4 I的其他 輸入為連結到來自LI BPT 100的命中/失誤信號線1 2 1的 反向輸入。AN D閘1 4 1係工作來防止載引導信號送到I p 控制1 1,如果A N D閘1 〇 8的輸出指示為再引導,但在L1 BPT中有一命中。這是因為找到來自LI BPT 100的早期預 測可以比來自L2 BPT 102的晚期預測更為準確而做到。因 此’ KAND閘1〇8的輸出指示再引導且在[I bpt 10〇中有 —夫誤時,A N D閘1 4 1輸出一再引導信號到〗p控制M。 4 的多工器1 〇 9係由經r/nr信號線丨4 〇之來自指令解碼 :奋I 0 4的回傳/非回傳信號,及經由h/in信號線丨5 〇的tac I 〇丨命屮/失誤信號所控制。指令解碼器丨〇 4選擇多工器 1 〇 9 fi.]適當輸出-例如,如果n/nr信號線丨4 〇指示出此指 令為一回傳指令’來自回傳堆疊緩衝器(RSB)丨42 (提供到 L I分支預測器2 1的相同r s B輸出)的回傳位址,其連結 到夕工忘1 0 9的輸入’傳遞到多工器1 〇 9的輸出以及接下 來的,到丨P多工器1 〇。如果信號線1 4 〇指示出此分支不 -18 - 本纸張灵度適用中舀國家標準(CNSU4規格(210 X 297公釐) ------------------—裂--- (請先閱讀背面之注意事項^',窝本頁) . -線· 5 4 5 8 10 A7 ____ _B7______五、發明說明(Μ ) 疋一回傳指令(對於一個採用的分支來自丁AC 1 〇丨的標 的位址傳遞到多工器i 09的輸出,如果在TAC 1〇1中有一 命中’如h/m信號線1 5 〇所指示的。否則的話,由解碼器 1 0 4解碼的標的位址並經由標的匯流排i 3 〇提供到多工器 1 0 9的另一個輸入傳遞到多工器1 〇 9的輸出。 接下來的I P預測接著提供給處理器,而位在該位址的指 令由此處理器執行。這項預測稍後被決定為正確的或不正 確的=結合此分支預測指令的儲存在Li BPT 1〇〇及在L2 BPT 1 02中的分支預測資訊可接著被更新來改善下次分支 指令執行的預測準確度。對於本發明之一具體實例,如果 結合一分支指令的I P位址在此L1 bpt中失誤而此分支指 令並未提供一靜態提示,此L〗BPT被更新來包含一結合 此丨P位址的分支預測輸入項。 本發明已參考其特定的示範性具體實例加以說明。然 而’它將不證自明的具有這項揭示的優點,其中可以對這 些具體實例做出不同的修改及改變,而不會背離本發明較 寬廣的精神與範疇。因此,此規格及圖式被認為是說明性 而不是限制性的。 (請先閱讀背面之注意事項寫本頁) •裝 . -線· 經濟部智慧財產局員工消費合作社印製 sll L· -19- 本紙張尺度適用中囷國家標準(CNS>A4規格(210 X 297公釐) .^βΒΗΜΜ

Claims (1)

  1. ί558 Ί Ο 第δ8113818號專利申請案 申清專利範圍修正本(9Q年7月) 六、申請專利範圍
    ί. 一種分支預測器,其包含: 第—分支預測表(ΒΡΤ),其連結到一指令指標(Ιρ)產 生器’來儲存複數個分支預測輸入項;以及 第一 ΒΡΤ,其連接到此IP產生器,來儲存一較大複數 個分支預測輸入項。 2. 如申請專利範圍第ί項的分支預測器,此第一 BpT儲存 加標籤的分支預測輸入項而·第二BPT儲存未加標籤的分 支預測輸入項。 3. 如申請專利範圍第1項的分支預測器,其還包含第—電 路連接到此第一 B P T來預測做為儲存在標的位址快取記 憶體中的標的位址之I P位址,如果第一 B P T指示出一分 支被採用的話a 4 .如申請專利範圍第1項的分支預測器,其還包含第二電 路連結到此第二B P T來預測做為儲存在標的位址快取記 憶體中的標的位址之IP位址,如果第二B P T指示出一分 支被採用的話" 5. 如申請專利範園第1項的分支預測器,其還包含第二電 路連結到此第二B P T來預測從一指令解碼與計算的標的 位址之IP位址,如果第二B P T指示出一分支為採用的 話。 6. 如申請專利範圍第1項的分支預測器,其還包含第二電 路連結到此第二B P T來預測儲存在回傳堆疊缓衝器中的 標的位址之IP位址’如果第二BPT指示出一分支為採用 的話。 本紙張尺度適用中國國家揉準(CNS ) A4規格(210X297公4 ) (請先閱讀背面之注意事項再填寫本買) -¾ 、«1 Γ ά 5 5 8 10 A8 B8 C8 D8 經濟部中央標準局舅工消費合作社印製 申請專利範圍 7. 如申請專利範圍第1項的分支預測器,其中此第二Β ρ τ 的大小調整來儲存第一BPT數目之二或更多倍的分支預 測輸入項。 8. 如申請專利範圍第丨項的分支預測器,其中第—b p τ實 作第一種形態的預測演繹法則而第二Β Ρ τ實作第二種形 態的預測/夫繹’法則,其不同於第一種形態的預測演繹法 則。 . 9. 一種處理器,其包含: 一指令指標(IΡ )產生器; 連結到此IP產生器之第一階分支預測表ΒΡΤ,此第一 階B P T在其中儲存有結合第一複數個位址的第一複數個 分支預測輸入項;以及 連結到此IP產生器之第二階分支預測表Βρτ,此第二 階B P T在其中儲存有結合第二複數個位址的.第二複數個 _分支預測輸入項。 10‘如申請專利範圍第9項的處理器,其還包含一連結到此 i P產生器的標的位址快取記憶體並在其中儲存有結合第 一複數個位址的複數個標的位址。 11. 如申請專利範園第1 〇項的處理器,其還包含第一電路來 從此標的位址快取記憶體中選擇,做為其輸出,一標的 位址,如果在此第一階ΒΡΤ有一命中表示一分支被採用 的話。 12. 如申請專利範圍第9項的處理器,其還包含連結到此工ρ 產生器的記憶體位置中的指令群组並在其中儲存有複數 (請先閲讀背面之注意事項再填寫本頁) '集. 訂 锊 本紙張尺度適用t國國家標準(CNS ) A4規格(210X297公釐)
    4 5 5 8 1 〇 Α8 Β8 C8 D8 經濟部中央揉準局員工消費合作社印裝 六、申請專利範圍 個分支提示。 Π·如申請專利範圍第12項的處理器,其還包含第二電路來 從此1已憶體位置中選擇,做為其輸出,一標的位址,如 果在此第二階BPT中一命中指示出一分支被採用而記憶 體位置中的結合命中是動態的。 14.如申請專利範圍第9項的處理器,其中在第二複數個位 址中有相對於第一複數個位址之二到四倍的位址,而此 弟一複數個位址包含第一複數個位址。 15‘一種在處理器中執行分支預測的方法,其包含的步驟: I · 在第一階的分支預測表(BPT)搜尋結合一指令指標 (I P )位址的第一分支預測輸入項; 在第二階B P T搜尋結合此I p位址的第二分支預測輸入 項;以及 如果第一分支預測輸入項在第一階B P T中找到的話, 則根據第一分支預測輸入項做出一分支預測,而如果第 一分支輸入項在第一階BPT中失誤的話,則根據第二分 支預測輸入項做出一分支預測。 16. 如申請專利範圍第1 5項的方法,其還包含以第一階B P T 實作第一種形態預測演繹法則的步驟,以及以第二階 BPT實作第二種形態的預測演繹法則,其不同於第一種 形態的預測演繹法則。 17. 如申請專利範圍第1 5項的方法*其中根據第二分支預測 輸入項做出分支預測的步騾在一結合此I P位址的指令被 解碼且決定為分支指令時做到。 -3 - 本紙張尺度逋用中围國家揉準(CMS ) Α4規格(210Χ297公釐) (請先聞讀背面之注$項再填寫本頁) 訂 % 修正補充 4 5 58 1 0 A8 B8 C8 D8 經濟部中央標準局員工消費合作社印製 六、申請專利範圍 18. 如申請專利範圍第1 5項的方法,其中搜尋第一階B P T與 搜尋第二階B P T的步驟同時的發生。 19. 如申請專利範圍第1 5項的方法,其中搜尋第一階B P T的 步驟包含比較此I P位址的位址標籤輿儲存在第一階;B P T 中的位址標籤的步驟,而搜尋此第二階B P T的步騾包含 從一直接對映表中選出一輸入項的步驟。 20. —種在一指定起始I P位址而預測處理器中接下來指令指 ' 標(I P )位址的方法,此方法包含步驟: 從一標的位址快取記憶體中預測成為標的位址的接下 來IP位址,如果在結合此起始IP位址的第一分支預測表 (B P T )中的分支預測輸入項指示出此分支為採用的話; 以及 從一結合此起始IP位址的指令預測解碼標的位址的接 下來IP位址,如果在此第一 B P T中沒有分支預測輸入項 與此起始I .P位址結合而結合此起始ϊ P位址的第二B p T中 的分支預測輸入項指示出此分支為採用的話》 21. 如申請專利範圍第2 0項的方法’還包含預測為起始I ρ位 址遞增一預定量的接下來I Ρ位址的步驟,如果在第一 ΒΡΤ中結合此起始IP位址的分支預測輸入項指示出此分 為不採用的話® 22. 如申請專利範圍第2 0項的方法,其還包含預測為起始工ρ 位址遞增一預定量的接下來IP位址的步驟,如果在第一 BPT中没有與起始IP位址結合的分支預測輸入項而第二 Β Ρ T中結合此起始I P位址的分支預測輸入項指示出此分 -4- 本紙張尺度適用中國國家搖準(CNS ) A4規格(210X297公釐) (請先聞讀背面之注意事項再填寫本頁) -訂.· 綉 潘年7 月厶日 修正 補充 4 5 5 8 10 as B8 C8 D8 經濟部4-央揉準局舅工消費合作社印製 :、申請專利範圍 支為不採用的話。 23. 如申請專利範園第2 0項的方法’其還包含預測為起始工P 位址遞增一預定量的接下來ip位址的步驟,如果在第— B P T中沒有與起始I p位址結合的分支預測輸入項,第二 B P T中與此起始I p位址結合的分支預測輸入項指示出此 分支為.不採用,而結合此起始IP位址的指令提示經.解碼 為動態的話。 * 24. 如申請專利範圍第2 0項的方法,其中從一標的位址快取 記憶體中预測成為標的位址的接下來IP位址的步驟包含 在第一 B PT中搜尋符合結合此起始I p位址的位址標籤的 位址標籤的步驟,而預測為從指令解碼之標的位址的接· 下來I P位址的步驟包含在第二B PT中選擇結合此起始工P 位址的直接對映輸入項的步驟。 5- M氏珉尺度適用中國國家揉準(> A4規格(210X297公釐) (請先閎讀背面之注意事項再填寫本頁)
TW088113818A 1998-09-08 1999-08-12 A method and apparatus for branch prediction using a second level branch prediction table TW455810B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US09/149,885 US6553488B2 (en) 1998-09-08 1998-09-08 Method and apparatus for branch prediction using first and second level branch prediction tables

Publications (1)

Publication Number Publication Date
TW455810B true TW455810B (en) 2001-09-21

Family

ID=22532208

Family Applications (1)

Application Number Title Priority Date Filing Date
TW088113818A TW455810B (en) 1998-09-08 1999-08-12 A method and apparatus for branch prediction using a second level branch prediction table

Country Status (8)

Country Link
US (1) US6553488B2 (zh)
KR (1) KR100411529B1 (zh)
CN (1) CN1302376C (zh)
AU (1) AU5699299A (zh)
DE (1) DE19983517B4 (zh)
GB (1) GB2357871B (zh)
TW (1) TW455810B (zh)
WO (1) WO2000014628A1 (zh)

Families Citing this family (71)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6546481B1 (en) * 1999-11-05 2003-04-08 Ip - First Llc Split history tables for branch prediction
US7107437B1 (en) * 2000-06-30 2006-09-12 Intel Corporation Branch target buffer (BTB) including a speculative BTB (SBTB) and an architectural BTB (ABTB)
JP4027620B2 (ja) 2001-06-20 2007-12-26 富士通株式会社 分岐予測装置、プロセッサ、及び分岐予測方法
US7024545B1 (en) * 2001-07-24 2006-04-04 Advanced Micro Devices, Inc. Hybrid branch prediction device with two levels of branch prediction cache
US7343397B2 (en) * 2002-03-29 2008-03-11 Lucent Technologies Inc. Method and apparatus for performing predictive caching of DNS requests by correlating IP addresses
US6978361B2 (en) * 2002-09-20 2005-12-20 International Business Machines Corporation Effectively infinite branch prediction table mechanism
US7831817B2 (en) * 2003-04-15 2010-11-09 Arm Limited Two-level branch prediction apparatus
DE602004030575D1 (de) * 2003-07-09 2011-01-27 Nxp Bv Verfahren und system zur zweigprädiktion
US20050015578A1 (en) * 2003-07-14 2005-01-20 Kimming So Two-bit branch prediction scheme using reduced memory size
JP2005149297A (ja) * 2003-11-18 2005-06-09 Renesas Technology Corp プロセッサおよびそのアセンブラ
US7243219B2 (en) * 2003-12-24 2007-07-10 Intel Corporation Predicting instruction branches with a plurality of global predictors using varying amounts of history instruction
US20050149680A1 (en) * 2003-12-30 2005-07-07 Intel Corporation Fast associativity collision array and cascaded priority select
US20050283593A1 (en) * 2004-06-18 2005-12-22 Vladimir Vasekin Loop end prediction
US7890735B2 (en) * 2004-08-30 2011-02-15 Texas Instruments Incorporated Multi-threading processors, integrated circuit devices, systems, and processes of operation and manufacture
US7752426B2 (en) * 2004-08-30 2010-07-06 Texas Instruments Incorporated Processes, circuits, devices, and systems for branch prediction and other processor improvements
US7428632B2 (en) * 2004-09-14 2008-09-23 Arm Limited Branch prediction mechanism using a branch cache memory and an extended pattern cache
US7836288B2 (en) * 2004-09-14 2010-11-16 Arm Limited Branch prediction mechanism including a branch prediction memory and a branch prediction cache
DE102005001679B4 (de) * 2005-01-13 2008-11-13 Infineon Technologies Ag Mikroprozessor-Einrichtung, und Verfahren zur Branch-Prediktion für conditional Branch-Befehle in einer Mikroprozessor-Einrichtung
US20070050608A1 (en) * 2005-08-29 2007-03-01 Searete Llc, A Limited Liability Corporatin Of The State Of Delaware Hardware-generated and historically-based execution optimization
US7739524B2 (en) * 2005-08-29 2010-06-15 The Invention Science Fund I, Inc Power consumption management
US8209524B2 (en) 2005-08-29 2012-06-26 The Invention Science Fund I, Llc Cross-architecture optimization
US7627739B2 (en) * 2005-08-29 2009-12-01 Searete, Llc Optimization of a hardware resource shared by a multiprocessor
US8255745B2 (en) 2005-08-29 2012-08-28 The Invention Science Fund I, Llc Hardware-error tolerant computing
US8516300B2 (en) 2005-08-29 2013-08-20 The Invention Science Fund I, Llc Multi-votage synchronous systems
US8375247B2 (en) 2005-08-29 2013-02-12 The Invention Science Fund I, Llc Handling processor computational errors
US7877584B2 (en) * 2005-08-29 2011-01-25 The Invention Science Fund I, Llc Predictive processor resource management
US7725693B2 (en) * 2005-08-29 2010-05-25 Searete, Llc Execution optimization using a processor resource management policy saved in an association with an instruction group
US7774558B2 (en) 2005-08-29 2010-08-10 The Invention Science Fund I, Inc Multiprocessor resource optimization
US7779213B2 (en) * 2005-08-29 2010-08-17 The Invention Science Fund I, Inc Optimization of instruction group execution through hardware resource management policies
US8423824B2 (en) 2005-08-29 2013-04-16 The Invention Science Fund I, Llc Power sparing synchronous apparatus
US7647487B2 (en) * 2005-08-29 2010-01-12 Searete, Llc Instruction-associated processor resource optimization
US8181004B2 (en) 2005-08-29 2012-05-15 The Invention Science Fund I, Llc Selecting a resource management policy for a resource available to a processor
US7512842B2 (en) * 2005-08-29 2009-03-31 Searete Llc Multi-voltage synchronous systems
US8214191B2 (en) 2005-08-29 2012-07-03 The Invention Science Fund I, Llc Cross-architecture execution optimization
US20070050605A1 (en) * 2005-08-29 2007-03-01 Bran Ferren Freeze-dried ghost pages
US7487340B2 (en) * 2006-06-08 2009-02-03 International Business Machines Corporation Local and global branch prediction information storage
US8301871B2 (en) * 2006-06-08 2012-10-30 International Business Machines Corporation Predicated issue for conditional branch instructions
US20070288732A1 (en) * 2006-06-08 2007-12-13 Luick David A Hybrid Branch Prediction Scheme
US8935517B2 (en) * 2006-06-29 2015-01-13 Qualcomm Incorporated System and method for selectively managing a branch target address cache of a multiple-stage predictor
US7472264B2 (en) * 2006-06-30 2008-12-30 Sun Microsystems, Inc. Predicting a jump target based on a program counter and state information for a process
US20080040591A1 (en) * 2006-08-11 2008-02-14 Moyer William C Method for determining branch target buffer (btb) allocation for branch instructions
US20080040590A1 (en) * 2006-08-11 2008-02-14 Lea Hwang Lee Selective branch target buffer (btb) allocaiton
US7533252B2 (en) * 2006-08-31 2009-05-12 Intel Corporation Overriding a static prediction with a level-two predictor
TW200816282A (en) * 2006-09-27 2008-04-01 Promos Technologies Inc Method for reducing stress between a conductive layer and a mask layer and use of the same
US8782384B2 (en) * 2007-12-20 2014-07-15 Advanced Micro Devices, Inc. Branch history with polymorphic indirect branch information
US8909907B2 (en) * 2008-02-12 2014-12-09 International Business Machines Corporation Reducing branch prediction latency using a branch target buffer with a most recently used column prediction
US7890739B2 (en) * 2008-02-19 2011-02-15 Oracle America, Inc. Method and apparatus for recovering from branch misprediction
US9021240B2 (en) * 2008-02-22 2015-04-28 International Business Machines Corporation System and method for Controlling restarting of instruction fetching using speculative address computations
US20110093658A1 (en) * 2009-10-19 2011-04-21 Zuraski Jr Gerald D Classifying and segregating branch targets
CN102306094B (zh) * 2011-08-16 2014-03-26 北京北大众志微系统科技有限责任公司 实现现代处理器间接转移预测的装置及方法
US8739186B2 (en) 2011-10-26 2014-05-27 Autodesk, Inc. Application level speculative processing
US8959320B2 (en) * 2011-12-07 2015-02-17 Apple Inc. Preventing update training of first predictor with mismatching second predictor for branch instructions with alternating pattern hysteresis
US9009734B2 (en) * 2012-03-06 2015-04-14 Autodesk, Inc. Application level speculative processing
US9262169B2 (en) 2012-06-11 2016-02-16 International Business Machines Corporation Branch prediction table install source tracking
US9235419B2 (en) * 2012-06-11 2016-01-12 International Business Machines Corporation Branch target buffer preload table
US9250909B2 (en) 2012-06-12 2016-02-02 International Business Machines Corporation Fast index tree for accelerated branch prediction
US9250912B2 (en) * 2012-06-12 2016-02-02 International Business Machines Corporation Fast index tree for accelerated branch prediction
US9430241B2 (en) 2012-06-15 2016-08-30 International Business Machines Corporation Semi-exclusive second-level branch target buffer
US9298465B2 (en) 2012-06-15 2016-03-29 International Business Machines Corporation Asynchronous lookahead hierarchical branch prediction
US9280351B2 (en) 2012-06-15 2016-03-08 International Business Machines Corporation Second-level branch target buffer bulk transfer filtering
US9563430B2 (en) 2014-03-19 2017-02-07 International Business Machines Corporation Dynamic thread sharing in branch prediction structures
US20150268961A1 (en) * 2014-03-21 2015-09-24 Samsung Electronics Co., Ltd. Decoupling l2 btb from l2 cache to accelerate search for miss after miss
US10241800B2 (en) 2015-06-16 2019-03-26 International Business Machines Corporation Split-level history buffer in a computer processing unit
US10592248B2 (en) * 2016-08-30 2020-03-17 Advanced Micro Devices, Inc. Branch target buffer compression
US10747539B1 (en) 2016-11-14 2020-08-18 Apple Inc. Scan-on-fill next fetch target prediction
US10613867B1 (en) * 2017-07-19 2020-04-07 Apple Inc. Suppressing pipeline redirection indications
US10929136B2 (en) * 2018-04-11 2021-02-23 Futurewei Technologies, Inc. Accurate early branch prediction using multiple predictors having different accuracy and latency in high-performance microprocessors
US10817299B2 (en) * 2018-09-07 2020-10-27 Arm Limited Handling multiple control flow instructions
CN111209044B (zh) * 2018-11-21 2022-11-25 展讯通信(上海)有限公司 指令压缩方法及装置
US11163573B2 (en) * 2019-02-13 2021-11-02 International Business Machines Corporation Hierarchical metadata predictor with periodic updates
US11614944B2 (en) * 2020-11-09 2023-03-28 Centaur Technology, Inc. Small branch predictor escape

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5230068A (en) * 1990-02-26 1993-07-20 Nexgen Microsystems Cache memory system for dynamically altering single cache memory line as either branch target entry or pre-fetch instruction queue based upon instruction sequence
US5163140A (en) * 1990-02-26 1992-11-10 Nexgen Microsystems Two-level branch prediction cache
US5608886A (en) * 1994-08-31 1997-03-04 Exponential Technology, Inc. Block-based branch prediction using a target finder array storing target sub-addresses
US5732253A (en) * 1994-10-18 1998-03-24 Cyrix Corporation Branch processing unit with target cache storing history for predicted taken branches and history cache storing history for predicted not-taken branches
US5815700A (en) * 1995-12-22 1998-09-29 Intel Corporation Branch prediction table having pointers identifying other branches within common instruction cache lines
WO1998008160A1 (en) * 1996-08-20 1998-02-26 Idea Corporation A method for identifying hard-to-predict branches to enhance processor performance
US5995749A (en) * 1996-11-19 1999-11-30 Advanced Micro Devices, Inc. Branch prediction mechanism employing branch selectors to select a branch prediction
US5903750A (en) * 1996-11-20 1999-05-11 Institute For The Development Of Emerging Architectures, L.L.P. Dynamic branch prediction for branch instructions with multiple targets
US6119222A (en) * 1996-12-23 2000-09-12 Texas Instruments Incorporated Combined branch prediction and cache prefetch in a microprocessor
US5802602A (en) 1997-01-17 1998-09-01 Intel Corporation Method and apparatus for performing reads of related data from a set-associative cache memory
US5805878A (en) * 1997-01-31 1998-09-08 Intel Corporation Method and apparatus for generating branch predictions for multiple branch instructions indexed by a single instruction pointer
US5978909A (en) * 1997-11-26 1999-11-02 Intel Corporation System for speculative branch target prediction having a dynamic prediction history buffer and a static prediction history buffer

Also Published As

Publication number Publication date
GB2357871A (en) 2001-07-04
KR100411529B1 (ko) 2003-12-18
KR20010074978A (ko) 2001-08-09
WO2000014628A1 (en) 2000-03-16
DE19983517B4 (de) 2006-12-07
GB0105285D0 (en) 2001-04-18
CN1328664A (zh) 2001-12-26
CN1302376C (zh) 2007-02-28
US20010047467A1 (en) 2001-11-29
DE19983517T1 (de) 2002-07-11
AU5699299A (en) 2000-03-27
GB2357871B (en) 2003-09-24
US6553488B2 (en) 2003-04-22

Similar Documents

Publication Publication Date Title
TW455810B (en) A method and apparatus for branch prediction using a second level branch prediction table
US6430674B1 (en) Processor executing plural instruction sets (ISA's) with ability to have plural ISA's in different pipeline stages at same time
US6101577A (en) Pipelined instruction cache and branch prediction mechanism therefor
US20080276070A1 (en) Reducing the fetch time of target instructions of a predicted taken branch instruction
US6081887A (en) System for passing an index value with each prediction in forward direction to enable truth predictor to associate truth value with particular branch instruction
US5623614A (en) Branch prediction cache with multiple entries for returns having multiple callers
KR101459536B1 (ko) 사전 통지 기법들을 사용하여 프로그램의 순차적 흐름을 변경하기 위한 방법들 및 장치
US6697932B1 (en) System and method for early resolution of low confidence branches and safe data cache accesses
US7609582B2 (en) Branch target buffer and method of use
US5752259A (en) Instruction cache configured to provide instructions to a microprocessor having a clock cycle time less than a cache access time of said instruction cache
US8572358B2 (en) Meta predictor restoration upon detecting misprediction
US20050210224A1 (en) Processor including fallback branch prediction mechanism for far jump and far call instructions
KR101081674B1 (ko) 워킹 글로벌 히스토리 레지스터를 이용하기 위한 시스템 및 방법
JPH0334024A (ja) 分岐予測の方法とそのための装置
EP3321811A1 (en) Processor with instruction cache that performs zero clock retires
US7107437B1 (en) Branch target buffer (BTB) including a speculative BTB (SBTB) and an architectural BTB (ABTB)
US6253315B1 (en) Return address predictor that uses branch instructions to track a last valid return address
US8943301B2 (en) Storing branch information in an address table of a processor
US6219781B1 (en) Method and apparatus for performing register hazard detection
JPH1040104A (ja) 分岐命令の結果予測装置及び方法
US5987599A (en) Target instructions prefetch cache
US7603545B2 (en) Instruction control method and processor to process instructions by out-of-order processing using delay instructions for branching
US20050132174A1 (en) Predicting instruction branches with independent checking predictions
Hasan et al. An improved pipelined processor architecture eliminating branch and jump penalty
JP2006031697A (ja) 分岐ターゲットバッファと使用方法

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent
MM4A Annulment or lapse of patent due to non-payment of fees