TWI550518B - 用於包括執行緒合併之能源效率及能源節約的方法、裝置及系統 - Google Patents
用於包括執行緒合併之能源效率及能源節約的方法、裝置及系統 Download PDFInfo
- Publication number
- TWI550518B TWI550518B TW101147168A TW101147168A TWI550518B TW I550518 B TWI550518 B TW I550518B TW 101147168 A TW101147168 A TW 101147168A TW 101147168 A TW101147168 A TW 101147168A TW I550518 B TWI550518 B TW I550518B
- Authority
- TW
- Taiwan
- Prior art keywords
- processing elements
- subset
- cores
- active
- thread
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Description
本文揭示係有關於積體電路中之能源效率及能源節約,以及於其上執行且特別地但非排它地執行緒合併之代碼。
半導體處理及邏輯設計上的進步已經許可存在於積體電路裝置上的邏輯量增加。結果,電腦系統組態已經從一系統中單一或多重積體電路裝置演進至多重硬體執行緒、多核心、多裝置、及/或於個別積體電路裝置上的完整系統。此外,隨著積體電路密度的增長,運算系統(從嵌入式系統至伺服器)的電源需求也增加。此外,軟體無效率及其硬體需求也造成運算裝置能源耗用的增高。實際上,若干研究指出電腦耗用美國總電力供應量的相當大
部分。
結果,迫切需要有與積體電路相關的能源效率及能源節約。及隨著伺服器、桌上型電腦、筆記型電腦、小筆電、平板、行動電話、處理器、嵌入式系統等的變得更為普及(從包括於典型電腦、汽車、及電視至生物技術),運算裝置銷售的效應在能耗範疇外側延伸進入實質上直接影響經濟系統。當功耗因素變得愈來愈大時,經常性地朝向提高效能的趨勢須與功耗考量間作權衡折衷。
偶爾於一處理器運轉期間,並不利用到處理器的全部(例如並非全部可用的硬體執行緒皆同時於操作中)。實際上,現行作業系統(OS)排程器典型地在可用的處理元件間(例如核心間)分配工作以確保最高效能(亦即各個核心係專用以在一多執行緒工作負擔的一小部分上工作)。及唯有當全部核心皆作動且工作時,作業系統排程器才開始排程更多工作給一核心。結果,即便更少數處理元件諸如核心能夠因應工作負擔,但全部核心保持作動以確保效能。因此可知目前實體處理器並不包括特定機構以支援有關執行緒排程的電源與效能上的權衡。
依據本發明之一實施例,係特地提出一種用於有效能源耗用之裝置包含一第一數目之硬體處理元件係經組配以執行一第二數目之軟體執行緒;一合併模組係適用以回應於該第二數目小於該第一數目,於運行時間期間
決定該第二數目之軟體執行緒合併成該第一數目之硬體處理元件之一子集是否為能源有效;及一遷移模組係適用以回應於該合併模組決定該第二數目之軟體執行緒合併成該第一數目之硬體處理元件之該子集係為能源有效,遷移該第二數目之軟體執行緒至該第一數目之硬體處理元件之該子集。
100、205、210、301-304、401、402‧‧‧處理器、實體處理器
101、102、501-504‧‧‧核心
101-102a-b‧‧‧架構態暫存器、硬體執行緒、硬體執行緒插槽
105‧‧‧匯流排介面
110‧‧‧高層級快取記憶體
120、121‧‧‧分支目標緩衝器(BTB)及指令轉譯緩衝器(I-TLB)
125、126‧‧‧解碼器、解碼
130、131‧‧‧重新命名配置器邏輯
135、136‧‧‧重新排序/報廢單元
140、141‧‧‧排程器/執行單元
150、151‧‧‧低層級資料快取記憶體及資料轉譯緩衝器(D-TLB)
160‧‧‧韌體電源控制單元、電源控制
170‧‧‧控制器
175‧‧‧系統記憶體
176‧‧‧應用程式碼
177‧‧‧轉譯器碼
180‧‧‧裝置
200‧‧‧二處理器系統平台、處理器系統
215、305、405‧‧‧點對點(P2P)互連體
220、315、415‧‧‧記憶體互連體
225、230、310、311、312、313、410‧‧‧記憶體
240‧‧‧介面
245、250‧‧‧I/O裝置
300、400‧‧‧四核心處理器平台
301c-304c‧‧‧控制器
420‧‧‧I/O控制器中樞器
501T0,T1-504T0,T1‧‧‧硬體執行緒
510‧‧‧執行緒合併模組
515‧‧‧特權超管理器、硬體特權超管理器排程器
520‧‧‧遷移模組
521‧‧‧暗示
530‧‧‧電源模組、電源控制單元(PCU)
550-553‧‧‧軟體執行緒、執行緒、工作負荷
570‧‧‧活動核心之子集
575‧‧‧非活動核心之子集
605-640‧‧‧流程
本發明係藉附圖之圖式舉例說明但非囿限於此。
圖1例示說明包括具有多個處理元件(2核心及4執行緒插槽)的處理器之一種系統的邏輯表示型態之實施例。
圖2例示說明一種電腦系統組態之邏輯表示型態的實施例。
圖3例示說明一種電腦系統組態之邏輯表示型態的另一個實施例。
圖4例示說明一種電腦系統組態之邏輯表示型態的另一個實施例。
圖5例示說明適用以合併軟體執行緒成為處理元件之一子集用於能源有效節電的一種裝置之邏輯表示型態之實施例。
圖6例示說明有效地進行執行緒合併之流程圖的實施例。
於後文詳細說明部分中,陳述無數特定細節,諸如特定型別的處理器及系統組態、特定硬體結構、特定架構及微架構細節、特定暫存器組態、量測與估計處理元件活動之特定方法、特定核心及執行緒組態、特定模組、特定活動度量、特定活動臨界值及範圍、特定核心及硬體執行緒數目等之實例以供徹底瞭解本發明。但熟諳技藝人士顯然易知無需採用此等特定細節以實施本發明。於其它情況下,眾所周知的組件或方法諸如特定的及替代的處理器架構、針對所描述的演算法之特定邏輯電路/代碼、特定韌體碼、特定互連體操作、特定活動度量的邏輯、特定遷移及脈絡切換技術、特定功率態及閘控技術/邏輯、特定功耗度量與估計、特定作業系統排程器技術及頻率要求、及其它特定處理器的操作細節並未以細節描述以免不必要地遮掩本發明。
雖然下列實施例係參考特定積體電路諸如運算平台或微處理器的能源節約及能源效率作描述,但其它實施例係適用於其它型別的積體電路及邏輯裝置。此處描述的類似技術及實施例教示可應用至也可從能源效率及能源節約獲益的其它型別的電路或半導體裝置。舉例言之,本文揭示之實施例並非限於桌上型電腦系統。及也可用在其它裝置,諸如手持式裝置、單晶片系統(SOC)、及嵌入式應用。手持式裝置之若干實例包括小區式電話、網際網
路協定裝置、數位相機、個人數位助理器(PDA)、及手持式電腦(PC)。嵌入式應用典型地包括微控制器、數位信號處理器(DSP)、單晶片系統、網路電腦(NetPC)、機上盒、網路中樞器、廣域網路(WAN)交換器、或能夠執行後文教示的功能及操作的任何其它系統。此外,此處描述的設備、方法及系統並非限於實體運算裝置,反而也係關於能源節約及能源效率的軟體最佳化。如將從後文描述顯然易知,此處描述的方法、設備、及系統(無論係參考硬體、韌體、軟體、或其組合)對效能考量的「綠色技術」未來具有關鍵重要性。
此處描述的方法及系統係用於執行緒合併以提供能源有效的節電。更明確言之,後文中執行緒合併主要係參考多核心微處理器及其中的節電討論。但此處描述的設備及方法並非囿限於此,原因在於可結合任何積體電路裝置體現。舉例言之,後文描述的執行緒合併技術可用在執行多執行緒的多核心圖形處理器。換言之,全文討論的方法、設備及技術可利用在包括多個處理元件以處理多重軟體執行緒的任何裝置。舉例言之,如前文討論其可利用在小形狀因子裝置、手持式裝置、SOC、或嵌入式應用。此外,執行緒合併技術可採用於多處理器系統(例如軟體執行緒係在運算平台的實體處理器內部而非在單一裝置的處理元件間合併或積聚)。
參考圖1,例示說明包括多核心的處理器之實施例。處理器100包括任一種處理元件,諸如微處理器、
嵌入式處理器、數位信號處理器(DSP)、網路處理器、手持式處理器、應用處理器、共處理器、單晶片系統(SOC)、或執行代碼的其它裝置。於一個實施例中,處理器100包括至少兩個核心,亦即核心101及102,其可包括非對稱性核心或對稱性核心(具體實施例)。但處理器100可包括可為對稱性或非對稱性的任何數目的處理元件。
於一個實施例中,一處理元件係指稱支援一軟體執行緒的硬體或邏輯。硬體處理元件之實例包括:執行緒單元、執行緒插槽、執行緒、處理單元、脈絡、脈絡單元、邏輯處理器、硬體執行緒、核心、及/或任何其它元件,其能夠保有一處理器的狀態,諸如執行態或架構態。換言之,於一個實施例中,一處理元件係指能夠與代碼諸如軟體執行緒、作業系統、應用程式或其它代碼相關的任何硬體。一實體處理器典型地係指積體電路,其潛在地包括任何數目的其它處理元件,諸如核心或硬體執行緒。
一核心通常係指能夠維持獨立架構態的位在積體電路上的邏輯,其中各個獨立維持的架構態係與至少若干專用執行資源相關。與核心相反,一硬體執行緒典型地係指能夠維持獨立架構態的位在積體電路上的任何邏輯,其中該等獨立維持的架構態係分享存取至執行資源。如所瞭解,當某些資源為分享的而其它資源為一架構態所專用時,一硬體執行緒與核心命名間的線路重疊。又經常
地,一核心及屬於一核心的一執行緒集合的一部分之一硬體執行緒係由一作業系統視為個別邏輯處理器,於該處作業系統能夠在各個邏輯處理器上個別地排程操作。
如圖1之例示說明,實體處理器100包括兩個核心,核心101及102。此處,核心101及102係考慮為對稱性核心,亦即具有相同組態、功能單元、及/或邏輯的核心。於另一個實施例中,核心101包括一失序處理器核心,而核心102包括一有序處理器核心。但核心101及102可個別地選自於任何型別的核心,諸如本機核心、軟體管理核心、適用以執行本機指令集架構(ISA)之核心、適用以執行轉譯指令集架構(ISA)之核心、共設計核心、或其它已知核心。又更進一步討論,於核心101例示說明的功能單元係容後詳述,原因在於核心102裡的單元係以類似方式操作。
如圖闡釋,核心101包括二硬體執行緒101a及101b,又稱硬體執行緒插槽101a及101b。因此於一個實施例中,軟體實體諸如作業系統可能將處理器100視為四個分開的處理器,亦即能夠同時執行四個軟體執行緒的四個邏輯處理器或處理元件。綜上所述,第一執行緒係與架構態暫存器101a相關,第二執行緒係與架構態暫存器101b相關,第三執行緒係與架構態暫存器102a相關,及第四執行緒係與架構態暫存器102b相關。此處,如前文描述,架構態暫存器(101a、101b、102a、102b)各自可稱作為處理元件、執行緒插槽、或執行緒單元。如圖例示說
明,架構態暫存器101a係在架構態暫存器101b重複,使得針對邏輯處理器101a及邏輯處理器101b能夠儲存個別架構態/脈絡。於核心101中,其它較小型資源諸如指令指標器及重新命名分配器邏輯130內的重新命名邏輯也可對執行緒101a及101b重複。有些資源諸如重新排序/報廢單元135中的重新排序緩衝器、ILTB 120、負載/儲存緩衝器、及佇列可透過劃分而分享。其它資源諸如通用內部暫存器、頁表基本暫存器、低層級資料快取記憶體及資料-TLB 115、執行單元140、及部分失序單元135可能皆可完全分享。
處理器100經常包括可完全分享、可透過劃分而分享、或由處理元件所專用的其它資源。於圖1中,例示說明具有一處理器的例示說明性邏輯單元/資源的純粹舉例說明的處理器之一實施例。注意一處理器可包括或刪除任何此等功能單元,以及包括圖中未闡釋的任何其它已知功能單元、邏輯、或韌體。如圖例示說明,核心101包括一簡化的代表性失序(OOO)處理器核心。但於不同實施例中可利用有序處理器。OOO核心包括預測料執行/取用的分支之一分支目標緩衝器120及儲存針對指令的位址轉譯分錄之一指令轉譯緩衝器(I-TLB)120。
核心101進一步包括耦接至提取單元120以解碼所提取的元件之解碼模組125。於一個實施例中,提取邏輯包括與執行緒插槽101a、101b分別地相關的個別排序器。通常核心101係與第一指令集架構(ISA)相關,
第一ISA界定/載明可在處理器100上執行的指令。經常作為第一ISA的一部分之機器碼指令包括該指令之一部分(稱作為操作碼)述及/載明欲執行之一指令或操作。解碼模組125包括電路,該等電路係辨識此等指令與其操作碼,及在該管線中傳送該已解碼指令用於如藉第一ISA之定義作處理。舉例言之,如後文進一步討論,於一個實施例中,解碼器125包括設計以或適用以辨識特定指令諸如異動指令的邏輯。藉解碼器125辨識的結果,架構或核心101採行特定預先界定的動作以執行與適當指令相關的工作。要緊地須注意此處描述的工作、區塊、操作、及方法中之任一者可回應於單一指令或多重指令執行;其中部分指令可為新或舊指令。
於一個實例中,分配器及重新命名器區塊130包括一分配器以保有資源,諸如暫存器檔案以儲存指令處理結果。但執行緒101a及101b可能能夠失序地執行,於該處分配器及重新命名器區塊130也保有其它資源,諸如重新排序緩衝器以追蹤指令結果。單元130也可包括一暫存器重新命名器以將程式/指令參考暫存器重新命名成處理器100內部的其它暫存器。重新排序/報廢單元135包括諸如前述重新排序緩衝器、負載緩衝器及儲存緩衝器等組件以支援失序執行及後來,失序執行指令的有序報廢。
於一個實施例中,排程器及執行單元區塊140包括一排程器單元以排程在執行單元上的指令/操作。舉例言之,一浮點指令係在具有一可用的浮點執行單元之執
行單元的一埠上排程。與該等執行單元相關的暫存器檔案也經包括以儲存資訊指令處理結果。執行單元之實例包括浮點執行單元、整數執行單元、跨接執行單元、負載執行單元、儲存執行單元、及其它已知之執行單元。
低層級資料快取記憶體及資料轉譯緩衝器(D-TLB)150係耦接至執行單元140。資料快取記憶體係用以儲存晚近使用的/操作的元件,諸如資料運算元,該等元件可能被保有於記憶體同調態。D-TLB係用以儲存晚近虛擬/線性至實體位址轉譯。舉個特定實例,一處理器可包括一頁表結構以將實體記憶體分解成多個虛擬頁。
此處,核心101及102分享存取較高層級或更進一步外側快取記憶體110,其係將快取晚近提取的元件。注意較高層級或更進一步外側係指快取層級增高或更加遠離執行單元。於一個實施例中,較高層級快取記憶體110乃最末層級資料快取記憶體,亦即在處理器100的記憶體階層中的最末快取記憶體,諸如第二或第三層級資料快取記憶體。但較高層級快取記憶體110並非囿限於此,原因在於其可相關或包括一指令快取記憶體。取而代之,一軌跡快取記憶體亦即一型指令快取記憶體可耦接以儲存晚近解碼的軌跡。
於所闡釋的組態中,處理器100也包括匯流排介面模組105。歷史上控制器170,容後詳述,已經被包括於處理器100外部的運算系統。於此種情況下,匯流排介面105係與處理器100外部的裝置通訊,諸如系統記
憶體175、晶片組(經常包括連結至記憶體175的一記憶體控制器及連結周邊裝置之一I/O控制器中樞器)、記憶體控制器中樞器、北橋、或其它積體電路。及於此種情況下,匯流排105可包括任何已知之互連體,諸如多插匯流排、點對點互連體、串聯互連體、並聯匯流排、同調(例如快取同調)匯流排、分層協定架構、差分匯流排、及GTL匯流排。
記憶體175可為處理器100所專用或與系統中的其它裝置分享。記憶體175型別的常見實例係包括動態隨機存取記憶體(DRAM)、靜態RAM(SRAM)、非依電性記憶體(NV記憶體)、及其它已知之儲存裝置。注意裝置180可包括圖形加速器、耦接至一記憶體控制器中樞器的處理器或卡、耦接至I/O控制器中樞器之資料儲存裝置、無線收發器、快閃裝置、音訊控制器、網路控制器、或其它已知裝置。
但須注意於該闡釋之實施例中,控制器170係例示說明為處理器100的一部分。晚近,隨著更多邏輯及裝置係整合於單一晶粒上,諸如單晶片系統(SOC),此等裝置各自可結合於處理器100上。舉例言之,於一個實施例中,記憶體控制器中樞器170係在與處理器100相同的封裝體及/或晶粒上。此處,該核心之一部分(核心上部分)包括一或多個控制器170用以介接其它裝置,諸如記憶體175或圖形裝置180。包括互連體及控制器用以介接此等裝置的組態通稱為核心上組態(或非核心組態)。舉個
實例,匯流排介面105包括一環狀互連體具有用以介接記憶體175的一記憶體控制器及用以介接圖形處理器180的一圖形控制器。又,於SOC環境中,甚至更多裝置諸如網路介面、共處理器、記憶體175、圖形處理器180、及任何其它已知之電腦裝置/介面可整合於單一晶粒或積體電路上以提供具有高功能及低功耗的小形狀因子。
於一個實施例中,處理器100能夠執行一編譯器、最佳化、及/或轉譯器代碼177以編譯、轉譯、及/或最佳化應用程式碼176以支援此處描述的設備及方法或與其介接。編譯器經常包括一程式或程式集以將來源文字/碼轉譯成目標文字/碼。通常,使用編譯器進行程式/應用程式碼的編譯係以多階段完成,及傳送以將高階程式語言碼轉譯成低階機器或組合語言碼。又,單通編譯器仍可用於單純編譯。編譯器可利用任何已知之編譯技術,及執行任何已知之編譯操作,諸如辭彙分析、前處理、剖析、語意分析、碼產生、碼變換、及碼最佳化。
更大型編譯器常包括多個階段,但最常見此等階段係包括於二通用階段內:(1)一前端,亦即通常可進行語法處理、語意處理、及某些變換/最佳化,及(2)一後端,亦即通常可進行分析、變換、最佳化、及碼產生。有些編譯器係指一中間,例示說明編譯器的前端與後端間的界線模糊化。結果,述及編譯器的插入、聯結、產生、或其它操作可在前述階段或回合中之任一者以及編譯器的任何已知階段或回合進行。舉個具體實施例,編譯器可將
操作、呼叫、函式等插入編譯的一或多個階段,諸如將呼叫/操作插入編譯的前端階段,及然後於變換階段期間將呼叫/操作變換成低階碼。注意於動態編譯期間,編譯器碼或動態最佳化碼可插入此種操作/呼叫,以及最佳化代碼用於運行時間執行。至於特定具體實施例,二進制碼(已編譯碼)可於運行時間期間被動態地最佳化。此處,程式碼可包括動態最佳化碼、二進制碼、或其組合。
類似編譯器,轉譯器諸如二進制轉譯器靜態或動態地轉譯代碼以最佳化及/或轉譯代碼。因此,述及碼、應用程式碼、程式碼、或其它軟體環境的執行可指稱:(1)編譯器程式、最佳化碼最佳化器、或轉譯器動態地或靜態地執行以編譯程式碼維持軟體結構,執行其它操作,最佳化碼,或轉譯碼;(2)主程式碼的執行包括操作/呼叫,諸如已經最佳化/編譯的應用程式碼;(3)與主程式碼相關的其它程式碼諸如存庫的執行以維持軟體結構,執行其它軟體相關操作,或最佳化碼;或(4)其組合。
於一個實施例中,處理器100能夠在處理元件間合併執行緒。或於其它實施例中,處理器100能夠在處理元件間遷移/合併執行緒以支援軟體(例如及作業系統)。舉例言之,當處理器100係輕度負載時,可能遷移執行緒至較少數核心,使得其它核心能夠減低電力用於能源有效的節電。此種景況下,處理器100首次識別執行緒合併機會。此處,此等機會只存在於硬體執行緒插槽為可資利用時(例如硬體執行緒插槽101a及102a被占用,而
硬體執行緒插槽101b及102b為可資利用)。因此於簡單情況下,存在有執行緒合併機會,於該處全部目前活動執行緒可遷移至核心101或核心102。而其餘核心(不執行任何活動執行緒)可被減低供電。
但於一個實施例中,遷移執行緒機會的識別與決定的深度較深。舉例言之,識別可考慮單項因素或多個因素的組合,諸如處理元件利用性、處理元件活動、合併的溫度分歧、來自合併的功耗增減、來自執行緒合併的核心/執行緒活動、來自合併的頻率增減等。舉個特定具體實施例,假設硬體執行緒101a及101b係被軟體執行緒占用。此處,決定執行緒101a及101b的目前利用率(例如歷經一時間週期活動的週期數)。且從該執行緒的目前利用率,估計/預測新執行緒利用率(及/或功耗)將類似在執行緒合併成為一個核心諸如核心101後的利用率。從新執行緒利用率及/或功耗(例如合併後的功耗將減少),決定執行緒101b有機會遷移至核心101以節電,但同時仍可因應處理器100上的目前工作負荷。
從該具體實施例,可知遷移及合併機會如何能簡單或複雜。於前述情況下,基於核心101上執行緒累積的功率效應之估值而做合併決策,該決策係從供電減低核心102的功率影響相對於增加核心101之頻率以處理累積的工作負荷決定;部分執行緒係在供電減低之前從核心102遷移。但結合純粹能源效率,可考慮溫度考量(例如溫度密度電源(TDP)極限)、效能效應(遷移執行緒的潛伏延
遲)或任何其它已知因素用以作出合併決策。
此外,利用於決定的資訊可來自許多不同來源。可能的大量來源之具體實施例包括:硬體/韌體/軟體以量測目前執行緒利用率;微碼或其它軟體以決定目前執行緒利用率是否包括基於來自作業系統的頻率策略的合併機會,及從實驗性量測及/或軟體執行緒通訊針對目前工作負荷的頻率改變之縮放性;及一韌體電源控制單元160(微控制器及相關的電源碼)以提供減低電力及功耗特性,以及核心102的實際減低供電等。雖然本實例為純粹說明性,但確實驗證了此處描述的技術可於硬體、韌體、軟體、或其組合體現。
此外,用以作合併決定的演算法並非囿限於此處描述者,可從前述簡單利用性實例變化至後述用以估計執行緒活動/利用率的詳細數學方程式。舉例言之,除外(或替代)測量/決定目前執行緒利用率,軟體執行緒本身可提供利用率指標(例如來自一軟體執行緒的一暗示以指示在下個時間量是否預期有關所測得的活動之更多或更少工作,執行緒合併策略可列入考慮)。至於另一個實例,作合併決策的演算法之輸出可由作合併決策的軟體(例如作業系統排程器)取用作暗示。
參考圖2-4,例示說明適用以包括能夠執行緒合併的處理器之一種電腦系統組態。參考圖2,例示說明於各個處理器205、210具有整合式記憶體控制器及輸入/輸出(I/O)控制器的二處理器系統200之具體實施例。雖然
並不以細節詳細說明以免遮掩討論,平台200例示說明多個互連體以在組件間轉移資訊。舉例言之,於一個實施例中,點對點(P2P)互連體215包括具有分層協定架構許可高速資料移轉的串列點對點雙向快取同調匯流排。此外,常見已知介面(周邊組件互連體快速,PCIE)或其變化例係用於在I/O裝置245、250間的介面240。但任何已知之互連體或介面可利用以與運算系統通訊或在運算系統之範疇內。
轉向圖3,例示說明四核心處理器平台300。如同圖2,處理器301-304係透過高速P2P互連體305彼此耦合。處理器301-304包括整合式控制器301c-304c。圖4闡釋具有不同組態的另一個四核心處理器平台400。此處,替代透過I/O介面,諸如PCI-E介面,利用處理器上I/O控制器來與I/O裝置通訊,係利用P2P互連體以耦合處理器與I/O控制器中樞器420。然後中樞器420轉而透過PCIE狀介面而與I/O裝置通訊。
其次參考圖5,例示說明能夠進行執行緒合併的處理元件之一實施例。如圖所示,有四個核心(亦即核心501-504)。各個核心具有二硬體執行緒插槽(例如核心501具有硬體執行緒501T0及501T1),總計八個硬體執行緒。於此處描述的若干實施例中,當述及處理元件時係指處理器、處理裝置、核心、執行緒或其組合。至於第一具體實施例,合併成一或多個處理元件係指合併成核心。相反地,處理元件可指個別地、成組地(例如以核心基礎在
一核心上)、或集合地硬體執行緒之活動/利用率。因此,即便圖5之討論係述及有關硬體執行緒利用率的在一核心子集上的工作負荷的合併化,合併及利用可述及任何已知之處理元件。如圖所示,核心501-504能夠執行8軟體執行緒;在硬體執行緒501T0,T1-504T0,T1上每個核心有兩個。換言之,硬體執行緒501T0,T1-504T0,T1能夠同時地針對八個軟體執行緒保有脈絡。
於一個實施例中,合併模組510係適用以或組配以決定/檢測軟體執行緒合併機會。如前述,於一個實施例中,使用簡單決定演算法。此處,執行緒合併模組510尋找開放式硬體執行緒插槽。舉例言之,基於小型或特定時間性取樣,假設軟體執行緒550、551、552及553分別地係在硬體執行緒501T0、502T0、503T0、及504T0上執行(或相關)。結果,執行緒插槽501T1、502T1、503T1、及504T1為可用(透過硬體、韌體、軟體、或其組合)。及因各個核心能夠處理兩個軟體執行緒,故目前工作負荷能夠合併在二核心上(例如遷移至核心501及502)。一旦工作負荷從核心503、504卸下,則減低功率以節電。
但於另一個實施例中,執行緒合併模組510基於任何數目的因素而做深度決定,諸如處理元件利用性、處理元件活動、合併之溫度分歧、來自合併的功耗增減、來自執行緒合併的核心/執行緒活動、來自合併的頻率增減等。執行緒合併模組510可呈任何已知形式(例如
硬體、韌體、軟體、或其組合)。至於如上指示的實例,合併模組也可取來自多個來源的輸入,諸如硬體特權超管理器排程器515(例如OS或虛擬機監視器)、軟體執行緒本身、電源模組530等。且隨著來源的改變,執行緒合併模組的組成展開於硬體、韌體、及軟體的邊界上。至於一具體實施例,硬體收集利用率及活動資訊,韌體呈示該資訊給一OS排程器,該排程器基於前述因素而做遷移/合併決策,OS將該決策通訊回遷移硬體(例如一實體核心其工作負荷遷移至另一個核心)及電源控制韌體,該韌體係與硬體一起執行符合軟體決策的遷移/合併及減低電力。
於一種情況下,合併模組510(於硬體、韌體、軟體、或其組合體現)係決定執行緒550-553之合併成為一活動核心之子集,諸如核心之子集570係在最低能源效率。如從圖5可知,合併模組510並非限於做單一子集合併決定;但於某些情況下可做此決定。換言之,執行緒550-553可經合併成為二核心,全部執行緒插槽501T0,T1-502T0,T1變成被占用,只要執行緒插槽501T0,T1-502T0,T1能夠因應額外工作,結果將聯結著電耗較佳,以及潛在地較佳效能(亦即相關執行緒及分享資料的更加接近)。此處,係由遷移模組520做此決定。或者可從4核心合併成3核心(例如501-503)而有些執行緒插槽變成可資利用。因此,即便後文討論主要係述及單一合併決定;相同方法可迭代重複地或並列地在不同的處理元件之子集上執行。及結果(例如能源效率及效能影響,
諸如導入延遲至實際上遷移執行緒)可用以決定是否不進行合併,或須執行哪個合併(例如哪個子集乃最高能源效率)。
有關能源效率,可利用決定或估計能源效率的任一種已知方法。於最基本的情況下,假設頻率為恆定,工作負荷的量或程度能夠用以決定功耗。此處,藉由合併執行緒550-553所節省的電力透過非活動核心之子集575的功率降低可知,同時整個處理器100的相同工作負荷為恆定。但於大部分處理器(或OS環境)中,當一核心諸如核心501上累積更多工作時,其頻率(或電流)增高以因應更大的工作負荷。及隨著針對核心501的電流/頻率的增高,其功耗也增加。因此於此種情況下,能效問題變成減低功率的核心503及504(例如非活動核心之子集575),比較核心501及502來自於執行緒552及553累積的工作負荷造成的功耗增加,是否能夠節省更多的電力。
要緊地須注意於若干實施例中,能源效率並非決定合併是否適當的唯一因素。事實上,如上實例(當執行緒插槽為可資利用時合併化)指出能源效率甚至可能並非決定因素。如此繼續前述情況(於該處比較合併與非合併間的功耗),可考慮其它因素,諸如溫度限制(例如核心501或502太溫度,結果導致無法進行合併化,即便能源有效亦復如此)。
於一個實施例中,執行緒合併模組510包括一活動(或利用率)模組以決定目前活動度量(例如處理元件
活動,諸如核心或執行緒活動)。於一種情況下,在一時間週期(或循環週期)期間,決定一處理元件為活動的循環週期有多少個。舉例言之,歷經1000個循環週期,決定有多少個循環週期硬體執行緒501T0為活動(簽發指令、於活動、或量測執行緒或核心活動的其它形式)。注意活動(或處理元件利用率)可以絕對術語(例如活動週期數)或相對術語(例如在一時間週期間歷經循環週期總數為活動的週期數目)表示。於一個實施例中,硬體計數器及/或儲存設施追蹤此種活動。但也可使用韌體或軟體。
從目前活動度量(例如執行緒利用率),決定針對合併的估計利用率。換言之,外推累積在活動核心之子集570上的目前工作負荷(進行執行緒550-553及其產生的利用率/活動)如何。從前文說明可知此種估計可對在活動核心之集合內部任何範圍或任何數目的子集執行(例如累積至二核心501、502或至三核心501-503)。基於此估計利用率,決定合併至活動核心之子集570是否將增減功耗(亦即合併是否為能源有效)。除非頻率或電流無增加,則無工作負荷的增加,可假設一核心的功耗將維持相對地相同。因此執行緒552、553之遷移至核心501、502及核心503、504的減低電力可視為能源有效。
但於若干實施例中,執行緒合併模組510無法控制核心的設定頻率。取而代之,其它硬體或軟體諸如特權超管理器515設定此操作點。舉個實例,超管理器515具有與活動臨界值相關的頻率步進,故較高活動利用
較高頻率。為了例示說明,假設核心501能於3GHz操作。超管理器515聯結3個臨界值(例如25%、50%、75%)與頻率步進(例如高於25%為1GHz,高於50%為2GHz,及高於75%為3GHz)。故設想一種景況,於該處在硬體執行緒501T0上執行軟體執行緒550的核心501係以40%執行緒利用率操作(例如在一時間週期中501T0歷經40%週期為活動)。若執行緒552係合併至核心501且核心501的執行緒利用率估值隨額外工作負荷增至超過50%臨界值,則超管理器515將核心501的頻率從1GHz提高至2GHz,可能遽增功耗。因此,問題變成來自於合併的功耗增加是否將低於遷移後來自於功率減低的核心502、503的節電。
結果,於某個實施例中,首先決定合併至活動核心之子集570是否將導致頻率的增高。若否,則如前述,可假設在活動核心之子集570上功耗不會顯著增加。或者至少假設非活動核心之子集575的功率減低可能係超越功率的任何增加。另外,若執行緒利用率(如所估計)的增加將造成核心之子集570的頻率增高(亦即估計利用率超過得自OS或其它超管理器的活動臨界值,則考慮核心之子集570的估計功耗相對於目前功耗的處理。換言之,產生第一合併路徑。若活動核心之子集570的估計執行緒利用率比較活動臨界值,指示頻率並無增高,則識別合併機會而不會遭逢緩慢路徑(相對於合併後的估計功耗,更加深入估計目前功耗,可考慮針對各個活動工作負荷的頻
率之縮放因數)。
又,即便於慢路徑,如前文闡釋,功耗可能並非唯一考量。例如,假設決定工作負荷550-553合併成核心之子集570將從目前狀態減低功耗。但該功耗的減低比較遷移期間導入執行緒552-553的延遲量小。故執行緒合併模組510及/或超管理器515放棄該合併機會以確保針對軟體執行緒552-553保證最低效能,即便該合併可能節省少量電力亦復如此。換言之,於若干實施例中,合併機會的識別係當作一合併暗示處理,基於設計師體現考慮任何數目的因數之演算法/策略決定是否進行或不進行合併。
至於特定具體實施例,如下方程式1提供演算法之一實施例以從一目前執行緒利用率決定估計的執行緒利用率。
此處,R表示原先活動實體執行緒之數目,M為核心數目(例如該工作負荷欲合併的活動核心之子集570,諸如於例示說明中為2),N為每個核心之執行緒數目(例如2產生子集570中的執行緒總數分母為4),及目前執行緒利用率之和包括全部活動處理元件的目前執行緒利用率(例如若執行緒550-553各自利用30%核心501-
504,則執行緒利用率總和等於120%)。假設如上實例,且忽略瞬間的S參數及頻率比,則新的/估計執行緒利用率將等於30%。因存在有相同估計執行緒利用率(頻率不增加,原因在於工作負荷不變)則發生合併。但於另一個實施例中,核心型別在執行緒利用率的估值上扮演某個角色。例如,碼縮放性影響利用率。假設縮放因數係藉方程式2界定。
及因而於此種情況下,線性假設係表示於如下方程式3。
因此於一種情況下,導入參數Sn以補償此種縮放性。為了例示說明,低縮放性代碼接近0,而高縮放性代碼接近1,而其它縮放性程度介於其間。注意縮放因數的預測係藉硬體完成。
繼續前述實例,具有高縮放因數1,則於實體執行緒數目減少50%但不改變操作頻率之情況下,30%平均執行緒利用率增至60%利用率。此處,執行緒合併模組510個別地或組合其它模組諸如超管理器515針對頻率而
比較60%執行緒利用率與執行緒活動。及若估計利用率超過臨界值,決定欲提高頻率。從該項決定,進一步決定頻率的增高是否將導致功耗增加超過目前功耗。換言之,合併至活動核心之子集570是否為能源無效。若沒有能源節約,則不執行合併。
除非有任何其它因素(例如溫度或效能)不排除該合併,否則執行合併。也須注意方程式1係藉作業系統改變頻率成為起點頻率位準之比加以標準化。於此種情況下,平均的或估計的執行緒利用率係以利用的頻率百分比表示。舉例言之,假設估計包括在接近1的縮放因數下2GHz的新頻率,具有60%平均利用率的處理器係在1.5GHz位準,則新的可能目標頻率係以48%平均值表示。及進一步假設從4執行緒源至2執行緒將提高利用率至84%位準。結果如前述,臨界值比較也呈頻率比較形式而非百分比活動比較形式。
一旦決定若進行執行緒550-553之合併成核心501、502(子集570)時將出現頻率的增高,則決定/估計功耗的增減。可運用任何已知之能源/功率估計技術。舉例言之,當估計欲提高頻率時,則頻率估值的增加外推成核心501、502的功耗。及外推功耗係比較目前功耗以決定就大規模觀點合併是否可節電(例如從整個處理器、積體電路、封裝體、及/或平台的觀點)。
一旦識別合併機會且決定進行合併,遷移模組520將執行緒550-553遷移成核心之子集570。雖然於
圖式中顯示為分開,但於一個實施例中,遷移模組520係重疊及/或包括於OS排程器515內部。於任一種情況下,遷移包括拷貝及/或移動硬體執行緒503T0、504T0中的針對軟體執行緒552、553之脈絡資訊至可用的硬體執行緒501T0、502T0。由前文可知此項遷移成本(針對遷移脈絡導入的延遲)在決定是否應進行合併的策略及/或演算法中須列入考慮。
又一旦出現遷移,核心503、504為自由(或閒置)。若可藉電源模組530減低電源(例如時鐘閘控、電源閘控、減慢時鐘、減低功率、其組合等)以達成能源效率及能源節約。舉個實例,電源模組530包括電源控制單元(PCU)。於一個實施例中,PCU包含一微控制器及共同定位電源碼。此處,一旦核心503、504為閒置,則閒置狀態諸如藉來自超管理器515的請求報告給PCU 530以減低電力,或回應於該合併而硬體/韌體/軟體指示減低電力。結果,PCU將核心503、504置於低功率態,可包括對核心降低或閘控時鐘、頻率、電壓等的任何範圍。結果,先前在處理器上執行的相同工作負荷仍可以相同效率執行。但透過伺機地減低非活動核心的電力可節省能源。及執行緒合併模組510繼續尋求於運行時間期間的進一步合併機會以產生甚至更加節電。
移至圖6,顯示一種合併執行緒之方法的模組實施例及/或流程圖表示型態。注意流程(或模組)係以實質上串列方式例示說明。但此等流程的串列本質及圖中闡釋
的順序二者皆非必要。舉例言之,參考圖6,於有些體現中可能不特別執行於流程620決定是否欲提高頻率。取而代之,於流程630透過估計已合併的功耗,各次迭代重複可決定接受測試的合併機會是否將導致功耗的增高。又,流程係以實質上線性或串列方式例示說明。但流程可以並列或以不同順序執行。此外,例示說明的流程或邏輯方塊中之任一者可於硬體、軟體、韌體或其組合內部執行。如前文及後文陳述,於一個實施例中,各個流程表示一模組、一模組之部分、或模組的重疊。此外,當執行時,任何程式碼可呈一或多個指令或操作形式。
於流程605,決定針對多個活動處理元件(例如處理器、核心、執行緒等)的一活動度量。舉例言之,硬體決定多個處理元件中的各個處理元件為活動的週期數。及該週期數目或該週期占量測的週期總數的百分比(百分利用率)係經加總以決定一目前總處理元件利用率。
接收針對多個活動處理元件的活動度量之表示型態(呈週期、百分比、或其它形式)。舉例言之,硬體計數器、暫存器或累積器係用以追蹤活動週期。及在一週期結束時,軟體輪詢硬體以取回與接收循環週期計數。然後軟體執行計算以決定活動的真正表示型態。但本例純粹為說明例,原因在於此處流程中之任一者可於硬體、軟體、韌體或其組合中執行。
基於針對多個活動處理元件所接收的及/或求出的活動度量,於流程615-625決定從多個活動處理元件
至較少數的活動處理元件(例如一子集)的一工作負荷之合併是否包括頻率的增高。於一個實施例中,於流程615,從目前活動度量決定用於更少數(子集)活動處理元件的一估計(新)活動度量。舉例言之,如上方程式1(或其變化例)係用以計算/估計合併後的一新平均利用率。注意新平均利用率可以任一種方式表示(例如週期數、百分比、頻率量、或其它已知之處理活動表示型態)。
於流程620,若新平均利用率係高於100%,則合併嘗試被中止,返回流程605中尋求更高合併機會。換言之,若利用率係超過該核心之子集所能因應(利用率大於100%),則該試圖被中止,原因在於可能大增功耗及/或對效能造成實質上不良影響。
又,若估計的執行緒活動/利用率係低於100%,則於流程625決定新估計的活動度量是否高於請求頻率提高的一特權位準軟體活動臨界值。舉例言之,作業系統(OS)策略可包括某些利用率臨界值以請求更高頻率(或更高效能)。為了舉例說明,假設OS碼包括90%利用率臨界值以請求加速頻率(或最大電流)。若該合併將導致超過90%的估計利用率,則決定欲累積工作負荷的該核心之子集上的頻率須提高。但若新估計利用率係低於加速模式臨界值,使得其將維持或減低來自目前利用率的頻率,則於流程625執行合併。換言之,若新估計平均利用率係交叉將造成目前頻率增高的任何臨界值利用率,則假設合併將節電而無需實際上估計在合併後的功耗。
又,如於流程625決定,若於合併之後欲提高頻率,則於流程630須決定提高頻率是否將導致功耗的增加。換言之,從多個活動處理元件至處理元件子集的工作負荷的合併是否實際上將導致功耗的減低。若功耗將增加(亦即合併非為功率有效或能源有效),則合併機會被中止,及如前述流程返回640。但若合併後功耗將減低(亦即合併係為功率有效或能源有效),則將於流程640執行合併。舉個實例,來自非活動核心之子集(亦即欲減低功率的核心)之軟體執行緒係遷移至活動核心之子集。至於一具體實施例,遷移邏輯可包括以十字交叉組態耦接至一處理器的處理元件之儲存裝置,使得任何硬體執行緒脈絡可快速地且有效地遷移/切換入另一硬體執行緒;甚至在核心間遷移/切換。
如此處使用,一模組係指硬體、軟體、及/或韌體的任一項組合。舉個實例,一模組包括與非暫時性媒體相關的的硬體諸如微控制器以儲存適用以由該微控制器執行的碼。因此,於一個實施例中,述及一模組係指特別組配以辨識及/或執行欲保有於一非暫時性媒體上的代碼之硬體。此外,於另一個實施例中,一模組的使用係指包括該代碼的非暫時性媒體,其係特別適用以藉微控制器執行以從事預定操作。如此可推斷於又另一個實施例中,模組(於本實例中)一詞可指稱微控制器與非暫時性媒體的組合。經常例示說明為分開的模組邊界常見為各異且可能重疊。舉例言之,第一與第二模組可分享硬體、軟體、韌體
或其組合,但可能保有若干獨立的硬體、軟體、或韌體。於一個實施例中,邏輯一詞的使用包括硬體諸如電晶體、暫存器、或其它硬體諸如可程式規劃邏輯裝置。
如此處使用,一值一詞包括一數目一狀態一邏輯態、或一二進制邏輯態的任一種已知之表示型態。經常邏輯位準、邏輯值或邏輯數值等的使用也係指1及0,單純地表示二進制邏輯態。舉例言之,1係指高邏輯位準,及0係指低邏輯位準。於一個實施例中,儲存胞元諸如電晶體或快閃記憶體胞元可保有單一邏輯值或多個邏輯值。但於電腦系統曾使用數值之其它表示型態。舉例言之,十進制數字10也可以1010之二進制值及十六進制字母A表示。因此,一值包括能夠保有於電腦系統中的資訊之任何表示型態。
此外,狀態可以數值或部分數值表示。舉個實例,第一值諸如邏輯1可表示內設態或初始態;而第二值諸如邏輯0可表示非內設態。此外,於一個實施例中,復置及設定等術語分別地表示內設值或態及更新值或態。舉例言之,內設值可能包括高邏輯值,亦即復置;而更新值可能包括低邏輯值,亦即設定。注意數值之任一種組合可用以表示任何數目的狀態。
前文陳述的方法、硬體、軟體、韌體或代碼之實施例可透過儲存於可藉一處理元件執行的機器可存取、機器可讀取、電腦可存取、電腦可讀取媒體上的指令或代碼體現。非暫時性機器可存取/讀取媒體包括以可由
機器諸如電腦或電子系統讀取形式提供(亦即儲存及/或傳輸)資訊的任何機構。舉例言之,非暫時性機器可存取媒體包括隨機存取記憶體(RAM)諸如靜態RAM(SRAM)或動態RAM(DRAM);ROM;磁性或光學儲存媒體;快閃記憶體裝置;電氣儲存裝置;光學儲存裝置;聲學儲存裝置;其它形式的儲存裝置用以保有接收自暫時性(傳播)信號(例如載波、紅外線信號、數位信號)的資訊等,須與可從其中接收資訊的非暫時性媒體區別。
於本說明書全文中述及「一個實施例」或「一實施例」表示連結該實施例描述之一特定特徵、結構、或特性係包括於至少一個實施例中。因此,於本說明書全文中各處出現「於一個實施例中」或「於一實施例中」並非必要全部皆係指同一個實施例。此外,該等特定特徵、結構、或特性可以任一種適當方式組合於一或多個實施例。
於前文說明書中,已經參考特定具體實施例做出詳細說明。但顯然易知可不悖離如隨附之申請專利範圍陳述的本發明之廣義精髓及範圍而對其做出各項修改及變化。據此,說明書及圖式須視為例示說明而非限制性意義。此外,前文實施例及其它實例語言的使用並非必要皆係指相同實施例或相同實例,反而可指稱不同的分開的實施例,也可能為相同的實施例。
100‧‧‧實體處理器
101、102‧‧‧核心
101a-b、102a-b‧‧‧架構暫存器
105‧‧‧匯流排介面
110‧‧‧較高層級快取記憶體
120、121‧‧‧分支目標緩衝器(BTB)及指令轉譯緩衝器(I-TLB)
125、126‧‧‧解碼
130、131‧‧‧重新命名/配置器
135、136‧‧‧重新排序/報廢單元
140、141‧‧‧排程器/執行單元
150、151‧‧‧低層級資料快取記憶體及資料轉譯緩衝器(D-TLB)
160‧‧‧電源控制
170‧‧‧控制器
175‧‧‧系統記憶體
176、177‧‧‧代碼
180‧‧‧裝置
Claims (27)
- 一種用於有效能源消耗之裝置,其係包含:第一數目之硬體處理元件,係用以執行第二數目之軟體執行緒;合併模組,係適用以回應於該第二數目小於該第一數目而於運行時間期間決定將該第二數目之軟體執行緒合併成該第一數目之硬體處理元件之子集是否為能源有效,及包括:活動模組,係適用以決定於運行時間期間該第一數目之硬體處理元件的目前活動度量;利用率模組,係適用以決定被合併至該第一數目之硬體處理元件之該子集的該目前活動度量是否將增加功率消耗;及控制模組,係適用以回應於該合併的目前活動度量將不增加功率消耗的決定,而決定該合併係為能源有效,及回應於該合併的目前活動度量將增加功率消耗的決定,而決定該合併係非為能源有效;及遷移模組,係適用以回應於該第二數目之軟體執行緒合併成該第一數目之硬體處理元件之該子集係為能源有效的決定,而將該第二數目之軟體執行緒遷移至該第一數目之硬體處理元件之該子集。
- 如申請專利範圍第1項之裝置,其中該第一數目之硬體處理元件包括M個核心,及其中該等M個核心係用以包括N個硬體執行緒,N係大於或等於M。
- 如申請專利範圍第1項之裝置,其中該利用率模組係適用以:決定被合併至該第一數目之硬體處理元件之該子集的該目前活動度量是否將造成頻率步進策略提高該第一數目之硬體處理元件之該子集的頻率;回應於該合併的目前活動度量將造成該頻率步進策略不提高該第一數目之硬體處理元件之該子集的頻率的決定,而決定該合併的目前活動度量將不增加功率消耗;及回應於該合併的目前活動度量將造成該頻率步進策略提高該第一數目之硬體處理元件之該子集的頻率的決定,而決定被合併至該第一數目之硬體處理元件之該子集的該目前活動度量是否將造成估計功率消耗的增加。
- 如申請專利範圍第1項之裝置,其中該遷移模組係用以將該第二數目之軟體執行緒中的來自該第一數目之處理元件的不在硬體處理元件之該子集內的硬體處理元件的軟體執行緒的脈絡資訊拷貝及移動至硬體處理元件之該子集。
- 如申請專利範圍第4項之裝置,其係進一步包含功率模組係適用以在該拷貝及移動之後將該第一數目之處理元件中不在該硬體處理元件之該子集內的該等硬體處理元件置於低功率態。
- 一種用於有效能源消耗之裝置,其係包含:多數核心,該等多數核心各自包括多數硬體執行緒,該等多數硬體執行緒各自係配置以獨立地與軟體執行緒相 關;合併模組,係適用以決定將與從該等多數核心之第一數目的活動核心的硬體執行緒相關的軟體執行緒合併至該第一數目的活動核心之子集是否將導致功率消耗之增加;遷移模組,係適用以回應於該合併模組決定將與從該第一數目的活動核心合併至該第一數目的活動核心之該子集將不導致該功率消耗之增加,而將從該等多數活動核心中不在該第一數目的活動核心之該子集內的一或多個核心中包括的硬體執行緒的軟體執行緒遷移至該第一數目的活動核心之該子集中包括的硬體執行緒;以及功率模組,係配置以回應於該遷移模組將從包括於該等一或多個核心的硬體執行緒的軟體執行緒遷移至包括於該第一數目的活動核心之該子集的硬體執行緒,而請求不在該第一數目的活動核心之該子集內的該等多數活動核心之該等一或多個核心進入低功率態。
- 如申請專利範圍第6項之裝置,其中該合併模組係適用以:決定包括於該等多數核心中之全部該等多數執行緒之目前執行緒利用率;決定在將從該等多數核心之該第一數目的活動核心的軟體執行緒合併至該第一數目的活動核心之該子集後,該第一數目的活動核心之該子集的估計執行緒利用率;決定該第一數目的活動核心之該子集的該估計執行緒利用率是否將導致該第一數目的活動核心之該子集之頻率 增高;及回應於決定該第一數目的活動核心之該子集的該估計執行緒利用率將不導致該第一數目的活動核心之該子集之該頻率增高而不需決定在將從該等多數核心之第一數目的活動核心的軟體執行緒合併至該第一數目之活動核心之子集之後該第一數目的活動核心之該子集的估計功率消耗,即可決定將與從該等多數核心之該第一數目的活動核心的硬體執行緒相關的軟體執行緒合併至該第一數目之活動核心之該子集將不導致該功率消耗的增加。
- 如申請專利範圍第7項之裝置,其中該合併模組係進一步適用以:回應於決定該第一數目之活動核心之該子集的該估計執行緒利用率將導致該第一數目之活動核心之該子集之該頻率增高而決定在將從該等多數核心之該第一數目之活動核心的軟體執行緒合併至該第一數目之活動核心之該子集後,該第一數目之活動核心之該子集的該估計功率消耗;及回應於該估計功率消耗係低於該第一數目之活動核心之目前功率消耗而決定將與從該等多數核心之第一數目的活動核心的硬體執行緒相關的軟體執行緒合併至該第一數目之活動核心之子集係將不導致該功率消耗的增加。
- 如申請專利範圍第7項之裝置,其中該合併模組係適用以基於下列演算法來決定包括於該等多數核心中的全部多數執行緒之目前執行緒利用率:
- 如申請專利範圍第7項之裝置,其中該目前執行緒利用率係包括在循環週期期間執行緒活動的循環週期之數目。
- 一種用於有效能源消耗之方法,其係包含:基於多數活動處理元件之目前活動度量而決定至該等多數活動處理元件之子集的執行緒合併的新活動度量;決定該新活動度量是否將導致該等多數活動處理元件之該子集的頻率增高;回應於決定該新活動度量將不導致該頻率增高而執行至該等多數活動處理元件之該子集的執行緒合併;回應於決定該新活動度量將導致該等多數活動處理元件之該子集的該頻率增高而決定至該等多數活動處理元件之該子集的該執行緒合併是否將導致功率消耗的增加;及 回應於決定至該等多數活動處理元件之該子集的該執行緒合併將不導致該功率消耗的增加而執行至該等多數活動處理元件之該子集的該執行緒合併。
- 如申請專利範圍第11項之方法,係進一步包含回應於該新活動度量超過用於增高頻率的作業系統活動臨界值而決定該新活動度量將導致頻率的增高。
- 如申請專利範圍第11項之方法,係進一步包含回應於決定該新活動度量將不導致該頻率增高而將從該等活動處理元件的不在該等多數活動處理元件之該子集內的非子集處理元件的執行緒遷移至該等多數活動處理元件之該子集。
- 如申請專利範圍第11項之方法,係進一步包含決定與該目前活動度量和該等多數活動處理元件的目前頻率的組合相比,該新活動度量與該等多數活動處理元件之該子集的增高的頻率的組合是否將導致更高的功率消耗。
- 如申請專利範圍第11項之方法,其中該等多數活動處理元件係選自於由多數硬體執行緒、多數核心、及多數處理裝置所組成之組群。
- 一種包括代碼之非暫時性機器可讀取媒體,該代碼在被執行時造成機器用以執行如申請專利範圍第11至15項之方法。
- 一種用於有效能源消耗之方法,其係包含:接收多數活動處理元件的活動度量之表示;基於該等多數活動處理元件的該活動度量,決定將工 作負荷從該等多數活動處理元件合併至該等多數主動處理元件中之較少數是否包括頻率的增高;回應於決定該合併包括該頻率的增高而基於該等多數活動處理元件的該活動度量而決定將該工作負荷從該等多數活動處理元件合併至該等多數活動處理元件中之該較少數是否包括功率消耗的減低;及回應於決定該合併係不包括該頻率的增高或該合併係包括該功率消耗的減低而執行將該工作負荷從該等多數活動處理元件合併至該等多數活動處理元件中之該較少數。
- 如申請專利範圍第17項之方法,其中多數活動處理元件的該活動度量係包括在循環週期期間該等多數處理元件各自的活動的循環週期的百分比之總和。
- 如申請專利範圍第17項之方法,該方法係進一步包含:根據該等多數活動處理元件的該活動度量,決定該等多數活動處理元件中之該較少數的估計活動度量;決定該估計活動度量是否係高於用以請求頻率的增高之特權位準軟體活動臨界值;及回應於決定該估計活動度量係高於用以請求頻率的增高之該特權位準軟體活動臨界值而決定將該工作負荷從該等多數活動處理元件合併至該等多數活動處理元件中之該較少數係包括該頻率的增高。
- 如申請專利範圍第17項之方法,其中該等多數活動處理元件係選自於由多數硬體執行緒、多數核心、及 多數處理裝置所組成之組群。
- 如申請專利範圍第17項之方法,其中該方法係進一步包含不需決定將該工作負荷從該等多數活動處理元件合併至該等多數活動處理元件中之該較少數是否包括功率消耗的減低,即可執行將該工作負荷從該等多數活動處理元件合併至該等多數活動處理元件中之該較少數。
- 一種包括代碼之非暫時性機器可讀取媒體,該代碼在被執行時造成機器用以執行如申請專利範圍第17至21項之方法。
- 一種用於有效能源消耗之裝置,其係包含:第一數目之硬體處理元件,係配置以執行第二數目之軟體執行緒;合併構件,係用以於運行時間期間決定回應於該第二數目小於該第一數目而將該第二數目之軟體執行緒合併至該第一數目之硬體處理元件之子集是否為能源有效,及包括:活動構件,係用以決定於運行時間期間該第一數目之硬體處理元件的目前活動度量;利用率構件,係用以決定被合併至該第一數目之硬體處理元件之該子集的該目前活動度量是否將增加功率消耗;及控制構件,係用以回應於該合併的目前活動度量將不增加功率消耗的決定,而決定該合併係為能源有效,及回應於該合併的目前活動度量將增加功率消耗 的決定,而決定該合併係非為能源有效;及遷移構件,係用以回應於該合併構件決定將該第二數目之軟體執行緒合併至該第一數目之硬體處理元件之該子集係為能源有效而將該第二數目之軟體執行緒遷移至該第一數目之硬體處理元件之該子集。
- 如申請專利範圍第23項之裝置,其中該第一數目之硬體處理元件包括M個核心,及其中該等M個核心係配置以包括N個硬體執行緒,N係大於或等於M。
- 如申請專利範圍第23項之裝置,其中用以決定被合併至該第一數目之硬體處理元件之該子集的該目前活動度量是否將增加功率消耗的該利用率構件係包含用於以下操作的利用率構件決定被合併至該第一數目之硬體處理元件之該子集的該目前活動度量是否將造成頻率步進策略提高該第一數目之硬體處理元件之該子集的頻率;回應於決定被合併至該第一數目之硬體處理元件之該子集的該目前活動度量將造成頻率步進策略不提高該第一數目之硬體處理元件之該子集的頻率,決定被合併至該第一數目之硬體處理元件之該子集的該目前活動度量將不增加功率消耗;回應於決定被合併至該第一數目之硬體處理元件之該子集的該目前活動度量將造成頻率步進策略提高該第一數目之硬體處理元件之該子集的頻率,決定被合併至該第一數目之硬體處理元件之該子集的該目前活動度量是否將造 成估計功率消耗的增加。
- 如申請專利範圍第23項之裝置,其中用以將該第二數目之軟體執行緒遷移至該第一數目之硬體處理元件之該子集的遷移構件係包含該遷移模組用以將該第二數目之軟體執行緒中的從該第一數目之處理元件的不在硬體處理元件之該子集內的硬體處理元件之軟體執行緒的脈絡資訊拷貝及移動至硬體處理元件之該子集。
- 如申請專利範圍第26項之裝置,其係進一步包含功率構件係用以在該拷貝及移動之後將該第一數目之處理元件中不在該硬體處理元件之該子集內的之該等硬體處理元件置於低功率態。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/327,692 US9075610B2 (en) | 2011-12-15 | 2011-12-15 | Method, apparatus, and system for energy efficiency and energy conservation including thread consolidation |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201337771A TW201337771A (zh) | 2013-09-16 |
TWI550518B true TWI550518B (zh) | 2016-09-21 |
Family
ID=46491664
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101147168A TWI550518B (zh) | 2011-12-15 | 2012-12-13 | 用於包括執行緒合併之能源效率及能源節約的方法、裝置及系統 |
Country Status (4)
Country | Link |
---|---|
US (1) | US9075610B2 (zh) |
CN (1) | CN104081315B (zh) |
TW (1) | TWI550518B (zh) |
WO (1) | WO2013090449A1 (zh) |
Families Citing this family (38)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9348656B2 (en) * | 2011-12-19 | 2016-05-24 | Advanced Micro Devices, Inc. | Apparatus and method for managing power among a plurality of processors sharing a thermal platform |
US9396020B2 (en) | 2012-03-30 | 2016-07-19 | Intel Corporation | Context switching mechanism for a processing core having a general purpose CPU core and a tightly coupled accelerator |
US9569279B2 (en) * | 2012-07-31 | 2017-02-14 | Nvidia Corporation | Heterogeneous multiprocessor design for power-efficient and area-efficient computing |
CN103823716A (zh) * | 2012-09-21 | 2014-05-28 | 宏达国际电子股份有限公司 | 具多重中央处理单元的电子装置及其效能管理方法 |
CN104781803B (zh) * | 2012-12-26 | 2018-06-15 | 英特尔公司 | 用于架构不同核的线程迁移支持 |
US9304573B2 (en) * | 2013-06-21 | 2016-04-05 | Apple Inc. | Dynamic voltage and frequency management based on active processors |
US20150324234A1 (en) * | 2013-11-14 | 2015-11-12 | Mediatek Inc. | Task scheduling method and related non-transitory computer readable medium for dispatching task in multi-core processor system based at least partly on distribution of tasks sharing same data and/or accessing same memory address(es) |
KR101842016B1 (ko) * | 2013-12-10 | 2018-03-28 | 한국전자통신연구원 | 멀티 코어 환경에서의 동적 전력 제어방법 |
US9389675B2 (en) * | 2013-12-19 | 2016-07-12 | International Business Machines Corporation | Power management for in-memory computer systems |
US9804846B2 (en) | 2014-03-27 | 2017-10-31 | International Business Machines Corporation | Thread context preservation in a multithreading computer system |
US9417876B2 (en) | 2014-03-27 | 2016-08-16 | International Business Machines Corporation | Thread context restoration in a multithreading computer system |
US9218185B2 (en) | 2014-03-27 | 2015-12-22 | International Business Machines Corporation | Multithreading capability information retrieval |
US9354883B2 (en) | 2014-03-27 | 2016-05-31 | International Business Machines Corporation | Dynamic enablement of multithreading |
US9921848B2 (en) | 2014-03-27 | 2018-03-20 | International Business Machines Corporation | Address expansion and contraction in a multithreading computer system |
US10102004B2 (en) | 2014-03-27 | 2018-10-16 | International Business Machines Corporation | Hardware counters to track utilization in a multithreading computer system |
US9594660B2 (en) | 2014-03-27 | 2017-03-14 | International Business Machines Corporation | Multithreading computer system and program product for executing a query instruction for idle time accumulation among cores |
WO2016044980A1 (zh) * | 2014-09-22 | 2016-03-31 | 华为技术有限公司 | 线程迁移方法、装置和系统 |
AU2014268246A1 (en) | 2014-11-28 | 2016-06-16 | Canon Kabushiki Kaisha | Reverting tightly coupled threads in an over-scheduled system |
CN104503832B (zh) * | 2014-12-22 | 2017-07-28 | 西安电子科技大学 | 一种公平和效率均衡的虚拟机调度系统及方法 |
US9417928B2 (en) * | 2014-12-24 | 2016-08-16 | International Business Machines Corporation | Energy efficient supercomputer job allocation |
US9760160B2 (en) * | 2015-05-27 | 2017-09-12 | Intel Corporation | Controlling performance states of processing engines of a processor |
US9733684B2 (en) * | 2015-09-14 | 2017-08-15 | Samsung Electronics Co., Ltd. | System and method for controlling power consumption |
US10073718B2 (en) | 2016-01-15 | 2018-09-11 | Intel Corporation | Systems, methods and devices for determining work placement on processor cores |
US10296067B2 (en) * | 2016-04-08 | 2019-05-21 | Qualcomm Incorporated | Enhanced dynamic clock and voltage scaling (DCVS) scheme |
CN106444436A (zh) * | 2016-07-19 | 2017-02-22 | 柳州龙辉科技有限公司 | 一种能耗信息处理装置 |
WO2018018372A1 (zh) * | 2016-07-25 | 2018-02-01 | 张升泽 | 电子芯片内的电流计算方法及系统 |
CN106292995A (zh) * | 2016-07-27 | 2017-01-04 | 李媛媛 | 电流限制在多核芯片中的应用方法及系统 |
WO2018018450A1 (zh) * | 2016-07-27 | 2018-02-01 | 李媛媛 | 电流限制在多核芯片中的应用方法及系统 |
WO2018129708A1 (en) * | 2017-01-13 | 2018-07-19 | Alibaba Group Holding Limited | Determining processor utilization of multiprocessing system |
US10664299B2 (en) * | 2017-05-24 | 2020-05-26 | Amzetta Technologies, Llc | Power optimizer for VDI system |
US10282208B2 (en) | 2017-07-14 | 2019-05-07 | International Business Machines Corporation | Cognitive thread management in a multi-threading application server environment |
CN111164538A (zh) * | 2017-12-15 | 2020-05-15 | 英特尔公司 | 处理单元的功率管理 |
CN108959020B (zh) * | 2018-05-08 | 2021-01-12 | 华为技术有限公司 | 一种计算机cpu利用率的计算方法和装置 |
US10955899B2 (en) | 2018-06-20 | 2021-03-23 | Intel Corporation | System, apparatus and method for responsive autonomous hardware performance state control of a processor |
JP2022531353A (ja) * | 2019-04-30 | 2022-07-06 | フローヴィッター ベルンハルト | 並列計算をダイナミックに最適化するための装置および方法 |
CN113806025B (zh) * | 2020-06-12 | 2023-08-18 | 富泰华工业(深圳)有限公司 | 数据处理方法、系统、电子装置及存储介质 |
US11934249B2 (en) * | 2022-03-31 | 2024-03-19 | Intel Corporation | Methods and apparatus to manage energy usage and compute performance |
US20240330048A1 (en) * | 2023-03-30 | 2024-10-03 | Intel Corporation | Apparatus and method for dynamic core management |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050071701A1 (en) * | 2003-09-30 | 2005-03-31 | International Business Machines Corporation | Processor power and energy management |
US20100037038A1 (en) * | 2008-08-06 | 2010-02-11 | International Business Machines Corporation | Dynamic Core Pool Management |
CN102163072A (zh) * | 2008-12-09 | 2011-08-24 | 英特尔公司 | 用于节能的基于软件的线程重映射 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7437581B2 (en) * | 2004-09-28 | 2008-10-14 | Intel Corporation | Method and apparatus for varying energy per instruction according to the amount of available parallelism |
US8156496B2 (en) * | 2007-01-31 | 2012-04-10 | Hewlett-Packard Development Company, L.P. | Data processing system and method |
US8381215B2 (en) * | 2007-09-27 | 2013-02-19 | Oracle America, Inc. | Method and system for power-management aware dispatcher |
US7930574B2 (en) * | 2007-12-31 | 2011-04-19 | Intel Corporation | Thread migration to improve power efficiency in a parallel processing environment |
KR101400286B1 (ko) * | 2008-01-22 | 2014-05-26 | 삼성전자주식회사 | 다중 프로세서 시스템에서 작업을 이동시키는 방법 및 장치 |
US9189282B2 (en) * | 2009-04-21 | 2015-11-17 | Empire Technology Development Llc | Thread-to-core mapping based on thread deadline, thread demand, and hardware characteristics data collected by a performance counter |
US20110055838A1 (en) * | 2009-08-28 | 2011-03-03 | Moyes William A | Optimized thread scheduling via hardware performance monitoring |
JP5531679B2 (ja) * | 2010-03-04 | 2014-06-25 | 日本電気株式会社 | Smt対応cpuを有する情報処理装置の消費電力低減方法、消費電力低減装置及び消費電力低減プログラム |
US8533719B2 (en) * | 2010-04-05 | 2013-09-10 | Oracle International Corporation | Cache-aware thread scheduling in multi-threaded systems |
US20120137289A1 (en) * | 2010-11-30 | 2012-05-31 | International Business Machines Corporation | Protecting high priority workloads in a virtualized datacenter |
US8819691B2 (en) * | 2011-05-04 | 2014-08-26 | International Business Machines Corporation | Logical partition defragmentation within a data processing system |
-
2011
- 2011-12-15 US US13/327,692 patent/US9075610B2/en not_active Expired - Fee Related
-
2012
- 2012-12-12 CN CN201280068733.8A patent/CN104081315B/zh not_active Expired - Fee Related
- 2012-12-12 WO PCT/US2012/069284 patent/WO2013090449A1/en active Application Filing
- 2012-12-13 TW TW101147168A patent/TWI550518B/zh not_active IP Right Cessation
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20050071701A1 (en) * | 2003-09-30 | 2005-03-31 | International Business Machines Corporation | Processor power and energy management |
US20100037038A1 (en) * | 2008-08-06 | 2010-02-11 | International Business Machines Corporation | Dynamic Core Pool Management |
CN102163072A (zh) * | 2008-12-09 | 2011-08-24 | 英特尔公司 | 用于节能的基于软件的线程重映射 |
Also Published As
Publication number | Publication date |
---|---|
WO2013090449A1 (en) | 2013-06-20 |
CN104081315B (zh) | 2017-06-09 |
CN104081315A (zh) | 2014-10-01 |
TW201337771A (zh) | 2013-09-16 |
US9075610B2 (en) | 2015-07-07 |
US20120185709A1 (en) | 2012-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI550518B (zh) | 用於包括執行緒合併之能源效率及能源節約的方法、裝置及系統 | |
US11755099B2 (en) | Dynamic core selection for heterogeneous multi-core systems | |
TWI516908B (zh) | 藉由耦合第一核心類型與第二核心類型來改善電力效能效率之設備、方法及系統 | |
TWI494850B (zh) | 通透地提供給作業系統之非對稱多核心處理器系統 | |
Attia et al. | Dynamic power management techniques in multi-core architectures: A survey study | |
US20150135189A1 (en) | Software-based thread remapping for power savings | |
JP5695766B2 (ja) | マルチコアシステムエネルギー消費最適化 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |