TW419630B - Limited run branch prediction - Google Patents

Limited run branch prediction Download PDF

Info

Publication number
TW419630B
TW419630B TW085101434A TW85101434A TW419630B TW 419630 B TW419630 B TW 419630B TW 085101434 A TW085101434 A TW 085101434A TW 85101434 A TW85101434 A TW 85101434A TW 419630 B TW419630 B TW 419630B
Authority
TW
Taiwan
Prior art keywords
branch instruction
patent application
counter
count
scope
Prior art date
Application number
TW085101434A
Other languages
English (en)
Inventor
David L Isaman
Original Assignee
Hyundai Electronics America
Metafolw Technologies Inc
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 Hyundai Electronics America, Metafolw Technologies Inc filed Critical Hyundai Electronics America
Application granted granted Critical
Publication of TW419630B publication Critical patent/TW419630B/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/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)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Description

41 963 〇 ^ A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(ί) [發明背景] 管線式(pipelined)處理器之性能係嚴格受限於執行條件 分支所需要的時間。常態而言,一處理器係以一順序方式 來擷取並執行指令;亦即,自位址η所擷取的一指令E i 之後所立即執行的指令E i + 1 ( E i之後繼者)之位址 係藉由將E i的長度加上η而找到。一無條件分支係一指 令,其執行將令控制轉移到在一非順序位址處之一指令。 因此’ 一分支Β之後繼者係擷取自一任意的目標位址。於 某些電腦中,分支指令Β的目標位址係含於指令內;而在 其他的電腦中,目標位址係藉由將指令Β本身被擷取自之 位址加上含於指令Β內之一偏移(offset)而構成。 一條件分支指令係基於測試某些段之資料,而有條件 地造成控制之轉移。隨同一目標位址之規格,此一指令係 含有一待測試的條件。典型而言,此條件係一數字之一小 組代數性質之一者:此數字係零或非零、此數字係正數或 非正數、此數字係負數或非負數、…等。若是符合該條件 ,便採取該分支;亦即,後繼指令係擷取自該分支的目標 位址。若不符合該條件,後繼指令係於序列中的下一指令 ,正如同對於非分支指令者。 管線式電腦係透過由數個處理級(stage)(通常至少 爲五個)所組成的一管線而通過各個指令。於各時脈週期 中,一新的指令係可送入到該管線中。結果,一管線式電 腦係可同時具有在不同執行級之數個指令,因而使得在各 級之硬體資源的利用爲最大化。 3 (請先閱讀背面之注意事項再填寫本頁} 裝---- -- 訂-- - ----— —镇 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 4 19 63 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明說明(V ) 由管線式電腦中條件分支所造成的性能變差,係產生 於當此分支爲在欲測試的代數條件被決定之前而擷取時。 在分支指令本身係指明欲測試之資料位置的該等電腦中, 此現象係變得更糟。對代數條件求値,係僅在已行經該管 線之數級後才作出。由於此舉係直到分支指令被擷取之後 才得以開始,欲測試的條件係直到該分支被擷取後的數個 時脈週期方爲可知。由於直到資料已被測試之前,欲被擷 取的下一指令之位置係無法確知,故並無指令係可被擷取 達數個時脈週期。 ,分支預測係試圖在擷取一條件分支時立即預測此條件 分支是否將被採取,而無需等待決定該測試之結果。以此 方式,指令可繼續在全速率下被擷取。若預測到分支,便 需要驗效(validate)此預測並從一不正確的預測中回復。若 該預測爲不正確’則所有在不正確預測的壞的(bad) # )分支所擷取之後所擷取的指令係錯誤,且因而其執行 的影響均須倒反。用於記錄 '驗效、以及修護預測分支的 技術係並非本發明之主題。 由於所有在一壞的分支之後所擷取的指令都必須被棄 置,故其代表浪費掉的努力。因此,機器之性能係直接與 分支預測的精確度有關。 分支預測架構可爲靜態式或是動態式。於一靜態式架 構中,分支指令本身含有所述預測;此典型地係由產生程 式的編譯器所提供,基於此編譯器對一典型資料組執行該 程式。靜態式預測係僅在電腦的指令組於設計時已將其考 4 本紙張尺度適用中國國家標準(CNS)A4規格(21G X 297公爱) 〈請先間讀背面之注意事項再填寫本頁) 裝 ------ 訂· !!1* 線 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明說明) 慮而方爲可能。大多數商業上成功的指令組係並不提供可 容許靜態式分支預測之方便性。 動態式分支預測利用有關於分支之資訊,其由硬體於 程式執行中所集聚。硬體僅可〃知曉(know)〃有關於一給 定分支指令的過去執行形態,因此其動態式預測必須基於 此項資訊。由於條件分支係相當頻繁(密集到每五個指令 就有一次)’因此若無一非常大的記憶體容量,對於各條 件分支可被儲存之歷史(history)的量便無法很大。典型而言 ’分支預測資訊係於一程式中被保持在分支之僅僅一小、 但變動的子集上。 於一程式執行中的任一時間點,一給定分支指令的正 確執行歷史係可予表示成二元符號1和〇的一序列。此序 列係告知分支指令是否被採取(1)或未被採取(〇)。 每當一分支指令被執行時,該分支的歷史係藉由加上1或 是0到其尾端予以擴增,視該分支之正確的(不必是所預 測的)執行是否係被採取而定。 一分支指令的執行歷史係可予分成運行(runs)。一 分支運行係其緊接以1在前並後隨之接續的0之一序列, 或反之亦然。亦即,於該歷史中的各符號係處於正好一運 行,並且各運行係由所有的0或是所有的1所組成。一運 行的長度係在其中之符號的數目。 先前技藝之動態式分支預測機制係發現以下之觀察, 即對於一程式中的許多分支而言,所有的(或幾乎所有的 )◦之運行係長度爲1。此等係通常爲結束環路的分支。 5 ----I----I ί I ----I I--^ - I I I I —---線 (請先閱讀背面之沒意事項再填寫本頁) 本紙張尺度適用t國國家標準(CNS)A4規格(210 X 297公釐) 經濟部智慧財產局員工消費合作社印製 A7 ___B7___ 五、發明說明(^ ) 一環路(loop)係典型藉由置放一條件分支在構成爲環路主體 的指令序列之結束位置而實施。條件分支測試該環路結束 條件,且若此條件係僞’則分支到係爲環路主體之序列中 的第一指令。若該分支未被採取,該環路便終止。下一次 該分支被執行時將係該環路之下一致動中的第一執行,其 將被採取,除非此致動在一次通過後便終止。因此,係有 由代表環路終止之單一個0所構成的一運行。(某些編譯 器係在主體開始時以一條件分支來建構環路,而非在結束 時。此一環路係以採取該分支而終止。此環路建構係以由 單一個1所構成的運行來建立執行歷史。) 先前技藝之分支預測器係將各預測爲基於對於各分支 所儲存歷史之兩個位元。此等位元係一四狀態之狀態機器 (圖1 )的狀態。此狀態機器的效果係預測該分支將具有 如同大於1之最後運行的相同結果。因此,在總是通過多 於一次之環路的例子中,爲使得其執行歷史不具有兩個或 多個0的運行,該預測將爲定値。 先前技藝之狀態機器的預測精確度係直接與1之運行 長度有關。若平均運行長度爲η,則每η次正確預測係有 一次不正確預測。因此,對於較短運行之效率係較差。本 發明之目的即在於改善短運行長度的分支之預測精確度。 [發明槪要] 許多分支均具有固定或是緩慢改變的運行長度,即數 個1之接續運行係爲相同長度者。本發明藉由加上兩個小 的計數器(即一上數計數器和一下數計數器)而增強對於 6 本紙張尺度適用令國國家標準(CNS)A4規格(210 X 297公釐) <請先閱讀背面之注項再填寫本頁) 裝---1 ----訂---I I---線 41 963 0 i Α7 ____Β7 — 五、發明說明(^) 各分支所儲存的歷史。該等計數器係配合先前技藝之狀態 機器分支預測器而操作。 該上數計數器係計數目前運行的長度。若此運行在計 數器溢流(overflow)之前結束,則該上數計數器値係被複製 到該下數計數器,並且該上數計數器係被重行初始化爲零 該下數計數器係接著於下〜蓮行期間向下計數。所利用 的預測爲由該狀態機器所作出者,直到下數計數器到達零 。於下數計數器爲零時的第〜次執行,該狀態機器預測係 被作互補運行。若是目前運行長度係等於先前運行長度, 此舉將係正確。只要運行長度保持固定,本發明之預測準 確度係1 0 0 %。若是運行係長於可被計數者,計數器係 被禁能(disabled) ’並且該預測係僅係基於該狀態機器。 每當任一條件分支指令β被發出(issued)時,其預測歷 史係被檢查以決定是否要預測該分支爲所採取者,並且該 歷史係部分基於該預測而被立即更新。所述更新係亦視此 是否爲該條件分支指令B之重行發出而定。條件分支指令 B之重行發出係僅發生於當B之任何執行b E被錯誤預測 、正確方向係已知曉、且並無任何在B E之前的分支執行 係已知被錯誤預測時。在此情況下,對B E之一分支修理 係發生:B E以及所有任一後續指令之執行係被棄置’並 且B係被重行發出。 用於更新計數器之演算法係基於以下之假設’即狀態 機器預測器總是預測相同的方向。因此,一運行之結束係 僅由該等計數器所預測《—重行發出(re-issue)係意請著運 7 本紙張尺度適用t國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) 裝----II訂·-------破 經濟部智慧財產局貝工消費合作社印製 4 1 963 0 从 經濟部智慧財產局具工消費合作社印製 五、發明說明(么) 行長度未被正確地預測:不論是未對運行長度作出預測’ 或是運行長度被預測爲太短或太長。若因爲先前運行係太 長而無法計數以至於運行長度根本尙未被預測’則該上數 計數器係被設定爲0,而若新開始的運行係夠短以可計數 ,該下數計數器係被設定爲- 1,其禁能計數器之預測器 。若所述重行發出分支係因爲該運行結束得較預期爲早而 已被錯誤預測,新的、較短的長度係自該上數計數器被複 製到該下數計數器,並且該上數計數器係被重置爲0。若 是所預測的運行長度係太短,該上數計數器便繼續增量以 計數正確的、較長的長度,並且該下數計數器係被設定爲 - 1,由於已知此較長運行之結束係無法被正確預測。 於發出任何並非一重行發出之一分支時,若該上數計數器 已達到其最大計數,該計數器便停留在該計數並且該下數 計數器被設定爲-1,以防止計數器之任何運行長度預測 。否則,該上數計數器係被增量,除非該下數計數器是爲 0,其表示運行之預測結束;在此情況下’該上數計數器 係被複製到該下數計數器,且然後係重置爲〇。若是該上 數計數器係非處於其最大値且該下數計數器係未被禁能, 則該下數計數器被增量,除非其已達到0。 該必須由本發明對於各分支作儲存之加入狀態資訊係大量 的。所幸,一小數目位元係可提供一高性能增益。三位元 計數器係正確預測少於七之所有固定運行長度。未被正確 預測的最短運行長度(七)具有單獨由該狀態機器預測器 之準確度爲8 7 %。四位元計數器係提供至少9 3 %之準 8 本紙張尺度適用中國國家&準^C^S)A4規格(210 X 297公釐)" (請先閱讀背面之注Ϊ項再填寫本頁) A7 41^63 0 4 五、發明說明(^)) 確度。 [圖式簡單說明] 圖1係於先前技藝之一分支預測器的一狀態機器圖; 圖2係本發明一實施例之一分支預測器的一方塊圖; 圖3係於圖2中之一預測模組的一電路圖; 圖4係圖2之更新模組所操作之演算法的一流程圖; 圖5 A係說明根據本發明之分支預測器對於一組指令 的操作,該組指令具有一定値運行長度之一條件分支指令 :及 圖5 B係說明根據本發明之分支預測器對於一組指令 的操作,該組指令具有變動運行長度之條件分支指令。 [元件符號說明] 10 分支預測RAM 11 程式計數暫存器 13 位址匯流排 1 4 A 一 D 輸出匯流排 1 5 A - D 多工器 1 6 A - D 預測模組 1 9 A 資料匯流排 1 9 B 位址匯流排 1 9 C 寫入致能控制線 2 0 分支擱置體(shelf) 2 1 A - D 資料匯流排 2 2 A - D 一位元匹配線 9 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注奇¥項再填寫本頁) I 裝------訂·!-線 經濟部智慧財產局員工消費合作社印製 4 1 9 63 Ο A7 B7 五 、發明說明( 2 3 N 0 R閘 2 4 互斥0 R閘 2 5 指令解碼F I F 0 2 6 A - D 輸入埠 3 0 位址輸入填 3 1 A - D 資料匯流排 3 2 A 一 D 位址匯流排 3 5 選擇控制線 3 6 多工器 3 7 A 資料匯流排 3 7 B 位址匯流排 3 8 更新模組 3 9 線路 4 0 加入條目信號 4 1 採取信號 5 0 指令發出邏輯 (請先閲讀背面之注意事項再填寫本頁)
------ 訂---------M 經濟部智慧財產局員工消費合作社印製 [較佳實施例之詳細說明] 本發明之較佳實施例係於一超純量(superscalar)處理 器。一超純量處理器係於每時脈週期擷取並發出多個指令 進入管線,於此例中,其係多達四個指令。可由本發明獲 益之一超純量處理器的一實例係揭示於Popescu等人在 1990年12月5日所提出申請名稱爲11處理器架構( Processor Architecture) H的美國專利申請案序號 07/622,893 案件。由於並非該處理器的所有元件皆與本發明有關,所 泰紙張尺度適用_國國家標準<CNS)A4規格(210 X 297公釐) 經濟部智慧財產局員工消費合作社印製 4+1 9 63 0 A7 B7 五、發明說明(7) 以其某些元件並未包括在本發明的描述中。 如圖2所示,關於本發明之分支指令預測’所有分支 的執行歷史係儲存於兩結構中’即於該處理器中的分支預 測RAM 1 0和分支擱置體2 0。分支預測RAM1 〇儲 存分支執行的所有歷史,多達但並不包括最舊且未解決的 預測分支。分支擱置體2 0保有所有分支執行的歷史,其 係未解決的預測分支或跟隨一未解決的預測分支者。 在較佳實施例中,該分支預測Rami〇係由ικ ( 1024)個字組所構成爲了讀取分支預測RAM 1 〇,該 處理器的程式計數暫存器11係以一値PC透過一位址匯 流排1 3來定址RAM 1 〇。値P C係處理器中下一個欲 擷取之指令的記憶體位址。分支預測RAM 1 0具有四個 資料輸出埠,D〇ut〇 -Dout3,其分別被連接到 輸出線1 4 A - 1 4 D。對於分別在四個位址P C、P C + l、PC + 2、以及PC + 3處之指令的分支預測狀態 係通過所述四個璋,以配合於該處理器的超純量特性。當 然,必須理解的是,本發明係同樣可適用於一簡單的純量 處理。 分支預測R AM 1 〇係雙字組定址。亦即,透過該位 址匯流排1 3之P C的最低有效位元係被忽略。因此,兩 個接續的指令(一者爲偶數P C値而另一者爲下一個較高 的奇數P C値)係需自分支預測RAM 1 〇被派予相同預 測歷史。假設係罕見出現兩個接續的分支指令,且以此方 式’ 1 K字組的RAM 1 0將可儲存多達2K指令之獨特 本紙張尺度適用中國國家標準(CNS)Α4規格(210 X 297公t ) (請先閲讀背面之注意事項再填寫本頁) 裂i!i —訂ί ! — -線 經濟部智慧財產局員工消費合作社印製 i 9b3 0 % A7 B7 五、發明說明(/ύ) 的預測歷史。 分支預測R Α Μ 1 〇係非一高速緩衝(快取)記憶體 (cache);其內容係可以抑或可以不是確實地反應一給定分 支指令的預測狀態。例如,二個其P C値相異正好爲2 K 之倍數的指令將假化(alias)。二指令的歷史將被儲存在 相同的R AM字組,且因此將可能會具破壞性地干擾。此 舉係被容許,因爲分支預測RAM 1 〇僅係一預測機構; 每一分支預測係稍後被加以驗證,並且若不正確係作修護 。因此,破壞性假化情形係僅僅造成預測準確度方面以及 因而在性能方面之潛在降級情形;分支預測R AM 1 〇之 尺寸係可平衡該性能降級情形。 分支擱置體2 0係一1 2個單元、內容可定址的先入 先出(F I F 0)結構,其儲存所有假想分支指令的預測 歷史。一預測分支執行或跟隨一預測分支執行(其正確方 向未知)的所有指令執行係假想執行。該分支擱置體2 〇 具有連接到位址匯流排1 3之一搜尋(Search)埠、連接 到三條線37B、39和40 (其稍候描述)之一輸入( Input)埠、以及連接到分支預測R Α Μ 1 〇之一更新( Update)璋。 分支擱置體2 0係以假想分支執行被發出的順序來儲 存其分支預測歷史。儲存於分支擱置體2 0中的各條目 (entry)具有與本發明有關之兩個部分:一條件分支指令的 預測歷史和該指令的位址。在每一時脈週期下,當加入條 目信號4 0爲真時(亦即邏輯〃 ),一個新的條目係 12 本紙張尺度適用中國團家標準(CNS)A4規格(210 X 297公釐) — — — — — — — — — — — — I I I I I I I — — — — — — — I (請先閲讀背面之注f項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 1 9 63 ο Α7 ___Β7_____ 五、發明說明(/ / ) 經由該輸入淳被加入該分支擱置體2 0。 分支擱置體2 0係操作如同爲一堆疊的擱置體。每一 條目係被寫入”最底的(bottommost) ”空位置。所述最底位 置係可經由該更新埠而予移入該分支預測R AM 1 〇。該 更新埠具有三條線:一資料線1 9 A,傳送該分支擱置體 2 0之最底位置中的條件分支指令預測歷史資料;一位址 匯流排1 9 B,傳送該最底位置中的條件分支指令位址; 以及一寫入致能(Write Enable)控制線1 9 C,對該分支 預測RAM 1 〇發出一寫入操作將被執行的信號。當此移 除發生時,該分支擱置體2 0中的所有條目係被下移一位 。分支修護係涉及刪除對於被發現到已被錯估之分支執行 的條目,以及刪除此條目之上的所有條目。以此方式,該 分支擱置體2 0中之所有的有效條目係從最底條目以其被 登錄的順序而連續地儲存。
當一PC値係透過該位址匯流排13被施加於分支擱 置體2 0的搜尋埠時,若該加入條目信號係真,則該P C 、P C + 1、P C + 2、以及P C + 3位址係同時與所儲 存分支指令位址之各者作比較,以及與該輸入埠處的位址 作比較。此等比較結果係自分支擱置體2 0被送到四個資 料輸出埠B out〇 — Bout3上。分支擱置體2 0之 各資料輸出埠具有兩個部分並且係連接到兩組線。一組線 爲一位元匹配(Match)線,對於各埠B 〇 u t 〇 - B 〇 u t 3分別爲2 2 A - 2 2 D。另一組線爲一資料匯流排, 對於各埠B out〇 — Bout3分別爲2 1 A — 2 1 D 13 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -----11 — I I I I 裝! 訂------線 f (請先閱讀背面之注意事項再填寫本頁) S3 0 經濟部智慧財產局員工消費合作社印製 A7 B7 五、發明說明( ,用於所儲存分支指令位址之各者的預測歷史資料。在此 等輸出埠上的匹配線2 2 A - 2 2 D係載有一邏輯” 1 ” ’ 若且唯若係有至少一個所儲存位址爲分別與P C、P C + l、PC + 2、或PC + 3相匹配。對於其匹配線2 2 A - 2 2 D爲邏輯"1 ”的任何璋,在該埠處的對應預測歷史 資料係爲其位址相匹配者(此處在該輸入埠的値係視作最 頂者)之儲存於最頂(topmost)(最新近登錄)的條目。 匹配線2 2 A _ 2 2 D係分別連接到2對1 (2-to-l)多 工器1 5 A - 1 5 D,並對其控制。對於具有一匹配線2 2 A — 2 2 D處於邏輯1之各資料輸出埠B 〇 u t 0 -B 〇 u t 3,對應的多工器1 5 A _ 1 5 D係自分支擱置體 2 0選取資料匯流排2 1 A - 2 1 D。來自該埠的預測歷 史資料係被選取作爲是用於多工器1 5 A — 1 5 D的輸出 。若資料輸出埠匹配線2 2 A - 2 2 D係爲邏輯〇,對應 之多工器1 5 A — 1 5 D的輸出係自匯流排1 4 A - 1 4 D上之分支預測R AM 1 〇的對應資料輸出埠D 〇 u t 0 一Do u t 3選取預測歷史資料。 以此配置,四個多工器1 5 A - 1 5 D的輸出係爲對 於PC、PC + 1、PC + 2,以及PC + 3之任何分支 的最近預測歴史。在任何時間點處,若在P c + i有一分 支指令B (其中i = 〇、1、2、3 ),則係有兩種可能 性:不存在B之假想執行,或者是存在有—個或多個假想 執行。在前者的例子中,來自於分支擱置體2 〇對應於p C + 1的匹配線2 2 A- 2 2 D係爲邏輯〇,故多工器1 14 本紙張尺度適用中國國家標準(CNS)A4規格(21〇 x 297公釐) ----- ----I I I I 裝 ---I I--訂------ - --续 (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 41 963 0 “ A7 _ B7 五、發明說明(q) 5 A — 1 5 D的輸出係來自位在對應輸出匯流排1 4 A _ 1 4 D上之分支預測r AM 1 〇。來自多工器1 5 A - 1 5 D的輸出信號係代表分支指令B上達其最近執行(其在 此例中爲非假想性)之歷史。 若係有一B之假想執行,則來自分支擱置體2 〇的輸出璋 Bout〇-B〇ut3 之一者的一匹配線 2 2 A — 2 2 D係載有一邏輯1信號,並且該埠的預測歷史輸出係在B 之最近假想執行後者。由於所有假想執行係較之所有非假 想執行爲近者,故此爲最近的執行,並且係由對應的多工 器1 5 A - 1 5 D所選擇作爲輸出。 各多工器1 5 A — 1 5 D的輸出匯流排係四個相同預測 模組1 6 A — 1 6 D之一者的輸出匯流排。如圖3所示, 各預測模組1 6 A — 1 6 D檢驗來自其個別多工器1 5 A 一 1 5 D的預測歷史資料,以決定對於分支指令之目前執 行的預測。預測歷史資料具有八位元,由二位元預測狀態 、三位元上數計數器値、以及三位元下數計數器値所構成 。預測歷史資料係載送在形成爲各多工器1 5 A _ :L 5 D 之輸出匯流排的八條匯流排線上。 各預測模組1 6 A — 1 6 D具有一反或(N 0 R)閘 2 3和一互斥或(Exclusive-〇R )聞2 4。反或聞2 3接 收下數計數器的三個位元作爲輸入,且反或閘2 3的輸出 係作爲一輸入而連接到互斥或閘2 4。到互斥或閘2 4之 一第二輸入係預測狀態位元之預測狀態的高有效位元,狀 態丨1丨。如圖3中所示,低有效位元(狀態丨〇丨)以及 15 -----------I I I I 訂_ 1 I i i I ! 線 · (請先閱讀背面之注意事項再填寫本頁) 本紙張尺度適用中國國家標準(CNS>A4規格(210 X 297公釐〉 4 1 963 Ο Α7 _Β7______ 五、發明說明(丨4*) 上數計數器的三個位元係通過預測模組1 6 A - 1 6 D, 而並無連接到反或閘2 3與互斥或閘2 4。 可看出的是,由狀態機器所給定的預測係等於狀態的 最高有效位元,狀態{ 1 }。一爲零的下數計數器値(所 有三個位元皆等於邏輯〇 )將令反或閘2 3產生一輸出邏 輯1,其轉而令互斥或閘2 4將狀態{ 1 }的値作互補。 若該下數計數器係非零,則反或閘2 3具有一爲邏輯〇的 輸出,其令互斥或閘2 4輸出狀態{ 1 }的値。互斥或鬧 2 4的輸出係爲該預測値。 預測模組1 6 Α - 1 6 D的輸出,即八個位元之預測 歷史資料加上對於在PC+i (i=0到3)之四個指令 各者的目前預測,係分別連接到一指令解碼F I F◦2 5 的輸入掉2 6A_2 6D。指令解碼F I F〇2 5係五個 指令單元,並儲存從其被自指令高速緩衝記憶體(未示出 )擷取時開始直到其可被發出到處理器管線執行級時爲止 的指令。對於多達四個指令的預測歷史資料係可在各時脈 週期於輸入埠2 6 A - 2 6 D處加入。該預測歷史資料係 從最底的空位置以增加位址的順序被加入。亦即,經由輸 入埠2 6 A (其接收對於在P C處之指令的預測歷史)的 資料係進入該指令解碼F I F 0 2 5之最底的空條目。經 由輸入埠2 6 B的資料係進入正好其上方的條目,以此類 推。 雖然指令的預測歷史係被提供到輸入埠2 6 A,此指 令的位址(P C )係由匯流排1 3經由指令解碼F I F 0 16 (請先閱讀背面之注意事項再填寫本頁) I I I I I I 訂· I ! I I 丨 ! 經濟部智慧財產局員工消費合作社印製 本纸張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 4 19 63 0 ‘ A7 _B7_____ 五、發明說明(/ 0 2 5之一位址輸入埠3 0所提供。指令解碼F I F 0 2 5 含有將儲存於其之各指令與該指令被擷取之位址產生關聯 的邏輯。 指令發出邏輯5 0將檢驗指令解碼F I F 〇 2 5中之 四個最底的指令。指令發出邏輯5 0的主要任務係,對於 指令解碼F I F◦2 5的各指令而決定此指令何時可予"發 出(issued)",亦即進展到處理器管線中的後續級。指令 發出邏輯5 0必須執行的兩項工作是:(1 )追蹤各發出 指令之結果的可用性和位置,與(2 )決定指令解碼F I F Ο 2 5中之各指令與先前發出指令的相依性。關於此等 工作如何執行之特定細節係與本發明並無關聯。 當該指令發出邏輯係發出指令到後續管線級時,其從 指令解碼F I F〇2 5的底部移走指令。在較佳實施例中 ,除非該指令解碼F I F 0中之此指令”以下(below) ”的 所有指令係亦發出,則將無指令被發出;因此,指令解碼 F I F 0 2 5係確實爲先入先出。 若指令解碼F I F 0 2 5含有分支指令,指令發出邏 輯5 0便檢驗最底的此指令。若係一無條件採取的分支, 則該指令發出邏輯係實施兩項特定步驟:(1 )其如由分 支指令所指引而改變程式計數暫存器11,以便更改指令 被擷取的順序;(2)其自指令解碼FIF 0 2 5之"頂部 (Top) ”移走該等後隨著不應被執行之分支的指令。 若指令解碼F I F 0 2 5中之最底分支指令係一條件 分支’則指令發出邏輯5 0係以上述方式決定出:(1 ) 17 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公釐) (請先閱讀背面之泫意事項再填寫本頁) 裝! ΪΙ —訂_!!---線 經濟部智慧財產局員工消費合作社印製 經濟部智慧財產局員工消費合作社印製 41 963 Ο - Α7 _____Β7___ 五、發明說明(丨t) 此分支相依於哪個先前所發出的指令;以及(2 )該等前 行指令的結果是否爲可用,並且若爲是的話’則此等結果 的値爲何。若該分支所相依之結果所有者均爲已知,則指 令發出邏輯5 0對其求値以決定出該分支指令應否被採取 。若該分支將被採取,則該指令發出邏輯執行上述兩步驟 ,即改變程式計數暫存器1 1並自指令解碼F I F 0 2 5 移走任何後隨的棄置指令。 若指令解碼F I F 0 2 5中的最底分支指令係一條件 分支並且其所相依的結果均不可用,指令發出邏輯5 0便 利用一預測來決定該分支之處置。該預測係由一預測模組 1 6 A - 1 6 D所產生,並係以該分支指令經由一輸入埠 2 6 A — 2 6 D而寫入於該指令解碼F I F 0。再次地, 若該分支係預測爲將被採取,程式計數暫存器1 1的內容 係被更改並且後隨該分支的指令係自指令解碼F I F〇2 5被棄置。 指令發出邏輯5 0係產生有三個控制信號輸出,其控 制分支擱置體2 0的寫入操作。加入條目信號4 0在每一 時脈週期於一條件分支指令被發出時(亦即自F I F 0 2 5 之底部移走時)係爲邏輯1。每當加入條目信號4 0係爲一 邏輯1時,所述二位元選擇分支信號3 5係正被發出的分 支指令之該F I F 0中的索引,並且若該分支被採取時則 採取(Taken)信號4 1係一邏輯1,或是若該分支未被採 取時則採取信號4 1係一邏輯0。 指令解碼F I F 0 2 5具有四個輸出埠F 〇 u t 〇 - 18 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) "" <請先閱讀背面之注意事項再填寫本頁) 裝-----訂-------線 ! 4 1 9 63 0 ^ A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(j) F 〇 u t 3,其上分別連接一資料匯流排3 1 A — 3 ID 和一位址匯流排3 2 A _ 3 2 D。此等輸出埠F o u t Ο 一 F o u t 3之各者產生兩項資訊:一預測歷史,被儲存 於資料匯流排3 1 A- 3 1 D之一者上的指令解碼F I F 〇2 5中;以及對應位址匯流排3 2 A _ 3 2 D上之有關 的指令位址。此四個輸出埠F〇ut〇_F〇ut3係輸 出於指令解碼F I F 0 2 5中的最底四個條目。 資料匯流排3 1 A - 3 1 D和位址匯流排3 2 A — 3 2 D係連接到一多工器3 6的輸入終端’該多工器3 6具 有兩條選擇控制線3 5。由指令發出邏輯5 0所產生於該 控制線3 5上的一選擇分支控制信號係指令解碼F I F0 2 5之四個輸出之中用於最久的條件分支(若有的話)之 索引。此控制信號將令多工器3 6從輸出埠F 〇 u t 0 — F 〇 u t 3之一者選擇用於該最久分支的位址和預測狀態 資訊,分別作爲用於一位址匯流排3 7 B和資料匯流排3 7 A的輸出。位址匯流排3 7 B係直接連接到分支擱置體 2 0的輸入埠1 8 B。 於資料匯流排3 7 A上的預測狀態資訊係通往一更新 模組3 8。模組3 8將''更新"(如下所述)該預測狀態並 將該資料放置到一線路3 9上’此線路3 9則係連接到分 支擱置體2 0的輸入璋1 8 A。來自指令發出邏輯5 〇之 一控制線4 0上的一加入條目信號,將令在該等輸入埠1 8A和18B處的位址和更新狀態資訊被寫入分支擱置體 2 0 ’其當指令解碼F I F◦2 5中之一條件分支指令正 19 (請先Μ讀背面之注項再填寫本頁) 裝------ 訂. --------線 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公釐) 經濟部智慧財產局員工消費合作社印製 4 1 9 63 0 、 A7 —__ B7 五、發明說明(α) 被發出時。 更新模組38(其可實施爲隨機邏輯或基於ROM的 記憶體)將對四態分支預測器與上、下數計數器二者產生 新的値。該分支預測器的新値係如圖1之狀態圖所算出。 至該狀態機器的輸入係爲由指令發出邏輯5 0所產生的採 取信號4 1。若該分支被採取,則其値爲邏輯1 ;而若該 分支未被採取,則其値爲邏輯0。 圖4顯示更新模組3 8算出用於上、下數計數器之新 値的演算法。更新模組3 8首先由步驟1 0 1決定出該分 支的預測方向是否已知爲不正確。此舉係要求該分支所相 依的資料爲已知,並且要求所預測的方向(由預測模組1 6 A — 1 6 D所產生並儲存在指令解碼f I F 0 2 5中) 係並非正確的方向。 若該項預測係不知爲錯者,則依循路徑2 0 2,並且 在步驟1 0 2,上數計數器係檢驗以決定出其是否已達到 其最大値。若爲是’分支運行長度係明顯太長而無法由此 等計數器加以追縱。在步驟1 〇 3,路徑2 0 3被依循並 且下數計數器被設定爲最大値(在本發明之此實施例中爲 7)。此舉具有禁能該分支運行預測的作用,由於下數計 數器不會減量以及因而永遠不會達到零。由於上數計數器 已達到最大値,所以其係不變。 若上數計數器已達到其最大値,則依循路徑2 〇 4。 由步驟1 0 4和1 0 5,下數計數器係被檢驗以查看其是 否係處於最大値、零、或是一中間値。若該計數器爲處於 20 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公楚) -----------裝-----訂-丨-----線 (請先閲讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印製 41 963 0 ★ A7 B7 五、發明說明(q) 一中間値(在步驟1 0 4和1 0 5之後分別依循路徑2 0 5和206),此意謂對於此分支之分支運行預測係並未 被禁能並且該分支運行尙未達到被預測運行的終止。因此 ,在步驟1 0 7,該下數計數器係被減量1,因爲其現在 係更接近於被預測運行的終止之一個分支執行。 若該下數計數器係在步驟1 0 4被決定爲處於其最大 値或者是在步驟1 0 4和1 0 5被決定爲處於一中間値, 則該上數計數器係在步驟1 0 8被增量1。因此,目前運 行的長度係總是被維持在該上數計數器中(直到此計數器 係命中該最大値),即使該分支運行預測器係被禁能(步 驟1 0 4之後所依循的路徑2 0 7 )。 若該下數計數器在步驟1 0 5係被決定爲零,則路徑 2 0 8係被依循。該下數計數器係在步驟1 0 9被重行載 入以上數計數器的目前値,然後上數計數器係在步驟11 0被重行初始化爲零。該下數計數器處於零時係表示被預 測運行之終止,亦即在相反方向上去進行的第一分支。複 製下數計數器到上數計數器係預測出,下一運行將爲如同 剛結束之運行的相同長度。設定上數計數器爲0係預測出 ,此一相反分支之後的下一分支將爲一新的運行中的第一 者。因此,帶有固定長度(少於最大計數器値)運行之一 分支(在反向上由單一分支所分離)將總是被正確地預測 〇 參看步驟1 0 1,若該分支預測已知爲錯誤,則將依 循路徑2 1 0。在步驟1 1 1,該上數計數器係被核對以 21 本紙張尺度適用中國國家標準(CNS)A4規格(210 x 297公1 ) (請先閱讀背面之注項再填寫本頁) I I I II I I 111!11線 963 〇 Α7 Β7 經濟部智慧財產局員工消費合作社印製 五、發明說明(v>) 決定出其是否係處於最大値。若該計數器已達到最大値’ 則剛完成的目前運行(由錯誤的預測所指示出)對於計數 器而言係太長,但是下一運行可能係足夠短。路徑2 1 1 係被依循,並且在步驟1 1 2 ’該下數計數器係被設定到 最大値以禁能該分支運行預測器’但該上數計數器係在步 驟110被重行初始化到零。 若該上數計數器係在步驟111被決定爲尙未達到其 最大値,則路徑2 1 2被依循。該下數計數器係在步驟1 1 3被核對是否爲零。若該下數計數器係處於零’則目前 的運行係被錯誤地預測爲已結束’亦即被預測的長度爲太 短。在此情況中,該上數計數器已計數此運行的確實長度 ,並且應繼續如此作出。路徑2 1 3係被依循並且該下數 計數器係在步驟114被設定到最大値’以避免於目前運 行中更多的預測,並且該上數計數器係在步驟1 〇 8被增 量。 若該下數計數器係經步驟1 1 3決定爲未處於零,則 目前的運行係被錯誤地預測爲尙未結束’亦即被預測的長 度爲太長。路徑2 1 6係被依循。該上數計數器(其保有 目前運行的確實長度)係被複製到該下數計數器,以便以 步驟1 0 9預測下一運行係具有該相同長度者。然後,該 上數計數器係在步驟11〇被重行初始化爲零。 圖5 A顯示帶有固定運行長度三之一分支上的分支預測器 之穩態行爲。最左邊的一行係表示分支預測器的狀態’ ”上 (Up) ”這一行表示上數計數器値,"下(Down)"這一行表示 22 (請先閱讀背面之注意事項再填寫本頁) -I裝 --------訂·---I--—線 本紙張尺度適用中國國家標準(CNS)A4規袼(210 X 297公釐) 41 963 0 〜 Α7 __Β7 五、發明說明(γ\) (請先閱讀背面之注意事項再填寫本頁) 下數計數器値,且"預測(Prediction)”這一行表示來自分支預 測器的預測位元。最右邊的一行係表示分支的確實方向’ 其中1代表所採取的分支,0代表未採取的分支(雖然將 此等値反過來亦將得到相同的行爲)。此行顯示出一個〇 接著三個1的重覆形態。在此情況中,由於主宰方向是1 ,該四態預測器總是預測1。其預測係該狀態的最高有效 位元;由於0的相反運行係不長於1,僅此狀態機器之狀 態的最低有效位元曾改變。 如圖5 A之第一列中所示,該下數計數器係零且該上 數計數器係等於三之運行長度。下數計數器爲零的値將令 由該分支預測器狀態機器所給定的預測(此預測爲1)係 由預測模組1 6 A- 1 6 D作互補。由於此〇分支係被發 出並被寫入分支擱置體2 0,故更新模組3 8係回應於該 上數計數器係小於最大値並且該下數計數器係爲零之事實 ,在步驟1 0 9將該上數計數器複製到該下數計數器,並 在步驟1 1 0將該上數計數器重置爲零。 經濟部智慧財產局員工消費合作社印製 此分支下一次被擷取時,在圖5 A之第二列中所給定 的値係自分支擱置體2 0或是自分支預測RAM 1 〇所讀 取。此時該預測模組1 6 A _ 1 6 D將察知一非零的下數 計數器値(値1 ),並因而致能未修改的狀態機器預測爲 1。當此分支被發出時,更新模組3 8將察知該上數計數 器爲低於最大値且該下數計數器爲處於一介於零和最大値 之間的中間値。因此,該模組係在步驟1 〇 7單純減量該 下數計數器,且係在步驟1 0 8單純增量該上數計數器。 23 $紙張尺度適用中國國家標準(CNS)A4規格(21G X 297公楚) ' · 經濟部智慧財產局員工消費合作社印製 4 1 963 Ο 4 Α7 ____Β7____ 五、發明說明 此相同的行爲係接著重覆兩次,該分支係被擷取且之後被 發出。在此1之運行的結束處,由圖5A之列5所示,該 下數計數器係再度達到零,並且因而該預測係再度被作互 補運算,且該等計數器被重行初始化以計數下一個運行。 圖5 B顯示出一行爲,即當長度爲三的運行係後隨以 一長度較短的運行(在此例中爲長度二)時,此長度較短 的運行則轉而後隨以一長度爲四之較長的運行。在由圖5 B之列1所示的狀態中,長度三的先前運行之結束已被正 確地預測,如圖5 A中所見。在假設下一運行亦將爲長度 三之下,該等計數器係被重行初始化(列2)。透過列3 和4,該上數計數器係被增量而該下數計數器係被減量。 在列4中,預測係仍然爲1,因爲被預測的運行尙未完成 ,但確實的方向是〇。 下一時刻,在列4中所發出分支的正確方向係變成已 知。該分支修護機構將棄置該分支以及其隨後所有指令的 結果。然後,該分支將被重行擷取並重行發出。該狀態機 器和該等計數器的値在重行擷取時(由列4’所示)係相 同於其在原來擷取時的値(由列4所示)。此係爲真,因 爲分支修護機構已移走原來發出之所有結果,包括任何對 於分支擱置體2 0之修改;所述修改係因爲該分支尙未被 解決而從未寫入於分支預測RAM1 0。 當接著修護後該分支被重行發出時,更新模組3 8便 將該項預測(其再度爲1 )比較於0的已知正確方向,以 決定出該預測係錯誤。路徑2 1 0在步驟1 0 1之後被依 24 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公爱) --- --------- i I--!訂--J·! — — 線 I 《請先閱讀背面之注意事項再填寫本頁) 41 963 0 - Α7 Β7
循。由於該上數計數器係少於最大値且該下數計數器係非 爲零,更新模組3 8便將上數計數器複製到下數計數器並 重置該上數計數器爲0,如圖5 B之列5所示。因此,該 分支運行預測器係被設定以預測下一運行將爲長度二。 該上數計數器和下數計數器係在列6和7中計數出一 預測運行長度爲二。在列7中所發出的分支係被預測爲運 行之結束,因爲下數計數器係零。因此,該預測被改變爲 0。此接著被發現爲一不正確的預測,致使得分支以相同 的値對該預測器重行發出。如列7’中所示。此時,更新 模組3 8係在步驟1 0 1決定出該預測係錯誤,並且路徑 2 1 0係再度被依循α在步驟1 1 1決定出該上數計數器 非處於最大値之後,後續的步驟1 1 3決定出該下數計數 器係爲零。在此情況下,運行的實際長度仍然未知,並且 因而其結束無法被預測。因此,該下數計數器係在步驟1 1 4被設定爲最大値,以避免任何試圖以預測該運行之結 束。該上數計數器繼續在步驟1 0 8增量,以計數目前運 行的長度。 在列8和9的預測係直接取自該狀態機器預測器,因 爲該下數計數器係被禁能。在列9所發出的分支係被預測 爲1但發現係爲0,此表示長度爲四(列5、6、7和8 )之一運行的結束。當此分支被重行發出(列9’)時’ 更新模組3 8再次在步驟1 0 1決定出該預測係錯誤。在 步驟1 1 1和路徑2 1 2之後,該下數計數器係在步驟1 1 3被決定係非爲零,所以該上數計數器係在步驟1 0 9 25 本紙張尺度適用t國國家標準(CNS)A4規格(210 X 297公釐) (請先閲讀背面之注意事項再填寫本頁) 裝 ----訂---------線 經濟部智慧財產局員工消費合作杜印製 經濟部智慧財產局員工消費合作社印製 41 963 Ο ^ Α7 ___ Β7 五、發明說明(/y> 被複製到該下數計數器,且該上數計數器係在步驟i丄〇 被重行初始化。因此,在列1 〇,該分支運行預測器係被 設定以預測下一運行將爲長度四。 ' 若無分支運行預測器,圖5 B所示例子中的所有分支 均將被預測爲1。因此,在列4和9中的分支將被錯誤地 預測,但是在列7中的分支將被正確地預測。亦即,每當 一短於7的運行後隨以一較長的運行時,將發生一額外的 分支修護。當一長度爲七或少於七的運行係後隨以一較短 的運行時,如在列4中,無論係有或無分支運行預測器均 發生一修護。每當一短運行後隨以相同長度的運行時,該 分支運行預測器可免除一分支修護。 經由運用本發明,對於固定或緩慢改變運行長度分支 之分支預測率係可大爲改善。快速改變運行長度之分支則 可能具有較差之性能,視運行長度之確實分配而定。 雖然上述爲本發明較佳實施例之一完整描述,但可運 用各種替代、修改以及等效者。應係明顯的是,本發明係 同樣可適用於藉由對上述實施例作適當修改者。是以,上 述說明係不應視爲限制本發明的範疇,蓋本發明之範疇係 由隨附申請專利範圍所界定。 26 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -1----1----II^------訂--- ----— ·線 I <請先閱讀背面之注意事項再填寫本頁)

Claims (1)

  1. 4 1 9 63 0 β Α8 Β8 C8 D8 修ιΕ 充 六、申請專利範圍 1 _ 一種操作電腦系統之方法,從一指令記憶體擷取 —序列指令以供在該電腦系統中執行,該序列包括無條件 分支指令與條件分支指令,該種方法包含下列步驟: 於各時脈週期,在一程式計數器中的一位址,由該指 令記憶體讀取至少一個指令; 將自該指令記憶體而來的各分支指令分類爲無條件者 、條件且已知將被採取者、條件且已知將不被採取者、或 是假想者; 預測該序列中之各假想分支指令的一運行長度爲等於 對於該假想分支指令之大於1的最新近運行長度;及 對於隨後時脈週期的讀取步驟,若回應於該預測步驟 係有任何被分類爲無條件者、已知將被採取者、或是預測 將被採取者之一第一分支指令,則隨該第一分支指令所指 引而更改該程式計數器; 藉此,若控制被儲存於該指令記憶體中之一假想分支 的一條件係呈現出一致的環路行爲,則該操作方法正確地 預測此條件。 2·如申請專利範圍第1項所述操作電腦系統之方法 ,其中該預測步驟包括計數對於一假想分支指令之控制條 件在改變爲一第二狀態之前仍然保持於一狀態的次數,以 決定該假想分支指令一的運行長度。 3·如申請專利範圍第2項所述操作電腦系統之方法 ,其中該計數子步驟包括向上計數到一預定的定數。 4 *如申請專利範圍第3項所述操作電腦系統之方法 1 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) -------I-----k------i I ^-11--I--- (請先閱讀背面之注意事項再填寫本頁) 經濟部智慧財產局員工消費合作社印制农 4 1 963 0 Α8 Β8 C8 D8 經濟部智慧財產局員工消費合作社印制^ 六、申請專利範圍 ’其中該預測步驟在當一假想分支指令之目前的運行長度 爲等於或超過該預定的定數時,將預測其控制該假想分支 指令的一條件爲同於此假想分支指令之前兩次或更多次擷 取者。 5·如申請專利範圍第2項所述操作電腦系統之方法 ,其中該計數子步驟包括計數該假想分支指令的擷取次數 ,自從其前一次擷取之後具有係已知或被預測爲互補於對 於該假想分支指令之前兩次或更多次連續擷取爲未改變之 條件的一條件。 6·如申請專利範圍第5項所述操作電腦系統之方法 ,其中該預測步驟包括儲存該假想分支指令的擷取次數, 自從其前一次擷取之後具有係已知或被預測爲互補於對於 該假想分支指令之前兩次或更多次擷取爲未改變之條件的 一條件。 7·如申請專利範圍第6項所述操作電腦系統之方法 ,其中該預測步驟包括將先前運行長度與該假想分支指令 之目前擷取數目作比較,並假設該控制條件爲同於該假想 分支指令之前兩次或更多次擷取者,除非所述先前運行長 度爲等於所述目前擷取數目D 8·如申請專利範圍第7項所述操作電腦系統之方法 ,其中該預測步驟包括決定所述先前運行長度是否爲等於 或超過一預定的定數D 9.如申請專利範圍第8項所述操作電腦系統之方法 ,其中該假設子步驟係假設該控制條件爲同於該假想分支 2 ----------------I--訂 ---------ί (請先閱讀背面之注意事項再填寫本頁) 本紙張尺度適用中國國家標準(CNS)A4規格297公釐) 4 1 963 Ο Α8 Β8 C8 D8 經濟部智慧財產局員工消費合作社印製 六、申請專利範圍 指令之前兩次或更多次擷取者,除非所述先前運行長度爲 少於該預定的定數並且等於該目前擷取數目。 10.如申請專利範圍第1項所述操作電腦系統之方 法,其中該預測步驟包括: 令一第一之二進位制計數器關聯於各條件分支指令; 在擷取一條件分支指令時’若此條件分支指令並非該 條件分支指令之重行擷取並且係已知或是被預測爲具有互 補於該條件分支指令之正好先前擷取者的一控制條件,或 者是重行擷取並且已被預測爲具有相同於該條件分支指令 之正好先前擷取者的該控制條件,則初始化一相關聯的計 數器;及 在該條件分支指令之各後續擷取時將該計數器增量一 ,除非該計數器已達到一預定最大計數。 1 1 *如申請專利範圍第1 0項所述操作電腦系統之 方法,其中該預測步驟進而包含: 令一第二之二進位制計數器關聯於各條件分支指令, 此第二計數器具有相同於該第一之二進位制計數器的—最 大計數; 若且唯若該第二計數器保有一零計數,預測一有關分 支指令的控制條件爲互補者;及 在該分支指令之各擷取’回應於該擷取是否係因該分 支指令之一早先擷取所作的不正確預測而爲有必要的重行 擷取,而變更該第二之二進位制計數器。 12·如申請專利範圍第11項所述操作電腦系統之 3 本紙張尺度適用中國國家標準(CNS)A4規格(210 X M7公愛) ---I---------^ - I-----—訂----I----i b {請先閱讀背面之注意事項再填寫本頁) 4 1 9 63 0 A8 B8 C8 D8 經濟部智慧財產局員工消費合作社印5农 六、申請專利範圍 方法,其中若該擷取係非爲該分支指令之重行擷取,該第 二之二進位制計數器的變更子步驟便進而包括: 若該第一之二進位制計數器保有該最大計數,則將該 第二之二進位制計數器設定爲該最大計數; 否則’便將該第二之二進位制計數器減量―,除非其 保有一零計數;及 若該第二之二進位制計數器保有一零計數,則將該第 一之二進位制計數器中的計數複製到該第二之二進位制計 數器。 13·如申請專利範圍第11項所述操作電腦系統之 方法,其中若該擷取非爲該分支指令之重行擷取,該第二 之二進位制計數器的變更子步驟便進而包括: 在該早先擷取時,將該第一之二進位制計數器中的計 數複製到該第二之二進位制計數器,除非該早先擷取之控 制條件已被預測爲互補於對於條件分支指令之前兩次或更 多次擷取爲未改變的條件:及 若該早先擷取之控制條件已被預測爲互補於對於條件 分支指令之前兩次或更多次擷取爲未改變的條件,則將該 第二之二進位制計數器設定爲該最大計數。 1 4 ·如申請專利範圍第1 3項所述操作電腦系統之 方法,其中該預測步驟包含: 復原對於條件分支指令之前兩次或更多次擷取爲未改 變之條件分支指令的控制條件,以及對於正好在被重行擷 取之分支指令的擷取前之分支指令的第一與第二之二進位 4 -------------^ i I-----訂-------—線 (請先閱讀背面之注意事項再填寫本頁) 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 41 963 Ο Β8 C8 _____D8____ 六、申請專利範圍 制計數器中的計數。 15·如申請專利範圍第14項所述操作電腦系統之 方法,其中該預測步驟包含: 儲存對於條件分支指令之前兩次或更多次擷取爲未改 變之分支指令的控制條件、對於該分支指令之第一與第二 之二進位制計數器中的計數、以及該分支指令在各擷取時 之一指令記憶體位址。 1 6 ·—種預測電腦假想分支指令方向之方法,包含 下列步驟: 決定該分支指令的一第一運行長度,高至一預定極限 , 計數該假想分支指令之下一運行長度;及 預測該下一運行長度爲相同於該第一運行長度,除非 該下一運行長度係在等於該第一運行長度之前結束或是超 過該第一蓮行長度; 藉此,係增進正確預測假想分支指令之影響範圍。 17·如申請專利範圍第16項所述預測電腦假想分 支指令方向之方法’進而包含步驟爲,若該下一運行長度 超過該第一運行長度,則預測該下一運行長度爲無限繼續 〇 1 8 *如申請專利範圍第1 7項所述預測電腦假想分 支指令方向之方法,進而包含: 若該下一運行長度在等於該第一運行長度之前結束, 則決定出該分支指令之下一運行的長度; 5 本紙張尺度適用中國國家標準(CNS)A4規格⑵Q χ观公楚) (請先間讀背面之注意事項再填寫本頁) -----!"!!訂! 1·線 I - · 經濟部智慧財產局員工消費合作社印製 41 963 Ο < 韶 C8 ______ D8 六、申請專利範圍 計數該下一運行隨後之假想分支指令的運行長度;及 預測該下一運行長度隨後之運行爲相同於該下一運行 長度,除非該下一運行隨後之運行係在等於該下一運行長 度之前結束或是超過該下一運行長度。 19—種預測電腦系統控制分支指令條件的結果之 方法,包含下列步驟: 決定出該控制條件在改變爲一第二狀態之前處於一第 一狀態的次數;及 預測該控制條件在改變爲該第二狀態之前仍處於該第 一狀態相同的次數。 2 0 .如申請專利範圍第1 9項所述預測電腦系統控 制分支指令條件的結果之方法’其中該決定與預測步驟係 對於各條件分支指令所實施。 21·如申請專利範圍第19項所述預測電腦系統控 制分支指令條件的結果之方法,進而包含: 依據該預測步驟而採取該分支指令。 2 2 _如申請專利範圍第2 1項所述預測電腦系統控 制分支指令條件的結果之方法,其中該採取步驟包括: 依據該控制條件的第一狀態而採取該分支指令上述次 數;及 然後依據該控制條件的第二狀態而不採取該分支指令 0 2 3 ·如申請專利範圍第2 2項所述預測電腦系統控 制分支指令條件的結果之方法,其中在該決定步驟中之該 6 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) ^---I----訂- --------- 線, 經濟部智慧財產局員工消費合作社印製 4 1 963 0 A8 B8 C8 D8 六、申請專利範圍 次數係有限。 24·如申請專利範圍第23項所述預測電腦系統控 制分支指令條件的結果之方法’其中該決定步驟包括:二 維持該條件分支指令之目前運行長度的一第一計數; 及 D ' 回應於該第一計數與該條件分支指令之最新近完成的 運行長度’而維持一第二計數。 2 5 .如申請專利範圍第2 4項所述預測電腦系統控 制分支指令條件的結果之方法’其中該第一計數係藉由在 每次正確採取該條件分支指令時增量該第一計數而維持。 2 6 ·如申請專利範圍第2 4項所述預測電腦系統控 制分支指令條件的結果之方法’其中該第二計數係藉由在 每次正確採取該條件分支指令時減量該最新近完成運行長 度的一計數而維持。 2 7 .如申請專利範圍第2 3項所述預測電腦系統控 制分支指令條件的結果之方法,其中該決定步驟包括: 維持該條件分支指令之目前運行長度的一第一計數, 藉由在每次正確採取該條件分支指令時增量該第一計數; 及 維持一第二計數,回應於該第一計數與該條件分支指 令之最新近完成的運行長度,藉由在每次正確採取該條件 分支指令時減量該最新近完成運行長度的一計數; 且其中該第二狀態採取步驟係在當該第二計數達到零 時所實施。 7 本纸張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) 訂---------線— 經濟部智慧財產局員工消費合作社印製 41 963 Ο ΑΒ R8 C8 D8 六、申請專利範圍 2 8 .如申請專利範圍第2 3項所述預測電腦系統控 制分支指令條件的結果之方法,其中該預測步驟包括步驟 爲’若該控制條件處於該第一狀態超過該有限次數,則預 測該控制條件爲處於該第一狀態。 2 9 .如申請專利範圍第2 7項所述預測電腦系統控 制分支指令條件的結果之方法,其中該預測步驟進而包括 當所採取的分支指令係錯誤預測時,若該目前運行長 度超過一預定極限,則重行起始該第一計數;及 對於該條件分支指令之最新近完成的運行長度,將該 第二計數設定爲先前的第一計數。 3 0 .如申請專利範圍第2 7項所述預測電腦系統控 制分支指令條件的結果之方法,進而包含: 若該目前運行長度係短於該最新近完成運行長度,則 對於該條件分支指令之最新近完成運行長度,自該第一計 數而複製該第二計數;及 重f丁起始該第一計數。 31·如申請專利範圍第3項所述操作電腦系統之方 法,其中該預定之定數包含七。 3 2 ‘如申請專利範圍第1 6項所述預測電腦假想分 支指令方向之方法,其中該預定之極限包含七。 3 3 ·如申請專利範圍第2 3項所述預測電腦系統控 制分支指令條件的結果之方法,其中該決定步驟中的次數 係限制爲七。 8 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閲讀背面之注意事項再填寫本頁) "--------訂 --------線- 經濟部智慧財產局員工消費合作社印製
TW085101434A 1994-12-02 1996-02-06 Limited run branch prediction TW419630B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US34851994A 1994-12-02 1994-12-02

Publications (1)

Publication Number Publication Date
TW419630B true TW419630B (en) 2001-01-21

Family

ID=23368385

Family Applications (1)

Application Number Title Priority Date Filing Date
TW085101434A TW419630B (en) 1994-12-02 1996-02-06 Limited run branch prediction

Country Status (7)

Country Link
US (1) US5926634A (zh)
JP (1) JP3725547B2 (zh)
KR (1) KR100371686B1 (zh)
CN (3) CN100507834C (zh)
GB (1) GB2309806B (zh)
TW (1) TW419630B (zh)
WO (1) WO1996017295A1 (zh)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6438682B1 (en) * 1998-10-12 2002-08-20 Intel Corporation Method and apparatus for predicting loop exit branches
JP3683439B2 (ja) 1999-08-24 2005-08-17 富士通株式会社 分岐予測を抑止する情報処理装置および方法
CA2383531A1 (en) * 1999-09-01 2001-03-08 Intel Corporation Instruction for multithreaded parallel processor
US6823446B1 (en) * 2000-04-13 2004-11-23 International Business Machines Corporation Apparatus and method for performing branch predictions using dual branch history tables and for updating such branch history tables
US7107438B2 (en) * 2003-02-04 2006-09-12 Via Technologies, Inc. Pipelined microprocessor, apparatus, and method for performing early correction of conditional branch instruction mispredictions
CN100407133C (zh) * 2003-07-09 2008-07-30 Nxp股份有限公司 用于分支预测的方法和设备
US8144156B1 (en) 2003-12-31 2012-03-27 Zii Labs Inc. Ltd. Sequencer with async SIMD array
JP2007109116A (ja) * 2005-10-17 2007-04-26 Fukuoka Pref Gov Sangyo Kagaku Gijutsu Shinko Zaidan 推定装置、テーブル管理装置、選択装置、テーブル管理方法、そのテーブル管理方法をコンピュータに実現させるプログラム、及び、そのプログラムを記録する記憶媒体
US8640005B2 (en) 2010-05-21 2014-01-28 Intel Corporation Method and apparatus for using cache memory in a system that supports a low power state
US10007524B2 (en) * 2014-11-14 2018-06-26 Cavium, Inc. Managing history information for branch prediction
EP3933597A1 (en) * 2020-06-30 2022-01-05 Microsoft Technology Licensing, LLC Code flow trace compression employing branch prediction for implicit code flow data encoding in a processor

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4764861A (en) * 1984-02-08 1988-08-16 Nec Corporation Instruction fpefetching device with prediction of a branch destination for each branch count instruction
US5440704A (en) * 1986-08-26 1995-08-08 Mitsubishi Denki Kabushiki Kaisha Data processor having branch predicting function
GB8728493D0 (en) * 1987-12-05 1988-01-13 Int Computers Ltd Jump prediction
EP0463965B1 (en) * 1990-06-29 1998-09-09 Digital Equipment Corporation Branch prediction unit for high-performance processor
US5367703A (en) * 1993-01-08 1994-11-22 International Business Machines Corporation Method and system for enhanced branch history prediction accuracy in a superscalar processor system
TW261676B (zh) * 1993-11-02 1995-11-01 Motorola Inc

