TW563064B - Decoupled fetch-execute engine with static branch prediction support - Google Patents
Decoupled fetch-execute engine with static branch prediction support Download PDFInfo
- Publication number
- TW563064B TW563064B TW089114336A TW89114336A TW563064B TW 563064 B TW563064 B TW 563064B TW 089114336 A TW089114336 A TW 089114336A TW 89114336 A TW89114336 A TW 89114336A TW 563064 B TW563064 B TW 563064B
- Authority
- TW
- Taiwan
- Prior art keywords
- branch
- pbr
- paired
- instruction
- address
- Prior art date
Links
- 230000003068 static effect Effects 0.000 title abstract description 25
- 238000000034 method Methods 0.000 claims abstract description 56
- 238000012545 processing Methods 0.000 claims abstract description 23
- 239000000872 buffer Substances 0.000 claims description 35
- 230000015654 memory Effects 0.000 claims description 25
- 238000000605 extraction Methods 0.000 claims description 24
- 239000000284 extract Substances 0.000 claims description 9
- 238000005538 encapsulation Methods 0.000 claims description 6
- 230000008901 benefit Effects 0.000 claims description 4
- 239000000463 material Substances 0.000 claims description 2
- 210000004556 brain Anatomy 0.000 claims 3
- 238000006073 displacement reaction Methods 0.000 claims 1
- 235000015067 sauces Nutrition 0.000 claims 1
- 239000013589 supplement Substances 0.000 claims 1
- 239000002023 wood Substances 0.000 claims 1
- 230000002079 cooperative effect Effects 0.000 description 14
- 230000000875 corresponding effect Effects 0.000 description 14
- 238000013461 design Methods 0.000 description 12
- 238000010586 diagram Methods 0.000 description 8
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000001934 delay Effects 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007639 printing Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 206010012335 Dependence Diseases 0.000 description 1
- 239000002253 acid Substances 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000011089 mechanical engineering Methods 0.000 description 1
- 238000012856 packing Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 229910052720 vanadium Inorganic materials 0.000 description 1
- LEONUFNNVUYDNQ-UHFFFAOYSA-N vanadium atom Chemical compound [V] LEONUFNNVUYDNQ-UHFFFAOYSA-N 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3802—Instruction prefetching
- G06F9/3804—Instruction prefetching for branches, e.g. hedging, branch folding
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30054—Unconditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30003—Arrangements for executing specific machine instructions
- G06F9/3005—Arrangements for executing specific machine instructions to perform operations for flow control
- G06F9/30058—Conditional branch instructions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/32—Address formation of the next instruction, e.g. by incrementing the instruction counter
- G06F9/322—Address formation of the next instruction, e.g. by incrementing the instruction counter for non-sequential address
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Advance Control (AREA)
- Filters And Equalizers (AREA)
- Oscillators With Electromechanical Resonators (AREA)
- Control Of Electric Motors In General (AREA)
Description
經濟部智慧財產局員工消費合作社印製 563064 發明說明( 背景 1.技術範轉 - 本發月概各地或明電腦處理系統;且更明確地説明一種 具有靜態分支預測支援之去耦合提取執行引擎。 2·背景説明 早期的微處理器通常一次只處理—個指令。利用四個循 序的階段處理每-個指令:指令提取;指令解碼;指令執 仃;及^果回寫。於該等微處理器内,不同的專屬邏輯區 塊執行每一個不同的處理階段。在開始每一個邏輯區塊的 操作之前’該等每—個邏輯區塊等待、直到該等所有在前 的邏輯區塊完成操作爲止。 已藉由增加該電腦硬體操作的速度,及藉由以一種或另 -種形式引人平行處理獲得改良的計算速度。最近,已引 v超純量"和”超長指令字元组"(VLIW)微處理器執行平 仃處理。其具有多個執行單元(例如,多個整數算術邏輯 :兀(ALUs))用以執行指令,且如是具有多個"管線"。如 是,可於-個超純量或VLIW微處理器中同時執行多個機 :碼指令,而在該裝置及其系統應用的全面性 著的利益。 馬了討論,將等待時間定義爲—個指令其提取階段和該 指令其執行階段之間的延遲。考慮一個指令,其中該指令 參考儲存在-指定暫存器中的資料。該—個指令至 四個機器週期完成該指令。於該第—個週期中,自記憶體 中提取該指令。於該第二個週期中,將該指令解碼。二
563064 五、發明說明(2) 第三個週期中,執杯今4匕人 料回寫至該適當的位=:,及於該第四個週期中,將資 該等尸取良:此和減少指令等待時間’微處理器設計者將 二ΐΐίΐ二η :、執行和回寫邏輯階段的操作交疊,以便 數個指令。於執行中,該等提取、解 :::丁及回寫邏輯階段同時處理不同的指令。在每一個 :里;I:衝ΐ ’將每一個處理階段的結果傳遞給該隨後的處 Ρ“又。利用叉疊該等提取、解碼、執行及回寫階段之該 技藝的微處理器以”管線式,,微處理器著稱。原則上,當正 f執卜個已知的指令序列時,-個管線式微處理器可於 個機器週期完成執行_個指令。如是,藉由在完成該 第個扣令的實際執行之前、先啓始處理一第二個指令, 則攻等待時間對管線式微處理器的影響將明顯減少。 經濟部智慧財產局員工消費合作社印製 不幸的疋,在一個管線式微處理器中可存在不同的通訊 定義表,其中該管線式微處理器中包括一個拖延。該其中 一種通訊定義表爲該分支指令。就大體而論,一個微處理 器中的指令流程要求自記憶體内循序的位置中提取和解碼 指令。一個分支指令爲在該流程中導致一個分裂的一個指 令’例如一個採用分支導致沿著該循序路徑的解碼停止, 並在記憶體中一個新的位置上復始解碼。可將記憶體中該 新的位置意指爲該分支的一個目標位址。管線式指令流程 中的該一個岔斷使管線式的性能在實質上產生一個退化。 因結構和編譯程式的設計者繼續力求較好的平行等級, 故該等不利的管線拖延對平行所造成的影響將變得極爲重 -5- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 563064 五、發明說明(3 ) 大 經濟部智慧財產局員工消費合作社印製 就高平行等級而言, 期總數(CPI)必須比!小很:-個指令上的平均週 的該等m不利才可能且有、'精由最小化因拖延而產生 管線生產率的影響。因、4;:,^ 的拖延頻率,㈣發出率而產生該可能較高 a ^ ^ 2 ^ -h , y也延不利的問題加重。此使得必須 ^ 用^減夕琢寺不利。兩種常見用以減 4也延不利的方法包括^合結構和分支預測。 =合結構利用緩衝處理和控制裝置使記憶體存取和該 :餘的管線斷絕關係。當一個快取記憶體未得發生時,該 〜耦口結構允沣孩其餘的管線繼續向前移動,僅拖延與該 等決取。己憶體存取有關的該等指令。可將自該管線中去耦 口的I*夬取Α憶體存取和指令亦或資料快取記憶體一起使 =自涊執行官線中去耦合的該指令快取記憶體(此後意 才曰爲去鶴合之提取執行)對超純量和EPIC/VLIW (超長指令 丰元、、且)兩種結構而吾均係有益的。於L. Gwennap的,,英代 爾、惠普對EPIC的揭示,,(微處理器紀事,^(丨句·· ;μ9, 1997年10月)中更進一步説明該Epic結構。 去輕合之提取執行結構利用指令緩充器和分支預測致能 指令的提取與該其餘的管線無關。將該等指令緩衝器組織 成一個佇列,該佇列如自該指令快取記憶體中提取指令一 樣的接收指令。當指令進入該佇列中時,一個分支預測裝 置檢視一個分支指令的存在。當找到一個分支時,則該分 支預測裝置預測該可能的分支目標(位址)和方向。必要 時,該分支預測裝置將該指令提取重新導向該預測之位 (請先閱讀背面之注意事項寫本頁) ^裝 « — — — — — — I.
6 - 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 563064 A7 經濟部智慧財產局員工消費合作社印製 _____ B7五、發明說明(4 ) 址0 今,大部分的通用處理器係利用動態分支預測裝置, 该等處理器在執行時間選取一個分支預期將採用的方向。 動怨分支預測裝置可包括預測計數器表、歷史表及分支目 標緩衝器。該等許多設計增加了値得注意的硬體,且該硬 體可影響該處理器頻率。藉由下面説明動態分支預測設 计·· Calder et al.的”分支結構性能之一個系統等級透視”, 1989年5月第16屆電腦結構年國際討論會會報,199_2〇6 頁,及Chang et al·的’,比較用以減少分支費用的軟體和硬 體设計’’,1989年5月第16屆電腦結構年國際討論會會報, 224-233 頁 ° 靜態分支預測提供一種替換的預測方法,其相對應至在 编譯時間選取一個分支預期將採用的方向。就大部分的通 用應用而T,靜態分支預測不像動態分支預測一樣執行地 那麼好,但其在某些應用市場中的執行卻相當良好,故就 該等市場而言其結構可能能夠棄絕動態分支預測的費用。 該等市場包括媒體處理和軟體的二進位翻譯,其利用動態 簡述統計學執行”執行期間編譯”,以致能準確的靜態分支 預測。於Fritts et al·的”瞭解用以設計可程式化媒體處理器 之多媒體應用的特徵,’中更進一步説明媒體處理,spiE Photonics West媒體處理器,99 1999年1月加利福尼亞州聖約 瑟。於Altman et al·的” VLIW結構之植基於執行的排程,,中 説明軟體的二進位翻譯,遵從歐洲標準,99,1999年9月法 國 Toulouse 〇 (請先閱讀背面之注意事項寫本頁) P! ·-
-雇線L 本紙張尺度適用中國國家標準(CNS)A4規格(21〇 X 297公爱) 563064 A7 B7 經濟部智慧財產局員工消費合作社印製 五、發明說明(5 ) 於靜態分支預測中,預測爲不採用的條件式分支(即該 等預期會落經至該循序路徑中的分支)係易於支援的,因 才曰令提取邏輯自動地循序連續。預測爲採用的無條件分支 和條件式分支(即該等預期會繼續在一個非循序目標指令 上執行的分支)要求支援用以重新導向該指令提取單元, 以於執行該分支之前、先開始預先提取該期望之分支目 標。該預先提取在提取該分支指令之後隨即開始,以於該 分支執行之後即刻致能執行該期望之分支目標係較合適 的0 一種用以實現此之方法爲在該分支操作中利用一個預測 位元。在提取該分支操作之後,如該預測位元指示採用, 則將該期望之分支目標位址傳送給該指令提取單元。該方 法的一個問題爲該預測方向和目標位址的判定要求存取該 分支操作的内容。一旦該指令快取記憶體折返該分支操作 時,則僅可提取該期望之分支目標、判定該預測位元所設 定的該方向、及計算出該期望之分支目標位址。圖1爲例 證説明提取該預測分支目標其時序之圖示。選擇i相對麻 至用以提取該預測分支目標之該合適的時序,其中係在開 始提取該分支操作之後即刻提取該預測分支目標。選擇2 相對應至該實際的提取時序,其中由於需要該分支操作的 内容而使得該時序延遲。如所示,於一具有f個階段之指 令快取記憶體中,則該分支操作的内容變成可用的最早時 間爲啓始該提取之後的f個週期。然而,開始提取該期望 之分支目標的合適時間爲開始提取該分支之後僅一個週期 -8 - 度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項再填寫本頁) S· — II I ^ ·1111111!
A7 B7 五、發明說明(6 的時間。因此,利用一個 ------------— (請先閱讀背面之注意事項寫本頁) 通常不允許理想的時序用以執行靜態分支預測 产..序用以提取該預測之分支目椁,但將 在U和預測目標之間插入至少f-H固延遲週期。一’ -種選擇性的技藝爲發行—個音 舰操作典型地包括-個主欄位,指示該預測之分支目; 的位址或替代。附加的欄位可包括該期望之分支目標其位 址的-個暫存器目地,或一個指示是否執行該服操作的 述語條件。該-個述語在用以執行更具智慧型之靜態分支 預測万法(像是分支關連)時特別有效益。在不使用預測下 執行靜態分支關連可要求實質的編碼複製,藉由下面提供 刀支關連的一個討論:Smith以al•的,,利用分支關連改良靜 態分支預測的準確性,,,1994年1〇月第6屆程式設計語言和 作業系統之結構支援年國際討論會會報;及〇〇卜d Μ•的,,關 連之分支預測設計的性能問題,,,^”年丨丨月第28屆微結 構年國際討論會會報,3 - 14頁。 經濟部智慧財產局員工消費合作社印製 時序爲該預備分支操作的一項重要且具決定性的觀點。 應將該PBR操作安排成在啓始提取該相對應的分支操作之 後隨即開始提取該期望之分支目標,如圖1中的選擇1所 示。該PBR操作無發重新導向較早提取,因此將防止提取 該分支操作。同時,該PBR操作不應重新導向稍後提取, 以避免該分支和該預測之目標之間額外的延遲。達成該時 序需要兩種裝置。首先,一個裝置須用以使該PBR操作與 該PBR操作正在預測之該分支相關聯。此後將該關聯意指 9 - 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 563064 A7 B7 五、發明說明(7 ) 馬π成對π ’且將該相對應的分支稱爲該”忐 、 崠對分支”。其 次,一個裝置須用以確認已啓始提取該成對 - Τ刀支,及確初、 可開始提取該期望之分支目標。 ι 有兩種主要的方法用以執行該預備分支操作。2 # 户。吾亥弟一種 方法通常係用於整齊的密集步伐管線中。—柄^ & 彳固掛集步伐管 線爲一條管線,其中該管線的所有階段一起 、延仃。如有任何 一個管線階段無法進行(不論任何理由)時, A ^ '、我任何一個 管線階段階會進行(即所有的階段一起,,步谁,, 逆吓或一起”銷 定”)。該第一種方法係在該分支之前安排固定個指令给該 PBR操作。就該PBR操作而言,該分支的固定 \ u星t同時 作爲用以獨一無二定義該成對分支、及用以指示何時門护 提取該期望之分支目標的裝置之用。於一個密集步伐^ 中,該等所有管線階段其依存的性質對該固定位置的二法 確保正確的提取時序。然而,該固定位置的時序模型=對 密集步伐的管線有效,且該模型無法用於去耦合提取執行 結構中,故免除了該執行管線和指令提取管線之間的依^ 性。將藉由Patterson et al.的”精簡指令集電腦(RISC) !: 一 個精簡指令集超大型積體電路(VLSI)電腦,,(1981年4月第 8屆電腦結構年討論會會報)更詳細地説明該方法。 該第二種用以執行預備分支操作之方法在該pBR操作中 利用一個暫存器用以與該分支操作配成一對。該分支操作 =用該相同的暫存器提供該分支操作的目標位址。該暫存 器名稱提供一個在不需要該pBR操作其一個固定位置下用 以使配成對之裝置,且該暫存器名稱允許較大的排程自 -10
私紙張尺度適时_ S?(CNS)A4^7210 ϋ公iT ------------t (請先閱讀背面之注意事項 寫本頁) 經濟部智慧財產局員工消費合作社印製 563064 五、發明說明(8 由二對4技:執行時序時需要在啓始提取該預測之分支目 先判疋d刀支操作是否爲可用的。可藉由搜尋該等最 近k取〈指令、該等指令緩衝器及該管線找出_個利用該 相同暫存器作爲該PBR操作的分支操作,以判定該分支操 作勺可用[生旦找到該成對的分支,則可開始提取該期 主之刀支目^。就如孩預測位元設計一樣,該設計亦要求 j致此&取d期望之分支目標前先存取該分支操作的内 容,故其亦在提取該分支和提取該分支的預測目標之間強 ,一 f]個週期的最小延遲。將於下面中更詳細地説明該 設计:Kathail etal•的,’HpLpiayD〇h結構規格:1 〇版,,, HPL-93-80,1994年 2 月。 種用以使配成對之選擇性的方法爲指示該成對分支在 該服操作之後所發生的指令總數。然而,預期該方法在 去耦合k取執行管線上將要求較高的複雜性,特別是在執 =具有壓縮指令格式之明確平行的結構上,其中在解碼之 幻個扣々的大小係未知的。就一個説明該方法的文章而 T,請參看G0〇dman et al•的”結構化資料佇列和預備分支 指令的一個模擬研究,,,1984年紐約Chester港、電腦設計 ’84之電子電機王程師協會(IEEE)年@際討論會會報, 544-549頁。 不官目則存在之眾多的靜態分支預測設計,該等大多數 的設計係意欲針對密集步伐管線而設計的,且如是未良好 地適合去耦合提取執行結構。 如是,一種用以在一個去耦合提取執行管線上支援靜態 11 - 本紙張尺度適用中國國豕標準(CNS)A4規格(21G X 297公爱 (請先閱讀背面之注意事項寫本頁) rl裝 ·- 經濟部智慧財產局員工消費合作社印製 563064 A7 '^^ ---------------- 五、發明說明(9 ) —^^ 刀支預測之方法和裝置將係較可取和有利的。 發明總結 “ 本發明針對一個具靜態分支預測支援之去耦合提取執行 引=。本發明允許在提取一個分支指令之後隨即提取該= 支指令的預測分支目標。與目前的靜態分支預測方法^ = 反,本發明在提取該預測分支目標之前不需要該分婷目 的内容。 又休 本發明之一第一個觀點,一種使指令提取自—個執 ^ &線中去耦合、而用以於一個電腦處理系統中預先提取 分支指令的目標之方法,該方法包括產生一個預備^支 (pBR)操作之步驟。該PBR操作包括相對應至_個到:裡 成對 < 分支的位址位元和相對應至該分支其一個期望目標 二亿址位元。將執行該pBR操作排在執行該成對分支之 =,以於琢等兩個執行之間強制一個合適的等待時間。一 :執仃了茲PBR操作時,即利用該PBR操作該等相對應至 =成對分支的位址位元判定該成對分支是否爲可用的。當 =成對分支爲可用的時,則利用該pBR操作該等相對應至 々期望分支目標的位址位元提取該期望分支目標。 、、艮據本發明之一第二個觀點,該方法更進一步包括了將 =成對分支解碼的該等步驟。當偵測出一個錯誤預測時, 則所有跟在該成對分支之後的操作均爲無效的,且提取該 成對分支其正確的目標。 勺根據本發明之一第三個觀點,提取該正確的目標之步驟 括了 S錯疾預測爲採用該成對分支時、則提取一個隨即 _Μ—Τϊ® 家鮮(CNS)A4 規格⑽ X 297^7 ------------ 裝 c請先閱讀背面之注意事項!^ 寫本頁) · · 經濟部智慧財產局員工消費合作社印製 563064 A7 五、發明說明(1〇 跟在該成對分支之後的指令之步驟。 (請先閱讀背面之注意事項寫本頁) 根據本發明之一第四個觀點’提取該正確的目標之步驟 包括了當錯誤預測爲不採用該成對分支時、則提取一個相 、十iC至β成對分支中所指定之該目標位址的指令之步驟。 1由就該等伴隨的圖示研究下面較可取體“詳述,將 顯見本發明的該等觀點和其它觀點、特性及優點。 圖式簡單說明 y,爲例證説明提取一個分支指令其預測之分 的時序圖示; 種根據本發明一個體系、用以支援靜態分支 預測<去耦合提取執行結構之圖示; 圖3 A 使指令提取自一個執行管線中去耦合、而 用電腦處理系統中預先提取分支指令的目標之方 法的流程圖; 並::λ 1固PBR操作的成對*支例證説明該PBR操作 其排程足圖示; 「 其1針八Ί况明—個預備分支操作和該預備分支操作 其成對刀支〈間該最佳等待時間的圖示; 經濟部智慧財產局員工消費合作社印製 皮Λ根據本發明另一個體系、用以支援靜態分 支預測^去耦合提取執行結構之圖示; 人緩衝器巧中根據本發明一個體系例證説明包含在圖6該等指 令綾衝杏中<該等襴位的圖示; 圖8,爲根據本發_ _
待解決表中之該等欄位:圖^系例證説明包含在圖6該PBR -13- x 297 ^t ) -n n n · Μ氏張尺度適用中國國家 563064 五 、發明說明(11 圖9,爲例證説明圖6該提取控制單元5〇8之圖示;及 圖1〇,爲例證説明根據本發明一個體系之封裝選取的圖 較可取體系詳述 本發明針對一個具靜態分支預測支援之去耦合提取執行 引擎。本發明允許在提取一個分支指令之後隨即提取該分 支指令的預測之分支目標。此外,不同於目前的靜態分支 預測方法,本發明在提取該預測之分支目標之前不需要該 分支操作的内容。 測 支 未 爲了便於清楚地瞭解本發明,現在將説明此處所使用之 名到的定義。”靜態分支預測”意指在編譯時間選取一個分 支預期將採用的方向。”去耦合提取執行,,(通常亦以,,去耦 合存取執行”著稱)意指自一個管線式電腦處理系統中的該 執行管線中去耦合該指令快取記憶體。一個π預備分支” (PBR^操作爲排在一分支之前的一個指令在實際執行該分 支足W先將指令提取重新導向該分支的期望目標上。,,使配 成對”意指一個預備分支操作和該預備分支操作正在預 的該分支之間的關聯,將該分支意指爲一個,,成對分支I ”錯誤預測爲採用”意指將一個*支預測爲採用(且^分 如是利用一個PBR操作重新導向指令流程),但實際 採用該分支。”錯誤預測爲不採用”意指將一個分支預測 不採用,但實際上卻有採用該分支。 現在,將對本發明提供一個概略的説明以將讀者導引至 本發明的觀念上。隨後,將對本發明其不同的觀點提供更 | -14 - 本紙張尺度適用中國國豕標準(CNS)A4規格(21〇 X 297公釐 563064 經濟部智慧財產局員工消費合作社印製 、發明說明(13 ) 緩衝器位址一起工作,以分別於該執行管線、一個指令快 取記憶體518及該等指令緩衝器5〇1-5〇6中搜尋。解碼成對 分支電路524用以檢視該成對分支的存在,及用以判定是 否將孩下一個循序指令位址儲存在分支循序表512中。一 個指令緩衝器控制和解碼電路54〇控制該指令緩衝器佇列 的操作,及將該下一個欲發行之平行操作群組解碼。將於 下更詳盡地討論該等每一個單元。 、 圖3爲-種使指令提取自_個執行管線中去轉合、" 以於-個電腦處理系統中預先提取分支指令的目標之方法 的流程圖。如是,可利用圖2的該去_合提取執行結 行圖3的該方法。 產生一個預備分支(PBR)操作,該PBR操作包括相對應 個到那裡成對之分支的位址位元和相對應至該分支^ :期望目標的位址位元(步驟3G2)。將執行該舰操 =于_分支之前,以於該等兩個執行之間強制—個 口適的等待時間(步驟3 04)。 一旦^了該酿操作時,即利用該pbr操作該等相對 (;二 的位址位元判定該成對分支是否爲可用的 (步驟3〇6)。當該成對分支爲不可 路徑繼續提取(步驟3 07)。 山…循序 岸1該二rt支爲可用的時,則利用該咖操作該等相對 驟3;::二支】標址位元提取該期望分支目標(步 前产時 W成對分支抵達該指令缓衝器佇列的最 而、,則將認成對分支解碼,並傳送至該執行管線中 -16 χ 297 ^17 I n ϋ ϋ -ϋ I ϋ 一δ,,I n n n 1· ϋ n n I · Γ清先閱讀背面之注意事項¾填寫本頁) __裝 α再填寫士 563064 發明說明(μ ) (步驟3 10)。 (步 =rv判定是否錯誤預測了該成對分支的目標 1312)。如”是",則使所有在該成對分支指人 裇(步驟3 16)。當錯誤預測爲採用該成對 則該正確的分支目標相對應至隨即跟在該成對分^ 票<後的該指令上。當錯誤預測爲不採用該成對分支指人 時,則在該成對分支指令中提供該正確的分支目標。曰: 於編譯時間執行步驟3()2和3()4,且最好於 二= 驟3 06-3 16。 门钒仃步 3將説明該預備分支操作。該預備分支操作應滿足兩 禋而求。罘一,應包含一個攔位,該攔位依序包含該預備 分支操作其成對分支該等最後幾個位址位元。該位址可能 至孩成對分支操作的本身中,亦或至一個僅包含一個分= 的操作群組中。典型地説,3_5個位元即該搁二的 大小。利用該成對分支該等最後幾個位址位元定義一個跟 在该PBR操作之後的排程視窗,其中應安排該成對分支。 該程式中的每一個分支均具有一個相關聯的靜態預測數 値,兩者組合之後定義該程式之一個預測執行的路徑。圖 4爲就一個PBR操作的成對分支例證説明該pbr操作其一個 排程之圖示。更明確地説,圖4例證説明一個預測路徑之 一個直線式的觀念,其預測分支爲”不採用的”,如自該路 徑轉出之可能的一邊所示。應將在該pBR操作和成對分支 安排在該預測之路徑上,其中係以該排程視窗的大小對該 17 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項寫本頁}
-- P 經濟部智慧財產局員工消費合作社印製 563〇64 五、發明說明(16 ) 構中,每一個週期僅可發行一個平行浐人 成對分支之前安排該必要的平行指令ϋ故可藉由在該 得該等待時間於超純量處理器中,可^^pbr操作獲 令,故預測任何兩個指令其執行時間之整理指 間,以便該咖Λ 確保該等待時 或資源依存在該酸操作:;:::^^ 待時間。 ⑼r刀叉〈間強制該合適的等 頁 =在^更^全地説明上面展該成對分支是否爲 步驟。* 一個預備分支操作發生時,必須 々 新導向該期望之分支目標前先判定該成對分支二;是:j ㈣㈣PBR㈣來安排該成對分支,及依 …、疋否發生了任何拖延’而可以下面若干個可能的 # 二分支操作,包括:於該執行管線中;於 ,中:^該指令快取記M提取;及尚未被提取。 θ(個成對分支其位置的處理需要-個裝置用 以在母-個管線階段(在該PBR執行階段之前)、指令 益及指令快取記憶體提取階段中搜4該成對分支。此外, 因僅利用該成對分支中該等數個最不重要位址位元,故必 ^有足夠的資訊可用以判定哪一個指令爲該實際的成對分 支、,設若找到多個匹配。一旦判定了該成對分支的位置, 則必頊採取該等適當的行動。 、如卞成對分支在該等前三個位置的任何_個位置中,則 β成對分支操作爲可用的,且可開始提取該期望之分支目 -19- 本紙張尺錢財ίϊϋ準(CNS)aT^格(210 X 297公釐)_ 563064 、發明說明(17 ) 標。然而,亦可於該管線、扣人 中利用跟在該成對分支之“:::器及指令快取記憶體 刀文 < 後的附加循序操作。當 作正在重新導向指令提取時,則必須將該管線、指令緩; =指==體中所有在該成對分支之後的循序操作 摘展:於…日令快取記憶體的事例中,此要求某—裝置使 该寺逆犯的循序操作在被提取之後變爲無效的。 如該成對分支尚未被提取,則該成對分支爲不可用的, 且該服操作必須等待、直到發行了提取該成對分支的請 求爲止。僅在該指令快取記憶體於該成對分支的位址上開 始提取之後,該PBR操作才可重新導向該提取單元,以提 取該期望之分支目帛。於等待的同時,必須將該陋操作 和所有與該P B R操作相關聯的資訊保持在一個狀態暫存器 中0 經濟部智慧財產局員工消費合作社印製 現在將概略地説明對錯誤預測分支的支援。就如該預備 分支操作一樣,一個錯誤預測分支的發生亦必須重新導向 指令提取和使該管線中所有的操作無效。然而,不需搜尋 或等待一個成對分支。一個錯誤預測僅使所有在該執行管 線中該錯誤預測分支之後的指令緩衝器、指令快取記憶體 存取及循序操作無效,且隨即將提取重新導向至該正確的 分支目標上。又於該指令快取記憶體的事例中,必須使該 等提取的指令在被提取之後變爲無效的。 就錯誤預測的分支而言,可發生兩種型態的錯誤預測。 遠第一種型態包括一個預測爲不採用、但實際上卻採用的 分支。於該事例中,在該分支操作中指定該實際分支目標 -20- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) 563064 、發明說明(彳8 ) 的位址’故可將茲位址提供给該提取單元,用以提取該正 崔勺刀支目‘ #第_種錯誤預測型態包括—個預測爲採 實際上卻不採用的分支。於該事例中,未在該分支 彳日際分支目標的位址,而是指定循序跟在該 分支之後之該操作的位址。於該事例中獲得該用以提取該 正確=支目標的位址f要·· a)自該錯誤預測之分支位址中 產生及正確为支目標的循序位址,亦或^ )稍早於該管線中 解=該分支操作之後,將該循序分支目標位址儲存在一個 狀悲暫存态中。當該前一種選擇看似爲較佳之方法的同 時d後面的方法對利用一個壓縮格式《明確平行的結構 可更具效篮性,將於下文中說明之。 、在知概各地成明戎提取控制單元。該提取控制單元 導引該指令快取記憶體何時執行_個指令提取和從哪一個 位置k取。基本上,該提取單元在該等不同之請求指令提 取,事,(間作仲裁,且當該提取單元不忙錄時,將接著 發行孩等適當的提取請求給該指令快取記憶體。有五種事 件可清求-個指令。以低優先到高優先的順序表列該等五 種事件:、(1)指令緩衝器請求循序指令提取;(2)預備分支 經濟部智慧財產局員工消費合作社印製 操作叫求期望分支目標;(3)預測不採用分支爲錯誤預測 的,且请求非循序分支目標;(4)預測採用分支爲錯誤預 測的且請求循序分支目帛;及(5)異常或重設請求異常處 理常式。 t 該最普通和最低優先順序的事件爲請求一個循序指令提 取& Θ事例中,該等指令緩衝器已變空成該點,以致該 21 - 2975¾ ) 裝--- (請先閱讀背面之注意事項寫本頁) G張尺度適用中國國家⑵〇- 563064 A7 五、發明說明(π ) 等指令緩衝器可接受更多的指 個循序指令群組。 貝科’並因此要求孩下一 當執行提取控制時,且當— 人此抱巧A ^ 個才疋取請求發生時、如該指 々决取$己憶馬忙綠的,則必須 能漸^ 肩和咸楗取請求儲存在一個狀 心來存為中,‘示該下一個提 、、 從取的扣令位址。如有多個提 取知求在該指令快取記憶體蠻成二、 又成了用 < 則?己錄至該暫存器 中,則僅需保存該最高優先順序的提取嗜长。 現在:將概略地説明該等指令緩衝器1等指令緩衝器 的目地爲將指令提取自該執行管缚中 叮G、、果Τ去耦合。用以一成此 所需的該指令緩衝器總數係視該結構而定。將該等指令緩 衝器安排成:個仵列。該仔列的任何執行應支援的仲列屬 性,以便每當該件列的前端變空時即進行該仲列,且將指 令快取記憶體資料僅寫至該侍列尾端上該第一個空的指人 緩衝器中。 7 、就此處所述之該靜態分支預測方法而言,該指令緩衝器 佇列的責任爲’’當有足夠個條目變成可用的時,即發行一 個提取該下一個循序指令群組的請求,,。在產生一個提取 請求之前該所需的空間總量亦必須説明任何目前未解決之 提取請求所需的空間。例如在一個2-週期的指令快取記憶 體中,目前可有高達兩個指令提取在該快取記憶體中爲未 解決的,故應僅當至少三個緩衝器爲空的時、才產生一 請求。 現在,將説明本發明該靜態分支預測方法的一個執行。 將察知,可由一個熟知此技藝的人輕易地將該下面的執行 -22- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項寫本頁) r«裝 · 經濟部智慧財產局員工消費合作社印製 563064 A7 B7 五、發明說明(2〇 ) 奴正成相對應至不同結構的電腦處理系統上。 請 二:個明確平行的指令計算(Epic)結構上執行本發明 々淨:、刀支m法。H結構將該等欲平行發行的指令明 人说月& >ί固單一的長指令字元組。藉由一個壓縮的指 々口式定義該等平行指令,其中該壓縮的指令格式在每一 個操作之制料止位元記㈣等平行 所”之:個停止位元’指示該等所有在該操作和該;: 停止位元之先前操作之間的指令欲平行執行。於 :…乍格式中,爲了允許附加的空間給該停止位元和預 :’故將三個操作封裝入—128個位元的"封裝"中,而非 母-個操作僅32個位元。該結構與1997年英代爾所當稱的 訂 ΙΑ,指令集類似’其中ια_μ指令集係作爲其即將出現 之Merced處理器的基礎。於上面 州C的揭示’’的參考文章中說明^64指令集;1 ”對 意 中 的 古我:的執行假定一 _IC結構能夠發行一每一個週期 ^ :個㈣的長指令。將每_個明確平行的指令群組 曰,7個·’封裝’’’且每一個封裝可包含0〜6個操作,其 將4 V個扎令的事例定義成一由一個後 空操作(NOP)。 &杜再後 經 濟 部 智 慧 財 產 局 員 工 消 費 合 作 社 印 製 ,馬了間化孩啓始執行,故在可用作分支目標的操作上 課加一個限制。將一嵙— ^ —* 、,十在一條3 2-位元組邊界上排齊的封 二我、個,雙封裝”’且僅於—個雙封裝開始時才 分至非循序的目標上。該限制對該靜態分支預測方法^ -23- 五、發明說明(21) 吕i甚至對該執行而言,並非—個必要的條件。可僅以副 的碰輯夂更輕易地允許分支至該每一個封裝的開始上。 、尤μ執行而3,該E p〗c指令格式其一項有趣的觀點為 並非所有的操作均由記憶體位址直接可定址的,而是由該 封裝内一個操作其封裝和位置(位置0, 1或2)的位址描述該 操作的k址。因此’經由該分支操作的最後幾個位元使該 R操作和#为支操作相關聯將無法作用,而是僅包含該 成對刀支 < 该雙封裝的位址用作該關連性,但限制僅一個 成對分支操作置放在—個雙封裝中。又可以—個最小的額 外邏輯將該限制放寬成,,將該成對分支的總數限制在每一 個封裝有一個成對分支(而非每-個雙封裝有-個成對分 支)’·。 經濟部智慧財產局員工消費合作社印製 圖6為一種根據本發明另一個體系、用以支援靜態分支 預測<去镇合提取執行結構之圖示。該結構將一些附加物 /扁入個典型的指令緩充器結構中,以保證該預備分支 知作其正確的支援和提取時序。該設計假定一含六個指 令k#^5Gl_5G6的侍列,每—個指令緩衝器包含—六個操 作的雙封裝。提取控制單元5〇8利用一個提取位址表51〇和 下個才疋取暫存器5 i i分別追縱所有未解决的指令提取和 *下〜個提取叩求。分支循序表5 12儲存該下一個循序封 衣S等在每一個成對分支之後的位址。pBR待解決表$ Μ保 持一個待解決之PBR操作表列,並利用該成對分支找到電 路5 16搜尋该成對的分支操作,及使所有跟在該分支之後 的循序操作無效。成對分支找到電路516連同管線位址表 ----____ -24- 本紙張尺度_ (CNS)A4STilO X 297 563064 經濟部智慧財產局員工消費合作社印製 五、發明說明(23 ) 指令快取記憶體中找到該酿操作的成對八支 裝位在該正確的執行路徑上。 =支,故該雙封 則(最初係當在該指令快取記:體;位元 設該路徑上位元608^,目v σ ΰ棱取時、重 ’則搜哥一個成斟公、 負數。此確保該成對分支換# 支將水遠折返 1刀支知作不會找到多個匹配。 有效位凡6_指示該目前的内容是否有效。 徑上控制電路612根據自該指令快取記憶體或m 衝器/ 中進入的資料’和根據該條目的狀態變更對每―:: 令緩衝器條目產生該等有效的和路徑上位元。一個的 多工器614將自指令快取記憶體518和該先前指令緩衝器中 所提供的位址和資料多工化,以作爲至該目前指令緩衝器 中(該佇列中)的輸入。 PBR待解決表5 14執行一個佇列,其中該佇列維持所有該 等待解決預備分支操作的狀態。圖8爲根據本發明一個體 系例邊説明包含在圖6該PBR待解決表5 14中之該等攔位的 圖示。該等攔位爲:一個預測之B R目標位址欄位702 ; — 個成對B R位址攔位704 ; —個π找到',欄位706,相對應至 一個”找到',位元706a ; —個,,提取”攔位707,相對應至一個,, 提取”位元707a ;及一個,,待解決”欄位708,相對應至一個” 待解決’’位元708a。 預測之B R目標位址欄位702和成對B R位址攔位704分別 包含該期望之分支目標的位址和該雙封裝(包含該成對分 支)其位址之最後幾個位元。找到攔位706、提取欄位707 及待解決攔位708的每一個攔位均包含一個指示該等待解 26- 本紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閲讀背面之注意事項寫本頁) i 裝 —訂---------, 563064 五、發明說明(24) t服其狀態的位S。t_個舰操作執行時,則設定該 弟個狀心L 70,即待解決位元7〇8a,並將該第一個 位元增加到酿待解決表514中。繼續設定位元鳩,= 相成對分支經由封裝選擇邏輯522放棄該等指令緩衝器 馬止,且由解碼成對分支524確認爲元708a,其中解成 對分支似清除待解決位元708a、進行PBR待解決=成 及將该下一個循序封裝位址寫入分支循序表Η]中。 如上k及,一個待解決PBR操作可爲三種狀態中的其中 一種。該待解決PBR操作或是搜尋它的成對分支操作一已 找到該成對分支,但尚未發行提取該期望之分支目標;亦 或搜尋它的成對分支操作—已找到該成對分支且以發行該 提取。由相對應至找到欄位7〇6的找到位元7〇以和相對應 至提取欄位707的提取位元707a指示該等狀態。當一個新 的PBR操作執行、且增加到pBR待解決表514中時,則重設 找到位元706a和提取位元707a。當不斷言找到位元7〇^ 時,則該待解決PBR將其成對分支的位址傳送給成對分支 找到電路516,以於每一個週期搜尋該管線。指令緩衝器 501- 506及指令快取記憶體518,直至找到該成對分支爲 止。一旦找到該成對分支時,則斷言找到位元7〇6a,且成 對分支找到電路516使任何跟在該成對分支之後的循序操 作操效、在该成對分支之前之该等剩餘的有效操作(包括 遠成對分支)中設定路徑上位元608a、及可向提取控制單 元508發出一個提取該期望之分支目標的請求。如指令快 取記憶體518無法隨即接受新的提取請求時,則該pBR企圖 (請先閱讀背面之注意事項再,填寫本頁)
--------I ^ · I---— II _#· 經濟部智慧財產局員工消費合作社印製 -27 563064 經濟部智慧財產局員工消費合作社印製 發明說明(28 ) 茲分支之後的循序操作盔效 操作(包括該成對分支)設定該路徑:::成對分支之前: 個用以提取該期望之分 上兀此外,傳运一 待解決表Μ提供該請求的位;^址的請求,其中係由服 于圖根據本發明-個體系之封裝選擇的圖 不0囚琢E PIC結槿去祖右 , ^ M 址,故其必須維持—個浐俨固知作提供獨-無二的位 裝。該指標(意指爲挪移:;80二!:等雙封裝中類取封 器902a_902f中,以在,等最先夕^'咖續运至六個多工 ★ 在落寺取先兩個雙封裝中選取該等其 ::、:I。1耆’評估該等六個指令的停止位元,以判 疋一那匕個扎令實際上屬於該封裝。所有在該指令之上(包 括Θ扎令)、且具有該第一個斷言之停止位元的指令均屬 於該封裝。接著,調整挪移總量_以指向該封裝中該最 後-個指令之後的該下一個操作。設若該下一個封裝的該 第:個操作在該第二個指令緩衝器中、而不在該第一個緩衝器中時’貝j Ig/f 5 —個進行信號,以進行該整個指令緩衝 器佇列。 將於下對本發明作一個簡短的概述。 當一個PBR操作執行時,則將該PBR操作寫入PBR待解決 表5 14中該第一個空的地點中,設定相對應至待解決欄位 708上的待解決位元7〇8a,重設相對應至提取攔位7〇7上的 提取位元707a ’及重設相對應至找到欄位706上的找到位 元706a。接著,該PBR操作將其成對分支的位址(該位址的 -31 - ‘紙張尺度適用中國國家標準(CNS)A4規格(210 X 297公釐) (請先閱讀背面之注意事項3寫本頁) S· £裝 訂—-------\ 經濟部智慧財產局員工消費合作社印製 563064 A7 B7 五、發明說明(3〇 ) 指令快取記憶體518、指令緩衝器501-506及管線中的條目 均爲無效的。接著,以該實際的分支目標設定該下一個提 取暫存器5 11。就最初預測爲不採用的分支而言,在該分 支操作中提供該正確的分支目標位址。另一方面,就最初 預測爲採用的分支而言,由分支循序表5 12提供該循序分 支目標位址。 簡言之,本發明有利地允許在提取一個分支指令之後、 隨即提取該分支指令的預測分支目標。此外,不同於目前 的靜態分支預測方法,本發明在提取該預測之分支目標之 前不需要該分支操作的内容。 將察知,本發明可使指令提取自該執行管線中去耦合、 而用於任何電腦處理系統中。此外,將更進一步察知,本 發明與任何用於該等系統中的指令群組或封裝方法論係無 關的,且如是可由一個熟知此技藝的人迅速地修正以用於 本發明中,而不考慮指令群組或封裝。 雖然已於此處就該等伴隨的圖示説明了該等例證性的體 系,但將瞭解並未將本系統和方法限制在該等精確的體系 上且可由一個熟知此技藝的人、在未偏離本發明的範疇 和精髓下對本系統和方法作其它不同的變更和修正。竟欲 將該等所有的變更和修正包括在如該附加之申請專利g圍 中對本發明所定義的範疇内。 (請先閱讀背面之注意事項寫本頁) rl^y^ ---I *----訂·--------
tiii#^cNS)A4 ---------
Claims (1)
- 563064 第089114336號專利申請案 中文申請專利範圍替換本(92年4月) 六、申請專利範圍 1. 一種使指令提取自一個執行管線中去耦合而用以於一 個電腦處理系統中預先提取分支指令的目標之方法, 該方法包括以下步騾: 產生一個預備分支(PBR)操作,其中該PBR操作包括 相對應至一個到那裡成對之分支的位址位元和相對應 至該分支其一個期望目標的位址位元; 將執行該PBR操作排在執行該成對分支之前,以於該 等兩個執行之間強制一個合適的等待時間; 一旦執行了-該PBR操作時,即利用該PBR操作該等相 對應至該成對分支的位址位元判定該成對分支是否為 可用的;及 當該成對分支為可用的時,則利用該PBR操作該等相 對應至該期望分支目標的位址位元提取該期望分支目 標。 2. 如申請專利範圍第1項之方法,其中該PBR操作該等相 對應至該成對分支的位址位元包括該成對分支中一個 預先決定的位元總數。 3 .如申請專利範圍第2項之方法,其中該PBR操作該等相 對應至該成對分支的位址位元包括η個最低有效位元, 且該排程步騾包括定義一 2η個操作的排程視窗之步騾, 其中可獨一無二地識別該成對分支。 4.如申請專利範圍第1項之方法,其中該PBR操作該等相 對應至該成對分支的位址位元包括一個指令群組的一 個位址,及一個用以識別該指令群組内該成對分支之 本紙張尺度適用中國國家標準(CNS) Α4規格(210 X 297公釐) 563064 ,—補充 申請專利範園 一個位置的識別碼。 令範一方法,其中該指令群組㈣ 6.===:::二之:法’其中將執行一作 中e為該PBR操作二千::咖-1個週期之前,其 應至:個纜線延遲的週期,£為若干個對 及d為右干個解碼和暫存器提取階段。 又 7·如申請專利範園第丨項之方法,並中, 較該PBR操作該等相對應至該成對分::::包括比 它指令的位址位元之步驟。 彳、丘位兀和其 8.如申請專利範園第α之方法,其中 視該等其它指令之有效性的步騾。/疋步騾包括檢 9·如申請專利範園第之方法,其中告 ,行管線中或—個指令缓衝器中- 該成對分支為可用的 ^取死憶體提取時,則 10. 如申請專利範圍第1項之方法,當該 時:則更進一步包括使隨即跟在該成丄=為可用的 序操作無效之步驟。 、刀支之後的循 11. 如申請專利範圍第之方法,其中嗲啦 在每一個週期發行多個指令。 包腦處理系統能 12·如申請專利範圍第1項之方法,更進〜 PBR操作是否為待解決之步騾。 步包括指不該 2- 7公釐) 5張尺度適财關家標準_) A4規格(21〇χ29·、申請專利範 B8 C8 D8 如申凊專利範園第、 成對分支解碼時,即=方法’更進一步包括一旦將謗 咖操作之步驟。卜、、止該PBR操作及開始—下—個 Η如申請專利範圍 驟: 弟1員之方法,更進一步包括以下步 將該成對分支解螞;及 個供有。跟在巧成對分支之後的操作無效,及當偵測 標個錯决預測時、提取該成對分支其—個正確的目 15.如申請專利範圍第丨 、 標之該步驟包括以下^万’法’其中提取該正確^ 分支e# #錯誤利為採用該成望 令。 偏1^即跟在該成對分支之後的才;16·Γΐ=圍第14项之方法,其中提取該正確 以下步驟:當錯誤預測為不採用該 刀支時,則提取-個相對應至 之-個目標位址的指令。 Τ刀叉^所才曰 17· -種使指令提取自一個執行管線中去 =腦處理系統中預先提取分支指令的目= 用以產生-個預備分支(PBR)操作之裝置,並 PBR操作包括相對應至_個到那裡成對之 二 兀和相對應至該分支其一個期望目標的位址/ 用以將執行該PBR操作排在執行該成對分支^^前 的該 於 置 中址 出 3- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公酱) 563064修正| 補无丨 A8 B8 C8 D8 六、申請專利範圍 於該等兩個執行之間強制一個合適的等待時間之裝 置; 一旦執行該PBR操作時,用以利用該PBR操作該等相 對應至該成對分支的位址位元判定該成對分支是否為 可用的之裝置;及 當該成對分支為可用的時,用以利用該PBR操作該等 相對應至該期望分支目標的位址位元提取該期望分支 目標之裝置。 18. 如申請專利範圍第17項之裝置,其中該PBR操作該等相 對應至該成對分支的位址位元包括該成對分支中一個 預先決定的位元總數。 19. 如申請專利範圍第18項之裝置,其中該PBR操作該等相 對應至該成對分支的位址位元包括η個最低有效位元, 且該排程步騾包括定義一 2η個操作的排程視窗之步騾, 其中可獨一無二地識別該成對分支。 20. 如申請專利範圍第17項之裝置,其中該PBR操作該等相 對應至該成對分支的位址位元包括一個指令群組的一 個位址,及一個用以識別該指令群組内該成對分支之 一個位置的識別碼。 21. 如申請專利範圍第20項之裝置,其中該指令群組僅包 括一個分支指令。 22. 如申請專利範圍第17項之裝置,其中該用以排程之裝 置將執行該PBR操作安排在執行該成對分支的 e + w + f+d-Ι個週期之前,其中e為該PBR操作其若干個 -4- 本紙張尺度適用中國國家標準(CNS) A4規格(210 X 297公釐) k563064六籾範園一 ^—--- 執行階段,W為若干個相對應至一個纜線延遲的週期 f為若干個指令提取階段,及d為若干個解碼和 j w 提取階段。 為 23.如申請專利範圍第17項之裝置,其中該判定裝置包括 用以比較該PBR操作該等相對應至該成對分支的位^位 元和其它指令的位址位元之裝置。 24·如申請專利範圍第17項之裝置,其中該判定裝置包括 用以檢視該等其它指令之有效性的裝置。 25.如申請專利範圍第17項之裝置,其中當該成對分支為 一個執行管線中或一個指令缓衝器中的一個成對分支 時’當該成對分支正由一個指令快取記憶體提取時, 則該成對分支為可用的。 26·如申請專利範圍第17項之裝置,當該成對分支為可用 的時’則更進一步包括用以使隨即跟在該成對分支之 後的循序操作無效之裝置。 27·如申請專利範圍第17項之裝置,其中該電腦處理系統 能在每一個週期發行多個指令。 28.如申請專利範圍第17項之裝置,更進一步包括用以指 示該PBR操作是否為待解決之裝置。 29·如申請專利範圍第17項之裝置,更進一步包括一旦將 孩成對分支解碼時,即用以終止該PBr操作及開始一下 一個PBR操作之裝置。 30·如申請專利範圍第17項之裝置,更進一步包括: 用以將該成對分支解碼之裝置;及 -5- — 六、申請專利範圍 用以使所有跟在該成對分支 及當偵測出-個錯誤預測時、用以上:二效之裝置’ 一個正確目標之裝置。 戒成對分支其 31.如申請專利範園第3 〇項之|置n 確目標之裳置包括:當錯’、採:二提取該正 時,用以提取-個隨即跟在該成 裝置。 刀叉4後的指令之 32·如申請專利範園第3 〇項之 確目標之裝置包括:當錯丄用以提取該正 時用以&取一個相對應至該成對分刀支 個目標位址的指令之裝置。 扣疋< 一 33· -種使指令提取自_個執行管線中 ::腦處理系統中預先提取分支指令的: = 用以產生一個預備分支(PBR)操作之 服操作包括相對應至一個到那裡成對 元和相對應至兮分Φ並 ^ 克々位址位 黎相料r 支其一個期望目標的位址位元,該 中該成對分.支的位置; "^曰不一個指令群組 於該pbr操作排在執行該成對分支之前、以 個執行之間強制—個合適的等待時間之裝 ㈣1執ΐ該酿操作時,用以利用該酿操作該等相 對應至孩成對分支的位址位元判定該成對分支是否為 可用的之裝置; 當該成對分多A 相對應至該期;:二用的時,用以利用該服操作該等 目標之裝置;主刀支目標的位址位元提取該期望分支 用以自这指令群組中相員取該成對分· 用以將該成對分支解碼之H 衮置, 及用木以使所有跟在該成對分I之後的操作無效之裝置, 及“偵測出一個供每箱、日τ必 m 似釦戌預測時、用以提取該成對分支其 —個正確目標_之裝置。 34. 申巧專利範圍第3 3項之裝置,其中該PBR操作該等 相對應至該成對分支的位指位元包括該指令群組的一 個元,及邊指令群組内該成對分支的一個位移。 如申4專利範圍第3 3項之裝置,其中將該指令群組中 任何兩個連續的指令定義成利用該等兩個連續指令之 間之一個平行指示位元的平行。 35. 563064 第089114336號專利申請案 中文圖式替換頁(92年4月)563064封装
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US09/360,054 US6523110B1 (en) | 1999-07-23 | 1999-07-23 | Decoupled fetch-execute engine with static branch prediction support |
Publications (1)
Publication Number | Publication Date |
---|---|
TW563064B true TW563064B (en) | 2003-11-21 |
Family
ID=23416410
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW089114336A TW563064B (en) | 1999-07-23 | 2000-07-18 | Decoupled fetch-execute engine with static branch prediction support |
Country Status (6)
Country | Link |
---|---|
US (1) | US6523110B1 (zh) |
EP (1) | EP1071010B1 (zh) |
CN (1) | CN1147794C (zh) |
AT (1) | ATE412213T1 (zh) |
DE (1) | DE60040578D1 (zh) |
TW (1) | TW563064B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI403953B (zh) * | 2005-04-04 | 2013-08-01 | Globalfoundries Us Inc | 用於臆測分支預測最佳化之系統及其方法 |
Families Citing this family (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6611910B2 (en) * | 1998-10-12 | 2003-08-26 | Idea Corporation | Method for processing branch operations |
US6784889B1 (en) * | 2000-12-13 | 2004-08-31 | Micron Technology, Inc. | Memory system and method for improved utilization of read and write bandwidth of a graphics processing system |
US6741253B2 (en) | 2001-10-09 | 2004-05-25 | Micron Technology, Inc. | Embedded memory system and method including data error correction |
JP2005038203A (ja) * | 2003-07-15 | 2005-02-10 | Denso Corp | メモリ制御方法及び装置 |
US8607209B2 (en) | 2004-02-04 | 2013-12-10 | Bluerisc Inc. | Energy-focused compiler-assisted branch prediction |
US7281120B2 (en) * | 2004-03-26 | 2007-10-09 | International Business Machines Corporation | Apparatus and method for decreasing the latency between an instruction cache and a pipeline processor |
JP3926809B2 (ja) * | 2004-07-27 | 2007-06-06 | 富士通株式会社 | 分岐命令制御装置、および制御方法。 |
US7472256B1 (en) | 2005-04-12 | 2008-12-30 | Sun Microsystems, Inc. | Software value prediction using pendency records of predicted prefetch values |
US7814487B2 (en) * | 2005-04-26 | 2010-10-12 | Qualcomm Incorporated | System and method of executing program threads in a multi-threaded processor |
US7877586B2 (en) * | 2008-02-01 | 2011-01-25 | International Business Machines Corporation | Branch target address cache selectively applying a delayed hit |
CN102736894B (zh) * | 2011-04-01 | 2017-10-24 | 中兴通讯股份有限公司 | 一种跳转指令编码的方法和系统 |
US9792252B2 (en) | 2013-05-31 | 2017-10-17 | Microsoft Technology Licensing, Llc | Incorporating a spatial array into one or more programmable processor cores |
US10001993B2 (en) | 2013-08-08 | 2018-06-19 | Linear Algebra Technologies Limited | Variable-length instruction buffer management |
US11768689B2 (en) | 2013-08-08 | 2023-09-26 | Movidius Limited | Apparatus, systems, and methods for low power computational imaging |
US9934043B2 (en) | 2013-08-08 | 2018-04-03 | Linear Algebra Technologies Limited | Apparatus, systems, and methods for providing computational imaging pipeline |
US9727113B2 (en) | 2013-08-08 | 2017-08-08 | Linear Algebra Technologies Limited | Low power computational imaging |
US9910675B2 (en) | 2013-08-08 | 2018-03-06 | Linear Algebra Technologies Limited | Apparatus, systems, and methods for low power computational imaging |
US9563590B2 (en) * | 2014-03-17 | 2017-02-07 | Nxp Usa, Inc. | Devices with arbitrated interface busses, and methods of their operation |
EP4116819A1 (en) * | 2014-07-30 | 2023-01-11 | Movidius Limited | Vector processor |
US9665374B2 (en) * | 2014-12-18 | 2017-05-30 | Intel Corporation | Binary translation mechanism |
US9507891B1 (en) * | 2015-05-29 | 2016-11-29 | International Business Machines Corporation | Automating a microarchitecture design exploration environment |
US10346168B2 (en) | 2015-06-26 | 2019-07-09 | Microsoft Technology Licensing, Llc | Decoupled processor instruction window and operand buffer |
US10169044B2 (en) | 2015-06-26 | 2019-01-01 | Microsoft Technology Licensing, Llc | Processing an encoding format field to interpret header information regarding a group of instructions |
US9946548B2 (en) | 2015-06-26 | 2018-04-17 | Microsoft Technology Licensing, Llc | Age-based management of instruction blocks in a processor instruction window |
US10191747B2 (en) | 2015-06-26 | 2019-01-29 | Microsoft Technology Licensing, Llc | Locking operand values for groups of instructions executed atomically |
US9720693B2 (en) | 2015-06-26 | 2017-08-01 | Microsoft Technology Licensing, Llc | Bulk allocation of instruction blocks to a processor instruction window |
US10175988B2 (en) | 2015-06-26 | 2019-01-08 | Microsoft Technology Licensing, Llc | Explicit instruction scheduler state information for a processor |
US10409606B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Verifying branch targets |
US10409599B2 (en) | 2015-06-26 | 2019-09-10 | Microsoft Technology Licensing, Llc | Decoding information about a group of instructions including a size of the group of instructions |
US9952867B2 (en) | 2015-06-26 | 2018-04-24 | Microsoft Technology Licensing, Llc | Mapping instruction blocks based on block size |
GB2548603B (en) | 2016-03-23 | 2018-09-26 | Advanced Risc Mach Ltd | Program loop control |
GB2548604B (en) * | 2016-03-23 | 2018-03-21 | Advanced Risc Mach Ltd | Branch instruction |
GB2548602B (en) | 2016-03-23 | 2019-10-23 | Advanced Risc Mach Ltd | Program loop control |
CN111656337B (zh) | 2017-12-22 | 2023-06-16 | 阿里巴巴集团控股有限公司 | 用于执行指令的系统和方法 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3551895A (en) * | 1968-01-15 | 1970-12-29 | Ibm | Look-ahead branch detection system |
US3577189A (en) * | 1969-01-15 | 1971-05-04 | Ibm | Apparatus and method in a digital computer for allowing improved program branching with branch anticipation reduction of the number of branches, and reduction of branch delays |
US4974155A (en) * | 1988-08-15 | 1990-11-27 | Evans & Sutherland Computer Corp. | Variable delay branch system |
US5165025A (en) * | 1988-10-06 | 1992-11-17 | Lass Stanley E | Interlacing the paths after a conditional branch like instruction |
DE4345028A1 (de) * | 1993-05-06 | 1994-11-10 | Hewlett Packard Co | Vorrichtung zur Reduzierung von Verzögerungen aufgrund von Verzweigungen |
GB2285154B (en) * | 1993-12-24 | 1998-04-01 | Advanced Risc Mach Ltd | Branch cache |
US5664135A (en) * | 1994-09-28 | 1997-09-02 | Hewlett-Packard Company | Apparatus and method for reducing delays due to branches |
US5732243A (en) * | 1994-10-18 | 1998-03-24 | Cyrix Corporation | Branch processing unit with target cache using low/high banking to support split prefetching |
US5790845A (en) * | 1995-02-24 | 1998-08-04 | Hitachi, Ltd. | System with reservation instruction execution to store branch target address for use upon reaching the branch point |
US5850543A (en) * | 1996-10-30 | 1998-12-15 | Texas Instruments Incorporated | Microprocessor with speculative instruction pipelining storing a speculative register value within branch target buffer for use in speculatively executing instructions after a return |
KR100240591B1 (ko) * | 1996-11-06 | 2000-03-02 | 김영환 | 분기명령어의 효율적인 처리를 위한 브랜치 타겟 버퍼 및 그를 이용한 분기 예측방법 |
US5857104A (en) * | 1996-11-26 | 1999-01-05 | Hewlett-Packard Company | Synthetic dynamic branch prediction |
US5889986A (en) * | 1997-01-28 | 1999-03-30 | Samsung Electronics Co., Ltd. | Instruction fetch unit including instruction buffer and secondary or branch target buffer that transfers prefetched instructions to the instruction buffer |
TW357318B (en) * | 1997-03-18 | 1999-05-01 | Ind Tech Res Inst | Branching forecast and reading device for unspecified command length extra-purity pipeline processor |
US5987599A (en) * | 1997-03-28 | 1999-11-16 | Intel Corporation | Target instructions prefetch cache |
-
1999
- 1999-07-23 US US09/360,054 patent/US6523110B1/en not_active Expired - Fee Related
-
2000
- 2000-07-18 TW TW089114336A patent/TW563064B/zh not_active IP Right Cessation
- 2000-07-20 CN CNB001216066A patent/CN1147794C/zh not_active Expired - Fee Related
- 2000-07-21 AT AT00306207T patent/ATE412213T1/de not_active IP Right Cessation
- 2000-07-21 EP EP00306207A patent/EP1071010B1/en not_active Expired - Lifetime
- 2000-07-21 DE DE60040578T patent/DE60040578D1/de not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI403953B (zh) * | 2005-04-04 | 2013-08-01 | Globalfoundries Us Inc | 用於臆測分支預測最佳化之系統及其方法 |
Also Published As
Publication number | Publication date |
---|---|
DE60040578D1 (de) | 2008-12-04 |
US6523110B1 (en) | 2003-02-18 |
EP1071010A2 (en) | 2001-01-24 |
EP1071010B1 (en) | 2008-10-22 |
ATE412213T1 (de) | 2008-11-15 |
CN1147794C (zh) | 2004-04-28 |
CN1282024A (zh) | 2001-01-31 |
EP1071010A3 (en) | 2001-11-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW563064B (en) | Decoupled fetch-execute engine with static branch prediction support | |
Martínez et al. | Cherry: Checkpointed early resource recycling in out-of-order microprocessors | |
CN106406849B (zh) | 提供向后兼容性的方法和系统、非暂态计算机可读介质 | |
US8429636B2 (en) | Handling dependency conditions between machine instructions | |
US8627044B2 (en) | Issuing instructions with unresolved data dependencies | |
US9086889B2 (en) | Reducing pipeline restart penalty | |
US10338928B2 (en) | Utilizing a stack head register with a call return stack for each instruction fetch | |
TW200912739A (en) | Method and apparatus for length decoding variable length instructions | |
CN103620555A (zh) | 抑制不正确的推测性执行路径上的控制转移指令 | |
US20090164758A1 (en) | System and Method for Performing Locked Operations | |
JP2003523573A (ja) | プロセッサにおける書き込みトラヒックを減少するシステム及び方法 | |
TW200842703A (en) | Branch predictor directed prefetch | |
TW201405425A (zh) | 微處理器中存取及管理程式碼轉譯 | |
US20100287358A1 (en) | Branch Prediction Path Instruction | |
Adiga et al. | The ibm z15 high frequency mainframe branch predictor industrial product | |
US7725659B2 (en) | Alignment of cache fetch return data relative to a thread | |
US6633971B2 (en) | Mechanism for forward data in a processor pipeline using a single pipefile connected to the pipeline | |
US20020056034A1 (en) | Mechanism and method for pipeline control in a processor | |
US11513801B2 (en) | Controlling accesses to a branch prediction unit for sequences of fetch groups | |
US6393523B1 (en) | Mechanism for invalidating instruction cache blocks in a pipeline processor | |
Jaleel et al. | In-line interrupt handling for software-managed TLBs | |
Shum et al. | Design and microarchitecture of the IBM System z10 microprocessor | |
US6351803B2 (en) | Mechanism for power efficient processing in a pipeline processor | |
JPH1049373A (ja) | パイプライン・デジタル・プロセッサにおいて多重で高精度の事象を操作する方法と装置 | |
US7769987B2 (en) | Single hot forward interconnect scheme for delayed execution pipelines |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
GD4A | Issue of patent certificate for granted invention patent | ||
MM4A | Annulment or lapse of patent due to non-payment of fees |