TWI362001B - Recovery apparatus for solving branch mis-prediction and method and central processing unit thereof - Google Patents

Recovery apparatus for solving branch mis-prediction and method and central processing unit thereof Download PDF

Info

Publication number
TWI362001B
TWI362001B TW97127014A TW97127014A TWI362001B TW I362001 B TWI362001 B TW I362001B TW 97127014 A TW97127014 A TW 97127014A TW 97127014 A TW97127014 A TW 97127014A TW I362001 B TWI362001 B TW I362001B
Authority
TW
Taiwan
Prior art keywords
instruction
reply
instructions
branch
buffer
Prior art date
Application number
TW97127014A
Other languages
English (en)
Other versions
TW201005633A (en
Inventor
Chih Yung Chiu
Original Assignee
Faraday Tech 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 Faraday Tech Corp filed Critical Faraday Tech Corp
Priority to TW97127014A priority Critical patent/TWI362001B/zh
Publication of TW201005633A publication Critical patent/TW201005633A/zh
Application granted granted Critical
Publication of TWI362001B publication Critical patent/TWI362001B/zh

Links

Description

1362001 101-2-16 九、發明說明: 【發明所屬之技術領域】 本發明是有關於一種中央處理器(Central Processing Unit ’簡稱為CPU)的分支預測取抓也predicti〇n)裝置,且 特別是有關於一種用於解決分支預測錯誤(Branch Mis-Prediction)的回復裝置及其方法與其中央處理器。 【先前技術】 隨著半導體技術的進步,電腦已經成為曰常生活所需 的必需品,人們可以用電腦設計程式來處理很多的事務。 電腦裡面最重要的核心是中央處理器,目前市面上的中央 處理器都會具有分支預測的裝置來處理分支指令。 一般而言,一段程式中大約每四至五個指令就會有一 個分支指令,所以使用具有分支預測裝置的中央處理器將 可以有較好效能表現。然而,當中央處理器處理分支指令, 刀支預測裝置並無法母一次都準蜂地預測到下一個應該執 行的指令。所以’分支腳禮置可能會產生分支預^錯誤 而導致中央處理ϋ的效能有所損失,此效能損失即俗稱的 分支損失(Branch Penalty)。 為了解決此-問題’許多的研究機構與中央處理器的 製造業者會設法使分支預测錯誤的機率降低,以便提升中 央處理器的效能。目此’ 1午多的預測演算法(Predicti〇n Algorithm)與分支預測架構被廣泛地提出。 然而,上述這些軟體的演算法或硬體架構都僅降低分 5 1362001 101-2*16 支預測錯誤的機率。對於程式中的條件分支(C〇nditi〇nal Branch)或迴圈運算之最終迴圈(Final L〇〇p)都免不了會有 分支預測錯誤的情形,因此,為了解決分支預測錯誤之情 形,研究人員提出一種多路徑執行之中央處理器架構 (Multi-Path Execution CPU Architecture)來克服上述之問 題。 然而多路徑執行之中央處理器僅能處理一個分支預測 錯誤的情形,所以,多路徑執行之中央處理器需要一個可 罪估測器(Confidence Estimator)來幫忙中央處理器同時掏 取(Fetch)多個路徑的指令。另外,多路徑執行之中央處理 器會同時將兩個路徑的指令執行到完,所以此多路徑執行 之中央處理器更需要一個暫存器更名機制(Register Renaming Mechanism)來處理資料相關性(Data Dependency) 與暫存器_認(Register Commitment)的問題。 目前,多路魏行之巾央處理H因為其複雜度過高, 大部分僅在於理論的階段與研究,少有真的實現在硬體 上。另外,在相關的論文與研究上,多路徑執行之中央 理器亦僅增加大約10%的效能。 ' 除了使用多路徑執行之中央處理器處理多路徑執行的 方式外’另一種方式是使用多線程中央處理器 _ti-Threading CPU)讓編譯者(complier)利用兩個線程 (Threads)去處理多路徑執行。 但是,在深度較大之管、線的超純量中央處理器 (Superscalar CPU)t,多路徑執行的方法或架構都因為複 6 1362001 101-2-16 雜度太高而無法實作成電路 或需要 的指令’所以上述之架構與方:需卜要==多個路徑 編澤者的努力,找達職能的增進。 【發明内容】 B 月^供一種用於解決條件分支(C〇nditi〇nal 的回復裝置及其方法與其中央處理器,此回復== 的降低因為分支預測錯誤所產生的效能損失。另外,^ 戶!裝置及其方法的低複雜度,因此可以應用於 冰層s線(Deep-pipeiine)之超純量的中央處理器。 要本發明之範崎供—種驗解決分支_錯誤的回 復裝置包括指令緩衝器、至少—個圈狀式緩衝 =解碼轉電路。其巾,解碼崎電路,雛於指令緩 與圈狀式指令緩衝器。指令緩衝器用以儲存複數個指 二,而圈狀式指令缓衝器用以儲存對應於此多個指令的回 後指令列’此回復指令列包含複數個回復指令。解碼配對 電路用以此多個指令與回復指令進行解碼與配對,當分支 預測錯誤發生時,解碼配對電路輸出這些回復指令給與其 外接的指令執行處理電路。 〃、 根據本發明之範例,其中,上述之回復裴置更包括分 支指標緩衝器、快取控制器與指令快取記憶體電路。其中, 分支指標緩衝ϋ耦接於快取㈣H,快取控繼墟於指 7快取S己憶體電路,指令快取記憶體耦接於圈狀式指令緩 7 1362001 101-2-16 衝器與心令緩衝器。分支指標緩衝器用以偵測是否有分支 預測的發生’當分支預測發生時,將指標程式計數送至快 取控制器。快取控制器根據指標程式計數控制指令快取記 憶體來擁取其儲存的多個指令與回復指令。指令快取 體電路用以儲存多個指令與回復指令。 〇心 ^發明之範例提供-種用於解決分支預測錯誤的回 復方法,此方法包括以下步驟:_收複數個指令 緩衝記憶體’以及接收與此多個指令對應之多個回復指二 ^少-圈狀式指令緩衝記憶體;(騎此多個指令^ 心令進行編碼與輯;⑹當分支· 輸^ 多個回復指令給指令執行處理電路。 謂輸出此 根據本發明之範例,上述之时方法更包括 驟.⑷將此多個回復指令的分支預測錯誤位 ^ 記錄此多個回復指令的分支程式計數。 马 並 根據本發明之範例,上述之回復方 支預測錯誤發生’則輸出此多個ϋ= 根據本發明之範例,复φ,μ、+ :=r指令個數等於指令執行處 衝器、解碼配對電路與指令執行處理電路。=式=緩 對電路減純令緩衝轉_式齡緩触指 8 1362001 101-2-16 王审 牙各去田 -f-A At? -rff -it-— jh
個指令, 回復指令:
對電路用以對此多個指令與回復指令進行解碼與配‘,·者 分支預測錯誤發生時’解碼配對電路輸出此多個回復指三 給指令執行處理電路,指令執行處理電路Μ 回德指合斑指合。 y|U 根據本發明之範例,其中’上述之中央處理器更包括 指標緩衝器、快取控制器與指令快取記憶體電路。其 分支指標緩衝器、 中,分支指標緩衝器耦接於快取控制器,快取控制器耦接 於指令快取記顏電路,指令快取記龍_於圈狀式指 令緩衝器與指令緩衝器。分支指標緩衝器用以偵測是否有 分支預測的發生,當分支麵發生時,將指標程式計數送 至快取控制器。快取控制器根據指標程式計數控制指令快 取記憶體來擷取其儲存的多個指令與回復指令◦指令快取 記憶體電路用以儲存多個指令與回復指令。 “上^斤述’本發明之範例所提供之回復裝置及其方法 與其中央處理器在於減少分支預測錯誤時所產生的損失。 其中,本發明範例所提供之回復裝置僅需在原始的中央處 理器架構上加上至少一個圈狀式指令緩衝器與幾個邏輯閘 在原始的解碼配對電路,因此其複雜度低且易於實現在電 路上。另外,假設同樣在快取擊中率與分支指標緩衝器的 擊中率為95%的12級之管線架構中,與沒有指令緩衝器 的中央處理器相比,具有此回復裝置的中央處理的效能可 9 1362001 101-2-16 增加約9〜10%的效能。 —為讓本制之上簡鮮優點缺明顯易懂 ,下文特 舉貫施例,並配合所附圖式,作詳細說明如下。 【實施方式】 =明之範例提供了—_於解決分支預測錯誤的 法及其中央處理器’此回復裝置用以減少分 支預測錯誤時所產生的效能損失。 =^面所述,-個程式中約4〜5個指令左右就有一 個刀认令’ Μ在條件分支或最終迴圈又免不了會有分 錯,情形發生。因此’本發明之範例提供的回復 裝置支制錯誤時,可以讓其後端的指令執行處理電 路^對其對應的回《令接續執行,以減少整體效能之 才貝失。 ,參照圖1 ’圖i是根據本發明之範例提供中央處理 η中央處理器_包括於分支預測錯誤時的回復裝 f 令執行處理電路2G、指令快取記憶體電路30、 制器40與分支指標緩衝器(Branch Target Buffer, mBTB)5〇。其中,分支指標緩衝器50麵接於快取控 ° 决取控制器40麵接於指令快取記憶體電路3〇, m置門1〇耦接於指令執行處理電路2〇與指令快取記憶 ,此需注意的是,指令執行處理電路20可以是一個 、有✓未層s線的超純量之指令執行處理電路,然而,指令 1362001 101-2-16 勃^亍處理電路2〇的類型並非用以限定本發明。另外,指令 快取記憶體電路30、快取控制器4〇與分支指標緩衝器5〇 在此範例中是與回復裝置10分離的,然而,此範例並非用 以限定本發明。換句話說,另一種實施方式是將指令快取 S己憶體電路30、快取控制器40或分支指標緩衝器50設計 於回復裝置1〇内。 當分支指標緩衝器50偵測到有分支指令發生時,且 ^分支指令擊中(Hit)分支指標緩衝器50時,分支指標缓衝 器曰將4日標程式計數(Target pr〇grain Counter,簡稱為 ^^get PC)送至快取控制器4〇。快取控制器根據指標程式 計數控制指令快取記憶體30來擷取(Fetch)指令快取記憶 體30所儲存的多個指令,並將這些指令送至回復裝置10。 回復裝置10將自指令快取記憶體30所擷取的指令暫 子,其,衝ϋ,其中,這些指令可能包括了多個分支預測 =刀支^旨令、多個一般指令與預測錯誤時的多個回復指 々接著回復裝置10對分支預測的分支指令與回復指令 =做編碼與配對(Pairing)的動作,或僅對一般指令作編 脾yr*對的動作。當分支細彳錯誤未發生時,回復裝置10 杆般指令或分支預測的分支指令送至後端的指令執 置ΐο合^20執行。但是,若分支預測錯誤時,則回復裝 繼續執I: ^個回復指令送至後端的指令執行處理電路20 並其2支預測錯誤發生時,指令執行處理電路20會將 ^線内的所有指令清除。但此時,回縣置U)此時會將 1362001 101-2-16 多個回復指令送至指令執行處理電路2 0繼續執行,所以回 復裝置10可以利用此段時間來擷取與暫存之後要執行的 多個指令。如此,便能夠有效地減少分支預測錯誤時需要 暫停(Stall)指令執行處理電路20的管線與暫停回復裝置 10所造成的效能損失。 接著’再進一步地說明回復裝置10的構造及實施方 式。如同圖1所示,回復裝置10包括至少一個以上的圈狀 式指令緩衝器(Circulation Instruction Queue)60〜62、指令 緩衝器63與解碼配對電路64。其中,圈狀式指令緩衝器 60〜62柄接於解碼配對電路64與指令快取記憶體電路3〇 之間,解碼配對電路64則耦接於指令執行處理電路2〇, 而指令緩衝器63則是耦接於解碼配對電路64與指令快取 記憶體電路30之間。在管線式中央處理器1〇〇中,解碼配 對電路64可整合於管線前段的解碼階段(Dec〇de Stage), 而指令執行處理電路20則可以包括管線後段的階段,像是 才日令執行階段(Execution Stage)。 在此要注意的是,雖然本範例的圈狀式指令緩衝器6〇 〜62的個數是3個,但是並非用以限定本發明。換句話說, 圈,式指令緩衝器6〇〜62之個數的設計可以根據使用者 的需要來設計。在本範例中,假設指令緩衝器63可以儲存 ^個指令,而平均每4個指令就有1個分支指令,所以, 3以將圈狀式指令緩衝器〜62之個數設為(12/4=3)個。 簡5之’圈狀式指令緩衝器60〜62的個數的一般設計原則 為1^/«1個,其中,χ表示指令緩衝器63可以儲存的指令個 12 101-2-16 數,η表示平均每η個指令中有1個分支指令,「w Ί主一 取大於的最小整數。 「”1表不 另外,在本範例中,圈狀式指令緩衝器6〇〜62 2能儲存的回復指令數目為6個。但是,此個數依然並 非用以限定本發明。換句話說,圈狀式指令緩衝器〜以 之個數所能儲存的回復指令數目可以根據使用者的需要來 設計。在本範例中是假設指令執行處理電路2〇最多可以處 理6個指令,所以,設定圈狀式指令緩衝器6〇〜62之個^ 所能儲存的回復指令數目為6個。簡單地說,就是圈狀式 指令緩衝器60〜62之個數所能儲存的回復指令數目一般 可以設為後端指令執行處理電路最多可以處理的指令個 數。 當快取控制器根據指標程式計數控制指令快取記憶 體30來擷取(Fetch)指令快取記憶體3〇所儲存的多個指令 時’多個一般指令與分支指令會被送至指令緩衝器63儲 存。此時圈狀式指令緩衝器60〜62會對快取控制器4〇送 出請求(Request),此時快取控制器40會將對應於這些分支 指令的回復指令列(Recovery Instruction Queue)從指令快 取記憶體電路30分別送至圈狀式指令缓衝器60〜62儲 存,其中,回復指令列包括複數個回復指令。另外,因為, 後端的指令執行處理電路64是深層管線之超純量的指令 執行電路,所以’此範例用3個圈狀式指令緩衝器60〜62 來暫存回復指令。因此,在發生分支預測錯誤時,使用回 復裝置10的中央處理器1〇〇可以有效地減少分支損失。 13 1362001 101-2-16 接著,當分支指令進入解碼配對電路64時,其對廣 的扨復指令亦會同時進入解碼配對電路64。此時,解碼配 對電路64會同時對分支指令與回復指令同時進行解碼與 配對的動作。接著,解碼配對電路64將分支指令的預測錯 誤有效位元(Mis-Prediction Valid Bit)設為1 ’並同時紀錄分 支指令所繼承的分支程式計數(Branch Program Countei·;)。 在沒有分支預測錯誤的情況下,解碼配對電路64會將分支 指令輸出給後端指令執行處理電路20。另外,若是一般指 令而非分支指令進入解碼配對電路64時,則解碼配對電路 64就僅接收一般指令,並對一般指令進行解碼與配對的動 作後,就將此一般指令送至後端指令執行處理電路2〇。 當分支預測錯誤發生時,整個指令執行處理電路2 〇的管線 與指令緩衝器63的指令都會被清除。此時,解碼配對電路 64會將對應於分支預測錯誤之分支指令的多個回復指令 送,指令執行處理電路20,以藉此讓指令執行處理電路2〇 接著執行這些回復指令。此時,因為有回復指令存在指令 ^行處理電路20的管線,並被接著執行,所以,指令缓衝 器63可以利用此段時間來擷取新的指令,以藉此減少分支 預測錯誤時需要暫停(Stall)指令執行處理電路2〇的管線 與拖住解碼配對電路64所造成的效能損失。 另外’因為上述的指令快取記憶體電路3〇再同一時 被截取出多健令給指令緩衝器63與圈狀式指令 6〇 62,所以,可以將指令快取記憶體電路30搭 配侧轉快取(Skew Cache)的架構來設計。此時,每一個時 1362001 101-2-16 脈區間内,指令快取記憶體電路30可以同時被讀出8個字 兀。針對條件分支或最終迴圈的狀況,都是分支預測機制 預測會發生分支但實際上卻沒有的情況,所以在指令快取 記憶體電路3 0搭配侧轉快取的架構下,並沒有讓指令快取 記憶體電路30的頻寬有額外的消耗。當然,上述之指令快 取記憶體電路30搭配側轉快取的架構並非用以限定本發 明,使用此設計僅是為了不讓指令快取記憶體電路3〇的頻 寬有額外的消耗。 明繼續參照圖1,在此以圖丨中的指令緩衝器所儲 存的‘令配合上述之介紹來舉例說明,此例子是假設在最 終迴圈或條件分支時出現分支預測錯誤。如圖1所示,指 令緩衝器63有12個指令,這12個指令分別為n 8、n_4、 η(分支指令)、m-c、m-8、m-4、m(分支指令)、t c、t_8、t_4、 t(分支指令)、s、s+4。圈狀式指令緩衝器62儲存了 6個對 應於第一個分支指令n的回復指令列,其第一個回復指令 為η+4,也就是指令η的次一指令。另一方面,指令m_c 則可以是分支指標預測器5〇為分支指令n所預測的分支目 標(Branch Target);也就是說,分支指標預測機制預測指令 η後會因分支而跳至指令m_c。同理,圈狀式指令緩衝器 =1儲存了 6個對應於第二個分支指令m的回復指令列,其 第一個回復指令為m+4。圈狀式指令缓衝器6〇則為第三. 個分支指令t儲存了 6個對應於第三個分支指令t的回復 礼令列,其第一個回復指令為t+4,也就是指令次一指 令。而指令s則是分支預冽機制為分支指令t預測的分支 15 1362001 101-2-16 目標。 〜糊錯誤是發生在第三個&支預測指 7 、田日7 η·8、Π-4進入解碼配對電路64時, 接者'直接將l n_8、n_4送至後端的指令執行處 20接著’第-個分支指令n進入解碼配對電路μ時 碼配對電路64亦同時接收式指令緩肺62的回復 令η+4 ’因為沒有任何的分支删錯誤,所以 =接著將指令—送至指令執 接著’第二個分支指令η進入解碼配對電路64時, ,碼配對電路64亦同時接收圈狀式指令緩衝器61的回復 才曰令m+4’因為沒有任何的分支預測錯誤以 :=64接著將指令送至指令二: 電路。 虽第二個分支指令t進入解碼配對電路64時,解碼配 對電路64 _時純陳式指令緩衝m的回復指令 =,·假將分支至次—指令㈣而非分支預測之指 7 S it、,因為發生了分支預測錯誤的情形,所以解碼 配對電路64會職令緩衝^ &的多個回復指令進行解碼 與配對_作’並料知魅令送至指令執行處理電路 、藉匕成〉、为支預測錯誤時需要拖住(Stall)指令執行 ^理電路2G的管線與齡解碼配對電路64所造成的效能 損失此種If形常發生在遞迴的程式迴圈中,譬如說某個 1362001 101-2-16 迴圈需從指令t遞迴至指令S數次之後才能結束迴圈至次 一指令t+4。在迴圈反覆遞迴時分支預測機制會學習到「指 令t將跳至指令s」以作為分支預測的基準;然而,當迴^ 、”σ束後要由私令t繼續進行至次一指令t+4時分支預測 就會發生錯誤,造成處理器執行時的障害(Hazard)。而本 發明=可有效率地回復此種分支預測錯誤問題。 最後吻參知圖2 ’圖2是根據本發明之範例所提供 的用於解決分支預測錯誤之回復方法的流程圖。此方法可 用:中央處理器中,且特別是具有深層管線之超純量 乂續^^器。首先,於步驟 ’接收複數個指令至指 ^衝記龍,以及接收與此多個指令龍之多個回復指 二―圈狀式指令緩衝記憶體。接著,於步驟S81, 令與回復指令進行編碼與配對,將這些回復指 Γ誤位%設為1 ’並記錄這些回復指令的分 ίhJH ·後’於步驟S82,當分支預測錯誤發生時, 輸出此多個回復指令給指令執行處 錯誤發生職μ多魅令給齡執支_ 與其發明之範觸提叙回«置及其方法 且上述在於減4分支制錯誤時所產生的損失。 一個i狀If僅需在原始的中央處理器架構上加上至少 ^此其複雜度低且易於實現在電路上 樣在快取擊中率鱼分 假λ冋 級之管總加播t 支 衝的擊中率為95%的12 、、木冓中,與沒有指令緩衝器的中央處理器相比, 17 1362001 101-2-16 具有此回復裝置的中央處理的效能可增加約9〜10%的效 能0 雖然本發明已以實施例揭露如上,然其並非用以限定 本發明’任何所屬技術領域中具有通常知識者,在不ςς 本發明之精神和範_,當可作些許之更動與潤飾,因此 t發明之保護範圍當視後附之申請專利範圍所界定者為 準0 、 【圖式簡單說明】 圖1是根據本發明之範例提供中央處理器丨⑻。 圖2是根據本發明之範例所提供的用解 錯誤之回復方法的流程圖。 解决刀支預 【主要元件符號說明】 100 :中央處理器 10 :回復裝置 20 :指令執行處理電路 3〇 :指令快取記憶體電路 40 :快取控制器 5〇 :分支指標緩衝器 60〜62 :圈狀式指令缓衝器 63 :指令緩衝器 64 ·解碼配對電路 S80〜S82 :步驟流程 18

Claims (1)

1042i6日修正本 101-2-16 十、申請專利範圍: 1. 一種用於解決分支預測錯誤的回復裝置,包括: 一,令緩衝器,用以儲存複數個指令; 至^ 一圈狀式指令緩衝器’用以儲存對應於該些指令 的一回復指令列’該回復指令列包含複數個回復指令;以 及 A二?碼配對電路’祕於該指令缓衝11與關狀式指 ^緩對該些指令與該些回復齡騎解碼與配 ,§分支預測錯誤發生時,該解碼配對電路輸出 復指令給無外_—齡騎纽桃。 —口 2. 如申請專利範圍第1項所述之回復裝置,其中,若 無分支預測錯誤發生’舰解舰對t路輸㈣些指令給 該指令執行處理電路。 、D 3. 如申請專利範圍第丨項所述之回復裝置,更包括: ^分支指標緩衝器,用則貞測是否有分支預測的 土’ S分支預測發生時’將—減程式計數送至—快取 制器; t 、一指令快取記憶體電路,耦接於該快取控制器、該圍 f衝器與該指令緩衝器’用以儲存該些指令Ϊ該 I:) 才日 ’ ^ 其中,該快取控制器耦接於該分支指標緩衝器,相播 如曰標程式計數以㈣該指令快取記憶電路來擷取 的該些指令與該些回復指令。 :存 4. 如申請專利範圍第1項所述之回復裝置,其中,士 圈狀式指令緩衝器所能儲存的回復指令個數等於該指八^ 19 i362〇〇i 101-2-16 行處理電路所能執行的指令數目。 5·如申請專利範圍第1項所述之回復裝置,其中該解 碼配對電路更將該些回復指令的分支預測錯誤位元設為 1 ’並記錄該些回復指令的分支程式計數》 6.—種用於解決分支預測錯誤的回復方法,包括: 接枚複數個指令至一指令緩衝記憶體,以及接收與複 數個指令對應之多個回復指令至至少一圈狀式指令緩衝記 憶體; 對該些指令與回復指令進行編碼與配對;以及 菖为支預測錯誤發生時,輸出此該些回復指令給一指 令執行處理電路。 7.如申請專利範圍第6項所述之回復方法,更包括: 將忒些回復指令的分支預測錯誤位元設為丨,並記錄 5 亥些回復指令的分支程式計數。 8.如申請專利範圍第6項所述之回復方法,更包括: 行處支預測錯誤發生’則輸㈣些指令給該指令執’ 圈狀t 2專利範圍第6項所述之回復方法,对,該 =====復指令個數等於該指 10.-種具有回復裝置的中央處理器 扣7緩衝器,用以儲存複數個指令; 的 ’树_應於該些指令 一解碼配“令列包麵數個回復指令; 路,輕接於該指令緩衝器與該圈狀式指 20 1362001 101-2-16 令緩衝器,用以_些指令與該些回復指令進行解碼盥配 ΐ二誤發生時,該解碼配對電路輸出該:回 復扣令給一指令執行處理電路; 一 以 該指令執行處理電路,_於該解碼配對電路 執行該些回復指令與該些指令。 η·如令請專利範圍g 10項所述之中央處理器,其 中,若無分支預測錯誤發生,則該解碼配對 指令給該指令執行處理電路。 二 .12.如申請專利範㈣1〇項所述之中央處理器,更包 括: -分支指標緩衝器,用則貞測是否有分支預測的發 生’當分支預測發生時,將一指標程式計數送至一 制器; 仏 一指令快取記憶體電路,耦接於該快取控制器、該圈 狀式指令缓衝器與該指令緩衝器,用以儲存該些 ^ 些回復指令, — 以 其中,該快取控制器耦接於該分支指標緩衝器,根據 該指標程式計數以控制該指令快取記憶體電路來擷取苴 存的該些指令與該些回復指令。 〃 13. 如申請專利範圍第10項所述之中央處理器,其 中,該圈狀式指令緩衝器所能儲存的回復指令個數等於該 指令執行處理電路所能執行的指令數目。 14. 如申请專利範圍第1〇項所述之中央處理器,其中 該解碼配對電路更將該些回復指令的分支預測錯誤位^設 為1,並記錄該些回復指令的分支程式計數。 21
TW97127014A 2008-07-16 2008-07-16 Recovery apparatus for solving branch mis-prediction and method and central processing unit thereof TWI362001B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW97127014A TWI362001B (en) 2008-07-16 2008-07-16 Recovery apparatus for solving branch mis-prediction and method and central processing unit thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW97127014A TWI362001B (en) 2008-07-16 2008-07-16 Recovery apparatus for solving branch mis-prediction and method and central processing unit thereof

Publications (2)

Publication Number Publication Date
TW201005633A TW201005633A (en) 2010-02-01
TWI362001B true TWI362001B (en) 2012-04-11

Family

ID=44826379

Family Applications (1)

Application Number Title Priority Date Filing Date
TW97127014A TWI362001B (en) 2008-07-16 2008-07-16 Recovery apparatus for solving branch mis-prediction and method and central processing unit thereof

Country Status (1)

Country Link
TW (1) TWI362001B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9471322B2 (en) 2014-02-12 2016-10-18 Apple Inc. Early loop buffer mode entry upon number of mispredictions of exit condition exceeding threshold
US9557999B2 (en) 2012-06-15 2017-01-31 Apple Inc. Loop buffer learning
US9753733B2 (en) 2012-06-15 2017-09-05 Apple Inc. Methods, apparatus, and processors for packing multiple iterations of loop in a loop buffer

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9557999B2 (en) 2012-06-15 2017-01-31 Apple Inc. Loop buffer learning
US9753733B2 (en) 2012-06-15 2017-09-05 Apple Inc. Methods, apparatus, and processors for packing multiple iterations of loop in a loop buffer
US9471322B2 (en) 2014-02-12 2016-10-18 Apple Inc. Early loop buffer mode entry upon number of mispredictions of exit condition exceeding threshold

Also Published As

Publication number Publication date
TW201005633A (en) 2010-02-01

Similar Documents

Publication Publication Date Title
JP6345623B2 (ja) 条件付き非ブランチング命令の非実行を予測するための方法および機器
JP5917616B2 (ja) 事前通知技術を用いる、プログラムのシーケンシャルフローを変更するための方法および装置
US7861066B2 (en) Mechanism for predicting and suppressing instruction replay in a processor
JP5520779B2 (ja) 分岐誤予測バッファを用いるためのシステム及び方法
JP5335946B2 (ja) 電力的に効率的な命令プリフェッチ機構
TWI444892B (zh) 用於預測未對齊之記憶體存取之方法及處理器
EP2585909B1 (en) Tracing of a data processing apparatus
US9442736B2 (en) Techniques for selecting a predicted indirect branch address from global and local caches
TW200813822A (en) D-cache miss prediction and scheduling
US20180004530A1 (en) Advanced processor architecture
US8578141B2 (en) Loop predictor and method for instruction fetching using a loop predictor
US20180349144A1 (en) Method and apparatus for branch prediction utilizing primary and secondary branch predictors
US20040186960A1 (en) Computer processor data prefetch unit
TWI362001B (en) Recovery apparatus for solving branch mis-prediction and method and central processing unit thereof
Ye et al. A New Recovery Mechanism in Superscalar Microprocessors by Recovering Critical Misprediction
US11645078B2 (en) Detecting a dynamic control flow re-convergence point for conditional branches in hardware
Perais et al. Elastic instruction fetching
CN116302106A (zh) 用于促进分支预测单元的改善的带宽的设备、方法和系统
US7945767B2 (en) Recovery apparatus for solving branch mis-prediction and method and central processing unit thereof
KR102635965B1 (ko) 마이크로 프로세서의 프론트 엔드 및 이를 이용한 컴퓨터 구현 방법
US7941646B2 (en) Completion continue on thread switch based on instruction progress metric mechanism for a microprocessor
US8473725B2 (en) System and method for processing interrupts in a computing system
CN111936968A (zh) 一种指令执行方法及装置
US20170308384A1 (en) Processor with instruction lookahead issue logic
US6948055B1 (en) Accuracy of multiple branch prediction schemes

Legal Events

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