TWI479306B - 包括在功率域中能量消耗的動態控制之能量效率及能量節約的方法、設備及系統 - Google Patents
包括在功率域中能量消耗的動態控制之能量效率及能量節約的方法、設備及系統 Download PDFInfo
- Publication number
- TWI479306B TWI479306B TW101145278A TW101145278A TWI479306B TW I479306 B TWI479306 B TW I479306B TW 101145278 A TW101145278 A TW 101145278A TW 101145278 A TW101145278 A TW 101145278A TW I479306 B TWI479306 B TW I479306B
- Authority
- TW
- Taiwan
- Prior art keywords
- power
- devices
- energy
- memory
- control period
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/3206—Monitoring of events, devices or parameters that trigger a change in power modality
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
本發明係有關於積體電路及執行於其中的程式碼之能量效率及能量節約,特別係有關於但不限於功率域之動態控制。
半導體處理及邏輯設計的進步已允許在積體電路裝置上增加可展現的邏輯量。因此,電腦系統組配(configuration)已從一系統中一或多積體電路轉為在個別積體電路上具多硬體執行緒(thread)、多核心(multiple core)、多裝置及/或完整系統。此外,隨著積體電路密度的增加,計算系統(從內嵌式系統到伺服器)的功率要求必須隨之升級。再者,軟體無效率以及對硬體的要求也同時導致計算裝置能量消耗的增加。事實上,在若干研究中指出,對美國而言電腦消耗佔整體電力供應的一大部分。
有鑒於此,對於與積體電路相關之能量效率及節約實具迫切需求。而且當伺服器、桌上型電腦、筆記型電腦、超極緻筆電(ultrabook)、平板電腦(tablet)、手機(mobile phone)、處理器、內嵌式系統(embedded system)等變的更加普及時(從包含在典型電腦、汽車及電視到生物技術),電腦裝置銷售的影響從能量消耗變成對經濟系統實質、直接的影響,電腦裝置相關銷售與美國
國民生產總值(Gross Domestic Product)息息相關。再者,電腦國際銷售也已大幅增加,特別在新興市場。
當功耗變成一重要因素,趨勢由以往增加效能轉為目前關注的功耗。例如,若干功率上限技術,如在資料中心所採取的方法,確認功率不會超過限制。然而,在平台或單一積體電路中,功耗及調節主要是分散且不協調的。例如,在典型伺服器中,記憶體子系統可能消耗平台總功率預算的1/3。然而,直到現在記憶體尚未被囊括到平台功率預算中。因此,即使功率限值(power cap)置放於伺服器中,1/3的功耗留在預算外,此可能嚴重限制功率節約的機會。
再者,即使元件是在功率預算中但也往往缺乏有效的管理。如前所述,靜態功率限值限制可根據總體預算設定在元件上。但靜態限制通常包括防護頻帶(guard band)(與靜態假設相關聯之錯誤頂部(headroom),其非為平台或元件動態量制),此其潛在的限制了功率節約。再者,此等限值技術對如記憶體之突發工作量往往效果更差。因此,現行並無有效的方式可動態轉譯功率限制至一域及/或元件以使所給定的功率限制達到最大效益。
於下說明中描述許多特定細節,如特定處理器及系統組配的特定類型之範例、特定硬體結構、特定架構及微架構細節、特定暫存器組配、決定能量消耗的特定演算法、
效能計量的特定類型、特定功率域組配、特定裝置類型、特定功率限制保留給能量預算、特定功率相關測量等。顯而可知地,任何熟習本發明之技術領域者實無需施用此等特定細節。另一方面,眾所周知的元件及方法,如特定及不同的處理器架構、所述演算法的特定邏輯電路/程式碼、特定記憶體控制器組配、特定記憶體控制器交易(transaction)格式及排程、特定執行計量節流(throttling)技術、特定測量技術、特定韌體程式碼、特定互連操作以及其他處理器的特定操作細節未加以贅述以免對本發明造成不必要的混淆。
雖然以下說明實施例係參照如計算平台或微處理器等特定積體電路中的能量效率及能量節約,然其他實施例可應用在其他類型的積體電路及邏輯裝置中。在此所述實施例的類似技術及例示可施用在其他類型的電路或半導體裝置中,仍可獲得較佳能量效率及能量節約之益處。例如,所揭露之實施例不限於桌上型電腦系統。並可應用在如手持裝置、單晶片系統(SOC)以及內嵌式應用等之裝置中。手持裝置的範例包括手機、網際網路協定裝置、數位相機、個人數位助理(PDA)以及手持PC等。內嵌式應用通常包括微控制器、數位信號處理器(DSP)、單晶片系統、網路電腦(NetPC)、機頂盒(set-top box)、網路集線器、廣域網路(WAN)交換器、或其他任何系統可執行於下所例示之功能及操作。再者,在此所述之裝置、方法以及系統不限於實體計算裝置,同時可用於軟體最佳
化的能量節約及效率。顯而易見地,下述方法、裝置及系統之實施例(無論參照為硬體、韌體、軟體或其結合)對未來“綠能技術(green technology)”與效率考量的平衡是至關重要的,如產品中的功率節約及能量效率對美國經濟有重大影響。
在此所述的方法及裝置可動態控制功率域。特別地,於下所討論的動態控制功率域主要參照記憶體功率域。然而,所述裝置及方法並不限於此,其可實現在包含任何類型裝置(無論對稱或非對稱)的不同功率域中。例如,功率域的動態控制可採用多處理器系統,在此功率域為整個平台、多重處理器、處理器之多重核心、I/O裝置或其他已之知計算裝置的群組或域。或者可應用在如前所述之小型(form-factor)裝置、手持裝置、SOC或內嵌式應用中。在此,功率域可包含任何數目之非對稱裝置,其具有單獨功率特性以作為隨時間推移對整體功率限制考量。
請參照第1圖,第1圖說明包含具多核心之處理器之系統之一實施例。處理器100可為任何處理器或處理裝置,如微處理器(microprocessor)、內嵌式處理器(embedded processor)、數位信號處理器(DSP)、網路處理器(network processor)、手持處理器(handheld processor)、應用處理器(application processor)、協同處理器(co-processor)或其他可執行程式碼之裝置。在一實施例中,處理器100包含至少2個核心,核心101及核心102,其可包括不對稱核心或對稱核心(如實施例所
示)。然而,處理器100可包含任何數目的對稱或不對稱處理元件。
在一實施例中,處理元件參照為支援軟體執行緒(thread)的硬體或邏輯。硬體處理元件之範例包括:執行緒單元(thread unit)、執行緒槽(thread slot)、執行緒(thread)、處理單元(process unit)、內文(context)、本文單元(context unit)、邏輯處理器(logical processor)、硬體執行緒(hardware thread)、核心(core)及/或任何其他可用於儲存處理器狀態(如執行狀態或架構狀態)的元件。換言之,在一實施例中,處理元件可參照為任何與核心獨立的硬體,如軟體執行緒、作業系統、應用程式或其他程式碼。實體處理器典型參照為積體電路,其可能包含任何數目如核心或硬體執行緒之其他處理元件。
核心通常參照為位在積體電路上可用來保留獨立架構狀態之邏輯,其中每一獨立被保留架構狀態與至少若干專用執行資源相關聯。與核心對比,硬體執行緒通常參照為任何位在積體電路電路上可用來保留獨立架構狀態之邏輯,其中獨立的被保留架構狀態分享存取給執行資源。由此可看出,當特定資源被分享以及其他資源為架構狀態專用,在硬體執行緒及核心的命名法(nomenclature)中的線發生重疊。然而通常,作業系統會將核心及硬體執行緒視為個別的邏輯處理器,在此作業系統可在每一邏輯處理器上個別對操作進行排程。
實體處理器100,如第1圖所示,包括雙核心,核心101及102。在此,考慮核心101及102為對稱核心,即核心具有相同組配、功能單元及/或邏輯。在另一實施例中,核心101包含亂序(out-of-order)處理器核心,而核心102包含順序(in-order)處理器核心。然而,核心101及102可由任何類型的核心個別選出,如原生核心(native core)、軟體管理核心、用以執行原生指令集架構(ISA)之核心、用以執行轉譯指令集架構(ISA)之核心、協同設計核心或其他已知核心。更進一步討論,如核心101所示之功能單元於下詳述,核心102中的單元以類似方法操作。
如圖所示,核心101包含2個硬體執行緒101a及101b,其同時參照為硬體執行緒槽101a及101b。因此,如作業系統之軟體實體,在一實施例中可能將處理器100視為4個分別的處理器,即4個用來同時執行4個軟體執行緒的邏輯處器或處理元件。如前所述,第一執行緒與架構狀態暫存器101a相關聯,第二執行緒與架構狀態暫存器101b相關聯,第三執行緒與架構狀態暫存器102a相關聯,第四執行緒與架構狀態暫存器102b相關聯。在此,每一架構狀態暫存器(101a、101b、102a、102b)可參照為前述之處理元件、執行緒槽、或執行緒單元。如圖所示,架構狀態暫存器101a被複製在架構狀態暫存器101b中,因此個別的架構狀態/本文(context)可為邏輯處理器101a及邏輯處理器101b所儲存。在核心101中,其他
較小資源,如指令指標(pointer)以及在重命名定址邏輯130中重命名邏輯也可為執行緒101a及101b複製。若干資源,如在重排序/報廢單元135中的重排序(re-order)緩衝器、ILTB 120、載入/儲存緩衝器以及透過分割(partitioning)可被分享的佇列。其他資源,如通用目的內部暫存器、頁-表格基礎暫存器、低階資料快取以及資料-TLB 115、執單元140以及失序(out-of-order)單元的部分135都可能完全共享。
處理器100通常包含其他資源,其可被完全分享,透過分割分享或由/至處理單元專用。在第1圖中,說明具有處理器的說明性邏輯單元/資源之一單純範例處理器之一實施例。請留意處理器可包含或略去任一此等功能單元,就如同可包含任何其他未圖示的已知功能單元、邏輯或韌體。如圖所示,核心101包含已簡化代表性的失序(OOO)處理器核心。但順序(in-order)處理器可被使用在不同實施例中。OOO核心包含分支目標緩衝器120以預測被執行/提取的分支,以及指令轉譯緩衝器(I-TLB)120以儲存指令的位址轉譯項目。
核心101更包含解碼模組125其耦接至擷取單元120以解碼所擷取的元件。在一實施例中,擷取邏輯包含依次與執行緒槽101a、101b相關聯的個別定序器(sequencer)。通常核心101與第一指令集架構(ISA)相關聯,其定義/設定可在處理器100上執行的指令。機器碼指令為第一ISA的一部分通常包含指令之一部分(參
照為opcode),其定義/設定將被執行的指令或操作。解碼邏輯125包含從opcode辨識此等指令之電路並在管線(pipeline)傳輸已解碼的指令以進行處理如第一ISA所定義。舉例而言,在一實施例中,如下所詳述之解碼器125包含被設計或施用以辨識如交易指令(transactional instruction)等特定指令之邏輯。由於解碼器125的辨識,架構或核心101採取特定、預先定義的作為以執行與對應指令相關聯之工作。值得注意的是在此所述之任何工作(task)、區塊(block)、操作(operation)以及方法可響應單一或多重指令執行;其中若干可為新或舊的指令。
在一範例中,定址器或重命名器區塊130包含用來保留資源之定址器,如用以儲存指令處理結果之暫存器檔案。然而,執行緒101a及101b可能用於失序執行,在此定址器及重命名器區塊130也保留其他資源,如用以來追蹤指令結果之重排序緩衝器。單元130也可包含暫存器重命名器以對程式/指令參照暫存器進行重命名為處理器100內部之其他暫存器。重排序/報廢單元135包含如前述記錄器緩衝器、載入緩衝器、以及儲存緩衝器之元件,以支援失序執行及稍後執行失序指令的順序報廢。
在一實施例中,排程器(scheduler)及執行單元區塊140包含用於在執行單元上排程指令/操作之排程器。例如,浮點(floating point)指令會排程在具有可用浮點執行單元之執行單元埠上。與此執行單元相關聯之暫存器檔
案會被包含以儲存資訊指令處理結果。範例執行單元包含浮點執行單元、整數執行單元、跳躍執行單元、載入執行單元、儲存執行單元以及其他已知執行單元。
較低階資料快取及資料轉譯緩衝器(D-TLB)150耦接至執行單元140。資料快取用以儲存最近使用/運算元件,如資料運算元,其可能被保留在記憶體內聚狀態(memory coherency state)中。D-TLB用來儲存最近虛擬/線性至實體位址轉譯。在一特定範例中,處理器可包含頁表格結構以切分實體記憶體為複數的虛擬頁。
在此,核心101及102共享較高階(higher-level)或進階(further-out)快取110的存取,其用以快取最近提取的元件。請注意較高階或進階係指從執行單元的快取階層增加或進階方式。在一實施例中,較高階快取110為一最後階層(last-level)資料快取一在記憶體階層或處理器100中的最後快取-如第二或第三階層資料快取。然而,較高階快取110不受限於此,其可相關聯或包含指令快取。追蹤快取-指令快取之一類型-其反而可能被耦接於解碼器125後以儲存最近的解碼追蹤。
在圖示組配中,處理器100同時包含匯流排介面模組105。傳統上,於下詳述的控制器170是包含在計算系統中處理器100外部。在此情形下,匯流排介面模組105會與處理器100外部裝置進行溝通,如系統記憶體175、晶片集(通常包含連接至記憶體175之記憶體控制器集線器以及I/O控制器集線器以連接至週邊裝置)、記憶體控制
器集線器、北橋或其他積體電路。以及在此情形下,匯流排105可包含任何已知互連(interconnect),如多點匯流排(mutli-drop bus)、點對點互連(point-to-point interconnect)、序列互連(serial interconnect)、平行匯流排(parallel bus)、一致性(如快取一致性)匯流排(coherent bus)、階層協定架構(layered protocol architecture)、差動匯流排(differential bus)以及GTL匯流排。
記憶體175可為處理器100專用或與系統中其他裝置共享。記憶體175最普遍的範例類型包含動態隨機存取記憶體(DRAM)、靜態RAM(SRAM)、非揮發性記憶體(NV memory)以及其他已知的記憶體裝置。請注意裝置180可包含圖形加速器、耦接至記憶體控制器集線器之處理器或卡、耦接至I/O控制器集線器之資料儲存、無線收發器、快閃裝置、音訊控制器、網路控制器或其他已知裝置。
然而請注意,在圖示實施例中,控制器170例示為處理器100的一部分。近來,由於更多的邏輯與裝置被整合在單一晶粒(single die)上,如晶片上系統(SOC),每一此等裝置可與處理器100結合。例如,在一實施例中,記憶體控制器集線器170與處理器100在同一封裝(package)及/或晶粒(die)上。在此,核心的一部分(on-core部分)包含一或多控制器170以與其他如記憶體175或圖形裝置180進行介面溝通。此種包含與其他裝
置介面溝通的互連及控制器之組配通常參照為on-core(或un-core組配)。舉例而言,匯流排介面105包含具有記憶體控器的環狀互連(ring interconnect)以作為記憶體175之介面以及圖形控制器以作為圖形處理器180之介面。然而,在SOC環境中,尚有更多裝置如網路介面、協同處理器、記憶體175、圖形處理器180以及任何其他可整合於晶粒或積體電路之已知電腦裝置/介面,以提供小型但具高功能及低功率消耗。
在一實施例中,處理器100用於執行編譯器(compiler)、最佳化及/或轉譯器程式碼177進行編譯、轉譯及/或最佳化應用程式碼176以支援在此所述之裝置及方法或其中之介面。編譯器通常包含程式或程式集以轉譯來源本文(text)/程式碼(code)為目標本文/程式碼。通常,編譯器對程式/應用程式程式碼的編譯會以多個階段(phase)及過程(pass)完成以轉換高階程式語言碼為低階機器碼或組合語言程式碼。然而,單一過程編譯器仍可為簡單編譯所應用。編譯器可利用任何已知的編譯技術及執行任何已知的編譯操作,如語法分析(lexical analysis)、預處理(preprocessing)、剖析(parsing)、語意分析(semantic analysis)、程式碼產生(code generation)、程式碼轉換(code transformation)以及程式碼最佳化(code optimization)。
較大型的編譯器通常包含多個階段,但這些階段通常可總括為2個通用階段:(1)前端(front-end),例如
通常在此進行語法處理、語意處理以及若干轉換/最佳化,以及(2)後端(back-end),例如通常在此進行分析、轉換、最佳化以及程式碼產生。有些編譯器為中間型,其展示在編譯器前端及後端間的模擬切分。因此,編譯器的插入、結合、產生或其他已知操作可發生於前述任何階段或過程,以及編譯器的其他任何已知階段或過程。舉例而言,編譯器可在一或多編譯階段插入操作、呼叫、功能等等,例如在編譯的前端階段插入呼叫/操作以及接著在轉換階段期間轉換此呼叫/操作為低階程式碼。請注意在動態編譯期間編譯器程式碼或動態最佳化程式碼可插入此等操作/呼叫,如同在執行期間可最佳化程式碼以利執行。作為一特定例示,二進制碼(已編譯碼)可在執行期間動的進行最佳化。在此,程式碼可包含動態最佳化程式碼、二進制程式碼(binary code)或兩者之結合。
類似於編譯器,如二進制轉譯器之轉譯器可靜態或動態的轉譯程式碼為最佳化及/或轉譯程式碼。因此,程式碼、應用程式碼、程式程式碼或其他軟體環境可參照為:(1)動態或靜態的執行編譯器程式、最佳化程式碼最佳化工具或轉譯器以編譯程式碼、維持軟體結構、執行其他操作、最佳化程式碼或轉譯程式碼;(2)主要程式碼的執行包含操作/呼叫,如已被最佳化/編譯的應用程碼;(3)執行其他程碼,如公用程式(library)、與主程式程式碼相關聯以維持軟體結構、執行其他軟體相關操作或最佳化程式碼;或(4)其上所述之結合。
在一實施例中,處理器100可動態控制功率域。在一實施例中功率域包含一群由功率傳遞及功率限制角度來說具有意義的裝置。一域可以是同質(homogeneous)(相同裝置類型)或異質(heterogeneous)(不同元件或裝置類型)。在一實施例中,記憶體功率域包含耦接至記憶體控制器之記憶體,如耦接至控制器170之記憶體裝置(如系統記憶體175)。
功率域的動態控制包含控制功率域在執行期間的功率。在一範例中,傳遞到功率域的功率可在供應器中進行限制或控制。然而,單純只在供應器中調節功率可能在平衡功率域中不同裝置間的功率需求上顯得沒有效率。以及雖然功率已成為重要考量,但效能仍為一重要因素。因此,在另一範例中,功率限制是在一時間量中(時窗)進行功率域的設定。以及此域的功耗(無論是全域及/或以個別裝置為基礎)是動態在時間量中進行預算及強制以符合功率限制。
請注意功率限制可以任何方式設定。例如,平台階層的功率管理者決定在計算系統時間推移中功率如何在多重域間分配。或者功率域可以自我調整(即基於電流條件決定隨著時間合理的功率限制)。在另一範例中,操作模式或使用者可對一或多域設定功率限制。事實上,任何對裝置或計算系統提供功率限制的已知方法都可用於功率域功率限制的設定。
欲在域中進行關於功率限制的預算及強制,功率模組
160,圖示於處理器100中,但其可置放於計算系統中任何位置,以決定功率域的消耗。在此,決定消耗以下列方式可能有用的:(1)決定域中先前及目前功率或能量消耗,以了解此域中未來功率或能量消耗的可能需求(基於經驗消耗的消耗預測);以及(2)決定當消耗達到某一階層後採取若干行動以避免超出所給定的功率限制(當效能及/或功率節流以避免超出功率限制)。
在一實施例中,在一控制週期功率域的功率或能量消耗是基於此域在該控制週期的活動進行預估。例如,在記憶體功率域中,每一在記憶體域中發給記憶體裝置的交易可與若干預估的、量化的功率/能量消耗相關聯。因此,藉由追蹤在控制週期發給記憶體裝置的交易數目,交易數目會和量化功耗結合以得到每一記憶體裝置及或整體記憶體域的消耗。以及從記憶體功率域中交易範例可推知,在功率域中與功耗有關的任何事件都可以類似方式進行追蹤及預估。
在另一實施例中,功率相關測量在功率域中執行以決定此域中所測量的功耗。繼續前例,測量/決定記憶體功率域之電壓供應器及/或調節器上的電流。在一情形下,電流以數位電壓識別(VID)位元為功率相關測而解譯。但在另一實施例中,預估及測量的混合或結合用來更準備的描述功率域中的功耗。在此,能量消耗是基於事件/活動進行預估而能量消耗也同時為功率域測量。以及採用一演算法以所預估及所測量的功耗兩者為基礎決定總體能消
耗。請注意所預估的能量消耗可基於測量及預估能量的比較進一步調整(或細化)。
一旦決定在一控制週期的能量消耗(無論從預估、測量或其結合),接著對消耗及功率限制進行比較。換言之,在目前控制週期及特定功率限制下,決定目前控制週期在所消耗功率間有多少可用頂部(headroom)。請注意功率限制可透過與控制週期不同之時窗(time window)提供,以使功率限制轉譯或內插在控制週期。接著,計算下一(或目前)控制週期的能量預算。
在一實施例中,會決定全域的預算。在另一範例中,無論全域預算是否被計算,預算會基於先前的消耗智能化的配置到域中的個別裝置。例如,若一裝置執行大部分的工作,則通用甚或分配功率預算至每一裝置可能會限制這些裝置執行更多工作。以及若另一裝置並未執行多量工作,則浪費功率預算效率。然而,若功率由低消耗裝置重新配置到高消耗裝置,則功率可更有效的分配。舉例而言,一裝置是高或低消耗係決定於節流多久(即高消耗節流越久)。以及當功率分配在裝置間(包含潛在不均勻分配)係以整體觀之,功率配置符合功率限制,當最大化每一裝置的效能以及域在功率限制條件下。
再者,在一實施例中,若在一控制週期結束時消耗低於功率限制,則功率額度可累積以便稍後當消耗量超過功率域所要求的限制時運用。換言之,當消耗控制週期小於功率限制的時窗,符合功率限制不特別對每一控制週期限
定。但更者,符合限定主要聚焦在時窗中控制週期的平均消耗。此種週期間平均的類型符合時窗的功率限制參照為執行平均功率限制(RAPL)。因此,若活動在一週期間為低(即此週期功率消耗低於預定限制),則“左超過(left over)”功率頂部可能被使用以在後續週期超過(動態增加)限制。由此範例中可知,對功率域使用RAPL可採取可調整的功率限制以支援突發的工作量,如圖形工作量,其可能在某一週期為高但在其他為低。
當裝置在功率域的預算已決定(如基於功率域的消耗及功率限制),則可採用任何已知限制裝置符合預算之方法。在一簡化範例中,特定裝置的電源供被限制。在另一實施例中,導致消耗的事件(如被追蹤的事件或導致事件被追蹤)會被限制。在此,每一裝置的能量預算轉換為效能計量限制。換言之,與裝置功耗對應的效能會加以限制以確保符合功率限制。例如,在記憶體域記憶體裝置基於記憶體的要求而執行動作(如消耗功率)。因此,裝置的能量預算會轉換為控制週期要求的最大數目(在此有時參照為交易)。在控制週期期間,若交易數被排程且傳送至記憶體達到臨界值時,則交易會被節流。以及必然地,當交易被節流,則功耗也會類似地被節流以確保功率限制不會超過,除非使用先前功率額度。
在一實施例中,當交易被節流,節流會被追蹤(即決定所節流的交易數或所節流交易的時間/循環量)。此資訊可用來預估現存或效能衝擊,其可促發更多準確配置功
率/能量預算之動態決定,以使在功率限制下達到最大效能。然而,在若干實施例中此等決定會使用有關功率域及其中裝置的資訊。因此,功率元件或其他平台元件,如基本輸入/輸出軟體(BIOS)介面,可決定前述資訊並將其揭示給功率介面以便執行決定。
請參照第2-4圖,說明適應於動態控制一或多功率域之電腦系統組配之實施例。請參照第2圖,圖示說明雙處理器系統200具有整合的記憶體控制器以及輸入/輸出(I/O)控制器在每一處理器205、210中。如圖示若干可能域包含一或多記憶體域(例如所有如DIMM耦接至記憶體控制器207的記憶體模組225可被視為單一記憶體功率域,而耦接至記憶體控制器212的記憶體模組230可被視為另一記憶體功率域)。此外,系統200中的所有記憶體225、230在另一實現中可被視為一功率域。功率域可根據輸入/輸出(I/O)裝置245、250被類似地看待(即一I/O功率域對所有耦接至控制器209、210或其兩者之I/O裝置)。類似情形,處理器205;處理器210;處理器205、210的處理元件;或其結合會被視為一或多功率域。
雖未詳述細節以免混淆討論,平台200圖示多重互連以在元件間傳輸資訊。例如,在一實施例中,點對點(P2P)互連215包含序列P2P、雙向(bi-directional)、具階層協定架構之快取-內聚匯流排(cache-coherent bus)以進行高速資料傳輸。再者,公知的介面(週邊元件高速互連、PCIE)或其變型使用作為
I/O裝置245、250間的介面240。因此,任何已知之互連或介面可用來進行電腦系統或領域中之溝通。無論互連的類型為何,當如交易節流之節流執行時,則互連架構適應於進行節流。請注意交易節流將於下詳述。
請參照第3圖,說明四核心處理器平台300。如第2圖中所示,處理器301-304透過高速P2P互連305彼此耦接。以及每一來自前述處理器之功率域也可應用於平台300。作為一第一範例,平台300包含4個記憶體功率域;所有記憶體裝置之一耦接至記憶體控制器。然而,裝置(無論為相同或不同類型)可以任何方式被分群為功率域。在此,若電壓調節器供應電流給記憶體310-313及I/O裝置,則所有此等裝可視為在單一功率域中。雖然以下討論往往聚焦於單一記憶體域,然在此所述之技術與裝置可適用於任何已知功率域。
第4圖說明具有不同組配之另一四核心處理器平台400。在此,不採用處理器上(on-processor)I/O控制器與I/O裝置透過I/O介面(如PCI-E介面)進行溝通,而使用P2P互連以耦接處理器及I/O控制器集線器420。集線器420接著透過類似PCIE介面與I/O裝置進行溝通。
請參照第5圖,說明功率模組動態及有效強制記憶體域功率限制之一邏輯演示之一實施例。雖然第5圖中的討論參照為記憶體功率域512,效能節流可類似地應用在任何功率域中。如圖所示,平台500包含耦接至記憶體控制器505的記憶體裝置515、516、520及521,如第2-4圖
所示控制器整合在處理器中。因此,在一實施例中,記憶體裝置515、516、520及521參照為在記憶體功率域512之中或與其相關聯。在此,記憶體裝置515及516位在記憶體之第一頻道(channel)中,而記憶體裝置520、521位在記憶體之第二頻道中。請注意記憶體裝置515、516、520及521可包含任何已知的記憶體裝置(揮發性或非揮發性);最普遍的範例為隨機存取記憶體(RAM),如動態RAM(DRAM)、雙直列記憶體模組(DIMM)。
在正常操作下,記憶體控制器505接收對記憶體裝置515、516、520及521的要求,排程這些要求,接著發出這些要求到對應的記憶體裝置。以傳統思考脈絡,這些工作會儘速被執行而不考量功耗因素以確保效能的最高輸出。然而,在一實施例中,功率模組525用於決定複數記憶體裝置中之一記憶體裝置對第一時間量之交易最大數目,其係基於與記憶體功率域對第二時間量之功率限制相關聯之記憶體功率域之能量消耗表示法。
在此,功率限制隨時窗(即隨第二時間量)供應給記憶體功率域512。如以直接方式,功率模組525決定隨時窗及符合功率限制/約束的交易最大數目。但當時窗為大時框,不利於發佈交易的時間週期規模,時窗可被切分為較小的時間量以限制交易。
結果,當任何時間週期的交易數目達到預定最大數目時,記憶體控制器505進行交易節流(停止或減緩排程及/或發佈)直到下一時間週期。在此,記憶體域512允許
以全效能操作直到達到功率限制;在此時間效能節流會開始以企圖符合功率預算。然而,單純基於功率限制而限定功率域整體的交易可能不是在功率限定中達到最大效能的最有效方法。
因此,在一實施例中,功率限制智能地被記憶體域512中裝置切分以公平的最大化在功率預算中的效能。在此範例中,決定域512的能量消耗(隨時間之功耗)。以及基於能量消耗,決定每一裝置515、516、520及521的能量預算(隨時間之功耗)。換言之,若記憶體裝置515處理更多交易(即具有較高的能量消耗),則裝置515可在下一時間量分配更多的能量預算。由此範例可見,裝置間單純等量分配能量預算可能無法達成最大效能。特別地,若裝置515執行比裝置520更多的工作時,則等量分配能量預算可能留下能量在裝置520的表格中,而裝置515可能因為無法被使用而進行節流。因此,在能量預算程序間,基於先前消耗能量預算提供給裝置515的應多於裝置520。結果,裝置514被允許執行比裝置520更高階層。但此時裝置515可能需要更多功率。然而,在後續時間週期,若裝置520利用更多功率,則動態特性會平衡週期中的功率以最大化裝置520的效能。
功率模組525的進一步示例是用於決定記憶體裝置515在第一時間量交易的最大數目,其係基於與記憶體功率域512對目前討論之第二時間量之功率限制相關聯之記憶體功率域512之能量消耗表示法。在此範例中,功率模
組525包含用以決定記憶體功率域512對控制迴圈(loop)週期(追蹤事件及/或決定能量預算的時間週期)之功耗表示法之能量計量模組。如前所述,能量模組可基於與記憶體域512在控制週期相關之測量事件以及與記憶體域512在控制週期相關之測量測量或其結合進行功耗預估。
以及功率預算模組由時窗功率限制決定控制週期的能量限制。例如,提供時窗功率限制予記憶體域512。以及此功率限制會轉換為對較小時間量(控制迴圈週期)的功率/能量預算。舉例而言,假設對一功率限制在一時窗中具有10控制週期。在一實施例中,等量預算被分配到控制週期中以維持時窗的功率限制。在另一實施例中,採用執行平均。在此,預算的一部分分配給第一控制週期。以及若總體預算未被使用(所消耗由前述能量計表決定),則額度會累加。後續控制週期可基於額度分配到更多能量預算。結果,在10控制週期的執行平均符合時窗功率限制。然而,當工作量更加密集時,可分配更多預算以容許突發的工作量。
請注意前述討論為能量預算對單一控週期可平均分配在裝置515間以最大化記憶體域512的效能。在一實施例中,為求效能最大化,功率預算模組智能地分配能量預算在域512之控制週期裝置515、516、520及521間(即記憶體裝置515、516、520及521之每一裝置之能量預算)。以此為例,這種分配是基於記憶體功率域512在控
制迴圈週期中能量消耗的表示法相較於記憶體域在控制週期功率限制的表示法。
以及基於每一記憶體裝置515、516、520及521之能量預算;效能模組決定每一記憶體裝置515、516、520及521在控制器時框之最大交易數。如前所述,控制器時框可與能量預算的控制迴圈或與功率限制時窗具有相同期間。然而,在另一實施例中,控制器時框具較小期間,如此與有關如控制器505之高速控制器操作較為接近。
舉例而言,假設裝置515在目前控制週期具有最高能量消耗。基於在時窗中的功率限制及目前控制週期的能量消耗,決定下一控制週期裝置515的能量預算。在此,裝置515的能量預算基於先前消耗會接近最高能量預算。換言之,由於裝置515的工作量為高,會預測在目前/下一控制週期將為高。效能模組利用裝置515的特性及相關假設,轉換能量預算為下一控制週期記憶體裝置515的最大交易數目。在操作期間,所排程及發予記憶體裝置515的交易數目會被追蹤。以及當交易數到達最大,控制器505節流(排佇列、減慢或忽略排程、減慢或停止發佈)記憶體裝置515在控制週期中剩餘的交易。從另一觀點,一旦效能臨界到達,導致更多能量消耗的效能會被節流。
在一實施例中,功率模組525(以及前述包含於其中之其他模組)包含硬體及/或硬體與程式碼之結合。例如,功率模組525包含具有功率程式碼的非暫態儲存媒體以及設定以執行功率程式碼來完成前述操作的微控制器之
積體電路。再者,在此範例中,功率模組525包含硬體或邏輯以追蹤事件(如存取或其他效能/功率事件)及/或對域512在電壓來源測量電流(功率相關測量)。
請參考第6圖,說明功率模組動態及有效強制記憶體域功率限制之一邏輯演示之一實施例。前述動態功率限制方法之實施例參照如第5圖所示,可類似地應用於任何功率域,如圖形功率域、處理器功率域、輸入/輸出(I/O)域、或其他可能已知計算元件/裝置之群組。
在此,域612包含透過互連610耦接至控制器605之裝置621-624。功率模組625決定每一裝置621-624在下一控制週期的能量預算,此係基於裝置621-624在目前控制週期的能量消耗(或從下一控制週期的角度來看之前一控制週期)及複數記憶體裝置在時窗中的功率限制。如前所述,對能量消耗及預算而言,時窗可大於控制週期。例如,時窗範圍於1毫秒(millisecond)至100秒。在另一範例中,時窗範圍於250ms至40秒。然而,時窗可包括在前述範圍中的任何範圍。
在一實施例中,功率模組625決定每一裝置621-624在目前控制週期的能量消耗(即產生資訊予下一週期預算所用之目前控制週期量測),此係基於與域612在目前控制週期相關之電壓調節器之電流表示法。例如,控制週期為1ms(如250控制週期在250ms時窗)。然而,控制週期的範圍可從微秒至秒(如200微秒至200毫秒)。
在此情形下,模組625用以轉換功率域612在時窗中
的功率限制為域612在目前控制週期的能量限制,以及決定每一裝置621-624在下一控制週期的能量預算,此係基於與裝置621-624在目前控制週期之能量消耗以及相較於裝置621-624在目前控制週期之能量預算。
一旦決定每一裝置621-624的能量預算,接著效能預算模組630決定每一裝置621-624在下一/目前控制週期的最大效能指標。換言之,功率模組625決定域612及/或裝置621之能量消耗。接著,可以是功率預算模組630、功率模組625或其結合,決定裝置621的能量預算。以及效能模組635轉換能量預算為可執行的功率限制動作(最大效能指標)。在一實施例中,效能模組635轉換能量預算(或在控制週期中的效能指標)為效能週期中的效能指標。與前述類似,功率限制時窗切分為控制週期,以使功率限制在較大時窗中分散平均執行。在此範例中,控制週期切分為較小效能週期。換言之,在較小控制週期中功耗的動態控制較有效率,以及對高速裝置的效能限制也更有效即使是較小的進步。結果,效能週期的範圍可由納秒(nanosecond)至微秒至毫秒。作為一特定示例,功率限制時窗為250毫秒,控制週期為1毫秒(即每一時窗250控制週期),以及效能週期為1微秒(即每一控制週期1000效能週期)。
控制器605限制每一裝置621-624的效能指標在效能週期中達到最大效能指標。請注意控制週期的最大效能指標可平均分配在效能週期中或分散作為執行平均(即在效
能週期中提供最大值,而當達到最大值時額度可在稍後的效能週期中利用)。接續前例,假設域612包含記憶體域以及發佈在1毫秒中1百萬交易的限制予裝置621。結果,控制器605可排程及發出每一微秒效能週期最多10交易。以及若在一效能週期中排程8交易,則在後續效能週期微秒中至多可排程12交易(即原本10加上來自前一效能週期之額度2)。因此,在控制週期結束時,假設效能指標至能量消耗的轉換是準確的,則藉由交易的限制/節流,應符合控制週期的能量預算。再者,若控制週期間的執行平均受限於時窗的整體功率限制,則符合功率限制而達到最大效能。
雖然在此主要描述記憶體功率域及如記憶體交易之相關效能指標,然任何功率域或效能指標可類似地進行動態控制。例如,在域或處理器(或處理器中的處理元件)中,可基於功率限制及能量消耗決定每一處理元件之類似能量預算。以及此預算轉換為可操作的效能限制。例如,在處理器中可包含節流指令提取、發佈、排程或執行等,如同其他節流效能或功率的已知方法(如能量限制頻寬限制等)。也可應用在圖形域,在此根據執行平均功率限制圖形裝置被節流(可由指令或圖形匯流排交易)。在另一範例中,I/O功率域也可進行動態控制。在此,功率預算轉換為每一I/O裝置之能量預算,如網路控制器。以及若網路控制器遭遇最大效能指標,如透過網路排程或發佈的封包,發佈/排程的封包會類似地進行節流。由此可知,
執行平均功率限制方法可實現在任何功率域,非僅在記憶體功率域。
請參照第7圖,說明功率模組動態及有效強制記憶體域功率限制之一邏輯演示之另一實施例。在一實施例中,如第7圖中所示之至少部分模組係以功率控制單元(PCU)實現。雖然功率控制單元可僅以硬體或軟體實現之。通常功率控制單元包含微控制器以執行配置在非暫態媒體上的功率程式碼;執行功率程式碼以完成在此所述之操作。
裝置715、720、725及730包含在(相關聯於)功率域712中(即耦接至控制器705)。在此,功率計表模組725決定該等複數裝置之功耗表示法。在一實施例中,功耗表示法係基於域712(或其中裝置)由功率相關測量模組726於電壓調節器上的電流測量。例如,複數裝置之功耗表示法包含能量消耗表示法(即在如控制週期之一時間量中的功耗)。
在另一實施例中,功率域712(及/或其中個別裝置)的能量消耗係由活動估計模組727基於域712中活動的能量消耗決定。作為結合,能量量測模組如功率模組725,決定域712在目前控制週期的能量消耗量測量。例如,功率模組725的功率程式碼在控制週期執行至少一次以完成適切的能量消耗計算。請注意描述通常參照為先前、目前以及下一控制週期。然而,此等用語的使用有時會發生重疊。例如,若能量決定及預算係在每一控制週期結束時進
行,則基於時間觀點(即若能量係在週期結束時計算,則預算會為下一週期決定即使計算是在目前週期進行)預算往往被使用或應用於“下一”或“目前”控制迴圈。再者,計算可在每一控制週期開始時進行。在此,能量消耗決定是根據“先前”控制週期而在“目前”週期進行預算計算及節流。
在一情形下,能量計表模組725決定在目前控制週期中裝置715、720、725及730的能量消耗,此係基於活動估計器727的能量消耗以及功率相關測量模組726所測量之能量消耗測量量之結合。活動能量估計模組727包括功率程式碼之能量估計程式碼,當由微處理器執行時,促使微處理器基於複數裝置於先前控制週期中之活動以決裝置715、720、725及730的於目前控制週期中之估計能量消耗。在此,當執行功率程式碼時,可輪詢(poll)追蹤硬體,如用以在功率域712中追蹤活動之計數器。以及基於活動,估計模組727使用裝置715、720、725及730的假設及/或特性,估計在控制週期中的量消耗。
類似地,功率相關測量模組726可讀取/輪詢與域712相關聯之電壓調節器之電壓識別位元(VID位元)。以及基於在控制週期中電流/電壓的改變決定所測量的能量。當執行功率程式碼時,則可利用演算法以結合在目前控制週期中所估計之能量消耗及所測量之能量消耗。
功率預算模組730決定功率預算之表示法,如域712中如裝置715之每一裝置之能量預算,此係基於域712及
其中裝置功耗(能量消耗)之表示法。在一實施例中,功率預算模組730包含功率限值(power cap)模組以及裝置預算模組。功率上限模組決定裝置715、720、725及730在下一控制週期的能量預算,此係基於有關用於經一時窗功率域之功率限制之經目前控制週期裝置715、720、725及730之能量消耗表示法。裝置預算模組基於在下一控制週期中裝置715、720、725及730之能量預算以決定下一控制週期用於如裝置715之每一個別裝置之能量預算表示法。
效能模組735基於裝置的功率預算表示法決定域712中如裝置715之每一個別裝置的最大效能指標。例如,效能指標包含在下一控制週期中所排程、所發佈及/或傳送至如裝置715之一裝置之最大交易數。在此範例中,效能限制器模組決定在下一控週期與裝置715相關之最大交易數(或在下一控制週期之中的效能週期中),其係基於裝置715在下一控制週期之能量預算表示法以及與功率相對頻寬特性相關之比例因子(scale factor)。於下將更詳加討論,由功率相關模組所使用的資訊可揭示予系統中不同硬體/模組。例如,BIOS可由動態測試域712的特性決定。以及接著,揭示如比例因子之特性予功率介面。請注意在一實施例中,功率限制及時窗會類似地由功率單元或平台功率管理器揭示予功率介面。
一旦決定裝置715如最大交易數之最大效能指標,控制器705限制裝置715在下一控制週期所欲使用之最大交
易數(或在下一控制週期中之效能週期)。本質上,控制器705包含硬體、邏輯及/或韌體以強制裝置715的預算,轉換為效能指標型態。
請參照第8圖,說明使用執平均功率限制動態控制功率域之方法之一模組實施例及/或一流程表示法功率限制之一流程圖之一實施例。請注意流程(或模組)係以實體線性方式進行說明。然而,無論是流程的序列性質或圖示之順序均非必要的。舉例而言,請參照第8圖,基於設計的實現,若設計僅依賴功率量測以決定能量消耗則流程815、816及825可不被執行。同時,流程815-825以實線或序列方式圖示。然而,流程可在相同時間週期中平行的處理。此外,任何圖示流程或邏輯區塊可在硬體、軟體、韌體或其結合中執行。如前及如下所述,在一實施例中每一流程表示模組、部分模組或模組重疊。再者,任何以一或多指令或操作之程式碼,當其執行時可使一機器執行如下圖示或描述之流程。請注意於下的討論主要參照為在記憶體功率域之動態功率控制;然而流程可類似地應用在任何功率域,如計算平台集合(如具有每一伺服器作用如同在功率域之裝置之伺服器架或資料中心)、具有一或多功率域之整體計算平台、圖形功率域、I/O功率域、處理器功率域等。
在圖示實施例中,顯示記憶體功率域之動態執行平均限制(RAPL)介面。在一實施例中,功率限制840供應給RAPL介面。在此,平台功率管理者或其他功率相關裝
置提供在一時框中的限制840給記憶體功率。例如,功率分配予計算平台中的功率域以符合整體功率需求。因此,當筆記型電腦與牆壁電源供應分離且消耗較少功率時,平台策略管理者可能降低記憶體域的功率限制840。再者,當效能在溢出時,增加功率限制840。
結果,在一實施例中,功率限制840隨著時窗841供應給RAPL介面(即記憶體功率域功率限制的時間量會被強制結束)。時窗841的範例範圍包含1毫秒至100秒或任何其中的範圍(如250毫秒至40秒)。以及在此情形下為實現RAPL,第8圖中所示的至少若干模組在每一控制週期至少執行一次(比時窗較小的時間增加以實現更多細粒度(fine-grained)及品質更好的調整以符合在時窗841的功率限要求840)。例如,控制週期可在100微秒至200毫秒間。
如圖所示,如能量計表812,橫跨多個裝置包括韌體(在功率控單元之功率程式碼)。在一實施例中,能量計表812每一控制週期估計至少一次記憶體域的能量消耗。在此情形下,記憶體控制器基於活動預估以及取自電壓調節器輸出電流的直接取樣兩者之混合以估計能量消耗。能量計表模組812產生總體記憶體能量830以及每一記憶體裝置能量835(如DIMM),也可能是每一頻道能量以及其他能量/功率指標。在一實施例中,總體記憶體能量830在每一控制週期總結以提供能量狀態836。再者,也可在每一控制週期總和頻道能量。
能量計表812每一RANK包含活動計數器(即在記憶體裝置中之較小實體),其指示/追蹤每一RANK的現存能量使用。例如,能量累加器805包含計數器以追蹤與記憶體域活動相關之事件801。請注意計數器的大小係基於控制週期的大小以確認其未在控制週期結束時被扭曲。再者,韌體(如BIOS及/或BIOS可擴展性韌體介面{EFI})提供每一記憶體裝置權重802(即每一記憶體裝置對事件801之比例因子)。事件801之範例包括行位址選通寫入(Column Address Strobe Write、CAS W)、CAS Read(CAS R)、列位址選通(RAS)、預充電(PRE)、時鐘啟動(CKE)、矽上結束(on die termination、ODT)、REF記憶體以及活動(ACT)。因此,每一此等事件的貢獻比例被正規化以決定事件801的能量貢獻。例如,下列計算式1表示決定記憶體裝置中每一RANK能量活動之演算法。
EnergyActivityCount
[Rank
]=#REF
*REF WEIGHT +#ACTACT WEIGHT +#ODT
*ODT_WEIGHT
+#CKE
*CKE_WEIGHT
+#PRE
*PRE_WEIGHT
+#CAS_R
*CAS_R_WEIGHT
+#CAS_W
*CAS_W_WEIGHT
計算式1:能量消耗
能量計表812更包括功率預估器模組以決定每一記憶體裝置816之能量(即轉換每一RANK的計數為每一記憶體裝置能量)。在一實施例中,系統韌體(如BIOS)設定及/或揭示每一記憶體裝置之功率比例因子及閒置功率
值(即無論基於動態決定或與裝置類型、品牌等相關資訊,配置在系統中每一記憶體裝置之特性)。在此,執行PCU 897中的功率程式碼(通常由PCU微控制器)以輪詢每一控週期能量計數器/累加器805的值,例如透過利用控制狀態機器810。請注意可在每一控制週期重設計數器,而在控制週期開始及結束間的三角地帶則可利用累加器。如流程815及816,下列計算式2-5轉換活動為每一記憶體裝置能量的預估。
DeltaActivity
[Rank
]=ActivityCounterCurrent
[RANK
]-ActivityCounterPrevious
[RANK
]
計算式2:在控制週期活動的改變
Delta_Activity
[DIMM
]=ΣDelta_Activity
[Rank
]
計算式3:在控制週期中記憶體裝置中每一RANK活動的改變總和
DeltaEstEnergy
[DIMM
]=PwrScale_Factor
[DIMM
]*DeltaActivity
[DIMM
]+IdlePower
[DIMM
]*ControlLoopPeriod
計算式4:基於控制迴圈週期中的活動記憶體裝置預估能量的改變
由計算式2-4中可看出,基於追蹤在控制器895中的
活動,可藉藉由累加器805預估流程815及816中每一記憶體裝置之能量。再者,在一實施例中功率相關量測也會被執行。例如,電壓調節器(VR)模組決定在電壓調節器(VR)820上的電流輸出讀取(VR樣本822)。以及電流輸出讀取(如VR 820上的VID位元)轉換成流程823中所測量的能量消耗。執行此等轉換之範例計算式提供於下計算式5-7。請注意在調整(即動態改善)RAPL介面期間,利用測量電流及決定能量的VR輪詢模組以特性化記憶體裝置並改善有關記憶體功率域假設的準確度。
iOut
[VR
]=VRiOut
[VR
]*ScaleFactor
[DIMM
]
計算式5:VR的電流輸出讀取
DeltaMeasuredEnergy
[VR
]=iOut
[VR
]*Vddr
*ControlLoopPeriod
計算式6:在控制迴圈週期中VR的能量改變
DeltaTotalMeasuredEnergy
=ΣDeltaMeasuredEnergy
[VR
]
計算式7:在控制週期中所有記憶體VR能量改變的總和
接著,根據前述混合方法,功率計表模組825結合所預估能量以及所量測能量以提供能量計表模組812的輸出(總體記憶體能量830、能量狀態836以及每一DIMM能量835)。此等結合的計算式實施例如下計算式8-12所示。
EnergyStatusAccumulated
=EnergyStatusPrevious
+ΣDeltaMeasuredEnergy
[VR
]
計算式8:累加能量狀態
DeltaEstimatedEnergyVR
[VR
]=Σ DIMMminaVR Delta_Est_Energy_DIMM
[DIMM
]
計算式9:預估VR能量在控制週期的改變
DeltaEnergyCH
[CH
]=Σ DIMMminCH DeltaEnergyDIMM
[DIMM
]
計算式11:記憶體頻道在控制週期能量的改變
EnergyStatusAccumulated
[CH
]=EnergyStatusPrevious
[CH
]+DeltaEnergyCH
[CH
]
計算式12:記憶體之頻道之累加能量狀態
功率預算模組842提取記憶體功率限制840;時窗841/842;記憶體能量830;每一DIMM能量835及如節流總和811之節流資訊,以及以每一DIMM(記憶體裝置)
為基礎輸出能量預算。換言之,功率預算模組842比較在控制迴圈週期採用功率限制840關於時窗841所消耗的功率,以及決定功率限制動作的調整量。例如,實現移動平均濾波器(average filter)。
在一實施例中,功率預算模組842包含上限(cap)模組以及DIMM功率預算模組。上限模組在流程842、845中由功率限制840及時窗841決定總體記憶體功率預算。於下計算式13及14說明在流程842、845中用以決定能量預算頂部及總體記憶體預算之一實施例。
EnergyBudgetPeriod
=Alpha
*EnergyBudgetPreviousPeriod
+(1-Alpha
)*(PowerLimit
*ControlLoopPeriod
)-(1-Alpha
)*DeltaTotalMeasuredEnergy
計算式14:目前/下一控制週期之總體能量預算
DIMM股率預算模組基於每一DIMM在先前週期被節流的時間量(在流程850中決定),決定在流程860中每一DIMM的能量預算。在此,功率在DIMM中重新預算以在功率限制下達到最小化節流。請注意第8圖說明得到節流量之一實施例。在此情形下,控制器895計數在流程808中節流的循環。以及此計數透過訊息頻道896傳送到
PCU 897中的控制狀機器810。節流循環在流程811進行總和並提供予每一DIMM未節流能量流程850。下列計算式15-17說明以前述包含在先前週期之節流量為基礎決定每一DIMM能量預算之一實施例。
SumUnthrottledEnergy
=Σ AllDIMMs UnthrottledEnergyDIMM
[DIMM
]
計算式16:在控制週期之未節流能量總和
在一實施例中,效能狀態限制器模組872由流程860中獲取每一記憶體裝置能量預算,轉換預算為每一記憶體模組交易量限制870,以及若計數限制在流程875-885中已達到節流一或多DIMM的記憶體聯通。舉例而言,記憶體裝置的交易計數限制是基於每一DIMM能量預算860及
一比例因子(代表DIMM功率對頻寬之權重,其可由BIOS決定/揭示)而在870中產生。來自870的計數限制透過訊息頻道896寫入控制器895。在一實施例中,對一時框的交易限制,其小於一控制週期(如在納秒至毫秒的範圍內)會在流程875中決定。換言之,高速控制器895的時框更加智能化決定以對效能節流提供更細粒度及更準確之時間刻度。當排程器890將交易排程(被允許的交易)予特定DIMM,交易計數器880追蹤此一事件。並且若交易計數880在時框中達到限制,則DIMM的交易會在流程885中進行節流。因此,若干DIMM會由於達到其限制而在時框中進行節流,然而其他DIMM則未達到其限制而可能仍有交易排程及發佈。下列計算式18-19為基於能量預算獲得每一DIMM最大交易之範例。請注意每一DIMM的最小及最大功率可在每一平台中藉由特徵化如BIOS或其他模組之記憶體功率域動態決定。
Gain
[DIMM
]=EnergyBudgetDIMM
*Gain
[DIMM
]
計算式19:基於能量預算及增益之每一DIMM最大交易
在一實施例中,效能狀態模組837產生用來測量功率限制在所需效能之指標。例如,由於達到最大交限制而未
發佈給記憶體之交易總時間。對每一DIMM,執行計數器(累加器)在交易被節流的每一循環會增加,以及累加器值在每一控制循環輸出。下列計算式20-23在效能模組中實現以提供前述指標。
DeltaThrottleCycles
[DIMM
]=ThrottledCyclesCurr-ThrottledCyclesPrev
計算式20:在控制週期中節流循環的改變
AccumulatedStatus
=AccumulatedStatusPrevious
+AvgThrottledTime
計算式23:累加效能狀態
接請參照第9圖,說明韌體環境對動態功率控制介面提供資訊之一實施例。一般而言,基本輸入/輸出軟體(BIOS)在電源啟動(power-on)下執行以初始化平台及其元件。通常,BIOS程式碼會保留在如非揮發性記憶體(快閃記憶體)之非暫態儲存媒體上,以在重設或電源啟
動事件中被執行。然而,BIOS-類型軟體也可在執行期間被執行。典型地,此類型BIOS執行被參照為韌體執行期間介面,如可擴充韌體介面(EFI),以在執行期間提供服務。因此,EFI及/或BIOS可在執行期間對功率域供應資訊進行調整及更新。
在一實施例中,BIOS可同時初始化記憶體以及在處理中功率控制介面。或如前所述,在初始化後BIOS可動態調整功率介面。例如,如前所述BIOS可決定(無論動態透過測試、樣式等或靜態透過先前所收集/決定之儲存,如所儲存3 sigma表格)功率介面所使用之記憶體功率域之特性。BIOS可決定及揭示予功率介面之資訊範例包含:每一DIMM 960對不同事件計數(如活動、重新整理、重新充電、CAS讀取、CAS寫入。ODT、CKE等)的權重;啟動事件計數器信號961、功率節流時框962、啟動功率節流信號963、每一DIMM功率比例因子971、每一DIMM閒置功率值972、區塊(RANK)DIMM槽之目前向量975資訊、頻道至VR映射990、功率計模式991、最大/最小熱設計功率(TDP)995、每一DIMM增益、節流計數996、每一DIMM節流比例因子984、功率計數器控制信號984-987、功率限制980、功率窗981、啟動功率限制982等。
雖然前述資訊及/或信號參照為由BIOS(或由BIOS寫入)揭示予功率介面,如同所說明的模組(控制器915;能量計表925包含活動預估器930;功率相關量測
935;以及功率計表940;以及功率預算模組945包含功率上限模組950以及功率預算模組955),任何資訊的集合可被忽略或由其他介面提供,如由功率介面本身提供一般。例如,如功率控制器之功率管理器可取代BIOS指派功率限制980以及功率窗981。或者功率介面可自我調節功率(即基於目前操作條件指派其所屬功率限制980以及功率窗981)。再者,在一實施例中,如節流996之資訊會在操作期間由功率介面產生,而控制信號984-987會由功率介面進行計算以讀取VID位元921。此外,任何模組可在記憶體子系統上執行測試以及登錄所配置記憶體組配之最大、最小及TDP功率。
因此,由上可知,如在功率域中執行平均功率限制之動態功率控制,可在記憶體域啟動準確的功率量測、在每一裝置粒度上功率/效能限制、較快控制迴圈功率上限以符合較大功率限制時窗、在不同裝置間智能化的功率預算以在功率限制下達到最大效能、記憶體上限範圍決定、每一裝置功率預估之動態調整、以及由功率限制回饋/報導功率及效能影響以更智能化的選擇新的功率限制。因此,在此所述之技術實質上有助於電腦系中的功率節省。
在此所述之模組參照為硬體、軟體及/或韌體之任何結合。作為一範例,一模組包括如微控制器之硬體,其與非暫態媒體相關聯以儲存由此微控制器執行之程式碼。因此,在一實施例中參照一模組指示為硬體,其特別設定以辨識及/或執行保留在非暫態媒體中之程式碼。再者,在
另一實施例中,模組的使用指示包含程式碼的非暫態媒體,程式碼特別用於由微控制器執行以進行預定之操作。由此可推論,即使在另一實施例中,模組(在本例中)一詞可指示為微控制器及非暫態媒體之結合。通常模組邊界如圖示分隔及可能重疊。例如,第一及第二模組可共享硬體、軟體、韌體或其結合,然也可保留若干獨立的硬體、軟體或韌體。在一實施例中,邏輯一詞使用包含如電晶體、暫存器之硬體或其他如可程式化邏輯裝置之軟體。
在此,值一詞使用包含任何數目、狀態、邏輯狀態或二進制邏輯狀態之已知表示法。通常,邏輯階層或邏輯值的使用參照為1及0,其簡單表示二進制邏輯狀態。例如1表示高邏輯階層及0表示低邏輯階層。在一實施例中,如電晶體或快閃單元之儲存單元可用以保留單一邏輯值或多重邏輯值。然其他表示法可使用於電腦系統中。例如,十進制的10可以二進制表示為1010,以十六進制表示為A。因此,值包含保留在電腦系統中資訊的任何表示法。
再者,狀態可以值或部分值加以表示。例如,第一值如邏輯1可表示預設或初始狀態,而第二值如邏輯0可表示非預設狀態。此外,在一實施例中重設及設定一詞參照為依次預設及更新的值或狀態。例如,預設值可包含高邏輯值,即重設,而更新值可包含低邏輯值,即設定。請注意值得任何結合可用來表示任何狀態的數目。
本方法之實施例,前述之硬體、軟體、韌體或程式碼可以儲存於處理元件可執行之機器可存取、機器可讀取、
電腦可存取或電腦可讀取媒體之指令加以實現。非暫態機器可存取/可讀媒體包含提供(即儲存及/或傳送)機器可讀形式資訊之任何機制,如電腦或電子系統。例如,非暫態機器可存取媒體包含隨機存取記憶體(RAM)如靜態RAM(SRAM)或動態RAM(DRAM);ROM;磁或光儲存媒體;快閃記憶體裝置;電子儲存裝置;光儲存裝置;聲儲存裝置;其他可用來保留來自短暫(傳播)信號(如載波、紅外線信號、數位信號)資訊之儲存裝置等,其與接收資訊之非暫態媒體不同。
本說明書中之一實施例意指實施例中所描述的特殊特徵、結構或特性被包含在本發明之至少一實施例中。因此,在本說明書中所稱之“在一實施例中”不必然指稱相同實施例。再者特殊特徵、結構或特性可在一或多實施例中以任何適當之方式結合。
為說明之便以上所述參照特定實施範例以助充分理解本發明之實例。然在不脫離本發明之精神和範圍內,任何熟習此技藝者當可更動與潤飾。所揭露之說明及圖式並非用以限定本發明。再者,前述實施例及其他範例文字不必然指稱相同實施例或相同範例,也可如參照為相同實施例一般參照為不同實施例。
160‧‧‧電源控制
101‧‧‧核心
101a,101b‧‧‧架構暫存器
125‧‧‧解碼
130,131‧‧‧重命名/定址器
140,141‧‧‧排程器/執行單元
135,136‧‧‧記錄器/報廢單元
150‧‧‧低階D-快取及D-TLB
102‧‧‧核心
102a,102b‧‧‧架構暫存器
126‧‧‧解碼
151‧‧‧低階D-快取及D-TLB
110‧‧‧高階快取
105‧‧‧匯流排介面
170‧‧‧控制器
180‧‧‧裝置
175‧‧‧系統記憶體
225,230,310,311,312,313,410,515,516,520,521‧‧‧記憶體
220,315,405,415,510‧‧‧記憶體互連
207,212,310c,302c,303c,304c,401c,402c,403c,404c‧‧‧MC
205,210,301,302,303,304,401,402,403,404‧‧‧處理器
209,214‧‧‧IOM
240,330‧‧‧PCIE
245,250‧‧‧I/O裝置
215,305‧‧‧P2P互連
420‧‧‧IOH
505‧‧‧記憶體控制器
525,625,725‧‧‧功率模組
621,622,623,624‧‧‧裝置
605,705‧‧‧控制器
630,730,945‧‧‧功率預算模組
635,735‧‧‧效能模組
610,710‧‧‧互連
726‧‧‧功率相關量測
727‧‧‧活動預估器
960‧‧‧權重
975‧‧‧區塊目前
980‧‧‧功率限制
981‧‧‧功率窗
905‧‧‧BIOS
915‧‧‧記憶體控制器
920‧‧‧記憶體VR
921‧‧‧VID匯流排
930‧‧‧活動預估器
935‧‧‧功率相關量測
940‧‧‧功率計表
925‧‧‧能量計表
950‧‧‧功率上限
955‧‧‧功率預算
910‧‧‧功率控制
990‧‧‧VR映射
995‧‧‧最大,最小TDP
本發明之較佳實施例輔以圖式說明,然非用以限定本發明,其中:
第1圖說明包含具多重處理元件(2核心及4執行緒槽)之處理器之系統之一邏輯演示之一實施例。
第2圖說明電腦系統組配之一邏輯演示之一實施例。
第3圖說明電腦系統組配之一邏輯演示之另一實施例。
第4圖說明電腦系統組配之一邏輯演示之另一實施例。
第5圖說明動態且有效的強制記憶體域之功率限制之一邏輯演示之一實施例。
第6圖說明動態且有效強制功率域之功率限制之一邏輯演示之一實施例。
第7圖說明動態且有效強制功率域之功率限制之一邏輯演示之另一實施例。
第8圖說明動態且有效強制功率域之功率限制之一流程圖之一實施例。
第9圖說明揭示功率相關資訊給動態且有效強制功率限制之模組之一邏輯演示之一實施例。
200‧‧‧系統
225,230‧‧‧記憶體
220‧‧‧記憶體互連
207,212‧‧‧MC
205,210‧‧‧處理器
209,214‧‧‧IOM
240‧‧‧PCIE
245,250‧‧‧I/O裝置
215‧‧‧P2P互連
Claims (41)
- 一種有效率的能量消耗之裝置,包括:複數裝置,其用以被包含在一功率域中,該功率域具有與功率傳遞相關的該複數個裝置之群組;一功率計表模組,其適於決定目前控制週期的該等複數裝置之一功耗(power consumption)表示法;一功率預算模組,其適於基於一時窗的該等複數裝置之該功耗表示法以及該功率域之一功率限制以決定下一個控制週期的該等複數裝置中之至少一裝置之一功率預算表示法,該時窗大於該目前和下一個控制週期;以及一效能模組,其用以基於該裝置之該功率預算表示法以決定一效能週期的該等複數裝置之該裝置之一最大效能計量,該效能週期小於該目前和下一個控制週期。
- 如申請專利範圍第1項所述之裝置,其中該等複數裝置係由一群組中選出,該群組由複數記憶體裝置、一積體電路上之複數非對稱裝置、一積體電路上之複數處理器以及一處理器上之複數處理器核心(core)組成。
- 如申請專利範圍第1項所述之裝置,其中適於決定該等複數裝置之一功耗表示法之該功率計表模組包括適於基於該等複數裝置於一控制週期中於一電壓調節器處之一電流量測於電流控制週期中以決定該等複數裝置之該功耗表示法之功率計表模組。
- 如申請專利範圍第1項所述之裝置,其中該等複數裝置之該功耗表示法包含該等複數裝置於一電流控制週期 中之一能量消耗(energy consumption)表示法,以及其中該功率計表模組包含,一活動模組,其適於決定該等複數裝置於該電流控制週期中的活動;一活動能量估計模組,其適於基於該等複數裝置於該電流控制週期中之該等活動以決定該等複數裝置於該電流控制週期中之估計能量消耗;一能量量測模組,其適於基於該等複數裝置於一電壓供應器上之一功率相關測量以決定於該電流控制週期中之一能量消耗量測量;以及一能量計表模組,其適於基於該等複數裝置於該電流控制週期中之該估計能量消耗與於該電流控制週期中之該能量消耗量測量之結合以決定該等複數裝置於該電流控制週期中之該能量消耗表示法。
- 如申請專利範圍第4項所述之裝置,更包括一功率控制單元,其包含用以保存功率程式碼之一儲存媒體以及用以執行該功率程式碼之一處理元件,其中該活動模組包括用以追蹤該等複數裝置於該電流控制週期中的活動之一或多計數器,該活動能量估計模組包含該功率程式碼之能量估計程式碼,當由一微控制器執行時,促使該微控制器基於經電流控制週期該等複數裝置的該活動以決定經電流控制週期該等複數裝置之該估計能量消耗,該能量量測模組包含該功率程式碼之能量量測程式碼,當由該微控制器執行時,促使該微控制器基於在用於該等複數裝置之一電 壓供應器處之一功率相關量測以決定於經該電流控制週期量測的能量消耗量,以及該能量計表模組包含該功率程式碼之能量計表程式碼,當由該微控制器執行時,促使該微控制器基於經該電流控制週期用於該等複數裝置之該估計能量消耗與經該電流控制週期之該量測能量消耗量之結合以決定經該電流控制週期該等複數裝置之該能量消耗表示法。
- 如申請專利範圍第4項所述之裝置,其中經下一控制週期該等複數裝置之該至少該裝置之該功率預算表示法包含經該下一控制週期該等複數裝置之該至少該裝置之一能量預算表示法,以及其中該功率預算模組包含,一功率上限模組,其適於基於有關用於經一時窗該功率域之該功率限制之經該電流控制週期該等複數裝置之該能量消耗表示法以決定於該下一控制週期中該等複數裝置之一能量預算;以及一裝置預算模組,其適於基於在該下一控制週期中該等複數裝置之該能量預算以決定經該下一控制週期用於至少該裝置之該能量預算表示法。
- 如申請專利範圍第6項所述之裝置,其中至少該裝置之該最大效能指標包含經該下一控制週期與該裝置相關之最大交易(transaction)數,以及其中效能包含,一效能限制器模組其用以決定基於經該下一控制週期至少該裝置之該能量預算表示法而與經該下一控制週期之該裝置相關之該最大交易數以及與該裝置之一功率相對頻寬特性相 關之一比例因子(scale factor)。
- 如申請專利範圍第7項所述之裝置,更包括一控制器,其適於限制準備用於該裝置之一交易數在經該下一控制週期之該最大交易數。
- 如申請專利範圍第1項所述之裝置,其中該效能模組,反應於該最大效能計量未在一或更多的效能週期中滿足,提供一額度給該裝置以於至少一效能週期在大於該最大效能計量處操作。
- 一種有效率的能量消耗之裝置,包括:複數裝置,其適於包含在一功率域中,該功率域具有與功率傳遞相關的該複數個裝置之群組;一能量計表,其適於基於經一控制週期至少該等複數裝置之一功率相關量測以決定經該控制週期由該功率域消耗之能量之量;一功率預算模組,其適於基於關於一功率限制以及用於該功率域之一時窗經該控制週期由該功率域消耗之能量之量以決定一第二控制週期的該等複數裝置之每一裝置之一能量預算,該控制週期和該第二控制週期小於該時窗;以及一最大效能模組,其適於基於該等複數裝置之每一裝置之該能量預算以決定一效能週期的該等複數裝置之每一裝置之一最大效能指標,該效能週期小於該控制週期和該第二控制週期。
- 如申請專利範圍第10項所述之裝置,更包括一功 率控制單元,其包含一微控制器以及包含功率程式碼之一儲存媒體,其中該功率程式碼,當由該微控制器執行時,促使該微控制器基於經一控制週期至少該等複數裝置之一功率相關量測以決定經該控制週期該功率域消耗之能量之量;基於關於一功率限制以及用於該功率域之一時窗經該控制週期由該功率域消耗之該能量之量以決定該等複數裝置之每一裝置之一功率預算;以及基於該等複數裝置之每一裝置之該功率預算以決定該等複數裝置之每一裝置之一最大效能指標。
- 如申請專利範圍10項所述之裝置,其中一能量計表適於更基於經一控制週期用於該等複數裝置之一效能指標之一比率以決定經該控制週期由該功率域消耗之能量之量,其中經該控制週期用於至少該等複數裝置之一功率相關量測包含對該等複數裝置於一電壓分量上之一量測電流以及經該控制週期用於該等複數裝置之該效能指標包含經該控制週期用於每一該等複數裝置之一交易數。
- 如申請專利範圍第10項所述之裝置,其中該功率預算模組適於基於關於一功率限制以及用於該功率域之一時窗經該控制週期由該功率域消耗之能量之量以決定該等複數裝置之每一裝置之一能量預算,包括,一上限模組,其適於基於與該功率限制及該時窗之比較經該控制週期由該功率域消耗之能量之量以決定一能量預算頂部,以及一裝置預算模組,其適於基於與每一裝置經該控制週 期節流以最小化該複數裝置之節流的時間量結合之能量預算頂部以決定該等複數裝置之每一裝置之該能量預算。
- 如申請專利範圍第10項所述之裝置,其中每一該等複數裝置包含一記憶體裝置以及該最大效能指標包含一最大交易數,以及其中一最大效能模組適於基於該等複數裝置之每一記憶體裝置之該能量預算以決定該等複數裝置每一記憶體裝置之一最大交易數,包括:一效能限制器其適於基於與用以表示該複數記憶體裝置之每記憶體裝置之功率相對頻寬特性之比例因子結合的每一裝置之該能量預算以決定用於該等複數記憶體裝置之每一記憶體裝置之該最大交易數。
- 如申請專利範圍第14項所述之裝置,更包括一控制器,其用以將用於每一複數該記憶體裝置之交易限制在用於每一記憶體裝置之該最大交易數。
- 如申請專利範圍第9項所述之裝置,其中該最大效能模組,反應於該最大效能計量未在一或更多的效能週期中滿足,提供一額度給該裝置以於至少一效能週期在大於該最大效能計量處操作。
- 一種有效率的能量消耗之裝置,包括:複數記憶體裝置,其關聯於一記憶體功率域;一功率模組,其適於基於在一第二時間量中關於用於該記憶體功率域的一功率限制之一記憶體功率域之能量消耗表示法以決定經一第一時間量用於該等複數記憶體裝置之一記憶體裝置一最大交易數,該第二時間量大於該第一 時間量;以及一控制器,其適於反應於經一第三時間量發出給該記憶體裝置之一交易數到達該記憶體裝置之該最大交易數而節流交易,該第三時間量小於該第二時間量。
- 如申請專利範圍第17項所述之裝置,其中該功率模組包括含有一非暫態儲存媒體之一積體電路,該非暫態儲存媒體包含功率程式碼及執行該功率程式碼之一微控制器。
- 如申請專利範圍第18項所述之裝置,其中該第二時間量包含一定期控制迴圈週期於100微秒至800毫秒範圍內,以及其中該第一時間量包含一記憶體控制器時框,其小於該定期控制迴圈以及在800納秒至50微秒範圍內。
- 如申請專利範圍第19項所述之裝置,其中一功率模組適於基於關於在一第二時間量中用於該記憶體功率域功率限制表示法以決定經一第一時間量用於該等複數記憶體裝置之一記憶體裝置之一最大交易數,包括:一能量計表模組,其適於決定於該控制迴圈週期該記憶體功率域之該能量消耗表示法;一功率預算模組,其適於自在一時窗上所提供的功率限制決定於該控制迴圈週期中用於該記憶體域該功率限制之表示法,該時窗大於控制迴圈週期,以及基於在該控制迴圈週期中該記憶體功率域之該能量消耗表示法與在該控制迴圈週期中用於該記憶體域之該功率 限制表示法相比較以決定該等複數記憶體裝置之每一記憶體裝置之一能量預算;一效能模組,其適於基於每一記憶體裝置之該能量預算決定於該記憶體控制器時框上該等複數記憶體裝置之該記憶體裝置之該最大交易數。
- 如申請專利範圍第19項所述之裝置,其中該能量計表模組適於基於用於該功率域之一功率相關量測以及自該功率域中活動之一能量估計以決定於該控制迴圈週期中該記憶體功率域之該能量消耗表示法。
- 一種有效率的能量消耗之方法,包括:決定經一電流控制週期由包含複數裝置之一功率域所消耗之功率量之表示法,其係基於在該電流控制週期中關於該等複數裝置之一功率相關量測;決定用於經一下一控制週期之每一該等複數裝置之一功率預算表示法,其係基於經該電流控制週期由該功率域所消耗的該功率量之表示法;決定經該下一控制週期每一該等複數裝置之一最大效能指標,其係基於經該下一控制週期每一該等複數裝置之該功率預算表示法;以及經該下一控制週期限制該等複數裝置在該最大效能指標。
- 如申請專利範圍第22項所述之方法,其中該等複數裝置包含複數記憶體裝置,該功率相關量測包含用於該等複數裝置的一電壓調節器之一電流讀取,以及由經該電 流控制週期之該域所消耗之功率量表示法包含經該電流控制週期之該域所消耗之能量之量。
- 如申請專利範圍第23項所述之方法,其中決定經一電流控制週期由包含複數裝置之一功率域所消耗之一功率量表示法係更基於經該電流控制迴圈週期由該功率域所消耗之一能量估計,以及其中決定經一電流控制週期由包含複數裝置之一功率域所消耗之功率量表示法於係更基於經該電流控制迴圈週期由該功率域所消耗之一能量估計,包括:決定經該電流控制週期該記憶體裝置之每一記憶體模組區塊(RANK)之活動;以及決定經該電流控制週期由該功率域所消耗之該能量估計決定經該電流控制週期由該功率域所消耗之該能量之量,其係基於經該電流控制週期由該功率域所消耗之該能量估計與該等複數裝置之該電壓調節器之該電流讀取之結合。
- 如申請專利範圍第23項所述之方法,其中用於每一該等複數記憶體裝置經該下一控制週期之該功率預算表示法包含用於每一該等複數記憶體裝置經該下一控制週期之一能量預算,以及其中基於經該電流控制週期由該功率域所消耗之該能量之量而決定用於每一該等複數記憶體裝置經該下一控制週期之每一該等複數記憶體裝置經一下一控制週期之一能量預算,包括: 決定經該下一控制週期用於該功率域之一能量預算;決定該等複數記憶體裝置之每一記憶體裝置於該電流控制週期期間進行節流的一時間量;決定用於每一該等複數記憶體裝置經該下一控制週期之該能量預算,其係基於用於在該等複數記憶體裝置上該功率域之該能量預算進行配置,以最小化每一記憶體裝置於該電流控制週期期間節流之該時間量。
- 如申請專利範圍第25項所述之方法,其中該最大效能指標包含一最大交易數,以及其中基於用於每一該等複數裝置經該下一控制週期之該能量預算決定用於每一複數記憶體裝置經該下一控制週期之一最大交易數,包括基於用於每一該等複數記憶體裝置經該下一控制週期之該能量預算與用於每一該等複數記憶體裝置之一功率及頻寬特性之結合決定用於每一該等複數記憶體裝置經該下一控制週期之該最大交易數。
- 如申請專利範圍第26項所述之方法,其中限制該等複數記憶體裝置至經該下一控制週期之該最大交易數包括:決定經小於該下一控制週期之一時框用於每一該等複數記憶體裝置的一較小的最大交易數,其小於該最大交易數;計數一交易數以於該時框期間發予每一該等複數記憶體裝置;以及反應於該時框期間發予至每一該等複數記憶體裝置之 該交易數達到該較小的最大交易數,限制發予交易至每一該等複數記憶體裝置。
- 一種包含程式碼的非暫態機器可讀媒體,當執行時促使一機器執行如申請專利範圍第22-27項所述之方法。
- 一種有效率的能量消耗之方法,包括:決定用於複數記憶體裝置之每一記憶體裝置的一功率及頻寬特性;以及將用於每一記憶體裝置之該功率及頻寬特性揭示予一記憶體效能限制模組,其適於基於經一第二時間量用於該等複數記憶體裝置之一功率限制以決定經一第一時間量用於每一記憶體裝置之一最大效能限制。
- 如申請專利範圍第29項所述之方法,其中該功率及頻寬特性係由一群組中選出,該群組由該等複數記憶體裝置之每一記憶體裝置之一功率比例因子、該等複數記體裝置之每一記憶體裝置之權重、一記憶體模組區塊(RANK)顯示向量、一頻道至電壓調節器圖、該等複數記憶體裝置之每一記憶體裝置之一增益因子、該功率域之最大功率、該功率域之最小功率以及該功率域之一平均功率組成。
- 如申請專利範圍第29項所述之方法,其中決定用於該等複數記憶體裝置之每一記憶體裝置之該功率及頻寬特性包括執行一或多測試樣式(pattern)以特性化用於每一記憶體裝置之該功率及頻寬特性。
- 如申請專利範圍第29項所述之方法,其中用於該等複數記憶體裝置之每一記憶體裝置之該功率及頻寬特性包含該功率域之一平均功率,以及其中決定該功率域之該平均功率包括在該時間週期開始時輪詢該功率域之電壓調節器、在該時間週期結束時輪詢該功率域之該電壓調節器、決定該時間週期從開始至結束之能量改變以及基於將該能量改變除以該時間週期以決定該功率域之該平均功率。
- 如申請專利範圍第29項所述之方法,其中將每一記憶體裝置之該功率及頻寬特性揭示予一記憶體效能限制模組包括將每一記憶體裝置之該功率及頻寬特性之一表示法寫入至該記憶體效能限制模組中。
- 如申請專利範圍第29項所述之方法,其中將用於每一記憶體裝置之該功率及頻寬特性揭示予一記憶體效能限制模組包括允許該記憶體效能限制模組讀取每一記憶體裝置之該功率及頻寬特性之一表示法。
- 一種包含程式碼的非暫態機器可讀媒體,當執行時促使一機器執行如申請專利範圍第29-34項所述之方法。
- 一種有效率的能量消耗之裝置,包括:功率消耗工具,用以決定經一電流控制週期由包含複數裝置之一功率域所消耗之一功率量表示法,其係基於關於該等複數裝置於該電流控制週期中之一功率相關量測;功率預算工具,用以決定用於每一該等複數裝置經一 下一控制週期之一功率預算表示法,其係基於經該電流控制週期由該功率域所消耗之該功率量表示法;效能指標工具,用以決定用於每一該等複數裝置經該下一控制週期之一最大效能指標,其係基於用於每一該等複數裝置經該下一控制週期之該功率預算表示法;以及效能限制工具,用以限制該等複數裝置至經該下一控制週期之該最大效能指標。
- 如申請專利範圍第36項所述之裝置,其中該等複數裝置包含複數記憶體裝置,該功率相關量測包含該等複數裝置之一電壓調節器之一電流讀取,以及經該電流控制週期由該域所消耗之該功率量表示法包含經該電流控制週期由該域所消耗之一能量之量。
- 如申請專利範圍第37項所述之裝置,其中用於決定經一電流控制週期由包含複數裝置之一功率域所消耗之功率量表示法之功率消耗工具係更基於經該電流控制迴圈週期由該功率域所消耗之一能量估計,以及其中用於決定經一電流控制週期由包含複數裝置之一功率域所消耗之一功率量表示法係更基於經該電流控制迴圈週期由該功率域所消耗之一能量估計,包括:活動工具,用以決定經該電流控制週期該記憶體裝置每一記憶體模組區塊(RANK)之活動;以及能量估計工具,用以決定經該電流控制週期由該功率域所消耗之該能量估計能量消耗工具,用以決定經該電流控制週期由該域所 消耗之該能量之量,其係基於經該電流控制週期由該功率域所消耗之該能量估計與在用於該等複數裝置之該電壓調節器處之該電流讀取之結合。
- 如申請專利範圍第37項所述之裝置,其中用於每一該複數記憶體裝置經該下一控制週期之該功率預算表示法包含用於每一該等複數記憶體裝置經該下一控制週期之一能量預算,以及其中用以基於經該電流控制週期由該功率域所消耗之該能量之量決定用於每一該等複數記憶體裝置經該下一控制週期之每一該等複數記憶體裝置經一下一控制週期之一能量預算之功率預算工具包括:能量預算工具,用以決定用於經該下一控制週期該功率域之一能量預算;節流時間工具,用以決定該等複數記憶體裝置之每一記憶體裝置於該電流控制週期期間節流的一時間量;每一裝置能量預算工具,用以決定用於每一該等複數記憶體裝置經該下一控制週期之該能量預算,其係基於對在該等複數記憶體裝置上該能量域之該能量預算進行配置,以最小化每一記憶體裝置於該電流控制週期期間節流之該時間量。
- 如申請專利範圍第39項所述之裝置,其中該最大效能指標包含一最大交易數,以及其中用以基於用於每一該等複數裝置經該下一控制週期之該能量預算決定用於每一複數記憶體裝置經該下一控制週期之一最大交易數之效能限制工具包括用以基於用於每一該等複數記憶體裝置經 該下一控制週期之該能量預算與用於每一該等複數記憶體裝置之一功率及頻寬特性之結合決定每一該等複數記憶體裝置經該下一控制週期之該最大交易數之最大交易工具。
- 如申請專利範圍第40項所述之裝置,其中用以限制該等複數記憶體裝置至經該下一控制週期之該最大交易數包之效能限制工具括:時框交易工具,用以決定經小於該下一控制週期之一時框用於每一該等複數記憶體裝置之一較小最大交易數,其小於該最大交易數;計數工具,用以計數一交易數以於該時框期間發予每一該等複數記憶體裝置;以及交易發予限制工具,用以反應於該時框期間發予至每一該等複數記憶體裝置之該交易數達到該較小最大交易數而限制發予交易至每一該等複數記憶體裝置。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/324,932 US9141166B2 (en) | 2011-12-13 | 2011-12-13 | Method, apparatus, and system for energy efficiency and energy conservation including dynamic control of energy consumption in power domains |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW201346518A TW201346518A (zh) | 2013-11-16 |
| TWI479306B true TWI479306B (zh) | 2015-04-01 |
Family
ID=46491663
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW101145278A TWI479306B (zh) | 2011-12-13 | 2012-12-03 | 包括在功率域中能量消耗的動態控制之能量效率及能量節約的方法、設備及系統 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US9141166B2 (zh) |
| TW (1) | TWI479306B (zh) |
| WO (1) | WO2013090187A1 (zh) |
Families Citing this family (62)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8880908B2 (en) * | 2009-05-19 | 2014-11-04 | International Business Machines Corporation | Computing system with power requirement evaluation |
| US20130173946A1 (en) * | 2011-12-29 | 2013-07-04 | Efraim Rotem | Controlling power consumption through multiple power limits over multiple time intervals |
| US9239781B2 (en) | 2012-02-07 | 2016-01-19 | SMART Storage Systems, Inc. | Storage control system with erase block mechanism and method of operation thereof |
| US9632566B2 (en) * | 2012-09-27 | 2017-04-25 | Apple Inc. | Dynamically controlling power based on work-loop performance |
| US9582287B2 (en) * | 2012-09-27 | 2017-02-28 | Intel Corporation | Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions |
| US9298247B2 (en) | 2012-11-27 | 2016-03-29 | International Business Machines Corporation | Distributed power budgeting |
| US9671962B2 (en) | 2012-11-30 | 2017-06-06 | Sandisk Technologies Llc | Storage control system with data management mechanism of parity and method of operation thereof |
| US9323317B2 (en) | 2012-12-12 | 2016-04-26 | International Business Machines Corporation | System and methods for DIMM-targeted power saving for hypervisor systems |
| US9235252B2 (en) * | 2012-12-21 | 2016-01-12 | Intel Corporation | Dynamic balancing of power across a plurality of processor domains according to power policy control bias |
| US9075556B2 (en) | 2012-12-21 | 2015-07-07 | Intel Corporation | Controlling configurable peak performance limits of a processor |
| US9395774B2 (en) | 2012-12-28 | 2016-07-19 | Intel Corporation | Total platform power control |
| US9214965B2 (en) | 2013-02-20 | 2015-12-15 | Sandisk Enterprise Ip Llc | Method and system for improving data integrity in non-volatile storage |
| US9329928B2 (en) | 2013-02-20 | 2016-05-03 | Sandisk Enterprise IP LLC. | Bandwidth optimization in a non-volatile memory system |
| US9183137B2 (en) | 2013-02-27 | 2015-11-10 | SMART Storage Systems, Inc. | Storage control system with data management mechanism and method of operation thereof |
| US10049037B2 (en) | 2013-04-05 | 2018-08-14 | Sandisk Enterprise Ip Llc | Data management in a storage system |
| US9170941B2 (en) | 2013-04-05 | 2015-10-27 | Sandisk Enterprises IP LLC | Data hardening in a storage system |
| US9543025B2 (en) | 2013-04-11 | 2017-01-10 | Sandisk Technologies Llc | Storage control system with power-off time estimation mechanism and method of operation thereof |
| US10546648B2 (en) | 2013-04-12 | 2020-01-28 | Sandisk Technologies Llc | Storage control system with data management mechanism and method of operation thereof |
| US9274581B2 (en) | 2013-06-24 | 2016-03-01 | Dell Products, Lp | Date adjusted power budgeting for an information handling system |
| US9367353B1 (en) * | 2013-06-25 | 2016-06-14 | Sandisk Technologies Inc. | Storage control system with power throttling mechanism and method of operation thereof |
| US9244519B1 (en) | 2013-06-25 | 2016-01-26 | Smart Storage Systems. Inc. | Storage system with data transfer rate adjustment for power throttling |
| US9146850B2 (en) | 2013-08-01 | 2015-09-29 | SMART Storage Systems, Inc. | Data storage system with dynamic read threshold mechanism and method of operation thereof |
| US9448946B2 (en) | 2013-08-07 | 2016-09-20 | Sandisk Technologies Llc | Data storage system with stale data mechanism and method of operation thereof |
| US9361222B2 (en) | 2013-08-07 | 2016-06-07 | SMART Storage Systems, Inc. | Electronic system with storage drive life estimation mechanism and method of operation thereof |
| US9431113B2 (en) | 2013-08-07 | 2016-08-30 | Sandisk Technologies Llc | Data storage system with dynamic erase block grouping mechanism and method of operation thereof |
| US9747157B2 (en) | 2013-11-08 | 2017-08-29 | Sandisk Technologies Llc | Method and system for improving error correction in data storage |
| US9152555B2 (en) | 2013-11-15 | 2015-10-06 | Sandisk Enterprise IP LLC. | Data management with modular erase in a data storage system |
| IN2014CH01483A (zh) * | 2014-03-20 | 2015-09-25 | Infosys Ltd | |
| US9727114B2 (en) * | 2014-09-25 | 2017-08-08 | Telefonaktiebolaget L M Ericsson (Publ) | HW-controlled power domains with automatic power-on request |
| US9477243B2 (en) | 2014-12-22 | 2016-10-25 | Intel Corporation | System maximum current protection |
| US10620687B2 (en) | 2014-12-22 | 2020-04-14 | Intel Corporation | Hybrid power management approach |
| US10101786B2 (en) | 2014-12-22 | 2018-10-16 | Intel Corporation | Holistic global performance and power management |
| US9829902B2 (en) | 2014-12-23 | 2017-11-28 | Intel Corporation | Systems and methods for dynamic temporal power steering |
| US9753526B2 (en) * | 2014-12-23 | 2017-09-05 | Intel Corporation | Systems and methods for synergistic software-hardware power budget management |
| US9811143B2 (en) | 2014-12-23 | 2017-11-07 | Intel Corporation | Systems and methods for dynamic spatial power steering |
| US10234926B2 (en) * | 2015-06-16 | 2019-03-19 | Dell Products, Lp | Method and apparatus for customized energy policy based on energy demand estimation for client systems |
| US9502082B1 (en) * | 2015-06-24 | 2016-11-22 | Intel Corporation | Power management in dual memory platforms |
| CN106708499B (zh) | 2015-11-13 | 2020-10-27 | 财团法人工业技术研究院 | 绘图处理程序的分析方法与分析系统 |
| CN108475240A (zh) * | 2016-01-13 | 2018-08-31 | 慧与发展有限责任合伙企业 | 重构的输入/输出请求 |
| US10554519B2 (en) * | 2016-02-08 | 2020-02-04 | Cray Inc. | System and method for dampening power swings in distributed computer environments |
| US10123277B2 (en) * | 2016-03-21 | 2018-11-06 | Apple Inc. | Techniques for managing wireless transmission energy budget |
| US20170371761A1 (en) * | 2016-06-24 | 2017-12-28 | Advanced Micro Devices, Inc. | Real-time performance tracking using dynamic compilation |
| US10795836B2 (en) * | 2017-04-17 | 2020-10-06 | Microsoft Technology Licensing, Llc | Data processing performance enhancement for neural networks using a virtualized data iterator |
| US11003616B1 (en) * | 2017-06-27 | 2021-05-11 | Amazon Technologies, Inc | Data transfer using point-to-point interconnect |
| US10990552B1 (en) * | 2018-04-03 | 2021-04-27 | Xilinx, Inc. | Streaming interconnect architecture for data processing engine array |
| US11048323B2 (en) * | 2019-04-29 | 2021-06-29 | Apple Inc. | Power throttling in a multicore system |
| TWI725434B (zh) * | 2019-05-24 | 2021-04-21 | 慧榮科技股份有限公司 | 藉助於組態設定來進行動態節流控制之方法、具備計算機功能的主機、以及資料儲存裝置及其控制器 |
| US11307631B2 (en) * | 2019-05-29 | 2022-04-19 | Advanced Micro Devices, Inc. | Dynamic voltage frequency scaling based on active memory barriers |
| CN114174955A (zh) * | 2019-07-31 | 2022-03-11 | 惠普发展公司,有限责任合伙企业 | 用于功率输送合同选择的电源设备 |
| US10915421B1 (en) * | 2019-09-19 | 2021-02-09 | Intel Corporation | Technology for dynamically tuning processor features |
| US11275426B2 (en) * | 2020-02-14 | 2022-03-15 | Arm Limited | System and method for controlling power mode transitions |
| CN111832809B (zh) * | 2020-06-19 | 2021-06-01 | 山东大学 | 基于Holt-Winters和极限学习机的建筑用能负荷预测方法及系统 |
| US11256488B1 (en) | 2020-07-29 | 2022-02-22 | Bank Of America Corporation | Graph-based vectorization for software code optimizations |
| US11301218B2 (en) | 2020-07-29 | 2022-04-12 | Bank Of America Corporation | Graph-based vectorization for software code optimization references |
| US11368412B2 (en) * | 2020-07-31 | 2022-06-21 | Avago Technologies International Sales Pte. Limited | Power throttle for network switches |
| US12204394B2 (en) * | 2021-06-28 | 2025-01-21 | Western Digital Technologies, Inc. | Precise power cycle management in data storage devices |
| US12135602B2 (en) * | 2021-09-24 | 2024-11-05 | Apple Inc. | Global integrated circuit power control |
| US12197268B2 (en) | 2021-09-24 | 2025-01-14 | Apple Inc. | Request and floor interface for current control with correctness in an SOC |
| US12535873B2 (en) * | 2023-06-29 | 2026-01-27 | Red Hat, Inc. | Optimized power management for computer systems |
| CN116991194A (zh) * | 2023-07-31 | 2023-11-03 | 国家电网有限公司信息通信分公司 | 基于rapl的功率控制方法、装置及存储介质 |
| WO2025035421A1 (en) * | 2023-08-16 | 2025-02-20 | Crown Equipment Corporation | Materials handling and other vehicles with functional responses to runtime calculation |
| KR20250166603A (ko) * | 2024-05-21 | 2025-11-28 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 이의 동작 방법 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TW200817887A (en) * | 2006-05-05 | 2008-04-16 | Dell Products Lp | Power allocation management in an information handling system |
| US20110060932A1 (en) * | 2005-08-25 | 2011-03-10 | Conroy David G | Methods and apparatuses for dynamic power control |
| US20110137763A1 (en) * | 2009-12-09 | 2011-06-09 | Dirk Aguilar | System that Captures and Tracks Energy Data for Estimating Energy Consumption, Facilitating its Reduction and Offsetting its Associated Emissions in an Automated and Recurring Fashion |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7203849B2 (en) * | 2003-12-12 | 2007-04-10 | Hewlett-Packard Development Company, L.P. | Method and system for distributing power to networked devices |
| US7581122B2 (en) * | 2004-06-29 | 2009-08-25 | Broadcom Corporation | Power supply integrated circuit with feedback control |
| EP1854064A4 (en) * | 2005-01-18 | 2009-03-25 | Mc Energy Inc | METHOD AND SYSTEM FOR TRACKING AND BUDGETING ENERGY UTILIZATION |
| US7536573B2 (en) * | 2005-07-29 | 2009-05-19 | Hewlett-Packard Development Company, L.P. | Power budgeting for computers |
| US20070203860A1 (en) * | 2006-02-24 | 2007-08-30 | Gridpoint, Inc. | Energy budget manager |
| US8386808B2 (en) * | 2008-12-22 | 2013-02-26 | Intel Corporation | Adaptive power budget allocation between multiple components in a computing system |
| US8694719B2 (en) * | 2011-06-24 | 2014-04-08 | Sandisk Technologies Inc. | Controller, storage device, and method for power throttling memory operations |
| US8639958B2 (en) * | 2011-07-07 | 2014-01-28 | International Business Machines Corporation | On-demand storage system energy savings |
-
2011
- 2011-12-13 US US13/324,932 patent/US9141166B2/en active Active
-
2012
- 2012-12-03 TW TW101145278A patent/TWI479306B/zh active
- 2012-12-10 WO PCT/US2012/068745 patent/WO2013090187A1/en not_active Ceased
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110060932A1 (en) * | 2005-08-25 | 2011-03-10 | Conroy David G | Methods and apparatuses for dynamic power control |
| TW200817887A (en) * | 2006-05-05 | 2008-04-16 | Dell Products Lp | Power allocation management in an information handling system |
| US20110137763A1 (en) * | 2009-12-09 | 2011-06-09 | Dirk Aguilar | System that Captures and Tracks Energy Data for Estimating Energy Consumption, Facilitating its Reduction and Offsetting its Associated Emissions in an Automated and Recurring Fashion |
Also Published As
| Publication number | Publication date |
|---|---|
| WO2013090187A1 (en) | 2013-06-20 |
| US9141166B2 (en) | 2015-09-22 |
| TW201346518A (zh) | 2013-11-16 |
| US20120185706A1 (en) | 2012-07-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI479306B (zh) | 包括在功率域中能量消耗的動態控制之能量效率及能量節約的方法、設備及系統 | |
| Chatterjee et al. | Usimm: the utah simulated memory module | |
| Yun et al. | Memory bandwidth management for efficient performance isolation in multi-core platforms | |
| TWI430079B (zh) | 用於多處理器核心之電力管理的裝置、系統及方法 | |
| Bitirgen et al. | Coordinated management of multiple interacting resources in chip multiprocessors: A machine learning approach | |
| US10048741B1 (en) | Bandwidth-aware multi-frequency performance estimation mechanism | |
| US9563579B2 (en) | Method, apparatus, system for representing, specifying and using deadlines | |
| CN104583896B (zh) | 向处理器的异构计算元件分配功率 | |
| US8510582B2 (en) | Managing current and power in a computing system | |
| US9665153B2 (en) | Selecting a low power state based on cache flush latency determination | |
| CN104246651B (zh) | 平台中的动态功率限值共享 | |
| US20170364133A1 (en) | Method, Apparatus, And System For Energy Efficiency And Energy Conservation Including Power And Performance Balancing Between Multiple Processing Elements And/Or A Communication Bus | |
| TWI534599B (zh) | 用於配合動態電壓脈波結構而改良電力遞送效能的裝置、方法與系統 | |
| US20090217280A1 (en) | Shared-Resource Time Partitioning in a Multi-Core System | |
| CN103995577B (zh) | 动态控制处理器的最大工作电压 | |
| US20190065243A1 (en) | Dynamic memory power capping with criticality awareness | |
| US20130060555A1 (en) | System and Apparatus Modeling Processor Workloads Using Virtual Pulse Chains | |
| CN109801659B (zh) | Dram内存库激活管理 | |
| US10191868B2 (en) | Priority framework for a computing device | |
| US20140281610A1 (en) | Exploiting process variation in a multicore processor | |
| Liu et al. | Fastcap: An efficient and fair algorithm for power capping in many-core systems | |
| US7870400B2 (en) | System having a memory voltage controller which varies an operating voltage of a memory and method therefor | |
| Gupta et al. | Timecube: A manycore embedded processor with interference-agnostic progress tracking | |
| Korkmaz et al. | Towards Dynamic Green-Sizing for Database Servers. | |
| Ramesh et al. | Energy management in embedded systems: Towards a taxonomy |