TWI277864B - Dynamic instruction dependency monitor and control system - Google Patents

Dynamic instruction dependency monitor and control system Download PDF

Info

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
Application number
TW093106763A
Other languages
English (en)
Other versions
TW200502751A (en
Inventor
Hsi-Lin Huang
Kuo-Yin Weng
Yi-Jung Su
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 TW200502751A publication Critical patent/TW200502751A/zh
Application granted granted Critical
Publication of TWI277864B publication Critical patent/TWI277864B/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/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/3836Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
    • G06F9/3851Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution from multiple instruction streams, e.g. multistreaming
    • 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/3885Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
    • G06F9/3888Concurrent 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頁
TW093106763A 2003-07-09 2004-03-12 Dynamic instruction dependency monitor and control system TWI277864B (en)

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)

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

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

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