[發明專利]具有稀疏和密集預測緩存的復合分支預測裝置有效
| 申請號: | 200980136972.0 | 申請日: | 2009-09-04 |
| 公開(公告)號: | CN102160033A | 公開(公告)日: | 2011-08-17 |
| 發明(設計)人: | 杰拉爾德·D·小祖拉斯基;詹姆斯·D·鄧達斯;安東尼·X·賈維斯 | 申請(專利權)人: | 超威半導體公司 |
| 主分類號: | G06F9/38 | 分類號: | G06F9/38 |
| 代理公司: | 上海勝康律師事務所 31263 | 代理人: | 周文強;李獻忠 |
| 地址: | 美國加利*** | 國省代碼: | 美國;US |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 具有 稀疏 密集 預測 緩存 復合 分支 裝置 | ||
技術領域
本發明涉及微處理器,尤其涉及預測機制(prediction?mechanism)。
背景技術
當代微處理器可包括一個或更多個處理器內核或處理器,其中每個處理器能夠執行軟件應用的指令。這些處理器通常是管線化(pipelined)的,其中該處理器包括一個或更多個數據處理級,該一個或更多個數據處理級與放置于其間的存儲元件(例如,寄存器和陣列)串聯。在限定時鐘周期或相(phase)的時鐘信號的轉換(transition)過程中,一級的輸出可被用作下一級的輸入,其中相是時鐘周期的一小部分。盡管管線(pipeline)可被分成任意數量的級(在這些級處執行指令處理的部分),指令處理通常包括獲取(fetching)指令、解碼指令、執行指令和在該指令確定的目的地中存儲執行結果。
理想情況下,每個時鐘周期對管線的每一級產生有用的指令執行。然而,管線中的停頓可導致在特定的管線級期間無有用工作可執行。一些停頓可能持續若干時鐘周期并明顯降低處理器性能。停頓的一些示例包括數據緩存(cache)或指令緩存未中(miss),指令間的數據依賴性,以及控制流誤預測(misprediction),比如誤預測的分支指令(branch?instruction)。
停頓對處理器性能的負面影響可以通過重疊(overlap)管線級而減小。進一步的技術是允許指令的亂序(out-of-order)執行,這有助于減少依賴數據的停頓。另外,具有超級標量體系結構(superscalar?architecture)的內核根據動態調度每個時鐘周期發出變化的數量的指令。然而,由于可能阻止所有停頓周期的隱藏的按序回退(in-order?retirement),若干時鐘周期的停頓仍降低了處理器的性能。因此,另一種減少性能損失的方法是減少多周期停頓的發生。一種這樣的多周期停頓是控制流指令(比如分支指令)的誤預測。
分支指令包括許多類型,比如有條件的或無條件的以及直接的或間接的。條件分支指令執行確定采用指令流中的哪條路徑的操作。如果該分支指令確定沒有滿足指定的條件(其可被編碼在該指令內),則該分支指令被認為是不采取(non-taken)并以程序次序執行接下來的序貫指令。然而,如果該分支指令確定滿足了指定的條件,則認為采取該分支指令。相應地,執行后續指令,后續指令不是程序次序中接下來的序貫指令,而是位于分支目標地址的指令。無條件分支指令被認為是永遠采取(always-taken)的條件分支指令。在該指令內沒有要測試的指定條件,而后續指令的執行永遠按照不同于序貫次序的次序進行。
另外,分支目標地址可以通過相對于存儲在該程序計數器(PC)寄存器中的線性地址值的偏移(offset)而指定,該偏移可被存儲在條件分支指令本身中。這種類型的分支目標地址被稱為“直接的”。分支目標地址還可由寄存器或記憶體(memory)中的值指定,其中該寄存器或記憶體位置可被存儲在該分支指令中。這種類型的分支目標地址被稱為“間接的”。進一步,在間接分支指令中,指定該分支目標地址的寄存器可被裝載有不同的值。
無條件間接分支指令的示例包括程序調用(procedure?calls)和返回(returns),其可用于實現程序代碼中的子例程(subroutines),并可使用返回地址堆棧(Return?Address?Stack,RAS)來提供該分支目標地址。另一示例是間接跳轉指令,其可用于實現switch-case語句,該語句在面向對象編程(比如C++和Java)中很流行。
條件分支指令的示例是可用于實現程序代碼中的循環(loops)的分支指令(例如,“for”和“while”循環結構)。條件分支指令必須滿足指定條件才能被認為采取。滿足條件的一個示例可以是指定的寄存器現在保持(hold)的存儲值為零。該指定的寄存器被編碼在該條件分支指令中。由于軟件應用代碼內的指令,此指定的寄存器可在循環中遞減其存儲的值。該指定寄存器的輸出可被輸入到專用零檢測組合邏輯中。
另外,條件分支指令彼此可具有一定的依賴關系。例如,程序可具有簡單的情況,比如:if(value==0)value==1;if(value==1)
將用于實現上述實例的條件分支指令將具有可用于改進預測該條件的準確度的全局歷史。在一個實施例中,該預測可通過2-位計數器執行。接下來詳細地描述分支預測。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于超威半導體公司,未經超威半導體公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/200980136972.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:微機械構件及其制造方法
- 下一篇:全光纖再入式微分干涉儀





