TWI292557B - - Google Patents
Download PDFInfo
- Publication number
- TWI292557B TWI292557B TW094102818A TW94102818A TWI292557B TW I292557 B TWI292557 B TW I292557B TW 094102818 A TW094102818 A TW 094102818A TW 94102818 A TW94102818 A TW 94102818A TW I292557 B TWI292557 B TW I292557B
- Authority
- TW
- Taiwan
- Prior art keywords
- instruction
- data
- cache
- execution
- logic circuit
- Prior art date
Links
- 238000009826 distribution Methods 0.000 claims description 42
- 238000000034 method Methods 0.000 claims description 23
- 230000006870 function Effects 0.000 claims description 16
- 239000000463 material Substances 0.000 claims description 16
- 238000007667 floating Methods 0.000 claims description 12
- XEEYBQQBJWHFJM-UHFFFAOYSA-N Iron Chemical compound [Fe] XEEYBQQBJWHFJM-UHFFFAOYSA-N 0.000 claims description 10
- 230000009471 action Effects 0.000 claims description 10
- 238000003860 storage Methods 0.000 claims description 9
- 229910052742 iron Inorganic materials 0.000 claims description 5
- 206010011469 Crying Diseases 0.000 claims description 4
- 238000012360 testing method Methods 0.000 claims description 3
- 238000012546 transfer Methods 0.000 claims description 3
- 230000005540 biological transmission Effects 0.000 claims description 2
- 230000008439 repair process Effects 0.000 claims description 2
- 239000002689 soil Substances 0.000 claims description 2
- 239000000126 substance Substances 0.000 claims 2
- HRANPRDGABOKNQ-ORGXEYTDSA-N (1r,3r,3as,3br,7ar,8as,8bs,8cs,10as)-1-acetyl-5-chloro-3-hydroxy-8b,10a-dimethyl-7-oxo-1,2,3,3a,3b,7,7a,8,8a,8b,8c,9,10,10a-tetradecahydrocyclopenta[a]cyclopropa[g]phenanthren-1-yl acetate Chemical compound C1=C(Cl)C2=CC(=O)[C@@H]3C[C@@H]3[C@]2(C)[C@@H]2[C@@H]1[C@@H]1[C@H](O)C[C@@](C(C)=O)(OC(=O)C)[C@@]1(C)CC2 HRANPRDGABOKNQ-ORGXEYTDSA-N 0.000 claims 1
- 241000238366 Cephalopoda Species 0.000 claims 1
- 235000011511 Diospyros Nutrition 0.000 claims 1
- 244000236655 Diospyros kaki Species 0.000 claims 1
- 241000239226 Scorpiones Species 0.000 claims 1
- 238000004590 computer program Methods 0.000 claims 1
- 230000003111 delayed effect Effects 0.000 claims 1
- APTZNLHMIGJTEW-UHFFFAOYSA-N pyraflufen-ethyl Chemical compound C1=C(Cl)C(OCC(=O)OCC)=CC(C=2C(=C(OC(F)F)N(C)N=2)Cl)=C1F APTZNLHMIGJTEW-UHFFFAOYSA-N 0.000 claims 1
- 239000004575 stone Substances 0.000 claims 1
- 238000010586 diagram Methods 0.000 description 12
- 238000012545 processing Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 238000004519 manufacturing process Methods 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- TVEXGJYMHHTVKP-UHFFFAOYSA-N 6-oxabicyclo[3.2.1]oct-3-en-7-one Chemical compound C1C2C(=O)OC1C=CC2 TVEXGJYMHHTVKP-UHFFFAOYSA-N 0.000 description 1
- 244000025254 Cannabis sativa Species 0.000 description 1
- 241000218691 Cupressaceae Species 0.000 description 1
- PEDCQBHIVMGVHV-UHFFFAOYSA-N Glycerine Chemical compound OCC(O)CO PEDCQBHIVMGVHV-UHFFFAOYSA-N 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 239000008280 blood Substances 0.000 description 1
- 210000004369 blood Anatomy 0.000 description 1
- 210000000078 claw Anatomy 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000013502 data validation Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 210000003746 feather Anatomy 0.000 description 1
- 239000000796 flavoring agent Substances 0.000 description 1
- 235000019634 flavors Nutrition 0.000 description 1
- 239000008267 milk Substances 0.000 description 1
- 210000004080 milk Anatomy 0.000 description 1
- 235000013336 milk Nutrition 0.000 description 1
- 239000000203 mixture Substances 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000005086 pumping Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 210000000952 spleen Anatomy 0.000 description 1
- 210000002784 stomach Anatomy 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000004148 unit process Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
- 210000004885 white matter Anatomy 0.000 description 1
- 239000002023 wood 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/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3824—Operand accessing
-
- 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/3004—Arrangements for executing specific machine instructions to perform operations on memory
- G06F9/30043—LOAD or STORE instructions; Clear instruction
-
- 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
-
- 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/3854—Instruction completion, e.g. retiring, committing or graduating
- G06F9/3856—Reordering of instructions, e.g. using queues or age tags
-
- 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
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)
- Memory System Of A Hierarchy Structure (AREA)
- Executing Machine-Instructions (AREA)
Description
1292557 九、發明說明 年月正替換頁 【發明所屬之技術領域】 本發明係關於从處理器之載入動作,特別係關於避免因 載入動作而導致之微處理器管線(pipeline)遲滯(stall)。 【先前技術】 現代微處理器大多具有管線架構,亦即,微處理器之多 個區塊或管線之多個階段可同時執行數個指令。漢尼西 (John L· Hennessy)與派特森(David A paUers〇n)於一九 九六年由加州舊金山市摩根考夫曼出版社(M〇rgan
Kaufman Publishersw出版之「計算機架構—計量分析」 (C〇mputer Architecture: A Quantiutive Appr〇ach)第二 ,中,定義管線為「同時執行多個指令之_實作技術」。接 著,作者們提供以下對於管線的精采解說: j 一條管線類似一條裝配生產線。一汽車裝配生產線中 農有·色^色 獻。而每一步驟皆與其他步驟同時平行運作:雖然其對象係 :::同/飞車A -计异機官線作業當中,每一步驟完成一 —二7之一刀。如同褒配生產線—般,T同之步驟同時平 行元成不同指令之不同部公。 — ^ i- -¾ _ - P 上述之母一步驟被稱為一管線 :又:-官線節段。此管線階段係相互連接以形成一管線, 田吕深之&進人,經過若干階段之後,自另一端 硪開,猶如汽車於裝配生產線一般。」 =同步電路之微處理器的運作係根據時脈於血 階段移動至另—階/二:一化脈週期間,自管線之- 白衩。於一 &車裝配生產線中,若某一階段 1292557 9α7;ια: a ^ .....''...……,…一 a 之工人因缺乏車輛可供組裝而閒置呆坐,則此裝配生產線之 生產或績效即受到影響。同樣地,若微處理器之某一階段係 因缺乏可供執行之指令而閒置了 一個時脈週期,上述之情況 通常被稱為管線氣泡(bubble),則此微處理器之效能同樣為 到影響而變差。 又 人一般而言,微處理器管線之初始階段負責提取程式之指 亚將上述所提取之指令分配或發送至管線中實際執行此 j 7之各個階段,譬如執行加減乘除等動作之邏輯電路計算 早兀。現代微處理器通常包含多個實際執行指令之執行單 ^諸如整數計算單元、浮點數計算單元,或單指令多資料 早 WSIMD,Single instructi〇n MulUple 等上述 之分配邏輯電路決定每—個指令將送往哪個執行單元,並且 、^合執行指令所需的資料(即運算元),以便執行特定的運曾 :羅:侍結果。若無法獲得上述指令所需之運算元,則此分配 =電路之運作即發生—瓶頸,進而影響到造成此瓿頸指令 的^ 异、、、。果不相關之其他指令都將受到影響。上述之 二 執行單元閒置而無法執行指令。 、導致 係^ =言,運算元通常較易取得,因為大多數的運算元 係末自彳政處理器内部之暫在 運曾亓並“人 一個時脈週期内提供 他·曰令之運算元(譬如由載入指令所指定之運曾元 二理位址而指定。位於記憶體内之運算元通常;由 昧取屺憶體於數個時脈週期内提供。麸而 有些時候載入指令所指定之資料可能無法及時獲得^ 快取記憶體内並無所指定 又 吕如® ?曰疋之貝枓w。於現代微處理器中,自 1292557 0修议)正替換1 。系統記憶體提取資科至微處理器所需之時間係較 态内部之暫存器或快取記憶體提取資料所需之時間長:I 兩個量級。而關於此項比例有越來越大趨勢,更加劇:: 令於指令分配電路所造成之管線延遲氣 問題之嚴重性。據此’亟須-裝置與方法以避免上述=泡 【發明内容】 於本發明所揭示之—方向,係提供—具有管線架構之微 处理益,此微處理器將指令分配功能分散至 與執行單元内之額外指令分配邏輯電路,令接續於 "己憶體相關延遲之指令後的宜^ ^ ^ ^ 分配執行。主要於人八 不ϋ帶繼續被 要扣$刀配器要求自一資料快取讀取一 ^所提供之記憶體位址内的载人資料。若: ==上述之載入資料,則上述之指令分配器= 划.適當執行單元而先不理會缺乏載入資 :.:此指令分配器亦提供上述執行單元一個可獨特护示出上 士押奸私:乏之载人㈣的標籤,而此_¥ϊϊ知来 此仏戴料快取獲得上述載 : 料與上述標籤饋入一 H、, 傻⑯此載入貝 藏與載入資料係屬有^有效性指標標示此標 效標籤之執行單元㈣a 叶既取以獲付一有 先前自指令分配:=Γ 輯電路’將此有效標鐵與 時,此錢行比對°當比對某標籤吻合 “刀配避輯電路即自上述 將此載入指令與資料分配至-功能單元以二:1述:; 流程於此被稱為一分離 =仃上述作業 operation),或稱 A _ 1 載人作業(detaehed load 飞輛為刀散式载入分配作業(distributed m ίλι - 1292557 load dispatch operation) 於本發明所揭示之另一方向,上述每— 含一指令/資料符列。此指令分配器將上述载入指^凡皆包 列之一筆記錄,以及將-值寫入此仔列之一資料此符 以指出此載入指令之資料係屬無效。無論是否為载1 =標 =所㈣算元俱皆齊備,則上述之指令分配器:二令: 7寫入此佇列,並設定此指令之資枓古兮f 、’、&才日 八邴、s赭_ 7之貝科有效性指標為有效。♦ 刀配邏輯電路監控上述之資料快取匯 二田 資料有效性指標為益效以 /、僅對仵列内 &獾π L、、、 一上述刀配邏輯電路自此資料快 又伃述載入資料’並且將此資料置入」 指令之仵列記錄後,上述之分配邏輯電 :::= 效性指標為有效以指出此分 °疋述-貝料有 上述之功能單元加㈣執^式載^令已作好準備,可供 上述揭示之另一方向,上述之指令分配器於分配 ϋ之載入指令至勃并登;1 , ^ ^ ^ ^ ^ ^ ^ # ^ ^ ^ ^ ^ ^ ^ „. 其離退(retire)。上述做法具有—顯著優勢,亦即 拉二扣7被其匕執行單元而非此執行單元所限定來保 八!I'底之載人指令時,則上述做法允許基本上無限地指令 分配執行。 【實施方式】 為了能徹底地瞭解本發明,將在下列的描述中提出詳盡 的步驟及发Λ〇 L·· w 羽 ^成。頒4地,本發明的施行並未限定於技藝者 、、白的4寸殊細節。另一方面,眾所周知的組成或步驟並未 10 ! m 1292557
^ ^ ! ” 0綠0)止替換頁I 二二。田Bp *,以避免造成本發9rmiFrw~^4明的 :實:例會詳細描述如下,然而除了這些詳細描述之外, 發月還可以廣泛地施行在其他的實施例中,不受限定於本 發明的範圍。 μ >考第圖所示,其係為根據本發明之具有管線架構之 他:里。σ 100的方塊不意圖。此微處理器100包含複數個管 :白#又於實化例中,此微處理器100係能實際執行X⑽ 架構之指令集。
W上述之微處理裔100包含一指令提取器丄⑽。此指令提 :器102自一指令快取中提取程式指令,或若指令不在此指 令快取之内時’自與上述之微處理器100相連之-系統記憶 體2提取程式指令。上述由此指令提取器1G2所提取之指令 :S載入•曰令。此載入指令係為一指定某一記憶體位址之指 令,此載入指I之内容储此指定位土止之嘴料自上述之系統 =憶體移動至上述微處理器⑽。若上述之指定位址與此指 定位生上 116,則將由上述資料快取116中載入此資料,而非由上述 系、、先》己隐體。此載入指令命令此微處理器工〇 〇搬移上述指 定位址中之資料至此載入指令所指定之一目的暫存器。例 ^,MOV指令係x86架構下之一載入指令,此m〇v指令指 ^ °己隐體位址為來源運算元以及—通用暫存器為目的運 异兀。x86架構下之另—載入指令係FLD指令,此fld指 址中的資料至此微處理H 1()〇之—浮點數暫存器。m〇vss 指令係x86架構下之另一載入指令,& M〇Vss指令命令此 微處理器100從來源運算元所指定之記憶體位址載入資料至 令命令此微處理器100搬移其來源運算元所指定之記憶體位 11 1292557
此微處理器 100夕_由、士 匕----------------: I 串 延伸集(ssE,streaming SIMD Extension)暫存器。 s ^
上述之微處理+ ^ A ° 10〇亦包含一連接至上述指令提取器 102之才日令格式器ι〇4。一每 ^ 只轭例中,此微處理器100所 處理之指令集包含可襻異^ # 炎長度私令,如x86架構指令集,而非 固疋長度指令。上被夕扣人 上这之礼令格式器1〇4分析一串指令位元 組,並將此串位元組拆解為各個獨立指令。更進一步而言, 此指令格式器1〇4剌磨斤φ μ、+、> a, W斷出上述之各個獨立指令於此串位元組 中之長度與啟始位置。於—實施例中,此指令格式$ 1〇4提 供已t式化之巨&令至—供儲存格式化微指令之指令件列。 上述之微處理器100亦包含一連接至上述指令格式器 104之-指令轉譯器⑽。於—實施例中,此微處理器⑽ 包含一精簡指令集計算機(RISC,Reduced Instrueti〇n Set
Computer)核心’其中上述之精簡指令集計算機核心係執行 二原生指令集。相對於由上述指令提取器1〇2所提取之指令 (塵歷兔邑土令> ’ ’?热ϋ微辱令之原生指令係較簡單並且 更具執行效率之指令。例如,包含巨指令之χ86架構指令隹 或被稱為複雜指令集計算機(CISC,c〇mplex Instnieti二
Set Computer〉。上述之指令轉譯器1〇6係將巨指令轉譯成 微指令。此指令轉譯器106自上述指令格式器1〇4之指令佇 列中提取已格式化之巨指令,並且將每—個巨指令轉譯成至 少一個以上之微指令供此微處理器1〇〇管線之後續階段利 用。此外,此微處理器100亦包含一微碼記憶體以供儲存微 碼常式,此指令轉譯器1〇6係使用上述之常式以轉譯特別複 雜或較少使用之巨指令。上述之原生指令集包含精簡指令集 計算機形式之微载入指令,此微載入指令指定一記憶體位址 12 1292557 以自系統記憶體(或上述之資料快取搬移該;址之資 料至此微載入指令所指定之一目的暫存器。力一實施例中, 上述之原生指令集包含一類被稱為載入暨邏輯電路運算 (Ld_Alu)之微載入指令,此類微載入指令將執行載入資料之 動作並且對已載人之資料進行—功能運算。於此所指涉之載 =指令包含一個命令微處理器的指令自一記憶體位址所指 7之位置讀取資料至微處理器,並且可能包含一巨指令或微 指令。於一實施例中,此指令轉譯器106提供微指令至一供 儲存轉譯後之微指令的指令仔列。 上述之微處理器;L00亦包含一連接至上述指令轉譯器 1/6之一位址產生器1〇8、—連接至上述位址產生器卫⑽之 指令分配器114、一連接至上述指令分配器114之資料快取 116、一連接至上述資料快取116之匯流排介面單元us, ==稷數個連接至上述指令分配器114與資料快取ιΐ6之執 二單元112於第圖示出之實施例中,此微處理器1〇〇包 〇D “_ 一112 '二-ϋϋ、單元 112 土、一浮點數執行 2 - U2B^ - ^ ^ ^ # # (ΜΜχ, multi.media extens^ 苴仃早7L 112C,以及一串流延伸集(SSE)執行單元m =中上述各單元之集合可稱為執行單元112,並且各個單元 Z分別稱為執行單元112。於第—圖示出之實施例中,此 二理③ιοο包含三個暫存器檔案136:—位於上述整數執 =早70 112A中之通用暫存器槽案136A以儲存此整數執行 一 η2Α執订扣令之相關資料、一位於上述浮點數執行單 =U2B中之浮點數暫存器檔案i36B以儲存此浮點數執行 2 112B與多媒體延伸集執行單元1削執行指令之相關 貝〆以及一位於上述串流延伸集執行單元112D中之串流 13 1292557 r雎蝴————一^ i年爲a衝步fi替換頁: 延伸集暫存器槽案136C以儲^秦-ϋ^單元 =2D執行指令之相關資料;其中上述各權案之集合可稱為 暫存器檔案136,並且各個檔案亦可分別稱為暫存哭檔案 136。 口口 即除自上述之指令轉譯器106接收指令外,上述之位址產 •生态108亦透過一運算元匯流排172自上述之暫存器檔案 接收運算元。若所接收之指令指定一記憶體位址,如載 入扣令所指定之載入位址,則此位址產生器即利用此指 令輸入之運算元產生一記憶體位址;其中上述之運算元可能 ^括於指令本身所指定之一位移值(displacement)或一補償 常數值(offset constant)以及來自上述通用暫存器檔案 136A之運算元’如節段暫存器(segment register)之值。上 述之指令可能特別額外指定上述暫存器檔案之運算元,亦可 能隱藏於指令本身,如一堆疊堆入(push)指令與一堆疊提出 (pop)指令本身即已隱含指定一堆疊指標暫存器之運算元參 包含一介於上述指令轉譯器1〇6與位址產生器1〇8之:暫存 器階段以透過上述之運算元匯流排172自上述之暫存器檔案 136接收運算元。 八 上述之指令分配器114係自上述之位址產生器1〇8接收 指令與記憶體位址。此指令分配器114亦透過上述之運算元 匯流排172自上述之暫存器標案136接收暫存器運算元。接 著,此指令分配器:U4將已接收之指令分配至一適當的執行 單元112;其中,此指令分配器114係透過一指令/資料匯流 排182A將指令分配至上述之整數執行單元112八、透過—指 令/資料匯流排182B將指令分配至上述之浮點數執行單^ 14 年月日绦正替換頁 —τ...... 1292557 透過一指令/資料匯流 --~ 媒體延伸隼勃杆置-Ί1 將私令分配至上述之多 、丨Τ木執仃早兀112c,以及# 職將指令分配至上述之串流透;^指令㈣匯流排 …,並且各個匯流排亦可分;稱指令/資料匯流排 上述之指令分配器114判定哪料匯錢182。 執行哪個指令,並且將每個指2係被設定以供 ⑴。於第-圖示出之 :至適當之執行單元 指令分配至上述之黎备抽/ 此心令分配器114將整數 述之1數執行單元U2A A八 上述之WV /手點數才日7刀配至 上逸之子點數執行單元U2B、 ^ ^ ^ Μ » 夕媒體延伸集指令分配至上 I之夕媒體延伸集執行單 g& 5 ^ if . ,以及串流延伸集指令分 配至^之串流延伸集執行單元u2D。於—實施例中 種形悲之執行單元112 人夕 〜 .^ ^ 月b匕各夕個執行單元112。例如, 此欲處理态112可銥白人 ^右夕μ 串流延伸集執行單元1120 ; 亦即有多個執行單元112可 ^ ^ ? , 11又疋執仃某一類型之指令。於 此員加复中’上述之指令分配哭n a ”…:/二定指令之分配,亦即此指令分配器 114 了由此執行旱元HQ思染一欠上 侍心貝矾’例如於每個執行單元112 中有夕^專待執行之相八齡旦 、·ρ次e l 曰7數里。此指令分配器114可依據上 速Μ訊平均地分西己;f:t人^々 刀配心令至各個執行單元112以利程式執行之 敢佳4匕。 於此所定義之谨曾;& 運"'Γ兀係心一指令所需之輸入,以利指令 產生一結果或執行一工苜士么匕 、、力月匕。一般而言,指令可指定來自一 個或三個來源之一或客钿 ώ —夕個之運异元。其中,來源之一係指令 本身’指令可能提供一直接 广· 一 且伐逆开兀(direct operand),亦即 指令位元組所包含之_ ^ 之一個值,如一立即之資料值、一位址之 15 1292557 年月日修{更^替換頁 位移值,或一補償值;來源之二 一係日存器’例如此微處理器 100中之暫存器檔案136内的蕲六w 暫存益可提供一暫存器運算元 (register operand);運糞分水 π 來源之三係記憶體,例如系统 記憶體或上述之資料快取u 一 丄6可提供一記憶體運算元 (memory operand)。更艢破; 旯槓確而言,載入指令係指定位於一記 憶體位址中之一記憶體運算元, 將其载入至此微處理器100 中之一暫存器。 一般而言,上述之指人八立 右 '蛋ψ ^接ρ ^ 7刀配器114獲得指令所指定之 有運异兀之後,即將此一指令 .119 4甘 及/、運异兀分配至一適當之執 行早元112。右某一指令之谨瞀— 運斤几尚未到齊,則上述之指令 分配器114將持續等待,直 >人 、丄、± 主所有運异兀到齊後始開始分配 私々。上述情況所造成之一副 』作用為,於此一指令後之盆餘 指令皆無法被分配至上述之 I炙執仃早兀112,據此則導致至 一個以上之執行單元112間 置不動,即便後續指令可為此閒 置執行單元112所執行。眇„ 此 巧 間 少、 此問碭特別係發生於無法自上述之 貧料曼.色,,116中取得載入指令之一 产,、一士 ^ E . 口己體運异疋日寸,須花費 較長時間取得資料。然而,本 佟κ在扣缺β —。買 达、笛狄一 ν X月之棱點係根據疋否需要等 待運异兀以分辨非載人指令與載人指令。若—載人指令 憶體運算元並不存在於上述之資料快取116時, 述 二己憶,元:上述之指令分配器114立刻將此指令分配至 適虽之執t早兀112;接著,於上述之資料快取116獲取 :5己憶體運算元後’此執行單元112隨即執行此指令以避免 2 =述^題°上述所指涉之作業過程稱為-分離式載入
作紫if1etached load operation),或稱為—分散式载入分配 t (distributed load dispatch operation)T ^ A 細節。 /、 16 r- - 一…·: \ 1292557 丨琴1 a U?T; { ' ................—」 若上述之指令分配器114所接收之指令係為一載入指 令,此指令分配器U4將發出一讀取此載入指令所指定資料 之要求142至上述之資料快取116 ;其中,上述之要求142 包含由上述位址產生斋108所產生之載入$己憶體位址。爲對 此指令分配器114所發出之此要求142作出回應,上述之資 费 料快取116將以下列三種方式擇一回應:第一,若此讀取要 求142導致一例外情況時,此資料快取116將於一例外信號
144中產生一真(true)值以回應上述之指令分配器114。其 中,上述之例外情況諸如除錯例外、中斷點(breakpoint)例 外、範圍超出例外、無效動作碼例外(invalid opcode exception)、超精準浮點數(double)錯誤、區段不存在例外 segment not present exception)、堆疊 保護錯誤(stack segment exception )、分頁錯誤、對齊核 查例外(alignment check exception ),或機器檢查例外等( 當上述資料快取116不於例外信號144產生一真值時,意即 ^ ^ ^ 外(n〇n-excepting)指令。於第二 種回應方式中,上述之資料快取116將於一資料取得性信號 146中產生一偽(false)值以指明此載入指令所指定之載入位 址於此刻係無法取得,並且向此指令分配器ιΐ4提供一標鐵 148以唯-獨特識別此—無法取得之資料。接著,上述指令 二,:114將上述之唯一獨特標籤148分配至上述之適當執 IS二2 ;據此唯一獨特標籤148,此適當執行單元⑴ =稍料:::ΓΓ要求之資料,以細節 116將於一次立丨 裡u應万式中,上述之資料快取 位址之資料:性信號146中產生-真值以指明此載入 '、τ取侍’亚透過一資料匯流排152將所要求之 17 1292557
I年月曰錄替換買I 資料提供至上述指令分配器114。上~ϋϋ取〜11?J含 一標籤管理器122,此標籤管理器122係管理由一標籤信號 148所提供之標籤’以確保每—個未解決之分離式載入作業 ,收到二個唯-獨特標籤148。於—實施财,此標藏管理 益122係維護一流動數值(r〇mng叫⑴,當每次發出一新 •的唯p獨特標籤148後’此-流動數值即隨之增加。此流動 數值須大到足供保證於此微處理器1〇〇中之任何時刻内,任 一分離式載入作業皆可擁有-唯-獨特標籤14 8。 上述之資料絲116錢接至上述之匯流排介面單元 U8:此資料快取116向此匯流排介面單元118發出要求至 :統記憶體载入或儲存資料’其令,系統記憶體係透過一微 匆理器匯流排連接至此微處理器⑽。上述之資料快取ιι6 可能包含—階層 <之快取記憶體,如—第一級快取與一第二 級^取。特別當上述之指令分配器114將發出上述之申請讀 取:枓之要求142至此資料快取116,並且此f料快取ιΐ6 此見敦茂二 入位址並不存在於此資料快取116 ^ ^ ^ ^ 116 ^ ^ ^ ^ # ^ & 要求’a自系統記憶體提取包含上述資料之一個或一個以上 能須I : r又(each he)。上述自系統記憶體提取資料可
、乂長日守間’於某些實施例之微處理器100當中,可 月色大約需要;T , J 停勢在h 百個核心時脈週期之久。本發明所具有之 =ΐΙ不等待載人運算元資料,載人指令直接於缺乏載 才兀貝料之情況下被分配至上述之執行單元112;據 i元=載入指令後之其他指令亦可被分配至上述之執行 執行單元工仃,而不會停滯於較早之管線階段並且可能造成 兀112之閒置。當所需載入之資料自系統記憶體抵達 18 1292557 後’上述之匯流排介面單开,,〇 μ -----—- 快…接著,此資料提供至上述之資料 提供所需載人之資料、、透過%11:6將透過―資料匯流排162 關之唯-獨特標鐵148,以:::信:164提供與此資料相 中。上述之資料匯流排162 iir —有效信號166 鲈lfifi比4人 標鐵信號164 ’以及有效信 ;二 連接至每個執行單元112之匯流排。於-實 之/!料匯流排162係包含-個六十四位元之匯 Γ…田入I正卡在上述之適當執行單元112時,此執 物獲得上述資料快= : = ;接…排,以便 將於精後加以詳述。16所w之载人資料’此-過輕 ,上1之多媒體延伸集執行單元u2c與上述 = 八共用同一個暫存器槽案外,每-個執行單元 Γ: "32x、一功能單元i34x、-分配邏輯 =x「,x :存器檔案136x。如第-圖所示,上述標號之 一於上〜:f χϋ生¥然執行單元ιΐ2Α之.各元件中係為「a」、 γβ .」、於上述 伸集執行單元112C之各元件中係為「c」,以及於 串:延伸集執行單元咖之各元件中係為「D」。 巧义:母扣個執仃早凡112而言,上述之指令佇列132係透 匯流排182自上述之指令分配…接 162曰:ΓΓ弄疋。此指令佇列132亦透過上述之資料匯流排 之社爐二貧料快取116接收資料。以下關於此指令符列132 Γ::::Γ考第二圖與第三圖所示。上述之功能單元 列132=上述Ϊ指令仔列132,並且接收來自此指令仔 曰7與運算元以及接受上述分配邏輯138之控制。 19 1292557 ^日修(楚在替換頁 1 —— ..........mu 丨 _ - _ Iuwi_^二.t —μ——nr·----r-r-t^T'v-mnmmw 此功能單元134將針對運算元進行所接收指令指定之一功能 動作,諸如位移(shift)、旋轉(rotate)、數學運算、布林運 算、載入、儲存、控制、測試、比較,或其他動作。連接至 此功能單兀134之上述暫存器檔案136,係接收並儲存此功 月b單元134之運算結果。上述之分配邏輯電路138係連接至 •上述之指令佇列132與功能單元134。此分配邏輯電路138 負責管理上述之指令佇列132,並且控制此指令佇列132, 將私令分配至上述之功能單元134執行。此分配邏輯電路 # 138亦接收來自上述資料快取116之標籤信號164與有效信 號166,以便監控偵測來自此資料快取116之分離載入資 料,其細節將於稍後詳述。 於本說明說所指稱之分配或稱發送指令,意指提供一個 指令與其相關之運算元以便執行。於第—圖示出之微處理器 中’此指令分配器114將绝大多數之指令分配發送至盆 :一個執行單元112,意即此指令分配器114提供绝大多數 指令與表相…ίϋ算元…至上.屋,之§行單元112。然而,如先 則已述,於記憶體運算元尚無法取得之情況下,此指令分配 器擇性地將缺乏記憶體運算元之載人指令提供至上述 之執行單it 112。^上述之情況下,此執行單元ιΐ2中之分 配邏輯電路138將於稍後自上述之資料快取ιΐ6獲得上述之 圮憶體運算元’接著將此載入指令與此記憶體運算元分配至 :述:功能單元134。於此,上述之過程特此稱為一分離式 載入作業’或一分散式載入分配作業。 …請參考第二圖,λ係為根據本發明第一圖所示之一指令 4 丁列132的一方塊示意圖。第一圖; 主七 刀兀丁。口弟一圖不出之指令佇列132係代 表母-個於第一圖示出之執行單元112内的指令仵歹"⑽。 20 1292557 第二圖示出夕社人 ' 錄的個數將上侍列132具有八筆記錄(吻),然而,記 嬖如妒姑又據各個執行單元112之不同需求而有所增減, 侗社二此—執行單元112所執行之指令形態以及執行每— 個指^所需之平均時間而定。 母 攔位222包含一資料搁位2〇2、資料有效性 ‘戴欄位2〇6、一指令欄位208,以及一指令 一效[生攔位212。上述之指令攔位2G8儲存將由上述執行單 :二執行之指令,可能包含原有巨指令之指令位元組或 抑 此之外,此指令攔位208可能包含於此微處理
:广先前管線階段對指令解碼所產生之其他資訊。上述之 =11效性攔位212係用以指出儲存於此指令欄位2〇8内之 :1:否有效。每次當上述之指令分配器114寫入資料至此 ^曰4列132時’此筆仵列記錄222之指令有效性攔位212 係被更新為一真值。當上述之分配邏輯電路138自此筆佇列· -己錄222移除指令時,此指令有效性攔位212則被更新為一 f f r、述之資料攔色- W 之心令的運算元,諸如一載入指令之一記憶體運算元:上述 之貧料有效性攔位204係用以指出儲存於此資料攔位咖内 之貧料是否有效。於-實施例中,上述之資料欄位2〇2包含 複數個攔位以儲存複數個運算元,以及—相對應之複數個資 料有效性攔位2G4。上述之標籤攔位細制以儲存相對應 於-分離式載入作業之一唯一獨特標籤;當上述之指令分: 器114分配一載入指令以供執行此分離式載入作業時,此指 令^配器114係將由上述資料快取116所提供之一唯—獨^ 標籤寫入上述之標籤欄位206。於此指令佇列132内之每一 筆佇列記錄222皆經過由上述分配邏輯電路138所控制之一 21 1292557 e!齊(声換賓j . ‘....... -----------------------,‘............: 未示於第二途中)’以便擇-分配至上述之功能單元 接收扑I之於/實施例中’上述分配邏輯電路咖係依據所 ”之㈣順序,將此指切列132中 單元134執行。然而,於其他實施例中,二= 列132中13=t依據所接收指令之時間順序,將此指令侍 指^ 1令分配至上述之功能單元134執行。例如,於 ::广有,後順序關聯之情況下,此分配邏輯電路138可 匕:運异70齊備之指令移動至一 載入指令之前執行。 之連“之刀離式 …“考第二圖’其係為根據本發明第—圖所示之一執行 早疋112的—局部方塊示意圖。此執行單it 112包含第一圖 2:出::,輯 '路138。第三圖示出之單-筆仵列記錄 '、又第一圖不出之指令佇列的複數個佇列記錄222。 ^之執行單元112自上述指令分配器ιΐ4連接上述之指令 八貝料匯流排182 ’其中,此指令/資料匯流者"Μ包含一部 I f £'入上邊一苎色生222色豈里免效性攔位204、標籤欄 位2〇6 ’以及指令攔位綱。位於上述仔列記錄一222〜之資料 有放(·生搁位204、標籤攔位206、指令攔位2〇8以及指令有 效性欄位212内之資料係為上述分配邏輯138之輸人。此分 L輯138亦接收來自上述之資料快取ιΐ6的標籤信號Η* 與有效性信號166。 上逑之執仃單兀112亦包含一具有兩個輸入端之多工器 312 ’其中上述多工器312之輸出端係連接至上述符列記錄 222之資料攔位2〇2。於此執行單元ιΐ2中之每一筆佇列記 、彔 白/、有個多工器312。此多工器312之一輸入端係 接收來自上述資料快取116之資料匯流排M2之輸入,另一 22 1292557 年月日修替換頁j 輪入端係接收來自上述指令分 W2的資7刀配b 114之指令/資料匯流排 〜貝枓匯流排部分。上沭 擇信?卢、 刀配璲輯138產生一資料選 〜 以控制上述兩輸入端之何者A Jt > i 55 ^ 1 9 ^ 出。當卜、+、社入\ 有马此多工态312之輪 上返拍令分配器114寫入卜黎於^ 诚夕八 呙入此筆仔列記錄222時,則上 迷之分配邏輯138選擇來自 才只〗上 若分籬料匯流排182之資料; 八肅、w处 义貝什嵌取U6獲得時,則上述之 :轸=138選擇來自上述資料快取116之資料匯流排162 外,t上述之指令分配器ιΐ4寫人此筆仵列 邏輯138自上述資料快取116獲得分離式 載入負料日守,上述分配玀經1 -輯138亦於一資料寫入信號306中 生〃值提供至上述件列記錄222之資料搁位綱,此真 值可令此多工器312之輸出值輸出至上述之資料攔位2〇2。 自上述資料快取116獲得資料後,此分配邏輯電路138亦產 生-更新資料有效性錢3G4將上述之:#料有效性欄位值更 新為一真值。 L· ; ^楚據本發明第一圖所示之微處理 1100 ^ t ^ - ^ a ^ t B 〇 ,b # ,' 於步驟402中,上述之指令分配器114接收一指令。此 -指令可能為-載入指令或其他非載入之指令。於一實施例 中,上述之指令分配器114 一次接到一個指令、然而,可能 有其他實施例之微處理器100係屬超純量(superscalar)處 理器,此超純量處理器之指令分配器114於每一時脈中接收 多個指令,亚且於每一時脈中將多個指令分配至各執行單元 112。接著,此流程進行至決策步驟4〇4。 於決策步驟404中,上述之指令分配器114判斷所接收 指令是否為一載入指令。若此指令屬載入指令,則進行步驟 23 1292557 w --一嫌 / 年月曰修(tf正替換頁 4〇6 ;否則進行步驟416。 進仃步驟406,上述之指令分配器ι14產生一要求142 至上述之資料快取116,要求取得位於此載入指令中記憶體 位址内的資料。接著,進行決策流程408。 、,於決策步驟408中,上述之指令分配器114檢查上述資 料快取116是否產生例外訊號144,進而判斷此載入指令是 否為不造成例外之指令。若此指令不會造成例外狀況,則 進行步驟414 ;否則進行步驟412。 、於v驟412巾’此載人指令所造成之例外狀況,通常需 要導致例外之指令消去。整個流程將於步驟4 12結束。 於決策步驟414中,上述之指令分配器114檢查上述資 料取得性信號146以判斷是否能取得先前所要求之資料。若 因資料不在此資料快取116中,則上述之指令分配器ιΐ4將 無法取得資料。亦即,由此指令分配器114提供至此資料快 取/16之載入記憶體位址並不在此資料快取中。但若於 中 t ^ JaL # ^ ^ ^ ^ 位址相同,並且擁有f靳 杳 w 心 有更新之貝枓4,即便此載入記憶體位址 ^於此貧料快取116中,此資料快取ιΐ6亦不能將 =述之指令分配器114,且必須產生一偽值至上述資料 取侍性^號146。若可取得此資料 否則進行步驟424。 ㈣者進仃步驟416; :行步驟416,獲得此指令所需之所有運算元後,上述 器114將此指令及其運算元寫入適當執行單元 二:“宁列132。此指令分配器114亦於被寫入之仔列 :22的資料有效性攔位鳩U值以表示於此❹ 之資料係屬有效。於上逃指令分配器m寫入後, 24 1292557 此佇列記錄222之指令有效柯〇1〇 +人 伯7 ,欢1±攔位212亦自動更新為一直 值。接著進行步驟418。 八 於步驟418中,一旦草指人^士 一”柏τ待为配後,於此執行單元u 之分配邏輯電路138將此指八白μ、七々4匕八 、, ?日7自上述之指令佇列132中轉 除,亚且將此指令分配至上述 分配邏輯電路138自此指令早=134執行。於上述 7 丁列132之符列記錄222移除上 述私々後,此佇列記錄222之彳t人& ” ^丄 < 才日令有效性欄位212即自動争 新為-偽值。接著進行步驟422。 卩自動更 於步驟422中,上述之功 執行此指令之功能單元134 ^人 執仃此指令。上述 動你… 包含足以產生此指令結果之功能 =位移、旋轉、數學運算、布林運算、载入、儲存 控制、測試、比較,或A他動你 不“載入、儲存、 -1Q4 及八他動作。上述執行此指令之功能單 亦可能根據執行此指令士 100牟槿貼能η < π果進而更新此微處理器 丄训架構狀悲、,例如更新諸 内容。以-載入护胃存為檔案136其一之暫存器 被判定為一==,因,指令於上述決策步驟侧中 ^ t T 3 fi〜一〜。卜m、’_即可能更新上述之暫存哭 才田案136。以一搬移 :, '一心曰農二 ^ 中。對某些搬移指令而二子盗檍,136之目標暫存器 增所傳遞之載入資f+ ;,上述之功能單元134會修改或擴 之功能單丄::二r號延伸之載入指令, 結束。表不原始資料之正負符號。整個流程於步驟422 於步驟424中、蕃、 , 將前述標籤管理器122:::標籤信號148,此資料快取116 唯一獨特標籤提供至上=關於此分離式m料的一 述之扣々分配器114。於另一實施例 25 7. 1292557 中負貝官理唯一獨特標籤之標籤管理器122係—包含於上述 之指令分配器114而非資料快取116中。於此實施例中,上L =令分配器U4預訂一唯一獨特標藏,並將此唯一獨特 二於上述發送至此資料快取116之要求142中 貝枓快取116指出所要灰之眘袓τ > 脾卜蒼 厅要求之貝枓不存在’則此資料快取116 此載人要求連結至此唯一獨特標鐵。接著進行步驟426。 於步驟426中,甚m哉A次^丨 τ右因載入資料不存在於此資料快取 ’則此資料快取116將要卡1 .„ ^ 將要求則述匯流排介面單元118對 糸、、先^憶體發出一匯流排要喪 料之々… ❿排要求上述之載入資料。若因載入資 你士憶體位址與位於此微處理器100管線内之-储存作業 位址相同,並且其資料次 八 、 新於此負料快取116之資料,故盔 法將此資料快取116之資料值、矣“ + 貝针故無 目丨丨次w & 、枓傳运至上述之指令分配器114, 貝J此’料快取116將持續聱佐#纪— 之內* Μ β f ,寺待較新資料更新此資料快取lie 之内谷。接著進行步驟428。 於步驟428中,此;^入八 經庐得之、軍瞀— 、曰/刀配器114將上述指令與其他已 此才曰々为配器114亦對姑舍 一一— 效性搁位綱以為^值人到Γ筆仔列記錄222的資料有 塢值,以指明於此筆佇列記錄222内 之刀離式載入貧料攔位2〇9总卜 將由步驟424中自上述之—糸屬無效。此指令分配器114亦 筆仔列記㈣2内之快取116獲得之標鐵值寫入此 更新為-真值。接著進行牛指令有效性欄位212將自動 香進仃步驟432。 於步驟432中,上诚+ \ ,L ,,, 之义配邏輯電路138監控戋偵杳來 自此娜取116之標鐵㈣ 次= 效信號166為真時,接签”兩政乜唬166,當此有 查詢上述指令佇列132中是否有任 26 1292557 =::T 222之資料有效性搁位⑽^ :=:12之值為真,同時其標藏攔位2〇6係與上述之 &織Μ 164相同者。接著進行步驟434。 於步驟434中,^ ^ 4.2 , 述之勿配邏輯電路138係根據於步 驟432中對上述來自資料 ^ ^ 寸厌取116匯流排之監控,以判定是 否存有一標籤相同之佇列古 „从〇00 J〇己錄222。若確有標籤相同之佇列 泛己錄2 2 2 ’則進行步驟4 3 β · X日丨紗 6,否則整個流程將回到步驟432。 於步驟436中,藉由斟—、+、> *, 古由對别述之資料選擇信號308產生一 真值以令前述多工器312以上 1 «〇 /从达认 义貝τ叶於取1]·6之貧料匯流排 162做為輸人端,以及對前述之資料寫人信號寫產生一直 :以令此分離式載入資料被寫入,上述之分配邏輯138即; 自上述資料快取116之資料 —, 貝卞十匯/爪排162中載入資料至上述標 戴相同之佇列記錄222的資斜攔办ΟΛΟ丄 ,1C 扪貝科攔位202中。接著進行步驟 418。 本發明所具有之一優點在於各 ^ ^ . λ ^ n± 田尚在等待一所需資料未 70備之載入扣令日守,只須與上诚去空m ^ _ —,- — — 一1〜^ ^ ^ ^ ^ ^ ^ 明允許一基本上無限數量之後續指鋒、^ ^ 只?日7 lk績被分配執行。係因 根據本發明之指令分配器114於分邴蕾λ此人 %刀配載入指令至執行單元 112前,已先確認此指令將不會生 ▽灯个㈢k成例外狀況,故後續不相 關之指令將不會再與上述分散式葡 ^ 、 狀八戰入指令有何關聯。據此, 上述後續不相關之指令可自其所勃各 所執仃之執行單元112離退, 並且將位於此執行單元112内指今广别, ^曰7彳丁列132之佇列記錄222 空出給新的後續不相關指令。上述優點係超越傳統微處理 器。例如於-具有傳統重新排序(reorder)緩衝區之微處理器 中’當有一載入指令正等待中時,能奶 / 肖b夠進行分配之後續指令 的數目將被限制於上述重新排序输π > 衝區之深度,因為此微處 27 1292557 理器須μ γ 述重新= 完此載人指令後,才得以通知上 S新排序緩衝區此載 上 雖缺士 Λ bm入才曰令疋否會產生一例外情況。 W本發明及其目的、, 發明亦適用於1他實A …點已於上詳述,但本 之-微例如’雖然:於本說明書中所提到 置與方味比 ☆ 木構,然而於此所提到之裝 去白不受限於x86牟禮,计曰了、A 微處理”槿…… 可以適用於其他不同之 人,/ ^。除此之外,雖然本發明所提之例子為載入指 人。1、:延伸運用至需要長延遲時間以獲得運算元之任何指 “:二雖然先前所述之實施例係具有特定數目之特定形 甘仃單凡,然則熟悉此項技藝者將可明白本發明可適用 於/、他種類與數量之執行單元組合。 再者,雖然本發明及其目#、特徵,與優點已於上詳述, 本發明亦適用於其他實施例。本發明之實作除可使用硬體 ,本發月亦可以實作於一電腦可使用(譬如以電腦可閱讀 ί Ϊ、式L之媒體上之電腦可閱讀碼(亦即電腦可閱讀之程式碼
二、見I 月b 、’且件,或者上述兩者得以運行。例如,本發明可透過 吏用此τ員域内之通用程式語言(例如C、c + +、j a v a以及其 他類似程式語言);GDSII資料庫;包括Veril〇g HDl、 VHDL、Altera HDL(AHDL)或其他之硬體描述語言(HDL, hardware description language);或其他程式性與/或電路 (亦即線路)捕捉工具等加以實作。上述之電腦碼可置放於任 何電腦可使用(譬如以電腦可閱讀之形式)之媒體,包括半導 體記憶體、磁碟、光碟(如CD-ROM、DVD-ROM,及其他>, 以及於一電腦可使用(譬如以電腦可閱讀之形式)之傳輸媒介 (例如載波或任何其他包括數位、光學,或類比基礎之媒介) 28 IΪ292557 %k 7. If; s鋒硬5i替換頁1 網L ::資料信號。其中’上述之電腦碼可透過包含網際 /、内部網路之類的通訊網路進行傳輪。本發明可實 心城碼(例如以智慧、財產權核心、之部分存在、如一微處理器核 或系統層次之設計,或系統晶片等方式〉並且可以部八 轉換成以積體電路形式存在之硬體。再者,本發明可能實2 之方式係為硬體與上述電腦碼的組合。 、& 顯然地,依照上面實施例中的描述,本發明可能有許多 I的修正與差異。因此需要在其附加的權利要求項之範圍 以理解,除了上述詳細的描述外,本發明還可以廣泛地在其 他的實施例中施行。上述僅為本發明之較佳實施例而已,並 非用以限定本發明之申請專利範圍;凡其它未脫離本發明所 揭示之精神下所元成的等效改變或修飾,均應包含在下述申 請專利範圍内。 29 1292557 年月曰修正替換頁! 【圖式簡單說明】 第一圖係為根據本發明t 一具有管線架構之微處理器 的,一方塊不意圖; 第二圖係為根據本發明第一圖所示之一指令佇列的一 方塊示意圖; 第三圖係為根據本發明第一圖所示之一執行單元的一 局部方塊示意圖;以及 第四圖係為根據本發明第一圖所示之微處理器作業之 一流程示意圖。 主要元件符號說明
100微處理器 104指令格式器 10 8位址產生器 112A整數執行單元 112 e多媒體延伸集執‘行單 116資料快取 122標籤管理器 134功能單元 136B浮點數暫存器檔案 138分配邏輯電路 144例外信號 148標籤 16 2貢料匯流排 16 6有效信號 102指令提取器 106指令轉譯器 112執行單元 112B浮點數執行單元 112!> $〜流延伸集:執行‘章元, 118匯流排介面單元 13 2指令彳宁列 W6暫存器檔案 136C串流延伸集暫存器檔案 142要求 146資料取得性信號 152資料匯流排 164標籤信號 172運算元匯流排 30 1292557 182指令/資料匯流排 204資料有效性攔位 2 0 8指令搁位 222仔列記錄 • 306資料寫入信號 、312多工器 404是否為載入指令 4 0 8是否不造成例外 414是否可取得資料 416指令分配器將指令及 令佇列 年洲·月7·1!修替換頁 202 資料欄位 206標籤欄位 212指令有效性攔位 304更新資料有效性信號 308資料選擇信號 402指令分配器接收指令 406指令分配器向快取要求 載入資料 412處理例外 運算元寫入適當執行單元之指 418執行單元之分酉?碟 -避輯將彳曰令自指令仔列中移除並將指 令分配至功能單元執行 422功能單元執行指令 424資料快取將唯一猶々 ..特標鐵提供至指令分配器 426資料快取要求 排人品 μ排介面早兀發出匯流排要求 428指令分配器將指令 指令仔列中 ‘戴與運异π寫人適當執行單元之 4 3 2 分配邏輯電路政 > :欠 皿卫為料快取匯流排之有效作梦 指令佇歹,j 132中是否右p⑺ ^ ^ ^ M ^ 有仔列記錄之資料有效性攔位值 434標籤是否相同 436執行單元之分配 入資料至上述標籤相 為真 邏輯電路自資料快取資料匯流排中载 同之仔列記錄並設定f料有效性搁位 31
Claims (1)
1292557 煩請委S明杀迅’年艮?^ 日 所授之修正本有無超出原說明書 或圖所揭露·^園 十、申請專利範圍:
1· 一種於具有管線架構之一微處理器中可以執行分散式載入 士曰令分配之裝置’以避免一載入指令而造成管線遲滞之事 置,該處理器包含複數個執行單元,該裝置包含: 又 一第一分配邏輯電路,可以自一快取要求該載入沪人 所指定之一資料,可以自該快取接收一代表該資料於4日1 不存在於該快取之指示,以及可以提供該載入指令與一用 以識別無法獲得之該資料的標籤至該些執行單元之一 ·以 及 , 一第二分配邏輯電路,位於每一個該些執行單元内並 與該快取連接’其可以監控一連接該快取與該些執行單元 之匯流排,藉以偵測有效吻合該標籤之一代表現在可自誃 快取獲得該資料,其也可以於偵測該有效吻合該標鐵之 後’自該快取獲得該資料,其還可以於該快取獲得該資料 後’分配該載入指令與該資料以供執行。
如申請專利範圍第1項所述之裝置,其中該第一分配邏 輯電路於接收代表該資料於當時不存在於該快取之該指 不後,提供該載入指令與該標籤至該些執行單元之一, 而不會造成該微處理器之管線架構因等待自該快取獲得 該資料所導致之遲滯。 3.如申請專利範圍第i項所述之裝置,其中該第二分配邏 輯電路分配該載入指令與該資料以供該些執行單元之一 的一功能單元執行。 32 1292557 Ί 年月曰條(fii替換頁 4.如申請專利範圍第3項所述之裝置,其中該功能單元係 設定用以搬移該資料至由該功能單元所在之一該執行單 元所維護之一暫存器。 5.如申請專利範圍第3項所述之裝置,其中該功能單元被 設定用以供執行由該載入指令所指定之一動作以產生一 執行結果。
6.如申請專利範圍第5項所述之裝置,其中該動作包含一 整數運算。 7. 如申請專利範圍第5項所述之裝置,其中該動作包含一 浮點數運算。 8. 如申請專利範圍第5項所述之之裝置,其中該動作包含 一包裹數學運算。 M;,'· -fvr; Λ.· . .r · . V·.;.'··:;:;·.- - r··.:! I:·.··.·.·, -v-r.ί::'·.·· ; ·· .·:;/·. t;:; -V ·ν:·; .·· t·. . ·. ' ^.·.· :·.·.. ·' : — ·. Λ.·; ·.·- ;'···:.;· .r.i.ivrt;,;· ·?♦·:« .·- V -τ·:/.·:.Λ·'·.· - V- ' .';·· .VJ· -.rr.i rV:;;:- ® 9.如申請專利範圍第8項所述之裝置,其中該動作包含一 多媒體延伸集包裹數學運算。 10. 如申請專利範圍第8項所述之裝置,其中該動作包含一 串流延伸集包裹數學運算。 11. 如申請專利範圍第1項所述之裝置,其中該第一分配邏 輯電路尚可以決定提供該載入指令至該些執行單元之 何者以供執行。 33 1292557
12.如申請專利範圍第n項所述 邏輯電路更可以根據該載入指 」其中該第一分配 該載入指令至該些執行單元7 —形式以決定提供 考从供執行。 13·如申請專利範圍第11項所述之裝 邏輯電路更可以根據該些執行\ ’其中該第一分配 決定提供該載入指令至該些執行二之—現行負荷量以 干7^之何者以供執行。 14·如申請專利範圍第1項所述之穿 ^ 於每-個該些執行單元内:二裝置更包含· 列設定用以儲存自該第一分配曰j佇列’該指令佇 個載入指令與該標籤。 電路所接收之複數 1δ.如申:專利範圍第14項所述之裝置,其中該指令作列 亦設疋用以儲存自該快取所獲得之複數個該資料。 16.如申請專利範圍第Μ項所述之裳置,其中該指令仵列 亦設定用以儲存與該該些資料相關之複數個有效性指 標,該複數個有效性指標之每—個係標示該資料是否有 效0 如申請專利範圍第16項所述之裝置,#該第―分 輯電路接收自該快取之該指示標示該資料並不存 該陕取% β第-分配邏輯將於該有效性指標中儲 值’以標示提供至該些執行單元之一的該載入指令 標籤之相關該資料係屬無效。 7 34 17. !292557 96r7.1 备
&*·*.-·· --........rr·^. Υ -·- -ν. — . 1叫”f、 ,其中該第二分配 便更新該有效性指 18. =中請專利範圍第17項所▲之ϋ G輯電路在自該快取獲得該資料後, 標之該值以標示該資料係屬有效。 、 =申哨專利範圍第Μ項所述之裝置,當該第一分配邏 ^電路接收自該快取之該指示標示該f料係存在於該 _、取時,該第一分配邏輯電路將於該有效性指標中儲存 一值,以標示提供至該些執行單元之一的該載入指令與 鲁該才示籤之相關該資料係屬有效。 •如申請專利範圍帛19項所述之裝置,於該第一分配邏 輯電路提供該載入指令與該資料至該些執行單元之一 並且於該有效性指標内儲存該值以標示該資料係屬有 效後,其中該第二分配邏輯電路亦分配該載入 資料。 7 一邊 # 21.如申請專利範圍第i項所述之裝置';僅有當該載ϋ入 ”判斷出將不會產生一例外時,其中該第一分配邏二 提供該載入指令至該些執行單元之一。 D 22·如申請專利範圍第i項所述之裝置,其中該第— 輯電路更被設定用以提供非載入指令與所有有致琿T 元至該些執行單元之一。 t 如申明專利範圍第1項所述之裝置,其中該標 獨特識別出該無法獲得之資料。 35 1292557 ^請專利範圍第Μ項所述之裝置,其中該^^ =予該第一分配邏輯電路之可唯—獨特 料之該標瓤。 3 Μ.如申請專利範圍第23項所述之裝置,其中該第一分配 邏輯電路管理給予該快取之可唯-獨特識別該資料之 該標籤的產生。 、tt St ^申^專利範圍第1項所述之裝置,其中該載入指令包 含-微指令以自一記憶體位址載入資料並且對資料 行一數學運算。 7·如申凊專利範圍第丄項所述之裝置,若該資料之一位址 不存在於該快取中,則該快取提供至該第一分配邏輯電 路之ϋ疋ϋ.示該ΐϋ現在無法提供該資料。 28·如巾請專利範圍第;L項所述之裝置,若該資料之一位址 存在於該快取中,但因該位址與位於該微處理器管線中 之一儲存作業位址相同而導致於該快取内之該位益 AV\ 二,則該快取提供至該第一分配邏輯電路之該指示係標 不該快取於現在無法提供該資料。 29 如由上太 • ^甲清專利範圍第28項所述之裝置,其中該微處理器 吕線係於現在無法將該儲存作業位址之資料傳送至 快取。 W 36 !292557 •如申請專利範圍第1項所述之裝置,其中該第一分配邏 輯電路與該些執行單元相較,係位於該微處理器管線之 車交早階段便被執行。 31·如申請專利範圍第W所述之震置,其中該第二分配邏 輯電路係透過該匯流排自該快取獲得該資料。 32. =申請專利範圍第:L項所述之裝置,其中該載入指令自 :—指令以令該微處理器自一記憶體位址所指定之一 圮憶體位置中將該資料讀入該微處理器。 33· 如申請專利範圍第1項所述之裝置, 口七人 罝,其中一電腦程式蓋 口口包έ 一電腦可使用媒體包封電 味Φ好壯取 阅項程式碼以街 置。 固々叭座口口係應用於一計算裝 34. 35· ^ ® ^ 3 3‘項所述之裝置,复中々派说 以雷聦次刺ii ,:,.具中該程式碼係 電細貝枓汛唬之形式置放於一傳輸媒介 一種於可以執行分散式載入八t、Μ 之料卢搜w 7刀配之具有管線架構 之微處理斋,該微處理器包含: 一資料快取以連接至一匯流排; 複數個執行單元,其 匯流排it # $ j t b二執行單元皆透過該 匕机徘連接至該貧料快取, 符列與-分配邏輯電路,;::早元具有-指令 所有運算元皆有效之情,、:…丁列指出該指令之 令至該執行單元内 刀兄該指令佇列内之該指 丁早兀内之一功能單元;以及 才曰7分配器以連接至該些 一巩仃早7L,該指令分配 37 1292557 Μ 7. 年月 器提供至少-指令與至少一運算元以及 元是否有效之指示至該些執行單元之該指令;::: 指示至該指令仔列,而不等待自該資料 行而避免了遲滞於管線中之後續指令的執 36 T申請專利範圍第35項所述之微處理器, 分配器更可以提供-可唯-獨特識別出 某指令運算元的標籤至該指令佇列。 “于之該 37· =請專利範㈣36項所述之㈣㈣ !輯電路於债測到先前由該指令分配器所提:::: 令運瞀-Γ 自該資料快取所傳送之該某指 ¢.權二土目題的裊§..§,羡著透過該匯流排自該資料$ 38. 申明專利乾圍第37項所述之微處理哭中 運L:接著過該匯流排自該資料快取獲得該某指令 單元丄:分配該指令與該某指令運算元至該功能 如申請專利範圚M 行單元包含至少V數:所述之微處理器,其中該些執 -多媒體延伸华:二仃單元、一浮點數執行單元、 執仃早几,以及一串流延伸集執行單 38 39 1292557 元0 Μ Ί. χ%
其中該指令 4〇·如申請專利範圍第35項所述之微處理器 包含一載入指令。 41. 一種於具有管線架構之一微處理器中可以執行分散^ 載入私令分配之方法,其中該微處理器具有一快取、一 :央指令分配器,與複數個執行單元,並且每一該執^ 單元皆有一附屬指令分配邏輯電路,該方法包含:‘ 一接收步驟,由該中央指令分配器自該快取接收一 以標示於一載入指令中所指定之運算元資料係燕 冼獲得; -提供步驟,由該中央指令分配器提供該載入指令 二標示出該運算元資料係無法獲得之指示至該些朝 行單元之一;以及 '--一獲...色:於該色 獲得該運算元資料之該指示後,由該此热:一::- / 二机仃早元中之一 某執行單元的該附屬指令分配邏輯電 該運算元資料。 路自該快取獲得 42·如申請專利範圍第41項所述之方法 更包含: 於該獲得步驟後,由該些執行嚴士 — 八 . 兀之一的該附屬扣 令分配邏輯電路分配扣令與已獲得之 萄才曰 〜必運算元資粗 該些執行單元中之該某執行單元的一说^至 行。 力此單元以供勃 39 1292557 ..........— — ·.、’·' ,. 43·如申請專利範圍第41項所述之方法,更包含: 判斷該載入指令是否為一會產生例外之指令 將該 僅於該載人}日令非_會產生例外之指令之情況下, 載入扣π提供至該些執行單元中之該某執行單元。 44.如申請專利範圍第41項所述之方法,更包含: -標籤提供步驟’係在該獲得步驟之前 指令分配哭描也。亥中j -欠°°獒供可唯一獨特識別該無法獲得之運首. 貝料之一標籤至該 ^ 71 該獲得步驟传^ 該某執行單元’在出 邏輯電敗6 % 扪泛附屬指令分画 電路自該快取獲得該運算元資料。 45 46 如申料利範圍第44項所述之方法,更包含: =送步驟,該傳送步驟係於進行該標籤提供步間 法声二p於該Λ央指令分配器提供可唯-獨特識別該矣 g.,. OD———70 ^ ......S.§.至該些執行單元之該I 執仃早元後’由該快取於一匯流排上傳^.....^#^ 〇… 如申:專利範圍第45項所述之方法,更包含: 單元驟’係於進行該傳送步驟後,由該些執七 於兮^執仃早70的錢屬指令分配邏輯電路比紫 料:二排上可唯一獨特識別該無法獲得之運算元, 7十之该標籤;以及 執行^行該獲步驟,㈣行該_步驟後,接著由該邊 自:之该某執行早兀的該附屬指令分配邏輯電辟 « ^快取獲得該運算元資料。 40 J29255747·如申 ου· « iE- /1 α
請專利範圍第4 1項所述之方法,更包含: 一運算元獲得步驟,係於該中央指令分配器提供標 示出該運异元資料係無法獲得之該指示至該些執行單 凡之該某執行單元後,由資料快取獲得該運算元資料。
48 »
•申請專利範圍第41項所述之方法,其中由該中央指 令分配器提供該载入指令至該些執行單元之一該某執 =單元的該提供步驟包含寫入該載入指令至該些執行 單凡之一該某執行單元的一指令佇列。 49· ~種於具有營蠄 、另&綠^構之一微處理器中可以執行分散式 載入指令分配之方、、土 刀。心万去,該方法包含: 對一第一指令推> ^ ^ 曰7進仃解碼,其中該第一指令係透過指 又一記憶體位址之方彳 - 〜乃式指定一運算元; 於快取記憶體I i ^ 一私/ σ “、、去楗供該記憶體位址並且甸一第 執仃早元指示該逯曾一 至無運算元之兮楚 …:一.....‘"...一一…一,...,.....,2,:....二 以乐—執行單元; 於提供該第一指八& 情齅從〜7後’讓該第一執行單元自快取記 丨心、體獲得該運算元; >)干儿》 於獲得該第一指人 令; 7後,讓該第一執行單元執行該指 於該第一指令進^ 石馬;和 丁解碼後’對一第二指令進行解 自快取獲得該運曾 執行單元。 斤則,提供該第二指令至〆第二 41 1292557 _日卿正替換, 5〇·如申請專利範圍第49項所述之方法,更包含: 若該記憶體位址存在於快取記憶體,並且指示到執 /一單元之該運异元係屬有效後,即提供該第一指令至該 第一執行單元。 51 如申請專利範圍第49項所述之方法,更包含: 於提供^ -指令但不包含該運算元至該第—執行單 元之同,提供可唯一獨特識別出該運算元之一標籤; 以及 由該第一執行單元谓測該標籤與來自,决取記憶體之一 1目Γ於該運算元的標籤是㈣同,接著該第—執行單元 自快取記憶體獲得該運算元。 52· 一種記錄於具有管線架構之一 邱彳# 1 微處理态中可以執行分 放式载入指令分配之程式指令 含: 7们冤驷可讀取媒體,包 —一1:―—……............... 提供給具有管線架構之一料卢柿:— ^ ^ 倣處理器内之一裝詈的雷腦 可閱讀程式碼,以避免因一载 ^^ . 載入才日令造成之管線遲滞, ,、中該微處理器係具有複數個執 閱讀程式碼包含: 卫且a電細可 提供一第一分配邏輯電路之—— 碥#抓〜田 人 弟一程式碼,該第一程式 粗,6分α μ載入扣令所指定之一資 ^自該快取接收一標示該快取 、 之‘私,亚且向該些執行單元 十 唯—猶Μ # - #次l 扣供该載入指令與可 ’獨知軚不该貧料之一標籤;以及 提供位於每一該些執行單元之一 弟一分配邏輯之一第 42 1292557 WTTM :年月日修替換頁 二程式碼,該第二分配邏輯電路係連接至該快取,該第 二程式碼係設定用以監控連接至該快取與該些執行單 元之一匯流排,以偵測與該標籤相同之一標示該快取可 於現在提供該資料之標籤,於偵測該相同之標籤後自該 快取獲得該資料,接著於自該快取獲得該資料後分配該 載入指令與該資料。
43 ·.-·‘,!^一内 ----------------------------tw JM _丨_ ) I年片」κ綠-替換· 第(一)圖。 1292557 七、指定代表圖: (一)本案指定代表圖為 (二)本代表圖之元件符號簡單說明:
100 微處理器 104 指令格式器 108 位址產生器 112Α整數執行單元 112C多媒體延伸集執行 XXU 一 早兀 114 指令分配器 118 匯流排介面單元 132 指令佇列 136 暫存器檔案 136B浮點數暫存器檔案 13 8 分酉己邏輯電路 144 例外信號 148 標籤 162 資料匯流排 166 有效信號 182 指令/資料匯流排 102 指令提取器 106 指令轉譯器 112 執行單元 112B浮點數執行單元 112D 串流延伸集執行單 元 116 資料快取 122 標籤管理器 134 功能單元 136A通用暫存器檔案 136C 串流延伸集暫存器 檔案 142 ^要求 146 資料取得性信號 152 資料匯流排 164 標籤信號 172 運算元匯流排 八、本案若有化學式時,請揭示最能顯示發明特徵 的化學式:
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/776,751 US7191320B2 (en) | 2003-02-11 | 2004-02-11 | Apparatus and method for performing a detached load operation in a pipeline microprocessor |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200527297A TW200527297A (en) | 2005-08-16 |
TWI292557B true TWI292557B (zh) | 2008-01-11 |
Family
ID=34750447
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW094102818A TW200527297A (en) | 2004-02-11 | 2005-01-28 | Apparatus and method for performing a detached load operation in a pipeline microprocessor |
Country Status (5)
Country | Link |
---|---|
US (1) | US7191320B2 (zh) |
EP (1) | EP1569090B1 (zh) |
CN (1) | CN1331044C (zh) |
DE (1) | DE602004021167D1 (zh) |
TW (1) | TW200527297A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI418982B (zh) * | 2009-03-03 | 2013-12-11 | Qualcomm Inc | 可組態快取記憶體及組態其之方法 |
TWI482085B (zh) * | 2011-02-03 | 2015-04-21 | Intel Corp | 用於柵格化之串流壓縮的方法及設備、和非暫態性電腦可讀取媒體 |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070266160A1 (en) * | 2006-05-09 | 2007-11-15 | Johnson Chris D | Automatic Application Server Fail Fast and Recover on Resource Error |
US8578387B1 (en) * | 2007-07-31 | 2013-11-05 | Nvidia Corporation | Dynamic load balancing of instructions for execution by heterogeneous processing engines |
US9304775B1 (en) | 2007-11-05 | 2016-04-05 | Nvidia Corporation | Dispatching of instructions for execution by heterogeneous processing engines |
US8074060B2 (en) * | 2008-11-25 | 2011-12-06 | Via Technologies, Inc. | Out-of-order execution microprocessor that selectively initiates instruction retirement early |
US9513918B2 (en) * | 2011-12-22 | 2016-12-06 | Intel Corporation | Apparatus and method for performing permute operations |
US9384002B2 (en) * | 2012-11-16 | 2016-07-05 | International Business Machines Corporation | Speculative finish of instruction execution in a processor core |
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 |
US9665372B2 (en) | 2014-05-12 | 2017-05-30 | International Business Machines Corporation | Parallel slice processor with dynamic instruction stream mapping |
US9672043B2 (en) * | 2014-05-12 | 2017-06-06 | International Business Machines Corporation | Processing of multiple instruction streams in a parallel slice processor |
US9760375B2 (en) | 2014-09-09 | 2017-09-12 | International Business Machines Corporation | Register files for storing data operated on by instructions of multiple widths |
US9720696B2 (en) | 2014-09-30 | 2017-08-01 | International Business Machines Corporation | Independent mapping of threads |
US9977678B2 (en) | 2015-01-12 | 2018-05-22 | International Business Machines Corporation | Reconfigurable parallel execution and load-store slice processor |
US10133581B2 (en) | 2015-01-13 | 2018-11-20 | International Business Machines Corporation | Linkable issue queue parallel execution slice for a processor |
US10133576B2 (en) | 2015-01-13 | 2018-11-20 | International Business Machines Corporation | Parallel slice processor having a recirculating load-store queue for fast deallocation of issue queue entries |
US9983875B2 (en) | 2016-03-04 | 2018-05-29 | International Business Machines Corporation | Operation of a multi-slice processor preventing early dependent instruction wakeup |
US10037211B2 (en) | 2016-03-22 | 2018-07-31 | International Business Machines Corporation | Operation of a multi-slice processor with an expanded merge fetching queue |
US10346174B2 (en) | 2016-03-24 | 2019-07-09 | International Business Machines Corporation | Operation of a multi-slice processor with dynamic canceling of partial loads |
US10761854B2 (en) | 2016-04-19 | 2020-09-01 | International Business Machines Corporation | Preventing hazard flushes in an instruction sequencing unit of a multi-slice processor |
US10037229B2 (en) | 2016-05-11 | 2018-07-31 | International Business Machines Corporation | Operation of a multi-slice processor implementing a load/store unit maintaining rejected instructions |
US9934033B2 (en) | 2016-06-13 | 2018-04-03 | International Business Machines Corporation | Operation of a multi-slice processor implementing simultaneous two-target loads and stores |
US10042647B2 (en) | 2016-06-27 | 2018-08-07 | International Business Machines Corporation | Managing a divided load reorder queue |
US10318419B2 (en) | 2016-08-08 | 2019-06-11 | International Business Machines Corporation | Flush avoidance in a load store unit |
US10754759B1 (en) * | 2018-02-05 | 2020-08-25 | Xilinx, Inc. | Breakpointing circuitry that evaluates breakpoint conditions while running clock to target circuit |
US11093282B2 (en) * | 2019-04-15 | 2021-08-17 | International Business Machines Corporation | Register file write using pointers |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH06222990A (ja) * | 1992-10-16 | 1994-08-12 | Fujitsu Ltd | データ処理装置 |
US5588126A (en) * | 1993-12-30 | 1996-12-24 | Intel Corporation | Methods and apparatus for fordwarding buffered store data on an out-of-order execution computer system |
US5724536A (en) * | 1994-01-04 | 1998-03-03 | Intel Corporation | Method and apparatus for blocking execution of and storing load operations during their execution |
US5671444A (en) * | 1994-02-28 | 1997-09-23 | Intel Corporaiton | Methods and apparatus for caching data in a non-blocking manner using a plurality of fill buffers |
DE69530720T2 (de) * | 1994-03-09 | 2003-11-27 | Sun Microsystems Inc | Verzögertes Cachespeicherschreiben eines Speicherungsbefehls |
US5649225A (en) * | 1994-06-01 | 1997-07-15 | Advanced Micro Devices, Inc. | Resynchronization of a superscalar processor |
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 |
US5737636A (en) * | 1996-01-18 | 1998-04-07 | International Business Machines Corporation | Method and system for detecting bypass errors in a load/store unit of a superscalar processor |
US5958042A (en) * | 1996-06-11 | 1999-09-28 | Sun Microsystems, Inc. | Grouping logic circuit in a pipelined superscalar processor |
US6052771A (en) * | 1998-01-20 | 2000-04-18 | International Business Machines Corporation | Microprocessor with pipeline synchronization |
US6035394A (en) * | 1998-02-17 | 2000-03-07 | International Business Machines Corporation | System for providing high performance speculative processing of complex load/store instructions by generating primitive instructions in the load/store unit and sequencer in parallel |
US6260189B1 (en) * | 1998-09-14 | 2001-07-10 | Lucent Technologies Inc. | Compiler-controlled dynamic instruction dispatch in pipelined processors |
US6374344B1 (en) * | 1998-11-25 | 2002-04-16 | Compaq Information Technologies Group L.P. (Citg) | Methods and apparatus for processing load instructions in the presence of RAM array and data bus conflicts |
US6438704B1 (en) * | 1999-03-25 | 2002-08-20 | International Business Machines Corporation | System and method for scheduling use of system resources among a plurality of limited users |
US7139898B1 (en) * | 2000-11-03 | 2006-11-21 | Mips Technologies, Inc. | Fetch and dispatch disassociation apparatus for multistreaming processors |
JP3564445B2 (ja) * | 2001-09-20 | 2004-09-08 | 松下電器産業株式会社 | プロセッサ、コンパイル装置及びコンパイル方法 |
US6968444B1 (en) * | 2002-11-04 | 2005-11-22 | Advanced Micro Devices, Inc. | Microprocessor employing a fixed position dispatch unit |
-
2004
- 2004-02-11 US US10/776,751 patent/US7191320B2/en active Active
- 2004-09-14 EP EP04255566A patent/EP1569090B1/en active Active
- 2004-09-14 DE DE602004021167T patent/DE602004021167D1/de active Active
-
2005
- 2005-01-28 TW TW094102818A patent/TW200527297A/zh unknown
- 2005-01-31 CN CNB2005100062723A patent/CN1331044C/zh active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI418982B (zh) * | 2009-03-03 | 2013-12-11 | Qualcomm Inc | 可組態快取記憶體及組態其之方法 |
US8719503B2 (en) | 2009-03-03 | 2014-05-06 | Qualcomm Incorporated | Configurable cache and method to configure same |
US8943293B2 (en) | 2009-03-03 | 2015-01-27 | Qualcomm Incorporated | Configurable cache and method to configure same |
TWI482085B (zh) * | 2011-02-03 | 2015-04-21 | Intel Corp | 用於柵格化之串流壓縮的方法及設備、和非暫態性電腦可讀取媒體 |
Also Published As
Publication number | Publication date |
---|---|
CN1664776A (zh) | 2005-09-07 |
US20040172521A1 (en) | 2004-09-02 |
EP1569090A3 (en) | 2007-11-14 |
CN1331044C (zh) | 2007-08-08 |
EP1569090A2 (en) | 2005-08-31 |
DE602004021167D1 (de) | 2009-07-02 |
US7191320B2 (en) | 2007-03-13 |
TW200527297A (en) | 2005-08-16 |
EP1569090B1 (en) | 2009-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI292557B (zh) | ||
DE69233493T2 (de) | RISC-Prozessor mit erweiterbarer Architektur | |
US6647485B2 (en) | High-performance, superscalar-based computer system with out-of-order instruction execution | |
TWI265406B (en) | Microprocessor employing a performance throttling mechanism for power management | |
CN100495325C (zh) | 用于按需临时寄存器重命名的方法和系统 | |
TWI333629B (en) | Data speculation based on addressing patterns identifying dual-purpose register | |
US6192465B1 (en) | Using multiple decoders and a reorder queue to decode instructions out of order | |
TWI354932B (en) | Processor and method for tracking a larger number | |
DE102014108753A1 (de) | Vorhersageeinheiten-Datenstruktur zur Verwendung bei der Verarbeitung im Pipelinesystem | |
DE102014108785A1 (de) | Vorausschauendes abrufen und decodieren bei ausgewählten anweisungen | |
DE102012216592A1 (de) | Präfix-Computeranweisung zur Erweiterung der Anweisungsfunktionalität | |
CN104252336A (zh) | 基于解码时间指令优化来形成指令组的方法和系统 | |
US9367318B1 (en) | Doubling thread resources in a processor | |
US7475226B2 (en) | System for managing data dependency using bit field instruction destination vector identifying destination for execution results | |
US7725690B2 (en) | Distributed dispatch with concurrent, out-of-order dispatch | |
US6240507B1 (en) | Mechanism for multiple register renaming and method therefor | |
US7836282B2 (en) | Method and apparatus for performing out of order instruction folding and retirement | |
WO1995016952A1 (en) | Superscalar microprocessor instruction pipeline including instruction dispatch and release control | |
CN112379928B (zh) | 指令调度方法以及包括指令调度单元的处理器 | |
US20230214116A1 (en) | Processing Device for Handling Misaligned Data | |
TWI223773B (en) | Suppression of store checking |