TWI295032B - - Google Patents

Download PDF

Info

Publication number
TWI295032B
TWI295032B TW094142240A TW94142240A TWI295032B TW I295032 B TWI295032 B TW I295032B TW 094142240 A TW094142240 A TW 094142240A TW 94142240 A TW94142240 A TW 94142240A TW I295032 B TWI295032 B TW I295032B
Authority
TW
Taiwan
Prior art keywords
branch
distance
dynamic
instruction
predictor
Prior art date
Application number
TW094142240A
Other languages
English (en)
Other versions
TW200723094A (en
Inventor
Wei Hau Chiao
Yau Chong Hu
Chia Wen Cheng
Chung Ping Chung
Jyh Jiun Shann
Original Assignee
Ind Tech Res Inst
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 Ind Tech Res Inst filed Critical Ind Tech Res Inst
Priority to TW094142240A priority Critical patent/TW200723094A/zh
Priority to US11/450,404 priority patent/US20070130450A1/en
Publication of TW200723094A publication Critical patent/TW200723094A/zh
Application granted granted Critical
Publication of TWI295032B publication Critical patent/TWI295032B/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, 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
    • 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, look ahead
    • G06F9/3802Instruction prefetching
    • 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, 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

Description

1295032 .九、發明說明: 【發明所屬之技術領域】 本發明係有關於一種降低虚 f々仫各 裡丨牛低處理态漓耗功率之技術,更 理器消耗功率的技術有動‘ "分支預測機制之處 【先前技術】 自從電腦發㈣來’處理n效能的提升—直是 ㈣:發人員所致力追求的目的。當程式透過處理器執;; ^取大的要求便是執行時間短且執行速度快。自管線式 ⑺Pelining)架構被提出來後,已成為高速處理器架構 的主流。理論上,利用指令管線執行的方式,讓多個指令 在處理器中同時執行’可以大幅提升效能。但實際在程式 執行的過程中,因為指令間具有相依性關係,故使得管^ 式架構處理器的產出(Throughput)並非管線理想值。 前述之相依性關係包括:硬體上的資源衝突、指令使 用上的相依性以及由分支指令所造成之控制相依性能 分支預測器即是目前解決控制相依性技術中 效的手段,並且已經廣為被管線式架構處理器採用取 對於大部分的指令集架構(ISA) ^,有所謂控制 流程指令(Contro卜Flow Instructions),此類指令會改 變程式計數器的内容值,使得程式執行的流向改變^ ^常 將其稱之為分支指令(Branch Instructions)。分支於八 大抵可分稱二種不同形式:一種是有條件者;另一種則為 無條件者。條件式的分支指令再執行時會有二種可能的二 18928 (§: 5 1295032 ' r •果·種疋不發生(t Taken),即依照原來的路徑繼續 .執行。另一種則是發生(Taken),即跳躍至分之目的位址 (Target Address)繼續執行。至於程式執行時是發 生,完全由分支指令執行的結果予以決定。大部分的/支 預測機制被用來預測有條件分支的結果。 目前嵌入式處理器相當注重低功率設計,動態分支預 測(Dynamic Branch Prediction)通常搭配分支目的緩 衝器(Branch Target Buffer,BTB)等記憶緩衝器,藉 以有效提高處理器之執行速度。 曰 由於分支目的緩衝器(BTB)每一個指令循環 (Instruction Cycle)都要被查找,此外分支指令約佔 程式執行時動態指令的百分之十五,因此在管線式架構中 •對於那些非分支指令之動態分支預測器查找動作佔據了 動態分支預測器功率消耗的百分之八十五並且這百分之 八十五的功率消耗並沒有任何實質上的意義,原因是動態 鲁分支預測器查找僅對分支指令具有意義。因此使得動態分 支預測成為處理器中耗電的動作之一。 美國專利第US 2004/0181654號公開案揭露一種 「LOW POWER BRANCH PREDICTION TARGET BUFFER」。此案 揭露之方法係應用於管線式處理器中,該處理器包括用以 執行指令提取與分支預測運算之第一層級(stage),以及 用以處理透過該第一層級所提取之指令的第二層級。而該 方法包含:第-層級提取第一指令;自該第一指令取得分 支預測致能訊息;傳送該第一指令至該第二層級;針對= 18928 ⑧ 6 1295032 •縯於該第-指令之第二指令依據該分支預測致能訊息致 -能或失能該分支預測電路之至少一部分;以及該第一層級 依據該第二指令執行該指令提取與分支預測運算。其中, 該分支預測致能運算係相應於編碼於該第一指令中之分 支預測致能訊息透過該分支電路依據該第二指令予以執 行。此案,主要係透過指令編碼之方式,在指令中應用未利 用的運算碼(unused opcode)告知處理器開啟或關閉⑽ 電路,或透過指令序列的產生以達到開啟或關閉Βτβ電路 Ρ之目的。 惟前述習知技術係透過修改處判之原始程式碼、編 譯器與指令集架構等方式以實現控制βΤΒ電路的目的會 增加處理器,不但複雜且需更改處理器架構。此外,習曰知 技術於發現分支預測錯誤(MispredietiQn) _,I法即 ,調整分支預測,相對的會造成多餘的耗電或效 【發明内容】 一 為解決前述習知技術的種種問題,本發明之主要目的 在於提供-種透過硬體架構設計能動態紀八 距離並據以停止非分主指入夕屯μ 態分支預測系分支預測器查找的動 本發明之另一目的在於提供一種無須修改處理哭之 ==器與指令集架構即能運作之動軸 靭心刀叉預測系統以及方 18928 7 1295032 • 法。 .^為達成上述及其他目的,本發明之動態分支預測系統 ,應用於具有動態分支預測器之處理器中,包括:用以計 #相姊一分支指令間之分支距離值之分支距離產生模 用以儲存該分支距離產生模組所計算出之相鄰二分支 指令間之分支距離值的分支距離表;用以自該分支距離表 取出”亥刀支距離值並據之判斷停止查找動態分支預測 修器次數的動態分支預測器致能模組,該動態分支預測器具 有用作為緩衝儲存處理之分支目的緩衝器。 ^於本發明之一種型態中’該動態分支預測器致能模組 復包括次分支距離計數器,係用以表示尚有多少指令循環 =遇到-人分支指令。此外,當該次分支距離計數器為「〇」 蚪,次一指令循環即啟動動態分支預測器;若非為「〇」 時’則使動態分支預測器查找失能。此外,該次分支距離 計數器於該動態分支預測器命中時,會重新被寫入新的分 ♦支距離值,俾表示該處㈣正提取—個分支指令。 於本發明之另-種型態中,復包括分支預測錯誤處置 模組,係用於判斷出預測錯誤發生時重新自該分支距離表 中擷取丨iL確之分支距純並儲存至該次分支距離計數 透過前述本發明之動態分支預測系統,所執行之動能 分支預測方法包括:計算相鄰二分支指令間之分支距/ 值;將該計算出之分支距離值儲存至分支距離表中;以及 自該分支距離表中取出該分支距離值並據之判斷停止查 18928 8 1295032 找動態分支預測器的次數。 八於本發明之一種型態中,該計算相鄰二分支指令間之 t支距離值步驟復包括:判斷處理的指令是否為分支指 令,若否,則不予處理;若是,則計算上一分支指令之曰分 支=離;以及將該計算出之上一分支指令之分支距離儲^ 支距離表中。其中,該上一分支指令之分支距離係= 知δ亥分支指令的分支行為予以計算。 上、於本發明之另一種型態中,該自該分支距離表中取出 該分支距離值並據之判斷停止查找動態分支預測器的次 ,之步驟復包括:判斷該分支目的緩衝器是否命中;若 是二則接著判斷預測發生與否;若是,則自該分支距離表 =咳取务生分支距離;若否,則自該分支距離表中讀取未 發生分支距離;將該發生分支距離或未發生分支距離儲存 至次分支距離計數器,並將該次分支距離計數器減一回 $,以及令次一循環的動態分支預測器查找失能。其中, :该分支目的緩衝器未命中,則判斷該次分支距離計數器 是否為零’若{’則致能次一循環的動態分支預測器查 找;若否,則將該次分支距離計數器減一回存;以及令次 一循環的動態分支預测器查找失能。 於本發明之又-種型態中,復包括:判斷出預測錯誤 發生時重新自該分支距離表巾擷取出正確之分支距離值 並儲存至該次分支距離計數器。 相較於習知之分支預測技術,本發明之動態分支預測 系統以及方法,透過該分支距離產生機制、分支距離表動 18928 ⑧ 9 1295032 •態分支預測器致能機制以及分支預測錯誤處置,無須修改 •處理器之原始程式碼、編譯器與指令集架構即能運作^堇 透過硬體架構設計即能動態紀錄程式中分支距離並據以 停止非分支指令,此外’復能於發現分支預測錯誤時,能 即時調整動態分支預測並且不會有任何的效能損耗。 【實施方式】 以下係藉由特定的具體實施例說明本發明之實施方 春式’熟悉此技藝之人士可由本說明書所揭示之内容輕易地 瞭解本發明之其他優點與功效。本發明亦可藉由其他不同 的具體實施例加以施行或應用,本說明書中的各項細節亦 可基於不同觀點與應用,在不脖離本發明之精神下進 種修飾與變更。 請參閱第i圖,其係本發明之動態分支預測系統之應 用架構示意圖。如圖所示,本發明之動態分支預測系統工 係應用於一般具有動態分支預測機制之處理器2中,並搭 —·接至該處理器2中的動態分支預測器11。於本實施例中。, 本U之動悲分支預測系、統J包括:分支距離產生模組 13、分支距離表15、動態分支預測器致能模組17以及分 支預測錯决處置模組19。 於本實施例中,「分支距離」(BranchDistance,BD) 為該處理器2執行過程中,相鄰二個分支指令間之非分支 指令的個數。該處理器2若能在遇到任一分支指令時預知 其分支距離的值,則可據之停止所有動態分支預測,直至 遇到次一分支指令為止。 18928 10 1295032 * — f實施例中’針對本發明之動態分支預測系統丨如何 -鬼集程式執行過程中產生之所有分支距離,以及如何利用 δ亥分支距離準確的啟動或關閉該動態分支預測,合先說 日月0 ^ 口 該動態分支預測器11具有用作為緩衝儲存分支目的 位址之刀支目的緩衝器丨i丨,該分支目的緩衝器111係為 快取^意體架構,主要包括用以儲存目標位址的攔位。舉 _例而言,其可包括用以儲存分支指令位址、分支目的位址 以及預測訊息等資料之攔位。其中,該預測訊息棚位即是 動態分支預測器Μ一種常見的實施方式,其係利用2 位兀計數器紀錄最近數次分支指令之結果。起始值為2, 最大值為3,最小值為〇,並隨著分支指令在程式執行過 •程中持續的被執行而改變。如果分支的結果是發生則該值 加2,直到最大值3為止;反之若結果不發生則減丨,直 到最小值0為止。當分支指令再次被讀取時,若該2位元 _计數裔所預測的結果是發生,則該分支目的緩衝器111 中相對應於此分支指令的目的位址就直接被使用,故可省 略计异目的位址的程序,而不致產生分支損失。須特別說 明者,係該動態分支預測器Η暨其分支目的緩衝器m 的架構能有多種型態,例如將前述之最小值〇與最大值3 固定於預設之攔位中等。此處對於該動態分支預測器丄丄 暨其为支目的緩衝器111之例舉,並非用以限定本發明之 動態分支預測系統以及方法之權利範圍。 該分支距離產生模組13,係用以計算相鄰二分支指 18928 11 1295032 » · • 令間之分支距離值。 所支f離表15 ’係用以儲存該分支距離產生模組 所计异出之相鄰二分支指令間之分支距離值。 ㈣態致能模組17’係用以自該分支距 支二二中ϊΤί 5亥分支距離值並據之判斷停止查找動態分 數。於本實施例中,該動態分支預測器致 Γ夕、〜入设匕括次分支距離計數器171,係用以表示尚 "猶環會遇到次一分支指令。此外,當該次分支 距離計數器171為「 Α > 人73支 分支預測器U’·若非為Υ0’Γ 環即查找分動態 查找 丨H則使動態分支預測器η 支預,、則:η人亥次分支距離特器171於該分動態分 W:。/中時’會重新寫入新的分支距離值,俾表 不δ玄處理盗2正提取一個分支指令。 誤發生彳:誤^置模組19’係用於判斷出預測錯 離值並= 離表15中操取出正確之分支距 、’堵存至该次分支距離計數器171。 李统?參::2圖,其係透過前述本發明之動態分支預測 所一 執行之動態分支預測方法之步驟流程圖。如圖 離值。接著進至步:二“支指令間之分支距 支距S202中’將該計算出之分支距離值储存至分 表中。接著進至步驟S203中。 t=S203中’自該分支距離表中取出該分支距離 康之判斷停止查找動態分支預測器的次數。 18928 ⑧ 12 1295032 * . ▲ 請參閱第3圖,如圖所示,於本實施例中,步驟S201 泰復包括: 步驟S2011,判斷處理的指令是否為分支指令,若 否,則不予處理,結束步驟;若是,則進至步驟S2012。 於步驟S2012中,計算上一分支指令之分支距離。接 著進至步驟S2013。 於步驟S2013中,將該計算出之上一分支指令之分支 距離儲存至分支距離表中。 其中’該上一分支指令之分支距離係依照該分支指令 的分支行為予以計算。 請參閱第4圖,如圖所示,於本實施例中,該步驟 ‘ S203復包括: - 於步驟S2031中,判斷該分支目的緩衝器是否命中, 若是,則進至步驟S2032 ;若否,則進至步驟S2037。 於步驟S2032中,判斷預測發生與否;若是,則進至 籲步驟S2033 ;若否,則進至步驟S2034。 於步驟S2033中,自該分支距離表中讀取發生分支距 離。接著進至步驟S2035。 於步驟S2034中,自該分支距離表中讀取未發生分支 距離。接著進至步驟S2035。 於步驟S2035中,將該發生分支距離或未發生分支距 離儲存至次分支距離計數器,並將該次分支距離計數器減 一回存。接著進至步驟S2036。 於步驟S2036中,令次一循環的動態分支預測器查找 13 18928 1295032 失能。 —a於步驟S2037,判斷該次分支距離計 右疋,目丨|、狂 疋否為零, 貝J進至步驟S2038 ;若否,則返回牛 次分支距離斗說„, ν驟S2035將該 預測器查找失能。 \ _的動態分支 找。於步驟S2038中,致能次一循環的動態分支預測器查 =1第5圖’如圖所示,於本實施例中,復包括: 中判斷預測錯誤是否發生,若否則結 不/知,右否,則進至步驟s3〇2。 於步驟S302中,重新自該分支距離表中掏 存至該次分支距離計數器。 、 、’诸 本發明之動態分支預測系統以及方法,舉例而言, 在八有以下之條件之貫施例中實作。該假設條件有三: 1. 該處理器2前三個管線層級包括:提取、解_· Φ及執行層級。 2. 動態分支預測器丨丨在提取層級被查找且在 層級被更新。 3. 分支距離表15每個項目均有三個攔位:分支指 令位址、發生分支距離以及未發生分支距離。 曰 承前,該分支距離產生模組13在執行層級負責將每 一個分支指令之發生分支距離與未發生分支距離儲存至 該分支距離表15之相對應的攔位中,而未儲存有資料的 攔位的預設值均為〇。該動態分支預測器致能模組丨7在 18928 14 Ι295Ό32 提取層級運作,並依據該次分支距離計數器丨7 1的值,致 忐或失能次一指令循環之動態分支預測器查找運作。此 外,該分支預測錯誤處置模組19在執行層級判斷是否發 生錯誤預測JU故出相對應之處i。由於該分支距離表15 可動態紀肺缝行過程巾所有的分技冑,是故本發明 之動態分支預測系統以及方法除於每一個分支指令初始 執行時較不準確外,其餘時間皆可準確的開啟或關閉動態 分支預測器查找運作。 另一方面,由於該分支距離表15為準確的開啟或關 閉動態分支預測器查找運作,需佔用較大的容量。故於本 發明之其他實施例中,該分支距離表15佔用容量之縮減 方法至少包括: r便用程式計數器(Program c〇unter,pc)作為 索引(mdex)时式存取該分支距離表i5,故 至完全無須分支指令位址攔位〆 成^甚 2·針對每-個分支指令僅存人符合使用頻率設定 ^分支距離或當前之分支距離,故可節省—半以上之分 支距離的欄位空間。具體而言,該分支距離或當前之分支 距離之使用頻率設定值可由❹者視實際需要^以設定。 單一暫/減支㈣表15之項目數量’甚至僅利用 兮^ 最新的分支距離值,故可大幅減少 ϋ亥为支距離表15之容量。 性門分支距離表15所佔用之空間與預測之準確 S 口際需要予以取檢。惟即使如前述第3種情況 18928 15 1295032 ‘做科-暫存n作為該分纽絲15,且僅能記住單 ::支距離值’當程式在執行減當迴圈時,由於減當迴 〃 ^期’ gj此該動態分支預測器致能模組17仍 I準確的在次-分支指令來臨前之循環將動態分支預測 為查找予以致能。而當在比較複雜的控制架構中執行時, T支行為通常會固定一段時間而甚少交錯變化,故錯誤的 分支距離預測不易發生。分支距離值預測產生錯誤的情況 • 若該值過大,則會使次—分支指令無法查找該動態 刀支預測器,可能會使得程式執行時間略為增加;若該值 過小二則僅增加非分支指令的查找,並不影響處理效能。 …综上所述,本發明之動態分支預測系統以及方法,透 過该分支距離產生機制、分支距離表動態分支預測器致能 -機制以及分支賴錯誤處置,無婦改處理器之原始程式 碼、編澤益與指令集架構即能運作,僅透過硬體架構設計 即能動態紀錄程式中分支距離並據以停止非分支指令,此 ♦外,復能^發現分支預測錯誤時,能即時調整分支預測。 上述實施例僅為例示性說明本發明之原理及其功 效,而非用於限制本發明。任何熟習此項技藝之人士均可 在不違背本發明之精神及範訂,對上述實施例進行修飾 與變化。因此’本發明之權利保護範圍,應如後述之申請 專利範圍所列。 【圖式簡單說明】 立第1圖係本發明之動態分支預測系統之應用架構示 意圖;以及 18928 ⑧ 16 1295032 * . • 第2至5圖係本發明之動態分支預測方法之流程圖。 -【主要元件符號說明】 1 動態分支預測系統 2 處理器 11 動態分支預測器 111 分支目的緩衝器 13 分支距離產生模組 15 分支距離表 17 動態分支預測器致能模組 171 次分支距離計數器 19 分支預測錯誤處置模組 S20卜 S203 步驟 S2011 〜S2013 步驟 S2031 〜S2038 步驟 S301- S302 步驟 17 18928 ⑧

Claims (1)

1295032 十 、申請專利範圍: :種動態分支預測系統’係應用於具有動態分支預測 态之處理器中,包括: 、、 分支距離產生模组,係用以計算相鄰二分支指入 間之分支距離值; 曰7 :支距離表,係用以儲存該分支距離產生模組所 开=相鄰二分支指令間之分支距離值;以及 =分支預測器致能模組,細以自該分支距離 ,中取出該分支距離值並據之㈣停止查找動態分 支預測器次數,其中該動態分支 衝儲存處理之分支目的緩衝器。 -有用作為緩 辄圍第1項之系統,*中,該動態分支預 尚二:復包括次分支距離計數器,係用以表示 口夕少指令循環會遇到次一分支指八。 利範圍第2項之系統,*中:當該次分支距 預、、則哭=「/」時,次一指令循環即啟動動態分支 料為n則使動態分支預測器查找 叶數乾圍弟2項之系統’其中’該次分支距翻 :。。於该動態分支預測器命中時,會重新寫入料 ,值’俾表示該處理器正提取一個分支指令。 處二;f利範圍第1項之系統’復包括分支預測錯驾 ::、、且,係用於判斷出預測錯誤發生時重新自該分 支距縣中擷取出並儲存至該次分支距離計數器。 18928 18 1295032 ’ 6.如申請專利範圍第1項之系統,其中,該處理器之前 - 二個管線層級包括:提取、解碼以及執行層級;該動 態分支預測器在提取層級被查找且在執行層級被更 新;以及該分支距離表之每個項目均有三個攔位:分 支指令位址、發生分支距離以及未發生分支距離。 7·如申請專利範圍第6項之系統,其中,該分支距離產 生模組在執行層級負責將每一個分支指令之發生分 > 支距離與未發生分支距離儲存至該分支距離表之相 對應的攔位中,而未儲存有資料的攔位的預設值均為 〇 ;該動態分支預測器致能模組在提取層級運作,並 依據該動態分支預測器致能模組的值啟閉次一指令 循環之動態分支預測器查找運作。 • 8.如申請專利範圍第!項之系統,其中,該分支距離表 係使用程式計數器(program c〇unter,pC)作為索 引(index)予以存取。
9. 如申請專利範圍第!項之系統,其中,該分支距離表 針對每-個分支指令僅存入符合使用頻率設定值的 分支距離以及當前之分支距離其中之一者。 10. 如申請專利範圍第1項之系、統,其中,該分支距 係利用單-暫存器只記錄目前最新的分支距離值。、 11. 一種動態分支制方法,係助於具有動 器之處理器中,包括: 又頂列 計算相鄰二分支指令間之分支距離值; 將該計算出之分支距離值儲 > 八 值减存至分支距離表中 18928 19 1295032 • 以及 - ▲自該分支距離表中取出該分支距離值並據之判斷 停止查找動態分支預測器的次數。 12. 如=請專利範圍f n狀方法,其巾,該計算相鄰 二分支指令間之分支距離值步驟復包括: 判斷處理的指令是否為分支指令,若否,則 處理;若是,則計算上一分支指令之分支距離、;以: φ 將該計算出之上-分支指令之分支距離儲存至分支 距離表中;其中’該上一分支指令之分支距離係依照 違分支指令的分支行為予以計算。 13. 如★申請專利範圍第μ之方法,其中,該自該分支 f離表中取出該分支距離值並據之判斷停止查找動 .態分支預測器的次數之步驟復包括:判斷該分支目的 ,,态是否命中;若是’則接著判斷預測發生與否, 右疋,則自該分支距離表中讀取發生分支距離;若 • $ ’則自該分支距離表中讀取未發生分支距離;將該 發生分支距離或未發生分支距離儲存至次分支距離 =數器,並將該次分支距離計數器減一回存;以及令 次一循環的動態分支預測器查找失能。 14. 如申請專利範圍第13項之方法,其中,若該分支目 =緩=未命中’則判斷該次分支距離計數器是否為 三右是,則致能次一循環的動態分支預測器查找; 右否,則將該次分支距離計數器減一回存;以及令次 一循環的動態分支預測器查找失能。 18928 (§) 20 1295032 15.如申請專利範圍第11項之方法,復包括:判斷預測 錯誤是否發生並於判斷出預測錯誤發生時重新自該 分支距離表中擷取出並儲存至該次分支距離計數哭。
16·如申請專利範圍第11項之方法,其中,該處理器°°之 前三個管線層級包括:提取、解碼以及執行層級;該 動態分支預測器在提取層級被查找且在執行層級被 更新;以及該分支距離表之每個項目均有三㈣位: 分支指令位址、發生分支距離以及未發生分支距離。 Π.如申請專利範圍帛16項之方法,其中,該分支距離 產生模組在執行層級負責將每一個分支指令之笋生 分支距離與未發生分支距離儲存至該分支距離2 相對應的攔位中,而未儲存有資料的棚位的預設值均 為0 ;該動態分支預測器致能模組在提取層級運作, 並依據該動態分支預測ϋ致能模組的值啟閉次一指 令循環之動態分支預測器查找運作。 18.t申請專利範圍第11項之方法,其中,該分支距離 表係使用程式計數器作為索引予以存取。 利範圍第11項之方法,其中,。該分支距離 每-個分支指令僅存入符合使用頻率設定值 的为支距離以及當前之分支距離其中之一者。 2〇·如申請專利範圍第i i項之方法,其 Μ λ% 4|I ffl ^ ^ ^ 、 ,口亥刀支距離 表係利用早-暫存器只記錄目前最新的分支距離值。 18928 21
TW094142240A 2005-12-01 2005-12-01 Dynamic branch prediction system and method TW200723094A (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
TW094142240A TW200723094A (en) 2005-12-01 2005-12-01 Dynamic branch prediction system and method
US11/450,404 US20070130450A1 (en) 2005-12-01 2006-06-12 Unnecessary dynamic branch prediction elimination method for low-power

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW094142240A TW200723094A (en) 2005-12-01 2005-12-01 Dynamic branch prediction system and method

Publications (2)

Publication Number Publication Date
TW200723094A TW200723094A (en) 2007-06-16
TWI295032B true TWI295032B (zh) 2008-03-21

Family

ID=38120163

Family Applications (1)

Application Number Title Priority Date Filing Date
TW094142240A TW200723094A (en) 2005-12-01 2005-12-01 Dynamic branch prediction system and method

Country Status (2)

Country Link
US (1) US20070130450A1 (zh)
TW (1) TW200723094A (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7681021B2 (en) * 2006-09-28 2010-03-16 Freescale Semiconductor, Inc. Dynamic branch prediction using a wake value to enable low power mode for a predicted number of instruction fetches between a branch and a subsequent branch
US8225046B2 (en) * 2006-09-29 2012-07-17 Intel Corporation Method and apparatus for saving power by efficiently disabling ways for a set-associative cache
US9384003B2 (en) * 2007-10-23 2016-07-05 Texas Instruments Incorporated Determining whether a branch instruction is predicted based on a capture range of a second instruction
US8443176B2 (en) * 2008-02-25 2013-05-14 International Business Machines Corporation Method, system, and computer program product for reducing cache memory pollution
US8521996B2 (en) * 2009-02-12 2013-08-27 Via Technologies, Inc. Pipelined microprocessor with fast non-selective correct conditional branch instruction resolution
US20120311308A1 (en) * 2011-06-01 2012-12-06 Polychronis Xekalakis Branch Predictor with Jump Ahead Logic to Jump Over Portions of Program Code Lacking Branches
US9396117B2 (en) 2012-01-09 2016-07-19 Nvidia Corporation Instruction cache power reduction
US9552032B2 (en) * 2012-04-27 2017-01-24 Nvidia Corporation Branch prediction power reduction
US9547358B2 (en) 2012-04-27 2017-01-17 Nvidia Corporation Branch prediction power reduction
US9753733B2 (en) 2012-06-15 2017-09-05 Apple Inc. Methods, apparatus, and processors for packing multiple iterations of loop in a loop buffer
US9557999B2 (en) 2012-06-15 2017-01-31 Apple Inc. Loop buffer learning
US9891922B2 (en) 2012-06-15 2018-02-13 International Business Machines Corporation Selectively blocking branch prediction for a predetermined number of instructions
US20140143526A1 (en) * 2012-11-20 2014-05-22 Polychronis Xekalakis Branch Prediction Gating
US9471322B2 (en) 2014-02-12 2016-10-18 Apple Inc. Early loop buffer mode entry upon number of mispredictions of exit condition exceeding threshold
US10289417B2 (en) * 2014-10-21 2019-05-14 Arm Limited Branch prediction suppression for blocks of instructions predicted to not include a branch instruction
US9639370B1 (en) * 2015-12-15 2017-05-02 International Business Machines Corporation Software instructed dynamic branch history pattern adjustment
US11550588B2 (en) 2018-08-22 2023-01-10 Advanced Micro Devices, Inc. Branch target filtering based on memory region access count
US11513801B2 (en) * 2018-09-10 2022-11-29 Advanced Micro Devices, Inc. Controlling accesses to a branch prediction unit for sequences of fetch groups
EP4081899A4 (en) * 2019-12-23 2024-03-06 Advanced Micro Devices Inc CONTROLLING ACCESS TO A CONNECTION PREDICTION UNIT FOR EXTRACTION GROUP SEQUENCES

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6401196B1 (en) * 1998-06-19 2002-06-04 Motorola, Inc. Data processor system having branch control and method thereof
US20040181654A1 (en) * 2003-03-11 2004-09-16 Chung-Hui Chen Low power branch prediction target buffer

Also Published As

Publication number Publication date
US20070130450A1 (en) 2007-06-07
TW200723094A (en) 2007-06-16

Similar Documents

Publication Publication Date Title
TWI295032B (zh)
JP5357017B2 (ja) 高速で安価なストア−ロード競合スケジューリング及び転送機構
EP1889152B1 (en) A method and apparatus for predicting branch instructions
JP5335946B2 (ja) 電力的に効率的な命令プリフェッチ機構
KR101174560B1 (ko) 잘못된 추측성 업데이트의 링크 스택 복구
TWI386850B (zh) 用於主動式分支目標位址快取記憶體管理之方法以及裝置
TWI499975B (zh) 具有遲滯現象下一個提取預測器之訓練
US7865769B2 (en) In situ register state error recovery and restart mechanism
JP2011100466A (ja) ループ終結分岐により分岐履歴レジスタの更新を抑制すること
JP2004533695A (ja) 分岐目標を予測する方法、プロセッサ、及びコンパイラ
TW201017531A (en) Apparatus and methods for speculative interrupt vector prefetching
US8601240B2 (en) Selectively defering load instructions after encountering a store instruction with an unknown destination address during speculative execution
JP7160956B2 (ja) 分岐命令のタイプに基づく先行分岐予測の選択的実行
KR20090061644A (ko) 명시적 서브루틴 호출의 브랜치 예측 동작을 에뮬레이트하기 위한 방법 및 장치
JP2003519832A (ja) アントレーニングを備えるストア−ロード転送プレディクタ
US11347839B2 (en) Techniques for control flow protection
TW200813823A (en) Block-based branch target address cache
JP2006520964A5 (zh)
JP2006520964A (ja) 分岐ターゲットに基づいて分岐予測をするための方法および装置
US11301253B2 (en) Branch prediction structure indexed based on return address popped from a call-return stack
RU2419835C2 (ru) Способы и устройства для сокращения поисков в кэше целевых адресов ветвлений
WO2018059337A1 (zh) 数据处理装置和方法
KR102635965B1 (ko) 마이크로 프로세서의 프론트 엔드 및 이를 이용한 컴퓨터 구현 방법
US7913068B2 (en) System and method for providing asynchronous dynamic millicode entry prediction
US20040225866A1 (en) Branch prediction in a data processing system

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees