TWI299465B - Simultaneous multithread processor and method therefor - Google Patents

Simultaneous multithread processor and method therefor Download PDF

Info

Publication number
TWI299465B
TWI299465B TW093110731A TW93110731A TWI299465B TW I299465 B TWI299465 B TW I299465B TW 093110731 A TW093110731 A TW 093110731A TW 93110731 A TW93110731 A TW 93110731A TW I299465 B TWI299465 B TW I299465B
Authority
TW
Taiwan
Prior art keywords
thread
logic
read
unit
instruction
Prior art date
Application number
TW093110731A
Other languages
English (en)
Other versions
TW200516492A (en
Inventor
William E Burky
Peter J Klim
Hung Q Le
Original Assignee
Ibm
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 Ibm filed Critical Ibm
Publication of TW200516492A publication Critical patent/TW200516492A/zh
Application granted granted Critical
Publication of TWI299465B publication Critical patent/TWI299465B/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/30181Instruction operation extension or modification
    • 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
    • G06F9/384Register renaming
    • 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/3854Instruction completion, e.g. retiring, committing or graduating
    • 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/3858Result writeback, i.e. updating the architectural state or memory

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

Ϊ299465 九、發明說明: 【發明所屬之技術領域】 通常本發明大致係關於用於具有同步多執行緒(SMT)及 單執行緒運行模式的處理器之方法及電路。 【先前技術】 人長J以來,更同效能之奥秘在於每一循環執行更多指 令二或者已知為指令級並行(LLP)或減少指令等待時間。為 了每-循環執行更多指令,必須添加更多功能單元(例如, 整數、浮點、載人/儲存單元等等)。為了更加連貫地執行多 個指令,可使用一稱為非循序處理⑽p)之 實上該類型處理已成為主流。 且事 荷汗爹指令視已送入該處 :’所以OOP出現。為幫助緩解此問題,儲存大量指令r 執行。這樣做的理由在於找到更多彼此不互㈣ 重排二二於:存即將立即執行之指令的儲存區域㈣ ⑽序戍❹。在大多數現代商業電腦架構中 衝器之大小正在增加,其中一 排序居 八秘上4 二糸、、先此夠儲存多達126個指 η加重排序緩衝器大小的理由报簡單: 式碼亦傾向於暫時盎執行 主 鍵接清早之陣列)。唯一的 口僻汉 〜,人 則通在於該等指令亦具有依靠先 刖才曰令之結果的傾向。由於罪先 私旦 , 、 所系私式石馬之不斷i祕加 、里,所以當前找到更多獨立指令的唯 曰 排序緩衝器之大小。 "的隹―方法為增加重 然而, 使用此技術在增加效能 之速度中已經達到 一非常 91917.doc 1299465 嚴重的下降趨勢,# 並且事貫上已經展示出遞減之收益。現 在使用越來越多的電晶體以達到相同的效能增加率。可藉 由多執行緒(多處理)(但並不藉由作為主要約束之系統匯i 排:來集中於指令或執行緒級下之—更大範圍形式之提取 效能,而非專心地集中於單處理器ILP提取。 在單個晶片上放置更多電晶體之能力已允許晶片上之多 處理(CMP)°為利用潛在效能增加,該架構不能使用多個處 ,器充當單處理^㈣制依細並行方式執行指令之 夕处里此要求同樣寫入在CMp上執行之程式從而以並行 方式而非以完全連續或順序方式執行。假設寫入該應用從 而以並行方式(多執行緒)執行,則在使得以此方式寫入之程 式與所添加之處理器數目成比例地更快執行的方面存在固 有的困難。 於一晶粒上使用多核心的通用概㈣藉由同時執行兩個 執行緒來提取更多效能。若按以上方式進行,㈣等兩個 cpu-起能夠保持始終執行有用卫作之功能單元總數的更 高百分比。若-處理器具有更多功能單元,則該等單元中 之較低百分比可能在任―時刻執行有用卫作。晶片上之多 處理器會降低每一處理器之功能單元的數目,且為每一處 理器分配獨立任務(或執行緒)。因此’能夠在兩個組合任務 上達到更高產出。-相當的單處理器將能夠比—cMp晶片 更快完成-執行緒或任務’因為雖然存在浪費的功能單 元,但^存在#處理器同時計算多片資料且使用所有有 效功能單元時產生的活性"爆發”。多處理器之觀念在於·· 91917.doc 1299465 1_處理n經歷此種爆發活性的絲,而使得每 处理益更頻繁且因此有效地使用其具有的有效資源。在 時脈循環中不使用—些功能單元被認為是”水平浪費",而 CMP試圖避免此種浪費。 、 然而,CMP存在問題。傳統⑽晶片犧牲 ;-速完成兩個或兩個以上執行緒。因此,對—般使^ έ,CMP晶片相對較不靈活,因為若僅存在-個執行緒, 則該分配之資源的一整半將空閒且完全無用(正如在—使 用早執行緒程式之系統中添加另一處理器於傳統多處理器 (MP)系統中係無用的)。一種使得一 cMp中之功能單元更有 效的途徑為使用大範圍資料點型多執行緒—跡 mUlmhreading ; CMT)。CMT藉由為特定數目之時脈循環執 行-執行緒來相對於該等功能單元之使用改良效率。由於" 垂直浪費”之減少而改良效率。垂直浪費描述由於一個執行 緒停止而無功能單元工作之情況。 當切換至另-執行緒時’處理器保存該執行緒之狀態(意 即,其保存指令位於管道中何處、哪些單元正被使用)且切 換至另一個執行緒。其藉由使用多暫存器集合來完成以上 步驟。其優勢在於以下事實:—執行緒經常僅可在其遭遇 一快取記憶體錯誤或缺乏待執行之獨立指令之前持續。 CMT處理H僅能以此方式執行與其所支援之-樣多的不同 執行緒。所以,其僅能儲存每一均具有用以儲存其執行狀 恶之貫體位置的許多執行緒。因此]^路(:河7處理器應需要具 有儲存N個執行緒之狀態的能力。 91917.doc 1299465 該概念之-變化為執行-個執行緒直至其已經歷快取吃 憶體錯誤(通常L2(二階)快取記憶體錯誤)為止,在該點處該 系統將切換至另-執行緒。此具有簡化旋轉該等執行緒通 過一處理器所需之邏輯的優勢,此是因為先前之執行緒— 停,其將簡單地切換至另—執H接著緩解了等待將— 所請求之區塊傳送回快取記憶體中之損失。雖然此與一些 處理器所使用之未命中快取方案下的命中(或多重未命中 下的p幻類似’但疋因為其對執行緒而非對指令操作,所 以其不同4MT對CMP的優勢在於:CMT不犧牲單執行緒 效能且存在更少的硬體複製(更少的被平分以使兩個處理 器與一可比較的CMT”相同”之硬體)。 之完成減慢,* FMT加速所有該等正工作之執行绪的完 成,並且其為通常最要緊的總產出。 .一對多執行緒更有效之途徑稱為小範㈣料點型多線程 (fme-grained multithreading ; FMT)。與⑽丁類似⑽τ之 基礎在於在執行緒之間快速切換。然而,與⑽不同,盆 觀念為切換每個循環。CMT及FMT實際上的確使一執行绪 CMT及FMT可能 CMP可能移除其本身之一些水平浪費 移除一些(或所有)垂直浪費。然而,可使用一被稱為同步多 執行緒(SMT)且包含-多執行緒之高級形態的架構以減少 垂直及水平浪費兩者。謝之主要目標在於具有在任何給 定時間及在任何給定功能單元中運行來自不同執行緒之指 令的能力。藉由旋轉通過執行緒,SMT架構如FMT處理器 那樣運作’ _1_藉由同時執行來自不同執行緒之指令,其如 91917.doc 1299465 CMP那樣運作。黎於此,允許架構設計更廣泛的核心而不 必擔心收益遞減。由於SMT具有共享不同執行緒之間的’’未 使用’f功能單元的能力,所以SMT有理由達到比FMT更高之 效率;因此,SMT達到CMP機器之效率。然而,與CMP系 統不同,SMT系統對不犧牲(其後將討論少量犧牲)單執行緒 效能無甚貢獻。其原因很簡單。當在CMP晶片上運行單執 行緒及更多處理器使該問題更明顯時CMP處理器之大部分 保持空閒,而SMT處理器能夠使所有功能單元致力於該單 執行緒。雖然此很明顯不如運行多執行緒那麼有價值,但 是在單執行緒及多執行緒環境之間獲得平衡之能力是非常 有用的特徵。此意味若呈現一執行緒極並行(TLP)則SMT處 理器可能採用其,且若不呈現,則SMT處理器將把全部注 意力放在指令級並行(ILP)上。 為了支援多執行緒,SMT處理器要求比傳統超標量處理 器(superscalar processor)更多之暫存器。大致目的在於為每 一支援之執行緒提供與一單處理器具有之暫存器一樣多的 暫存器。對於一傳統減少指令集合電腦(RISC)晶片而言, 其意味著32次N暫存器(其中>^為SMT處理器在一個循環中 能處理之執行緒的數目)加上所需之任何重新命名暫存 器。對於4路SMT處理器RISC處理器來說,其將意味著128 個暫存器加上所需之無論多少重新命名暫存器。 大多數SMT模型為習知非循序處理器之直接擴展。實際 產出之增加對指令發佈寬度(instruction issue width)提出更 多需求,而該指令發佈寬度應相應增加。由於暫存器檔案 91917.doc -10- 1299465 大小之上述增加’所以SMT管道長度可增加兩個階段(選擇 暫存器組之階段及執行讀取或寫入之階段)以不使時脈循 環之長度降低。因此暫存器讀取及暫存器寫入階段兩者分 解成兩個管道階段。 為了不允許任一執行緒支配該管道,應努力保證其它執 仃緒得到執行時間及資源之現實部分。當功能單元要求執 仃工作時,提取機制(fetch mechanism)將為在管道中已經具 有最少指令之執行緒提供較高優先權。當然,若干其它執 行緒幾乎不能執行工作,則來自該執行緒之更多指令已經 支配該等管道。 SM—T將共享任何可能情況。然而,在—些情況中,此會 貝料及指令流之傳統組織。#被共享時分支預測單元 文侍更加/又有效率,因為其必須記住具備更多指令之更多 =仃:且因此將在提供一精確預測方面更加沒有效率。此 者由於錯誤預測而導致需要更經常地刷新該管道,但 疋還需要超出彌補崎損之外的運行多執行緒之能力。 由於SMT架構(在兩個階段)使用之較長管道而導致錯誤 =之損失U,而較長管道又是由於所需之相當大暫存 ㈡而導致的。然而,已開發用以最小化在SMT架構中 、執行、、者所而之暫存器之數目的技術。 作業系統(0S)與用於薪六π ^ ^ 又韦效之 /、;曰存斋之更么重新分配的硬體支援以 共古 —執行緒不使用所有暫存器則自另一執行緒 子瞀存态之能力來實現。 另—問題係與該等快取記憶體大小、快取記憶體之線大 919l7.doc 1299465 小及其所提供之帶寬有關的執行緒之數目。與單執行緒程 式之狀況相同’增加快取記憶體線大小會減少錯誤率但亦 會增加錯誤損失。具有對使用更多不同資料之更多執行緒 之支援會加劇此問題並且因此存在對每一執行緒有用之更 少快取記憶體。當經一多執行緒工作負荷處理一多程式化 工作負荷時,快取記憶體之爭論將更加明顯。因此,若更 多執行緒被使用,則該等快取記憶體應更大。此適用於具 有共享之L2快取記憶體的CMP處理器。 該等被使用之更多執行緒導致更高之整體效能並且與記 憶體資料相關之差異變得愈發明顯。存在一指示:當保持 該L1(第一)快取記憶體大小保持不變時,利用一更相關之 快取記憶體來實現最高效能等級,儘管存取時期會更長。 已實行測試以藉由改變當該等執行緒之數目改變時相關地 變化之區塊大小來測定效能。如前所述,在任何時間增加 區塊之相關等級將增加效能;然而,如果兩個以上執行緒 被使用,則增加區塊大小會減少效能。其達到如此程度, 以使得區塊之相關度增長不能彌補由更大區塊大小之更大 錯誤損失所導致的虧損。 在一支援來自每一並發執行之執行緒之指令的SMt處理 器中,需要最優化效能以具有為每一執行緒在相同循環中 完成指令的手段。先前技術之動態共享完成表(CT)詳細栌 述一種支援使來自每一執行緒之指令在一給定時間點,,飛 行”的完成表結構,但並不描述在一單處理器循環中為每— 執行緒完成指令群組的能力或手段。 91917.doc -12· 1299465 j此,存在對心在黯純巾的兩個執行緒之間動態 共享一單群組完成表(GCT)之方法的需求,從而允許完成 表、暫存器檔案映射器及未完成處理之載入/儲存標記之有 放刷新’以使得允許盡快地調度及發佈新的指令群組。 【發明内容】 〜旱群組兀成表(GCT)具有一用於每一執行緒的下 個元成群組(NTCG)讀取埠,該下一個完成群組(ntcg) 讀取埠對^於完成表指令/位址陣列,藉以—旦完成立即同 夺$更新。刖向鏈接陣列亦具有一用於每一執行緒之NTCG讀 取阜藉以一旦完成即為每一執行緒找到下一指令群組。 :灸向鏈,陣列具有一用於每一執行緒之後向鏈接寫入埠, 猎以同時為每一執行緒將後向鏈接更新至NULL條件。該 有獨立鏈接清單頭及尾指標管理,從而允許每一執 行緒在完成時間同時橫越該GCT。該等執行緒各具有同時 ^可的所屬重新命名結果暫存器及同時更新的未完成處理 載入及儲存払圮用法。此允許兩個執行緒群組在一時脈 循%中同時元成並且允許共享GCT、暫存器檔案映射器, 、及有效刷新未完成處理之載入/儲存標記,促使可允許盡 快^調度及發佈新的指令群組,從而改良謝處理器效能。 幻述内谷已經相當廣泛地概述本發明之該等特徵及技術 優勢,以使得可更好地理解以下本發明之詳細描述。下文 中將描述形成本發明之申請專利範圍主題的本發明之額外 特徵及優勢。 【實施方式】 91917.doc -13- 1299465 =下描述中’陳述衆多特殊細節以提供本發明之詳盡 二:旦:,熟悉此項技術者易瞭解可不藉由該等特殊細 來订本發明。在其它情況中,可以方塊圖形態展示孰 之電路以使本發明在不必需細節方面並不變得模糊。f; 於大部分而言,由於該等細節不是獲得本發明之完全理解 所必須的且在掌握相關技術之普通技術者所知範圍内,所 2省略關於通信協定内之計時、f料格式之細節及其類 現參照以下圖式’其中不必按規定比例展示所描述之元 件且其中在若干視圖中藉由相同參考數字指定相 元件的。 參照圖1,其說明CPU 410之細節。將C]pu 41〇設計成每 一時脈循環執行多個指令。因此,可在任—時脈循環内在 任何該等執行單元、固定點單元(FXU)114、浮點單元 (FPU)118及載入/儲存單元(lsu)U6中執行多個指令。同樣 地,CPU 410可同時以SMT模式執行來自多執行緒之指令。 程式計數器(PC)134對應於具有待執行之指令的執行緒 0(τ〇)及執行緒“丁”。執行緒選擇器133在丁〇與71之間交替 選擇以將一指令位址耦合至指令提取單元(IFU)108。將指 令位址載入於指令提取位址暫存器(IFAR)丨〇3中。103 自指令快取記憶體(I-CacheWM為每一執行緒交替提取指 令。在指令佇列(IQ)135中為T0緩衝指令且在iq 136中為T1 缓衝指令。將IQ 135及IQ 136耦合至指令調度單元 (IDU)132。在執行緒優先權選擇器137控制下自jq 135及1(^ 91917.doc -14- 1299465 13 6選擇及讀取指令。正常情況下,執行緒優先權選擇器ι37 大體與每一執行緒之程式控制優先權成比例地,自IQ π5 及IQ 136讀取指令。 在IDU 132中之一解碼器(未圖示)内解碼該等指令。接著 才曰令排序器113可藉由一由不同演算法確定之次序來將該 等指令放置群組形式。將該等指令群組轉送至指令發佈佇 列(IIQ)131。指令排序器113以程式次序自兩個執行緒接收 指令,但是可不按程式次序自nQ 131發佈指令或自任一執 行緒發佈指令。通用暫存器(GpR)檔案115及浮點暫存器 (FPR)檔案117由多個執行單元使用且代表系統之程式狀 態。可將該等硬體暫存器稱為”架構"暫存器。當將一指令 放置於-發佈件列中時,重新命名每一架構暫存器。為每 一正被調節之架構暫存器分配一實體暫存器,且一對應查 詢表會識別與架構暫存器相關的實體暫存器。因此在該發 佈佇列中’已重新命名該架構暫存器以使得可能同時存在 架構暫存器之多個複本。只要源運算元有效,此就允許非 循序執行指令。暫存器重新命名單元14Q重新命名且映射該 專暫存器以使得當參考一特殊實體暫存器之所有指令完成 並且該物理暫存器不含有最近的架構狀態時重使 用之實體暫存器。. 在HQm中排列指令以用於在合適的執行单元中執行。 !:指令含有一固定點運算,則可使用任何該等多固定點 早疋(FXU)U4。將所有該等執行單元、FXU114、Fpuu8 及㈣職合至完成單元,該完成單元具有指示哪幾 91917.doc -15- 1299465 個所發佈之指令具有已完成及其它狀態資訊之完成表(未 圖示)。將來自完成單元119之資訊轉送至IFU 108。IDU 132 亦可能將資訊發送至完成單元119。將來自LSU 116之一儲 存運作之資料耦合至資料快取記憶體(D-Cache)102。資料 可儲存於D-Cache中以供近期使用及/或轉送至匯流排介面 單元(BIU)lOl,而該匯流排介面單元經匯流排412將資料發 送至記憶體139。LSU 116可自D-Cache 102載入資料以供執 行單元(例如FXU 114)使用。 在於2000年10月12號申請之美國專利申請案序號第 09/687,078 號題為"Method and System for Dynamically Shared Completion Table Supporting Multiple Threads In A Processing System”中詳細描述在SMT處理器中之一共享群 組完成表(GCT)之運作。該申請案以引用的方式倂入本申請 案中。 圖2為一在一 SMT處理器中之一完成單位200的方塊圖, 其中一 GCT 201耦合至一 IDU 251,而每一時脈循環僅完成 一個指令群組。GCT 201在圖中展示為具有不同輸入項。通 常於一列基礎上寫入該GCT中之輸入項。一列位址206將對 應於一指令群組並且包含微程式碼207、分支指令識別 (Btag)208、載入指令識別(Ltag)209、儲存指令識別 (Stag)210、結束位元211、雜項位元212及例外狀態213。雖 然執行緒識別(TID)214及有效位元215與一列位址206相 關,但是因為其時常成行存取,所以被映射至GCT 201之外 的暫存器中。GCT 201亦具有一個調度寫入埠202及一個或 91917.doc -16- 1299465 多個結束寫入琿(finish write port)203。將讀取琿204|馬合至 一完成單元259。將一個或多個讀取埠205耦合至一刷新陣 列(flush array)(未圖示),其產生一指示哪些指令為響應一 刷新請求而刷新之刷新遮罩。 完成單元200具有用於頭及尾指標管理之邏輯259、Ltag 及Stag管理邏輯、例外處理邏輯、檔案映射器資源管理邏 輯、儲存佇列管理邏輯及分支指令佇列管理邏輯。資源計 算邏輯區塊238與一IDU 251通信。完成單元邏輯259將有效 完成221、完成執行緒222及完成Gtag 223發送至暫存器檔 案映射器224。檔案映射器224經由訊號250與IDU 251通 信。因為完成單元259每一循環完成一個群組,所以在一給 定時脈循環上有效完成22卜完成執行緒222及完成Gtag 223 將對應於一執行緒。完成單元259亦將Gtag 223及完成執行 緒222耦合至GCT 201並接收完成讀取資料218。 雖然可不按程式次序調度指令,但是其必須按程式次序 完成。未完成之指令可能不釋放共享資源並且因此可能導 致額外指令之減慢調度,從而使系統運作變慢。若每一循 環僅可完成一個群組,則在SMT運作模式中之各種運作將 變慢。例如,若載入/儲存單元(例如116)具有指示可發送哪 些儲存至記憶體之資料,則其能更迅速釋放儲存重排序佇 列(SRQ)輸入項,從而為儲存指令發佈鋪路。若每一時脈循 環僅可能完成一個群組,則其它運作釋放輸入項(例如載入 錯誤佇列(LMQ)輸入項、分支指令佇列(BIQ)輸入項)可能同 樣限制系統效能。當指令完成時,釋放暫存器重新命名。 91917.doc -17- 1299465 :通用暫存器(GPR)、浮點暫存器(FPR)、載入暫存器(LR)、 控,暫存器(CTR)及儲存暫存器(SR) 一起使用重新命名暫 存為。如果該等重新命名暫存器保持等待指令完成,則其 它2度指令所需之資源可能無法獲得。在指令執行過程= 可此备生例外情況。藉由執行單元將指令之例外狀態發送 至忒GCT。越早發現例外狀態,例外處理邏輯就能越早解 決該問題並改良待執行之指令流動。 圖3為SMT處理器410中之完成單元119的方塊圖,而一 GCT 301耦合至IDU 132,其中根據本發明之實施例每一時 脈循%元成兩個指令群組(每一執行緒一個)。GCT 3〇1在圖 中展示為具有與圖2中之GCT 2 01類似的各種輸入項。通常 於一列基礎上寫入GCT中之輸入項。一列位址3〇6將對應於 才曰々群組並且包含微程式碼3〇7、分支指令識別 (Btag)308、載入指令識別(Ltag)3〇9、儲存指令識別 (Stag)310、結束位元311、雜項位元312及例外狀態313。雖 然執行緒識別(TID)3 14及有效位元3 15與一列位址3〇6相關 聯,但是因為其時常成行存取,所以被映射至該GCT 3〇1 之外的暫存器中。GCT 301亦具有一個調度寫入埠3〇2及一 個或多個結束寫入埠3〇3。根據本發明之實施例,Gct 301 具有專屬於丁0之讀取埠304及專屬於T1之讀取埠354。由於 讀取埠304及3 05專屬於每一執行緒,所以完成單元邏輯359 可能同時將用於T0之訊號323及用於T1之訊號318耦合至 GCT 301。因此’可將兩個執行緒(323及318中)之完成執行 緒及完成Gtag耦合至GCT 301,並且兩個執行緒可能同時接 91917.doc -18- 1299465 收其完成讀取資料(訊號3 18)。 完成單元邏輯359亦同時將用於TO之訊號321及用於T1之 訊號322耦合至暫存器檔案映射器324。同時經由訊號350 將該檔案映射器324耦合至IDU 132。訊號321包含:用於執 行緒丁0之 Comp_Valid TO、Comp—Thread TO及 Comp—Gtag TO,並且訊號322包含:用於執行緒T1之Comp_Valid T1、 Comp_Thread T1 及 Comp_Gtag T1。資源計算邏輯區塊 338 被修改成同時為TO及Τ1兩者處理資源計算,以使得可利用 訊號33 7向IDU 132通知釋放之資源。 GCT鏈接陣列(link array)330具有耦合至完成單元邏輯 3 5 9之雙寫入埠(用於T0之WP 327及WP 331),以使允許完成 單元119按執行緒同時將後向鏈接更新為NULL條件。完成 單元邏輯359亦具有用於TO之頭(H)及尾(T)指標管理邏輯 336及用於T1之頭(H)及尾(T)指標管理邏輯334。其允許每 一執行緒在完成時間同時橫越GCT 301。為支援雙Η/T指標 管理邏輯33 6及334,GCT鏈接陣列330具有臨近完成之雙讀 取埠(用於T0之RP 332及用於T1之RP 333),以在資料335中 為每一執行緒耦合下一指令群組。雙Η/T指標管理邏輯334 及336連同RP 332及RP 333 —起允許按執行緒同時認可每 一執行緒之重新命名結果暫存器以及同時更新未完成處理 之載入及儲存標記用法。 所描述之多個雙埠允許完成單元119耦合至IDU 132,以 在每一循ί哀完成兩個指令群組。因為兩個指令群組可能在 一個循環中完成,所以更迅速通知LSU 11 6可發送哪些資料 91917.doc -19- 1299465 儲存區至記憶體,因此更迅速地釋放在LSUU6中的srq輸 入項。同樣,更迅速地釋放LSU116中之LMQ輸入項、lDu 132中之一分支指令單元(未圖示)中的biq輸入項及暫存器 ’斤中名140中之暫存益重新命名輸入項。更快速完成指令 亦導致可更迅速地偵側例外情況及狀態。 圖5為在本發明之實施例中使用之方法步驟的流程圖。在 步驟5〇1中,SMT處理器41〇倂入完成單元]19中之動態共享 之GCT3〇1,該⑽加具有用於第一執行緒之第一讀取埠 及用於第—執行緒之第二讀取埠。在步彰㈣,將一完成 單兀鋒輯359耦合至一具有第一讀取埠3〇4及第二讀取埠 351 之該⑽301。在步驟503中,將一 GCT鏈接陣列33〇中 之剛向鏈接陣列麵合至完成單元邏輯,該前向鏈接陣列具 =用:第-執行緒之第三讀取蟑332及用於第二執行緒 7四σ貝取埠333。在步驟5〇4中,將一 GC丁鏈接陣列咖中 之後向鍵接陣列叙合至完成單元邏輯359,該後向鏈接陣列 具有一用於第一執杆缺馀 — 者之弟一寫入埠327及一用於第二勃 I::::寫入埠331。在步驟5°5中,將用於第-執行緒 第〜^尾指標管理邏輯336耗合至完成單元邏輯359及 2項取埠332。同樣,將用於第二執行緒之第二頭及尾指 祐&理邏輯334耦合至完成覃 、 曰 333。在步驟506中,_;^早:邏輯359及第四讀取璋 越⑽3〇1。在步㈣7^曰々群組完成’執行緒即同時橫 -及檔案暫存器映射:路^ 每—執行緒之_=^314;_在步驟5G8中同時認可用於 名、、、σ果暫存器,且在步驟509中同時更 91917.doc -20· 1299465 新用於每一執行緒之载入及儲存指令使用標記。 在圖4中描繪一用於實行本發明之代表硬體環境,其說明 根據本發明之一工作站的典型硬體組態,其具有帶有同時 多執行緒(SMT)處理之處理單元(cpuyiO及經由系統匯流 排4 12互連之許多其他單元。圖4中所示之工作站包括··隨 機存取記憶體(RAM)414 ;唯讀記憶體(r〇m)416 ;及用於將 諸如磁碟單元420及磁帶驅動器44〇之外圍設備連接至匯流 排412之輸入/輸出(1/〇)配接器418,•用於將鍵盤“斗、滑鼠 426、揚聲器428、麥克風432及/或諸如觸控螢幕設備(未圖 不)之其它使用者介面設備連接至匯流排412之使用者介面 配接器422;用於將工作站連接至資料處理網路之通信配接 态434,及用於將匯流排412連接至顯示設備之顯示配接 器 436 〇 雖然已詳細描述本發明及其優勢,但是應理解··在不偏 離由附加申請專利範圍界定之本發明的精神及範圍的情況 下,可在本文中進行各種變化、替換及變更。 【圖式簡單說明】 元 圖1為根據本發明之實施例 之方塊圖; 之SMT處理器中的功能單 圖2為用於在一 SMT處理器中 ^ , 母柃脈循裱完成單個指令 群組的電路之方塊圖; 圖二為用於在一 SMT處理器中每時脈循環完成兩個指令 群組(母—執行緒完成-個指令群組)的電路之方塊圖; 圖4為實行本發明之代表硬體環境,·及 91917.doc -21· 1299465 圖5為根據本發明之實施例的方法步驟之流程圖。 【主要元件符號說明】 101 匯流排介面單元(BIU) 102 資料快取記憶體(D-Cache) 103 指令提取位址暫存器(IFAR) 104 指令快取記憶體(I-Cache) 108 指令提取單元(IFU) 113 指令排序器 114 固定點單元(FXU) 115 通用暫存器(GPR)檔案 116 載入/儲存單元(LSU) 117 浮點暫存器(FPR)檔案 118 浮點單元(FPU) 119 完成單元 131 指令發佈佇列(IIQ) 132 指令調度單位(IDU) 133 執行緒選擇器 134 程式計數器(PC) 135 指令佇列(IQ) 136 指令佇列(IQ) 137 執行緒優先權選擇器 139 記憶體 140 暫存器重新命名單元 200 完成單元 91917.doc -22- 群組完成表(GCT) 調度寫入埠 結束寫入埠 讀取埠 讀取埠 列位址 微程式碼 分支指令識別(Btag) 載入指令識別(Ltag) 儲存指令識別(Stag) 結束位元 雜項位元 例外狀態 執行緒識別(TID) 有效位元 刷新讀取位址 完成讀取資料 有效完成 完成執行緒 完成Gtag
暫存器檔案映射器 後向鏈接WP 其它WP 其它RP -23- GCT鏈接陣列 資源計算邏輯區塊 訊號
指令調度單元(IDU) 完成單元邏輯 GCT 調度寫入埠 結束寫入埠 讀取埠 讀取埠 列位址 微程式碼 分支指令識別(B-tag) 載入指令識別(L-tag) 儲存指令識別(S-tag) 結束位元 雜項位元 例外狀態 執行緒識別(TID) 有效位元 刷新讀取位址 訊號 訊號 訊號 -24- 訊號. 暫存器檔案映射器/暫存器檔案映射電路 寫入淳(WP) 其它WP 其它RP GCT鏈接陣列 寫入埠(WP) 讀取埠(RP) 讀取埠(RP) 頭/尾指標管理邏輯 資料 頭/尾指標管理邏輯 訊號 資源計算邏輯區塊 訊號 第二讀取埠 完成單位邏輯 中央處理單元(CPU)/ SMT處理器 匯流排 隨機存取記憶體(RAM) 唯獨記憶體(ROM) 輸入/輸出配接器 磁碟單元 使用者介面配接器 -25- 1299465 424 426 428 432 434 436 438 440 451 鍵盤 滑鼠 揚聲器 麥克風 通信配接器 顯示配接器 顯示設備 磁帶驅動器 網路 9l917.doc -26-

Claims (1)

  1. 年> 月>、修(爽)正本 I299f 號專利申請案 中文申請專利範圍替換本(97年2月) 十、申請專利範圍: 種同步多執行緒(SMT)處理器,其包含: =動態共享之群組完成表(GCT),其具備一用於一第_ 執仃、、者之第-讀取埠及—用於—第二執行緒之第二 埠;及 一完成單元,其具備耦合至該第一讀取埠及該第二讀 取埠之完成單元邏輯,從而一旦指令群組完成即同時: 新該GCT。 月求員1之處理器’其進一步包含一前向鏈接陣列,其 具:-用於耗合至該完成單元邏輯之該第一執行緒的第 二項取埠及—用於麵合至該完成單元邏輯之該第 緒的第四讀取埠。 3·如請求項2之處理器,其進一步包含一後向鏈接陣列,其 :備-用於耦合至該完成單元邏輯之該第一執行緒的第 寫入埠及用於耦合至該完成單元邏輯之該 緒的第二寫入埠。 轨订 4·如請求項2之處理器,其進一步包含: 用於該第一執行緒之第一頭及尾指標管理邏輯,其耦 合至該完成單元邏輯且耦合至該第三讀取埠;及^ 一用於該第二執行緒之第二頭及尾指標管理邏輯,其耦 合至錢成單元邏輯絲合至該第四讀取埠,從而一旦 才曰令群組完成每一執行緒即同時橫越該GCT。 5·如請求項4之處理器,其進一步包含: 資源计^逯輯,其耦合至該完成單元邏輯、一指令調 91917-970220.doc 1299465 度單元及多個暫存器標案映射器電路; 在該SMT處理器中同時認可重新命名結果暫存器之電 路;及 在該SMT處理器中同時更新載入及儲存指令識別器 (Ltag及Stag)用法之電路。 6. 一種資料處理系統,其包含: 一中央處理單元(CPU); 一隨機存取記憶體(RAM); 一輸入/輸出(I/O)配接器; 一通信配接器; 一耦合該CPU、該RAM、該I/O配接器及該通信配接器 之匯流排; 牡眯中之同步多 一在該SMT處理器中之動態共享之群組完成$ (GCT)’其具備—用於—第—執行緒之第—讀取璋及一月 於一第二執行緒之第二讀取埠;及 成單凡,其具備耦合至該第一讀取埠及該第二驾 取埠之完成單元邏輯,從 更新該奶。 -❹Μ即^ 7·如請求項6之資料理 列,苴 系、、先其進一步包含一前向鏈接呻 緒的第i讀合至該完成單元邏輯之該第一執行 二執行緒的第四“用於耦合至該完成單元邏輯之該第 W弟四讀取埠。 如明求項7之資料理, 糸、、先其進一步包含一後向鏈接陣 91917-970220.doc 1299465 /、丹備一用於耦合 緒的第-寫入埠及一用 干…㉝科<孩第一執行 於耦合至該完成單元邏輯之該第 Λ 9 :行緒的第二寫入埠, 长員8之資料處理系統,其進一步包含·· 用於该第一執行緒之第一頭及尾指標管理邏 合至句r $丄、_禺 W凡成早元邏輯且耦合至該第三讀取埠;及 用於該第二執行緒之第二頭及尾指標管理邏 合至該6 士、α口 —、ρ ,、輕 凡成早7L邏輯且耦合至該第四讀取埠, 指令群組6^ & 攸而一旦 〒、、且Α成母一執行緒即同時橫越該GCT。 如明求項9之資料處理系統,其進一步包含: 貧源計算邏輯,其耦合至該完成單元邏 — 疮时- 和令調 度早疋及一指令排序器單元; 在該SMT處理器中同時認可重新命名結果暫存器 路;及 °《電 在該SMT處理器中同時更新載入及儲存指令標記 之電路。 法 U· 一種用於改良一同步多執行緒(SMT)處理器效能的方 法,該同步多執行緒(SMT)處理器具有一耦合至一^成單 元的動態共享之群組完成表(GCT),該方法包含2下= 為該動態共旱之GCT提供一用於一第一執行緒之第一 讀取埠及一用於一第二執行緒之第二讀取埠;及 將該完成單元中之完成單元邏輯耦合至該第一讀取埠 及該第二讀取埠,從而一旦指令群組完成即同時更新該 91917-970220.doc 1299465 UCT 12·如請求項U之方法,其 ^ 步包含以下牛聰· 將一前向鏈接陣列耦合至該* —少驟· 接陣列具備一用於該第一勃/凡、早元邏輯,該前向鏈 將該前向鏈接陣^合❹…弟^頃取璋;及 接陣列具備-用於該第二執::成|元邏輯’該前向鏈 13·如請求項12之方法,其 °阜。 ^ 步包含以下步驟· 將一後向鏈接陣列耦合至該& —、” 接陣列具備一用於該第一執行緒之:一::埠;:向鏈 將該後向鏈接陣列耦合至誃& / , ii FJ: 9 m m 凡成早元邏輯,該後向鏈 接陣列具備一用於該第二執行緒之第二寫入璋。 14·如請求項13之方法’其進-步包含以下步驟: 將用於該第一執行緒之篦一 ^ ^ 弟頭及尾指標管理邏輯耦合 至该元成單元邏輯及該第三讀取埠· 將用於該第二執行緒之第二頭及尾指標管理邏輯輛合 至該完成單元邏輯及該第四讀取埠;及 一旦指令群組完成執行緒即同時橫越該GCT。 15.如請求項14之方法’其進—步包含以下步驟: 。。將資源計算_合至該完成單元邏輯、一指令調度 單元及一指令排序器單元; 在該S Μ T處理H中同時認可用於每_執行緒之重新命 名結果暫存器;及 在該SMT處理ϋ中同時更新用於每—執行緒之載入及 儲存指令標記用法。 91917-970220.doc
TW093110731A 2003-04-21 2004-04-16 Simultaneous multithread processor and method therefor TWI299465B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/422,654 US7472258B2 (en) 2003-04-21 2003-04-21 Dynamically shared group completion table between multiple threads

Publications (2)

Publication Number Publication Date
TW200516492A TW200516492A (en) 2005-05-16
TWI299465B true TWI299465B (en) 2008-08-01

Family

ID=33159423

Family Applications (1)

Application Number Title Priority Date Filing Date
TW093110731A TWI299465B (en) 2003-04-21 2004-04-16 Simultaneous multithread processor and method therefor

Country Status (4)

Country Link
US (1) US7472258B2 (zh)
JP (1) JP3927546B2 (zh)
CN (1) CN1304943C (zh)
TW (1) TWI299465B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI624791B (zh) * 2012-10-12 2018-05-21 輝達公司 用於在多緒處理單元中改善性能之技術

Families Citing this family (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4276201B2 (ja) * 2005-03-31 2009-06-10 富士通株式会社 Smtプロセッサ用課金処理装置,課金処理方法,および課金処理プログラム
US20070204139A1 (en) * 2006-02-28 2007-08-30 Mips Technologies, Inc. Compact linked-list-based multi-threaded instruction graduation buffer
US9069547B2 (en) 2006-09-22 2015-06-30 Intel Corporation Instruction and logic for processing text strings
WO2008077283A1 (en) * 2006-12-27 2008-07-03 Intel Corporation Pointer renaming in workqueuing execution model
JP2008191856A (ja) * 2007-02-02 2008-08-21 Nec Computertechno Ltd 情報処理システム
KR101077514B1 (ko) * 2007-06-19 2011-10-28 후지쯔 가부시끼가이샤 캐시 제어장치 및 제어방법
WO2008155804A1 (ja) 2007-06-20 2008-12-24 Fujitsu Limited 同時マルチスレッドの命令完了制御装置
JP5136553B2 (ja) * 2007-06-20 2013-02-06 富士通株式会社 演算処理装置及び演算処理装置の制御方法
US8281110B2 (en) * 2009-07-15 2012-10-02 Via Technologies, Inc. Out-of-order microprocessor with separate branch information circular queue table tagged by branch instructions in reorder buffer to reduce unnecessary space in buffer
GB201001621D0 (en) * 2010-02-01 2010-03-17 Univ Catholique Louvain A tile-based processor architecture model for high efficiency embedded homogenous multicore platforms
TWI486966B (zh) * 2010-02-04 2015-06-01 Phison Electronics Corp 快閃記憶體儲存裝置、其控制器與寫入管理方法
US8521998B2 (en) 2010-06-04 2013-08-27 International Business Machines Corporation Instruction tracking system for processors
US9207995B2 (en) 2010-11-03 2015-12-08 International Business Machines Corporation Mechanism to speed-up multithreaded execution by register file write port reallocation
US9921873B2 (en) 2012-01-31 2018-03-20 Nvidia Corporation Controlling work distribution for processing tasks
US8825915B2 (en) 2012-03-12 2014-09-02 International Business Machines Corporation Input/output port rotation in a storage area network device
KR102177871B1 (ko) * 2013-12-20 2020-11-12 삼성전자주식회사 멀티 쓰레딩을 지원하기 위한 연산 유닛, 이를 포함하는 프로세서 및 프로세서의 동작 방법
US9218185B2 (en) * 2014-03-27 2015-12-22 International Business Machines Corporation Multithreading capability information retrieval
CN105224416B (zh) * 2014-05-28 2018-08-21 联发科技(新加坡)私人有限公司 修复方法及相关电子装置
US9672045B2 (en) * 2014-09-30 2017-06-06 International Business Machines Corporation Checkpoints for a simultaneous multithreading processor
US20180239532A1 (en) 2017-02-23 2018-08-23 Western Digital Technologies, Inc. Techniques for performing a non-blocking control sync operation
US10599431B2 (en) 2017-07-17 2020-03-24 International Business Machines Corporation Managing backend resources via frontend steering or stalls
US10572264B2 (en) * 2017-11-30 2020-02-25 International Business Machines Corporation Completing coalesced global completion table entries in an out-of-order processor
US10802829B2 (en) 2017-11-30 2020-10-13 International Business Machines Corporation Scalable dependency matrix with wake-up columns for long latency instructions in an out-of-order processor
US10929140B2 (en) 2017-11-30 2021-02-23 International Business Machines Corporation Scalable dependency matrix with a single summary bit in an out-of-order processor
US10901744B2 (en) 2017-11-30 2021-01-26 International Business Machines Corporation Buffered instruction dispatching to an issue queue
US10942747B2 (en) 2017-11-30 2021-03-09 International Business Machines Corporation Head and tail pointer manipulation in a first-in-first-out issue queue
US10564976B2 (en) 2017-11-30 2020-02-18 International Business Machines Corporation Scalable dependency matrix with multiple summary bits in an out-of-order processor
US10564979B2 (en) * 2017-11-30 2020-02-18 International Business Machines Corporation Coalescing global completion table entries in an out-of-order processor
US10922087B2 (en) 2017-11-30 2021-02-16 International Business Machines Corporation Block based allocation and deallocation of issue queue entries
US10884753B2 (en) 2017-11-30 2021-01-05 International Business Machines Corporation Issue queue with dynamic shifting between ports
EP3776239A1 (en) * 2018-03-31 2021-02-17 Micron Technology, Inc. Loop execution control for a multi-threaded, self-scheduling reconfigurable computing fabric using a reenter queue
US10725786B2 (en) 2018-08-23 2020-07-28 International Business Machines Corporation Completion mechanism for a microprocessor instruction completion table
CN109831434B (zh) * 2019-01-31 2021-03-02 西安微电子技术研究所 一种基于自定义交换策略的多协议通信交换控制器
US10977041B2 (en) 2019-02-27 2021-04-13 International Business Machines Corporation Offset-based mechanism for storage in global completion tables
US11163581B2 (en) * 2019-10-21 2021-11-02 Arm Limited Online instruction tagging
CN111708622B (zh) * 2020-05-28 2022-06-10 山东云海国创云计算装备产业创新中心有限公司 一种指令组调度方法、架构、设备及存储介质
CN112214243B (zh) * 2020-10-21 2022-05-27 上海壁仞智能科技有限公司 配置向量运算系统中的协作线程束的装置和方法
CN112230901B (zh) * 2020-10-29 2023-06-20 厦门市易联众易惠科技有限公司 一种基于异步io模型的网络编程框架系统及方法
US11816349B2 (en) 2021-11-03 2023-11-14 Western Digital Technologies, Inc. Reduce command latency using block pre-erase
CN115269008B (zh) * 2022-09-29 2023-02-28 苏州浪潮智能科技有限公司 一种数据处理方法、装置、介质及电子设备

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0644089A (ja) 1992-05-18 1994-02-18 Matsushita Electric Ind Co Ltd 情報処理装置
JPH06332700A (ja) 1993-05-25 1994-12-02 Matsushita Electric Ind Co Ltd 情報処理装置
US5574935A (en) * 1993-12-29 1996-11-12 Intel Corporation Superscalar processor with a multi-port reorder buffer
US5724565A (en) 1995-02-03 1998-03-03 International Business Machines Corporation Method and system for processing first and second sets of instructions by first and second types of processing systems
US5841999A (en) * 1996-04-17 1998-11-24 International Business Machines Corporation Information handling system having a register remap structure using a content addressable table
US6219728B1 (en) * 1996-04-22 2001-04-17 Nortel Networks Limited Method and apparatus for allocating shared memory resources among a plurality of queues each having a threshold value therefor
JP2882475B2 (ja) * 1996-07-12 1999-04-12 日本電気株式会社 スレッド実行方法
US5922057A (en) * 1997-01-10 1999-07-13 Lsi Logic Corporation Method for multiprocessor system of controlling a dynamically expandable shared queue in which ownership of a queue entry by a processor is indicated by a semaphore
US6772324B2 (en) * 1997-12-17 2004-08-03 Intel Corporation Processor having multiple program counters and trace buffers outside an execution pipeline
US6134645A (en) * 1998-06-01 2000-10-17 International Business Machines Corporation Instruction completion logic distributed among execution units for improving completion efficiency
JP2000047887A (ja) 1998-07-30 2000-02-18 Toshiba Corp 投機的マルチスレッド処理方法および投機的マルチスレッド処理装置
JP3604029B2 (ja) 1999-01-12 2004-12-22 日本電気株式会社 マルチスレッドプロセッサ
US6594755B1 (en) * 2000-01-04 2003-07-15 National Semiconductor Corporation System and method for interleaved execution of multiple independent threads
US6854075B2 (en) * 2000-04-19 2005-02-08 Hewlett-Packard Development Company, L.P. Simultaneous and redundantly threaded processor store instruction comparator
US6681345B1 (en) 2000-08-15 2004-01-20 International Business Machines Corporation Field protection against thread loss in a multithreaded computer processor
US6931639B1 (en) * 2000-08-24 2005-08-16 International Business Machines Corporation Method for implementing a variable-partitioned queue for simultaneous multithreaded processors

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI624791B (zh) * 2012-10-12 2018-05-21 輝達公司 用於在多緒處理單元中改善性能之技術
US10095526B2 (en) 2012-10-12 2018-10-09 Nvidia Corporation Technique for improving performance in multi-threaded processing units

Also Published As

Publication number Publication date
JP2004326738A (ja) 2004-11-18
JP3927546B2 (ja) 2007-06-13
US20040210743A1 (en) 2004-10-21
TW200516492A (en) 2005-05-16
CN1304943C (zh) 2007-03-14
US7472258B2 (en) 2008-12-30
CN1542607A (zh) 2004-11-03

Similar Documents

Publication Publication Date Title
TWI299465B (en) Simultaneous multithread processor and method therefor
US7469407B2 (en) Method for resource balancing using dispatch flush in a simultaneous multithread processor
Kessler The alpha 21264 microprocessor
US10061588B2 (en) Tracking operand liveness information in a computer system and performing function based on the liveness information
US5524263A (en) Method and apparatus for partial and full stall handling in allocation
US7254697B2 (en) Method and apparatus for dynamic modification of microprocessor instruction group at dispatch
US7711929B2 (en) Method and system for tracking instruction dependency in an out-of-order processor
US7093106B2 (en) Register rename array with individual thread bits set upon allocation and cleared upon instruction completion
US7363625B2 (en) Method for changing a thread priority in a simultaneous multithread processor
US7213135B2 (en) Method using a dispatch flush in a simultaneous multithread processor to resolve exception conditions
US20140047219A1 (en) Managing A Register Cache Based on an Architected Computer Instruction Set having Operand Last-User Information
US7000233B2 (en) Simultaneous multithread processor with result data delay path to adjust pipeline length for input to respective thread
US20100293347A1 (en) Load/store ordering in a threaded out-of-order processor
US20080229077A1 (en) Computer processing system employing an instruction reorder buffer
US7194603B2 (en) SMT flush arbitration
US6981128B2 (en) Atomic quad word storage in a simultaneous multithreaded system
US6324640B1 (en) System and method for dispatching groups of instructions using pipelined register renaming
JP2001209535A (ja) プロセッサの命令スケジューリング装置
US6907518B1 (en) Pipelined, superscalar floating point unit having out-of-order execution capability and processor employing the same
US6240507B1 (en) Mechanism for multiple register renaming and method therefor
Chiu et al. Hyperscalar: A novel dynamically reconfigurable multi-core architecture
US12112172B2 (en) Vector coprocessor with time counter for statically dispatching instructions
Dutta-Roy Instructional Level Parallelism
Kang et al. VLSI implementation of multiprocessor system
Kessler THE ALPHA 21264 MICR0PR00ESS0R

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees