TW564369B - Apparatus and method for handling BTAC branches that wrap across instruction cache lines - Google Patents
Apparatus and method for handling BTAC branches that wrap across instruction cache lines Download PDFInfo
- Publication number
- TW564369B TW564369B TW90127270A TW90127270A TW564369B TW 564369 B TW564369 B TW 564369B TW 90127270 A TW90127270 A TW 90127270A TW 90127270 A TW90127270 A TW 90127270A TW 564369 B TW564369 B TW 564369B
- Authority
- TW
- Taiwan
- Prior art keywords
- instruction
- address
- branch
- cache
- cache line
- Prior art date
Links
Landscapes
- Advance Control (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Description
564369 8418twf.doc/012 A7 B7 五、發明説明(ί ) 相關申請案之交叉參隻 本申請案是關於下述具有共同申請日與共同申請人的 美國專利申請案,這些申請案在此會全部倂入本案做爲參 文件編號# 序號# 名稱 CNTR : 2020 (美國申請案第 09/898,583 號) 將藉由分支目標位 址快取區所預測之 分支指令與相關目 標指令密集擠入位 元組寬度指令緩衝 器之裝置及方法 CNTR : 2024 (美國申請案第 09/898,832 號) 建基於分支目標位 址快取區命中與指 令階段涵蓋之選擇 性存取不同指令緩 衝階段之裝置及方 法 頁 請 先 閲 讀
I 訂 中 央 標 準 局 貝 費 合 作 社 印 裝 發明領域 本發明是有關於微處理器中之分支目標位址快取區的 領域,且特別是有關於一種涵蓋跨越指令快取線之分支指 令。 發明背景 微處理器包括多個管線(PiPeline)階段,而每個階段 係完成程式指令的執行中之不同的功能需求。管線階段的 本紙張尺度適用中國國家標準(CNS } A4規格(210X297公瘦) 564369 8418twf.doc/012 A7 B7 經濟部中央梂準局負工消費合作社印製 五、發明説明(>) 功能通常爲指令提取、指令解碼、指令執行、記憶體存取 及結果寫回(write-back)。 指令提取階段係提取目前執行程式中之下個指令。 下個指令通常爲具有下個連續記憶體位址的指令。然而, 就執行(taken)的分支指令而言,下個指令爲藉由此分支指 令所指定之記憶體位址的指令,通常係做爲分支目標位址 的參考。指令提取階段係提取自指令快取記憶體(cache)的 指令。如果指令不存在於指令快取記憶體中,則會從記憶 體組織階層中之較高階層(如從較高階的快取記憶體或從 系統記憶體)提取指令至快取記憶體。所提取的指令係用 於指令解碼階段。 指令解碼階段包括用以解碼自指令提取階段所接收 到的指令位元組之指令解碼邏輯。就可支援可變長度指令 的處理器(如x86結構的處理器)而言,指令解碼階段的功 能之一就是將指令位兀組流(stream)格式化成分離的指 令。格式化指令流包括決定每個指令的長度。也就是,指 令格式化邏輯係接收自指令提取階段之未區分的指令流, 並且將指令位元組流格式化(或符合語法)成各自的位元組 之群組。每個位元組之群組爲一個指令,此指令係係組成 藉由處理器所執行的程式。指令解碼階段也可能包括將巨 集指令(如x86指令)轉換成可藉由其餘的管線所能執行之 微指令。 執行階段包括用以執行自指令解碼階段所接收到之 已格式化及已解碼的指令之執行邏輯。執行邏輯係運作來 5 (請先閲讀背面之注$項再填寫本頁) 訂 本紙張尺度適用中國國家標準(CNS ) A4規格(210 X 297公釐) 564369 8418twf.doc/012 A7 B7 經濟部中央標準局貝工消费合作社印裝 五、發明説明(今) 自處理器的暫存器組及/或來自記憶體的資料。寫回階段 係將藉由執行邏輯所產生的結果儲存至處理器的暫存器 組。 管線處理器的效能之一個重要的方面就是保持處理 器的每個階段都忙碌的執行其設計用來執行的功能。特別 是,如果當指令解碼階段已準備好提取下個指令而指令提 取階段未提供指令,則處理器的效能將變差。爲了避免指 令解碼階段的匱乏,指令緩衝器通常係置於指令快取記憶 體及指令格式化邏輯之間。指令提取階段會試圖保持擁有 指令位元組的多個指令於指令緩衝器中,以使得指令解碼 階段將有指令位元組可以解碼,而不會匱乏。 通常,指令快取記憶體係提供快取線的指令位元組, 通常一次爲16或32位元組。指令提取階段係自指令快取 記憶體提取一條或多條快取線的指令位元組至指令緩衝 器。當指令解碼階段已準備好解碼指令時,其會存取指令 位元組於指令緩衝器中,而不用等待指令快取記憶體。 指令快取記憶體係提供用於指令提取階段之指令快 取記憶體的提取位址所選擇到之快取線的指令位元組。在 正常的程式運作期間,因爲預先使程式指令循序的執行, 所以提取位址只會經由快取線的大小而增加。所增加的提 取位址係做爲下個循序提取位址的參考。然而,如果分支 指令係經由指令解碼邏輯來解碼及分支指令執行被執行 (或預測執行),則更新的提取位址會送至分支指令的目標 位址(以快取線的大小爲模(modulo)),而下個循序提取位 6 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) (請先閲讀背面之注意事項再填寫本頁) 、tr 564369 8418twf.doc/012 A7 B7 五、發明説明(Y ) 址不會更新。 然而,到將更新提取位址送至分支目標位址的時候’ 在分支指令之後,指令緩衝器可能已含有下個循序指令的 指令位元組。因爲分支已發生,在分支指令之後的指令必 需不被解碼及執行。也就是,正確的程式執行需要在分支 目標位址時的指令來執行,而不是在分支指令之後的下個 循序指令。在指令緩衝器中,以程式中之循序指令流程的 較通常預期狀況所預取的指令是錯誤的。爲了修正此錯 誤,處理器必須淸除(flush)在分支指令後之所有的指令, 其中包括指令緩衝器中的指令位元組。 訂 在執行分支指令後,立即淸除指令緩衝器的代價是 很局的^追是因爲此時的指令解碼階段在指令緩衝器從指 令快取記憶體再獲得之前,都是匱乏的。此問題的一個解 決方案就是在解碼分支指令前做分支。此可藉由使用分支 目標位址快取記憶體(branch target address cache ,簡稱 BTAC)來達成,而指令快取線的快取記憶體預取位址包含 先前執行的分支指令及其相關的目標位址。 經濟部中央標準局貝工消费合作社印装 用於BTAC的指令快取記憶體預取位址實質上係與 用於指令快取記憶體的預取位址並行。就包含分支指令之 快取線的指令快取記憶體預取位址而言,快取線係用於指 令緩衝器中。除此之外,當預取位址擊入BTAC中時,BTAC 會提供相關的分支目標位址。當預取位址擊入預測要執行 的BTAC中時,更新的指令快取記憶體預取位址會送到由 BTAC所提供的目標位址。因此,包含目標指令的快取線, 7 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐> 經濟部中央標準局負工消费合作社印^ 564369 8418twf.doc/012 A 7 B7 ___ 五、發明説明(f ) 也就是在目標位址的指令,將儲存於包含分支指令的快取 線後之指令緩衝器中。 然而,因爲處理器中會執行可變長度指令的事實, 所以分支指令可能涵蓋跨越二條快取線,而使情況變的複 雜。也就是,分支指令位元組的第一部份可能包含於第一 快取線,而分支指令位元組的第二部份可能包含於下個快 取線。因此,爲了獲得具有分支指令的第二部份,下個循 序提取位址必須施加至指令快取記憶體,而不是目標位 址。然後,目標位址必須以某種方式施加至指令快取記憶 體,以獲得目標指令。 因此,所需要的就是就涵蓋的BTAC分支而言,能 提供正確的程式運作的分支控制裝置。 摘要 就涵蓋的BTAC分支而言,本發明提出能提供正確 的程式運作之在具有管線的處理器中之分支控制裝置。 此外,爲了達成上述的目的,本發明的一個特徵就是提出 一種在具有指令快取記憶體之微處理器中的分支控制裝 置,耦接至位址匯流排,係用以將數個快取線送至指令緩 衝器。此裝置包括分支指令之目標位址。分支目標位址快 取記憶體(BTAC)會送出目標位址。此裝置也包括涵蓋訊 號,係由BTAC所送出,其表示分支指令是否涵蓋跨越第 一快取線及第二快取線。此裝置也包括位址暫存器,耦接 至BTAC,用以儲存目標位址。當涵蓋訊號表示分支指令 涵蓋跨越第一快取線及第二快取線時,位址暫存器會將位 8 本紙張尺度適用中國國家標隼(CNS ) A4規格(210X297公釐) C請先閲讀背面之注$項存填寫本真) 訂 經濟部中央標準局負工消费合作社印裝 564369 8418twf.doc/012 A7 ____B7____ 五、發明説明(& ) 址匯流排上的目標位址送到指令快取記億體,用以選擇一 弟二快取線。弟二快取線包含分支指令之目標指令。 在另一*方面’本發明的一'個特徵就是提出一^種具有 管線的微處理器。此微處理器包括指令快取記憶體,耦接 至位址匯流排,係用以接收用於選擇第一快取線之第一提 取位址。此微處理器也包括BTAC,耦接至位址匯流排, 用以送出用於表示分支指令是否涵蓋超過第一快取線之涵 蓋指標。此微處理器也包括位址暫存器,耦接至BTAC, 係用以儲存分支指令之目標位址。目標位址係由BTAC所 送出。此微處理器也包括多工器,耦接至分支目標位址快 取記憶體,當涵蓋指標爲真時,係用以選擇用於位址匯流 排上的第二提取位址。第二提取位址係選擇包含涵蓋超過 第一快取線之分支指令的一部份之第二快取線。在選擇用 於位址匯流排上的第二提取位址之後,多工器會自位址暫 存器選擇用於位址匯流排上的目標位址。 在另一方面,本發明的一個特徵就是提出一種在微 處理器中的分支控制裝置。此分支控制裝置包括BTAC, 用以快取數個先前執行的分支指令是否涵蓋跨越二條快取 線的數個指示。此分支控制裝置也包括暫存器,耦接至 BTAC,用以接收來自BTAC之這些先前執行的分支指令 中的一個之目標位址。此分支控制裝置也包括控制邏輯, 耦接至BTAC,用以接收這些指示中的一個。當這些指示 中的此一個表示出這些先前執行的分支指令中的此一個涵 蓋跨越二條快取線時,在提取含有這些先前執行的分支指 9 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐「 " (請先閲讀背面之注$項再換寫本頁) 訂 564369 8418twf.doc/012 A7 B7 五、發明説明(7 ) 令中的此一個之二條快取線之後,控制邏輯會使微處理器 分支成目標位址。 (請先閲讀背面之注意事項再填寫本頁) 在另一方面,本發明的一個特徵就是提出一種微處 理器分支控制裝置。此分支控制裝置包括增加器,耦接至 指令快取記憶體位址匯流排,用以送出位址匯流排上的第 一提取位址。第一提取位址係選擇含有分支指令的第一部 份之第一快取線。此分支控制裝置也包括BTAC,耦接至 位址匯流排,用以回應於第一提取位址,而送出分支指令 的目標位址。此分支控制裝置也包括位址暫存器,耦接至 BTAC,當BTAC表示分支指令涵蓋超過第一快取線時, 係用以儲存目標位址。增加器會送出位址匯流排上的第二 提取位址。第二提取位址係選擇含有分支指令的第二部份 之第二快取線。位址暫存器會送出位址匯流排上的目標位 址。目標位址係選擇含有分支指令的目標指令之第三快取 線。 經濟部中央標準局貝工消費合作社印製 在另一方面,本發明的一個特徵就是提出一種具有 指令快取記憶體的微處理器之執行方法。此方法包括: 將第一提取位址用於指令快取記憶體,用以選擇至少含有 分支指令的一部份之第一快取線;回應於第一提取位址而 送出分支指令的目標位址;以及決定分支指令是否涵蓋超 過第一快取線。此方法也包括:當分支指令涵蓋超過第一 快取線時,將目標位址儲存於暫存器中;當分支指令涵蓋 超過第一快取線時,將第二提取位址用於指令快取記憶 體,用以選擇含有分支指令的其餘部分之第二快取線;將 10 本紙張尺度適用中國國家標隼(CNS ) A4说格(210Χ297公釐) 564369 8418twf.doc/012 A7 B7 經濟部中央標準局負工消费合作社印裝 五、發明説明(8 ) 來自暫存器的目標位址送到指令快取記憶體,用以選擇含 有分支指令的目標指令之第三快取線。 本發明的優點就是即使分支涵蓋跨越多條快取線, 其可使用藉由使處理器能做BTAC分支之BTAC,而改善 具有管線的微理器中之分支效能。本發明甚至可使處理器 中的涵蓋分支在處理器之預先解碼階段中的電路不會暫 停,因此可避免有關將分支錯誤預測爲不要執行之分支損 失,以及接下來會修正錯誤預預測。分支損失的避免特別 有助於具有許多管線階段的處理器。 在硏讀說明書的其餘部分及圖式後,本發明的其他特 徵及優點會立即變的顯而易見。 圖式簡單說明: 第1圖繪示的是根據本發明之微處理器的方塊圖; 第2圖繪示的是根據本發明第1圖中之包括分支控制 裝置之微處理器部分的方塊圖; 第3圖繪示的是根據本發明之包含涵蓋跨越二條快取 線的分支指令之二條快取線的表格; 第4圖繪示的是根據本發明第2圖中之分支控制裝置 之運作的流程圖; 第5、6、以及7圖繪示的是根據本發明之依照第4圖 的流程圖之第2圖中的分支控制裝置之運作例子的時序 圖; 第8圖繪示的是根據本發明一變化實施例之第2圖中 之分支控制裝置之運作的流程圖;以及 .I ——-I ϋ— .11 ml - it (靖先閲绩背面之注意事項再填寫本頁) 訂· ,Γ· 本紙張尺度適用中國國家標隼(CNS ) Α4洗格(21〇χ297公釐) 564369 經濟部中央標準局貝工消費合作社印製 8418twf.doc/012 B7 五、發明説明(7 ) 第9圖繪示的是根據本發明之依照第8圖的流程圖之 第2圖中的分支控制裝置之運作例子的時序圖。 重要元件標號= 1〇〇 :管線處理器 101 : C階段 102 : I階段 104 : B階段 106 : U階段 108 : V階段 112 : F階段 114 : X階段 116 : R階段 118 : A階段 122 : D階段 126 : E階段 128 : S階段 132 : W階段 142 :指令緩衝器 144 : F階段指令佇列 146 : X階段指令佇列 152 :推測的分支目標位址 154 :非推測的分支目標位址 156 :可分辨的目標位址 162 :提取位址 12 A7 (請先閲讀背面之注意事項再填寫本頁) 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 564369 8418twf.doc/012 A7 B7 經濟部中央標準局員工消費合作社印製 五、發明説明((。) 202 :指令快取記憶體 204 ·· MISS 訊號 206 : BIU 208 :回應緩衝器 212、242、244、266 :資料匯流排 214 :指令格式化邏輯 216 : BTAC 218 :多工器 222 :控制邏輯 224 :增加器 226 :儲存多工器 228 :儲存暫存器 232 :旗標暫存器 234 : HIT 訊號 236 : SBI 238 : RBRDY 訊號 246 : FULL 訊號 248 :指令長度訊號 262 :下個循序提取位址 268,276 :控制訊號 274 :備份提取位址 282 :提取位址暫存器組 284 :儲存的目標位址 286 : WRAP 訊號 (請先聞讀背面之注意事項再填寫本頁) 本紙張尺度適用中國國家標準(CNS ) A4说格(210X297公釐) 564369 8418twf.doc/012 ^ _B7___ 五、發明説明((i )
302 :快取線A
304 :快取線B 402、404、406、412、414、416、422、424、426、428、 432、436、438、442、444、448、452、454 :方塊 408、434、446、418 :判斷方塊 較佳實施例: 現在參照第1圖,其繪示的根據本發明之具有管線 的微處理器100的方塊圖。微處理器100包括從101到132 之多個階段。在一實施例中,微處理器100包括x86結構 的處理器。 管線處理器100的第一階段爲指令快取記憶體 (instruction cache)產生階段或簡稱爲C階段101。C階段 101係產生用以選擇指令快取記憶體202(見第2圖)中的快 取線之提取位址162。 下個階段爲I階段102,或指令預取(instruction fetch) 經濟部中央標準局負工消費合作社印装 (請先閲讀背面之注意事項再填寫本頁) 階段。爲了提取指令給到管線處理器100執行,I階段102 係爲管線處理器100提供提取位址162至指令快取記憶體 2〇2(見第2圖)的階段。指令快取記憶體202將配合第2圖 做更詳細的敘述。在一實施例中,指令快取記憶體2〇2爲 二個週期(two-cycle)的快取記憶體。B階段104爲指令快 取記憶體202存取的第二階段。指令快取記憶體202係提 供其資料至U階段106,在此的資料會被栓鎖住。U階段 106係提供指令快取記憶體資料至V階段108。 在本發明中,管線處理器100更包括推測(speculative) 14 本紙張尺度適用中國國家標隼(CNS ) A4規格(210X297公釐) 經濟部中央標準局貝工消费合作社印裝 564369 8418twf.doc/012 ^7 _ B7____— 一 五、發明説明(丨>) 的分支目標位址緩衝分支目標位址快取記憶體 (BTAC)216(見第2圖),將詳細敘述如下。在使用指令快 取記憶體202的提取位址162之I階段102中,係推測的 存取BTAC 216與指令快取記憶體202,因此,可相當快 速的分支,以降低分支的效能損失。BTAC 216係提供用 於I階段102的推測的分支目標位址152。管線處理器1〇〇 可選擇推測的分支目標位址152當做指令快取記憶體2〇2 的提取位址162,以達成推測的目標位址152的分支。 由第1圖可知,本發明之優點是,在U階段106中 之由BTAC 216所提供的推測的分支目標位址152,可使 管線處理器1〇〇在管線處理器1〇〇中相當早就能做分支, 其只引起二個週期的指令泡影(bubble)。也就是,當管線 處理器1〇〇分支至推測的目標位址152時,只必須淸除具 有二個階段的指令。換句話說,在通常的情況中,在二個 週期內,在U階段106之分支的目標指令爲可用的。也就 是目標指令係存在於指令快取記憶體202中。 在大部分的情況中,本發明的二個週期的指令泡影 係足夠小,而使得指令緩衝器142、F階段指令佇列144 及/或X階段指令佇列146(底下將敘述)可吸收此泡影, 對提升效能也是有好處的。因此,在大部分的情況中,推 測的BTAC 216可使管線處理器1〇〇達成零損失(zero-penalty)分支。 V階段108係將指令寫入至指令緩衝器142的階段。 指令緩衝器142係暫存用於F階段112的指令。指令緩衝 15 本紙張尺度適用中國國家標準(CMS ) A4規格(21〇X297^釐) (請先閲讀背面之注意事項再填寫本頁) 訂 564369 8418twf.doc/012 A 7 _B7___ 五、發明説明(/5 ) 器142包括用以儲存來自指令快取記憶體202所接收到的 指令位元組之多個階段或暫存器。在一實施例中,指令緩 衝器 142 相似於稱爲「APPARATUS AND METHOD FOR SELECTIVELY ACCESSING DISPARATE INSTRUNCTION BUFFER STAGES BASED ON BRANCH TARGET ADDRESS CACHE HIT AND INSTRUNCTION STAGE WRAP」之美國專利申請案中所敘述的指令緩衝器,以上 將倂入做爲參考。V階段1〇8也包括解碼邏輯,係用以提 供關於指令位元組到指令緩衝器142的資訊(如x86之前 置(prefix)及模數(mod)R/M資訊),以及指令位元組是否爲 分支運作碼(opcode)値。 F階段112(或指令格式化(instruction format)階段112) 包括用以格式化指令之指令格式化邏輯214(見第2圖)。 微處理器1〇〇最好是在其指令集中,允許可變長度指令的 x86處理器。指令格式化邏輯214係接收來自指令緩衝器 142之指令位元組流及將符合語法的此流送至構成x86指 令之位元組的離散群組,以及特別是提供每個指令的長 度。 經濟部中央標準局貝工消費合作社印裝 (請先閲讀背面之注意事項再填寫本頁) F階段112也包括用以產生非推測的分支目標位址 154之分支指令目標位址計算邏輯。而非推測的分支目標 位址154係以指令解碼爲基準,而不是以推測的指令快取 記憶體202之提取位址爲基準(如在I階段1〇2中的BTAC 216)。F階段112之非推測的分支目標位址154係用於I 階段102。微處理器100係選擇F階段112之非推測的分 16 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 564369 8418twf.doc/012 A7 B7 __ 五、發明説明(丨々) 支目標位址154當做指令快取記憶體202之提取位址,以 完成非推測的分支目標位址154的分支。 F階段指令佇列144係接收格式化的指令。由F階段 指令佇列144所提供的格式化的指令係送至X階段II4中 的指令轉換器中。 X階段114(或轉換(translation)階段114)的指令轉換 器係將x86的巨集指令轉換成可由其餘的管線階段所能執 行的微指令。由X階段Π4所提供之轉換的微指令係送至 X階段指令佇列146。 X階段指令佇列146係提供轉換的微指令至R階段 116(或暫存器階段116)。11階段116包括使用者可見的x86 暫存器組,除此之外還包括非使用者可見的暫存器。用於 儲存於R階段116的暫存器中之轉換的微指令的指令運算 元,係用以執行微處理器1〇〇之接下來的階段的微指令。 A階段118(或位址(address)階段118)包括位址產生邏 輯,係用以接收來自R階段116的運算元及微指令,並且 產生微指令所需的位址,如用於載入/儲存的記憶體位址。 經濟部中央標準局貝工消费合作社印裝 I n^i - -i I urn ϋ (請先閲讀背面之注意事項再填寫本頁) D階段122(或資料(data)階段122)包括用以存取藉由 A階段118所產生的位址之指定的資料的邏輯。特別是, D階段122包括在微處理器100內,用以快取來自系統記 憶體的資料之資料快取記憶體。在一實施例中,資料快取 記憶體爲二週期的快取記憶體。D階段122係提供資料快 取記憶體的資料至E階段126。 E階段126(或執行(execution)階段126)包括執行邏輯 本紙張尺度適用中國國家標隼(CNS ) A4規格(210X 297公釐) 經濟部中央橾準局貝工消費合作社印製 564369 8418twf.doc/012 A 7 B7 五、發明説明(K ) (如算術邏輯單元),係用以執行來自先前階段所提供的資 料及運算元爲基準的微指令。特別是,E階段126會產生 全部分支指令之可分辨的目標位址156。也就是,所知之 E階段126之可分辨的目標位址156爲全部分支指令之正 確的目標位址,其必須與全部預測的目標位址一致。除此 之外,E階段126會產生用於全部分支指令之可分辨的方 向,也就是是否分支要執行或不要執行。 S階段128(或儲存(store)階段128)係用以將來自E階 段126所接到之微指令執行的結果儲存至記憶體。除此之 外,在E階段126所計算得出的分支指令之可分辨的目標 位址156係用於來自S階段128之I階段102中的指令快 取記憶體202。此外,自S階段128所更新的I階段102 之BTAC 216係具有用於BTAC 216中的快取之經由微處 理器100所執行的分支指令之可分辨的目標位址156。除 此之外,來自S階段128之其他的平行整數分支資訊 (speculative branch information,簡稱 SBI)236(見第 2 圖) 係在BTAC 216中被更新。SBI 236包括分支指令長度、 在分支指令之指令快取記憶體202線內的位置、是否分支 指令涵蓋過多條指令快取記憶體202線、是否分支爲呼叫 或返回指令、以及用於預測分支指令方向的資訊。 W階段132(或寫回(write-back)階段132)係將來自S 階段128的結果寫回至R階段116,因此更新了微處理器 100的狀態。 在其它的情形中,指令緩衝器142、F階段指令佇列 18 本紙張尺度適用中國國家標隼(CNS ) A4^格(210X297公釐) (請先閲讀背面之注意事項再填寫本頁) 訂 564369 8418twf.doc/012 A _ A7 ______B7___ 五、發明説明(μ ) 144、以及X階段指令佇列146係用以使分支對於微處理 器100之每個指令値時脈的影響減至最小。 現在參照第2圖,其繪示的是根據本發明第1圖中 之包括分支控制裝置之微處理器部分的方塊圖。 微處理器100包括用以快取指令位元組之指令快取 記憶體202。指令快取記憶體202包括用以儲存指令位元 組之快取線的陣列。快取線的陣列係由第1圖之提取位址 162來索引。也就是,提取位址162會選擇陣列中的一條 快取線。指令快取記憶體202係藉由資料匯流排242,而 將選到的指令位元組之快取線送到指令緩衝器142。 在一實施例中,指令快取記憶體202包括每向具有32 位元組的快取線之64Κ位元組的4向集組合快取記憶體 (4-way set associative cache)。在一實施例中,指令快取記 憶體202 —次係送出選到的指令位元組之快取線的一半, 也就是在每個分離週期的期間,送出16位元組。 經濟部中央標準局貝工消费合作社印製 (請先閲讀背面之注意事項再填寫本頁) 在一實施例中,指令快取記憶體202係相似於具有共同讓 渡人之美國專利申請案序號09/849,736之稱爲 「SPECULATIVE BRANCH TARGET ADDRESS CACHE」 (文件編號CNTR: 2021)中所述的指令快取記憶體,其全 部的目的在此倂入做爲參考。當在指令快取記憶體202中, 提取位址162誤失(miss)時,指令快取記憶體202會使MISS 訊號204產生真(tme)値。 微處理器1〇〇也包括匯流排介面單元(bus interface unit,簡稱BIU)206,係藉由資料匯流排266而從記憶體 19 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 564369 8418twf.doc/012 A7 ____B7_______ 五、發明説明(W) 提取快取線。特別是,當指令快取記憶體202使MISS訊 號2〇4產生真値時,BIU 206會從記憶體提取快取線。指 令快取記憶體202也提供MISS訊號204至BIU 2〇6。 微處理器100也包括回應緩衝器208。回應緩衝器208 係接收來自BIU 206的快取線。回應緩衝器208也藉由資 料匯流排212而接收來自第2階快取的快取線。回應緩衝 器208係藉由資料匯流排244而將指令位元組的快取線送 到指令緩衝器142。當回應緩衝器208將指令位元組的快 取線送到指令緩衝器142時,回應緩衝器208會對RBRDY 訊號238產生真實的訊號。 當不是來自於指令快取記憶體202,就是來自於回應 緩衝器208的快取線存入指令緩衝器142時,會使得指令 緩衝器142變成佔滿(full),而指令緩衝器142會使FULL 訊號246產生真値,以表示目前不能接受指令位元組。 經濟部中央標準局貝工消費合作社印製 (請先閲讀背面之注意事項再填窝本頁) 微處理器100也包括指令格式化邏輯214。指令格式 化邏輯214係接收來自指令緩衝器142的指令位元組。指 令格式化邏輯214會將所接收到的指令位元組格式化(或 符合語法)成指令。特別是,指令格式化邏輯214會決定 出指令之位元組的大小。指令格式化邏輯214會藉由指令 長度訊號而送出目前格式化指令的長度。指令格式化邏輯 214會將格式化指令送到微處理器100的其餘部分,以進 一步的解碼及執行。在一實施例中,指令格式化邏輯214 在每個微處理器100時脈週期, 可格式化多個指令。 20 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 564369 8418twf.doc/012 A 7 _B7____ 五、發明説明(/2) 微處理器100也包括BTAC 216。BTAC 216也接收 指令快取記憶體202的提取位址162。BTAC 216包括儲 存元件的陣列,係用以快取先前所執行的分支指令之提取 位址及其相關的分支目標位址。儲存元件也儲存其他的平 行整數分支資訊,係有關於用以快取目標位址之分支指 令。特別是,所儲存的儲存儲存元件係表示是否多個位元 組分支指令涵蓋跨越二條指令快取線。提取位址162係索 引BTAC 216中之儲存元件的陣列,以選擇儲存元件中的 一*個。 BTAC 216係輸出第1圖之推測的分支目標位址152 及來自藉由提取位址162所選擇的儲存元件之分支推測資 料SBI 236。在一實施例中,SBI 236包括分支指令長度、 在快取線中之分之指令的位置、是否分支爲呼叫及返回指 令、以及是否分支指令將要執行或不要執行的預測。 經濟部中央標準局貝工消费合作社印裝 (請先閲讀背面之注意事項再填寫本頁)
BTAC 216也輸出HIT訊號234,係表示是否提取位 址162擊中BTAC 216。在一實施例中,BTAC 216係相似 於美國專利申請案之稱爲「SPECULATIVE BRANCH TARGET ADDRESS CACHE」中所敘述的BTAC,以上將 倂入作爲參考。在一實施例中,BTAC 216爲平行的 BTAC,這是因爲在經由快取快取記憶體202所送出的指 令快取線被解碼之前,微處理器100會分支成經由BTAC 216所送出的推測的分支目標位址152,用以知道是否分 支指令剛好存在於經由提取位址所選擇到的快取線中。也 就是,即使沒有分支指令存在於經由提取位址擊入BTAC 21 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 564369 經濟部中央標準局員工消費合作社印裝 84l8twf.doc/012 ^ ___B7_ 五、發明説明(β) 216而選擇到的快取線中的可能性存在,微處理器100仍 會以平行整數的方式來分支。 BTAC 216也輸出WRAP訊號286,係指出是否分支 指令涵蓋(wrap)跨越二條快取線。在分支指令執行後,在 BTAC 216中之WRAP訊號286的値會伴隨分支指令目標 位址被快取。 現在參照第3圖,其繪示的是包含涵蓋跨越二條快 取線的分支指令之二條快取線的表格。此表格顯示出以快 取線A 302所代表的第一快取線,其最後的指令位元組包 含用於x86 JCC(條件跳躍)指令的操作碼位元組。此表格 也顯示出以快取線B 3〇4所代表的第二快取線,其第一指 令位兀組包含用於JCC(條件跳躍)指令的符號位移位兀 組。每當微處理器100執行分支指令及快取含有BTAC中 之分支指令與分支指令的目標位址的快取線之提取位址 時,也會快取是否分支指令涵蓋跨越二條快取線的指標, 如第3圖的JCC指令。當提取位址循序擊入BTAC 216, BTAC 216會提供WRAP訊號286的快取涵蓋指標。爲了 獲得用於分支指令之全部的指令位元組,涵蓋指標會使分 支控制裝置知道必須送至指令快取記憶體202之二條快取 線的提取位址。 再次參照第2圖,微處理器100也包括控制邏輯222。 HIT 訊號 234、SBI 236、WRAP 訊號 286、MISS 訊號 204、 FULL訊號246、RBRDY訊號238 '以及指令長度訊號 248全部都當做控制邏輯222的輸入。控制邏輯222的運 22 ( CNS ) A4^ ( 210X 297^¾ ) 經濟部中央標準局貝工消費合作社印裝 564369 8418twf.doc/012 A 7 _ _B7_ 五、發明説明(β ) 作將於底下做更詳細的敘述。 微處理器100也包括多工器218。多工器218係接收 至少六個位址當做輸入,以及回應控制邏輯222所產生的 控制訊號268,而選擇輸入中的一個當做提取位址162, 送到指令快取記憶體202。多工器218係接收來自BTAC 216 之推測的分支目標位址152。多工器218也接收下個循序 提取位址262。下個循序提取位址262爲先前的提取位址 藉由增加器224,而以指令快取記憶體202之快取線的大 小增加而得出的。增加器224會接收提取位址162及將下 個循序提取位址262送到多工器218。
多工器218也接收第1圖中之可分辨的目標位址156。 可分辨的目標位址156係由微處理器100中的執行邏輯所 送出。執行邏輯係計算以分支指令的執行爲基準之可分辨 的目標位址156。當在分支成由BTAC 216所送出之推測 的分支目標位址152之後,微處理器100稍後會決定出此 分支是錯誤的,微處理器100會藉由淸除管線及分支成不 是可分辨的目標位址156,就是分支成包括接著分支指令 的指令之快取線的提取位址,而修正錯誤。在一實施例中, 當微處理器100決定出沒有分支指令存在於如假設的快取 線中時,微處理器1〇〇會藉由淸除管線及分支成包括分支 指令本身之快取線的提取位址,而修正錯誤。錯誤修正係 如具有共同讓渡人之美國專利申請案序號09/849,658之稱 爲「APPARATUS,SYSTEM AND METHOD FOR DETECTING AND CORRECTING ERRONEOUS 23 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) (請先閱讀背面之注意事項再填窝本頁) 訂 564369 8418twf.doc/012 A 7 B7 五、發明説明(>| ) SPECULATIVE BRANCH TARGET ADDRESS CACHE BRANCHES」(文件編號CNTR : 2022)所述,其全部的目 的在此倂入做爲參考。 在一實施例中,多工器218也接收第1圖中之非推 測的分支目標位址154。非推測的分支目標位址154係由 其他的分支預測元件而產生,如呼叫/返回堆疊及分支目 標緩衝器(branch target buffer,簡稱BTB),係用以快取以 分支指令指標爲基準之間接分支指令的目標位址。多工器 218會優先選擇由BTAC 216所送出之推測的分支目標位 址152與非推測的分支目標位址154,如具有共同讓渡人 之美國專利申請案序號09/849,799之稱爲「SPECULATIVE BRANCH TARGET ADDRESS CACHE WITH SELECTIVE OVERRIDE BY SECONDARY PREDICTOR BASED ON BRANCH INSTRUNCTION TYPE」(文件編號 CNTR : 2052) 所述,以及其全部的目的在此倂入做爲參考。 經濟部中失標率局貝工消费合作社印裝 (請先聞讀背面之注意事項再填寫本頁) 多工器218也接收備份提取位址274。微處理器100 包括提取位址暫存器組282,係用以將備份提取位址274 送到多工器218。在微處理器100的一實施例中,從C 階段101到V階段108不能停止(stall)。也就是,在每個 時脈週期,全部的狀態不會存於這些階段。因此,當快取 線送到指令緩衝器142且指令緩衝器142已佔滿時,此快 取線會漏失。當指令緩衝器142相當大時,會因爲在微處 理器100中沒有狀態儲存邏輯而有助於降低複雜度及節省 空間。 24 本紙張尺度適用中國國家標準(CNS ) A4規格(210X 297公釐) 經濟部中央梂準局貝工消费合作社印11 564369 8418twf.doc/012 A 7 _B7_ 五、發明説明(>>) 雖然微處理器100之上面的階段或許不會停止,但是 由於佔滿的指令緩衝器M2而漏失的快取線之提取位址會 儲存於提取位址暫存器組282及送到多工器218當做備份 提取位址274。當快取線送到微處理器100之預先解碼的 管線階段時,由多工器218所送出之相對應的推測的分支 目標位址152會送到提取位址暫存器組282。備份提取位 址274的使用將配合其餘的圖而於底下做詳細的敘述。 多工器218也接收儲存的目標位址284。儲存的目標 位址284爲由BTAC216所輸出之推測的分支目標位址152 的先前値。儲存的目標位址284係儲存於儲存暫存器228 中。儲存暫存器228係接收儲存多工器226的輸出。儲存 多工器226係接收BTAC 216中的推測的分支目標位址 152。儲存多工器226也接收儲存暫存器228的輸出,係 用以保持儲存的目標位址284之値。儲存多工器226係由 控制邏輯222所產生的控制訊號276來控制。 微處理器1〇〇也包括旗標暫存器232。每當涵蓋的 BTAC 216的分支指令延後時,控制邏輯222會將旗標暫 存器232設定成真値。也就是,旗標暫存器232係表示儲 存暫存器228目前所儲存之用於涵蓋跨越二條快取線之分 支指令的推測的分支目標位址152。 現在參照第4圖,其繪示的是根據本發明第2圖中之 分支控制裝置之運作的流程圖。在第4圖之接下來的敘述 中,有關於快取線A的提取位址之提取位址A係至少包 含分支指令的第一部份,如第3圖的快取線A 302。有關 25 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) -------.1 -- (請先閲讀背面之注意事項再填寫本頁) 訂 經濟部中央標準局負工消費合作社印袈 564369 8418twf.doc/012 A 7 _B7___ 五、發明説明(>)) 於快取線B的提取位址之提取位址B係包含涵蓋的分支指 令的第二部份,如第3圖的快取線B 304。有關於快取線 的快取線T係包含分支指令之一個或更多的目標指令,係 由分支指令的目標位址來選擇。爲淸楚及簡化起見,第4 圖的流程圖假設快取線A及快取線T都擊入第2圖中的指 令快取記憶體202。第4圖的流程圖具體說明出當快取線 B擊入指令快取記憶體202時的運作及具體說明出當快取 線B沒有擊入指令快取記憶體202時的運作。流程從方塊 402開始。 在方塊4〇2,第2圖中的多工器218會將如提取位址 162的送至第2圖中的指令快取記億體202及BTAC 216。 在通常的情況中,程式的流程會循序地執行,因此多工器 218會選擇第2圖中的下個循序提取位址262當做提取位 址A。流程會從方塊402到方塊404執行。 在方塊404,指令快取記憶體202係回應於在步驟402 期間之所使用的提取位址A,而送出第2圖中之資料匯流 排242上的線A。線A至少包含分支指令的第一部份,並 且提取位址A係於BTAC 216中被快取。是否快取線A包 含全部或部分的分支指令將取決於底下所述的判斷方塊 408。BTAC 216係回應提取位址A,而送出用於快取分支 指令之第1圖中的推測的分支目標位址152。流程會從方 塊404到方塊406執行。 在方塊406,在步驟404期間之由BTAC 216所送出 的推測的分支目標位址152係儲存於第2圖中的儲存暫存 26 _本紙張尺度適用中國國家榡隼(CNS ) A4規格(210X297公釐) " (請先閲讀背面之注意事項再填寫本頁)
、1T I# 經濟部中央梂準局貝工消费合作社印製 564369 8418twf.doc/012 A 7 _B7___ 五、發明説明(〆) 器228。因爲BTAC 216的擊中已發生(如第2圖的HIT訊 號所表示),控制邏輯222會控制第2圖中的儲存多工器 226,而選擇來自BTAC 216的推測的分支目標位址152, 並儲存於儲存暫存器228中。在將推測的分支目標位址152 存入儲存暫存器228後,控制邏輯222會立即將旗標暫存 器232設定成真値。流程會從方塊406到判斷方塊408執 行。 在判斷方塊408,第2圖中的控制邏輯222會決定出 是否分支指令涵蓋超過快取線A,也就是跨越二條快取 線。特別是,控制邏輯222會檢查WRAP訊號,以決定出 是否其爲真値。如果不是,則分支指令係完全包含於快取 線A中,並且會執行方塊412的流程。否則,分支指令的 第一部份會包含於快取線A中,而分支指令的第二部份會 包含於快取線B中,並且會執行方塊428的流程。 在方塊412,在步驟404期間之由BTAC 216所送出 的推測的分支目標位址152會被多工器218選擇到,並且 當做提取位址162,而送到指令快取記憶體202。如果流 程到達方塊412,則BTAC 216分支指令不是涵蓋的分支 指令。因此,在提取位址A之後會使用到推測的分支目標 位址152,這是因爲將提取位址B送至指令快取記憶體202 是不正確的,以及因爲全部的分支指令係包含於快取線A 中。流程會從方塊412到方塊414執行。 在方塊414,快取線A係儲存於指令緩衝器142中, 流程會從方塊414到方塊416執行。 27 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) -------,—-- (請先閲讀背面之注意事項再填寫本頁) -訂 564369 8418twf.doc/012 A7 B7 五、發明説明(vf ) 在方塊416,指令快取記憶體202會送出快取線T, 其包含分支指令的目標指令,指令快取記憶體202會回應 在步驟412期間之用於指令快取記憶體202的推測的分支 目標位址152,而送出快取線T。流程會從方塊416到判 斷方塊418執行。 在判斷方塊418,控制邏輯222會決定出是否指令緩 衝器142爲佔滿。特別是,控制邏輯222會檢查由指令緩 衝器142所產生之第2圖中的FULL訊號246的値,以知 道是否其爲正。如果不是,會執行方塊422的流程。否則, 會執行方塊424的流程。 在方塊422,快取線T係儲存於指令緩衝器142中。 此時,分支指令及其目標指令會儲存於指令緩衝器142中, 以使得它們可經由第2圖中的指令格式化邏輯214來格式 化。在將快取線T存入指令緩衝器142後,控制邏輯222 會立即將旗標暫存器232設定成僞(false)値。如果分支指 令爲非涵蓋的分支,也就是如果執行的流程爲從判斷方塊 408到方塊412,則指令緩衝器142會包含含有全部分支 指令的快取線A,以及含有目標指令的快取線T。然而, 如果分支指令爲涵蓋的分支,也就是如果執行的流程爲從 判斷方塊408到方塊428,則指令緩衝器142將包含含有 分支指令的第一部份之快取線A、含有分支指令的第二部 份之快取線B、以及含有目標指令之快取線T,如底下所 述。流程會在方塊422結束。 在方塊424,控制邏輯222會等待指令緩衝器I42變 28 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) --------.丨-- (請先閲讀背面之注意事項再填寫本頁) 、tr- 經濟部中央標準局員工消費合作社印裝 經濟部中央標準局貝工消費合作社印製 564369 8418twf.doc/012 Β7 五、發明説明ο) 成未佔滿。也就是,控制邏輯222會檢查FULL訊號246, 直到其變成僞的。當控制邏輯222正等待FULL訊號246 變成僞時,儲存的目標位址284會繼續保持於儲存暫存器 228中。流程會從方塊424到方塊426執行。 在方塊426,多工器218會選擇由儲存暫存器228所 送出的儲存的目標位址284及使用儲存的目標位址284當 做提取位址162,而送到指令快取記憶體202。儲存的目 標位址284係儲存於在步驟406期間之儲存暫存器228中。 如果從底下所述的方塊454到達方塊426的流程,則BTAC 216分支指令爲涵蓋的分支指令。在此情況中,在提取位 址B之後,會使用到推測的分支目標位址152,以使得在 指令緩衝器142中所儲存的全部分支指令會優先於在指令 緩衝器142中所儲存之快取線T中的分支目標指令。流程 會從方塊426到方塊416執行。 在方塊428,快取線A係儲存於指令緩衝器142中。 在此情況中,快取線A只包含涵蓋的分支指令的第一部 份,而沒有包含全部分支指令。流程會從方塊428到方塊 432執行。 在方塊432,多工器218會選擇由第2圖中的增加器 224所送出的下個循序提取位址262,其將爲提取位址B, 以及使用提取位址B當做提取位址162,而送至指令快取 記憶體202。爲了獲得快取線B,使用提取位址B是必須 的,其包含涵蓋的分支指令的第二部分,以使得分支指令 的全部指令位元組都可儲存於用於解碼的指令緩衝器中。 29 本紙張尺度適用中國國家標準(CNS ) A4規格(2!0X297公釐) ' (請先閲讀背面之注意事項再填寫本頁) 訂 經濟部中央標準局負工消費合作社印製 564369 8418twf.doc/012 A 7 B7 五、發明说明(〕) 流程會從方塊432到判斷方塊434執行。 在判斷方塊434,第2圖中的控制邏輯222及BIU 206 會決定是否提取位址B會擊入指令快取記億體202。特別 是,控制邏輯222及BIU 206會檢查經由指令快取記憶體 202所產生之第2圖中的MISS訊號204,以決定是否爲真 値。如果不是,會執行方塊436的流程。否則,會執行方 塊444的流程。 在方塊436,不是BIU 206自記憶體提取的快取線B, 就是由第二階快取記憶體送出快取線B。當快取線B到達 第2圖的回應緩衝器208時,回應緩衝器208會對RBRDY 訊號238產生真値,以通知控制邏輯222,快取線B爲可 用的。流程會從方塊436到方塊438執行。 在方塊438,來自回應緩衝器208的快取線B係儲存 於指令緩衝器142中。流程會從方塊438到判斷方塊442 執行。 在方塊442,多工器218會選擇由增加器224所送出 的下個循序提取位址262,以及使用下個循序提取位址262 當做提取位址162,而送至指令快取記憶體202。也就是, 當快取線B不存在於指令快取記憶體202中時,此狀況視 爲BTAC 216的誤失。當第1圖中的E階段126稍後決定 分支値令要執行時,測誤的預測會經由分支成可分辨的目 標位址156而修正。第4圖的實施例比第8圖的實施例(底 下所述之處理涵蓋的BTAC 216分支的情況,其第二快取 線會於指令快取記憶體202中誤失)具有需要較少控制邏 30 (請先閲讀背面之注意事項再填寫本頁) 訂 本紙張尺度適用中國國家標隼(CNS ) A4現格(210X297公釐〉 564369 8418twf.doc/012 八7 _ B7_ 五、發明説明(4) 輯的優點。在微處理器100中,分支指令會涵蓋及產生對 於其第二部分之指令快取記憶體202的誤失的可能性非常 的低。因爲分支指令所需的複雜度較小,所以第4圖的實 施例是有助益的。流程會在方塊422結束。 在方塊444,指令快取記憶體202會回應在步驟412 期間所使用的提取位址B,而送出資料匯流排242上的快 取線B。快取線B包含分支指令的第二部分。流程會從方 塊444到判斷方塊446執行。 在判斷方塊446,控制邏輯222經由檢査FULL訊號 246的値是否爲真,而決定出是否指令緩衝器142爲佔滿。 也就是,控制邏輯222會決定在步驟428期間之儲存至指 令緩衝器142的快取線A是否會塡滿指令緩衝器142。如 果是,會執行方塊448的流程。如果不是,會執行方塊454 的流程。 在方塊448,控制邏輯222會等待指令緩衝器142變 成沒有佔滿。也就是,控制邏輯222會檢查FULL訊號246, 直到其變成僞。流程會從方塊448到方塊452執行。 經濟部中央橾準局貝工消費合作社印裝 (請先閲讀背面之注意事項再填寫本頁) 在方塊452,多工器218會選擇由第2圖中的提取位 址暫存器組282所送出之第2圖中的備份提取位址274, 其會當做提取位址B,並且使用提取位址B當做提取位址 162,而送至指令快取記憶體202。爲了獲得快取線B,使 用提取位址B是必需的,其包含涵蓋的分支指令的第二部 分。從方塊448到方塊452所執行的流程是用來決定是否 所使用的備份提取位址B會擊入指令快取記憶體202。 31 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 經濟部中央標準局貝工消費合作社印装 564369 8418twf.doc/012 ρ^η _B7 ___ 五、發明説明(q ) 在方d 454,快取線B係儲存於指令緩衝器M2中。 快取線B包含涵蓋的分支指令的第二部分。從方塊454到 方塊426所執行的流程是用以將得到的快取線T(其包含分 支目標指令)送至指令緩衝器142。 由第4圖的流程圖可知,本發明對於只將全部涵蓋 的BTAC 216分支視爲BTAC 216誤失所產生的BTAC 216 分支問題,提供一個改良方案。涵蓋BTAC 216分支的機 率是不可以忽略的,並且本發明提供一種分支的裝置,而 不是沒有分支且必須修正的裝置,因此可省去許多時脈週 期。此裝置特別對於階段的數目相當大之微處理器100有 幫助。 現在總括參照第5、6、7、以及9圖,其繪示的是根 據本發明之第2圖中的分支控制裝置之運作例子的時序 圖。第5、6、以及7圖顯示出係依照第4圖的流程圖來運 作,而第9圖顯示出係依照底下所述之第8圖之變化實施 例的流程圖來運作。時序圖包括具有7列及33行之記憶 體細胞(cell)的矩陣。第一行,由第二列開始,係分別表示 C、I、B、U、V、以及F,相對應於第1圖中的C階段1〇1、 I階段102、B階段104、U階段106、V階段1〇8、以及ρ 階段112。第一列,由第二行開始’係分別表示從1到3 2, 相對應於微處理器100之32個時脈週期。 示 在矩陣中的每個記憶體細胞係具體表示出在指定的 時脈週期期間之指定階段的內容。爲淸楚及簡化起見,每 32 本紙張尺度適用巾國國CNS )八视^ ( 21〇><297公瘦—j ' (請先聞讀背面之注意Ϋ項再填寫本頁) 訂 i# 564369 8418twf.doc/012 A7 五、發明説明(P ) 個記憶體細胞在此以(S,c)來表示,其中S爲階段,以及C 爲時脈週期。例如,記憶體細胞(v,5)係表示在時脈週期5 期間之V階段108的內容。記憶體細胞不是空的,就是具 有A、B、C、或T四個字母中的一個。字母A係標示第4 圖中之不是提取位址A,就是快取線A,或者是兩者,係 取決於階段的內容。同樣地,字母B係標示第4圖中之不 是提取位址B,就是快取線B,或者是兩者,以及字母T 係標示第4圖中之不是分支指令的BTAC 216目標位址, 就是快取線T,或者是兩者。字母C係標示不是在提取位 址B之後的下個循序提取位址,就是在快取線B之後的下 個循序快取線,或者是兩者。例如,在第5圖中,相對應 於在時脈週期2期間之I階段102的內容之記憶體細胞(以 (1,2)表示)包含A,係指出在時脈週期2期間之I階段102 會接收到提取位址A。也就是,使用位址A當做第1圖中 之提取位址162,而送至如關於第4圖之方塊402所述之 第2圖中的指令快取記憶體202。 經濟部中央標準局貝工消費合作社印製 (請先閲讀背面之注意事項再填窝本頁) 除此之外,在矩陣之下,所顯示的是在32個時脈週期 中的每一個期間之WRAP訊號286、FULL訊號246、MISS 訊號204、以及RBRDY訊號238。爲了說明的目的,會選 擇一種極性常規,而使得如果訊號爲低時,則此値爲僞。 例如,當FULL訊號246爲低時,此値爲僞,也就是第1 圖中的指令緩衝器142爲沒有佔滿的;反之,當FULL訊 號246爲高時,此値爲真,也就是第1圖中的指令緩衝器 142爲佔滿的。然而,此發明可使用任一種極性常規。而 33 本紙張尺度適用中國國家榡準(CNS ) A4規格(210X297公釐) 經濟部中央橾準局負工消费合作社印裝 564369 8418twf.doc/012 ^7 _B7____ 五、發明説明) 至於方塊號碼(如方塊412),係用於第4圖之流程圖的方
Lrtt 塊。 現在參考第5圖,其繪示的是,依照第4圖的流程 圖之在非涵蓋的BTAC 216分支的情況中之第1圖中的微 處理器1〇〇之運作的例子的時序圖,其中當快取線T開始 準備好存入指令緩衝器142時,指令緩衝器142爲佔滿。 因此,在第5圖之從頭到尾的時脈週期中,WRAP訊號286、 MISS訊號204、以及RBRDY訊號238都是僞的,以及在 時脈週期的一部份期間(特別是從6到10的時脈週期), FULL訊號246爲真。 在記憶體細胞(C,l)中,第2圖中的多工器218會選 擇提取位址A當做提取位址162。在記憶體細胞(1,2)中,I 階段102會依照方塊402,而將提取位址A送到指令快取 記憶體202及BTAC 216。在記憶體細胞(B,3)中,指令快 取記憶體202會選擇到在其第二存取週期期間之快取線 A。在記憶體細胞(U,4)中,指令快取記憶體202會依照方 塊404,而送出快取線A。 在記憶體細胞(V,5)中,會依照方塊414,而將快取線 A寫到指令緩衝器142。在第5圖的例子中,將快取線A 存於指令緩衝器142中,會使得指令緩衝器142變成佔滿。 因此,在時脈6的期間,FULL訊號246爲真。在第.5圖 的例子中,FULL訊號246直到時脈11都保持爲真。 在記憶體細胞(C,4)中,多工器218會選擇在方塊404 期間之由BTAC 216所送出的推測的分支目標位址152, 34 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐)~' (請先閲讀背面之注意事項再填寫本頁) 訂 564369 8418twf.doc/012 _ B7_ 五、發明説明 來當做提取位址162。在記憶體細胞(I,5)中,因爲此例中 的WRAP訊號286是僞的,所以會依照方塊412,而將推 測的分支目標位址152送到指令快取記憶體202。 在從(V,6)到(V,ll)的記憶體細胞中,快取線A會保持 於指令緩衝器I42中且不會送到指令格式化邏輯214,這 是因爲指令格式化邏輯214正在格式化在快取線A之前的 其他指令。會使指令緩衝器M2保持佔滿持續數個時脈週 期的一個例子是,在此有需要多個時脈週期才能執行的一 個或更多的指令(如浮點除法)於在管線中被執行。這些指 令會使在執行階段126之上之微處理器100中的階段暫 停。 經濟部中央梯準局貝工消费合作社印繁 (請先閲讀背面之注意事項再填寫本頁) 在1己憶體細胞(B,6)中,指令快取記憶體202在其第 二存取週期期間,會選擇到快取線T。在記憶體細胞(U,7) 中,指令快取記憶體202會依照方塊416,而送出快取線 T。然而,在時脈週期7的期間,指令緩衝器142爲佔滿, 如在方塊418期間所決定的。因此,在時脈週期8的期 間,因爲指令緩衝器142不能接受快取線T(這是因爲指令 緩衝器142爲佔滿),所以快取線Τ會漏失。第2圖中的 控制邏輯222會依照方塊424而等待,直到FULL訊號246 是僞的。 在記憶體細胞(c,ll)中,多工器218會選擇儲存暫存 器228所送出之儲存的目標位址284,來當做提取位址 162,這是因爲控制邏輯222已確定在時脈週期11中,此 時的FULL訊號246是僞的。在記憶體細胞(1,12)中,儲存 35 $張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 經濟部中央標準局員工消费合作社印製 564369 8418twf.doc/012 _B7__ 五、發明説明(Η ) 的目標位址284會依照方塊426,而送到指令快取記億體 202。在記憶體細胞(B,13)中,指令快取記憶體202在其第 二存取週期期間,會選擇到快取線T。在記憶體細胞(U,14) 中,指令快取記憶體2〇2會依照方塊416,而送出快取線 T ° 在記憶體細胞(F,15)中,快取線A會送到用來格式化 分支指令的指令格式化邏輯214。在記憶體細胞(V,15)中, 會依照方塊422而將快取線T寫到指令緩衝器142,這是 因爲指令緩衝器142不再是佔滿,如在方塊418期間所決 定的。在記憶體細胞(F,16)中,快取線T會送到用來格式 化分支目標指令的指令格式化邏輯214。 現在參考第6圖,與第5圖相似,其繪示的是根據 本發明之依照第4圖的流程圖之第2圖中的分支控制裝置 之運作的第二個例子的時序圖。第6圖繪示的是依照第4 圖的流程圖之涵蓋的BTAC 216分支的情況中之第1圖中 的微處理器100之運作的例子的時序圖,其中包含於快取 線B中之分支指令的第二部分會誤失於指令快取記憶體 202中。因此,在第6圖之從頭到尾的時脈週期中,FULL 訊號246是僞的,以及在時脈週期的一部份期間(特別是 在各自的時脈週期4、5、以及24),WRAP訊號286、MISS 訊號204、以及RBRDY訊號238爲真。 記憶體細胞(C,l)、(I,2)、(B,3)、(U,4)、以及(V,5)係 相似於第5圖之相對應的記憶體細胞,係具有沿著微處王里 器1〇〇管線之較高的階段執行之提取位址Α及快取線Α。 36 ^7張尺度適用中國國家標準(〇^)八4規格(210父297公釐) ^ (請先閲讀背面之注意事項再填寫本頁) 訂 564369 8418twf.doc/012 A7 _B7___ 五、發明説明(作) 在時脈週期4的期間,WRAP訊號286爲真,係指出表示 分支指令的BTAC 216會涵蓋跨越快取線A及B。在記憶 體細胞(F,6)中,快取線A會送到F階段112執行。 在記憶體細胞(C,2)中,多工器218會選擇下個循序 提取位址262(其爲提取位址B)當做提取位址162,這是因 爲控制邏輯222會依照方塊408,而確定分支指令爲涵蓋 的BTAC 216分支。在記憶體細胞(1,3)中,因爲此例中的 WRAP訊號286爲真,所以會依照方塊432,而將提取位 址B送到指令快取記憶體202。在記憶體細胞(B,4)中,指 令快取記憶體202在其第二存取週期期間,會選擇到快取 線B。然而,在時脈5的期間,指令快取記憶體202會決 定提取位址B爲誤失,以及相對應的使MISS訊號204致 能。因此,指令快取記憶體202不能送出快取線B。 經濟部中央標準局員工消费合作社印褽 (請先閲讀背面之注意事項再填寫本頁) 在從時脈週期7到23的期間,微處理器100會依照 方塊436,而等待自記憶體提取快取線B,並送至回應緩 衝器208。在時脈24的期間,當快取線B到達時,第2 圖中的回應緩衝器208會使RBRDY訊號致能。在記憶體 細胞(V,24)中,來自回應緩衝器208的快取線B會依照方 塊438,而儲存到指令緩衝器142。在記憶體細胞(F,25)中, 快取線B會送到F階段112執行。 在記憶體細胞(C,25)中,多工器218會依照方塊442, 而選擇下個循序提取位址262(其爲提取位址C)當做提取 位址162,這是因爲控制邏輯222已確定快取線B誤失於 指令快取記憶體202中。因此,微處理器100係藉由不要 37 ^紙張尺度適用中國國家標率(CNS ) A4規格(210><297公董) 經濟部中央標準局貝工消費合作社印製 564369 8418twf.doc/012 A7 ___B7___ 五、發明説明 分支成BTAC 216所送出的推測的分支目標位址152,而 取代爲所提取的下個循序位址,而將第6圖中的情況視爲 BTAC 216誤失。在記憶體細胞(1,26)中,I階段102會將 提取位址C送到指令快取記憶體202。在記憶體細胞(B,27) 中,指令快取記憶體202在其第二存取週期期間,會選擇 到快取線C。在記億體細胞(U,28)中,指令快取記憶體202 會送出快取線C。在記憶體細胞(V,29)中,會將快取線C 寫入指令緩衝器142。在記憶體細胞(F,3〇)中,快取線C 會送到F階段112執行。 現在參考第7圖,與第5圖相似,其繪示的是根據 本發明之依照第4圖的流程圖之第2圖中的分支控制裝置 之運作的第三個例子的時序圖。第7圖繪示的是依照第4 圖的流程圖之涵蓋的BTAC 216分支的情況中之第1圖中 的微處理器100之運作的例子的時序圖,其中快取線A會 塡滿指令緩衝器142。因此,在第7圖之從頭到尾的時脈 週期中,MISS訊號204及RBRDY訊號238是僞的,以 及在時脈週期的一部份期間,WRAP訊號286及FULL訊 號246爲真。特別是,在時脈週期4的期間,WRAP訊號 286爲真,以及在時脈週期從4到6的期間,FULL訊號2M 爲真。
記憶體細胞((:,1)、(1,2)、(3,3)、(11,4)、(¥,5)到(乂,14)、 以及(F,15)係相似於第5圖之相對應的記憶體細胞,係具 有沿著微處理器100管線之較高的階段到F階段112執行 之提取位址A及快取線A。在時脈週期4的期間,WRAP 38 本紙張尺度適用中國國家標隼(CNS ) A4規格(210X297公釐Γ (請先閲讀背面之注意事項再填寫本頁) 訂 564369 8418twf.doc/012 A 7 B7 五、發明説明(^) 訊號286爲真,係指出表示分支指令的BTAC 216會涵蓋 跨越快取線A及B。 記憶體細胞(C,2)、(1,3)、以及(B,4)係相似於第6圖 之相對應的記憶體細胞,係具有沿著微處理器1〇〇管線之 C、I、以及B階段執行之提取位址B及快取線B。在記憶 體細胞(U,5)中,因爲提取位址B擊入指令快取記憶體202, 所以指令快取記憶體2〇2會依照方塊444而送出快取線B。 然而,在時脈週期6的期間,因爲快取線A已塡滿 指令緩衝器142,所以指令緩衝器I42會使FULL訊號246 致能。因此,控制邏輯222會依照方塊448,而等待FULL 訊號246變成僞,其發生於時脈週期11中。 經濟部中央橾準局貝工消費合作社印褽 (請先閲讀背面之注意事項再填寫本頁) 在記憶體細胞(C,ll)中,多工器218會回應FULL訊 號246變成僞,而選擇來自提取位址暫存器組282的備分 提取位址274(其爲提取位址B)。在記憶體細胞(1,12)中, 會依照方塊452,而將提取位址B送到指令快取記憶體 202。在記憶體細胞(B,13)中,指令快取記憶體202在其第 二存取週期期間,會選擇到快取線B。在記憶體細胞(U,14) 中,因爲提取位址B擊入指令快取記憶體202,所以指令 快取記憶體202會依照方塊444而送出快取線B。在記憶 體細胞(V,15)中,因爲指令緩衝器142沒有佔滿,所以會 依照方塊454而將快取線B寫入指令緩衝器142。在記憶 體細胞(F,16)中,快取線B會送到F階段112執行。 在記憶體細胞(C,12)中,多工器218會選擇來自儲存 暫存器228的儲存的目標位址28心在記憶體細胞(1,13)中, 39 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) 經濟部中央標準局貝工消費合作社印装 564369 8418twf.doc/012 _B7_ 五、發明説明(θ ) 會依照方塊426,而將儲存的目標位址284送到指令快取 記憶體202。在記億體細胞(B,l4)中,指令快取記憶體202 在其第二存取週期期間,會選擇到快取線B。在記憶體細 胞(U,15)中,指令快取記憶體202會依照方塊416而送出 快取線T。在記憶體細胞(V,16)中,因爲指令緩衝器142 沒有佔滿,所以會依照方塊422而將快取線T寫入指令緩 衝器142。在記憶體細胞(F,17)中,快取線T會送到F階 段112執行。 現在參照第8圖,其繪示的是根據本發明變化的實施 例之第2圖中之分支控制裝置之運作的流程圖。除了第8 圖沒有包括方塊438及442之外,第8圖的流程圖與第4 圖的流程圖是相同的。而取代爲從方塊436到判斷方塊446 的執行流程。也就是,第8圖的實施例會處理此狀況,而 不是將指令快取記憶體202中之提取位址B的誤失視爲 BTAC 216誤失。在指令緩衝器142不再是佔滿之後,此 實施例會經由備份至提取位址B而處理此狀況,以及接下 來會使用儲存的目標位址284,以獲得快取線T,如參照 第9圖所繪示。 現在參照第9圖,與第6圖相似,其繪示的是根據本 發明第8圖的流程圖之第2圖中之分支控制裝置之運作的 例子之流程圖。第9圖繪示的是依照第8圖的流程圖之涵 蓋的BTAC 216分支的情況中之第1圖中的微處理器100 之運作的例子,其中包含分支指令的第二部分的快取線B 會誤失於指令快取記憶體202中,並且快取線A會塡滿指 40 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) -------:·1!·裝-------^------0 ·- (請先閲讀背面之注$項再填寫本頁)____ 經濟部中央標準局貝工消費合作社印裝 564369 8418twf.doc/012 \η _B7_^_ 五、發明説明() 令緩衝器142。除了在第9圖中之時脈週期從6到25的期 間,FULL訊號246爲真外,第9圖中之時脈週期從1到 23與相對應之第6圖中的那些相同。. 當在時脈週期24的期間,快取線B到達回應緩衝器 208時,指令緩衝器142爲佔滿,如根據方塊446所決定。 因此,不會將快取線B寫到指令緩衝器142,而是寫到指 令快取記憶體202。 在此例中,在時脈週期26的期間,FULL訊號246 會變成僞,如在方塊448的期間所決定。因此,在記憶體 細胞(C,26)中,多工器218會選擇備份提取位址274當做 提取位址162。在記憶體細胞(1,27)中,會依照方塊452而 將備份提取位址274送到指令快取記憶體202。在記憶體 細胞(B,28)中,指令快取記憶體202在其第二存取週期期 間,會選擇到快取線B。在記憶體細胞(U,29)中,指令快 取記憶體202會依照方塊444而送出快取線B。在時脈週 期25的期間,來自回應緩衝器208的快取線B會先寫入 指令快取記憶體202。在記憶體細胞(V,30)中,因爲指令 緩衝器142沒有佔滿,所以會依照方塊454而將快取線B 寫入指令緩衝器I42。在記憶體細胞(F,31)中,快取線B 會送到F階段112執行。 在記憶體細胞(C,27)中,多工器218會選擇儲存的 目標位址284當做提取位址162。在記憶體細胞(1,28)中, 會依照方塊426而將儲存的目標位址284送到指令快取記 憶體2〇2。在記憶體細胞(B,29)中,指令快取記憶體202 41 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) (請先閲讀背面之注意事項再填寫本頁)
8418twf.doc/012 A7 B7_______ 五、發明説明(1) (請先閲讀背面之注意事項再填寫本頁) 在其第二存取週期期間,會選擇到快取線T。在記憶體細 胞(u,30)中,指令快取記憶體202會依照方塊416而送出 快取線T。在記憶體細胞(V,31)中,因爲指令緩衝器142 沒有佔滿,所以會依照方塊422而將快取線τ寫入指令緩 衝器142。在記憶體細胞(F,32)中,快取線Β會送到F階 段112執行。 如自第8,9圖可知,變化的實施例不會帶來具有相 關於修正錯誤預測的使用分支之額外的時脈週期’也就是 因爲其涵蓋及包含有分支的第二部分之第二快取線會誤失 於指令快取記憶體202中,所以BTAC216擊中會將BTAC 216視爲誤失。更確切的說,如第9圖可知,在提取位址 B之後之最早的可用時脈週期,會將BTAC 216之推測的 分支目標位址152送到指令快取記憶體202。 雖然本發明及其目的、特徵、以及優點已詳細敘述’ 但是可經由本發明所包含的其他實施例。例如,在管線中 之階段的數目的安排可以變化。BTAC、指令快取記憶體、 或指令緩衝器的大小及結構可以變化。快取線的大小可以 變化。 經濟部中央標準局負工消费合作社印裝 雖然本發明已以較佳實施例揭露於上,然其並非用以 限定本發明,任何熟習此技藝者,在不脫離本發明之精神 和範圍內,當可作各種之更動與潤飾,因此本發明之保護 箪B圍當視後附之申請專利範圍所介疋者爲準。 42 本紙張尺度適用中國國家榡隼(CNS ) A4規格(210X297公釐)
Claims (1)
- 經濟部中央標準局貝工消费合作社印製 564369 8418twf.doc/012 B8 C8 D8 六、申請專利範圍 六.申請專利範圍 1. 一種在具有指令快取記憶體之微處理器中的分支 控制裝置,耦接至一位址匯流排,用以將複數個快取線送 至一指令緩衝器,該裝置包括: 一分支指令之一目標位址,該目標位址係由一分支 目標位址快取記憶體所送出; 一涵蓋訊號,係由該分支目標位址快取記憶體所送 出,用以表示該分支指令是否涵蓋跨越一第一快取線及一 第二快取線;以及 一位址暫存器,耦接至該分支目標位址快取記憶體, 用以儲存該目標位址; 其中當該涵蓋訊號表示該分支指令涵蓋跨越該第一 快取線及該第二快取線時,該位址暫存器會將該位址匯流 排上的該目標位址送到該指令快取記憶體,用以選擇一第 三快取線,該第三快取線係包含該分支指令之一目標指 令。 2. 如申請專利範圍第1項所述之在具有指令快取記 憶體之微處理器中的分支控制裝置,其中在用於該第二快 取線的一提取位址送到該位址匯流排上之後,該位址暫存 器會送出該位址匯流排上的該目標指令。 3. 如申請專利範圍第2項所述之在具有指令快取記 憶體之微處理器中的分支控制裝置,其中該分支目標位址 快取記憶體係耦接至該位址匯流排,其中該分支目標位址 快取記憶體係回應於該位址匯流排上所送出的一提取位 43 本紙張尺度適用中國國家標準(CNS ) A4規格(210X297公釐) I 1 —ϋ Hi s -,-4111 I— Ml n n in 11 1^1 —.1 i i^i t (請先閲讀背面之注意事項再填寫本頁) 564369 A8 8418twf.doc/012 B8 C8 D8 六、申請專利範圍 址,而送出該目標位址。 4. 如申請專利範圍第3項所述之在具有指令快取記 憶體之微處理器中的分支控制裝置’其中該分支目標位址 快取記憶體係回應於該第一快取線的一提取位址,而送出 該目標位址。 5. 如申請專利範圍第4項所述之在具有指令快取記 憶體之微處理器中的分支控制裝置’其中該第一快取線包 含該分支指令的一第一部份。 6. 如申請專利範圍第2項所述之在具有指令快取記 憶體之微處理器中的分支控制裝置’更包括: 一佔滿訊號,耦接至該指令緩衝器,用以表示該指 令緩衝器是否佔滿。 7. 如申請專利範圍第6項所述之在具有指令快取記 憶體之微處理器中的分支控制裝置’其中只有當該佔滿訊 號表示該指令緩衝器不爲佔滿時,該位址暫存器才會將該 目標位址送到該指令快取記憶體。 8. 如申請專利範圍第6項所述之在具有指令快取記 憶體之微處理器中的分支控制裝置,更包括: 經濟部中央標準局員工消費合作社印裝 (請先閲讀背面之注$項再填寫本頁) 一備份暫存器,耦接至該位址匯流排,當該指令快 取記憶體送出儲存於該指令緩衝器中的該第二快取線時, 如果該佔滿訊號表示該指令緩衝器爲佔滿,係用以儲存該 第二快取線的該提取位址。 9. 如申請專利範圍第8項所述之在具有指令快取記 憶體之微處理器中的分支控制裝置,其中如果該佔滿訊號 44 本紙張尺度適用中國國家標準(CNS ) A4規格(210 X 297公釐) 564369 8418twf.doc/012 B8 C8 D8 六、申請專利範圍 表不g亥指令緩衝益不再爲佔滿,該備份暫存器會送出該位 址匯流排上之該第二快取線的該提取位址。 (請先閲讀背面之注意事項再填寫本頁) 10·如申請專利範圍第1項所述之在具有指令快取記 憶體之微處理器中的分支控制裝置,其中當該第二快取線 的一提取位址誤失於該指令快取記憶體中時,在該第二快 取線儲存於該指令緩衝器之後,該位址暫存器會將該目標 位址送到該指令快取記憶體。 11·如申請專利範圍第1項所述之在具有指令快取記 憶體之微處理器中的分支控制裝置,其中當該第二快取線 的一提取位址擊入該指令快取記憶體中時,該位址暫存器 會將該目標位址送到該指令快取記憶體。 12. —種具有管線的微處理器,包括: 一指令快取記憶體,耦接至一位址匯流排,所組成 係用以接收用於選擇一第一快取線之一第一提取位址; 一分支目標位址快取記憶體,耦接至該位址匯流排, 用以送出用於表示一分支指令是否涵蓋超過骸第一快取線 之一涵蓋指標; 經濟部中央標準局貝工消費合作社印製 一位址暫存器,耦接至該分支目標位址快取記憶體, 用以儲存該分支指令之一目標位址,由該分支目標位址快 取記憶體所送出的該目標位址; 一多工器,耦接至該分支目標位址快取記憶體,當 該涵蓋指標爲真時,係用以選擇用於該位址匯流排上的一 第二提取位址,該第二提取位址係選擇包含涵蓋超過該第 一快取線之該分支指令的一部份之一第二快取線; 45 本紙張尺度適用中國國家標準(CNS ) A4規格(210 X 297公釐〉 564369 A8 8418twfd〇c/012 cl D8 _ 六、申請專利範圍 其中在選擇用於該位址匯流排上的該第二提取位址 之後,該多工器會自該位址暫存器選擇用於該位址匯流排 上的該目標位址。 13. 如申請專利範圍第12項所述之具有管線的微處理 器,其中該多工器在選擇該第一提取位址之後,會選擇該 第二提取位址。 14. 如申請專利範圍第12項所述之具有管線的微處理 器,其中該分支目標位址快取記憶體係回應於該位址匯流 排上所接收的該第一提取位址,而送出該目標位址。 15. 如申請專利範圍第14項所述之具有管線的微處理 器,其中該分支目標位址快取記憶體所送出的該目標位址 與該指令快取記憶體所送出的該第一快取線大體上爲同 時。 16. 如申請專利範圍第12項所述之具有管線的微處理 器,其中該第二提取位址係爲送至該第一提取位址的一下 個循序提取位址。 經濟部中央標準局貝工消費合作社印製 (請先閲讀背面之注$項再填寫本頁) 17. 如申請專利範圍第12項所述之具有管線的微處理 器,其中該多工器係選擇用於選擇該指令快取記憶體中的 一第三快取線之該目標位址,該第三快取線係包含該分支 指令的一目標指令。 !8·如申請專利範圍第Π項所述之具有管線的微處理 器,其中該多工器係選擇用以使該第一快取線、該第二快 取線及該第三快取線依序儲存於一指令緩衝器中之該第一 提取位址、該第二提取位址及該目標位址。 46 本紙張尺度適用中國國家標f ( CNS ) A4規格(210x297公ίΠ ~ ~ 564369 8418tWfd〇C/〇12 ?88 D8 _ 7T、申請專利範圍 19. 一種在微處理器中的分支控制裝置,包括: 一分支目標位址快取記憶體,用以快取複數個先前執 行的分支指令是否涵蓋跨越二條快取線的複數個指示; 一暫存器,耦接至該分支目標位址快取記憶體,用以 接收來自該分支目標位址快取記憶體之儲存於其中之該些 先前執行的分支指令中的一個之一目標位址;以及 一控制邏輯,耦接至該分支目標位址快取記憶體, .用以接收相對應於該些先前執行的分支指令中的該一之該 些指示中的一個; 其中當該些指示中的該一表示出該些先前執行的分 支指令中的該一涵蓋跨越二條快取線時,在提取含有該些 先前執行的分支指令中的該一之該二條快取線之後,該控 制邏輯會使該微處理器分支成該目標位址。 20. 如申請專利範圍第19項所述之在微處理器中的分 支控制裝置,其中所組成的該控制邏輯係用以自一指令快 取記憶體中提取含有該些先前執行的分支指令中的該一之 一部份的該二條快取線中的一第一條。 經濟部中央標準局貝工消費合作社印製 (請先閲讀背面之注意Ϋ項再填寫本頁) 21. 如申請專利範圍第20項所述之在微處理器中的分 支控制裝置,其中所組成的該控制邏輯係用以接收來自該 指令快取記憶體的一誤失指標。 22·如申請專利範圍第21項所述之在微處理器中的分 支控制裝置,其中當該誤失指標顯示出該二條快取線中的 一第二條正誤失於該指令快取記憶體時,所組成的該控制 邏輯係用以自一記憶體中,而不是自該指令快取記憶體 47 本紙張尺度適用中國國家標準(CNS〉A4規格(210 X 297公釐) 經濟部中央標準局貝工消費合作社印製 564369 A8 8418twf.doc/012 B8 C8 D8 六、申請專利範圍 中,提取含有該些先前執行的分支指令中的該一之一部份 的該二條快取線中的該第二條。 23·如申請專利範圍第22項所述之在微處理器中的分 支控制裝置,其中在該二條快取線中的該第二條,含有該 些先前執行的分支指令中的該一之一目標指令的一第三快 取線之後,所組成的該控制邏輯會自該指令快取記憶體中 提取該第三快取線。 24.如申請專利範圍第23項所述之在微處理器中的分 支控制裝置,其中自該指令快取記憶體中所提取的該第三 快取線係使用儲存於該暫存器中的該目標位址。 25· —種微處理器分支控制裝置,包括·· 一增加器,耦接至一指令快取記憶體位址匯流排, 用以送出該位址匯流排上的一第一提取位址,該第一提取 位址係選擇含有一分支指令的一第一部份之一第一快取 線; 一分支目標位址快取記憶體,耦接至該位址匯流排’ 用以回應於該第一提取位址,而送出該分支指令的一目標 位址; 一位址暫存器,耦接至該分支目標位址快取記憶體’ 當該分支目標位址快取記憶體表示該分支指令涵蓋超過該 第一快取線時,係用以儲存該目標位址; 其中該增加器會送出該位址匯流排上的一第二提取 位址,該第二提取位址係選擇含有該分支指令的一第二部 份之一第二快取線; 48 本紙張尺度適用中國國家標準(CNS ) A4規格(210 X 297公釐〉 I------1·«^ —---·--、tr------04 (請先閲讀背面之注$項再填寫本頁) 經濟部中央標準局貝工消费合作社印製 64369 8418twf.doc/〇12 gg C8 —___^^一 、申請專利範圍 其中該位址暫存器會送出該位址匯流排上的該目標 位址’該目標位址係選擇含有該分支指令的一目標指令之 一第三快取線。 26·如申請專利範圍第25項所述之微處理器分支控 制裝置,更包括: 一旗標暫存器,用以儲存該位址暫存器存有涵蓋超 過該第一快取線的該目標位址之一指示。 27·如申請專利範圍第26項所述之微處理器分支控 制裝置,其中當該旗標暫存器表示該位址暫存器存有涵蓋 超過該第一快取線的該目標位址時,以及當該第二提取位 址誤失於耦接至該位址匯流排的一指令快取記憶體中時, 該增加器會將一第三提取位址循序的送到該位址匯流排上 的該第二提取位址,以及該位址暫存器不會送出該位址匯 流排上的該目標位址。 28· —種具有指令快取記憶體的微處理器之執行方 法,該方法包括: 將一第一提取位址用於該指令快取記憶體,用以選 擇至少含有一分支指令的一部份之一第一快取線; 回應於該第一提取位址而送出該分支指令的一目標 位址; 決定該分支指令是否涵蓋超過該第一快取線; 當該分支指令涵蓋超過該第一快取線時,將該目標 位址儲存於一暫存器中; 當該分支指令涵蓋超過該第一快取線時,將一第二 49 本紙張尺度適用中國國家標準(CNS ) A4規格(210X29*7公釐) (請先閲讀背面之注意事項再填寫本頁) 訂_ 564369 8418twf.doc/012 gg C8 ____ D8 六、申請專利範圍 提取位址用於該指令快取記憶體,用以選擇含有該分支指 令的一其餘部分之一第二快取線; 將來自該暫存器的該目標位址送到該指令快取記憶 體,用以選擇含有該分支指令的一目標指令之一第三快取 線。 29·如申請專利範圍第28項所述之具有指令快取記憶 體的微處理器之執行方法,更包括: 在執行該分支指令之後及在該使用該第一提取位址 之前,會快取該分支指令是否涵蓋超過該第一快取線的一 指示。 30. 如申請專利範圍第29項所述之具有指令快取記 憶體的微處理器之執行方法,其中該決定該分支指令是否 涵蓋超過該第一快取線包括檢查該指示。 31. 如申請專利範圍第28項所述之具有指令快取記 憶體的微處理器之執行方法,更包括: 在先前的執行該分支指令之後及該回應於該第一提 取位址而送出該分支指令的該目標位址之前,會快取該分 支指令的該目標位址。 經濟部中央標準局貝工消费合作社印製 -I— n - - ·ϋ ϋ— in «11 (請先閲讀背面之注意事項再填寫本頁) 32·如申請專利範圍第28項所述之具有指令快取記 憶體的微處理器之執行方法,更包括: 決定該第二提取位址是否誤失於該指令快取記憶體 中。 33·如申請專利範圍第32項所述之具有指令快取記 憶體的微處理器之執行方法,更包括: 50 本紙張尺度適用中國國家標準(CNS〉A4規格(210 X ;297公釐〉 564369 8418twf.doc/012 A8 B8 C8 D8 六、申請專利範圍 當該第二提取位址誤失於該指令快取記憶體中時, 會自一記憶體中,而不是自該指令快取記憶體中,獲得該 第二快取線。 (請先閲讀背面之注意事項再填寫本頁) 34.如申請專利範圍第33項所述之具有指令快取記 憶體的微處理器之執行方法,其中在該自一記憶體中,而 不是自該指令快取記憶體中,獲得該第二快取線之後,會 執行該將來自該暫存器的該目標位址送到該指令快取記憶 •體。 35·如申請專利範圍第28項所述之具有指令快取記 憶體的微處理器之執行方法,更包括: 儲存該第一快取線、該第二快取線及該第三快取線 於一指令緩衝器中。 36·如申請專利範圍第35項所述之具有指令快取記 憶體的微處理器之執行方法,.其中該儲存該第一快取線、 該第二快取線及該第三快取線於該指令緩衝器中包括依序 儲存該第一快取線、該第二快取線及該第三快取線於該指 令緩衝器中。 經濟部中央標準局負工消费合作社印製 51 本紙張尺度適用中國國家榡準(CNS ) A4規格(21〇Χ297公釐)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/906,381 US7203824B2 (en) | 2001-07-03 | 2001-07-16 | Apparatus and method for handling BTAC branches that wrap across instruction cache lines |
Publications (1)
Publication Number | Publication Date |
---|---|
TW564369B true TW564369B (en) | 2003-12-01 |
Family
ID=25422343
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW90127270A TW564369B (en) | 2001-07-16 | 2001-11-02 | Apparatus and method for handling BTAC branches that wrap across instruction cache lines |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN1270234C (zh) |
TW (1) | TW564369B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI242744B (en) * | 2003-01-14 | 2005-11-01 | Ip First Llc | Apparatus, pipeline microprocessor and method for avoiding deadlock condition and storage media with a program for avoiding deadlock condition |
US7640422B2 (en) * | 2006-08-16 | 2009-12-29 | Qualcomm Incorporated | System for reducing number of lookups in a branch target address cache by storing retrieved BTAC addresses into instruction cache |
US8205068B2 (en) * | 2008-07-29 | 2012-06-19 | Freescale Semiconductor, Inc. | Branch target buffer allocation |
-
2001
- 2001-11-02 TW TW90127270A patent/TW564369B/zh not_active IP Right Cessation
-
2002
- 2002-03-11 CN CN 02107138 patent/CN1270234C/zh not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
CN1369780A (zh) | 2002-09-18 |
CN1270234C (zh) | 2006-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW530205B (en) | Apparatus and method for selectively accessing disparate instruction buffer stages based on branch target address cache hit and instruction stage wrap | |
US7203824B2 (en) | Apparatus and method for handling BTAC branches that wrap across instruction cache lines | |
JP3423310B2 (ja) | 仮想アドレス能力が保持され、パイプライン命令ユニットと実効アドレス計算ユニットとを有するcpu | |
TW591530B (en) | Hybrid branch prediction device with two levels of branch prediction cache | |
TW530261B (en) | Dual call/return stack branch prediction system | |
US6256728B1 (en) | Processor configured to selectively cancel instructions from its pipeline responsive to a predicted-taken short forward branch instruction | |
US6112293A (en) | Processor configured to generate lookahead results from operand collapse unit and for inhibiting receipt/execution of the first instruction based on the lookahead result | |
JP3871883B2 (ja) | 間接分岐ターゲットを計算するための方法 | |
TW538336B (en) | Apparatus, system and method for detecting and correcting erroneous speculative branch target address cache branches | |
US7234045B2 (en) | Apparatus and method for handling BTAC branches that wrap across instruction cache lines | |
TWI249673B (en) | Microprocessor and apparatus for performing speculative load operation from a stack memory cache | |
US5822575A (en) | Branch prediction storage for storing branch prediction information such that a corresponding tag may be routed with the branch instruction | |
TWI294590B (en) | Variable latency stack cache and method for providing data therefrom | |
US5960467A (en) | Apparatus for efficiently providing memory operands for instructions | |
TW535109B (en) | Speculative branch target address cache | |
US5850532A (en) | Invalid instruction scan unit for detecting invalid predecode data corresponding to instructions being fetched | |
TW201120744A (en) | Microprocessors and methods performed by microprocessors | |
TW552503B (en) | Apparatus and method for selecting one of multiple target addresses stored in a speculative branch target address cache per instruction cache line | |
US10503506B2 (en) | Apparatus and method for accessing data in a cache in response to an unaligned load instruction | |
US6457117B1 (en) | Processor configured to predecode relative control transfer instructions and replace displacements therein with a target address | |
TW201108109A (en) | Method for updating a branch target address cache in a microprocessor and related microprocessor | |
US6202142B1 (en) | Microcode scan unit for scanning microcode instructions using predecode data | |
US6212621B1 (en) | Method and system using tagged instructions to allow out-of-program-order instruction decoding | |
US6240503B1 (en) | Cumulative lookahead to eliminate chained dependencies | |
US5987235A (en) | Method and apparatus for predecoding variable byte length instructions for fast scanning of instructions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent | ||
MK4A | Expiration of patent term of an invention patent |