Also Published As

Publication number Publication date
CN1881177A (zh) 2006-12-20
JP3725547B2 (ja) 2005-12-14
GB9710868D0 (en) 1997-07-23
KR100371686B1 (ko) 2003-03-31
US5926634A (en) 1999-07-20
GB2309806A (en) 1997-08-06
JPH10510076A (ja) 1998-09-29
CN1159648C (zh) 2004-07-28
KR960025144A (ko) 1996-07-20
CN1306394C (zh) 2007-03-21
CN100507834C (zh) 2009-07-01
WO1996017295A1 (en) 1996-06-06
CN1619488A (zh) 2005-05-25
CN1168727A (zh) 1997-12-24
GB2309806B (en) 2000-02-23

Similar Documents

Publication Publication Date Title
JP3547482B2 (ja) 情報処理装置
CN1269029C (zh) 流水线处理器的异常管理
JP3729087B2 (ja) マルチプロセッサシステム、データ依存投機実行制御装置およびその方法
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
JP3594506B2 (ja) マイクロプロセッサの分岐命令予測方法
JP2744890B2 (ja) ブランチ予測式データ処理装置および動作方法
US9329868B2 (en) Reducing register read ports for register pairs
US20080209190A1 (en) Parallel prediction of multiple branches
US8943298B2 (en) Meta predictor restoration upon detecting misprediction
JPH0844562A (ja) コンピュータシステム及びその動作方法
TW419630B (en) Limited run branch prediction
CN103257849A (zh) 程序执行控制装置
US6145074A (en) Selecting register or previous instruction result bypass as source operand path based on bypass specifier field in succeeding instruction
US5771377A (en) System for speculatively executing instructions using multiple commit condition code storages with instructions selecting a particular storage
JP2015133126A (ja) プロシージャリターンシーケンスを加速するための方法およびシステム
US5761467A (en) System for committing execution results when branch conditions coincide with predetermined commit conditions specified in the instruction field
US8261049B1 (en) Determinative branch prediction indexing
US5745780A (en) Method and apparatus for source lookup within a central processing unit
EP0497579B1 (en) Circuit for executing conditional branch instructions in a pipelined processor
US9323532B2 (en) Predicting register pairs
KR920006770B1 (ko) 명령을 페치(fetch)하기 위한 제어 시스템
TWI737628B (zh) 修改資料處理單元的行為
WO2023108600A1 (en) System, method and apparatus for reducing power consumption of error correction coding using compacted data blocks
JP2011209859A (ja) 情報処理装置
JP2812610B2 (ja) パイプライン制御方式

Legal Events

Date Code Title Description
GD4A Issue of patent certificate for granted invention patent
MK4A Expiration of patent term of an invention patent