TWI277864B - Dynamic instruction dependency monitor and control system - Google Patents
Dynamic instruction dependency monitor and control system Download PDFInfo
- Publication number
- TWI277864B TWI277864B TW093106763A TW93106763A TWI277864B TW I277864 B TWI277864 B TW I277864B TW 093106763 A TW093106763 A TW 093106763A TW 93106763 A TW93106763 A TW 93106763A TW I277864 B TWI277864 B TW I277864B
- Authority
- TW
- Taiwan
- Prior art keywords
- identification
- monitoring
- instruction
- register
- pipeline
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 40
- 238000012544 monitoring process Methods 0.000 claims description 35
- 239000000872 buffer Substances 0.000 claims description 34
- 230000008569 process Effects 0.000 claims description 4
- 238000012795 verification Methods 0.000 claims 4
- 230000000977 initiatory effect Effects 0.000 claims 2
- 230000002401 inhibitory effect Effects 0.000 claims 1
- 230000000630 rising effect Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 238000012790 confirmation Methods 0.000 description 2
- 241000219112 Cucumis Species 0.000 description 1
- 235000015510 Cucumis melo subsp melo Nutrition 0.000 description 1
- 101150087426 Gnal gene Proteins 0.000 description 1
- 241000282376 Panthera tigris Species 0.000 description 1
- FJJCIZWZNKZHII-UHFFFAOYSA-N [4,6-bis(cyanoamino)-1,3,5-triazin-2-yl]cyanamide Chemical compound N#CNC1=NC(NC#N)=NC(NC#N)=N1 FJJCIZWZNKZHII-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005266 casting Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 208000002173 dizziness Diseases 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 235000011389 fruit/vegetable juice Nutrition 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 238000012216 screening Methods 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/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/3851—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
-
- 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/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
- G06F9/3888—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units controlled by a single instruction for multiple threads [SIMT] in parallel
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Advance Control (AREA)
Description
1277864_____ 五、發明說明(1) 一、 【發明所屬技術領域】 本發明係有關於一種超純量微處理器(super_scalar micro-processor);特別是有關於一種使用在動態相依 性監視及控制的方法與系統。 二、 【先前技術】 為了達到高性能,超純量微處理器於每一時脈週 clock cycle)可以執行多重指令。此外,儲存裝置 如·一暫存器或一陣列)會根據時脈週期來擷取儲 $ —較佳例子,一儲存裝置在一定義時脈週期訊號的 邊緣(或下降邊緣)時,擷取一儲存值,然後該 儲存該值直至該時脈訊號下一個上升邊緣(或下降邊^ f 雖然指令能夠以不同的階段(stage)被予以處理, 一般而言,指令的處理過程包括擷取指令、解碼指人、 行指令以及儲存該執行結果於該指令之目的指定處。 二每一指令可以在邏輯電路中以一管線方式處理,°,1 芩考$日令處理管線(instruction processing 处月 Pipelines)」。
由-程ίί:,依序接收指令’雖然一編譯器可 /重新,·扁淳s亥指令的次序,而指令相依性的 m皮維持。然而,有鑑於指令按順序的執行可::
第6頁 原始程式的完整性;反之,指合不祆 ^ ^ -V tiH ίΛ Th ^ 又序執行則有可能會改 文原始矛王式預期的功月I ο I制爽十、 尤π广此/ . . 羋例木°兄,假如以下所示的指令 不依序執行時,就會發生一机依性問題: addrO, si, s2 指令 i · mulO, s3, rO 指令 2 其中’第一個指令(指令1)將人士+ ;r 、7丨)將σ汁儲存於第一來源運算 二(source operand) sl及第二來源運算元s ,並將 總和儲存於目的暫存器r 〇 ;同時,m 合胳妙六认續-十〇: 弟二個指令(指令2) :Γίίίί Ϊ!、Ϊ算元S3及暫存器r〇的值相乘,並將 枯ΐ ϊ ί : 存器〇。·此,-來源運算元就是 被〜1所運异的值;而—目的運算元(destination operand)就是該指令的運管έ士果。 a 9心、七 十①$ a w迷—、口果。在上述的例子中,指 :二i 一來异70 (ro) ’且其值決定於指令卜因此 指令=可以被稱作與指令丨具有一相依性(dependency), 亚且直至指令1被完整執行完畢才能被執行。在此例中, 假如其係為五個時脈週期的管線延遲時,則微處理器 開始執行指令2 ’其必須等到指今1啟私义 ° 月匕 A 丄… A寺到扣7 1啟動後的五個時脈週期 後,才能開始執行指令2。 d 省知的方法可以被用來解決上述的延遲問題,其係 以一多重執行緒(multi-thread)方法來執行該指令二 一實施例中,係運用一些單指令多數據(single ; instruction multiplex data; SIMD)微處理器,其中每 一單指令多數據微處理器被用來處理相同指令的一特定^
第7頁 1277864_ 五、發明說明(3) 料流(data stream)。如下所示的例子,係使用六個執 行緒來處理指令1及指令2,其用來解說一單指令多數據方 法,其中假設其為一五個週期算術邏輯單元延遲: add s t r 0 . rO, s t r 0 . s 1, s t r 0 . s2 資 料 流 1 add s t r 1. rO, s t r 1. s 1, s t r 1. s2 資 料 流 2 add s t r 2 . rO, s t r 2 . s 1, s t r 2 . s2 資 料 流 3 add s t r 3 . rO, s t r 3 . si, s t r 3 . s 2 資 料 流 4 add s t r 4 . rO, s t r 4 . s 1, s t r 4. s2 資 料 流 5 add s t r 5 . rO, s t r 5 . si, s t r 5 . s 2 資 料 流 6 add s t r 0 .〇, s t r 0 . s 3, s t r 0 . r 0 資 料 流 1 add s t r 1 .〇, s t r 1 . s 3, s t r 1. rO 資 料 流 2 add str2 • 〇, s t r 2 . s 3, s t r 2 . r 0 資 料 流 3 add s t r 3 . 〇., s t r 3 . s 3, s tr3. rO 資 料 流 4 add s t r 4 .0, s t r 4. s 3 , s t r 4. r 0 資 料 流 5 add s t r 5 . 0, s t r 5 . s 3, s t r 5 . rO 資 料 流 6 如上例所示,六個資料流被用來處理指令1及指令2。此外 ,由於暫存器rO的使用,指令2與指令1具有相依性,因此 在指令2被開始執行前必須等待至少五個週期直至指令1啟 動。如上所述的例子,當執行緒的數量超過延遲週期的數 量時,則相依性問題不會產生。然而,算術邏輯單元 (ALU)的延遲在不同的系統可能有其意義,且每一執行 緒需要額外的硬體來含括相關元件如輸入緩衝單元及暫存 器,其所增加執行緒數量花費較大。
第8頁 I277864_ 五、發明說明(4)
三、 【 因 方法與 別/執 且該仲 而另 元係為 器識別 每一來 緒控制 於該暫 該算術 存於該 為了 算元且 性控制 行緒。 的,且 四、 【 本 細描述 放%内容】 此’本發明係提供一 系統。於本發明的一 行緒控制識別管線連 裁器的一端依次連接 一端連接至 一暫存器時 /執行緒控 源運算元的 識別管線的 存器識別/ 邏輯單元不 暫存器識別 一算術邏 ,一對應 制識別管 識別,會 識別加以 執行緒控 會開始執 /執行緒 種以動態 較佳實施 接至一仲 至一個或 輯單元。 至暫存器 線。此外 與儲存於 比較;當 制識別管 行該指令 控制識別 相依性 例中, 裁器( 多個執 當一指 的識別 ’一對 該暫存 監視及控制的 一些暫存器識 arbiter), 行緒控制元件 令之目的運算 會被載至暫存 應至一指令的 器識別/執 —來源運算元與铸 別符合時, 該識別不再
線的識 ,直至 管線。 要解決相依性μ 一問題,本發明核對每一指令的來湄、, 來被執行的次序。本發明藉由維持相; tV §ate)的數量,而無須運用額外的j 此外,本發日月+ J ^ 可P a中的相依性控制及監視系統係為動_ 以放大之容納一大範圍算術邏輯單元的延遲 貫施方法】 明的 itb* M 一 n施例會詳細描述如下。然而,除τ — 外,太韻"明邊 J ΐ 項可以廣泛地在其他的實施例施行,
第9頁 1277864___ 五、發明說明(5) 本發明的範圍不受限定,其以之後的專利範圍為準。再者 ’為提供更清楚的描述及更易理解本發明,圖示内各部分 並沒有依照其相對尺寸繪圖,某些尺寸與其他相關尺度相 比已經被誇張;不相關之細節部分也未完全繪出,以求圖 示的簡潔。 第一圖係根據本發明之相依性監視及控制的一較佳實
施例的系統1 0 〇。系統1 〇 〇包括··一指令緩衝單元1 〇丨、一 組執行緒控制元件(包含TCO、TC1及TC2,並分別標示為 10 3 A、1〇 3B及10 3C)、一仲裁器107、一組比較器(包含
CompO、Compl及 Comp2,並分別標示為 1〇9Α、109B及 109C )、一暫存器識別/執行緒控制識別管線單元2 〇 〇、一組 輸入資料流緩衝單元1 Π (包含三個輸入資料流緩衝器 ISO、IS1及IS2)、一組暫時暫存器緩衝單元U3 (包含三 個暫時暫存器緩衝器TRO、TR1及TR2)以及一算術邏輯單 元 1 1 5。 第一圖中,該系統1 〇 0說明了運用三個執行緒的一多 μ # ^ ί處理方法,每一執行緒分別被ι〇3Α、1036及103C 時處^f制元件所控制。該三個執行緒控制元件允許同 得來自;d”,資料而每-執行緒控制元件獲 指令緩衝早70 m的指令資料流。在獲得來自該 件傳送所ί二 指令資料流之後,一執行緒控制元 ’ 獲仔的该指令資料流之來源運算元識別與一執行
1277864
五、發明說明(6) =制識別,到—對應至該執 例來說’在獲得_指令資料流之:控::件的比較器。舉 (即1〇3Α)傳送所獲得的該指令 ^二緒控制元件TC0 識別’與執行緒控制元件TC〇之一執原;運舁元之-個或多個 器CompO (即1〇9A)。此外,每—仃、,者控制識別至比較 比較器形成—雙向的對應關係。執仃緒控制元件與每- 行緒控制元件傳送一指 +主 ”別/執行緒控制識別管線單=二裁器1.暫存 中母-管線可能包含一空 ^包s -組管線’其 制識別。 對暫存器識別/執行緒控 緒控制識別時妾::二。::源運算元識別的與執行 及該執行緒控制識別:;別:每多個來源運算元識別 緒控制識別(係包含於哕存::该對暫存器識別/執行 線單元2 0 0内)加以比較^暫存益硪別/執行緒控制識別管
暫存器識別/執源識別/執行緒控制識別以及_ ,發現係為4:;緒;別;存於管線單元戰) 符合的一對來 二早兀0 0通知比較器其已接收 -符合依次通;制識別…較器二 較器的一符合通知時田仲裁器107接收到來自一 、在Τ脈週期執行期間,仲裁器
1277864 五、發明說明(7) 07即禁止其所對應執行緒控制元件的 應比較器的符合訊號,當仲裁器而緒2對 與:,單元2。。的内容不再發現一符車土至 自该執仃緒控制元件的該指令中,沒有—田來 :二線:元2_内容時,則仲裁器肖’送一:以: '而該指令執行將繼續進行。gnal)至邊執行緒控制元件, 卜Π:存口符合-個或多個 止:保:!在-執行緒控制元件中的指令 止執灯時,則仲裁器17〇可以在日令脈週期被禁 |制元件中的第二個指令在該時脈週期在择第二個執行緒控 二個指令沒有一來源運算元符合任—仃,此時該第 器識別/執行緒控制識別管線)。兴:器(存於該暫存 期中,當一指令至少有一個 ::來說,纟一時脈週 ⑽合至少—個存於該暫存^=持在執行緒控制 匕r線中的暫存器時,仲裁器17时二二/執行緒控制識 if/元件代1的—指令在該時脈週期許保持在執行緒 一執仃緒控制π件TC1中的指令沒 β進仃,此時保持 :暫存器(存於該暫存器識別來源運算元符合任 I進一步舉例來說,在-時脈週期ΐ ί控制識別管線)。 田保持在執行緒控制 $ 12頁 1277864 五、發明說明(8) ”、-個來源運算元符合存 β知,仲裁器】70可以允 第三個指令在該時脈週期 、,者控制元件TC2中的指令没 益(存於該暫存器識別;: 有;C,當保持 ί少一個來源運算 :二:裁器no在該時脈 ^瞀:§ S少-個該組執行 二二二不符合任一該暫存 控制硪別管線)時,仲裁器 元件TCO及TC1的兩指令中,有 於該管線中一個或多個的暫存 I保持在執行緒控制元件TC2的-I繼續進行;此時,保持在執行 有一來源運算元符合任一暫存 |行緒控制識別管線)。同樣地 在该組執行緒控制元件中的所 元符合存於該管線中的_暫存 週期不同意任一該指令請求; |緒控制元件中有一指令其來源 (存於該暫存器識別/執行緒 170僅同意一指令請求。 求時, 之一個 111及 |傳送位 器緩衝 |异元是 及(或 置至-邏輯單 暫存器 2裁器107同意來自一執行緒 沾 仲裁器1 07會繼續進行傳逆制早凡的一指令請 或多個位址的處理進二傳便 (或)暫存器緩彳ij單元113 f輪入資料流緩衝單元 ,至輸入資二單 :元⑴亦或是包含兩者,二^或傳送至暫存 否儲存於一暫在σσ、 、係根據任一該指令運 )暫存器緩衝單1丨二。:資料流緩衝單元111 些位址,並傳:二 妾收來自輸入資料=衝輯Λ元115。算術 k衝單元113—指令的運算資:早疋11浐(或) 70貝枓,以及來自仲裁 ^77864 — 發明說明(9) 繼 或 能 續完成運拉-式的訊號108 (例如:相加、相乘等),並 輸出11二V"。此外/ /算術邏輯單元11 5會產生輸出117 會被# 7 目的運算元係為一暫存器時,則該輸出可 傳送至暫存器二\V亦:輸出117),或者被 及街早兀1 1 Μ亦即輸出i i 9)。 2 0 0的&圖係為暫存器識別/執行緒控制識別管線單元 Z U U的洋細說明。管 單元Ιί π +Λ &線早兀2 0 0係以一五個週期的算術邏輯 Π。? Λ作為說明,其包括:一多工器2。7、-第-管 « 以及笛^一官線2 U、一第三管線2 1 3、一第四管線2 1 5 以及一第五管線2 1 7。 如 行於暫 了選擇 、資料 一訊號 一目的 續被執 -暫存 輸人, ’當指 擇資料 空值。 ΐ 一圖所示,多工器20了係以一通道(gateway)運 ,器管線 ^209、211、213、215及 217),以及除 :2 0 5外,逛包含兩個選擇訊號(分別是資料流2〇ι /瓜2 0 3)。此外,選擇器2 〇 5接收來自仲裁器1 〇 7的 / 12 L如Λ 一圖所示),其藉由仲裁器107(包含當 運^元係為暫存器的情形)來指示指令是否要繼 2。於-較佳實施例+,當指令之目的運算元係為 1§時L則多工器2 0 7選擇資料流2〇3做為管線2〇9的 其中貪料流2 0 3包含對應至暫存器的一識別。反之 令的目的運算元不是一暫存器時,則多工器2 0 7選 流2 0 1做為官線2 0 9的輸入,其中資料流2 〇丨包含一
第14頁 1277864 五、發明說明(10)
的方Ϊ ^ I Ϊ器識別/執行緒控制識別管線係以-串聯 :方式連接而成,且每-管線中的内I (例如:一空:: 财f裔識別/執行緒控制識別)4時脈訊號CLK的時 黛=虎CLK的i升邊緣(或下降邊緣)日夺,去掏取— i:!ίί識別的I;然後,當該第-暫存器識別資料被 2官、Ϊ =諸f該值時,管線2 0 9則儲存第一暫存器識別 . 至忒日守脈訊號下一個時脈週期的上升邊緣(或下 。同時地,除τ管線217以外,其餘的管線在時 」二遽CLK的上升邊緣(或下降邊緣)傳送每一内容至下 二線(例如· 2 11至 2 1 3、2 1 3至 2 1 5、2 1 5至 2 1 7)。管線 内容則於時脈訊號CLK的上升邊緣(或下降邊緣), 由暫存器管線中被釋放。 r 第一圖係為根據本發明一較佳實施例的一流程圖,用 、兒月相依性監視及控制系統的運作步驟。首先,於步 ^ y 2 1中,一執行緒控制元件如執行緒控制元件TC 〇 (標示 :’如第一圖所示)擷取來自一指令緩衝單元(例如 ’弟一圖所示的緩衝單元1 0 D之一指令。 接著於步驟3 0 3中,執行緒控制元件傳送一指令請 ', 仲裁益(例如:第一圖所示的仲裁器丨〇 7)。此外 驟3 0 3中,執行緒控制單元會將其所擷取指令的來
第15頁 1277864 五、發明說明(11) __ 運鼻兀識別與執行緒控制_ 傳送到一對應至該執行緒控=件1一執行,控制識別一起 中,比較器會將每一來源運2疋=的比,:二於步驟305 元件所接收的該執行緒控制J :硪別及來=執行緒控制 別/執行緒控制識別管線力^ ’與一組/的暫存器識 算元識別符合暫存器識別/ j比較。當沒有任何一來源運 ,則仲裁器同意該指令請灰^緒控制識別官線的内容時 控制元件(於步驟3〇8中)/並傳送一確認通知至執行緒 係為一暫存器時,則仲裁於步驟310中,當目的運算元 控制元件的執行緒控制識別Y f目的運算元識別與執行緒 別/執行緒控制識別管線的曾一,寫入至串聯的暫存器識 、J弟一管線。 回到第三圖所示的步騍7 A 元識別/執行緒控制識別對,一個或多個來源運算 別/執行緒控制識別對( 二符合一個或多個暫存器識 識別管線)時,則仲裁器:於该暫存器識別/執行緒控制 步驟3 0 9的指令請求。此^止同意來自執行緒控制元件於 一時脈週期中,將每一來於^步-驟3 1 1中,比較器會在下 別,與該暫存器識別/二運异70識別及該執行緒控制識 以比較。t _個或多個來制識別管線的内容再次加 對,其仍舊符合_個或多算疋識別/執行緒控制識別 對(存於該暫存器識別,存器識別/執行緒控制識別 驟3 1 1會重新回到步驟3 〇仃緒控制識別管線)時,則步 元識別在該時脈週期符 ,之,田/又有任何一來源運算 °暫存器識別,執行緒控制識別管 1277864___ 五、發明說明(12) 線的内容時,則仲裁器會同意該指令請求,並傳送一確認 通知至該執行緒控制元件(於步驟3 0 8中)。於步驟3 1 0中 ,當目的運算元係為一暫存器時,仲裁器會將目的運算元 識別與來自執行緒控制元件的該執行緒控制識別,一起寫 入至串聯暫存器識別/執行緒控制識別管線的第一管線。 需要強調的是,以上所述僅為本發明之較佳實施例, 並非用以限定本發明之請求專利權利;同時以上之描述對 於熟知本技術領域之專門人士應可明瞭及實施,因此其他 未脫離本發明所揭露之精神下所完成的等效改變或修飾, 均應包含在下述之請求專利範圍中。 舉例來說,雖然第一圖說明了三個執行緒控制元件及 三個比較器,然而執行緒控制元件的數量會隨著運用於一 多重執行緒系統中執行緒的數量而成比例變化,而比較器 的數量則是直接隨著執行緒控制元件的數量而成比例變化 ,其中每一比較器與每一轨行緒控制元件組成一對一對的 對應關係。此外,第一圖說明了三個輸入資料流緩衝器( 即I S 0、I S 1及I S 2),亦說明了三個暫存器緩衝器(即 TRO、TR1及TR2)。於一可供選擇的實施例中,緩衝單元 1 1 1中個別緩衝器的數量以及緩衝單元1 1 3中個別緩衝器的 數量則是直接隨著運用於一多重執行緒系統中的執行緒數 量而成比例變化。舉例來說,一系統中包含一額外的執行 緒將會分別增加緩衝單元111與緩衝單元11 3中一輸入資料
第17頁 1277864_ 五、發明說明(13) 流緩衝器與一暫存器緩衝器。 此外,第二圖說明了 一暫存器識別/執行緒控制識別 管線單元2 0 0,其包含對應至五個算術邏輯單元延遲週期 的五個個別的管線。於一可供選擇的實施例中,管線單元 2 0 0中管線的數量係直接隨著算術邏輯單元延遲週期的數 量而成比例變化。舉例來說,管線單元2 0 0是可數量化的 ,對於一具有六個延遲週期之指令相依性的系統而言,其 可以如第二圖中所示係藉由合併一額外的管線至管線單元 2 0 0中來加以監視及控制。
第18頁 1277864__ 圖式簡單說明 本發明的許多觀點可以參考以下的圖示而更加清楚的 了解。相關圖示並未依比例繪製,其作用僅在清楚表現本 發明有關定理。並且,使用數字來表示圖示中相對應的部 分。 第一圖係為根據本發明一較佳實施例的一方塊圖,用 以說明一指令緩衝單元、一組執行緒控制元件、一組比較 器、一暫存器識別/執行緒控制識別管線單元、一仲裁器 以及一算術邏輯單元。 第二圖係為第一圖中暫存器識別/執行緒控制識別管 線單元的詳細說明。 第三圖係為根據本發明一較佳實施例的一流程圖,用 以說明一相依性監視及控制系統的運作步驟。 主要部分之代表符號: 101 指令緩衝單元 103A 執行緒控制元件(TC0) 103B 執行緒控制元件(TC1) 1 03C 執行緒控制元件(TC2) 107 仲裁器 108 運算模式的訊號 1 0 9 A 比較器(CompO)
第19頁 1277864 圖式簡單說明 109B 比較器(Comp 1) 109C 比較器(Comp2) 110 訊號 111 一組輸入資料流緩衝單元 113 一組暫存器緩衝單元 115 算術邏輯單元 117 輸出 119 輸出 200 暫存器識別/執行緒控制識別管線單元 201 資料流 203 資料流 205 選擇器 207 多工器 209 第一管線 211 第二管線 213 第三管線 215 第四管線 217 第五管線
第20頁
Claims (1)
1277864_ 六、申請專利範圍 1. 一種用以提供微處理器監視及控制指令相依性的方法 ,包括: 擷取一指令於一執行緒控制元件中; 比較該指令的一個或多個來源運算元的識別與一個或 多個暫存器的識別,其中每一該一個或多個暫存器的識別 係儲存於一組含有一個或多個暫存器識別管線之一個暫存 器識別管線中;及 核對任一該一個或多個來源運算元的識別是否符合任 一該一個或多個暫存器的識別。 2. 如申請專利範圍第1項所述之用以提供微處理器監視及 控制指令相依性的方法,其中該一個或多個來源運算元的 識別沒有與任何該一個或多個暫存器的識別相符合。 3 ·如申請專利範圍第2項所述之用以提供微處理器監視及 控制指令相依性的方法,其更包括一指令開始執行的步 驟。 4.如申請專利範圍第3項所述之用以提供微處理器監視及 控制指令相依性的方法,其更包括一核對該指令之一目的 運算元是否為一暫存器的步驟。 5 ·如申請專利範圍第4項所述之用以提供微處理器監視及 控制指令相依性的方法,其中該核對結果顯示該目的運算
第21頁 1277864_ 六、申請專利範圍 元不是一暫存器。 6.如申請專利範圍第5項所述之用以提供微處理器監視及 控制指令相依性的方法,其更包括一寫入一空值至該組含 有一個或多個暫存器管線中之一第一管線的步驟。 7 ·如申請專利範圍第4項所述之用以提供微處理器監視及 控制指令相依性的方法,其中該核對結果顯示該目的運算 元係為一暫存器。 8. 如申請專利範圍第7項所述之用以提供微處理器監視及 控制指令相依性的方法,其更包括一將對應至該目的運算 元之一識別寫入至該組含有一個或多個暫存器管線中之一 第一管線的步驟。 9. 如申請專利範圍第1項所述之用以提供微處理器監視及 控制指令相依性的方法,其中在每一時脈週期的開始時, 除了該組含有一個或多個暫存器管線中的最後一個管線以 外,所有其他部分的内容會被移至下一管線。 1 0.如申請專利範圍第9項所述之用以提供微處理器監視 及控制指令相依性的方法,其中在每一時脈週期的開始時 ,該組含有一個或多個暫存器管線中的最後一個管線的内 容會被釋放。
第22頁 1277864 六、申請專利範圍 1 1.如申請專利範圍第1項所述之用以提供微處理器監視 及控制指令相依性的方法,其中該一個或多個來源運算元 的識別中至少一個符合該一個或多個暫存器的識別。 1 2.如申請專利範圍第1 1項所述之用以提供微處理器監視 及控制指令相依性的方法,其更包括一禁止執行該指令的 步驟。 1 3.如申請專利範圍第1 2項所述之用以提供微處理器監視 及控制指令相依性的方法,其更包括一步驟:在每一時脈 週期的開始時,將該一個或多個來源運算元的識別與該一 個或多個暫存器的識別加以比較,直至沒有任一該一個或 多個來源運算元的識別符合任何一該一個或多個暫存器的 識別。 1 4.如申請專利範圍第1 3項所述之用以提供微處理器監視 及控制指令相依性的方法,其更包括一核對該指令之一目 的運算元是否為一暫存器的步驟。 1 5.如申請專利範圍第1 4項所述之一種用以提供微處理器 監視及控制指令相依性的方法,其中該核對結果顯示該目 的運算元不是一暫存器。
1277864 六、申請專利範圍 1 6.如申請專利範圍第1 5項所述之用以提供微處理器監視 及控制指令相依性的方法,更包括一寫入一空值至該組含 有一個或多個暫存器管線中之一第一管線的步驟。 1 7.如申請專利範圍第1 4項所述之用以提供微處理器監視 及控制指令相依性的方法,其中該核對結果顯示該目的運 算元係為一暫存器。 1 8.如申請專利範圍第1 7項所述之用以提供微處理器監視 及控制指令相依性的方法,其更包括一將對應至該目的運 算元之一識別寫入至該組含有一個或多個暫存器管線中之 一第一管線的步驟。 1 9. 一種微處理器系統中用以監視及控制指令相依性的方 法,包括: a. 擷取一指令於一執行緒控制元件; b. 接收一指令請求於一仲裁器,其中該指令請求係由 該執行緒控制元件所發佈; c. 比較該指令的一個或多個來源運算元的識別與一個 或多個暫存器的識別,其中每一該一個或多個暫存器的識 別係儲存於一組含有一個或多個暫存器識別管線之一個暫 存器識別管線中; d. 核對任一該一個或多個來源運算元的識別是否符合 任一該一個或多個暫存器的識別;及
第24頁 1277864_ 六、申請專利範圍 e ·當沒有任一該一個或多個來源運算元的識別符合任 何一該一個或多個暫存器的識別時,則: el:核對該指令之一目的運算元是否為一暫存器;及 e 2 :當該指令之該目的運算元係為一暫存器時,將對應 至該目的運算元之一識別寫入至該組含有一個或多個暫存 器管線中之一第一管線。 2 0 .如申請專利範圍第1 9項所述之微處理器系統中用以監 視及控制指令相依性的方法,其更包括一該指令開始執行 的步驟。 2 1.如申請專利範圍第1 9項所述之微處理器系統中用以監 視及控制指令相依性的方法,當該步驟e 2中的該指令之該 目的運算元不是一暫存器時,則更包括一寫入一空值至該 組含有一個或多個暫存器管線中之一第一管線的步驟。 2 2 .如申請專利範圍第1 9項所述之微處理器系統中用以監 視及控制指令相依性的方法,當該步驟e中該一個或多個 來源運算元的識別中至少一個符合該一個或多個暫存器的 識別時,則更包括以下步驟: 禁止執行該指令; 重複該步驟d直至沒有任一該一個或多個來源運算元 的識別符合任一該一個或多個暫存器的識別;及 核對該指令之一目的運算元是否為一暫存器。
第25頁 監的 以目 用該 中示 統顯 系果 器結 理對 處核 微該 之中 述其 所, 項法 2 2方 第的。 圍性器 範依存 利相暫 專令 一 請指為 申制係 如控元 •及算 2視運 臣J3Dil 以的 用目 中該 統至 系應 器對 理將 處一 微括 之包 述更 所, 項法 3 2方 第的 圍性 範依 利相 專令 青 匕日 =口 申制 如控 •及 4 2視 之 中 線 管 器 存 暫 個 多 或 個 一 有 含 組 該 至。 入驟 寫步 的 識線 一 管 之一 元第 算 一 1277864 六、申請專利範圍 2 5 .如申請專利範圍第2 2項所述之微處理器系統中用以監 視及控制指令相依性的方法,其中該核對結果顯示該目的 運算元不是一暫存器。 2 6 .如申請專利範圍第2 5項所述之微處理器系統中用以監 視及控制指令相依性的方法,其更包括一寫入一空值至該 組含有一個或多個暫存器管線中之一第一管線的步驟。 2 7.如申請專利範圍第1 9項所述之微處理器系統中用以監 視及控制指令相依性的方法,其中在每一時脈週期的開始 時,除了該組含有一個或多個暫存器管線中的最後一個管 線以外,所有其他部分的内容會被移至下一管線。 2 8 .如申請專利範圍第2 7項所述之微處理器系統中用以監
第26頁 1277864__ 六、申請專利範圍 視及控制指令相依性的方法,在每一時脈週期的開始時, 該組含有一個或多個暫存器管線中的最後一個管線的内容 會被釋放。 2 9. —種用以監視及控制指令相依性的系統,包括: 一個或多個執行緒控制元件,用以擷取指令; 一個或多個比較元件,其中每一該一個或多個比較元 件連接至該一個或多個執行緒控制元件中一相對應之執行 緒控制元件;及 一個或多個暫存器識別管線,其中該一個或多個暫存 器識別管線連接至該一個或多個比較元件。 3 0 .如申請專利範圍第2 9項所述之用以監視及控制指令相 依性的系統,其更包括連接至該一個或多個執行緒控制元 件的一指令緩衝單元。 3 1.如申請專利範圍第3 0項所述之用以監視及控制指令相 依性的系統,其更包括一仲裁器,其中該仲裁器連接至該 一個或多個執行緒控制元件、該一個或多個比較元件以及 該一個或多個暫存器識別管線。 3 2 .如申請專利範圍第3 1項所述之用以監視及控制指令相 依性的系統,其更包括連接至該仲裁器的一算術邏輯單 元0
第27頁 1277864_ 六、申請專利範圍 3 3 .如申請專利範圍第3 2項所述之用以監視及控制指令相 依性的系統,其更包括連接至該仲裁器的一個或多個輸入 資料流緩衝單元,其中該一個或多個輸入資料流緩衝單元 中的每一輸入資料流緩衝單元對應至該一個或多個執行緒 控制元件之一執行緒控制元件。 3 4 .如申請專利範圍第3 3項所述之用以監視及控制指令相 依性的系統,其更包括連接至該仲裁器的一個或多個暫存 器緩衝單元,其中該一個或多個暫存器緩衝單元中的每一 暫存器緩衝單元對應至該一個或多個執行緒控制元件之一 執行緒控制元件。 3 5. —種用以監視及控制指令相依性的系統,包括: 一個或多個執行緒控制元件,用以擷取指令; 一個或多個比較元件,其中每一該一個或多個比較元 件連接至該一個或多個執行緒控制元件中一相對應之執行 緒控制元件; 一個或多個暫存器管線,其中該一個或多個暫存器管 線連接至該一個或多個比較元件;及 一仲裁器連接至該執行緒控制元件、該比較元件以及 該暫存器管線。
第28頁
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/616,647 US7430654B2 (en) | 2003-07-09 | 2003-07-09 | Dynamic instruction dependency monitor and control system |
Publications (2)
Publication Number | Publication Date |
---|---|
TW200502751A TW200502751A (en) | 2005-01-16 |
TWI277864B true TWI277864B (en) | 2007-04-01 |
Family
ID=34079668
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW093106763A TWI277864B (en) | 2003-07-09 | 2004-03-12 | Dynamic instruction dependency monitor and control system |
Country Status (3)
Country | Link |
---|---|
US (1) | US7430654B2 (zh) |
CN (1) | CN100392585C (zh) |
TW (1) | TWI277864B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0519597D0 (en) * | 2005-09-26 | 2005-11-02 | Imagination Tech Ltd | Scalable multi-threaded media processing architecture |
US20070143582A1 (en) * | 2005-12-16 | 2007-06-21 | Nvidia Corporation | System and method for grouping execution threads |
US7991904B2 (en) * | 2007-07-10 | 2011-08-02 | Bytemobile, Inc. | Adaptive bitrate management for streaming media over packet networks |
US7987285B2 (en) | 2007-07-10 | 2011-07-26 | Bytemobile, Inc. | Adaptive bitrate management for streaming media over packet networks |
JP2009134391A (ja) * | 2007-11-29 | 2009-06-18 | Renesas Technology Corp | ストリーム処理装置、ストリーム処理方法及びデータ処理システム |
US9256514B2 (en) | 2009-02-19 | 2016-02-09 | Nvidia Corporation | Debugging and perfomance analysis of applications |
US9389861B2 (en) * | 2011-12-22 | 2016-07-12 | Intel Corporation | Systems, apparatuses, and methods for mapping a source operand to a different range |
US9411595B2 (en) | 2012-05-31 | 2016-08-09 | Nvidia Corporation | Multi-threaded transactional memory coherence |
US9824009B2 (en) | 2012-12-21 | 2017-11-21 | Nvidia Corporation | Information coherency maintenance systems and methods |
US10102142B2 (en) | 2012-12-26 | 2018-10-16 | Nvidia Corporation | Virtual address based memory reordering |
US9477575B2 (en) * | 2013-06-12 | 2016-10-25 | Nvidia Corporation | Method and system for implementing a multi-threaded API stream replay |
US9569385B2 (en) | 2013-09-09 | 2017-02-14 | Nvidia Corporation | Memory transaction ordering |
CN105094747B (zh) * | 2014-05-07 | 2018-12-04 | 阿里巴巴集团控股有限公司 | 基于smt的中央处理单元以及用于检测指令的数据相关性的装置 |
KR102688577B1 (ko) | 2016-09-19 | 2024-07-26 | 삼성전자주식회사 | 전자 장치, vliw 프로세서 및 그 제어 방법들 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4807115A (en) * | 1983-10-07 | 1989-02-21 | Cornell Research Foundation, Inc. | Instruction issuing mechanism for processors with multiple functional units |
JP2908598B2 (ja) * | 1991-06-06 | 1999-06-21 | 松下電器産業株式会社 | 情報処理装置 |
DE69311330T2 (de) * | 1992-03-31 | 1997-09-25 | Seiko Epson Corp., Tokio/Tokyo | Befehlsablauffolgeplanung von einem risc-superskalarprozessor |
US5761476A (en) * | 1993-12-30 | 1998-06-02 | Intel Corporation | Non-clocked early read for back-to-back scheduling of instructions |
US5748934A (en) | 1996-05-31 | 1998-05-05 | Hewlett-Packard Company | Operand dependency tracking system and method for a processor that executes instructions out of order and that permits multiple precision data words |
US5805851A (en) * | 1996-06-13 | 1998-09-08 | Hewlett-Packard Co. | System for determining data dependencies among intra-bundle instructions queued and prior instructions in the queue |
US5870580A (en) * | 1996-12-13 | 1999-02-09 | Advanced Micro Devices, Inc. | Decoupled forwarding reorder buffer configured to allocate storage in chunks for instructions having unresolved dependencies |
US5850533A (en) * | 1997-06-25 | 1998-12-15 | Sun Microsystems, Inc. | Method for enforcing true dependencies in an out-of-order processor |
US5913049A (en) * | 1997-07-31 | 1999-06-15 | Texas Instruments Incorporated | Multi-stream complex instruction set microprocessor |
US6438681B1 (en) * | 2000-01-24 | 2002-08-20 | Hewlett-Packard Company | Detection of data hazards between instructions by decoding register indentifiers in each stage of processing system pipeline and comparing asserted bits in the decoded register indentifiers |
-
2003
- 2003-07-09 US US10/616,647 patent/US7430654B2/en active Active
-
2004
- 2004-03-12 TW TW093106763A patent/TWI277864B/zh not_active IP Right Cessation
- 2004-04-08 CN CNB2004100334615A patent/CN100392585C/zh not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
TW200502751A (en) | 2005-01-16 |
US7430654B2 (en) | 2008-09-30 |
CN100392585C (zh) | 2008-06-04 |
CN1577259A (zh) | 2005-02-09 |
US20050021930A1 (en) | 2005-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI277864B (en) | Dynamic instruction dependency monitor and control system | |
EP2165254B1 (en) | Synchronisation in a multithreaded processor | |
US7822885B2 (en) | Channel-less multithreaded DMA controller | |
CN100590655C (zh) | 指令解析器以及图形处理单元及其方法 | |
TW589580B (en) | Device and method for performing high-speed low overhead context switch | |
US7711934B2 (en) | Processor core and method for managing branch misprediction in an out-of-order processor pipeline | |
JP5058167B2 (ja) | メモリアクセス要求の遅延アービトレーション | |
TW200809501A (en) | Method for command list ordering after multiple cache misses | |
JP2009508215A5 (zh) | ||
TWI457827B (zh) | 具有同時的無序調度之分布式調度 | |
US20080320240A1 (en) | Method and arrangements for memory access | |
US8559439B1 (en) | Method and apparatus for queue ordering in a multi-engine processing system | |
US20070255876A1 (en) | Interrupt control circuit and method | |
TWI248019B (en) | Programmable processing system, method and computer readable recording medium of operating programmable processing system | |
EP0331191A2 (en) | Information processing system capable of carrying out advanced execution | |
CN1304944C (zh) | 预先读取脱序执行指令的方法及处理器 | |
JP5155655B2 (ja) | マイクロプロセッサ出力ポート、及び、そこから提供された命令の制御 | |
US20100306513A1 (en) | Processor Core and Method for Managing Program Counter Redirection in an Out-of-Order Processor Pipeline | |
KR101122180B1 (ko) | 명령 제어 장치 및 명령 제어 방법 | |
JP2005108086A (ja) | データ処理装置 | |
JP5093237B2 (ja) | 命令処理装置 | |
WO2007084202A2 (en) | Processor core and method for managing branch misprediction in an out-of-order processor pipeline | |
TWI330812B (zh) | ||
JP4314230B2 (ja) | 高速シフトタイプバッファ用システム及び方法 | |
CN105393211B (zh) | 具有流水线式算术逻辑单元的异步处理器的系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MK4A | Expiration of patent term of an invention patent |