[發明專利]處理涵蓋跨越指令高速線的分支目標地址高速區的分支的裝置及方法有效
| 申請號: | 02107138.1 | 申請日: | 2002-03-11 |
| 公開(公告)號: | CN1369780A | 公開(公告)日: | 2002-09-18 |
| 發明(設計)人: | 布蘭特;比恩;G·葛蘭;亨利;湯瑪斯C·麥當勞 | 申請(專利權)人: | 智權第一公司 |
| 主分類號: | G06F9/42 | 分類號: | G06F9/42;G06F12/02 |
| 代理公司: | 北京集佳專利商標事務所 | 代理人: | 王學強 |
| 地址: | 美國*** | 國省代碼: | 暫無信息 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 處理 涵蓋 跨越 指令 高速 分支 目標 地址 裝置 方法 | ||
技術領域
本發明是有關于微處理器中的分支目標地址高速區的領域,且特別是有關于一種涵蓋跨越指令高速線的分支指令。
背景技術
微處理器包括多個管線(pipeline)階段,而每個階段完成程序指令的執行中的不同的功能需求。管線階段的功能通常為指令提取、指令譯碼、指令執行、存儲器存取及結果寫回(write-back)。
指令提取階段是提取目前執行程序中的下個指令。下個指令通常為具有下個連續存儲器地址的指令。然而,就執行(taken)的分支指令而言,下個指令為通過此分支指令所指定的存儲器地址的指令,通常是做為分支目標地址的參考。指令提取階段是提取自指令高速緩存(cache)的指令。如果指令不存在于指令高速緩存中,則會從存儲器組織階層中的較高階層(如從較高階的高速緩存或從系統存儲器)提取指令至高速緩存。所提取的指令用于指令譯碼階段。
指令譯碼階段包括用以譯碼自指令提取階段所接收到的指令字節的指令譯碼邏輯。就可支持可變長度指令的處理器(如x86結構的處理器)而言,指令譯碼階段的功能之一就是將指令字節流(stream)格式化成分離的指令。格式化指令流包括決定每個指令的長度。也就是,指令格式化邏輯是接收自指令提取階段的未區分的指令流,并且將指令字節流格式化(或符合語法)成各自的字節的群組。每個字節的群組為一個指令,此指令是組成通過處理器所執行的程序。指令譯碼階段也可能包括將宏指令(如x86指令)轉換成可通過其余的管線所能執行的微指令。
執行階段包括用以執行自指令譯碼階段所接收到的已格式化及已譯碼的指令的執行邏輯。執行邏輯是運作來自處理器的緩存器組及/或來自存儲器的數據。寫回階段是將通過執行邏輯所產生的結果儲存至處理器的緩存器組。
管線處理器的效能的一個重要的方面就是保持處理器的每個階段都忙碌的執行其設計用來執行的功能。特別是,如果當指令譯碼階段已準備好提取下個指令而指令提取階段未提供指令,則處理器的效能將變差。為了避免指令譯碼階段的匱乏,指令緩沖器通常置于指令高速緩存及指令格式化邏輯之間。指令提取階段會試圖保持擁有指令字節的多個指令于指令緩沖器中,以使得指令譯碼階段將有指令字節可以譯碼,而不會匱乏。
通常,指令高速緩存提供高速線的指令字節,通常一次為16或32字節。指令提取階段自指令高速緩存提取一條或多條高速線的指令字節至指令緩沖器。當指令譯碼階段已準備好譯碼指令時,其會存取指令字節于指令緩沖器中,而不用等待指令高速緩存。
指令高速緩存提供用于指令提取階段的指令高速緩存的提取地址所選擇到的高速線的指令字節。在正常的程序運作期間,因為預先使程序指令循序的執行,所以提取地址只會經由高速線的大小而增加。所增加的提取地址是做為下個循序提取地址的參考。然而,如果分支指令是經由指令譯碼邏輯來譯碼及分支指令執行被執行(或預測執行),則更新的提取地址會送至分支指令的目標地址(以高速線的大小為模(modulo)),而下個循序提取地址不會更新。
然而,到將更新提取地址送至分支目標地址的時候,在分支指令之后,指令緩沖器可能已含有下個循序指令的指令字節。因為分支已發生,在分支指令之后的指令必需不被譯碼及執行。也就是,正確的程序執行需要在分支目標地址時的指令來執行,而不是在分支指令之后的下個循序指令。在指令緩沖器中,以程序中的循序指令流程的較通常預期狀況所預取的指令是錯誤的。為了修正此錯誤,處理器必須清除(flush)在分支指令后的所有的指令,其中包括指令緩沖器中的指令字節。
在執行分支指令后,立即清除指令緩沖器的代價是很高的,這是因為此時的指令譯碼階段在指令緩沖器從指令高速緩存再獲得之前,都是匱乏的。此問題的一個解決方案就是在譯碼分支指令前做分支。此可通過使用分支目標地址高速緩存(branch?target?addresscache,簡稱BTAC)來達成,而指令高速線的高速緩存預取地址包含先前執行的分支指令及其相關的目標地址。
用于BTAC的指令高速緩存預取地址實質上是與用于指令高速緩存的預取地址并行。就包含分支指令的高速線的指令高速緩存預取地址而言,高速線用于指令緩沖器中。除此之外,當預取地址擊入BTAC中時,BTAC會提供相關的分支目標地址。當預取地址擊入預測要執行的BTAC中時,更新的指令高速緩存預取地址會送到由BTAC所提供的目標地址。因此,包含目標指令的高速線,也就是在目標地址的指令,將儲存于包含分支指令的高速線后的指令緩沖器中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于智權第一公司,未經智權第一公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/02107138.1/2.html,轉載請聲明來源鉆瓜專利網。





