TWI291132B - A method for managing power in a simultaneous multithread processor, a processor using the method and a related system - Google Patents

A method for managing power in a simultaneous multithread processor, a processor using the method and a related system Download PDF

Info

Publication number
TWI291132B
TWI291132B TW093110993A TW93110993A TWI291132B TW I291132 B TWI291132 B TW I291132B TW 093110993 A TW093110993 A TW 093110993A TW 93110993 A TW93110993 A TW 93110993A TW I291132 B TWI291132 B TW I291132B
Authority
TW
Taiwan
Prior art keywords
thread
instruction
time
power mode
during
Prior art date
Application number
TW093110993A
Other languages
English (en)
Other versions
TW200516493A (en
Inventor
Ronald N Kalla
Minh Michelle Q Pham
John W Ward Iii
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 TW200516493A publication Critical patent/TW200516493A/zh
Application granted granted Critical
Publication of TWI291132B publication Critical patent/TWI291132B/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
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • 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/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/3867Concurrent instruction execution, e.g. pipeline or look ahead using instruction pipelines
    • G06F9/3869Implementation aspects, e.g. pipeline latches; pipeline synchronisation and clocking

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)
  • Power Sources (AREA)

Description

1291132 九、發明說明: 【發明所屬之技術領域】 用於一具有同步多線程(SMT)及單 的方法與電路。 本發明大體上係關於 線程作業模式之處理器 【先前技術】 長期以來,逵成ρ4 、 咬风更夕效忐之秘訣係每個循環執行更多的 〜或者通%為指令級平行處理能力(Μ),或者減少指 π之寺待時間。為在每個循環中執行更多的指+,不得不 2更多的功能單元(例如,整數、浮點、載人/儲存單元, 寺寺)為了此更一致地執行多重指令,可使用被稱為非循 序處理(OOP)的處理範例, ,. J丘爭貫上,此類型之處理已成為 主流。 〇价之出現係因為許多指令有賴於其它指令之結果,其 中。亥等其匕心令已經被送入管線。為幫助緩解此問題,儲 存了大量的指令以允許立即執行。如此做的原因係為了尋 找更夕的被此互不依賴之指令。將用於儲存即將立即執行 之指令的儲存區域稱為重新排序緩衝器。在大多數具有一 t此夠儲存多達126個指令之系統的現代化商用電腦架構 I ’重㈣序緩衝11之大小已經增加。增加重新排序緩衝 、口口之大小的理由很簡| ··就執行(可能排除複雜結構及鍵接 清單之陣列)而言,空間相關的程式碼亦趨向於時間相關。 隹的問題在方、·此等指令亦趨向依賴於先前指令之結 果。隨著CPU之所需程式碼的量不斷增加,當前唯一能尋 找更夕獨立各7的方法為增加重新排序緩衝器的大小。然 92244.doc 1291132 ’吏用此項技術卻在增加之效能率方面已達成了相當令 亡印象:刻的回落且事實上,已展示出了呈遞減性之收 :::前正使愈來愈多的電晶體來達成相同的效能增加 '口人可猎由多線程(多處理)(但並不藉由作為主要約束 =職流排)來集t於指令或線程級下之一更為大範圍 工提取效月匕,而非專心地集中於單處理器1LP提取。 在單個晶片上放置更多電晶體的能力已允許晶片上多重 外^ (CMP)。為利用潛在的效能增加,該架構不能將此等多 “理器用作單處理器而是必須使用依賴於以平行方式來 :仃私令的多重處理。此要求亦能寫入在⑽上執行的程 =便能以平行的方式來執行,而非以純粹的串行或連續 式來執仃。假定寫入了應用程式以便能以平行的方 (Λ線Γ)來執行,則要使以此方式所寫人的程式能更快地二 :一 ’、所添加之處理器的數目成比例會存在固有的困難。
晶粒上來使用多個核心之一般概念為:藉由同時執 订兩個線程來提取更多的效能。如此,兩個C =-直:在進行有用工作的功能單元之總數具有較二 數L二一處理盗具有更多的功能單元’則一較低百分 U早70可在任—_進行有料H晶片上多重 =器降低了每個處理器之功能單元的數目,並將獨立的 t程)分配給每個處理器。如此,可在所結合的兩個往 矛,上來達成—較高的處理能力。―個可匹敵的單處理 比⑽晶片更快地穿過—個線程(或任務其原因在於,雖 然存在浪費的功能單元,但是亦存在在處理器同時計 92244.doc 1291132 多資料片段並使用所有可獲得之功能單元時所產生的活動 之’’猝發(burst)”。多重處理器背後的一個理念為阻止個別處 理為經歷該等猝發活動時間且取而代之的是,使每一處理 裔使用其可更能經常地獲得之資源且因此能有效地來使 用。將對在一個時脈循環中之一些功能單元的不使用稱為,, 水平浪費’’,此係CMP需設法避免的。 然而’ CMP存在若干問題。傳統的cmp晶片會犧牲單線 程效能以加速完成兩個或兩個以上之線程。如此,對一般 使用而言,CMP晶片之彈性將變得相對較低,因為若只有 一個線程,則該等分配資源中之的整整一半處於空閒狀態 並且元全無用(正如在一傳統的多重處理器(Mp)系統中,在 一系統中添加另一使用單線程程式之處理器係無用的)。一 種使CMP中之功%單元變得更有效的途徑係使用大範圍資 料點型多線程(course-grained叩;⑽了)。藉由 為固疋數目之時脈循環執行一線程,CMT能改良相對於 功能單元之使用的效率效率之改良係由於,,垂直浪費,,之降 低所致。垂直浪費描述了其中由於一線程停止(stai;ing)而 導致無一功能單元在進行工作之情形。 *切換至另-線程時,處理器保存了彼線程之狀態(; 即,其保存了哪里的指令位於管線、哪些單元正被使 且切換至另一個。其可藉由使用多個暫存器組來達成上: 目的。如此做之優勢係歸因於以下事實:通常一線程可$ =其遭遇了-快取記憶體未t◎完了用以執行的獨立名 …運行了很長的時間。CMT處理器可以此方式 92244.doc 1291132 多達其可支援之數目的不同的線程。因此,其可僅儲存與 用於此等線程中之每一線程的實體位置一樣多的線程以儲 存其執行之狀態。因此,需要一N路之0]^丁處理器具有能儲 存N個線程狀態的能力。 此概念之一變化為執行一線程直至其已經歷了一快取記 憶體未中(通常為一L2(二階)快取記憶體未中),此時,系統 將切換至另一線程。此具有之優勢為簡化了藉由一處理界 來旋轉該等線程所需的邏輯,因為一停止先前線程,其2 會簡單地切換至另一線程。接著緩解了等待將—所請求之 區塊傳送回快取記憶體中之損失。此與一些處理器所使用 之未命中快取方案下的命中(或多重未命中下的命中)類 似,但其又不同,因為其對線程而非對指令進行操作。相 較於CMP,CMT之優勢在於:CMT不會犧牲單線程之效能, 且具有較少的硬體複製(較少之用來平分以使得兩個處理 益’’相當’’於一可比較之CMT的硬體)。
、,將種更具有杈略性的多線程技術的途徑稱為小範圍資 料點型多線程(fine-grained multithreading ; FMT)。與 CMT 類似的是,FMT的基礎係快速地在線程之間進行切換。然 而,與CMT不同的是,觀點為切換每個循環。雖然cMT及 兩者事實上皆的確減慢完成一線程,但是FM^卻加速 完成所有正在進行工作之線程,且其通常為最重要的總處 理能力。 某種程度上,CMP可移除其自身中及其自身旁邊的浪 費。CMT及FMT可移除—些(或者全部)之垂直浪費。然而, 92244.doc -10- 1291132 可使用包含一先進形式之多線程的架構(稱為同步多線程 (SMT))以減少水平浪費與垂直浪費兩者。SMT之主要目標 係具有能在任何給定時間下及在任何給定功能單元中運行 來自力不同線程之指令的能力。藉由通過線程來進行旋轉, SMT架構的作用猶如麗處理器’ ^藉由同時執行來自不 同線程之指令,SMT架構的作用猶如CMp。由於此,其允 許建築師將核心設計得更寬一些,而不用擔心會使回落逐 漸減J。對於SMT而言,達成比FMT高的效率係合理的, 因為其具有能在不同線程間共享"未使用"之功能單元的能 力;如此,SMT達成了 CMP機器之效率。然而,與CMp系 統不同的是,SMT系統使得為單線程效能所作的犧牲(將在 後文令對微小犧牲作討論)很小甚至沒有。對此,理由报巧 單處理器之大部分在運行—單線程時保持心 二閒狀悲且CMP晶片上之更多的處理器使得此問題變得更 為顯著,隨處理器可使所有功能單元專用於該單線程。 儘官此明顯地沒有比能夠運行多線程來得有價值,但是在 單線程與多線程環境之間達到平衡的能力係非常有用的特 性。此意味著若線程級平行處理能力(TLp)存在則咖處理 盗可對其加以利用且若不存在線程級平行處理能力 (TLP),則讀處理器將全部注意力轉向指令級平行處理能 力(ILP) 月匕 為了支援多線程,SMT處理器需要比傳統之超標量處理 器更多的暫存卜總體目標係為每—所支援之線程提 當於能提供給一單處理哭的軔六抑 阳的暫存器。對於一傳統的精簡指 92244.doc 1291132 令集電腦(RISC)之晶片而+ f ^ ,χτ . 〇,此0日含32乘以Ν個暫存哭(豆 中Ν為SMT處理器可在一循产 °口(,、 衣中此處理的線程之數目)加上 所萬之任何重新命义勒左^ 叫‘ 盗。就4路SMT處理器之RISC處理 斋而言,此將意指128個暫存器加上 重新命名暫存器。 切*之〇多少數目的 :二广模型係習知之非猶序處理器的直接擴展。隨 ==能力的增長,無意中發現了對指令發出寬度具 案大Π’並且其應相應地增加。由於上述之暫存器楷 以、:、的增加’因此SMT管線之長度可藉由兩個階段而得 “口(-個階段為選擇暫存器組,且一個階段為進行一讀 或者‘寫入過程)’以使得不會減慢時脈猶環之長声。暫 =讀取及暫存器寫入階段兩者因此皆被分解為兩㈣線 為了不讓任-線程支配管線,應努力保證其它線程取得 :執行:間及資源中之現實的一部分。當功能單元要求得 到工=時’提取機制將為彼等具有最少之已經存在於管線 中的私令之線程提供一較高的優先順序。當然,若其它線 '、’、事了做,則更多來自線程的指令正已經支配著管線y S—Μτ正忙於共享任何可能的東西。然而,在一些情況下, :會擾亂傳統的資料組織以及指令流。分支預測單元在共 予蚪效率會變得較低,因為其不得不藉由更多的指令來追 蹤更夕的線程且將因此會在給定一準確預測下變得效率更 低。此意指由於差錯預測(miss predicti〇n)致使需要更經常 地對管線進行清洗,但是運行多線程之能力足以彌補此不 92244.doc -12- 1291132 足。 由於SMT架構所使用之f線較長(藉由兩個階段),致使對 此差錯預報的懲罰較大里 平乂入具中SMT架構所使用之管線較長 又歸因於所需之暫存器檔案相當大。然而,已經發展了若 干種技術以使SMT架構中之每線程所需的暫存器數目最少 化。此可藉由用於更好的暫存器儲存單元分配之更有效的 作業系統_及硬體支援以及共享來自另_線程語境之暫 存益(若另一線程並不使用所有的暫存器)的能力來達成。 另-問題係與快取記憶體大小、快取記憶體線大小及由 其所給予之帶寬有關的線程數目。與單線程程式之情況一 樣,增加快取記憶體線大小會減少未中率但亦會增加未中 磁刻。具有對更多之使用更多不同資料的線程之支援會惡 化此問題且因此可有效地用於每一線程之快取記憶體更 少。此對於快取記憶體之爭論在處理多程式工作負荷時將 比在處理多線程工作負荷時更為顯著。因此,若使用更多 的線程,則該等快取記憶體應更大。此觀點亦適用於具有 共享之L2快取記憶體的CMP處理器。 使用更多的線程會導致總效能變得更高,且與記憶體資 料相關聯之差異會變得更加明顯。存在一指示··當使L 1 (主 要的)快取記憶體大小保持恒定時,可使用更具有相關性之 快取記憶體來達成最高級的效能,而不管存取時間合更 長。已進行了測試以藉由改變區塊大小來確定效能,其中 當改變線程之數目時,該等區塊大小會作相關性的變化。 如前所述,增加相關性的區塊級會一直增加效能;麸而 92244.doc -13- 1291132 若使用了兩個以上的線程,則增加區塊大小會降低效能。 如此,使得區塊相關性之程度方面的增加不能彌補由於較 大區塊大小之更大未令懲罰所導致的不足。 若一線程進入了對系統效能而言並不重要的程式碼流, 則應由軟體來向其指派最不可能的優先順序。可將此實踐 用來保存電源,因為硬體的效能並不令人擔心。在一高效 能之SMT處理器中,電源消耗總是令人擔心。因此,需要 一種能基於多線程中之指令的執行優先順序來保存電源的 方法。 【發明内容】 在具有兩個線程的SMT系統中,當兩個線程皆具有最低 俊先順序時,線程優先順序邏輯會建構一低電源模式。可 變:數器對—讀取時脈進行計數,該讀取時脈可為指令調 度早το (IDU)中之每一線程自指令佇列(IQ)來讀取指令。通 常,自每一線程來選擇指令,並以與每一線程之程式控制 優先順序成比例及以由讀取時脈所確定之比率來僞隨機地 自I⑽取該等指令在低電源模式中’將可變計數器之選定 數目的最高有效位元(MSB)組合為邏輯以確定所有位元何 時=邏輯U處於相同的所要狀態)。此情形糾個時脈循環 可發生-次,其中N由選定之數目確定。當所有的聰 :為邏輯,,選擇來自第一個線程之指令並自㈣來將其 項取。在緊接著的下-個時脈循環中’自IQ來讀取來自第 二線=的指令。在當所有刪並非為邏輯_間,將停用自 IQ之項取,且不將指令轉發至指令解碼及指令排序器且下 92244.doc 14 1291132 流邏輯不具有有效之指令來處理,藉此節省了電源。一旦 兩個線程皆停止處於相同的最低優先順序並取消了低帝 源,即能_來讀取指令且载入指令解碼器會回復至正常 模式;自每—線程來選擇指令並以與每—線程之程式控制 優先,序成_及以由讀取時脈所衫之比率來僞隨機地 自IQ項取該等指令。 上述内容已相當廣泛地概括了本發明之特點及技術優勢 以便可更好地理解隨後對本發明所作的詳細描i將在下 文中來描述形成本發明之t請專利範圍主題的 外特點及優勢。 【實施方式】 $ u』闹述以便徹底 來理解本發明。然而對熟習此項技術者而t,报明顯地, 本發明無需該等特定細節便可實踐。在其它情況中,。r 方塊圖形式來展示已知電路以便不會在不必要的細節= 混清本發明。就大部分而言,已省略了關於計時的細節、 通信協定内的資料格式及其類似物,因為該等細節對獲得 本發明之完整理解並不必需,且在為—般的熟習相關技術 者所已知的範圍内。現參考圖示,圖中並不需要按比例來 繪製所展不之元件,且盆中由甚+同士上 ^且具肀由右干圖中相同的參考數字來 指定相似或類似的元件。 參看圖卜具有對CPU 410所作之說明性細節。cpu 41〇 被設計成每個時脈循環執行多重指令。 囚此,可在任一時 脈循裱期間於執行單元、固定點單元(Fxu)U4、浮點單元 92244.doc -15- 1291132 (FPU)118及載入/儲存單元(LSU)116中之任一單元中來執 行多重指令。類似地,CPU 410可在SMT模式下同步執行來 自多線程的指令。 程式計數器(PC) 134對應於具有用於執行之指令的線程 〇(TO)及線程ι(Τ1)。線程選擇器133在丁〇與11之間進行交替 選擇以將一指令位址耦接至指令提取單元(IFU)丨〇8。將指 令位址載入指令提取位址暫存器(IFAR)l〇3内。IFAR 103自 指令快取記憶體(I-快取記憶體)1〇4交替地提取每一線程的 指令。指令被緩衝處理而排入το之指令佇列(IQ)135中及T1 之指令佇列IQ 136。將IQ 135及IQ 136耦接至指令調度單元 (IDU)132。在線程優先順序選擇器137之控制下,自iq 及IQ 136中來選擇並讀取指令。通常,線程優先順序選擇 器137與母一線程之程式控制優先順序成比例之方式自iq 135及IQ 136中讀取指令。 在IDU 132中之解碼器(未圖示)中來對指令進行解碼。隨 後,指令排序器113可按各種演算法所確定之順序將指令置 於若干組中。將該等指令組轉發給指令發出佇列(IIQ)131。 才曰令排序器113按程式順序接收來自兩個線程的指令,但可 不按程式順序自IIQ丨3丨並自任一線程發出該等指令。通用 暫存器(GPR)槽案115及浮點暫存器(FpR)檔案ιΐ7由多個執 行单元來使用且其代表了系統之程式狀態。可將此等硬體 暫存器稱作”架構,,暫存器。當使一指令進入一發出佇列 時,便會對每一所架構之暫存器進行重新命名。對每一正 被修改之所架構的暫存器指派一實體暫存器,且一對應之 92244.doc 16 1291132 :二別與所架構之暫存器相關聯的實體暫存器。因 二魯出仔列中,已對該所架構之暫存器進行重新命名 =同時存在所架構之暫存器的多個複本。此允許二 循序地來執行指令,只要 人々, 叔仔不源運异兀。暫存器重新 〒名早兀140能對暫存器進行 ▲ 仃重新〒名及映射,使得當所有 蒼考一特殊實體暫存器之指令 0770成並且该貫體暫存器不包 :,之所架構的狀態時’可對未使用的實體暫存器進行 重新指派。 將指令排列於nQ131中以在適當之執行單元中來執行。 若一指令包含固定點運算,則可使用多個固定點單元 (FXU)U4中之任—個。將所有執行單元、FXU114、FPU118 及Lsurn皆麵接至完成單元119,該完成單元119具有能指 不已發出之指令中有哪些已完成及其它狀態資訊的多個完 成表(未圖示)。將來自完成單元119之資訊轉發給IFU108。 IDU132亦將資訊發送給完成單元119。將來自之儲 存作業的資料耦接至資料快取記憶體(D_快取記憶 體)1〇2。可將此資料儲存於D_快取記憶體1〇2中以便近期使 用及/或轉發給匯流排介面單元(BIU)1〇1,該匯流排介面單 几(BIU)lOl藉由匯流排412將資料發送給記憶體139。lsu 116可自D-快取記憶體i 〇2來載入資料以便可由執行單元 (例如,FXU 114)來使用。 圖2為本發明之實施例中之功能單元的方塊圖。將來自每 一線程之指令排列於IQ 135及IQ 136,且僅為說明之目的將
其展示作為IFU 108之一部分。可將IQ 135及IQ 136視為IDU 92244.doc -17- 1291132 132之一部分。線程選擇器137包含多工器(MUX)202、可變 計數器(203)、僞隨機產生器(PRG)223、「及」(AND)閘205、 206及221、「或」(OR)閘222及最高有效位元(MSB)邏輯 (204)。MUX 202在來自IQ 135與IQ 136的指令之間進行交 替選擇以回應輸出213之邏輯狀態。當輸出213為邏輯1時, 選擇IQ 135,且當輸出213為邏輯〇時,選擇iq 136。使用低 電源訊號220以在用來切換MUX 202的兩種方法之間進行 選擇。在正常操作下,PRG 223以大體上與IQ 134及IQ 135 之各自的程式控制優先順序成比例之方式載入來自IQ 1 34 及IQ 135的指令。若兩個線程皆處於相同的最低優先順序 下’則可將低電源訊號220設定為能停用「及」(And)閘205 的邏輯1。低電源訊號220上之邏輯i啓用AND閘極「及」 (AND)閘221,從而允許MSB邏輯204之輸出210及LSB 215 能藉由「或」(OR)閘222來控制輸出213。當低電源訊號220 為邏輯0(正常電源模式)時,將MSB邏輯204之閘極輸出210 設定為邏輯1,使得總能啓用AND閘極「及」(AND)閘206, 從而允許時脈訊號CLK 207通過到達輸出208。
當低電源訊號220為邏輯1且兩個線程皆處於最低優先順 序下時,可進一步來控制低電源模式。可使用發送給可變 计數器203之MSB選擇訊號214來控制低電源之程度。MSB 邏輯204選擇對計數器203中之哪些MSB進行邏輯組合以形 成輸出210。當MSB邏輯204之所有輸入皆處於邏輯i時,其 輸出21 〇為邏輯1且在其它時間下為邏輯〇。若計數器2〇3具 有最大计數N,則藉由選擇合適之MSB,輸出21〇將在CLK 92244.doc -18- 1291132 207之每N次循環時為邏輯1。 舉例而言,假定將可變計數器203組態為4位元計數器(最 大計數為16)且將三個上MSB耦接至MSB邏輯204。在CLK 207之時脈循環15及16期間,該等三個MSB皆為邏輯1,從 而使得能啓用AND閘極「及」(AND)閘221。類似地,最低 有效位元(LSB)215在時脈循環15時為邏輯0且在時脈循環 16時為邏輯1。隨後,輸出2 1 3在時脈循環15期間選擇IQ 135,且在時脈循環16期間選擇1(^ ι36。輸出21〇在時脈循 環15及16期間啓用AND閘極「及」(AND)閘206,且一時鐘 脈衝在時脈循環15期間藉由一來自][Q 135之指令將線程合 併階段載入指令解碼器132中,而在時脈循環16期間則藉由 一來自IQ136之指令來完成。當停用了「及」(AND)閘206 牯’指令解碼器132不會接收載入脈衝且來自之指令被有 效地’’控制"。藉由改變可變計數器2〇3之階段,可將來自IQ 135及IQ 136之指令轉發給指令排序器113,且處於降低速 率下之IIQ 1 3 1藉此在稍後的階段中會減慢指令執行並節省 電源。 在本發明之另一實施例中,訊號213及218可用於將指令 之有效位元閘控為0FF,該等指令之〇FF有效位元在低電源 被標識為”無效”,所以將不會使其繼續,藉此節省了電源。 類似地,管、線階段可回應在低電源模式期間所#收之具有 OFF有效位元的指令,將其自身的時脈訊號閘控為請。 圖3為本發明之實施例中之方法步驟的流程圖。在步驟 92244.doc -19· 1291132 中考慮到線程優先順序並藉& ^ y ^ N 71稭由遙擇時脈除法器數目 N,在SMT處理器中設定一采守 —、 式控制、,及操作電源。在步驟302 T ’完成了一測試以確定所 W&模式疋否為低電源模式。若 並沒有選擇低電源模式,則在 卜 T為弟一線程及第二 線私來僞卩过機地產生所選指 使付所4指令中之第一線 私才曰々及弟一線程指令大體卜# 一 α , — 體上成一比例,該比例相對應於 母一線程之指令執行優先順序 ^ 貝斤在步驟3〇4中,在用於控制 一官線電路之時脈循環的每一 、 卜 母循J衣期間,將該等所選指令 載入該管線電路,由# @ $ a i 电峪纟該官線電路來處理指令。隨後,返回 步驟302以確定電源模式是否已變化。 若步驟302中之測試的妹果為 、W、、°果為疋」,則選擇正常電源模 ^。在步驟305中,對來自第—線程及第二線程之指令進行 父替選擇,使得在-時脈訊號之每隔關循環僅發生一次的 選擇時間期間,選擇了數 ^ 數目相等的第一線程指令及第二線 ^ 八中"亥日守脈衝循環能控制一用於處理該第一線程 指令及該第二線程指令的管線電路。在步驟规中,該時脈 訊號之每個循環期問,脸# ’ 將该專所選指令載入該管線電路。 隨後,返回步驟3〇2 + 確疋電源模式是否已改變。 圖4中描緣了 一用认v . 用於只5戈本發明之代表性的硬體環境,其 說明了根據本發明之呈古 具有中央處理單元(CpU)41〇(具有同 步多線程(SMT)處理u 0 ^ y♦里j及终多其它經由系統匯流排412而被 互連的單兀之工作站的一典型硬體組態。圖4中所展示之工 作站包括· |^機存取記憶體(汉趟)414 ;唯讀記憶體 ()16 ,及用來將諸如磁碟單元420及磁帶機440之周邊 92244.doc -20- 1291132 裝置連接至匯流排412的輸入/輸出(I/O)配接器418 ;用於將 鍵盤424、滑鼠426、揚聲器428、麥克風432及/或其它諸如 觸控螢幕裝置(未圖示)之使用者介面連接至匯流排4丨2的使 用者介面配接器422 ;用於將工作站連接至資料處理網路的 通信配接器434 ;以及用於將匯流排412連接至顯示裝置438 的顯示配接器436。 雖然已對本發明及其優勢作了詳細描述,但是應瞭解, 可在不背離如由附加之申請專利範圍所界定的本發明之精 神及範圍内在本文中對本發明作各種改變、替代及變更。 【圖式簡單說明】 圖1係根據本發明之實施例之SMT處理器中的功能單元 之方塊圖; 圖2係用於建構本發明之實施例之電路的方塊圖; 【主要元件符號說明】 圖3係根據本發明之實施例之方法步驟的方塊圖丨及 圖4係用於實踐本發明之一代表性硬體環境。 101 匯流排介面單元BIU 102 D-快取記憶體 103 指令提取位址暫存器(IFAr) 104 I-快取記憶體 108 指令提取單元 113 指令排序器 114 固疋點單元FXU 115 通用暫存器(GPR)檔案及通
92244.doc -21 - 1161291132 117 118 119 131 132 133 134 135 136 137 139 140 202 203 204 205, 207 208, 210 214 215 (GPR)重新命名緩衝器 載入/儲存單元(LSU) 浮點暫存器(FPR)檔案及浮點暫存器 (FPR)重新命名緩衝器 浮點單元(FPU) 完成單元 指令發出佇列 指令調度單元/指令解碼器 線程選擇器 程式計數器 佇列T0/指令佇列線程1 佇列T1/指令佇列線程2 線程優先順序選擇器 記憶體 暫存重新命名 多工器(MUX) 可變計數器 最高有效位元(MSB)邏輯 206, 221 「及」(AND)閘 時脈訊號 213 訊號 輸出 MSB選擇訊號 最低有效位元(LSB) 92244.doc -22- 1291132 220 低電源訊號 222 「或」(OR)閘 223 僞隨機產生器 410 中央處理器(CPU) 412 系統匯流排 414 隨機存取記憶體(RAM) 416 唯讀記憶體(ROM) 418 輸入/輸出(I/O)配接器 420 磁碟單元 422 使用者介面配接器 424 鍵盤 426 滑鼠 428 揚聲器 432 麥克風 434 通信配接器 436 顯示配接器 438 顯示裝置 440 磁帶機 451 網路 92244.doc -23-

Claims (1)

1291132 .................... 第093110993號專利申請案(' ·象' 申請專利範圍替換本(95f丨丨耳厂一 一- 十、申請專利範圍·· 識__奮磁明書 1. 種用於在一同步多線程(SMT)處理器中來管理電源之 方法,其中該同步多線程(S Μ T)處理器具有—用於處理來 自第一線程及第二線程之指令的f線電路,該方法包括: _確定該第一線程及該第二線程中每一線程之一指令執 行優先順序並設定一所選電源模式; 回應該所選之電源模式及一時脈訊號,在一第一選擇 時間遠擇該第-線程,且在-第二選擇時間選擇該第 程;及 7應該時脈訊號之-頻率,在該第_選擇時間及該第 一選擇時間期間將指令載入該管線電路内。 2. ^求項!之方法,其中當該第—線程及該第二線程皆具 相冋的最低指令執行優先順序時’該所選電 為一低電源模式設定。 、k 3·=求項2之方法’其中當該所選電源模式為一正常 該第-選擇時間及該第二選擇時: 】:::令:^_令之對應指令執 令。^方式來執行該第-線程指令及該第二線程指 4 ·如請求項3之方、本 . /,八中在該正常電源模式期間,該第 選擇時間及該第二選摆日卑n拟士人 。亥弟 第二線…3 ^擇時間形成-介於該第-線程! 一攻氨之間的僞隨機分配。 5·如請求項2之方法,A 時間區間相互Ί 選擇時間在1 該區間被設定成於該低電源模3 92244-951129.doc
fl 1291132 間每N個該時脈訊號循環就會發生,其中來自—被選定的 ,程之該等指令於該閘控時間區間中的每_時脈訊號循 環時被載入,而且該等指令在該閘控時間區間外的全部 其他時間都被保留著。 6·如請求項5之方法,其中藉由將一對應指令的有效位元設 定為一能產生一保留指令的0FF狀態來保留指令,其中管 線階段接收含一 OFF狀態有效位元之該保留指令,將一^ 應之管線時脈訊號閘控為0FF,藉此節省電源。 7. ^請求項5之方法,其中在該時脈訊號之每個循環時保留 才曰令並使其不被載入下一個管線階段,藉此節省電源。 8. 一種管理同步多線程之電源的同步多線程⑺馗/處理 器’其包括: -用於處理來自第一線程及第二線程之指令的 電 路; 、 八用於確定該第一線程及該第二線程中每一線程之一指 令執行優先順序並設定一所選電源模式的電路; 用於回應該所選電源模式及一時脈訊號在一第一選擇 時間中來選擇該第—線程且在—第二選擇 該第二線程的電路;及 擇 /於回應該時脈訊號之一頻_,在言亥第-選擇時間 /第4擇犄間期間將指令載入該管線電路中的電路 9·::求項8之處理器,其中當該第一線程及該第二線程 、相同的最低指令執行優先順序時,該所選電源模 為一低電源模式設定。 ’、、 92244-951129.doc 1291132 Ώ修⑸正替換頁j Μ.如請求項9之處理器,其中當該所選電源模式為—正常電 源換式時’該第-選擇時間及㈣ 你% ^ 、 坪呀間會導致以 ^-、線程指令及第二線程指令之對應指令執行優先順 :成比例之方式來執行該第一線程指令及該第二線程指 Π·Γ求項1〇之處理器,其中在該正常電源模式期間’該 苐一選擇時間及該第二選擇時間形成一介於該 與該第二線程之間的僞隨機分配。 ' Χ ^ 12·如請求項9之處理器,#中在該低電源模式期間,令第一 ,擇時間及Μ二選擇時間在—閘控時間段期間進行交 替设定以在能於該時脈訊號之每隔關循環發生, ^時間段期間會在該時脈訊號之每一猶環時載入該 專來自—料線程之指令,且在制控時間段期間以外 的所有其它時間期間保留該等指令。 1 3 ·如請求項12之處理,盆中益 益其中猎由將一對應指令的有效位 ㈣定為-能產生一保留指令的〇FF狀態來保留指令,1 中管線階段接收含一猜狀態有效位元之該保留指令,將 一對應之管線時脈訊號閘控為0FF,藉此節省電源。 14.如請求項12之處理器’其中在該時脈訊號之每個循環時 保留指令並使苴石姑截Α π 、 ”不被載入下一個管線階段,藉此節省電 源。 1 5 · —種管理同步多綠在口 f 、、泉私之電源的同步多線程處理器系 其包括: -中央處理單元(CPU),其具有一個或多個同步多線程 92244-951129.doc 1291132
正替換】 (SMT)處理器; 一隨機存取記憶體(RAM); 一輸入輸出(I/O)配接器; 一通信配接器; 一匯流排,其用於耦接該CPU、RAM、I/O配接器及該 通信配接器; 一位於該SMT處理器中之管線電路,該管線電路用於處 理來自第一線程及第二線程的指令; 用於確定該第一線程及該第二線程中每一線程之一指 令執行優先順序並設定一所選電源模式的電路; 用於回應該所選電源模式及一時脈訊號在一第一選擇 時間中來選擇該第一線程且在一第二選擇時間中來選擇 該第二線程的電路;及 用於回應該時脈訊號之一頻率,在該第一選擇時間及 該第二選擇時間期間將指令載入該管線電路中的電路。 16·如凊求項15之系統,其中當該第一線程及該第二線程具 有一相同之最低指令執行優先順序時,該所選電源模^ 為一低電源模式設定。 、、> 17·如請求項16之系統’其中當該所選電源模式為_正常電 源模式時’該第一選擇時間及該第二選擇時間合導致以 =線程指令及第二線程指令之對應指令執行優先順 令。 式來執行該第-線程指令及該第二線程指 18.如請求項17之系統 其中在該正常電源模式期間,該第 92244-951129.doc 1291132 -選擇時間及該第二選擇時間形成一介於該第 s亥第二線程之間的僞隨機分配。 、,王人 9. ^求項16之系統’其中在該低電源模式期間,— 二::間及該第二選擇時間在一閑控時間段期間:行: 叹疋Μ在能於該時脈訊號之每隔N個循環發生其 =她期間會在該時脈訊號之每一循環時载二 的所有/斤4線程之指令,且在該閘控時間段期間以外 的所有其它時間期間保留該等指令。 2〇.=請求们9之系統,其中藉由將對應指令有效位元設定 階一保留指令的⑽狀態來保留指令,其中管線 又接收S - OFF狀態有效位元之該保留指令,將一對應 之管線時脈訊號閉控為0FF,藉此節省電源。 92244-951129.doc
TW093110993A 2003-04-24 2004-04-20 A method for managing power in a simultaneous multithread processor, a processor using the method and a related system TWI291132B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/422,674 US7013400B2 (en) 2003-04-24 2003-04-24 Method for managing power in a simultaneous multithread processor by loading instructions into pipeline circuit during select times based on clock signal frequency and selected power mode

Publications (2)

Publication Number Publication Date
TW200516493A TW200516493A (en) 2005-05-16
TWI291132B true TWI291132B (en) 2007-12-11

Family

ID=33298950

Family Applications (1)

Application Number Title Priority Date Filing Date
TW093110993A TWI291132B (en) 2003-04-24 2004-04-20 A method for managing power in a simultaneous multithread processor, a processor using the method and a related system

Country Status (3)

Country Link
US (1) US7013400B2 (zh)
TW (1) TWI291132B (zh)
WO (1) WO2004095245A2 (zh)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7360064B1 (en) 2003-12-10 2008-04-15 Cisco Technology, Inc. Thread interleaving in a multithreaded embedded processor
US7441101B1 (en) * 2003-12-10 2008-10-21 Cisco Technology, Inc. Thread-aware instruction fetching in a multithreaded embedded processor
US7574439B2 (en) * 2004-05-20 2009-08-11 International Business Machines Corporation Managing a nested request
US7890735B2 (en) * 2004-08-30 2011-02-15 Texas Instruments Incorporated Multi-threading processors, integrated circuit devices, systems, and processes of operation and manufacture
JP4557748B2 (ja) 2005-02-28 2010-10-06 株式会社東芝 演算処理装置
US8195922B2 (en) * 2005-03-18 2012-06-05 Marvell World Trade, Ltd. System for dynamically allocating processing time to multiple threads
US20060212853A1 (en) * 2005-03-18 2006-09-21 Marvell World Trade Ltd. Real-time control apparatus having a multi-thread processor
US7917907B2 (en) * 2005-03-23 2011-03-29 Qualcomm Incorporated Method and system for variable thread allocation and switching in a multithreaded processor
US7689838B2 (en) * 2005-12-22 2010-03-30 Intel Corporation Method and apparatus for providing for detecting processor state transitions
US8380966B2 (en) * 2006-11-15 2013-02-19 Qualcomm Incorporated Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging
US8533530B2 (en) * 2006-11-15 2013-09-10 Qualcomm Incorporated Method and system for trusted/untrusted digital signal processor debugging operations
US8370806B2 (en) 2006-11-15 2013-02-05 Qualcomm Incorporated Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor
US8341604B2 (en) * 2006-11-15 2012-12-25 Qualcomm Incorporated Embedded trace macrocell for enhanced digital signal processor debugging operations
US8484516B2 (en) * 2007-04-11 2013-07-09 Qualcomm Incorporated Inter-thread trace alignment method and system for a multi-threaded processor
JP5182792B2 (ja) * 2007-10-07 2013-04-17 アルパイン株式会社 マルチコアプロセッサ制御方法及び装置
US8689222B2 (en) * 2008-10-30 2014-04-01 International Business Machines Corporation Controlling priority of multi-threaded hardware resources by system calls
US20240192949A1 (en) * 2022-12-07 2024-06-13 Dell Products, L.P. Systems and methods for adaptive responsiveness in a heterogeneous computing platform

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5396635A (en) * 1990-06-01 1995-03-07 Vadem Corporation Power conservation apparatus having multiple power reduction levels dependent upon the activity of the computer system
US5247677A (en) 1992-05-22 1993-09-21 Apple Computer, Inc. Stochastic priority-based task scheduler
US6105127A (en) * 1996-08-27 2000-08-15 Matsushita Electric Industrial Co., Ltd. Multithreaded processor for processing multiple instruction streams independently of each other by flexibly controlling throughput in each instruction stream
US6073159A (en) * 1996-12-31 2000-06-06 Compaq Computer Corporation Thread properties attribute vector based thread selection in multithreading processor
US6658447B2 (en) * 1997-07-08 2003-12-02 Intel Corporation Priority based simultaneous multi-threading
US6697935B1 (en) * 1997-10-23 2004-02-24 International Business Machines Corporation Method and apparatus for selecting thread switch events in a multithreaded processor
US6212544B1 (en) * 1997-10-23 2001-04-03 International Business Machines Corporation Altering thread priorities in a multithreaded processor
US6076157A (en) * 1997-10-23 2000-06-13 International Business Machines Corporation Method and apparatus to force a thread switch in a multithreaded processor
US6256775B1 (en) * 1997-12-11 2001-07-03 International Business Machines Corporation Facilities for detailed software performance analysis in a multithreaded processor
US6308279B1 (en) * 1998-05-22 2001-10-23 Intel Corporation Method and apparatus for power mode transition in a multi-thread processor
US6341347B1 (en) 1999-05-11 2002-01-22 Sun Microsystems, Inc. Thread switch logic in a multiple-thread processor
US6357016B1 (en) * 1999-12-09 2002-03-12 Intel Corporation Method and apparatus for disabling a clock signal within a multithreaded processor
US6496925B1 (en) * 1999-12-09 2002-12-17 Intel Corporation Method and apparatus for processing an event occurrence within a multithreaded processor
US6931639B1 (en) * 2000-08-24 2005-08-16 International Business Machines Corporation Method for implementing a variable-partitioned queue for simultaneous multithreaded processors
US6735707B1 (en) * 2000-10-27 2004-05-11 Sun Microsystems, Inc. Hardware architecture for a multi-mode power management system using a constant time reference for operating system support
US6687838B2 (en) 2000-12-07 2004-02-03 Intel Corporation Low-power processor hint, such as from a PAUSE instruction
US6651158B2 (en) * 2001-06-22 2003-11-18 Intel Corporation Determination of approaching instruction starvation of threads based on a plurality of conditions
US6622253B2 (en) 2001-08-02 2003-09-16 Scientific-Atlanta, Inc. Controlling processor clock rate based on thread priority
EP1351117A1 (en) * 2002-04-03 2003-10-08 Hewlett-Packard Company Data processing system and method
US8024735B2 (en) * 2002-06-14 2011-09-20 Intel Corporation Method and apparatus for ensuring fairness and forward progress when executing multiple threads of execution

Also Published As

Publication number Publication date
US7013400B2 (en) 2006-03-14
US20040215984A1 (en) 2004-10-28
WO2004095245A3 (en) 2005-04-21
TW200516493A (en) 2005-05-16
WO2004095245A2 (en) 2004-11-04

Similar Documents

Publication Publication Date Title
TWI291132B (en) A method for managing power in a simultaneous multithread processor, a processor using the method and a related system
US7469407B2 (en) Method for resource balancing using dispatch flush in a simultaneous multithread processor
US7627770B2 (en) Apparatus and method for automatic low power mode invocation in a multi-threaded processor
US7853777B2 (en) Instruction/skid buffers in a multithreading microprocessor that store dispatched instructions to avoid re-fetching flushed instructions
US7600135B2 (en) Apparatus and method for software specified power management performance using low power virtual threads
US7490230B2 (en) Fetch director employing barrel-incrementer-based round-robin apparatus for use in multithreading microprocessor
US7657891B2 (en) Multithreading microprocessor with optimized thread scheduler for increasing pipeline utilization efficiency
US7664936B2 (en) Prioritizing thread selection partly based on stall likelihood providing status information of instruction operand register usage at pipeline stages
US7363625B2 (en) Method for changing a thread priority in a simultaneous multithread processor
US7506140B2 (en) Return data selector employing barrel-incrementer-based round-robin apparatus
US7213135B2 (en) Method using a dispatch flush in a simultaneous multithread processor to resolve exception conditions
US20040210743A1 (en) Dynamically shared group completion table between multiple threads
KR100745904B1 (ko) 동시적 멀티스레드 프로세서에서 파이프라인 길이를변경하기 위한 방법 및 회로
US20070089112A1 (en) Barrel-incrementer-based round-robin apparatus and instruction dispatch scheduler employing same for use in multithreading microprocessor
US8370671B2 (en) Saving power by powering down an instruction fetch array based on capacity history of instruction buffer
US7093106B2 (en) Register rename array with individual thread bits set upon allocation and cleared upon instruction completion
JP2003516570A (ja) マルチスレッド・プロセッサ内の複数のスレッドに入り、出る方法と装置
US7194603B2 (en) SMT flush arbitration
JP2010061642A (ja) スレッドのスケジューリングテクニック
US20040215937A1 (en) Dynamically share interrupt handling logic among multiple threads
Cecil Dual Core On-Chip Multiprocessors and the IBM Power5

Legal Events

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