TWI292557B - - Google Patents

Download PDF

Info

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
Application number
TW094102818A
Other languages
English (en)
Other versions
TW200527297A (en
Inventor
E Hooker Rodney
w j johnson Daniel
J Loper Albert
Original Assignee
Via Tech Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Via Tech Inc filed Critical Via Tech Inc
Publication of TW200527297A publication Critical patent/TW200527297A/zh
Application granted granted Critical
Publication of TWI292557B publication Critical patent/TWI292557B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3004Arrangements for executing specific machine instructions to perform operations on memory
    • G06F9/30043LOAD or STORE instructions; Clear instruction
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3824Operand accessing
    • G06F9/383Operand prefetching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3838Dependency mechanisms, e.g. register scoreboarding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3854Instruction completion, e.g. retiring, committing or graduating
    • G06F9/3856Reordering of instructions, e.g. using queues or age tags
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3861Recovery, 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 運算元匯流排 八、本案若有化學式時,請揭示最能顯示發明特徵 的化學式:
TW094102818A 2004-02-11 2005-01-28 Apparatus and method for performing a detached load operation in a pipeline microprocessor TW200527297A (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Cited By (4)

* Cited by examiner, † Cited by third party
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