TWI362613B - System and method for validating a memory file that links speculative results of load operations to register values - Google Patents
System and method for validating a memory file that links speculative results of load operations to register values Download PDFInfo
- Publication number
- TWI362613B TWI362613B TW094114201A TW94114201A TWI362613B TW I362613 B TWI362613 B TW I362613B TW 094114201 A TW094114201 A TW 094114201A TW 94114201 A TW94114201 A TW 94114201A TW I362613 B TWI362613 B TW I362613B
- Authority
- TW
- Taiwan
- Prior art keywords
- job
- load
- speculative
- address
- storage
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 36
- 238000003860 storage Methods 0.000 claims description 149
- 238000012546 transfer Methods 0.000 claims description 33
- 230000001419 dependent effect Effects 0.000 claims description 23
- 230000004044 response Effects 0.000 claims description 19
- 238000012795 verification Methods 0.000 claims description 15
- 230000008901 benefit Effects 0.000 claims description 5
- 238000009826 distribution Methods 0.000 claims description 4
- 238000012360 testing method Methods 0.000 claims description 4
- 230000006870 function Effects 0.000 claims description 2
- 238000005304 joining Methods 0.000 claims description 2
- 238000012937 correction Methods 0.000 claims 3
- 238000013507 mapping Methods 0.000 description 36
- 238000012545 processing Methods 0.000 description 35
- 239000000872 buffer Substances 0.000 description 17
- 238000010586 diagram Methods 0.000 description 15
- 206010011469 Crying Diseases 0.000 description 13
- 235000013399 edible fruits Nutrition 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 8
- 239000000463 material Substances 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 239000003550 marker Substances 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 238000001514 detection method Methods 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000012544 monitoring process Methods 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 3
- 238000000605 extraction Methods 0.000 description 3
- 230000033001 locomotion Effects 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 239000004575 stone Substances 0.000 description 3
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 description 2
- KDLHZDBZIXYQEI-UHFFFAOYSA-N Palladium Chemical compound [Pd] KDLHZDBZIXYQEI-UHFFFAOYSA-N 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013481 data capture Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 230000036541 health Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 239000011257 shell material Substances 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 235000009917 Crataegus X brevipes Nutrition 0.000 description 1
- 235000013204 Crataegus X haemacarpa Nutrition 0.000 description 1
- 235000009685 Crataegus X maligna Nutrition 0.000 description 1
- 235000009444 Crataegus X rubrocarnea Nutrition 0.000 description 1
- 235000009486 Crataegus bullatus Nutrition 0.000 description 1
- 235000017181 Crataegus chrysocarpa Nutrition 0.000 description 1
- 235000009682 Crataegus limnophila Nutrition 0.000 description 1
- 235000004423 Crataegus monogyna Nutrition 0.000 description 1
- 240000000171 Crataegus monogyna Species 0.000 description 1
- 235000002313 Crataegus paludosa Nutrition 0.000 description 1
- 235000009840 Crataegus x incaedua Nutrition 0.000 description 1
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 241001465754 Metazoa Species 0.000 description 1
- 241000282320 Panthera leo Species 0.000 description 1
- 235000010627 Phaseolus vulgaris Nutrition 0.000 description 1
- 244000046052 Phaseolus vulgaris Species 0.000 description 1
- 238000009825 accumulation Methods 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 230000002411 adverse Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 235000011389 fruit/vegetable juice Nutrition 0.000 description 1
- 239000007943 implant Substances 0.000 description 1
- 239000013072 incoming material Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 229910052742 iron Inorganic materials 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000029052 metamorphosis Effects 0.000 description 1
- 229910052763 palladium Inorganic materials 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000000630 rising effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000002689 soil Substances 0.000 description 1
- 239000000758 substrate Substances 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/34—Addressing or accessing the instruction operand or the result ; Formation of operand address; Addressing modes
-
- 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/3824—Operand accessing
- G06F9/3826—Bypassing or forwarding of data results, e.g. locally between pipeline stages or within a pipeline stage
-
- 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/3824—Operand accessing
- G06F9/383—Operand prefetching
- G06F9/3832—Value prediction for operands; operand history buffers
-
- 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/3824—Operand accessing
- G06F9/3834—Maintaining memory consistency
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3838—Dependency mechanisms, e.g. register scoreboarding
- G06F9/384—Register renaming
-
- 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/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
- G06F9/3842—Speculative instruction execution
-
- 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/3861—Recovery, e.g. branch miss-prediction, exception handling
-
- 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/3824—Operand accessing
- G06F9/383—Operand prefetching
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)
Description
1362613 .九、發明說明: -【發明所屬之技術領域】 ♦ • 本發明係有關處理器之領域,尤係有關執行在處理器 Ψ 中資料推測式的執行(data-speculative execution)。 【先前技術】 超純里處理裔(superscalar processor)藉由同時執 打多個指令,並使用與該等處理器的設計一致的可能達到 籲之最短時脈週期,而實現高效能。然而,各指令間之資料 -及控制流相依性可能會限制可在任何特定時間發出的指令 之數目。因此’ 一些處理器支援推測式執行,以便得到額 外的效能增益❶ 、 -種類型的推測是控制流推測(_〇1心 speculation)。控制流推測預測程式控制將進行的方向。 將分支預測(branch…用來預測是否將 .法的範圍自每次簡單地作出二分支預測方 下出相冋的預測至維護程式中先前 分支的複雜歷史以便作出其 仵化H哭、 史的預測。可利用硬體最 I。取佳化、或以上兩者來幫助分支預測。可根 據分支預測機制所提供的 ' 並執行指令。當最測方式提取…⑽ 了刀支4日令時,即可證實今公古 預測。如杲預測是錯誤的,則可士止 ' 以推測方式執行的任何指令是^誤的預測而 曾刪的另—種類型之推測是資 叩⑽13加)。例如,預測資料項目的值之值預測㈣ue 92769 1362613 • 丨〇n )可此涉及觀測資料中之型樣以及根據這些型 ,樣而作出預測(例如’可觀測指標計數器變數的先前值遞增 或遞減之方式,而預測該指標計數器變數的值)。位址預測 (address predlctl〇n)涉及資料位置的預測。又一種類型 的貧料推測稱為記憶體系統樂觀式存取(mem〇ry巧s_ =mism)。在多處理1^統中,當處理If在-致性檢查 二erency checking)s成之前,使用來自該處理器的本 "取„ (local cache)之資料而以推測方式執行指 二:即發生記憶體系統樂觀式存取。同樣地, 具有未計算出的位址的儲存:=)在;:載… 义— 卞菜Cstore)之前以推測方戎 取::=Γ:ί作業可能將資料儲存到該載入作業所存 止也谷砟此種推測式執行。在所有這些類型的 貝二測中’最後將評估根本的條件,而可證實哎取消 (—〇)該推測。如果該推測是以錯 、:戈取4 後的及(或)非推測f '、,°束則了(利用更新 指令。 ㈣貝科)重新執行使用推測資料而執行的 / 可㈣等候相錄檢查的完成㈣續 仃 右因正確推測而得到的效能超過因錯镆推、丨 失的效能,則可實現祝的效能增益。因此,二 復。 推」^在錯誤推測時提供有效率的恢 【發明内容】 本發明揭示了用來將載入作業的推測結果連結到暫存 92769 6 厶υ丄j .· * 、J系、冼及方法之各種實施例。在-個實施例中,系统 .被案(咖。ryiile),該記憶體㈣包含組態 =疋成財第—定㈣樣(addresslngpatt㈣及第一 ㈣嶋案之組態被 第二定㈣Γ 含的該第一定址型樣與载入作業的 中儲存的’且其中若該第二定址型樣與該資料項 設定成將;ί 了型樣相符’則該記憶體槽案之組態被 推測結果識別的資料值連結到該載入作業的 執行核心,im 7包含4合到該記憶體棺案的 或多個位… 與該載人作業的該推測結果間之連結。 過荦包::!:例中,系統可包含記憶體樓案’該記憶體 料項設定成儲存第一定址型樣及第一標記的資 含的今第r己憶體播案之組態被設定成將該資料項中包 =::=型樣與載入作業的第二定址型樣比較,且 产相Λ,二—疋址型樣與該資料項中儲存的該第-定址型 ;別二=遺記憶體槽案之組態被設定成將該第-標記所 連結到該載入作業的推測結果。該系統可進 眇在取,… 載作業相依的第二作業 /敎果’以及搞合到該記憶體檔案的功能單 92769 7 1362613 '元且6亥功鲍單元之組態被設定成執行該推測結果與該载 '入作業的貫際結果間之比較而驗證該第一標記所識別的資 • 料值與該載入作業的該推測結果間之連結。 、 4 【實施方式】 第1圖是處理器(1 〇〇)的一個實施例之方塊圖。處理器 (100)之組態被設定成執行系統記憶體(2〇〇)中儲存的指 令。午夕這些4a令對糸統s己憶體(2 〇 〇 )中儲存的資料執行作 籲業。請注意,系統記憶體(2〇〇)可以在實體上分散於電腦系 統各處,且一個或多個處理器(1〇〇)可存取該系統記憶體 (200) 。 、 a 處理器(100)可包含指令快取記憶體(1〇6)及資料快取 記憶體(128)。處理器(1〇0)可包含耦合到指令快取記憶體 (106)的預先提取單元(prefetch unit)(1〇8)。可將派發單 元(dispatch urnt)(104)之組態設定成自指令快取記憶體 (1 0 6)接收指令並將作業派發到一個或多個排程器 修(scheduler) (II8)。一個或多個排程器(118)可耦合成自派 發單元(104)接收被派發的作業並將作業發出到一個或多 個執行核心(124)。執行核心(124)可包含組態被設定成執 行對資料快取記憶體(1 2 8 )的存取之載入/儲存單元 (126)。可將一個或多個執行核心(124)所產生的結果輪出 到結果匯流排(result bus)(130)。可將這些結果用來作為 俊續發出的指令之運异元值,及/或儲存到暫存器播 (116)。可將退休符列(retire queue)(102)雜合到一個或 多個排程器(118)及派發單元(1 〇4)。可將該退休仵列之組 92769 1362613 、態設定成決定何時可使每—發出的作業退休。在—個實施 _、例中彳將處理裔(1 〇〇)设計成與架構相容。請注意, 處理。。(10 0)亦可包含其他的組件。例如,處理器(1 〇 〇)可 包含分支預測單元(圖中未示出)。 在派發單元(104)接收到指令之前’指令快取記憶體 006)可暫時儲存這些指令。可經由預練取單元(⑽)自 系統記憶體(2G0)預先提取指令碼(㈣加咖⑺心),而 籲將指令碼提供給指令快取記憶體⑴…可以各種組態(例 如^组關聯式⑹卜咖仏❿小完全關聯式 (fu^lly-associative) > ^ ^ (direct-mapped)) 來貫施指令快取記憶體(106)。 八預先提取單元(⑽)可自线記憶體(⑽)預先提取指 I碼’以供儲存在指令快取記憶體(1G6)内。在-個實施例 ί ?μ、可將t預先提取單元(1 〇8)之組態設定成自系統記憶體 將碼叢發(burst)到指令快取記憶體(1 〇6 )。預先 魯^單元(⑽)可採用各種衫的指令碼預紐取技術及 單兀⑴4)可輸出其中包括執行核心(124)可執行 ^立元編碼作業⑹t-e卿㈣啊心心運算元位址資 即資料、及/或偏移值資料⑷SPW咖t data)、 r ::。在某些實施例中,派發單元(1 0 4 )可包含解碼電路 ^圖中未示幻,用以將某些指令解媽成可在執行核心(124) 订的作業。簡單的指令可對應於單-作業。在某些實 &列中,較複雜的指令可對應於多個作業。在將涉及暫存 92769 9 丄允2613 .器的更新之作業解碼時,可保留暫存㈣⑴6)内的 位置,以便儲存預測的暫存器狀態(在替代實施例中:可; 重衝區(reorderbuifer)用來儲存每—暫存器的 或夕個預測的暫存器狀態)。暫存器對映單元 =lster map)(134)可將來源及目標運算元的邏輯暫存 為名稱轉換為實體暫存器讀,以便有助於暫存 單元⑽)可追縱暫存器標⑴6)内㈣些暫存 °。目則被分配及未被分配。 第1圖所示之處理器(100)支援非循序執行(〇ut 〇ί order)。退休❹K1Q2)可針對暫㈣讀取及寫 =㈣程式順序,可進行推測式指令執行及分支錯誤^ =设’亚可協助精確的異常處理。在某些實施例中, :心5°2)亦:提供用於推測的暫存器狀態之資料值 的 ㈣存$更名。在許多實施例中,退休彳宁列(1〇2) 广可類似於重新排序緩衝區。然而,與典型的重新排 料值的儲存。在;2;^宁列(1〇2)可能不提供任何資 ^ ^ 在某二例中,可以先進先出的組態來實 :而在該組態中,當作業被確認(~ ;移到該緩衝區的“底部”,因而將空間讓給在 =仵列⑽)可將暫存器槽⑴6)= ==器狀態之暫存器解除分配,並將用來指示哪㈣ 二=信號提供給暫存器對映單元⑴4)。藉* ..一⑽⑴6)内(或在—替代實施例中為在一重新排 92769 1362613 ' )的預測的暫存器狀態直到產生這些狀態的該 •寻作業被確認為止,甚八±0 如断使,料在暫存器 推測方式執行的作業之結果無^(mispredlctedpa⑻以 位署在將#疋的作業解碼時’如果所需的運算元是暫存器 (或重::=存器位址資訊傳送到暫存器對映單元⑴4) 元的、鞋时衝區)。例如,在Χδ6架構中,有八個32位 εΓΛ!ρ 1Τ,ΕΜ 包人用於合戸'肢暫存器檔(ιΐ6)(或重新排序緩衝區) s ^改變這些邏輯暫存器的内容的結果 :存非猶輪。可分配暫存器播(_中之實體 的内三:於解碼w被決定將修改其中-個邏輯暫存器 點上—作業之結果。因此,在執行特定程式的各時 可呈有V/檔(116)(或替代實施例中之重新排序緩衝區) 個暫存特定邏輯暫存器的推測式執行内容之一個或多 為作2益對映單元(134)可將實體暫存器指派給被指定 可冰=目f運算元之特^邏輯暫存器。派發單元(1⑷ 存益槽(116)具有被指派給被指定為特定作業的 蕲;、。。异:的邏輯暫存器之-個或多個先前被分配之實體 二子:。曰存器對映單元(134)可提供最近被相派給該邏輯 ===體暫存器之標記。可將該標記用來存取暫存器 : 之運#元的資料值’或用來經由結果SWK13()) 运' 結果而H資料值。士口果該運算元對應於記憶位 92769 11 丄 • = (118)可儲存待處理的作業之作業資訊。此外,每 .:可儲存已被執行過但仍然可能再度被發出 資Ifl。嵙η — r示 < 作系 作章執行時可取得任何所需運算元的值,而將 出到一個或多個執行核心(124)。因 H Jill ^ V 系的執 …、 此舁原始程式指令序列的順序並不相同。可將涉 .:料推測的作業保留在-個或多個排程器⑴8)中,直到 °玄等作業變為非推測式為止’因而若該資料推測是錯誤 _的,則可重新發出該等作業。 B °、 —個實施例中,每一執行核心(124)可包含組態被設 成執:加法及減法的整數算術運算、以及移位、旋轉、 C輯運|、及分支作業之若干組成部分。亦可包含浮點單 元({1«^1:1叩〇〇1111:111111:),以便配合浮點運算。可將一個 或多個執行核心(124)之組態設定成為載入/儲存單元 (126)將要執行的載入及儲存記憶體作業而執行位址產生 (address generation)。 • 一執行核心(124)亦可將與有條件分支指令的執行有關 之資訊提供給分支預測單元,因而,如果該分支被錯誤預 測,則該分支預測單元可清除在該錯誤預測的分支之後的 已進入彳曰令處理官線之各指令,並使預先提取單元〇〇8) 更改提取的方向。被改向的預先提取單元(108)然後可開始 自指令快取記憶體(106)或系統記憶體(2〇())提取一組正確 的指令。在此種情形中,可捨棄原始程式序列中在該錯誤 預測的分支指令之後發生的指令結果,其中包括先前以推 測方式執行的且暫時被儲存在暫存器檔(116)中之那些指 92769 1362613 令結果。如果暫#器值正在更新,則可在結果匯流排(i3〇) 上,一個或多個執行核心⑽)内的各組成部分所產生的 二不輸出到暫存器檔⑴6)。如果正在改變記憶位置的内 ί 。個-或多個執行核心〇24)内產生的結果提供給 載入/儲存單元(126)。 (124)1^/儲存早1(126)提供了 —個或多個執行核心 (⑽契貧料快取記憶體⑽)間之介面。在—個實施例 :’可以具有用於待處理的載入或儲存作業的資料及位址 貝说的數個儲存位置之載入/儲. 單元⑽。載入/儲存單^配置載入/儲存 理的儲广i匕八叫 早凡(126)亦執行載入指令與待處 之相依性檢查,以便確保維持資料一致性。 儲存單元(126)盥系統子在載入/ 隱,(2〇〇)之間轉移的資料而設之 决取圯憶體。如同前文所述之指令 其令包括組關聯式組態的各種^思組1〇6),可以 取、,己憶體組態來實施資料 取記憶體(_·^ Cache)來4;二 以統一式快 資料快取記憶體⑽)。令快取記億體⑽)及 迄憶體檔案 第2A圖示出派發單元⑽)的一個 例令,派發單元(104)包含暫存哭對盹。。 在。/只施 播案⑽)。如前文所述,元(134)及記憶體 能#定士担糾叔六。。 了將暫存杰對映單元(134)之組 心、5又疋成k供暫存态更名。暫存哭 一來泝3 _ AA 存。。對映早元(134)可接收每 仏運异兀的邏輯暫存器名稱,並輪出最近被指 92769 14 1362613 ..定給邏輯暫存器的實體暫存器之實體暫存器名稱。雕 •禮案(132)包含記憶體檔案控制器⑵2)及記 ^二 單元(204)。 、田*儲存 記憶體檔案儲存單元(2〇4)包含一個或多個資料項 (entry)(220)。每一資料項(220)可包含定址型樣、 (address i ng pa11ern) (2〇6 )、以及與該資料項的定址型 相關聯之標記(208)。當產生資料值時,每一標記可藉由^ 鲁示將把該資料值儲存在何處(例如,儲存在一重新排序緩= 區内或一暫存器檔(116)内),而識別該資料值。例如'·,二 圖式之實施例所示,每一標記可識別暫存器對映單元(MG 所才S示的被分配以儲存該資料值之實體暫存器。每一定址 型樣可包含用來指定作業中之位址的資訊之全部或部2。 例如,請參閱第2Β圖,圖中示出例示的定址型樣(20^)。 在該實施例中,定址型樣(2〇6)包含基底邏輯暫存器名稱 (210)、索引邏輯暫存器名稱(212)、及偏移值(214)。某些 肇定址型樣(206)可包含用來識別記憶體中之特定區段的暫 存态之區段邏輯暫存器名稱(segment 1〇gical name)。在某些實施例中,可利用數個暫存器、鎖存器 (latches)、正反器(fi ip-fiops)、或其他以時脈觸發的儲 存單元(clocked storage)來實施記憶體檔案儲存單元 (204)。在替代實施例中’記憶體檔案儲存單元(2〇4)可包 含一個或多個隨機存取記憶體(Random Access Mem〇ry ;簡 稱RAM)單元。 請注意,在某些實施例中,記憶體檔案儲存單元(2〇4) 92769 1362613 :儲存的定址型樣⑵6)可包含比為作業指定的所有定址 ·.貢訊少的資訊。例如,記憶體槽案儲存單元(2〇4)中之 項可儲存比用來指定偏移值攔位(214)内的偏移值的所貝有 位凡少之位兀。在其他的實施例中,記憶體槽案控制哭(2 :根據該記憶體樓案内的資料項是否可儲存特定作業的所 而選擇性地選擇是否要分配記憶體槽案儲存 )中之貝料項。例如,如杲記憶體槽案儲存單元 04)中之每資料項最多可儲存16位元的偏移值資訊,且 業的Μ資訊包含24位元的偏移值資訊,則記憶體 田:控制益(2 0 2 )可不將記憶體檔案資料項分配給該作業 的疋址資訊。 〆、 記憶體檔案控制器(2 〇 2 )可將未派發的作業 定址型樣與記憶體擋案儲存單元(2〇4)中各資料項内儲存 =那些定址型樣比較。如果作業的定址型樣不符合記憶體 k案儲存單元(2G4)中各資料項内目前所儲存的任何定址 •型樣(亦即,該作業的定址型樣未命中⑷ss)該記憶體檔案 储存,元),則記憶體槽案控制器(2G2)可分配記憶體槽案 諸存單兀(204)中之新資料項,用以儲存該作業的^址型樣 之全部或部分。如果記憶體檔案儲存單元(204)内沒有可供 分配的,置之資料項,則記憶體檀案控制器(2。2)可使 用。者如最近最少使用(Least Recently ;簡稱⑽)、 $進先出(First In,First Out ;簡稱FIFO)、隨機替換 等的替換機制而選擇要被覆寫的資料項。 記憶體檔案控制器(2〇2)除了在被分配的資料項内儲 92769 )6 舍到—個或多個排程器⑴8)時 .所輪出的標記提供給料—個以個_2) 的值C ⑽)可回應該標記所識別 中ablllty)(例如,在暫存㈣(U6)
(二·=⑽)上),而發出载入作業。執行核J 唁被、卓,士 τ 4入作業’因而在結果匯流排(13〇)上廣样 " 口的值,作為該載入作業的推測社果(杜、、主立二田 些實施例中,钤弁λ仏旅 $果(明注意,在某 不以旌i» 4 - ^ 冑的結果所產生之資料值本身可以 施Μ 為或以其他方式識別為推測值)。在其他的恭 二’可將該標記儲存在推測對映心 ::到該载入作業的推測結果,且將於下文中說明it (例如,二:因而一旦可取得該標記所識別的資料值 可轉二:料:器=16)中或在結果匯流排(13〇)上),即 作為該載入作業的推測結果,以便使用 果而可輪相㈣作t。在議形中,此種 么可以u各相㈣作業的執行延遲料取 ^推測結果更快地使用載入作業的推測結果而執行該; 料值的。在某些實施例中,可執行載人作業而轉送資 村值’因而該資料值被輪出 竹、貝 入你I 称出到結果匯流排(130),作為該載 :的推測結果。例如,在一個實施例中,並 =耗=個時脈週期而執行載入作業(假設該載入作 ί:中娜取記憶體(128)),而是藉由輸出資料值及用 來識別該資料值的標記作為載入結果,而在單一週期中執
1S 92769 叫 e>i3 载入作業。在其他的實施例中,可在作業派發時將記 =體檔案控制器(2〇2)所輸出的標記直接提供給各相依的 2業ί具有载入作業所產生的運算元之作業)作為推測的運 凡來源,而以更間接之方式轉送資料值。用來轉送 值的裝f可包括下列各裝置中之一項或多項:派發單元’, =派,單元之組態被設定成將該載人作業修改成以推測式 存。。至暫存态(register_t〇_register)移動作業之方弋 j行,或被設定成將作為推測的運算元來源標記^該輕二 =給相依的作業;排程器,該排程器之組態被設定缝 "破連結的資料值之可取得性而發出祕改的載入及 的作業;以及執行核心,該執行核心之組態被設定 j輸出㈣連結的資料值作為該載人作㈣結果,或被設 疋成使用該被連結的資料值而執行該相依的作業。°又 記憶體檀案⑽)追縱存取資料快取記憶體 ⑽)(或糸統記憶體(_)中之資料的作業之定址型樣。 中儲存的暫存器值可被連結到記憶體的 : 中㈣雜。請注意’記憶體檔案(132)容許在將 ,用來把暫存器值連結到推測的載入結杲的作業流中彼此 相對被移動的各作業間之相依性。因此,記憶體槽宰可提 ^可被數個發生於其間的作業分隔的各作業間之相依性歷 更0 作業的推測結果連結 方法的-個實施例之流程圖。在步驟(㈣中,使暫 記與定址型樣相關聯’而指示該暫存器及該位址都有;: 92769 19 1362613 的_值D第—載人或儲存作㈣定該標記 .送疋址型樣。例如,如杲該第一作業是 標記可識別為了儲存載入結果而被分配的實體漸存哭則= ::定址型樣用來計算該載入作業的位址。 作,反而是健存作業,則該定址型樣可指示該儲存作業的 =之位址,且該標記可識別_存作業所儲存的資料。 例中,可將該標記及該定址型樣儲存在記憶體 貝抖項巾’而使該標記與該定㈣樣相關聯。 =驟⑽至305)所示’如果载入作業的定址型樣盘 作業㈣址型樣相符,則可將該載人作㈣推測結果 、‘到被指定給該第一作業的標記所識別之資料值。如牛 =(挪至3⑴所示’如果該載入作業的定址型樣與第一 ^ f的疋址型樣不相符,則可使該載人作業的定址型樣料 載入作業的目標之標記相關聯(例如,藉由將該定址型费及 賴記儲存在記憶體樓案的資料項中)。此外,如步^ !所不,可存取資料快取記憶體而正常地執行.該“ 在一=實施例中’可將該載入作業的定址型樣與—個二上 的先刖作業之定址型樣比較。例如’可將該載入作 址型樣與記憶體標案中目前儲存的每—定址型樣比’ 如果該載入作業的推測結果連結到該標記所識㈣ 料值,則如步驟(307)所*,可將該資料值轉送到—貝夕 個相依的作業’作為該載入作業的推測結果。如將於;I 中更詳細說明的’可經由結果轉送或藉由轉送各相依的作 業可使用該資料值作為推測的運算元來源之指示,而轉送 92769 20 I362613 在;個實施例中’如果經由結果轉送而轉送該 •(,、 亥貝科值的作業完成執行的一個週期 ^ )之錢㈣經轉料⑽值㈣行各相依的作 .!:如:經由各相依的作業可使用實體暫存器作為推測的 堤异7L來源之指示而韓送兮咨 的作業完成執行時,立即發出久,了在產生6亥貧料值 P毛出各相依的作業。如步驟(3G9) 二斤:’可在證實該推測結果之前’先轉送該推測結果二 ^無須存取資料快取記億體的情形下轉送該推測結果 即,可以比藉由存取資料炔敢 更快速地轉送推測結果)。、 而產生的非推測結果 :果;=(3。9)中證實該推測結果是正確的 J她丁應取記憶體存取之情形下完 如果在步驟⑽9)中Μ該推測結果是錯誤的,= =丁貰料快取記憶體存取,以便取得正確的結果(圖中未 )。如果確係如此,則可使用該載人作業的正確处果 :Γ= 吏用广作業的推測結果執行的任二依的 、〜的—貝料值作為該載入作業的推測結果之前, 連 =9)中執行該證實。在此種情形中,可正常地執行= 業,或者如果決定該連結是正確的,則可轉送該 為該載入作業的非推測結果。 /、/-乍 為了進一步解說記憶體檔案(132)的作業 几(104)將要處理的-序列的作業包含下列作t Λ w 5早 M〇V EBX, [EDX + ΕΑΧ - displacement A] ' α〇Α〇 92769 21 1362613 . MOV ECX, [EDX + EAX - displacement A] (LOAD 2) MOV [EDX + EAX - displacement A], EAX (STORE 1) 在程式順序中可以一個或多個發生於其間的作業分隔這些 作業中之每一作業。如上式所示,這些作業中之每一作業 都包含相同的定址型樣EDX + EAX - displacement A。 _ 當將LOAD 1的定址型樣提供給記憶體檔案(132)時, 記憶體檔案控制器(202)可檢查記憶體檔案儲存單元(204) 中是否有與LOAD 1的定址型樣相符的定址型樣。假設該定 址型樣並未命中記憶體檔案儲存單元(204),則記憶體檔案 控制器(202)可分配資料項(藉由使用未分配的資料項,或 藉由覆寫業已分配的資料項),以便儲存該載入作業的定址 型樣之全部或部分、以及暫存器對映單元(1 34)所提供的該 載入作業的目標實體暫存器之實體暫存器名稱。因為該載 鲁入作業未命中該記憶體檔案儲存單元,所以記憶體檔案控 制器(202)可不輸出該載入作業的標記。 當記憶體檔案(132)接著處理LOAD 2時,該載入作業 的定址型樣可符合回應LOAD 1而被分配的資料項中之定址 型樣(假設尚未回應發生於其間的作業而覆寫LOAD 1的資 料項)。記憶體檔案控制器(202)可回應LOAD 2的定址型樣 命中記憶體檔案儲存單元(204),而輸出為了儲存LOAD 1 的結果而被分配的實體暫存器之實體暫存器名稱。可將該 實體暫存器名稱用來將LOAD 1所載入的資料值連結到 22 92769 1362613 .LOAD 2的推測結果。 .當記憶體樓案(1 32)處理STORE 1時,該儲存作 址型樣可命中回應·D !而被分配的資料項(仍然假言二 有任何發生於其間的作業使該資料項被覆寫)。铁而,= 體檔案控制器(2〇2)並不輪出為了儲存L_ !的 = 分配的實體暫存器之實體暫存器名稱,而是可以被 STORE i所儲存的資料的暫存器之實體暫存哭名 :了二:存的實體暫存器名稱(_,此,當後續= 入作業中中該資料項時,記憶體 載 STORE i的來源實在。。夕K202)將輸出 貫體暫存Β名稱,而不輪出 LOAD i的目標暫存器之實體暫存器名稱。 輸出 憶體㈣(132)用來作為推測結構,所以記 ? 4)中錯存的資訊之 (132)中:業亚不是極端重要的(例如,記憶體檔案 最好是改善記憶體槽細)的正確性然 將载入作業的推測处 《 σ稭由 值而提供之^ ^確地連、纟°心體暫存器中儲存的 起的效r耗或減少因錯誤預測的推測連結而弓ί 址的暫存^更新^些實施例中,當痛測到對用來指定位 資料項益二使記憶體槽㈣存單元(2〇4)中之各 母一定址型樣可包含隹性例如’ 個或多個邏㈣存^ k的基底及索引之— 為資料項的定址刑Γ 。如果後續的作業修改被指定 、、,土樣(2〇6)的一部分之該等邏輯暫存器中 92769 1362613 .之邏輯暫存器,料使該資料項無效。因此,如第2A圖所 .二可將每一作業的目標暫存器之邏輯暫存器名稱輸入到 4體植案(132) ’以便執行使#料項無效的作業。 一此外,在某些實施例中,可回應監視到另一裝置取得 將貢料寫入特定位址的存取,而使記憶體標案儲存單元 各資料項無效。同樣地,可回應偵測到錯 =使—貝料項無效…般而言,可監㈣如可 體槽案儲存單元(204)中之資料項的正確性等的許多 件’且將這些條件用來決定何時要使資料項無效。缺卞 因為記憶體檔案(132)是一種推測結構,所以若實施某些監 視方法的額外硬體成本大於記憶體槽案正確性的潛羡 善,則某些實施例可以不實施這些監視方法中 檔案驗譖 /、二方法 处載入儲存單凡(126)(或用來驗證處理器(1〇〇)内的連 二另一裝置)可驗證由記憶體樓案(132)所識別的實體暫 諸:的值至載入作業的推測結果之連結。如果該連 入健存單元(126)可使該載入作業被重新 Μ。/或在:果匯流排(130)上廣播該載入作業的正確 ίΐ而㈣新發出該載入作業時,可利用經過更新的非推測 值而使利用該載入作掌 -下菜的推測結果之任何相依的作業重新 主 行或者,如果该連結是錯誤的,則處理器(1 〇〇) 二^(ilush)在錯誤計算之後發生的作#,且利用該載入 業的正確結果而重新開始執行這些作業。 在某些實施例中,可在載入儲存單元(126)中以比較作 92769 24 1362613 業位址之方式而執行連結驗證。載人儲存單元 各f龍作業的位址,而積測哪些作業應該已 一固貫施例中,載入儲存單元⑽)可使用儲存至載。入在 (St〇re~t〇-load)轉送比較哭來驗噔推制凉& 至載入轉送比較哭用於^二推測連結。除了將健存 轉送比較器用來;外’尚可將儲存至載入 果。例如,卞葡c較售的儲存作業的較新的載入結 送的若干比3 可包含用來執行儲存至載八轉 々从k 延些比較器可將每一待處理的載入作章 止與一組較舊的儲存作業之位址比較。可選擇盘 ,新:載入作業的位址相符的位址的一組較舊的储存聿 ==Γ.:然後可轉送該組較舊的储存作業: 結果。’ t子作業所儲存的貧料’作為該載入作業的 人儲=二圖=載入,存單元(126)之一個實施例,該載 兀 之組悲被設定藉由成比較作業位址而將 ’儲^载入轉送(store_TO—LoadForwardlng;簡稱 s 比較裔-(280)用來執行連結驗證。如圖所示 ⑽)可包含未U的載人及儲存作業之儲存區。 她例中’係將獨立的儲存區提供給载入作業(在載入之储存 區(250)中)及儲存作業(在儲存之儲存區(_中)·欲而, 在其他的實施例中,可將載入及儲存作業儲存在相同的作 業儲存區中(例如,額外的攔位可指示每一作業是載入作 業、儲存作業、或載入及健存作業)。在某些實施例中,該 作業儲存區可以是#程器Cl 1 8)的一部分。 92769 25 1362613 •可將用來識別每—載入作業的資訊儲存在載入之传存 .區⑽)中之資料項⑽)。該資訊可包括:該 入作業的標記(254)、用來識別具有被該載人作㈣推測ΐ 果連結到的值的記憶體作業(另—載入或儲存作業)之Μ ==、了用來指示作為該載入作業的目標的位:之 位止(258)。亦可包含其他的搁位(圖中未示出)。 記憶體槽案⑽)可㈣載人作f (將其推測結果連处 到由能憶體播案提供的標記所識別的資料值之該載入; 業稱為連結的載入作辈(j彳n ^ π ^入作業⑴也吨〗_),,)對記憶體播案 (132)的力中’而產生轉送標記(256)。記憶體槽案⑽) 除了將標記⑽)及定址型樣⑽)儲存在每—記憶體權案 =項⑵0)之外’尚可錯存用來識別使資料項⑽)起初 被为配的記憶體作業(例如,載入或儲存作業)之標記。可 ‘出該標記作為轉送標記(256),用以識別其運算元被連处 到較新的記憶體作業的推測結果之較舊的記憶體作業。、·。 可將用來識別每-儲存作業的資訊儲存在儲存之儲存 -(store storage)(26〇)令之資料項(262)。該資訊可包含 ,來識別該儲存作業的標記(264)、以及用來指示作為該儲 存作業的目標的位址之位址(268)。 可將STLF比較器(280)之組態設定成決定載入作業應 自哪一儲存作業(在有儲存作業的情形下)轉送資料。此心 外,STLF比較器(280)可驗證各載入作業的推測結果盥值 間之連Hit體㈣(]32)可以前文所述之方式產生這也 還結。可將STLF比㈣(280)之組態設定成:比較載入作 92769 26 1362613 $的位址(258)與—個或多個儲存作業的位址(268),而搜 尋1來轉送資料給該載人作業的儲存作業(在有儲存作業又 I: t :下::因而驗證該載入作業的推測結果與該儲存作業 兀3之連結.如果並未找到任何相符的儲存作業(具 =連、。的載人作業的位址相同的位址之儲存作業),但是 ==的轉送標記(256)指示該載入作業的推測結果 任Π ^亚未識別出可用來轉送資料給該載入作業的 任何其他的載入作業,且將 、 ’、 找到了相符的儲存作業,作^ ^ t/兄明此種情形)。如果 (264)盥哮哉土…、—疋"相付的儲存作業之標記 比較哭業的轉送標記(256)並不相符,則STLF 車乂时(280)可類似地輪出該 到了相符的儲存作業,且兮^ d曰㈣之指不。如果找 ^ έΊ-m :、 付的儲存作業之標記(264) /、忒轉达的載入作業相符, 證實該連結之指示(或者只須不輸二=f〇)可輸出已 斥)。在某些實施财,可在疋錯誤的指 入轉送的程序大致相同的時間=二業執行储存至載 少一部分。 上進仃邊連結驗證程序之至 如果特定載入作業的推測处 作業的運算元,則作°_未連結到另一記憶體 無效值、或以其他方標記_設定為 結驗證的值。對於該载入作業而=載γ乍業執行任何連 執行錯存至載人轉送,但並不執料較器(刺可 咖比較器(_除了驗證裁入的;^结果與儲存運 92169 27 丄362613 ^元間之連結之外,亦可將㈣比較器(28〇)之組態設定 .成驗證載人的推測結果與其他載人運算S間之連結。例 如,記憶體檔案(1 3 2)可监h \ ^ 一 ^ ) 了將較新的載入作業之推測結果連妗 =較售的載入作業之運算元。因此,該較新的載入作業之 輅运標記⑵6)可識別該較舊的載入作業。STLF比較器 5 Γ二了門又有任何在程式順序上發生在該等被連結的 址之儲存位址,而:;:載::合,新的載入作業的位 〇且声' 5亥载·入—载入(i〇ad-load)連结。盎 入作業與較舊的儲存作業間之連結類似二 = =:=?誤的(例如,發 符),與該較新的載入作業之位址相 則—mF比㈣(28G)可輸出該連結是錯誤的相示。 作掌舊的一固3例中,該等㈣比較器可自比連結的載入 連結到較舊的作作尋找具有與其推測結果被 丨之最新的作举:運异兀的載入作業的位址相符的位址 乍業而證貫一對載入作業間之連結。 :Γ25相二的:業是連同該連結的載入作業而儲存的 二:::果並未發現任何相符的作業,或者如果相符 _可輪出該連結是錯誤的指示。乍業則㈣比較益 符載ί.二實:例中’ S T L F比較器(2 8 〇)可尋找最新的相 乍業(自比連結的栽人作堂签 作業的位址相… 售具有與連結的載入 ㈣位址之—組載入作業中尋找)及最新的 92769 28 2儲存作業(自比連結的載入作業舊 載 位…組_業中尋找二 式順;^ ^ 4新的相符儲存作錢(按照程 =),且如果該最新的相符載入作業是該連結的載入作 所識別的作業,則STLF比較器:: 最新如果該最新的相符載入作業比該 結是錯誤的(例如:;===_可決定該連 新的相符儲存作業)/ 載作#應已連結到該最 可比間之連結時,比較器(_ 勺載入作業,這是因為該連結的載入作業 ===结到在程式順序上比該最新的相符健存作 ^/ 相付之載入作業,其中該最新的相符儲存作業 亥連、、、°的載入作業舊(與只恰當地連結到相符的較舊載 作11之㈣的作業不同)^因此,該等STLF比較器除 ·:只識別最新的相符載入作業之外,尚可識別-組相符。的 入作業,並決定該組中是否有任何相符的載入作業是該 連結的載入作業的轉送標記(256)中所識別之被連結到之 載入作業(nnked-to load)。 在某些情形中,在證實連結之前,可能已自處理器(1〇〇) h休或移除被連結到之記憶體作業。因此,由於較舊的作 =之和除,所以STLF比較器(280)可能無法識別其推測結 $連結到被移除的作業的運算元的載入作業之相符的記^ 乍業且細1使该連結是正確的也是無法識別。在無法證 92769 29 1362613 實連結的情形中,STLF比較器(28〇)可輸出該連結是錯誤 的指示。 、 回應連結是錯誤的指示,可使記憶體檔案(132)的 3分無效。例如’在一個實施例中’可使用來提供載二 乍業的推測結果之特定記憶體檔案資料項無效。在盆他的 貫施例中,可回應STLF比較器(28_測到錯誤的連处, 而使整個記憶體檀案(132)無效。此外,可以 ,檔案⑽)取得的推測結杲,而使用載人作業的非推^ 以執仃依賴該載入作業的結杲之各相依的作業 =執行了這些相依的作業’則重新執行該等相 業)。 於峨請Γ意,雖然所示之實施例使用咖比較器執行連結 但是其他的實施例可採用並未被另行用於儲存至載 的若干專用比較器,以便比較記憶體作業位址及/ 或疋址型樣,而執行連結驗證。 廍、=某些貫施例中,每當記憶體播案(132)輸出用來識別 二子人作業的推測結果連結到的資料值之標記時,記憶 脰檔案(132)亦可使與該載人作隸連結到的記憶體作業〜 =之旗標被設定。例如,如果載入作業的推測結果回 ^载入作業的定址型樣命中記憶體標案資料項而連結到 資料值的標記憶體播案(132)可輸出 連、、到该推測結果,並輸出該較舊的 儲存作業已連結到較新的載入作業之指示。如第4β圖所 不,載入储存單元Π26)可回應該指示,而設定與該較舊的 92769 •30 .料作業相關聯之退休旗標⑽)ι .繼續使退休旗標(269)被設定,直到已證·=(】⑻可 連結到該儲存作業的運算元之 二/、弟一標記已 請注意,在某些實㈣,當較:==:為止。 連結到較舊的載入作業之目標運算元時載入果 的載入作業(圖中未示出)_聯之退休旗標。°心、較售 於決定何時要停止分配先前 兀月j刀配給母一儲存作業的資 料項⑽),且何時要使該儲存作業退休時,載貝. (126)及/或退休佇列(1〇2)可使用盥 兀 退休旗標(269)。如果儲存作掌冑相關聯的 :存::1=,(—給二 推測結果間:=的^ 定時,退休件m⑽不可使該標(269)被設 =關如的退休旗標之實施例中,於決定何時要停止分配 給每-載人作業的㈣項(252) 二作業退料,載人储存單元(⑽及/或退休㈣(= ^一種與前文中參照儲存作業所述的方式類似之方式而 使用與該載入作業相關聯的退休旗標。 ,第5A圖是根據一個實施例而驗證載入作業的推測結 果與特定標記所識別的資料值間之連結的方法之流程圖。 如步驟(321)及(323)所示’如果載入作業的推測結果連結 到較售的(在程式順序上)記憶體作業之運算元,則可連同 乂 k 。的(較新的)載入作業而储存該被連結到的較舊的作 92769 1362613 業之標記。例如,可將諸如第2 A圖所示之安 將該連結的載入作業之推..彳钍 〜虹4田木用來 ^卜 推測結果連結到較舊的儲存作紫撕 儲存之㈣值,或連結频舊的“作業 料 之㈣較舊㈣人或儲存作掌 之^(例如,儲存在排程器及/或載A ^ 以識別該載入作業被連結到哪一作業。早兀中),用 如步驟(325)所示,在某—時點上,該載 驗證連f的載入作業與被連結到的較舊的作業間之^ 在某些實施例中’該載入儲存單元可將若干ST〖 =。 來執行該驗證。該等STLF b ’。。 b車父$用 亦T拉兮从^ 除了執行連結驗證之外, ;:二:較器用來執行儲存至載入轉送。或者, 该载入儲存單元可具有只執-者 如步驟(327)所示,如果㈣二的專用非電路。 中決定料結是正㈣,㈣2=存/元在步驟(卿 作業的推_以_ 行的推測是如此)。在某此實 己匕月^田木所執 已證奋自 巾,該載人儲存單元可將 已。且貝该連結的汛息通知 如,排程器)。 中之其他組成部分(例 =卵25)及步驟(329)所示,如㈣載人錯存單元 :::m,則該載入儲存單元可輸出該連結是 例如’輪出到排程器及/或派發單元)。回库 二二可產生該連結的載人作業之新結果。例如,如i =====驗證物,綱驗證程序期 σ此已識別出應用來轉送資料給該該 92769 1362613 ‘ ^的^人作業之儲存作業。可轉送被識別的儲存作業所 V二貝枓’作為該載入作業的非推測結果。此外,可回 誤:連結,而使該記憶體㈣(或者該記憶= 木甲之至J 一個賢料項)無效。 第5Β圖是根據—個實施例而 業的連結而使該記憶體作業退休的;^ :V驟(331至333)所示,如果較新的载入作 尨果連結到較舊的記憶體作 的資料,則可設定與較^作掌’载入或儲存) 之旗浐乂甘^ 作業(破連結到的作業)相關聯 之在某些貧施例中, 包舍該旗f 了在排^或载人Μ存單元令 如步驟⑶5至337)所示,如果 則可將該作業的退休延遲 被5又疋 測全士果了^新的載入作業之推 則,如步驟Mqcn私- 逆、、·。為止。否 不’可正常地使純舊的作業退休。 雖然則文所述的例子使用位址比較(浙咖 compar i sons)(亦 gp,與由 私々—也 而執行連結驗證,但』並他業所存取的位址) 疋”他的貝細例可使用值比較(va] ue 即,藉由比較因記憶體作業存取而產生的 位址證。例如’在並未將特定暫存器值用於 界值^^ 業中,可在推測連結驗證中使用該暫存 用來健存被推測地連έ士到載位址計算的—該暫存器 載入作業的實際結杲時,严f果之值。當得到該 載入彳&ό存早兀(或執行核心)可 92769 33 1362613
將該並未被另行使用的暫存 較。如果以上兩者是相同的 該連結是錯誤的,且可廣播 便將更正傳播到整個該處理 的連結,而使記憶體檔案的 器中之值與該實際結杲之值比 ,則4連結是正確的。否則, δ亥載入作業的非推測結果,以 器。此外,可回應偵測到錯誤 全部或部分無效。 >在-個實施例甲,用來儲存被推測地連結的結果值之 暫存器可以是索引暫存器。可將記憶體檀案控制器之組態
没定成只將記憶體檀案儲存單元分配給並未將該索引暫存 器用於位址計算的各記憶體作業。 子 在一個實施例尹,如第6Α圖所示,可在載入儲存單元 (126)中執行基於值(value_based)的連結驗證。其中,載 入儲存單元(126)包含專用的值比較器(value c〇mparat〇rs)(282),該值比較器(282)之組態被設定成將 載入作業所載入的實際值(255)(經由儲存至載入轉送,或 藉由存取資料快取記憶體及/或記憶體)與該載入作業的 籲推測結果(257)比較。如果該等兩個值是相等的,則載入儲 存單元(126)可決定該連結是正確的。否則,載入儲存單元 (126)可廣播作為該載入作業的正確結果之被載入的值 (255>),因而任何相依的作業使用該正確的值來執行(或重 新=行)。載入儲存單元(126)亦可將用來指示應回應偵測 到錯誤的連結而使記憶體樓案(132)中之一個或多個資料 項無效之信號提供給派發單元α 〇4)。 或者,如第6Β圖所示,可在一個或多個執行核心(124) 執行基於值的連結驗證在這些實施例中,派發單元(丨〇4) 92769 34 丄 • L 1 έ #業推測結果連結到記憶體樓案(132)所識別的 .將=:!入作業轉換為結合的載入作業及比較作業。可 各別地發出到載人儲存單元(126)及功能單元 3!;:人料單元(126)可正常崎行載人作業。當可 址呀瞀塹二作業的非推測結杲時’可經由該未被使用的位 推測結果也載入儲在Λ二存')存取推測結杲,並將將 g L 料早Μ126)所產生的該非推測結果比 处θ正湓仃^玄比較作業。如果以上兩者是相等的,則該連 、‘·〇疋正確的;否則,該連結是錯誤的。 逆 章二7,圖是根據一個實施例而使用值比較以驗證載入作 特定標記所朗的料㈣之連結的方法 結果連結到較舊的記憶體作入作業的推測 ㈣連結)’則可將無須用於該載人作業的位址計算之 #兀用來儲㈣載人作業的推測結杲 ►入作業不將索?丨暫存器用於 】々杲4載 器用來儲存該載入作業的推測結果Γ貝1可將該索引暫存 果二:Γ=347)所示,如果該載入作業的實際結 ::;玄載入作業的推測結果相符(例如,藉由在功能單元中 ^丁值比較而決定),則該連結是正確的,且該推測紐 艾為非推測結果。否則,如步驟(349)所示,該連結 的,且可在結果匯流排上廣播該載入作業的實際結果,3决 便將正確結果傳播到任何相依的作業。 乂 推測結果作為來源 35 9^69 1362613 各實施例可以許多不同之方式將載入作業的推測結杲 連結到暫存器資料值。在某些實施例中,可識別運算元的 下列兩個來源而連結各值:推測來源及非推測來源。該推 測來源可以是被連結的資料值。可將推測來源提供給載入 作業,以便指示連結到該載入作業的推測結果之資料值。 在某些實施例中,亦可將推測來源提供給與該載入作業相 依的各作業。因此,某些運算元可以有兩個標記:用來識 別推測來源的標記、以及用來識別非推測來源的標記。在 這些實施例中,如第8圖所示,每一排程器(118)可將標記 儲存區提供給推測運算元及非推測運算元。 第8圖不出可包含在處理器的排程器(118)之一個實 施例。在所示實施例中,排程器⑴8)包含排程器控制器 (502)及作業儲存區(5〇4)。排程器控制器⑽2)可回應派發 單元U04)派發作業,而分配作業儲存區⑽)内的資料又 用以儲存與該作⑽應的資訊。例如,作業儲存區 :之:料彻)可包含運算碼攔位⑽)、一個或多個運 ::欄位、以及結果攔位(516)。結果攔位(⑽可儲存用 來熾別應該被用來儲存# i ^ 百仔°哀貝抖項的作業結果的實體暫在哭 之標記。當發出該作業時,可在—個或多個桿== 上將該標記轉送到每—排程印•每 ^ ) 記匯流排(520)上轉送的該 卯了將在私 元標記(推制^寺铩5己與待處理的作業之運算 ’ '、vr* 7C標記及非推測卩 說明)比較,以便決定 ‘ δ己將灰下文中 m , 才J取传待處理的作坌夕·φ瞀- 因此,可回應作業的來 業之、斤兀 示e出現在標記匯流排 92769 36 1362613 -· (520)上,而發出該作業(或將該作業標示為準備好可發 ,出)。 每-運算元攔位可包含用來識別推測運算元來源的推 測標記以及用來識別非推測運算元來源的非推測標記之儲 存區。在所示之資料項(522)中,係由非推測標記⑸2)及 推測標記(514)識別運算元!的兩個來源。可將排程器⑽) 之組態設定成回應可取得作業的運算元之一個或多個指示 鲁而發出該作業。如果可自推測來源及非推測來源取得運算 疋’則可將自該非推測來源取得的值用來執行該作業。在 某些實施例中,排程器⑴8)可將可取得非推測運算元來源 的作業之發出順序排成優先於只能取得推測運算元來源的 作業之發出順序.。 請注意,作業可包含具有推測來源的某些運算元、以 及並未具有推測來源的其他運算元。亦請注意,相同的來 源可以是作業的推測來源,同時又是另一作業的非推測來 ·:、。在某些實施例中,當執行作業時,只能為每一運算元 項取-個貢料值(例如’執行核心(124)可讀取推測運算元 來源或非推測運算元來源,但不能同時讀取兩者)。在此種 ^式下,無須將額外的埠增加到暫存器檔(116)。在某些實 施例中’可將推測來源及實體來源儲存在相同的儲存位置 (m’儲存在暫存器樓(116)内),且可不將推測來源的旗 標設定為或以其他方式識別為推測來源。 =許多實施例中,可將排程器(118)之組態設定成在將 作#發出到—個或多個執行核心(1 24)之後,保持將資料項 92769 1362613 •分配給作業。當排程器(n幻回 可& P M· …個或夕個推測運算元的 '7取仔性而發出作業時,該排程器可保 :'的 分配給該作業,因而若推測連結是錯誤的,則了 = 2) 該作業。在某些實施例中,可將 ^ 了重新發出 設定成驗證當推測載人作l存單元之組態 戰作窠結果連結到儲存於實艚鲂左。。 ^資料值時所產生的推測連結。如果該連結是正:= ,推測結果,這是因為已可經由該= 的 :果確係如此’則可將-個或多個排程器⑴8)之組:設定 運算元來源之俨…來硪別作業的非推測 7G孓源之払记,則重新發出該作業。 或者’該載V儲存單元可廣播儲 ==該廣播或用來指示該推測連結是正確= 連結是錯誤的,則該載入/儲而,如果該推测 >體及/或記憶趙存取,以可:行資料快取記憶 , 取仔5亥载入作業的正確結果, 並廣播該載人作業的結果。在必_播結果的實施例中’ 該額外的狀態位元可指示該推測連結是錯誤的。因此,在 許多實施例中’可將已可在處理器中使用的相同的標記及 結果匯流排用來指示推測連結是錯誤的。在其他的實施例 中,可實施替代性的指示機制(例如,將獨立的結果匯流排 (130)及/或結果標記匯流排(52Q)用來“錯誤預測)。 第9圖示出用來發出及重新發出具有推測及非推測運 算元來源的作業的方法的一個實施例之流程圖。如步驟
3S 92769 1362613 (。8=至803)所示,如果可取得作業的推測運算元來源,則 :’X出。玄作不。s貝料值出現在暫存器檔内的特定暫存器 :當在結杲匯流排上輪出該資料值時,作業的推測運 ==即變為可取得。請注意,在某些情形中,可能在 推測運具元來源之前,先 先取侍戎作業的同一運算元之非推 來源:在那些情形中’可在推測運算元來源變為 :::則,先發出該作業。在某些實施例中,後來取得 推測來料,可残發(叫㈣該作㈣重新發出。 =步驟⑽)所示,可將推測運算元來源所提供的資料 == 亍所發出的作業’且如步驟则所示,可廣播該 作業的結果。由於廣播了該 ^ 的作業被執行。 作㈣結果,㈣可料相依 如果在某—稍後的時間上,決㈣推測來源是錯誤的 (命如,該推測來源及該非推測來源所提供的資料值不是相 口勺,或者用來產生該推測來源的標記之推測連結不是正 >二’則可廣播該非推測來源的標記,作為該推測來源的 一 _示。該非推測來源的標記之廣播涉及以該等 播=^個排&㈣重新發出該作業而作為回應之方式廣 t ° ’纟某些實施例中,如果該標記被廣播, ,與該標記相關聯的狀態旗標被設定為某一值,則排程器 可回應,而在盆他的奋丨Λ 沪0隹/、他的貝施例中,可以沒有相關聯的狀態旗 ,:且可將排程器之組態設定成在非推測標記被廣播的任 何時間上重新發出作業。 田0任 的準備就緒 92769 39 1362613 在某些實施例中,諸如在第10圖所示之—個實施例 二可將排程器⑴8)之咖定成由特定運算元的推測來 源或該運算元的非推測來源之可取得性(但同一時間不得 问時可取得兩者)而決定該運算^否準備就緒。此種方式 又可減少對結果標記匯流排(520)的潛在不利影響。 在第10®中,該排程器使用比較器(532)將曰多工器 ⑽)所選擇的作業的運算元的推測來源之標記⑷或該 運异兀的非推測來源之標記(512)與目前在—個或多個处 果標記匯流排(520)上的標記比較,而決定該運算元是否準 = '緒°因此’該排程器可監視標記匯流排(520)上的推測 “源之可取传性、或非推測來源之可取得性(但非兩者同時 的可取得性)’而決定該作業是否已準備就緒可發出。因 此:該排程器並不將在該結果標記匯流排上廣播的每一結 果標記與該運算元的推測來源標記及該運算元的非推測來 源,記比較,而是可只將該廣播的結果標記與該運算元的 该等來源標記的其中一個來源標記比較。如果可取得作業 的所有運算元(來自推測或非推測來源),則可設定該作業 的準備就緒旗標(_,以便指示該作業已準備就緒可發 出0 錯D吳推測偵測邏輯電路(丨spau 1 &丨 =tect i on丨ogi c) (53〇)可根據作業的推測來源或非推測 來源=制該排程器是否決定該作業的準備就緒可發出。 在某些實施例t,可在該排程E、巾為每—待處理的作業提 i、相同的錯決推測偵測邏輯電路(5加),因而每一作業可獨 92769 40 1362613 ,=記匯流排(52〇)上的推測或非推測來源。在 •章,’可以相同的方式控制所有待處理的作 : 有的作業監視推測來源(在可取得推測來源的情 ;4所有的作業監視非推測來源。 排二=7測邏輯電路_之組態設定成:控制 測的情”二广使該排嶋沒㈣測職 等作輩據各作業的推測來源之可取得性而決定該 推測辑輯電路⑽)可“切換⑴:二錯誤 源是否準備就绪。例如,如果載入健存單元來 或值比較而谓測到錯誤的連結,則 )、,·二由位址 可發出。錯誤的㈣MW 作業疋否準備就緒 或部分、或該記=:32)的全部 路(530)可繼續敗視非 3。、推測偵測邏輯電 ,該推測的來源已:重:(而 推測進行修正為ί疋(reset)或以其他方式針對該錯誤 當錯誤推測镇測邏輯電路( 取得性“切換”至監視Y視—來源的可 (】,能缺少與非推測來源的可取得:有:二排程器 二排程器(118)可假設可取得所有的:推:二Ϊ 且作業因而已準備就緒可發出。如广嶋 可在以後實際上可取得非推 ^又。又疋I日块的,則 標記匯流排⑽)上廣播了;^源丈時(例如,伯測到在結果 “了非_來_標記時))重新發 A] 92769 ⑽ 2613 出該作業。 .速-SLA存器對盹單分 第^圖示出處理器(100)中可包含的派發單元(1⑷ =另:貫施例。在該實施例中’派發單元(1〇4)包含暫 时映單元(134)、記憶體槽案(132)、以及推測暫存器對映。 早=(_。推測暫存器對映單元(_如同暫存器對映單 = 34)’可將邏輯暫存器名稱轉換為實體暫存器缺 :’推測暫存器對映單元(800)可以推測方式 : =存益中料的值連結到載人作業的推測結果)。推 抽 對映早凡(_可讓並未包含定址型樣的作業之 隹測運异兀值被連結到暫存器^ 存哭ΡΛΥ 士 > 例如,如果邏輯暫 心αΓ::: 推測對映關係(specuIatl-—,則 為來源運异7^的作業可具有兩個來源桿呓. =映單元⑽)提供的非推測標記、以及由 二_)提供的推測標記。因為當可取得該作二: 測來源時可立即菸屮兮士 呆日7推 (_可經由推列運曾 測暫存器對映單元 接連結到各產1ΛΓ將各❹資料的組成部分直 組成部分’而繞過了任何發生於1 間的載入及Μ存作業。請注意,在某 於。 ί有其中包含推測暫存器狀態儲存區的重新排序緩歹:匚在 貫施例幻,該推測對映單元可儲㈣區之 標記。 、—暫存态名稱以外的 推測暫存It對映單元(_包含推存器對映單元 92769 1362613 ,映到EBX的實體暫存器。一.丄 •暫存器應以推測方式對映;:::來指示邏輯 制,而產生推測暫存器對映單元資制存。。之任何預測機 在某些實施俗丨φ,, (134)的相同週心作錢供給暫存器對映單元 元(_。當暫存H作業提供給推測暫存器對映單 器更名時,推=::,-:)?:業_^^ 其t-個作業的推測早〇可^曰777被指定為错存 、/原運斤兀之任何邏輯暫存哭s π ·* 連m到特定的實體暫存哭。 °。疋破 其中一個作鞏m子。。如杲有效的貧料項存在於用於 存區⑽4),則推^暫器來源之推測暫存器對映單元儲 邏輯暫存哭的資料广、對映單元控㈣ 派發到儲存的實體暫存器名稱。當該作業 塒暫派發單元(m)可輸出該推測的實 月豆暫存益名稱,作為推。 、 供給推測暫存n對映單元Q'Q t σ將獅作業提 ‘在推測暫存器對映單二其::個ADD來源具有 ^ ^ . 早兀储存區(804)中之有效資料項,則可 =標記的該資料項中識別的實體暫存 t 給排程器⑴8)。如前文所述,可將該排程器 之^设定成同時儲存推測及非推測運算元標記,且在某 二貝轭例中’可將該排程器之組態設定成回應在結果匯流 丄上廣播的非推測標記而重新發出作業(在先前已發出該 等作業的情形下)。 ▲可回應特定邏輯暫存器的資料值將被修改之指示,而 使该推測對映單元内的資料項無效。例如,如果派發單元 92769 44 1362613 作# ADD EAX,EQ,則推測暫存器對映單元控 =)可使目前指定給Ε Α χ的推測對映單元資料項無 >·,這疋因為該add作業將修改該暫存器的值。 士一般而言,當作業的推測結杲連結到暫存器資料值 可將推測運算元標記提供給排程器(118八在某杜實施 例中,可將記億體檔案(i 3 2)及用來追蹤數個週期中之二依 性的另-結構(例如,將於下文中說明之推測暫存器對映單 鲁兀)用來將推測結果連結到暫存器值。例如,派發單元(ι〇4) 回應識別連結的記憶體㈣(132),而產生作業的推測標 記。在某些實施例中,可在無須使用此種推測對映單元的 情形下產生推測標記。例如,一序列的指令可包含·· (ADD 1) (STORE 1) (ADD 2)
ADD EBX, EBX
MOV [addressing pattern A], EBX ADD [addressing pattern A], ECX 這些指令可以是連續的指令(例如,這些指令可按照程式順 _序而相互緊密接續)。可將這些指令分割成下列的成分作業 (component operations)(連同被轉換成實體位址的邏輯 位址而示出)以便在一個或多個執行核心(12 4)内執行: ADD PR2, PR2, PR1 (ADD 1) MOV [addressing pattern A], PR2CST0RE 1) MOV PR3, [addressing pattern A] (load for ADD 2) ADD PR4, PR3, PR5 (add for ADD 2) MOV [addressing pattern A], PR4(store for ADD 2) 在派發ADD 2的該等成分載入、加法(add)、及儲存作業之 45 92769 1362613 別,派發單元(104)可偵測該序列中 否有將可連結到推測結果的任 :ζ業之間是 體樓案)。因為並無任何發生於Α間的作(如由記憶 可,、,+ v /、间的作某,所以派發單元 偵測同一派發週期中載入作業與加法作業(係自相 業) 所需的所有資訊。派 I早兀(104)可根據這兩個相依性,而將st〇re i pR2 儲存的資料之標記連結到作為議2的—部分而執行的載 入作業之推測結果。該推測連結又可讓該派發單元將作為 ADD 2的一部分而執行的加法作業之來源連結到pR2中儲 存的值。因此,派發單元(1〇4)可輸出下列指示:可將 以推測方式用來作為該加法作業的其中一個運算元之來 源,但是PR3是該運算元的非推測來源。因此,在一個實 %例中,可以下列方式指定派發單元所輸出的該等作業及 運算元識別符·· φ ADD PR2, PR2, PR1 (ADD 1) MOV [addressing pattern A]s PR2 (STORE 1) MOV PR3, [addressing pattern A] (load for ADD 2) ADD PR4, PR2*, PR3, PR5 (add for ADD 2 , 其中PR2*是ECX 的推測來源,且 PR3是ECX的非推 測來源) MOV [addressing pattern A], PR4 (store for ADD 2) 46 92769 1362613 在其他的實施例中,可以不將派發單元(1〇4)之組態設 定成識別與根據載入作業的各作業之推測來源運算元Γ反 之,如第12圖所示,派發單元(1〇4)可包含作業轉換器 (叩eration converter)(18〇) ’該作業轉換器(18〇)之組態 被設定成將載入作業轉換為纟巾包括暫存器至暫存器 (reglster-t0-register)移動作業的一個或多個作業, 便將推測載入結果提供給各相依的作業。可回應“作 的推測結杲與特定實體暫存器名稱所識別的資料值之門存 =連結之指示,而執行該載入作業的轉換。二 = 列中’可包含記憶體㈣(132)的連結_器⑴此-、 測器(182)=^^^7在其他的實施例中,連結偵 條件的移動作组態被設定成回應諸如有 =動料寺的作業而連結資料值之邏輯電路。 在個霄施例中,該作業μ姑时"τ > 算碼、以及是否針對該作業而请測二存的輸入運 _推測結果間之連料& _ ^=值_作業的 摘測到推測連結,作業疋载入作業,且已 移動作業的運算碼。、派發元轉=可輸出暫存器至暫存器 輸出的作為該暫存哭將該連結偵測單元所 之標記用來派發該暫存如二,動作業的來源運算元標記 在某歧每暫存益至暫存器移動作業。 派癸所〆:?例中’可將該作業轉換器之组能一占 知所產生的暫存器 之、,且恶5又疋成·· 存器至暫存器移動作業:夕動作業’使排程器將該暫 储存在被分配给該私存立。入作業所需的運算元標記 曰存-至暫存器移動作業的資料項中。 92769 47 .此種方式可在偵測到該暫存哭 果是錯誤的情形:广私動作業的推測結 •了實施該機制,可將額;=為原始載入作業的作業。為 業而產生的每來源運算元加入因修改载入作 ,,, 曰存咨至暫存器移動作業(或者,在替代實 鈀例中’可修改業已存在 在’代κ 制)。在某些實施例中,可執行兀;;乂便實施該機 且/或將被連結的資料信企Γ 業的位址計算, 而㉗供兮勒 /、声、際載入結果的資料值比較, .1« δ且5玄暫存器至暫存哭 測結果是錯誤的,則可^取1^推測結果。如果該推 確的載入„果以4快取記憶體’以便取得正 .° μ正確結果的廣播可使該排程器重新發出 先則將錯誤值用來執行的任何相依的作業。 將::些實施例中,可將作業轉換器(_之組態設定成 :載入作業轉換為雙本質(㈣―加咖)作業。該雙本質作 同載入作業’可涉及位址計算及資料移動。但是與載 2不同之處在於.該雙本質作業所啟動的資料移動是 匕存益至暫存器移動。此外,該雙本質作業所啟動的資料 和動可在元成位址計算之前發生。可將位址計算用來驗證 貝J連、、’〇疋否疋正確的。如果該推測連結是錯誤的,則可 、$載入作業之方式重新發出該雙本質作業,並可在完 成資料快取記憶體存取之後立即將該正常載人作#的結果 重新廣播給各相依的作業。 下列各例子示出不同的實施例可如何轉換該例示的作 業序列: 48 92769 1362613 1362613 (ADD 1) ADD PR2, PR1, PR1 STORE [addressing pattern A], PR2 (STORE 1) LOAD PR3, [addressing pattern A] (LOAD 1) ADD PR4, PR3, PR3 (ADD 2) 籲在該序列中,可由一個或多個發生於其間的作業隔開所指 疋的。亥專作業。然而,假設並無任何發生於其間的作業想 要修改定址型樣A中所用的值或想要修改自定址型樣八計 算出的位址上及PR2中儲存的資料值,則可在pR2中儲存 的育料值與自定址型樣A計算出的位址上的資料值之間偵 測到推測連結。 、 ,,”他财’作業轉換器(18G)可回應推測連結債 測杰(18 2 )值測到推測連6士 丨動作業:_PR3 PR2 ;二t觸1轉換為雙本質移 哭來源及目π : δ玄又本貝移動作業除了指定暫存 Γ的位址亦可指定定址型樣Α,因而可執行咖 本可取得心夺,可立即發出該雙 部分之社果時n:分。當廣播了該雙本質作業的移動 元而立二:该移動作業的推測結果用來作為運-凡而立即發出ADI) 2。去 連結。如果該推測連'纟^=位址計算時,可驗證該推測 指示提供給排程器,而該^㈣L/儲存單元可將 移動作業作為载入作業。:不使排程器重新發出該雙本質 3 可廣播該載入作業的結果,而使 92769 49 1362613 諸如ADD 2等的已將該移動作業的推測結果用 =依:作業被重新發出。請注意,可將單-的排程器f 來㈣雙本質作業排程,且排程器⑽)可選擇‘ ^貝作業电出兩次,其中—次係用於該載人作 什异,而另-次係用於該暫存器至暫存器移動作業。 在替代實施例中,作業轉換器(18〇)可回她 广而將咖上轉換為下列兩個被連結的作業:L〇ADpR3】 L eSSingpatternA]、以及麵 PR3, PR2。這此被連 王》»(118)中之貧料項,而不是丘 項。當發出該暫存器至暫存^動作用案早Γ的排程器資料 測值用來作為運算元值業時,可將PR3的推 π咬开7U值,而發出諸如ADD 2箄 !;可將該L0AD作業標記為特殊類型的載入作举,、因而 右決定該推測連結是正確的, ’、口而 :二己(或者連同§亥移動作業的結果是正確的且不岸'重新 ==的作業之指示而廣播該結果標記)。此二 業及該移動作業都在同-週期中廣播其結果: 用於相依的作業。在某些實施例中,可將… 果 應回應哪-標記的額外之位-…將用來“排程器 桿吒匯^ ^ 處判(1GG)内的每一 的:例二述的機制。如果該推測連結是錯誤 ^ 業的結果標記之廣播指示),則可取消 正分配目前分配給該暫存;至!4=4排;1器⑴8)可停 子°。主暫存為移動作業的排程器資 92769 50 1362613 .料項,因而無法重新發出該作業)。在許多實施例中,可將 ,排程器之組態設定成:回應該載人結果暫存器重新出現在 結果匿流排上,而重新發出將該推測的載入結果用 之任何相依的作業。 在一個實施例中,如果(例如,由記億體檔案鴻測到 特定標記所識別的暫存器資料值與載入作業的推測结果間 ,連結,則可修改載入作業,以便包含具有與被連結到該 隹測載入結果的資料值的標記相等的來源運算元標記之斬 存器至暫存器移動作業。該暫存器至暫存器移動作業的^ =能涉及將該標記所識別的資料值連同該载人結果的標 。己輸出到結果匯流排。 ’' 沾果可it如執行原始載入作業的位址計算而)驗證該推測 二果該推測結果是正確的,則可以不在結果匯流排 業的=播作業的結果(或者,可重新廣播該載入作 ' , 以及回應该重新廣播的結果而不應重新發出相 ::業之指示)。如果該推測結果是錯誤 : ::取記憶體,以便揭取正確的載入結果 ::: 流排上廣播正確的載入纟士罢^ j在m果匯 果值而發出的任⑴/ 方式又可使利用推測結 些情形中=1=業被重新發出。請注意,在某 證該推*士果。暫存器至暫存器移動作業之前先驗 °亥暫存裔至暫存器移動作業。 轨仃 間之任到:入作業的推測結果與暫存器資料值 • D’故載入作業的定址型樣未命中記憶體 92769 5) 1362613 檔案),㈣以不修改該載人作業。可正Μ執行㈣人作 業’存取貝料快取記憶體’並在結杲g流排上廣播i 。 ft 記色碼標示(Tag CnloHnW ....... ·、 在某些情形中,記憶體檔案(132)可將載入作業的推測 =果連結關定邏㈣存器巾之值。在某线科,可覆 舄該邏輯暫存器,而使被暫存器對映單元指定給該邏輯漸 存器的實體暫存器回到未被使用的清單(freei ist)(亦 印,可被指定的未被使用的實體暫存器之清單> 然後可重 新指定該貫體暫存器,以左& — 只肢节仔„。以储存另—值。實體暫存器回到未 破使用的清單及/或重新指定該實體暫存器時,可能不會 衫響到用來指定該實體暫存器的記憶體檔案資料項。因
此’記憶㈣案(132)所提供的後續連結可能不會考慮到該 實體暫存器的重新指定。例如,考慮下列的序列:。^ MOV [EBP + 50], EAX XOR EAX, EAX j MOV EBX, [EBP + 50] 記憶體才當案(132)可回應該序歹,而將資料項分配給定址型 樣EBP + 5G ’並回應該第-儲存作業而將實體暫存器指定 給EM。當X〇K作業覆寫^)(時,£〇的現行值(^^6討 value)可不再對應於連結到記憶體檔案(132)中之該定址 型樣的值。然而,記憶體檔案(132)可根據後續載入作業的 定址型樣與較早的儲存作業的定址型樣間之符合,而將該 載入作業的推測結果連結到較早的值。 在某些實施例中,暫存器檔(丨丨6)中之每一實體暫存器 92769 52 1362613 =曰^色碼㈣。r)。可使該色碼與每—暫存器的標記相關 I亚可將該色碼連同㈣存器的標記在整 ::在本說明書的用法中,色W是用來指示;Π 2新指定暫存器的-個或多個位元之資訊。在—個實施例 P色碼可以是單-的位S,且每t暫存器㈣未被使用 月早或自該未被使㈣清單拉出暫存科,即切換該單 :的位元。如果係在記憶體㈣中分配用來指定特定暫存 裔的標記之資料項,則該記憶體播案亦可將與 關聯的色碼儲存在所分配的該資料項中。同樣地,如第°13 圖所不’該推測暫存器對映單元可儲存每—標記的色碼 814)亦可連同標記而將色碼儲存在暫存器對映單元(】 及=程器⑴8)中。當在一個或多個結果標記匯流排(520) 士:出暫存器標記時’亦可在該等一個或多個結果標記匯 机卜(520)上輸出與該標記相關聯的色碼。 d。舉一個例子,考慮開始時具有一個“0”的色碼之實體暫 _存器。暫存器對映單元(134)可將具有色碼“〇,,的該實體暫曰 :器指定給特定邏輯暫存器。此外,可在推測暫存器對二 D〇 )中將具有色碼“ ”的該實體暫存器指定給邏輯暫 存:在推測暫存器對映單元(800)資料項的分配之後的某 卺了點5亥貫體暫存器可回到該未被使用的清單,然後被 3為重新指定。當自該未被使用的清單拉出該實體暫存 為時’可士將其色石馬更新為T。在更新該暫存器的色碼之後 的某一時點,推測暫存器對映單元(800)可根據該暫存器在 被重新指定夕此 , 月’J所分配的資料項,而以該暫存器的標記及 92769 53 1362613 ,碼:而識別作業的推測來源。可將用來識別該推測來源 貧訊儲存在排程器⑴8)中。在發出該作業之前,另一 &產生6玄暫存器的新值,且可在結杲標記匯流排 心廣播該標記及現行色石馬i。排程器⑴8)可藉由將 映:::_記相關聯之現行色碼)與推測暫存器對 定^二枓項中之暫存器標記相關聯之色石馬〇比較,而決 識別相同的值。在某些實施例中,如前文中 推測,並“切=’^排程器(118)可將此種情形視為錯誤的 換限於僧測到色石/!:該運算元的非推測來源。可將該切 ♦、色碼不付的特定作業(並不是使排程器中之 所有待處理的作業被切換)。 U之 的困::情==造成對實體暫存器重新指定的管理上 業。例如,如果更孕= 生圖中移除暫存器至暫存器移動作 存器編號參照到相同的實體暫存(34)’1 吏兩個邏輯暫 會存器移動,則可能變得難以決二二暫存器至 器的色碼標示用該未被使用的清單 在某些實施統的替代性系统。 而將暫存器至暫 ^使用推測暫存器對映單元(_ 色碼標示。例如,可m效/最佳化時,使用暫存器的 依性圖中移除暫存器元⑽)用來自相 得移動作業的來源,則仿姑:和動作業(亦即,如果已可取 果之作業將不再需要箄、曰存器至暫存器移動作業的結 而要寺候該移動作業的執行)。當偵測到暫 92769 ^62613 .存器至暫存器移動作業時,推測暫存器對映單元(_)可分 .酉己用來連結該移動作業中指^的來源及目標暫存器之資料 Ϊ對::每「實體I··存器的色射轉在所產生的推測暫存 軔存。ϋ*-8〇〇)貝料項中。在該系統中,可在不會有更新. 2讀映早元(134)以便使多個邏輯暫存器與同一實體 ::::::的系統中產生的困難之情形下,正常地重新 =二器。當在使用色碼標示的系統中重新指定實 同;卜了使目别被指定有該實體暫存器的特定值不 新指體暫存器的每-標記相關聯的色碼重 配的其他:之前已在該相同的實體暫存器中被分 數及存器對映單元(_之組態設定成處理整 圖中移料_=;=存器對映單元自相依性 諸如FXCH(該作業 子:業。此種方式又可讓 性圖令移除。請注音^寺使/j父長執行時間的作業自相依 時可自相依性圖移;=器對映單元_ 執行該暫存器至暫存器軸料存^動作業,但仍然可 Ά^-ΜΜΑΜ. 該電腦系統(4:) : ί :統(4°〇)的-個實施例之方塊圖’ 流排橋接HUO& ^理印叫該處理器(⑽)經由匯 包含前文\ 到各種系統組件。處理器⑽)可 文所述的派發單元_、記憶體樓案⑽、排程 92769 55 1362613 •可在電腦系統(400)内設有在辅助匯流排橋接器(416)之外 或與4助匯流排橋接器(416 )整合的輸入/輸出控制器(圖 中未不出),以便將作業支援提供給鍵盤及滑鼠(422)、以 及σ種序列埠及平行璋。在其他的實施例中,亦可將外部 快取記憶體單元(圖中未示出)在處理器(丨〇〇)與匯流排橋 接器(402)之間耦合到CPU匯流排(424;^可將該外部快取 汜憶體耦合到匯流排橋接器(4〇2),且可將該外部快取記憶 •體的快取記憶體控制邏輯整合到匯流排橋接器(4 〇 2) ^圖中 所不之L2快取記憶體(428)是在處理器(1〇〇)的背部 (backside)組態中。請注意,L2快取記憶體(428)可與處 理器(100)分離,可連同處理器(100)而整合到匣 (cartridge)(例如slot 1或slot A)中,或者甚至可連同 處理器(100)而整合到半導體基材(subs1:rate)中。 主5己憶體(200)是一種應用程式儲存在其中且處理哭 (10 0)執行時所主要使用的記憶體。適用的主記情、體(2 〇 〇) 鲁可包括動態隨機存取記憶體(Dynamic Rand〇m Access
Memory,簡稱DRAM)。例如,複數組(bank)的同步dram (Synchronous DRAM ;簡稱 SDRAM)或 Rambus DRAM(Rambus DRAM ;簡稱RDRAM)可能是適當的。 PCI裝置(412A至412B)是諸如網路介面卡、視訊加速 器、聲頻卡(audio card)、硬碟機或軟碟機或其控制器、 小型電腦系統介面(Small Computer System Interface; 簡稱SCSI )轉接器、以及電話介面卡等各種周邊裝置的舉 例。同樣地,ISA裝置(418)是諸如數據機、音效卡、以及 92769 57 1362613 ' GPIB或現場匯流排介面卡(fieid bus interface card)等 • 各種資料擷取介面卡等的各種類型的周邊裝置之舉例。 设有圖形控制器(4 0 8)以控制顯示器(4 2 6 )上的文字及 影像之描繪(render)。圖形控制器(408)可採用此項技術中 習知的典型圖形加速器,用以將可有效地移進及移出主記 憶體(200)的三維資料結構描繪。圖形控制器(4〇8)因而可 以是AGP匯流排(410)的主控裝置,這是因為圖形控制器 鲁(408)可要求並接收對匯流排橋接器(4〇2)内的目標介面之 主控權’因而可存取主記憶體(2〇〇)。專用的圖形匯流排可 配合而自主記憶體(2〇〇)迅速地擷取資料。圖形控制器(4〇8) 可針對某些作業而將其組態進一步設定成產生AGp匯流排 (410)上的pci協定交易。匯流排橋接器 U02)的AGP介面因而可包含用來支援agp協定交易以及 pci協疋目標及發出者交易(initiat〇r 的功 能。顯示器(426)是其上可呈現影像或文字的任何電子顯示 。適用的顯示器(426)包括陰極射線管(Cath〇de Ray Tube ;簡稱CRT)及液晶顯示器(UquidCrystai ^ 簡稱LCD)等的顯示器。 請注意,雖然前文說明中以使用AGP、PCI、及ISA或 EISA匯流排作為例子,但是亦可視f要而以任何匯流排架 f取代。又請注意’電腦系統(4〇〇)可以是包含額外的處理 =(例如圖中所示作為電腦系統(4 〇 〇 )非必須的組件之處理 。。〇a))之夕重處理電腦系統。處理器(100a)可類似於處 里》。(1 GO)。更具體而言,處理器⑴㈤可與處理器(⑽)
5S 92769 1362613 * .完全相同。處理器(100a)可經由獨立的匯流排(如第i4圖 •.所示)而連接到匯流排橋接态(4 〇 2 ),或者可與處理器(1 〇 〇) 共用CPU匯流排(424)。此外,處理器(100&)可耦合到類似 方' L2决取5己’丨思體(428)的非必須的L2快取記憶體(428a)。 現在請參閱第15圖,圖中示出可包含前文所述的派發 單元(104)、記憶體檔案(132)、排程器(118)、及/或推測 暫存器對映單元(8〇〇)的電腦系統(4〇0)之另一實施例。其 鲁他實施例也是可行的且可考慮採用。在第15圖所示之實施 例中,電腦系統(400)包含數個處理節點(pr〇cessing n〇de) (612A)、(612B)、(612C)、及(612D)。每一處理節點係經 由每一各別處理節點(612A至612D)内包含的記憶體控制 态(616A至616D)而辆合到各別的記憶體(614A至614D)。 此外,處理節點(612A至612D)包含用來在該等處理節點 (612A至61 2D)之間通訊的介面邏輯。例如,處理節點(612a) 包含用來與處理節點(612趵通訊的介面邏輯(618A)、用來 _與處理節點(612C)通訊的介面邏輯(618B)、以及用來與另 一處理筇點(圖中未示出)通訊的介面邏輯(6丨8C)。同樣 地,處理節點(612B)包含介面邏輯(618D) ' (61δΕ)、及 (618F);處理節點(612c)包含介面邏輯(618G)、(618Η)、 及(6181);且處理節點(6i2D)包含介面邏輯(gigj)、 (618Κ) '及(618L)。處理節點(6120)經由介面邏輯(6181〇 而芽禹s以與複數個輸入/輸出裝置(在菊鍊(廿a丨sy cha j η) ·’且怨中之裝置(6 2 0 A至6 2 0 B ))通訊。其他的處理節點可以 類似之方式而與其他的I/O裝置通訊。 92769 59 1362613 .處理節點(612A至612D)實施封包型連結 • (pocket-based link) ’以便進行處理節點間之通訊。在本 實施例中,係將該連結實施為若干組的單向線路 (unidirectional lines)(線路(624A)用來將封包自處理 節點(612A)傳輸到處理節點(612B),且線路(624B)用來將 封包自處理節點(612B)傳輸到處理節點(612〇其他组的 線路(624C至624Η)用來在第15圖所示的其他處理節點之 •間傳輸封包。一般而言,每一組線路(624)可包含一條或多 條資料線路(data line)、對應於該等資料線路的一條或多 .條時脈線路(clock line)、以及用來指示被傳輪的封包類 型之一條或多條控制線路(contr〇1 line)。係以一種快取 記憶體一致(C0herent)之方式操作該連結,以便進行各處 理節點間之通訊’或者以一種非一致(n〇n_c〇herent)之方 式操作該連結,以便進行處理節點與〖/〇裝置(或 如pci匯流排或ISA匯流排等的傳統結構的j/o匯流排之 >匯流排橋接器)間之通訊。此外’在如圖所示的Μ裝置 :間二用菊鏈結構而以一種非一致之方式操作該連 矣。。δ月主思,將要自處理節點傳輸到另一處理節點的封包 :!過,多個中間節點。例如,如第15圖所示,由處 理印點(61 2A )傳輸到處理節點(612m沾& — 、七老p )的封包可通過處理節 Π⑻或處^_12(:)。可使用任何適當的路由 法。電腦系統⑷0)的其他實施 ;; 施例多或少的處理節點。 …15圖所不貫 個或 鈸而。可在各節點之間經由線路(624)而以 92769 60 丄丄j .方式進行對該對應的記憶體(6l4 t 一立 •.存取。記憶體控制器(616a 母一記憶體 ⑹4八至6_的介面之可^含作為記憶體 (咖至㈣D)可包含用路。此外,記憶體控制器 干要求仵列。 。。己憶體要求排隊等候的若 介面邏輯(618A至618L)可包 鏈路接收封包,並緩衝儲存 ㈣。。’用以自該 H…、 储存將要在該鍵路上傳輪的封包。 .¾¾糸統(400)可採用用夹值蛉 匕 控制機制。例如,在包的任何適當之封包流 紗六m+ 貝匕例中’每一介面邏輯(618) :子用來連接該介面邏輯 每-類型的緩衝心的另一端上的接收器内之 γ 目。除非接收端的介面邏輯有可Μ
存封包的未使用之绥俺势T ^^ J 包。將桩价Μ 則該介面邏輯將不傳輸該封 ^ 將接收端的緩衝器向前纟 時,接收端的介面邏輯將# 而將該緩衝器空出 叫k科射^曰不,亥緩衝器已空出 到該傳送端的介面邏輯。可將該機制稱為“配給券型心別 I (coupon-based)”系統。 /〇裝置(620A至620B)可以是任何適用的I/O裝 人例如,I/O裝置(620六至62〇B)可包含用來與並可 二的另-電腦系統通訊之裝置(例如網路介面卡或數據 ☆ > 1//〇裝置(620A至620β)可包括視訊加速器、 二頻卡、硬碟機或軟碟機或其控制器、小型電腦系統介面 mn Computer System Interface; ®SSCSI)##a ,
包。"面、音效卡以及諸如GpiB或現場匯流排介面卡 的各種資料擷取介面卡。請注意,在本說明書中,術語“I 92769 62 1362613 ./〇裝置,,及術語“周邊裝置”將是同義的。 .. 在本祝明書的用法中,術語“時脈週期,,或“週期,,意指 才曰4處理官線的各階段完成其工作所用的時間間隔。各記 L、元件(例如暫存益或陣列)根據用來界定時脈週期的時脈 乜號而彳。員取4曰令及汁异出的值。例如,記憶元件可根據時 脈信號的上升緣或下降緣而擷取一值。 可 熟習此項技術者在完全了解前文所揭示的本發明之 後,將可易於作出各種變化及修改。將把後述的申請專利 範圍詮釋為包含所有此種變化及修改。 【圖式簡單說明】 若麥照前文中之詳細說明並配合下列的圖式,將可更 易於了解本發明,在這些圖式中: 第1圖示出處理器之一個實施例。 第2A圖是派發單元的一個實施例之方塊圖。 第2B圖示出一個實施例中可使用之例示記憶體檔案 0儲存單元資料項。 第3圖是將載入作業的推測結果連結到特定標記所識 別的資料值的方法的一個實施例之流程圖。 第4 A圖是根據一個實施例的載入儲存單元之方塊圖。 第4B圖是根據另一個實施例的載入儲存單元之方塊 圖。 弟5 A圖是根據一個實施例而驗證載入作業的推測結. 杲與特定標記所識別的資料值間之連結的方法之流程圖。 弟5 B圖是根據一個實施例而依據是否已證實了涉及 63 92769 1362613 -.記憶體作業的連結而使該記憶體作業退休的方法之流程 . 圖。 第6A圖是根據一個實施例的载入儲存單元之方塊 圖,該載入儲存單元之組態被設定成驗證载入作業的推測 結果與特定標記所識別的資料值間之連結。 第6B圖是根據一個實施例的執行核心之方塊圖,节執 行核心之組態被設定成驗證載入作業的推測結果與特^ έ己所識別的資料值間之連結。 第7圖是根據—個實施例而使用值比較以驗證载 業的推測結果與特定標記所識別的資料值間之連 第8圖是排程器的一個實施例之方塊圖。 第9圖是用來發出作業並回應資料 而重新發出作業的方法的-個實施例之流程圖。“ 第1〇圖是根據—個實施例的排程器之方塊 ,器之組態被設定成根據推測運算元來源或非推測運;呈 源而選擇性地決定作業是否準備就緒可發出,… 第11圖是派發單元的另—實施例之方塊圖。 弟1 2圖是派發置_ ^ 第13 H1 _山Χ 的又一貫施例之方塊圖。 θ不根據一個實施例的推測暫 元,該推測暫存器對 _ 日仔。。對映早 # f映早7之組態被設定成%雄盥拉a 戽元的標記相關聯的色嗎之指示。 、’1·^、咎弋運 第14圖示出電腦系統之L:實施例。 第15圖示出電腦系統之另一實施例。 92769 64 1362613 202 記憶體樓案控制器 206 定址型樣 210 基底邏輯暫存器名稱 214 偏移值 220 、252 ' 262 、 522 、 820 250 載入之儲存區 255 被載入的值 257 推測結果 .260 儲存之緒存區 280 儲存至載入轉送比較畜 282 值比較器 402 匯流排橋接器 408 圖形控制器 412A 至412Β PCI裝置 416 輔助匯流排橋接器 •42〇 EISA/ISA匯流排 424 CPU匯流排 428 ' 428a L2快取記憶體 504 作業儲存區 512 非推測標記 516 結果棚位 530 錯誤推測偵測邏輯電路 532 比較器 612Α 至612D處理節點 204 5己丨思體槽案儲存單元 208實體暫存器名稱 212索引邏輯暫存器名稱 資料項 254 载入標記 256 轉送標記 2 5 8、2 6 8 位址 269 退休旗標 400 電腦系統 406 記憶體匯流排 410 AGP匯流排 414 pCI匯流排 418 EISA 或 ISA 裝置 422 鍵盤及滑鼠 426 顯示哭 502 排程器控制器 510運算碼欄位 514推測標記 520標記匯流排 534 多工哭 ΌΌ 614A至614D記憶體 92769 66 記憶體控制器 介面邏輯 輸入/輪出裝置 線路 1362613
616、616A 至 616D 618 、 618A 至 618L
620A 至 620B 624 ' 624AJL 624H 線路 800 推測暫存器對映單元 802推測暫存器對映單元控制器 804推測暫存n對映單^儲存區 鲁8 1 2貫體暫存器識別符 8 1 &色碼 92769
Claims (1)
136.2613 第94114201號專利申請案 年2月2日修正簪埴可、 (〇1 λ: 2. α ^ '~*~Ί 修正本 十、申請專利範圍: -種用來驗證將載人作“統之推測結果連結到暫存 器值之記憶體檔案的系統,包含: 記憶體檔案’該記憶體檔案包含組構成儲存第 址型樣及第-標記的資料項,其中,該記憶體檔案組構 ^將該資料項中包含的該第一定址型樣與載入作業的 第二定址型樣比較’其中’若該第二定址型樣與該資料 項中儲存的該第-定址型樣相符,則該記憶體檔案植構 成將該第—標記所識別的資料值連結到該載入作業的 推測結果; ~ 、搞合到該記憶體檔案的執行核心,其中,該執行核 心組構成於執行與該載入作業相依的第二作業時存取 該推測結果;以及 耦合到該記憶體檔案的載入儲存單元,且該載入儲 早70組構成藉由執行一個或多個位址間之比較而驗 ’第-標記所識別的該資料值與該載入作業的該推 測結果間之連結。 ::請專利範圍第1項之系統,其中,該載入儲存單元 ^3組構成執行該比較並執行非推測儲存至載入轉送 之儲存至載入轉送比較器(st〇re_t〇_1〇ad comparator)。 3.如申請專利範圍帛1項之系統,其中,該資料項進一步 2成.回應該被分配的資料項而儲存用來識別載入或 92769(修正版) 68 1 子作業之轉送標記,並於該第二定址型樣與該資料項 I362613 第941 M2〇丨號專利申請案 101年2月2日修正替換頁 '令儲存的該第一定址型樣相符時輪出 -如中請專利範圍第3項之系統,其中,該载人儲 以接收該轉送標記,且該載入儲存U進-步組 構成错由選擇比該载入作業舊且具有盥該 位址相符的位址之最新的、/ 業的 盘所、登埋认—旦, 藉由比較該轉送標記 其卜所選擇的該最新的作業是載人或 ^=專㈣㈣3項之系統’其中,該載人儲存單元 被輕5以接收該轉送標記,且該载人儲 構:藉由選擇分別比該載入作業舊且 ;;、、且 入作業的位址相符的位址之最新的載入作業:最;= 儲存作業、並藉由決定所選擇的 哉、 ' 程式順序比所選擇的新的載入作業按照 旳茲取新的儲存作業新、以及蕤由μ|_ 車乂該轉送標記與所選擇的該最新的載 ) 記,以執行該比較。 糸之識別軚 6. : I ::利範圍第1項之系統,其令,該記憶體擋㈣ 項成該載入作業舊的载入作業而分配該資料、、 業先出現該較售的載入作業按照程式順序比該载入作 i盖I明專利圍第1項之系統’其中,該記惊體浐幸έ 構成回應儲存作業而分配該資料項。-體检案組 8.如申請專利範圍第J項之系統,1中, 〇科項’其中,該載入儲存單元組構成·.回 69 92769(修正版) 1362613 第94114201號專利申請案 101年2月2曰修正替換頁 |…τ &乃z日修正替換 *應該記憶體檔案以將該標記所識別的該資料值連結到 該載入作業的推測結果,而設定與該儲存作業相關聯的 旗標。 9. 如申請專利範㈣8項之系統,其中,回應該旗標被設 定,該載讀存單元組構成:保持與該儲存作業相關聯 的資訊,直到藉由執行該比較而證實該連結為止。 10. 如申請專利範圍第9項之系統,進一步包含退休件列 (retire queue)’該退休㈣組構成:如果該旗標被設 定,則在證實該連結之前,不使該儲存作業退休。 U. 一種用來驗證將載入作業系統之推測結果連結到暫存 器值之記憶體檔案的系統,包含·· 記憶體檔案,該記憶體檔案包含組構 址型樣及第一標記的 仔弟疋 成將該資料項t包含Si 該記憶體槽案組構 第一二 定址型樣與载入作業的 /、 Μ第一疋址型樣與該資料 、中储存的该弟-定址型樣相符 成將該第一桿圮所_則±L體桮案組構 推測結果;线別的負料值連結到該載入作業的 耦合到該記憶體檔案的執行核心, 心組構成於執行與該载入 /、中她丁核 該推測結果;以及 一又、第一作業時存取 耦合到該記憶體檜案的功能 構成藉由執行該推測結果與 功能單元組 之比較而驗證作業的實際結果間 所識別的該資料值與該載入 92769(修正版) 第94114201號專利申請案 101年2月2日修正替換頁 其中’該功能單元是 作業的該推測結果間之連結。 12.如申請專利範圍第11項之系統 載入儲存單元。 13·如申請專利範圍第u (―⑴,該派發;=步包含派發單元 λ %早兀組構成回應該連結而派 發錢入作業以及相關聯的比較作業 14:=行;相關聯的比較作業時執行二 構成自月圍第11項之系統,其中,該功能單元組 果以供=載入作業使用的暫存器存取該推測結 15. 儲存資料項,該資料項包含第一 種用來驗§登將載入作業系 器值之記憶體檔案的方法, 記; 統之推測結果連結到暫存 包含下列步驟: 定址型樣及第一標 在館存該資料項之後,比較該資料項中包含的該第 一定址型樣與載入作業的第二定址型樣; 回應該比較步驟,如果該第二^址型樣與該資料項 2存的該第-定址型樣相符,縣該第―標記所識別 、貝料值連結到該載入作業的推測結果; 一在該連結步驟之後’於執行與該載入作業相依的第 二作業時,存取該推測結果;以及 、在該連結步驟之後,藉由執行—個或多個位址間之 車又而驗也由δ亥第一標記所識別的該資料值與該載入 作業的該推測結果間之連結。 92769(修正版) 71 第94114201號專利申請案 j01年2月2曰修正替換頁 - 16ι如由往击<,“ Li01年2月2曰修正替換頁 • 如甲叫專利乾圍第15項之方法,.直'-- -設定成執行非推測儲存 :針係由組態也被 比較器而執行該比較。轉-之儲存至载入轉送 17.如申請專利範圍第15項之方法並 一 步包含## nfc /、中,該資料項進一 /G 3用來回應該被分配的 作業之轉送標記,其t,如果/第項而^別載入或錯存 項中儲存筮+ 5Λ第一疋址型樣與該資料 ::存的该第一定址型樣相 Js.如申請專利範圍第]7項之 史释°玄轉己。 該步驟進-步包含下列步驟: 執打該比較之 相符的位址之最新且3與該載入作業的位址 比較所選擇的該轉送 業之識別桿記,1中 ^己與所選擇的該最新的作 儲存作業Γ '中’所選擇的該最新的作業是載入或 19.如申請專利範圍第17 該步驟進一步包含下列步驟法’其中,執行該比較之 選擇分別比該载入作 業的位址相符的位址之新/ 刀別具有與該载入作 作業; 的载入作業及最新的儲存 回應選擇該最新的载 ^ 業,而決定所選擇的該 業及該最新的儲存作 所選擇的該最新的儲新的載入作業在程式順序上比 回應選擇二新;以及 業,而比較所選擇的 乍業及該最新的儲存作 μ轉送標記與所選擇的該最新的載 72 92769(修正版)
- 入作業之識别標記 ,如申請專利範圍第15項之方法 入作業舊的裁入作豐:v /、中係、回應比該载 乍業而为配該資料項,其中,該較舊的 戟入作業按照程式 平乂售的 2!•如申n广式興序比該載入作業先出現。 •斯Τ。月寻利乾圍第η 業而分配該資料項。 / Ί’係回應館存作 2 2 ·如申請專利範 順序上比㈣ 5項之方法’其中,係回應在程式 項曰* 〇入作業先出現的儲存作業而分配該資料 別的該8資步包含下列步驟:回應將該標記所識 到該載人作業的推測結果,而設定愈 該儲存作業相關聯的旗標。 疋〃 申請專利範圍第22項之方法,進一步包含下列步 如保持儲存作業相關聯的資訊’直到藉由執行該 2而证實錢結為止,其中,該保持發生以回應設定 该旗標。 24. 如申請專利範圍第23項之方法,進—步包含下列步 ::回應設定該旗標,而在證實該連結之前,不使該儲 存作業退休。 ,… u 口 | / μ 7 外· 儲存=貝料項,該資料項包含第一定址型樣及第 25. 種用來驗證將载入作業系統之推測結果連結到暫存 益值之吕己憶體檔案的方法,包含下列步驟: 記; —在儲存5亥貢料項之後’比較該資料項中包含的該i 疋址型樣與載入作業的第二定址型樣; 73 92769(修正版) ------取哥利甲請案 • Μ糾較步驟,如果 中儲存的兮笛 °x第一疋址孓樣與該資料項 •的資料值::—定址型樣相符,則將該第一標記所識別 貝科值連結到該載入作業的推測結果; 二作3連,步驟之後,於執行與該載入作業相依的第 卜菜衧,存取該推測結果;以及 作業藉由執行該推測結果與該載入 的該資二:: 驗證由該第一標記所識別 26 ’ /、該載入作業的該推測結果間之連結。 專利_25項之方法,其中,係由載入儲存 早兀執行該驗證步驟。 27.=申請專利範圍第25項之方法,進一步包含下列步 = 應該連結步驟而派發該载入作業以及相關聯的比 =作業’其_,該比較作業組構成於被執行時執行該比 較。 认如申請專利範圍第25項之方法,進一步包含下列步 驟:自並未被職人作#使料暫存畴取該推測结果 以供位址計算。 92769(修正版) 74
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/839,474 US7263600B2 (en) | 2004-05-05 | 2004-05-05 | System and method for validating a memory file that links speculative results of load operations to register values |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200606709A TW200606709A (en) | 2006-02-16 |
TWI362613B true TWI362613B (en) | 2012-04-21 |
Family
ID=34959784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW094114201A TWI362613B (en) | 2004-05-05 | 2005-05-03 | System and method for validating a memory file that links speculative results of load operations to register values |
Country Status (7)
Country | Link |
---|---|
US (1) | US7263600B2 (zh) |
JP (1) | JP2007536626A (zh) |
CN (1) | CN100424635C (zh) |
DE (1) | DE112004002848B4 (zh) |
GB (1) | GB2429557B (zh) |
TW (1) | TWI362613B (zh) |
WO (1) | WO2005111794A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI652618B (zh) | 2013-03-15 | 2019-03-01 | 英特爾股份有限公司 | 用以管理儲存在硬體結構中的元素的方法與設備 |
Families Citing this family (44)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7571304B2 (en) * | 2005-03-18 | 2009-08-04 | Sun Microsystems, Inc. | Generation of multiple checkpoints in a processor that supports speculative execution |
US7376817B2 (en) * | 2005-08-10 | 2008-05-20 | P.A. Semi, Inc. | Partial load/store forward prediction |
US20080010441A1 (en) * | 2006-07-05 | 2008-01-10 | International Business Machines Corporation | Means for supporting and tracking a large number of in-flight loads in an out-of-order processor |
US20080010440A1 (en) * | 2006-07-05 | 2008-01-10 | International Business Machines Corporation | Means for supporting and tracking a large number of in-flight stores in an out-of-order processor |
US7624253B2 (en) * | 2006-10-25 | 2009-11-24 | Arm Limited | Determining register availability for register renaming |
US20080162889A1 (en) * | 2007-01-03 | 2008-07-03 | International Business Machines Corporation | Method and apparatus for implementing efficient data dependence tracking for multiprocessor architectures |
US7689812B2 (en) * | 2007-02-14 | 2010-03-30 | International Business Machines Corporation | Method and system for restoring register mapper states for an out-of-order microprocessor |
US9069672B2 (en) * | 2009-06-12 | 2015-06-30 | Intel Corporation | Extended fast memory access in a multiprocessor computer system |
US8468325B2 (en) | 2009-12-22 | 2013-06-18 | International Business Machines Corporation | Predicting and avoiding operand-store-compare hazards in out-of-order microprocessors |
US8521992B2 (en) | 2009-12-22 | 2013-08-27 | International Business Machines Corporation | Predicting and avoiding operand-store-compare hazards in out-of-order microprocessors |
US9135014B2 (en) * | 2012-02-15 | 2015-09-15 | Freescale Semiconductor, Inc | Data processing system with latency tolerance execution |
US9996348B2 (en) * | 2012-06-14 | 2018-06-12 | Apple Inc. | Zero cycle load |
US10198265B2 (en) | 2013-03-15 | 2019-02-05 | Intel Corporation | Microprocessor for gating a load operation based on entries of a prediction table |
US10467010B2 (en) * | 2013-03-15 | 2019-11-05 | Intel Corporation | Method and apparatus for nearest potential store tagging |
US9471480B2 (en) * | 2013-12-02 | 2016-10-18 | The Regents Of The University Of Michigan | Data processing apparatus with memory rename table for mapping memory addresses to registers |
GB2518022B (en) * | 2014-01-17 | 2015-09-23 | Imagination Tech Ltd | Stack saved variable value prediction |
US11068271B2 (en) | 2014-07-28 | 2021-07-20 | Apple Inc. | Zero cycle move using free list counts |
GB2532232A (en) | 2014-11-12 | 2016-05-18 | Ibm | Verifying a graph-based coherency verification tool |
US10185561B2 (en) * | 2015-07-09 | 2019-01-22 | Centipede Semi Ltd. | Processor with efficient memory access |
US20170010973A1 (en) * | 2015-07-09 | 2017-01-12 | Centipede Semi Ltd. | Processor with efficient processing of load-store instruction pairs |
US9575897B2 (en) | 2015-07-09 | 2017-02-21 | Centipede Semi Ltd. | Processor with efficient processing of recurring load instructions from nearby memory addresses |
WO2017006235A1 (en) * | 2015-07-09 | 2017-01-12 | Centipede Semi Ltd. | Processor with efficient memory access |
US10331357B2 (en) * | 2016-08-19 | 2019-06-25 | Advanced Micro Devices, Inc. | Tracking stores and loads by bypassing load store units |
US10884747B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Prediction of an affiliated register |
US11150908B2 (en) | 2017-08-18 | 2021-10-19 | International Business Machines Corporation | Dynamic fusion of derived value creation and prediction of derived values in a subroutine branch sequence |
US10534609B2 (en) | 2017-08-18 | 2020-01-14 | International Business Machines Corporation | Code-specific affiliated register prediction |
US10884746B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Determining and predicting affiliated registers based on dynamic runtime control flow analysis |
US11150904B2 (en) | 2017-08-18 | 2021-10-19 | International Business Machines Corporation | Concurrent prediction of branch addresses and update of register contents |
US10908911B2 (en) | 2017-08-18 | 2021-02-02 | International Business Machines Corporation | Predicting and storing a predicted target address in a plurality of selected locations |
US10719328B2 (en) | 2017-08-18 | 2020-07-21 | International Business Machines Corporation | Determining and predicting derived values used in register-indirect branching |
US10884745B2 (en) | 2017-08-18 | 2021-01-05 | International Business Machines Corporation | Providing a predicted target address to multiple locations based on detecting an affiliated relationship |
US10705973B2 (en) | 2017-09-19 | 2020-07-07 | International Business Machines Corporation | Initializing a data structure for use in predicting table of contents pointer values |
US11061575B2 (en) | 2017-09-19 | 2021-07-13 | International Business Machines Corporation | Read-only table of contents register |
US10713050B2 (en) | 2017-09-19 | 2020-07-14 | International Business Machines Corporation | Replacing Table of Contents (TOC)-setting instructions in code with TOC predicting instructions |
US10896030B2 (en) | 2017-09-19 | 2021-01-19 | International Business Machines Corporation | Code generation relating to providing table of contents pointer values |
US10620955B2 (en) | 2017-09-19 | 2020-04-14 | International Business Machines Corporation | Predicting a table of contents pointer value responsive to branching to a subroutine |
US10725918B2 (en) | 2017-09-19 | 2020-07-28 | International Business Machines Corporation | Table of contents cache entry having a pointer for a range of addresses |
US10884929B2 (en) | 2017-09-19 | 2021-01-05 | International Business Machines Corporation | Set table of contents (TOC) register instruction |
US10620961B2 (en) * | 2018-03-30 | 2020-04-14 | Intel Corporation | Apparatus and method for speculative conditional move operation |
US11334485B2 (en) * | 2018-12-14 | 2022-05-17 | Eta Scale Ab | System and method for dynamic enforcement of store atomicity |
US11061683B2 (en) * | 2019-06-13 | 2021-07-13 | Microsoft Technology Licensing, Llc | Limiting replay of load-based control independent (CI) instructions in speculative misprediction recovery in a processor |
US11200062B2 (en) | 2019-08-26 | 2021-12-14 | Apple Inc. | History file for previous register mapping storage and last reference indication |
US11416254B2 (en) | 2019-12-05 | 2022-08-16 | Apple Inc. | Zero cycle load bypass in a decode group |
US11392387B2 (en) | 2020-11-04 | 2022-07-19 | Microsoft Technology Licensing, Llc | Predicting load-based control independent (CI) register data independent (DI) (CIRDI) instructions as CI memory data dependent (DD) (CIMDD) instructions for replay in speculative misprediction recovery in a processor |
Family Cites Families (34)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5778219A (en) | 1990-12-14 | 1998-07-07 | Hewlett-Packard Company | Method and system for propagating exception status in data registers and for detecting exceptions from speculative operations with non-speculative operations |
US5428807A (en) | 1993-06-17 | 1995-06-27 | Digital Equipment Corporation | Method and apparatus for propagating exception conditions of a computer system |
US5584009A (en) | 1993-10-18 | 1996-12-10 | Cyrix Corporation | System and method of retiring store data from a write buffer |
US5452426A (en) | 1994-01-04 | 1995-09-19 | Intel Corporation | Coordinating speculative and committed state register source data and immediate source data in a processor |
US5799179A (en) * | 1995-01-24 | 1998-08-25 | International Business Machines Corporation | Handling of exceptions in speculative instructions |
US6237082B1 (en) | 1995-01-25 | 2001-05-22 | Advanced Micro Devices, Inc. | Reorder buffer configured to allocate storage for instruction results corresponding to predefined maximum number of concurrently receivable instructions independent of a number of instructions received |
US5751983A (en) * | 1995-10-03 | 1998-05-12 | Abramson; Jeffrey M. | Out-of-order processor with a memory subsystem which handles speculatively dispatched load operations |
US5892936A (en) | 1995-10-30 | 1999-04-06 | Advanced Micro Devices, Inc. | Speculative register file for storing speculative register states and removing dependencies between instructions utilizing the register |
US6108769A (en) | 1996-05-17 | 2000-08-22 | Advanced Micro Devices, Inc. | Dependency table for reducing dependency checking hardware |
US5781752A (en) | 1996-12-26 | 1998-07-14 | Wisconsin Alumni Research Foundation | Table based data speculation circuit for parallel processing computer |
US6021485A (en) * | 1997-04-10 | 2000-02-01 | International Business Machines Corporation | Forwarding store instruction result to load instruction with reduced stall or flushing by effective/real data address bytes matching |
US5845103A (en) | 1997-06-13 | 1998-12-01 | Wisconsin Alumni Research Foundation | Computer with dynamic instruction reuse |
US6065103A (en) * | 1997-12-16 | 2000-05-16 | Advanced Micro Devices, Inc. | Speculative store buffer |
US6044430A (en) | 1997-12-17 | 2000-03-28 | Advanced Micro Devices Inc. | Real time interrupt handling for superscalar processors |
US6112296A (en) | 1997-12-18 | 2000-08-29 | Advanced Micro Devices, Inc. | Floating point stack manipulation using a register map and speculative top of stack values |
US6041405A (en) * | 1997-12-18 | 2000-03-21 | Advanced Micro Devices, Inc. | Instruction length prediction using an instruction length pattern detector |
US6175910B1 (en) | 1997-12-19 | 2001-01-16 | International Business Machines Corportion | Speculative instructions exection in VLIW processors |
JPH11212788A (ja) | 1998-01-28 | 1999-08-06 | Toshiba Corp | プロセッサのデータ供給装置 |
US6202204B1 (en) | 1998-03-11 | 2001-03-13 | Intel Corporation | Comprehensive redundant load elimination for architectures supporting control and data speculation |
US6108770A (en) | 1998-06-24 | 2000-08-22 | Digital Equipment Corporation | Method and apparatus for predicting memory dependence using store sets |
US6463580B1 (en) | 1998-11-18 | 2002-10-08 | Intel Corporation | Parallel processing utilizing highly correlated data values |
US6349382B1 (en) | 1999-03-05 | 2002-02-19 | International Business Machines Corporation | System for store forwarding assigning load and store instructions to groups and reorder queues to keep track of program order |
US6658554B1 (en) | 1999-03-09 | 2003-12-02 | Wisconsin Alumni Res Found | Electronic processor providing direct data transfer between linked data consuming instructions |
US6266744B1 (en) | 1999-05-18 | 2001-07-24 | Advanced Micro Devices, Inc. | Store to load forwarding using a dependency link file |
US6393536B1 (en) * | 1999-05-18 | 2002-05-21 | Advanced Micro Devices, Inc. | Load/store unit employing last-in-buffer indication for rapid load-hit-store |
US6662280B1 (en) | 1999-11-10 | 2003-12-09 | Advanced Micro Devices, Inc. | Store buffer which forwards data based on index and optional way match |
US6438673B1 (en) | 1999-12-30 | 2002-08-20 | Intel Corporation | Correlated address prediction |
US6643767B1 (en) | 2000-01-27 | 2003-11-04 | Kabushiki Kaisha Toshiba | Instruction scheduling system of a processor |
US6675287B1 (en) * | 2000-04-07 | 2004-01-06 | Ip-First, Llc | Method and apparatus for store forwarding using a response buffer data path in a write-allocate-configurable microprocessor |
DE10121792C2 (de) * | 2000-05-26 | 2003-09-25 | Ibm | Universelle Ladeadresse/Wertevorhersageschema |
US6671780B1 (en) * | 2000-05-31 | 2003-12-30 | Intel Corporation | Modified least recently allocated cache replacement method and apparatus that allows skipping a least recently allocated cache block |
JP3497832B2 (ja) * | 2001-03-28 | 2004-02-16 | 株式会社半導体理工学研究センター | ロード・ストアキュー |
US6883086B2 (en) * | 2002-03-06 | 2005-04-19 | Intel Corporation | Repair of mis-predicted load values |
US7028166B2 (en) | 2002-04-30 | 2006-04-11 | Advanced Micro Devices, Inc. | System and method for linking speculative results of load operations to register values |
-
2004
- 2004-05-05 US US10/839,474 patent/US7263600B2/en active Active - Reinstated
- 2004-12-17 JP JP2007511351A patent/JP2007536626A/ja active Pending
- 2004-12-17 DE DE112004002848T patent/DE112004002848B4/de active Active
- 2004-12-17 GB GB0622878A patent/GB2429557B/en not_active Expired - Fee Related
- 2004-12-17 CN CNB2004800429401A patent/CN100424635C/zh active Active
- 2004-12-17 WO PCT/US2004/042683 patent/WO2005111794A1/en active Application Filing
-
2005
- 2005-05-03 TW TW094114201A patent/TWI362613B/zh not_active IP Right Cessation
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI652618B (zh) | 2013-03-15 | 2019-03-01 | 英特爾股份有限公司 | 用以管理儲存在硬體結構中的元素的方法與設備 |
US10289419B2 (en) | 2013-03-15 | 2019-05-14 | Intel Corporation | Method and apparatus for sorting elements in hardware structures |
Also Published As
Publication number | Publication date |
---|---|
JP2007536626A (ja) | 2007-12-13 |
WO2005111794A1 (en) | 2005-11-24 |
CN1954290A (zh) | 2007-04-25 |
US7263600B2 (en) | 2007-08-28 |
GB2429557B (en) | 2007-09-05 |
GB0622878D0 (en) | 2006-12-27 |
DE112004002848T5 (de) | 2007-04-05 |
TW200606709A (en) | 2006-02-16 |
DE112004002848B4 (de) | 2010-06-17 |
US20050247774A1 (en) | 2005-11-10 |
CN100424635C (zh) | 2008-10-08 |
GB2429557A (en) | 2007-02-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI362613B (en) | System and method for validating a memory file that links speculative results of load operations to register values | |
US6950925B1 (en) | Scheduler for use in a microprocessor that supports data-speculative execution | |
US11275590B2 (en) | Device and processing architecture for resolving execution pipeline dependencies without requiring no operation instructions in the instruction memory | |
KR101192814B1 (ko) | 로드가 선행하는 스토어에 의존적인지를 예측하는 의존성 매커니즘을 구비한 프로세서 | |
US6845442B1 (en) | System and method of using speculative operand sources in order to speculatively bypass load-store operations | |
US7028166B2 (en) | System and method for linking speculative results of load operations to register values | |
CN101395573A (zh) | 乱序处理器中的分布式记分板调度 | |
US20090024842A1 (en) | Precise Counter Hardware for Microcode Loops | |
TW200422948A (en) | Data speculation based on addressing patterns identifying dual-purpose register | |
TW201042543A (en) | Out-of-order execution microprocessor and operation method thereof | |
CN105005463A (zh) | 具有世代重命名的计算机处理器 | |
EP1644823B1 (en) | Load store unit with replay mechanism | |
TWI338249B (en) | System and method to prevent in-flight instances of operations from disrupting operation replay within a data-speculative microprocessor | |
US7197630B1 (en) | Method and system for changing the executable status of an operation following a branch misprediction without refetching the operation | |
US7937569B1 (en) | System and method for scheduling operations using speculative data operands | |
US7266673B2 (en) | Speculation pointers to identify data-speculative operations in microprocessor | |
US7222226B1 (en) | System and method for modifying a load operation to include a register-to-register move operation in order to forward speculative load results to a dependent operation | |
KR20070019750A (ko) | 로드 동작의 투기적인 결과들을 레지스터 값들에 연결하는메모리 파일을 유효화하기 위한 시스템 및 그 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |