TWI575370B - 在多核心處理器中執行電源管理 - Google Patents

在多核心處理器中執行電源管理 Download PDF

Info

Publication number
TWI575370B
TWI575370B TW105100561A TW105100561A TWI575370B TW I575370 B TWI575370 B TW I575370B TW 105100561 A TW105100561 A TW 105100561A TW 105100561 A TW105100561 A TW 105100561A TW I575370 B TWI575370 B TW I575370B
Authority
TW
Taiwan
Prior art keywords
core
processor
cores
workload
logic
Prior art date
Application number
TW105100561A
Other languages
English (en)
Other versions
TW201640273A (zh
Inventor
維克特 李
金大宇
白羽辛
紀錫豪
李盛
希拉傑 卡蘭卡爾
納芬 梅蘭普帝
Original Assignee
英特爾股份有限公司
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 英特爾股份有限公司 filed Critical 英特爾股份有限公司
Publication of TW201640273A publication Critical patent/TW201640273A/zh
Application granted granted Critical
Publication of TWI575370B publication Critical patent/TWI575370B/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/324Power saving characterised by the action undertaken by lowering clock frequency
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3293Power saving characterised by the action undertaken by switching to a less power-consuming processor, e.g. sub-CPU
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • G06F9/5088Techniques for rebalancing the load in a distributed system involving task migration
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Power Sources (AREA)

Description

在多核心處理器中執行電源管理
實施例係有關於系統之電源管理,具體言之,係有關於多核心處理器之電源管理。
半導體處理與邏輯設計中之進展已容許可存在於積體電路裝置上之邏輯的數量之增加。結果,電腦系統組態已從一系統中之單一或多個積體電路進化成於個別積體電路上之多核心硬體執行緒、多核心、多裝置、及/或完整系統。此外,當積體電路的密度增加時,用於計算系統(從嵌入式系統至伺服器)之電源需求亦逐步擴大。再者,軟體無效率、及其硬體之需求亦造成計算裝置能源消耗的增加。事實上,某些研究顯示計算裝置消耗了一個國家(例如美國)整個電力供應之相當大的比例。結果,對於相關於積體電路之能源效率與保存有很重要的需求。當伺服器、桌上型電腦、筆記型電腦、UltrabookTM、平板電腦、行動電話、處理器、嵌入式系統等甚至變得更流行時(從包含典型的電腦、汽車、及電視至生物工學),這些需求 將會增加。
100‧‧‧系統
110‧‧‧處理器
120a‧‧‧核心
120n‧‧‧核心
125a‧‧‧整合式電壓調節器
125n‧‧‧整合式電壓調節器
125x‧‧‧整合式電壓調節器
132‧‧‧輸入/輸出介面
134‧‧‧介面
136‧‧‧整合式記憶體控制器
138‧‧‧電源控制單元
150‧‧‧電源供應器
160‧‧‧外部電壓調節器
200‧‧‧處理器
210a‧‧‧核心
210b‧‧‧核心
210n‧‧‧核心
215‧‧‧互連
220‧‧‧非核心
230‧‧‧共用快取
240‧‧‧整合式記憶體控制器
250a‧‧‧介面
250n‧‧‧介面
255‧‧‧電源控制單元
256‧‧‧工作負載分類邏輯
300‧‧‧處理器
310‧‧‧核心域
3100‧‧‧核心
310n‧‧‧核心
320‧‧‧圖形域
330‧‧‧環狀互連
3400‧‧‧末階快取
340n‧‧‧末階快取
350‧‧‧系統代理域
352‧‧‧顯示器控制器
355‧‧‧電源控制單元
356‧‧‧工作負載分類邏輯
370‧‧‧整合式記憶體控制器
3800‧‧‧介面
380n‧‧‧介面
400‧‧‧處理器
401‧‧‧核心
401a‧‧‧架構狀態暫存器
401b‧‧‧架構狀態暫存器
402‧‧‧核心
402a‧‧‧架構狀態暫存器
402b‧‧‧架構狀態暫存器
405‧‧‧匯流排介面模組
410‧‧‧較高階快取
420‧‧‧分支目標緩衝器及指令轉譯緩衝器
421‧‧‧分支目標緩衝器及指令轉譯緩衝器
425‧‧‧解碼器
426‧‧‧解碼器
430‧‧‧分配與更名方塊
431‧‧‧分配與更名方塊
435‧‧‧重排/引退單元
436‧‧‧重排/引退單元
440‧‧‧排程器與執行單元方塊
441‧‧‧排程器與執行單元方塊
450‧‧‧較低階資料快取與資料轉譯緩衝器
451‧‧‧較低階資料快取與資料轉譯緩衝器
460‧‧‧電源控制器
470‧‧‧記憶體控制器
500‧‧‧處理器核心
501‧‧‧擷取單元
503‧‧‧指令快取
505‧‧‧指令解碼器
510‧‧‧前端單元
515‧‧‧亂序引擎
520‧‧‧執行單元
522‧‧‧算術邏輯單元
524‧‧‧向量執行單元
530‧‧‧暫存器檔案
535‧‧‧延伸暫存器檔案
538‧‧‧機器特定暫存器
540‧‧‧重排緩衝器
550‧‧‧快取
600‧‧‧核心
605‧‧‧分支預測器
610‧‧‧指令快取
615‧‧‧指令解碼器
618‧‧‧微碼ROM
620‧‧‧發出佇列
630‧‧‧浮點管線
632‧‧‧浮點暫存器檔案
634‧‧‧浮點排程器
635‧‧‧算術邏輯單元
636‧‧‧混洗單元
638‧‧‧浮點加法器
640‧‧‧整數管線
642‧‧‧整數暫存器檔案
644‧‧‧整數排程器
645‧‧‧算術邏輯單元
646‧‧‧偏移器單元
648‧‧‧跳躍執行單元
650‧‧‧記憶體執行排程器
652‧‧‧位址產生單元
654‧‧‧轉譯緩衝器
660‧‧‧資料快取
670‧‧‧分配器/更名器
680‧‧‧重排緩衝器
700‧‧‧核心
710‧‧‧擷取單元
715‧‧‧解碼單元
725‧‧‧發出邏輯
730‧‧‧佇列
735‧‧‧整數單元
740‧‧‧乘法單元
750‧‧‧浮點/向量單元
760‧‧‧雙發出單元
770‧‧‧載入/儲存單元
780‧‧‧寫回單元
800‧‧‧核心
810‧‧‧擷取單元
815‧‧‧解碼器/更名器/配送器
820‧‧‧快取
825‧‧‧佇列
830‧‧‧發出邏輯
835‧‧‧整數單元
840‧‧‧乘法單元
850‧‧‧浮點/向量單元
860‧‧‧分支單元
870‧‧‧載入/儲存單元
880‧‧‧寫回單元
900‧‧‧核心
9100‧‧‧核心單元
910n‧‧‧核心單元
920‧‧‧圖形單元
925‧‧‧訊號處理器
930‧‧‧非揮發性儲存器
935‧‧‧記憶體控制器
940‧‧‧電源管理器
945‧‧‧安全性處理器
950‧‧‧視訊編解碼器
955‧‧‧顯示控制器
960a‧‧‧介面
960b‧‧‧介面
960c‧‧‧介面
960d‧‧‧介面
1000‧‧‧系統單晶片
1010‧‧‧第一核心域
10120‧‧‧第一核心
10123‧‧‧第一核心
1015‧‧‧快取記憶體
1020‧‧‧第二核心域
10220‧‧‧第二核心
10223‧‧‧第二核心
1025‧‧‧快取記憶體
1030‧‧‧圖形域
1040‧‧‧同調互連
1050‧‧‧整合式記憶體控制器
1100‧‧‧系統單晶片
1110‧‧‧中央處理器單元(CPU)域
1120‧‧‧GPU域
1130‧‧‧DSP單元
1140‧‧‧通訊單元
1150‧‧‧多媒體處理器
1160‧‧‧感測器單元
1170‧‧‧影像訊號處理器
1180‧‧‧顯示處理器
1190‧‧‧位置單元
1205‧‧‧基頻處理器
1210‧‧‧應用程式處理器
1215‧‧‧電源管理積體電路
1220‧‧‧使用者介面/顯示器
1225‧‧‧感測器
1230‧‧‧快閃記憶體
1235‧‧‧動態隨機存取記憶體
1240‧‧‧擷取裝置
1240‧‧‧通用積體電路卡
1250‧‧‧安全性處理器
1260‧‧‧近場通訊(NFC)無接觸介面
1265‧‧‧NFC天線
1270‧‧‧射頻收發器
1275‧‧‧無線區域網路收發器
1280‧‧‧GPS感測器
1290‧‧‧天線
1295‧‧‧音訊輸出裝置
1300‧‧‧系統
1310‧‧‧系統單晶片
1320‧‧‧觸控面板
1325‧‧‧週邊集線器
1330‧‧‧乙太網路介面
1340‧‧‧快閃記憶體
1345‧‧‧動態隨機存取記憶體
1350‧‧‧WLAN單元
1355‧‧‧天線
1360‧‧‧感測器
1365‧‧‧音訊編解碼器
1370‧‧‧音訊輸出裝置
1380‧‧‧電源管理積體電路
1390‧‧‧電池
1395‧‧‧AC配接器
1400‧‧‧系統
1410‧‧‧處理器
1415‧‧‧系統記憶體
1420‧‧‧大量儲存器
1422‧‧‧快閃裝置
1424‧‧‧顯示器
1425‧‧‧觸控螢幕
1430‧‧‧觸控墊
1435‧‧‧嵌入式控制器
1436‧‧‧鍵盤
1437‧‧‧風扇
1438‧‧‧信任平台模組
1439‧‧‧熱感測器
1440‧‧‧感測器集線器
1441‧‧‧加速計
1442‧‧‧周圍光感測器
1443‧‧‧羅盤
1444‧‧‧陀螺儀
1445‧‧‧NFC單元
1446‧‧‧熱感測器
1450‧‧‧WLAN單元
1452‧‧‧藍芽單元
1454‧‧‧相機模組
1455‧‧‧GPS模組
1456‧‧‧WWAN單元
1457‧‧‧用戶識別模組
1460‧‧‧數位訊號處理器
1462‧‧‧整合式編解碼器(CODEC)及放大器
1463‧‧‧輸出揚聲器
1464‧‧‧耳機插孔
1465‧‧‧麥克風
1500‧‧‧多處理器系統
1514‧‧‧輸入/輸出I/O裝置
1516‧‧‧第一匯流排
1518‧‧‧匯流排橋接器
1520‧‧‧第二匯流排
1522‧‧‧鍵盤/滑鼠
1524‧‧‧音訊I/O
1526‧‧‧通訊裝置
1528‧‧‧資料儲存單元
1530‧‧‧碼
1532‧‧‧記憶體
1534‧‧‧記憶體
1538‧‧‧高效能圖形引擎
1539‧‧‧P-P互連
1550‧‧‧點對點互連
1562‧‧‧P-P互連
1564‧‧‧P-P互連
1570‧‧‧第一處理器
1572‧‧‧記憶體控制器集線器
1574a‧‧‧處理器核心
1574b‧‧‧處理器核心
1576‧‧‧P-P介面
1578‧‧‧P-P介面
1580‧‧‧第二處理器
1582‧‧‧記憶體控制器集線器
1584a‧‧‧處理器核心
1584b‧‧‧處理器核心
1586‧‧‧P-P介面
1588‧‧‧P-P介面
1590‧‧‧晶片組
1592‧‧‧介面
1594‧‧‧P-P介面
1596‧‧‧介面
1598‧‧‧P-P介面
1600‧‧‧電源控制邏輯
1610‧‧‧效能特性緩衝器
1620‧‧‧預測邏輯
1630‧‧‧控制邏輯
1700‧‧‧處理器
17100‧‧‧核心
1710n‧‧‧核心
1720‧‧‧快取記憶體
1730‧‧‧內部記憶體
1750‧‧‧電源控制器
1760‧‧‧特性緩衝器
1770‧‧‧效能/能源模型邏輯
1780‧‧‧組態儲存器
1790‧‧‧電源組態選擇器
1792‧‧‧歷程邏輯
1794‧‧‧影響邏輯
1795‧‧‧更新邏輯
1800‧‧‧方法
1810‧‧‧方塊
1820‧‧‧方塊
1830‧‧‧方塊
1835‧‧‧菱形
1840‧‧‧方塊
1845‧‧‧菱形
1850‧‧‧方塊
1860‧‧‧方塊
1870‧‧‧方塊
1880‧‧‧方塊
1900‧‧‧方法
1910‧‧‧方塊
1920‧‧‧方塊
1930‧‧‧方塊
1940‧‧‧方塊
1950‧‧‧方塊
1960‧‧‧方塊
1970‧‧‧方塊
2000‧‧‧方法
2010‧‧‧方塊
2020‧‧‧菱形
2030‧‧‧方塊
2040‧‧‧菱形
2050‧‧‧方塊
第1圖為顯示根據本發明之實施例的系統之部份的方塊圖。
第2圖為顯示根據本發明之實施例的處理器之方塊圖。
第3圖為顯示根據本發明之另一實施例的多域處理器(multi-domain processor)之方塊圖。
第4圖為包括多核心之處理器的實施例。
第5圖為根據本發明之一實施例的處理器核心之微架構的方塊圖。
第6圖為根據另一實施例的處理器核心之微架構的方塊圖。
第7圖為仍根據另一實施例的處理器核心之微架構的方塊圖。
第8圖為仍根據進一步另一實施例的處理器核心之微架構的方塊圖。
第9圖為根據本發明之另一實施例的處理器之方塊圖。
第10圖為根據本發明之實施例的代表SoC之方塊圖。
第11圖為根據本發明之實施例的另一範例SoC之方塊圖。
第12圖為實施例可於其中使用之範例系統的方塊圖。
第13圖為實施例可於其中使用之另一範例系統的方塊圖。
第14圖為代表電腦系統之方塊圖。
第15圖為顯示根據本發明之實施例的系統之方塊圖。
第16圖為根據本發明之實施例的電源控制邏輯之方塊圖。
第17圖為根據本發明之另一實施例的包括硬體電源控制邏輯之處理器的方塊圖。
第18圖為根據本發明之實施例的用以控制處理器之電源消耗的方法之流程圖。
第19圖為根據本發明之另一實施例的用以控制處理器之電源消耗的方法之流程圖。
第20圖為根據本發明之實施例的用以更新訓練模型參數的方法之流程圖。
【發明內容與實施方式】
於各種實施例中,用於處理器之智慧型多核心電源管理控制器係被提供,其即時(on-the-fly)學習工作負載特性及動態地調整電源組態,用以提供能源之最佳效能。於一實施例中,此電源組態包括活動的核心及執行緒的數量,以及用於各活動的核心之最佳電壓與頻率。於各種實施例 中,機器學習式效能與能源模型識別特定工作負載行為(例如密集記憶體存取)及預測最佳電源控制,包括當記憶體資源飽和時,使一或多個核心處於閒置或低電源狀態。
於一實施例中,電源管理控制器係被組構與一策略,其決定最佳電源組態及將所決定的組態應用至底層系統的機制。此策略可包括由專家所開發之啟發式方法(heuristics)、及/或離線/線上機器學習方案,且可進一步包括一數量的使用者等級與作業系統(OS)等級核心至執行緒(core-to-thread)管理機制。
如此處所述之電源管理控制器可被組構以僅分配所需資源至工作負載,使得效能與能源效率可被最大化。於一範例中,在所有電腦資源被全部使用之前,記憶體界限工作負載使記憶體資源飽和(例如頻寬或佇列)。若此工作負載係以所有執行緒與核心為活動的來執行,則將會導致效率差。某些計算界限工作負載亦受到折衷的可擴縮性之困惱,此係因為許多理由,例如增加的同步管理負擔(synchronization overhead)。實施例相同地應用至建立核心中的鬆弛之其他工作負載,使得核心變得未充分利用。其他範例工作負載包括I/O或網路界限工作負載。因此,實施例可對不同工作負載識別最佳電源組態。舉例來說,特定工作負載可被識別,且對於該工作負載之未充分利用資源可被關閉或以降低的消耗等級來操作,用以在沒有不利地影響效能的情況下節省可觀的能源。
於一實施例中,對於工作負載之最佳電源組態界定最 佳數量的執行緒與核心、執行單元、電壓與頻率等等。此電源組態根據許多參數,包括運行時間工作負載行為及系統電源狀態。此外,當考慮到在電源狀態間之轉變的期間所發生的管理負擔時,選擇處理甚至變得更複雜。單一固定的控制策略難以調適各種工作負載與不同的系統。因此,實施例提供一組不同的模型用以評估,及智慧型選擇器用以從所識別的模型選擇。其在運行時間能有多個控制策略及彈性的選擇。因此,實施例可被使用以決定對於各工作負載並存的最佳電源組態(例如核心/執行緒的數量、及電壓/頻率),而非基於單一效能/能源預估模型之預定的控制策略。
實施例操作用以對記憶體密集的工作負載(其在完全利用計算資源之前會使記憶體資源飽和,其會浪費多核心處理器之能源)節省能源而沒有不利地影響效能。實施例可識別此行為並關閉未充分利用的核心,用以在沒有犧牲效能的情況下提供能源節省。
於某些實施例中,異質多處理器可包括兩種不同類型的核心:一種類型的核心被計算最佳化而另一種類型的核心被記憶體存取最佳化。於一範例中,兩種類型的核心皆實現相同的指令集架構(ISA)但具有不同的微架構,其可促進執行緒在核心類型間的遷移。
程式之計算及記憶體界限階段可具有非常不同的處理器需求,其無法被單一類型核心最佳化。舉例來說,對於計算工作負載進行最佳化的同質多處理器可針對以可維持 每個核心每個循環的積和熔加運算(FMA)之頻率運行之最高的核心計數。然而,此多處理器在大多在等待記憶體返回之程式階段期間可能不會非常有能源效率。因此,如同在記憶體界限階段期間,核心大部分閒置於等待記憶體存取,然而閒置時間可能不會久到保證將核心處於低電源狀態。結果,以高頻率閒置的核心會消耗不需要的電源。
因此,實施例提供包括兩個或更多個特殊類型的核心之異質多處理器,其可對不同操作點最佳化。於此處所述之範例中,兩個核心類型係被提供記憶體最佳化核心(亦稱為偏計算式核心)及記憶體最佳化核心(亦稱為偏記憶體式核心)。然而,應了解,本發明之範疇並不限於2個核心類型,且在其他情形中,可存在對於其他工作負載類型進行最佳化的額外核心類型。
雖然以下實施例係參考於特定積體電路中之能源保存與能源效率來說明(例如於計算平台或處理器),其他實施例可應用至其他類型之積體電路與邏輯裝置。此處所說明的實施例之類似的技術及教示可被應用至亦受益於較佳能源效率及能源保存之其他類型的電路或半導體裝置。舉例來說,所揭露的實施例不限於任何特定類型的電腦系統。亦即,所揭露的實施例可被使用於許多不同的系統類型,範圍從伺服器電腦(例如塔型、架型、刀鋒型、微伺服器等等)、通訊系統、儲存系統、任何組態之桌上型電腦、膝上型電腦、筆記型電腦、及平板電腦(包括2:1平板電腦、平板手機等等),且亦可被使用於其他裝置,例如手 持裝置、系統單晶片(SoC)、及嵌入式應用。手持裝置之一些範例包括蜂窩式電話(例如智慧型手機)、網際網路協定裝置、數位照相機、個人數位助理(PDA)、及手持PC。嵌入式應用可典型地包括微控制器、數位訊號處理器(DSP)、網路電腦(NetPC)、機上盒、網路集線器、廣域網路(WAN)交換器、可穿戴式裝置、或可執行以下所教示的功能與操作之任何其他系統。再者,實施例可被實現於具有標準聲音功能性之行動終端(例如行動電話、智慧型手機及平板手機)及/或被實現於沒有標準無線聲音功能通訊能力之非行動終端(例如許多可穿戴式裝置、平板電腦、筆記型電腦、桌上型電腦、微伺服器、伺服器等等)。再者,此處所述之裝置、方法、及系統並不限於實體計算裝置,其亦可相關於對於能源保存與效率之軟體最佳化。由以下說明可輕易了解到,此處所述之方法、裝置、及系統的實施例(不論參照硬體、韌體、軟體、或其組合)對於「綠色科技」的未來是重要的,例如對於佔美國經濟一大部分的產品之電源保存與能源效率。
現參照第1圖,所顯示係根據本發明之實施例的系統之部份的方塊圖。如第1圖所示,系統100可包括各種組件,包含處理器110,所示者為多核心處理器。處理器110可經由外部電壓調節器160(其可執行一第一電壓轉換用以提供主要調節的電壓至處理器110)被耦接至電源供應器150。
由圖可見,處理器110可為包括多核心120a-120n之 單晶粒處理器。此外,各核心可與整合式電壓調節器(IVR)125a-125n相關聯,其接收該主要調節的電壓及產生將被提供至與IVR相關聯的處理器之一或多個代理的一操作電壓。因此,IVR實現可被提供用以允許電壓的細粒控制(fine-grained control)及各個別核心之電源與效能。如此,各核心可用獨立的電壓與頻率來操作,達成很好的彈性且提供很大的機會來平衡電源消耗與效能。於某些實施例中,多IVR的使用可使組件分組為分開的電源平面,使得電源係藉由IVR被調節與供應至只有在群組中的那些組件。於電源管理期間,當處理器處於特定低電源狀態時,一個IVR之給定電源平面可被降低或關閉電源,而另一個IVR之另一個電源平面仍為活動的或被全面供給電源。
仍參照第1圖,額外的組件可存在處理器內,包括輸入/輸出介面132、另一介面134、及整合式記憶體控制器136。如圖所示,這些組件中的每一個可被另一整合式電壓調節器125x供給電源。於一實施例中,介面132可進行Intel® Quick Path Interconnect(QPI)互連之操作,其提供快取記憶體同調協定(包括多層(其包括實體層、連結層及協定層))之點對點(PtP)連結。再者,介面134可經由周邊組件高速互連(PCIeTM)協定來通訊。
亦顯示的是電源控制單元(PCU)138,其可包括硬體、軟體及/或韌體,用以執行關於處理器110之電源管理操作。如圖所示,PCU 138經由數位介面來提供控制資訊至外部電壓調節器160,用以使該電壓調節器產生適當的調 節電壓。PCU 138亦經由另一數位介面來提供控制資訊至IVR 125,用以控制所產生的操作電壓(或使對應的IVR在低電源模式中去能(disable))。於各種實施例中,PCU 138可包括許多電源管理邏輯單元,用以執行硬體式電源管理。此電源管理可全部為處理器控制(例如藉由各種處理器硬體,且其可藉由工作負載及/或電源、熱或其他處理器限制來觸發)及/或該電源管理可因應外部來源(例如平台或管理電源管理來源或系統軟體)而被執行。如此處進一步所述,PCU 138可包括控制邏輯用以基於被執行的工作負載之類型來執行工作負載分類,及使得該工作負載至少部份基於該工作負載之類型而被執行於可能不同的數量之核心(且以可能不同的效能狀態)。
雖然為了容易說明而未顯示,應了解的是,額外的組件可存在處理器110內,例如非核心邏輯、及其他組件,例如內部記憶體(例如一或多階的快取記憶體階層等等)。再者,雖然以整合式電壓調節器顯示於第1圖之實現中,實施例並不以此為限。
應注意的是,此處所述之電源管理技術可獨立於作業系統式電源管理(OSPM)機制且為其補充。根據一範例OSPM技術,處理器可在各種效能狀態或位準(所謂的P-狀態(P-state),即P0至PN)操作。通常,P1效能狀態可對應至OS所能請求之最高保證效能狀態。除了此P1狀態,OS可進一步請求較高效能狀態,即P0狀態。此P0狀態可因此為機會或加速模式狀態,於其中,當電源及/ 或熱預算為可用的,則處理器硬體可組構該處理器或至少其部份用以在較保證頻率高的頻率下操作。於許多實現中,處理器可包括在P1保證最大頻率之上的多個所謂的箱頻率(bin frequencies),超過特定處理器之最大峰值頻率(在製造期間被熔合或寫入處理器內)。此外,根據一OSPM機制,處理器可在各種電源狀態或位準下操作。關於電源狀態,OSPM機制可指明不同電源消耗狀態,一般稱為C-狀態(C-state),C0、C1至Cn狀態。當一核心為活動的時,其以C0狀態運行,且當該核心閒置時,其可被置於核心低電源狀態中(亦稱為核心非零C-狀態(例如C1-C6狀態)),具有各C-狀態處於較低電源消耗位準(例如C6係較C1更低的電源狀態,等等)。
應了解的是,許多不同類型的電源管理技術可被個別地或於不同實施例中結合使用。於代表範例中,電源控制器可控制處理器被動態電壓頻率調整(dynamic voltage frequency scaling;DVFS)之某些形式來管理電源,於其中,一或多個核心或其他處理器邏輯之操作電壓及/或操作頻率可被動態地控制,用以降低於特定情況的電源消耗。於一範例中,DVFS可使用美國Santa Clara,CA之Intel Corporation所開發的Enhanced Intel SpeedStepTM技術來執行,用以在最低電源消耗位準下提供最佳效能。於另一範例中,DVFS可使用Intel TurboBoostTM技術來執行,使一或多個核心或其他計算引擎基於條件(例如工作負載與可用性)而以高於保證操作頻率的頻率來操作。
可於特定範例中使用之另一電源管理技術為工作負載在不同計算引擎間動態交換。舉例來說,處理器可包括不對稱核心或以不同電源消耗位準來操作之其他處理引擎,例如於電源限制情況中,一或多個工作負載可被動態地切換,用以執行於較低電源核心或其他計算引擎上。另一範例電源管理技術為硬體任務循環(hardware duty cycling;HDC),其可使核心及/或其他計算引擎根據任務循環而被週期地賦能(enabled)與去能(disabled),使得一或多個核心可在任務循環之不活動週期期間被變成不活動的而在任務循環之活動週期期間被變成活動的。雖然以這些特定範例來說明,應了解的是,許多其他電源管理技術可被使用於特定實施例。
實施例可被實現於各種市場之處理器,包括伺服器處理器、桌上型處理器、行動處理器等等。現參照第2圖,所顯示的是根據本發明之實施例的處理器之方塊圖。如第2圖所示,處理器200可為包括複數個核心210a-210n之多核心處理器。於一實施例中,該各核心可為獨立電源域且可基於工作負載而被組構以進入與退出活動狀態及/或最大效能狀態。各種核心可經由互連215而耦接至系統代理或包括各種組件之非核心220。如圖所示,非核心220可包括共用快取230,其可為末階快取。此外,非核心可包括整合式記憶體控制器240例如經由記憶體匯流排而與系統記憶體(未於第2圖顯示)通訊。非核心220亦包括各種介面250與電源控制單元255,其可包括工作負載分類 邏輯256(其可包括機器學習邏輯或與機器學習邏輯相關聯),用以分類被執行的工作負載及執行一數量的核心及/或效能狀態之動態控制(至少部份基於其上,如此處所述)。
此外,藉由介面250a-250n,連接可被完成至各種晶片外組件(例如週邊裝置、大量儲存器等等)。雖然以此特定實現顯示於第2圖之實施例中,本發明之範疇並不以此為限。
現參照第3圖,所顯示的是根據本發明之另一實施例的多域處理器之方塊圖。如第3圖之實施例所示,處理器300包括多域。具體言之,核心域310可包括複數個核心3100-310n,圖形域320可包括一或多個圖形引擎,而系統代理域350可進一步存在。於某些實施例中,系統代理域350可用獨立於核心域之頻率來執行,且可仍在所有時間被供給電源,用以處理電源控制事件及電源管理,使得域310與320可被控制用以動態地進入與退出高電源及低電源狀態。各域310與320可用不同電壓及/或電源來操作。應注意的是,雖然僅顯示三個域,應了解的是,本發明之範疇並不以此為限,且額外的域可存在於其他實施例。舉例來說,多核心域可存在各包括至少一核心。
通常,除了各種執行單元與額外的處理元件以外,各核心310可進一步包括低階快取。再者,各種核心可被耦接至彼此及耦接至由複數個末階快取(LLC)3400-340n之單元形成的共用快取記憶體。於各種實施例中,LLC 340可 在核心與圖形引擎以及各種媒體處理電路之間共用。如圖所示,環狀互連330因此將核心耦接在一起,及在核心、圖形域320及系統代理電路350間提供互連。於一實施例中,互連330可為核心域之部份。然而,於其他實施例中,環狀互連可在其自己的域中。
如進一步可見者,系統代理域350可包含顯示器控制器352,其可提供一介面至相關聯的顯示器及相關聯的顯示器之控制。如進一步可見者,系統代理域350可包含電源控制單元355,其可包含工作負載分類邏輯356(其本身包含機器學習邏輯),用以執行如此處所述之工作負載分類式執行緒遷移及電源控制技術。
如第3圖進一步可見者,處理器300可進一步包含整合式記憶體控制器(IMC)370,其可提供一介面至系統記憶體,例如動態隨機存取記憶體(DRAM)。多個介面3800-380n可存在用以進行處理器與其他電路間之互連。舉例來說,於一實施例中,至少一直接媒體介面(DMI)介面以及一或多個PCIeTM介面可被提供。再者,為了提供其他代理(例如額外的處理器或其他電路)間之通訊,一或多個QPI介面亦可被提供。雖然以此高階顯示於第3圖之實施例中,應了解的是,本發明之範疇並不以此為限。
參照第4圖,係顯示包含多核心之處理器的實施例。處理器400包含任何處理器或處理裝置,例如微處理器、嵌入式處理器、數位訊號處理器(DSP)、網路處理器、手持處理器、應用處理器、共處理器、系統單晶片(SoC)、 或用以執行碼之其他裝置。於一實施例中,處理器400包含至少兩個核心--核心401與402,其可包含不對稱核心或對稱核心(所顯示的實施例)。然而,處理器400可包含任何數量的可為對稱或不對稱之處理單元。
於一實施例中,處理單元參照用以支援軟體執行緒之硬體或邏輯。硬體處理單元之範例包含:執行緒單元、執行緒槽(thread slot)、執行緒、處理單元、脈絡(context)、脈絡單元、邏輯處理器、硬體執行緒、核心、及/或能使處理器保持狀態(例如執行狀態或架構狀態)之其他元件。換句話說,於一實施例中,處理單元參照能獨立地與碼(例如軟體執行緒、作業系統、應用程式、或其他碼)相關聯之任何硬體。實體處理器典型地參照積體電路,其可能包含任何數量的其他處理元件,例如核心或硬體執行緒。
核心通常參照位於能維持獨立架構狀態的積體電路之邏輯,其中各獨立維持架構狀態係與至少一些專用執行資源相關聯。與核心相比,硬體執行緒典型地參照位於能維持獨立架構狀態的積體電路之任何邏輯,其中獨立維持架構狀態共用存取至執行資源。如可見者,當特定資源被共用且其他資源被專用於架構狀態時,核心與硬體執行緒之命名(nomenclature)間的線重疊。仍然通常地,核心與硬體執行緒係由作業系統來檢視作為個別邏輯處器,其中作業系統能個別地排程於各邏輯處理器上之操作。
如第4圖所示,實體處理器400包含兩個核心,核心401與402。於此,核心401與402係被考量為對稱核 心,亦即具有相同架構、功能單元、及/或邏輯之核心。於另一實施例中,核心401包含亂序處理器核心,而核心402包含循序處理器核心。然而,核心401與402可被個別地從任何類型的核心中選擇,例如本機核心(native core)、軟體管理式核心、適於執行本機指令集架構(ISA)之核心、適於執行轉譯ISA之核心、共設計核心、或其他已知核心。再者為了進一步討論,於核心401中所示的功能單元係於後文中詳細說明,而於核心402中的單元亦以類似方式操作。
如圖所示,核心401包含兩個硬體執行緒401a與401b,其亦可稱為硬體執行緒槽401a與401b。因此,於一實施例中,軟體個體(例如作業系統)可能檢視處理器400為四個分開的處理器,亦即能夠同時執行四個軟體執行緒之四個邏輯處理器或處理單元。如以上所間接提到的,第一執行緒係與架構狀態暫存器401a相關聯、第二執行緒係與架構狀態暫存器401b相關聯、第三執行緒係與架構狀態暫存器402a相關聯、且第四執行緒係與架構狀態暫存器402b相關聯。在此,各架構狀態暫存器(401a、401b、402a、及402b)可如上所述參照為處理單元、執行緒槽、或執行緒單元。如圖所示,架構狀態暫存器401a係被複製於架構狀態暫存器401b中,故個別架構狀態/脈絡能被邏輯處理器401a與邏輯處理器401b儲存。於核心401中,其他較小的資源(例如分配與更名方塊430中之指令指標與更名邏輯)亦可對執行緒401a與 401b複製。某些資源,例如重排/引退單元435中之重排緩衝器、I-TLB 420、載入/儲存緩衝器、及佇列,可透過分割(partitioning)來共用。其他資源,例如一般目的內部暫存器、分頁表基本暫存器、低階資料快取與資料TLB 415、執行單元440、與亂序單元435之部份,係可能被完全共用。
處理器400通常包含可被完全共用(透過分割共用)或由處理單元專用之其他資源。於第4圖中,係顯示純範例處理器,具有處理器之邏輯單元/資源。應注意的是,處理器可包含(或省略)任何的這些功能單元以及包含未圖示之任何其他已知功能單元、邏輯、或韌體。如圖所示,核心401包含簡化的代表亂序(out-of-order;OOO)處理器核心。但循序處理器可被使用於不同實施例中。OOO核心包含分支目標緩衝器420(用以預測將被執行/採用的分支)及指令轉譯緩衝器(I-TLB)420(用以對指令儲存轉譯條目)。
核心401進一步包含耦接至擷取單元420之解碼模組425,用以解碼所擷取的元件。於一實施例中,擷取邏輯包含分別與執行緒槽401a與401b相關聯之個別定序器。通常,核心401與第一ISA(其界定/指明可於處理器400執行的指令)相關聯。通常,為第一ISA之部份的機器碼指令包含指令的部份(稱為操作碼),其界定/指明將被執行的指令或操作。解碼邏輯425包含從其操作碼識別這些指令及將所解碼的指令傳到管線中以供處理(如第一ISA所 界定者)之電路。舉例來說,於一實施例中,解碼器425包含設計或調適用以識別特定指令(例如異動式指令(transactional instruction))之邏輯。由解碼器425識別的結果,架構或核心401採用特定、預先界定的動作以執行與適當指令相關聯的任務。注意以下所述是很重要的,此處所述之任何的任務、方塊、操作、及方法可因應單一或多個指令(其中的某些可為新的或舊的指令)而被執行。
於一範例中,分配與更名方塊430包含用以保留資源之分配器,例如用以儲存指令處理結果之暫存器檔案。然而,執行緒401a與401b可能可亂序執行,其中分配與更名方塊430亦保留其他資源,例如重排緩衝器用以追蹤指令結果。單元430亦可包含暫存器更名器,用以將程式/指令參考暫存器更名成處理器400內部之其他暫存器。重排/引退單元435包含組件,例如以上所提及的重排緩衝器、載入緩衝器、及儲存緩衝器,用以支援亂序執行及之後的亂序執行之指令的循序引退。
於一實施例中,排程器與執行單元方塊440包含排程器單元,用以排程指令/操作於執行單元上。舉例來說,浮點指令係被排程於執行單元中具有可用的浮點執行單元的埠上。與執行單元相關聯的暫存器檔案亦被包含以儲存資訊指令處理結果。範例執行單元包含浮點執行單元、整數執行單元、跳躍執行單元、載入執行單元、儲存執行單元、及其他已知執行單元。
較低階資料快取與資料轉譯緩衝器(D-TLB)450係耦 接至執行單元440。資料快取係用以儲存最近使用的/操作的元素,例如資料操作元,其係可能被保持於記憶體一致性狀態。D-TLB係用以儲存最近的虛擬/線性至實際位址轉譯。於特定範例中,處理器可包含分頁表結構以將實體記憶體劃分成複數個虛擬分頁。
在此,核心401與402共用至較高階或更外面的快取410之存取,其係用以對最近擷取的元素進行快取。應注意的是,較高階或更外面係指快取的階增加或更遠離執行單元。於一實施例中,較高階快取410為末階資料快取--於處理器400上之記憶體階層中的最終快取--例如第二或第三階資料快取。然而,較高階快取410並不以此為限,其可與指令快取相關聯或包含指令快取。追蹤快取--一種指令快取的類型--可在解碼器425之後被耦接,用以儲存最近解碼的追蹤。
於所示組態中,處理器400亦包含匯流排介面模組405及電源控制器460,其可根據本發明之實施例來執行電源管理。於此方案中,匯流排介面405係用以與處理器400外部的裝置進行通訊,例如系統記憶體與其他組件。
記憶體控制器470可介接(interface)其他裝置,例如一或許多記憶體。於一範例中,匯流排介面405包含環狀互連,有用以介接記憶體之記憶體控制器與用以介接圖形處理器之圖形控制器。於SoC環境中,甚至更多裝置(例如網路介面、共處理器、記憶體、圖形處理器、及任何其他已知電腦裝置/介面)可被整合於單晶粒或積體電路,用 以提供有高功能性與低電源消耗之小形態因子。
現參照第5圖,所顯示的是根據本發明之一實施例的處理器核心之微架構的方塊圖。如第5圖所示,處理器核心500可為多級管線亂序處理器。核心500可基於所接收的操作電壓(其可從整合式電壓調節器或外部電壓調節器來接收)以各種電壓來操作。
如第5圖所見,核心500包含前端單元510,其可被使用以擷取將被執行的指令並準備將其稍後於處理器管線中使用。舉例來說,前端單元510可包含擷取單元501、指令快取503、及指令解碼器505。於某些實現中,前端單元510可進一步包含追蹤快取,與微碼儲存器及微操作儲存器在一起。擷取單元501可擷取巨集指令(例如從記憶體或指令快取503),並將其饋送至指令解碼器505用以將其解碼至原指令(primitive),亦即由處理器執行之微操作。
耦接於前端單元510與執行單元520之間的是亂序(out-of-order;OOO)引擎515,其可被使用以接收微指令並準備將其執行。更具體言之,OOO引擎515可包含各種緩衝器用以重排微指令流及分配執行所需之各種資源,以及用以提供邏輯暫存器於各種暫存器檔案(例如暫存器檔案530與延伸暫存器檔案535)內之儲存器位置上之更名。暫存器檔案530可包含用於整數與浮點操作之分開的暫存器檔案。為了組態、控制、及額外的操作之目的,一組機器特定暫存器(MSR)538亦可存在及可存取至核心 500內(及核心外部)之各種邏輯。舉例來說,電源限制資訊可被儲存於一或多個MSR且可如此處所述般被動態地更新。
各種資源可存在於執行單元520中,包含例如各種整數、浮點、及單指令多資料(SIMD)邏輯單元(連同其他特殊化的硬體)。舉例來說,此執行單元可包含一或多個算術邏輯單元(ALU)522及一或多個向量執行單元524(連同其他此執行單元)。
執行單元之結果可被提供至引退邏輯,亦即重排緩衝器(ROB)540。更具體言之,ROB 540可包含各種陣列及邏輯,用以與被執行的指令相關聯之資訊。此資訊接著由ROB 540檢驗,用以決定該指令是否可被有效地引退及結果資料被提交至處理器的架構狀態,或防止指令之適當引退之一或多個例外是否發生。當然,ROB 540可處理與引退相關聯的其他操作。
如第5圖所示,ROB 540係耦接至快取550,其於一實施例中可為低階快取(例如L1快取),雖然本發明之範疇並不以此為限。同樣的,執行單元520可被直接耦接至快取550。從快取550,資料通訊可用較高階快取、系統記憶體等等來發生。雖然以此高階顯示於第5圖之實施例中,應了解的是,本發明之範疇並不以此為限。舉例來說,雖然第5圖係有關亂序機器,例如Intel® x86指令集架構(ISA),本發明之範疇並不以此為限。亦即,其他實施例可被實現於循序處理器、精減指令集計算(RISC)處理 器(例如ARM式處理器)、或可經由模擬引擎與相關聯的邏輯電路來模擬不同ISA的指令及操作之另一ISA類型的處理器。
現參照第6圖,所顯示的是根據另一實施例的處理器核心之微架構的方塊圖。於第6圖之實施例中,核心600可為不同微架構之低電源核心,例如具有設計用以降低電源消耗的相對限制的管線深度之Intel® AtomTM式處理器。如圖可見,核心600包含被耦接用以提供指令至指令解碼器615之指令快取610。分支預測器605可耦接至指令快取610。應注意的是,指令快取610可進一步耦接至另一階的快取記憶體,例如L2快取(為了容易說明而未於第6圖中顯示)。再者,指令解碼器615提供經解碼的指令至發出佇列620以供定執行管線之儲存與傳送。微碼ROM 618係耦接至指令解碼器615。
浮點管線630包含浮點暫存器檔案632,其可包含給定位元寬度(例如128、256或512位元)之複數個架構暫存器。管線630包含浮點排程器634,用以排程指令以執行於管線之多個執行單元中之一者上。於所示實施例中,此執行單元包含ALU 635、混洗單元636、及浮點加法器638。再者,於這些執行單元中產生的結果可被提供回暫存器檔案632之緩衝器及/或暫存器。當然,應了解的是,雖然以這數個範例執行單元來顯示,額外的或不同的浮點執行單元可存在於另一實施例中。
整數管線640亦可被提供。於所示實施例中,管線 640包含整數暫存器檔案642,其可包含給定位元寬度(例如128或256位元)之複數個架構暫存器。管線640包含整數排程器644,用以排程指令以執行於管線之多個執行單元中之一者上。於所示實施例中,此執行單元包含ALU645、偏移器單元646、及跳躍執行單元648。再者,於這些執行單元中產生的結果可被提供回暫存器檔案642之緩衝器及/或暫存器。當然,應了解的是,雖然以這數個範例執行單元來顯示,額外的或不同的整數執行單元可存在於另一實施例中。
記憶體執行排程器650可排程記憶體操作以執行於位址產生單元652(其亦耦接至TLB 654)中。如圖可見,這些結構可耦接至資料快取660,其可為L0及/或L1資料快取,其依次耦接至額外的階之快取記憶體階層,包含L2快取記憶體。
為了提供對亂序執行之支援,分配器/更名器670可被提供,除了重排緩衝器680之外,其係經組構以重排被亂序執行的指令以供循序引退。雖然以此特定管線架構於第6圖中顯示,應了解的是,許多變化與替代是可能的。
應注意的是,於具有不對稱核心之處理器中,例如根據第5與6圖之微架構,工作負載可因電源管理的理由而在核心間被動態地交換,這些核心(雖然具有不同的管線設計與深度)可為相同或相關的ISA。此動態核心交換可用對於使用者應用程式(且也還有可能為核心(kernel))透明的方式而被執行。
參照第7圖,所顯示的是仍根據另一實施例的處理器核心之微架構的方塊圖。如第7圖所示,核心700可包含多階循序管線,用以在極低電源消耗位準下執行。於此一範例中,處理器700可具有根據美國Sunnyvale,CA.之ARM Holdings,LTD.所開發的ARM Cortex A53設計之微架構。於一實現中,8階管線可被提供,其係經組構以執行32位元與64位元碼兩者。核心700包含擷取單元710,其係經組構以擷取指令並將其提供至解碼單元715,其可解碼指令,例如給定ISA(例如ARMv8 ISA)之巨集指令。應注意的是,再者,佇列730可耦接至解碼單元715,用以儲存經解碼的指令。經解碼的指令係被提供至發出邏輯725,於此,經解碼的指令可被發出至多個執行單元中之給定一者。
進一步參照第7圖,發出邏輯725可發出指令至多個執行單元之其中一者。於所示實施例中,這些執行單元包括整數單元735、乘法單元740、浮點/向量單元750、雙發出單元760、及載入/儲存單元770。這些不同的執行單元之結果可被提供至寫回單元780。應了解的是,雖然為了容易說明而顯示單一寫回單元,於某些實現中,分開的寫回單元可與各執行單元相關聯。再者,應了解的是,雖然於第7圖中顯示之各單元與邏輯係以高階表示,特定實現可包含更多或不同的結構。使用具有如第7圖之管線的一或多個核心來設計之處理器可被實現於許多不同末端產品中,從行動裝置至伺服系統。
參照第8圖,所顯示的是為根據另一實施例的處理器核心之微架構的方塊圖。如第8圖所示,核心800可包含多階多發出亂序管線,用以執行於極高效能位準(其可用較第7圖之核心700為高的電源消耗位準來發生)。於此一範例中,處理器800可具有根據ARM Cortex A57設計之微架構。於一實現中,15(或更多)階管線可被提供,其係經組構以執行32位元與64位元碼兩者。此外,管線可提供3(或更多)寬與3(或更多)發出操作。核心800包含擷取單元810,其係經組構以擷取指令及將其提供至解碼器/更名器/配送器815,其可解碼指令(例如ARMv8指令集架構之巨集指令)、更名指令內之暫存器參考、及配送指令(最終)至所選擇的執行單元。經解碼的指令可被儲存佇列825中。應注意的是,雖然於第8圖中為了簡單說明所顯示的是單一佇列結構,應了解的是,分開的佇列可被提供用於執行單元之多個不同類型中之各者。
亦顯示於第8圖中的是發出邏輯830,儲存於佇列825中之經解碼的指令在此可被發出至所選擇的執行單元。發出邏輯830亦可被實現於特定實施例中,於其中,具有分開的發出邏輯以用於多個不同類型的執行單元中與發出邏輯830耦接之各者。
經解碼的指令可被發出至多個執行單元中之給定其中一者。於所示實施例中,這些執行單元包含一或多個整數單元835、乘法單元840、浮點/向量單元850、分支單元860、及載入/儲存單元870。於一實施例中,浮點/向量單 元850可被組構以處理128或256位元之之SIMD或向量資料。再者,浮點/向量單元850可執行IEEE-754雙精度浮點操作。這些不同的執行單元之結果可被提供至寫回單元880。應注意的是,於某些實現中,分開的寫回單元可與各執行單元相關聯。再者,應了解的是,雖然於第8圖中顯示之各單元與邏輯係以高階表示,特定實現可包含更多或不同的結構。
應注意的是,於具有不對稱核心之處理器中,例如根據第7與8圖之微架構,工作負載可因電源管理的理由而被動態地交換,這些核心(雖然具有不同的管線設計與深度)可為相同或相關的ISA。此動態核心交換可用對於使用者應用程式(且也還有可能為核心(kernel))透明的方式而被執行。
使用具有如第5-8圖之任何一或多者之管線的一或多個核心來設計之處理器可被實現於許多不同末端產品中,從行動裝置至伺服系統。現參照第9圖,所顯示的是根據本發明之另一實施例的處理器之方塊圖。於第9圖之實施例中,處理器900可為包含多域之SoC,各域可被控制用以操作於獨立操作電壓與操作頻率下。於特定例示範例中,處理器900可為Intel Corporation所販售的Intel® Architecture CoreTM式處理器,例如i3、i5、i7或另一此種處理器。然而,例如美國Sunnyvale,CA之Advanced Micro Devices,Inc.(AMD)所開發之其他低電源處理器、來自ARM Holdings,Ltd之ARM式設計、或獲其許可者 或來自美國Sunnyvale,CA之MIPS Technologies,Inc.的MIPS式設計、或獲其許可者或採用者可取代而存在於其他實施例中,例如Apple A7處理器、Qualcomm Snapdragon處理器、或Texas Instruments OMAP處理器。此SoC可被使用於低電源系統,例如智慧型手機、平板電腦、平板手機、UltrabookTM或其他可攜式計算裝置。
於第9圖中所示之高階視圖中,處理器900包含複數個核心單元9100-910n。各核心單元可包含一或多個處理器核心、一或多個快取記憶體與其他電路。各核心單元910可支援一或多個指令集(例如x86指令集(較新的版本有加入一些擴充);MIPS指令集;ARM指令集(有加入可選的額外擴充,例如NEON))或其他指令集或其組合。應注意的是,某些核心單元可為異質資源(例如有不同的設計)。此外,各核心可被耦接至快取記憶體(未圖示),其於一實施例中可為共用階(L2)快取記憶體。非揮發性儲存器930可被使用以儲存各種程式與其他資料。舉例來說,此儲存被使用以儲存至少一部分的微碼、啟動資訊(例如BIOS)、其他系統軟體等等。
各核心單元910亦可包含介面,例如匯流台介面單元,用以與處理器之額外的電路進行互連。於一實施例中,各核心單元910耦接至同調構造(coherent fabric),其可作為主快取同調晶粒上互連(其依次耦接至記憶體控制器935)。再者,記憶體控制器935控制與記憶體(例如DRAM)的通訊(為容易說明未顯示於第9圖)。
除了核心單元外,額外的處理引擎係存在處理器內,包含至少一圖形單元920,其可包含一或多個圖形處理單元(GPU),用以執行圖形處理以及可能地執行一般目的操作於圖形處理器(所謂的GPGPU操作)上。此外,至少一影像訊號處理器925可存在。訊號處理器925可被組構以處理從一或多個擷取裝置所接收(無論是SoC內部或晶片外)之新來的影像資料。
其他加速器亦可存在。於第9圖之說明中,視訊編解碼器950可執行解編碼操作,包含對於視訊資訊之編碼與解碼操作,例如對於高清晰度視訊內容提供硬體加速支援。顯示控制器955可進一步被提供用以加速顯示操作,包含對系統之內部與外部顯示提供支援。此外,安全性處理器945可存在用以執行安全性操作,例如安全啟動操作、各種加密操作等等。
各單元可經由電源管理器940來控制其電源消耗,其可包含控制邏輯用以執行此處所述之各種電源管理技術。舉例來說,電源管理器940可包含用以分類被執行的工作負載之機器學習/工作負載分類邏輯及可使工作負載之至少一些執行緒動態地遷移至不同核心(及/或核心類型)之遷移邏輯,使得不同數量的核心在下個操作間隔中可為活動的。
於某些實施例中,SoC 900可進一步包含耦接至各種週邊裝置可與其耦接的同調構造之非同調構造。一或多個介面960a-960d能進行與一或多個晶片外裝置的通訊。此 通訊可經由許多通訊協定來進行,例如PCIeTM、GPIO、USB、I2C、UART、MIPI、SDIO、DDR、SPI、HDMI,連同其他類型的通訊協定。雖然以此高階顯示於第9圖之實施例中,應了解的是,本發明之範疇並不以此為限。
現參照第10圖,所顯示的是代表SoC之方塊圖。於所示實施例中,SoC 1000可為經組構以用於被最佳化以結合於智慧型手機或其他低電源裝置(例如平板電腦或其他可攜式計算裝置)之低電源操作的多核心SoC。於一範例中,SoC 1000可使用不對稱或不同類型的核心而被實現,例如較高電源及/或低電源核心(例如亂序核心與循序核心)之結合。於不同的實施例中,這些核心可基於Intel® ArchitectureTM核心設計或ARM架構設計。仍於其他實施例中,Intel與ARM核心的混合可被實現於給定SoC中。
由第10圖可見,SoC 1000包含具有複數個第一核心10120-10123之第一核心域1010。於一範例中,這些核心可為低電源核心,例如循序核心。於一實施例中,這些第一核心可被實現為ARM Cortex A53核心。再者,這些核心耦接至核心域1010之快取記憶體1015。此外,SoC 1000包含第二核心域1020。於第10圖之圖示中,第二核心域1020具有複數個核心10220-10223。於一範例中,這些核心可為比第一核心1012耗能的高電源消耗核心。於一實施例中,第二核心可為亂序核心,其可被實現為ARM Cortex A57核心。再者,這些核心耦接至核心域 1020之快取記憶體1025。應注意的是,雖然第10圖中所示的範例包含4個核心於各域中,應了解的是,於其他範例中,更多或更少核心可存在於給定域中。
進一步參照第10圖,圖形域1030亦被提供,其可包含一或多個圖形處理單元(GPU),其係經組構以獨立地執行例如由核心域1010與1020的一或多個核心所提供之圖形工作負載。於一範例中,除了提供圖形與顯示彩現(display rendering)操作以外,GPU 1030可被使用以提供對於許多螢幕尺寸之顯示支援。
由圖可見,各種域耦接至同調互連1040,其於一實施例中可為快取同調互連構造(其進一步耦接至整合式記憶體控制器1050)。同調互連1040可包含共用快取記憶體,於某些範例中,例如L3快取。於一實施例中,記憶體控制器1050可為直接記憶體控制器,用以提供與晶片外記憶體進行通訊之多個通道,例如DRAM之多個通道(為了容易說明未顯示於第10圖)。
於不同的範例中,核心域的數量可改變。舉例來說,對於適用於結合至行動計算裝置中之低電源SoC,限制數量的核心域(例如第10圖中所示)可存在。再者,於此低電源SoC中,包含較高電源核心之核心域1020可具有較小數量的此種核心。舉例來說,於一實現中,兩個核心1022可被提供用以在降低的電源消耗位準下操作。此外,不同核心域亦可被耦接至中斷控制器,用以進行不同域之間的工作負載之交換。
於其他實施例中,較大數量的核心域以及額外的可選的IP邏輯可存在,於其中,SoC可按比例設置成(scaled)較高效能(及電源)位準以結合至其他計算裝置中,例如桌上型電腦、伺服器、高效能計算系統、基地台等等。於此一範例中,各具有給定數量的亂序核心之4個核心域可被提供。再者,除了可選的GPU支援(其作為一範例中可採GPGPU之形式)以外,用以對特定功能(例如網頁伺服、網路處理、切換或等等)提供最佳化的硬體支援之一或多個加速器亦可被提供。此外,輸入/輸出介面可存在用以耦接此加速器至晶片外組件。
現參照第11圖,所顯示的是另一範例SoC之方塊圖。於第11圖之實施例中,SoC 1100可包含用以進行高效能的多媒體應用、通訊及其他功能之各種電路。依此方式,SoC 1100係適用於結合至許多種可攜式與其他裝置中,例如智慧型手機、平板電腦、智慧電視等等。於所示範例中,SoC 1100包含中央處理器單元(CPU)域1110。於一實施例中,複數個個別的處理器核心可存在於CPU域1110中。於一範例中,CPU域1110可為具有4個多執行緒核心之四核心處理器。此處理器可為同質或異質處理器,例如低電源與高電源處理器核心之混合。
再者,GPU域1120係被提供以執行進階圖形處理於一或多個GPU中,用以處理圖形及計算API。除了可在多媒體指令的執行期間發生之進階計算以外,DSP單元1130可提供一或多個低電源DSP以處理低電源多媒體應 用,例如音樂播放、音訊/視訊等等。再者,通訊單元1140可包含用以經由無線協定來提供連接性之各種組件,該無線協定例如蜂巢式通訊(包含3G/4G LTE)、無線區域協定(例如BluetoothTM)、IEEE 802.11等等。
再者,多媒體處理器1150可被使用以執行高清晰度視訊及語音訊內容(包含使用者手勢的處理)之擷取與播放。感測器單元1160可包含複數個感測器及/或感測器控制器,用以介接至存在於給定平台中之各種晶片外感測器。影像訊號處理器1170可被提供連同一或多個分開的ISP,用以執行關於來自平台的一或多個相機之經擷取的內容之影像處理,包含靜態與視訊相機。
顯示處理器1180可提供對於與給定像素密度的高清晰度顯示器之連接的支援,包含用以將內容無線地通訊以供播放於此顯示器之能力。再者,位置單元1190可包含支援多個GPS群組之GPS接收器,用以提供使用例如此GPS接收器所取得之高精確度定位資訊予應用程式。應了解雖然以此組件之特定集於第11圖範例中顯示,許多變化與替代是可能的。
現參照第12圖,所顯示的是實施例可於其中使用之範例系統的方塊圖。由圖可見,系統1200可為智慧型手機或其他無線通訊器。基頻處理器1205係經組構以執行關於將從系統傳送或藉由系統接收的通訊訊號之各種訊號處理。再者,基頻處理器1205係耦接至應用程式處理器1210,其可為系統用以執行除了使用者應用程式(例如許 多已知社交媒體與多媒體應用程式)以外的OS與其他系統軟體之主CPU。應用程式處理器1210可進一步被組構以對該裝置執行許多其他計算操作。
再者,應用程式處理器1210可耦接至使用者介面/顯示器1220,例如觸控螢幕顯示器。此外,應用程式處理器1210可耦接至包含非揮發性記憶體之記憶體系統(即快閃記憶體1230)與記憶體系統(即動態隨機存取記憶體(DRAM)1235)。由圖進一步可見,應用程式處理器1210進一步耦接至擷取裝置1240,例如可記錄視訊及/或靜態影像之一或多個影像擷取裝置。
仍參照第12圖,包含用戶識別模組及可能的安全性儲存器與加密處理器之通用積體電路卡(UICC)1240亦可被耦接至應用程式處理器1210。系統1200可進一步包含安全性處理器1250,其可耦接至應用程式處理器1210。複數個感測器1225可耦接至應用程式處理器1210以進行許多經感測的資訊之輸入,例如加速計與其他環境資訊。音訊輸出裝置1295可提供一介面,用以輸出聲音,例如以語音通訊、播放的或串流音訊資料等等的形式。
如進一步顯示者,近場通訊(NFC)無接觸介面1260係以經由NFC天線1265在NFC近場中通訊的方式被提供。雖然第12圖中顯示分開的天線,應了解的是,於某些實現中,一個天線或不同組的天線可被提供用以進行各種無線功能性。
電源管理積體電路(PMIC)1215耦接至應用程式處理 器1210,用以執行平台位準電源管理。為此目的,PMIC 1215可發出電源管理請求至應用程式處理器1210,用以進入所期望的特定低電源狀態。再者,基於平台限制,PMIC 1215亦可控制系統1200之其他組件的電源位準。
為了使通訊被傳送與接收,各種電路可在基頻處理器1205與天線1290間被耦接。具體言之,射頻(RF)收發器1270與無線區域網路(WLAN)收發器1275可存在。通常,RF收發器1270可被使用以根據給定無線通訊協定(例如3G或4G無線通訊協定,例如根據碼分多重存取(CDMA)、全球行動通訊系統(GSM)、長程演進(LTE)或其他協定)來接收與傳送無線資料與通話。此外,GPS感測器1280可存在。其他無線通訊亦可被提供,例如無線電訊號(例如AM/FM與其他訊號)之接收或傳送。此外,經由WLAN收發器1275,區域無線通訊亦可被實現。
現參照第13圖,所顯示的是實施例可於其中使用之另一範例系統的方塊圖。於第13圖之圖示中,系統1300可為行動低電源系統,例如平板電腦、2:1平板、平板手機或其他可改變的(convertible)或獨立的(standalone)平板系統。如圖所示,SoC 1310係存在且可被組構以操作作為該裝置之應用程式處理器。
許多裝置可耦接至SoC 1310。於所顯示的圖中,記憶體子系統包含耦接至SoC 1310之快閃記憶體1340與DRAM 1345。此外,觸控面板1320係耦接至SoC 1310,用以經由觸碰來提供顯示能力及使用者輸入,包含於觸控 面板1320之顯示器上提供之虛擬鍵盤。為了提供有線網路連接性,SoC 1310耦接至乙太網路介面1330。週邊集線器1325係耦接至SoC 1310,用以進行與各種週邊裝置的介接,例如藉由任何的各種埠或其他連接器而被耦接至系統1300。
除了SoC 1310內之內部電源管理電路與功能性以外,PMIC 1380係耦接至SoC 1310用以提供平台式電源管理,例如基於該系統是否由電池1390或經由AC配接器1395之AC電源來供電。除了此電源來源式電源管理以外,PMIC 1380可進一步基於環境條件與使用條件來執行平台電源管理活動。再者,PMIC 1380可將控制與狀態資訊通訊至SoC 1310,用以造成在SoC 1310內之各種電源管理動作。
仍參照第13圖,為了提供無線能力,WLAN單元1350係被耦接至SoC 1310且依次至天線1355。於各種實現中,WLAN單元1350可根據來一或多個無線協定來提供通訊。
如進一步所示,複數個感測器1360可耦接至SoC 1310。這些感測器可包含各種加速計、環境與其他的感測器,包含使用者手勢感測器。最後,音訊編解碼器1365係被耦接至SoC 1310,用以提供一介面至音訊輸出裝置1370。當然,應了解的是,雖然以此特定實現於第13圖中顯示,許多變化與替代是可能的。
現參照第14圖,所顯示的是代表電腦系統之方塊 圖,例如筆記型電腦、UltrabookTM或其他小型因數系統(small form factor system)。於一實施例中,處理器1410包含微處理器、多核心處理器、多執行緒處理器、超低電壓處理器、嵌入式處理器、或其他已知處理元件。於所示實現中,處理器1410作用為主處理單元與中央集線器以跟系統1400之許多各種組件進行通訊。於一範例中,處理器1400係被實現為SoC。
於一實施例中,處理器1410與系統記憶體1415通訊。於一例示範例中,系統記憶體1415係經由用以提供給定量的系統記憶體之多個記憶體裝置或模組而被實現。
為了提供資訊(例如資料、應用程式、一或多個作業系統等等)之持續的儲存,大量儲存器1420亦可耦接至處理器1410。於各種實施例中,為了能有較薄與較輕的系統設計以及為了提供系統反應性,此大量儲存器可經由SSD而被實現,或者大量儲存器可使用主要以具有較少量的SSD儲存器之硬碟機(HDD)來實現,用以作為SSD快取,用以在電源中斷事件期間進行脈絡狀態與其他此種資訊之非揮發性儲存,使得快速的電源開啟可發生於系統活動之再起始。同樣顯示於第14圖中,快閃裝置1422可被耦接至處理器1410,例如經由序列周邊介面(SPI)。此快閃裝置可提供系統軟體之非揮發性儲存,包含基本輸入/輸出軟體(BIOS)以及系統之其他韌體。
各種輸入/輸出(I/O)裝置可存在系統1400內。具體顯示於第14圖之實施例中的是顯示器1424,其可為進一步 提供觸控螢幕1425之高清晰度LCD或LED面板。於一實施例中,顯示器1424可經由可被實現為高效能圖形互連之顯示器互連而被耦接至處理器1410。觸控螢幕1425可經由另一互連(其於一實施例中可為I2C互連)而被耦接至處理器1410。如第14圖中所進一步顯示,除了觸控螢幕1425以外,藉由觸控之使用者輸入亦可由觸控墊1430(其可被組構於機身內且亦可被耦接至I2C互連作為觸控螢幕1425)而發生。
對於感知計算與其他目的,各種感測器可存在於系統內,且可用不同方式被耦接至處理器1410。特定慣性與環境感測器可透過感測器集線器1440(例如經由I2C互連)而耦接至處理器1410。於第14圖所示之實施例中,這些感測器可包含加速計1441、周圍光感測器(ALS)1442、羅盤1443、及陀螺儀1444。其他環境感測器可包含一或多個熱感測器1446,其於某些實施例中經由系統管理匯流排(SMBus)匯流排而耦接至處理器1410。
亦由第14圖中可見,各種週邊裝置可經由低接腳數(LPC)互連而耦接至處理器1410。於所示實施例中,各種組件可透過嵌入式控制器1435而被耦接。此等組件可包含鍵盤1436(例如經由PS2介面來耦接)、風扇1437、及熱感測器1439。於某些實施例中,觸控墊1430亦可經由PS2介面而耦接至EC 1435。此外,例如信任平台模組(TPM)1438之安全性處理器亦可經由此LPC互連而耦接至處理器1410。
系統1400可用許多方式(包含無線)與外部裝置進行通訊。於第14圖所示之實施例中,各種無線模組(其各者可對應至經組構以用於特定無線通訊協定之無線電)係存在。對於無線通訊在短範圍(例如近場)之一種方式可為經由NFC單元1445,其於一實施例中可經由SMBus與處理器1410進行通訊。應注意的是,經由此NFC單元1445,非常靠近彼此的裝置可進行通訊。
由第14圖進一步可見,額外的無線單元可包含其他短範圍無線引擎,包含WLAN單元1450與藍芽單元1452。使用WLAN單元1450,Wi-FiTM通訊可被實現,而使用藍芽單元1452,短範圍BluetoothTM通訊可發生。這些單元可經由給定連結而與處理器1410進行通訊。
此外,無線廣域通訊(例如根據蜂巢式或其他無線廣域協定)可經由WWAN單元1456(其可進一步耦接至用戶識別模組(SIM)1457)而發生。此外,為了能進行位置資訊的接收與使用,GPS模組1455亦可存在。應注意的是,於第14圖所示之實施例中,WWAN單元1456與整合式擷取裝置(例如相機模組1454)可經由給定連結而通訊。
整合式相機模組1454可被結合於蓋件(lid)中。為了提供音訊輸入及輸出,音訊處理器可經由數位訊號處理器(DSP)1460(其可經由高清晰度音訊(HDA)連結而耦接至處理器1410)而被實現。同樣地,DSP 1460可與整合式編解碼器(CODEC)及放大器1462進行通訊,其更可耦接至輸出揚聲器1463(其可被實現於機身內)。同樣地,放大器及 CODEC 1462可被耦接用以從麥克風1465(其於實施例中可經由雙陣列麥克風來實現,例如數位麥克風陣列)接收音訊輸入,用以提供高品質音訊輸入以進行系統內各種操作之聲音啟動式控制。亦應注意的是,音訊輸出可從放大器/CODEC 1462提供至耳機插孔1464。雖然以這些特定組件顯示於第14圖之實施例中,應了解的是,本發明之範疇並不以此為限。
實施例可用許多不同的系統類型來實現。現參照第15圖,所顯示的是根據本發明之實施例的系統之方塊圖。如第15圖所示,多處理器系統1500為點對點互連系統,且包含第一處理器1570及經由點對點互連1550耦接之第二處理器1580。如第15圖所示,處理器1570與1580之各者可為多核心處理器,包含第一與第二處理器核心(亦即處理器核心1574a與1574b及處理器核心1584a與1584b),雖然許多更多核心可能可存在於處理器中。各處理器可包含PCU或其他電源管理邏輯,用以執行如此處所述之處理器式電源管理,包含工作負載分類與動態執行緒遷移及核心效能控制(至少部份基於其上)。
仍參照第15圖,第一處理器1570可進一步包含記憶體控制器集線器(MCH)1572及點對點(P-P)介面1576及1578。同樣地,第二處理器1580可包含MCH 1582及P-P介面1586及1588。如第15圖所示,MCH 1572及1582耦接處理器至個別記憶體(即記憶體1532與記憶體1534),其可為局部地附接至個別處理器之系統記憶體(例 如DRAM)的部份。第一處理器1570與第二處理器1580可分別經由P-P互連1562與1564而被耦接至晶片組1590。如第15圖所示,晶片組1590包含P-P介面1594與1598。
再者,晶片組1590包含介面1592,用以藉由P-P互連1539將晶片組1590耦接至高效能圖形引擎1538。再者,晶片組1590可經由介面1596被耦接至第一匯流排1516。如第15圖所示,各種輸入/輸出I/O裝置1514可被耦接至第一匯流排1516,連同匯流排橋接器1518其將第一匯流排1516耦接至第二匯流排1520。各種裝置可被耦接至第二匯流排1520,包含例如鍵盤/滑鼠1522、通訊裝置1526及資料儲存單元1528,例如碟機或於一實施例中可包含碼1530之其他大量儲存裝置。再者,音訊I/O 1524可被耦接至第二匯流排1520。實施例可被結合於其他類型之系統中,包含行動裝置,例如智慧型蜂巢式電話、平板電腦、小筆電、UltrabookTM等等。
於一實施例中,預測邏輯係被調適用以決定最佳的電源組態,而控制邏輯係被調適用以應用所決定的電源組態。預測邏輯藉由讀取效能/能量計數而週期性地收集輸入統計,然後使用智慧模型用以評估目前狀態及預測下一個最佳的電源組態。於一實施例中,控制邏輯經由執行緒遷移與動態電壓頻率調整來應用此電源控制決定至底層系統。於某些實施例中,被特殊化用於記憶體密集的工作負載之一或多個異質核心可存在。執行緒可遷移至此核心, 用以在記憶體界限階段期間節省更多能源。硬體執行緒遷移技術可被使用以在偏計算式核心與偏記憶體式核心間遷移執行緒,其從使用者應用與作業系統觀點來看皆不會涉及任何軟體介入。
因為計算界限與記憶體界限工作負載具有非常不同的系統需求,故此模型解決分類問題。以目前的時間取樣給定一組電源組態參數(例如核心的數量、執行緒的數量、時脈頻率與電壓)與運行時間統計(例如各種效能/能源計數),目標是要找到最佳的電源組態,用以在下一個時間間隔最大化效能與能源效率。於不同的實施例中,兩種類型的預測模型、專家啟發式方法及機器學習可被使用。
現參照第16圖,所顯示的是根據本發明之實施例的電源控制邏輯之方塊圖。如第16圖所示,電源控制邏輯1600(其可由硬體、軟體、及/或韌體之組合來形成)可被實現為處理器(例如PCU)之較大電源控制單元的一部份。此PCU本身可由一或多個微控制器或其他控制邏輯來實現。於所示實施例中,電源控制邏輯1600包含效能特性緩衝器1610。如此處所述,緩衝器1610可被組構以儲存新來的效能特性,例如從處理器及/或具有此處理器的系統之各種核心與其他邏輯之效能/能源計數來取得。
再者,特性資訊係被提供至預測邏輯1620。於不同實現中,不同類型的預測邏輯可存在。如此處所述,此邏輯可包含基於專家啟發式方法及/或機器學習之一或多個模型。根據有關目前的處理器操作之新來的特性資訊,預 測邏輯1620可產生電源組態定義。此定義可被使用以定義下一個操作間隔中之適當的處理器操作控制。於一實施例中,此電源組態定義資訊可包含數個核心在下一個操作間隔中為活動的、對應的執行緒被排程於此等核心、及在其中所選擇的核心將操作之電壓/頻率。
由圖可見,此電壓組態定義資訊係被提供至控制邏輯1630,其可被組構以在下一個操作間隔中堅持(enforce)該定義。依此方式,控制邏輯1630可被組構以提供控制資訊至各種處理器個體,包含時脈產生器(例如一或多個鎖相迴路)、一或多個電壓調節器(例如整合式電壓調節器)等等。再者,控制資訊可被提供至個別核心,用以指示給定核心是否將在下一個操作間隔中被啟動或關閉。若核心將被關閉,則該核心可採取許多動作,包含儲存其狀態至適當儲存器以使該核心能進入所請求的低電源狀態、閘控(gating)一或多個時脈訊號、及閘控一或多個電源閘極。對於將在下一個操作間隔中變成啟動的核心,此控制可包含去閘控(ungating)一或多個時脈訊號、及去閘控一或多個電源閘極、及從給定儲存器恢復該核心之狀態。當然,應了解的是,於各種實施例中,對於此種核心低電源狀態進入與退出之額外的操作可發生。應進一步了解的是,於不同實現中,電源控制邏輯之許多不同的組態可存在。
對於專家啟發式方法模型,專家識別工作負載與系統之最相關的參數、建立預測模型用以分類計算或記憶體界限工作負載、及操縱經識別的工作負載朝向最能源效率的 組態。舉例來說,兩個直覺的啟發式方法模型可被使用。由於設計複雜性,啟發式方法可僅選擇許多可能的參數之子集,稱為熱門狀態,其在設計空間研究中有最流行的組態之特色。
對於簡單分類啟發式方法模型(H1),兩個參數可被使用以做出決定,例如每秒之指令(IPS)與記憶體頻寬(memBW)。IPS為核心利用之指示器,而memBW直接顯示記憶體佔用。利用低IPS與高memBW之工作負載係被分類為記憶體界限,而利用高IPS與低memBW之工作負載係被分類為計算界限。高與低的臨界值是可調整的,例如於某些實施例中藉由使用者。決定策略可如下述:對於記憶體界限工作負載進行弱電源組態(較少核心/執行緒與較低電源/頻率)而對於計算界限工作負載進行強電源組態(其可為基線組態)。
反饋分類啟發式方法模型(H2)首先類似H1分類工作負載。接著,各分類具有偏好的動作;舉例來說,記憶體界限工作負載將進行較弱組態(先以較少核心/執行緒,再以較低電源/頻率),而計算界限應用將進行較強組態。混合的工作負載具有特定機率變較弱或較強。然後,能源效率度規(EE)係如IPS*IPS/PCL來計算,用以估計目前的能源效率,其中PCL為從主要電阻部份(例如漏電)導出之所估計的電源消耗位準。基於來自上一個動作之正或負的EE反饋,新的決定被做出,其不是採取偏好動作就是採取與上一個動作相同的動作、或沒有動作。
運行時間工作負載與系統統計之全集(comprehensive set)可大至數百或數千個特徵,例如許多佇列結構的佔用、各功能性單元的使用、等等。為了考慮所有這些組合,設計空間呈爆炸性的成長。因此,實施例可使用機器學習技術以用於資料處理與決策制定。
於機器學習模型中,運行時間統計可被包含為屬性。多維度紀錄為在取樣時間週期期間對於所有屬性之平均統計值的收集。對於各時間間隔之最能源效率的組態係被指定一標示,帶有核心、執行緒、電壓、與頻率之資訊。該模型預測下一個最佳化電源組態。
在機器學習訓練流程期間,特定效能/能源特性可從大量的資料識別且被使用以做出有智慧的自動決定。離線訓練流程於給定時間採用大尺度工作負載/系統統計作為輸入,用以預測最佳電源組態。該離線訓練流程可產生一組係數(或權重),其可被程式化於電源控制器(例如藉由於非揮發性記憶體中之儲存)中以供即時使用。
因此,於設計或組構程序期間,離線資料收集會發生。此離線資料收集程序可在設計階段期間及/或在製造之後被例如藉由處理器設計師(processor designer)來執行。於此程序中,許多不同的工作負載可被執行(及/或模擬),例如代表基準工作負載,以進行該工作負載於處理器上之特性化(由效能與能源參數資訊所決定)。於某些情形中,大量的基準工作負載可被使用以適當地訓練機器學習分類器。
於一範例中,在代表工作負載之離線資料收集期間,多個工作負載階段係被識別,且在各工作負載階段期間,資料點可對於特定電源組態被產生。接著,對於所以可能的組態進行徹底的搜尋以收集代表工作負載資料組。所計算的效能與能源係被使用以預處理最佳能源效率組態,同時效能下降限制可被堅持用以過濾太多效能犧牲。接著,各資料點被標示其最佳組態名稱以用於稍後監督的學習程序。
於不同的實施例中,相關屬性的給定組可被考慮。於一實施例中,這些組態包含IPS、memBW、平均往返記憶體潛伏(memLat)、記憶體指令百分比(memInst)、浮點指令百分比(FPinst)、ALU指令百分比(ALUinst)、待決外出記憶體請求佇列佔用(memQ)、及最終階快取缺失率(LLCMiss)。此屬性最能代表工作負載行為及有效率地助於降低效能/能源計數的數量。
於不同的實施例中,各種離線監督的模型可被使用。於一範例中,帶有嶺迴歸估計量(ridge estimator)之多級邏輯迴歸模型可被使用以測量多於兩個類別相依的或不相依的變數(其展現良好正確性與簡單的實現)間之關係。於另一範例中,多層感知器可被使用。此模型為使用倒傳遞法之人工類神經網路分類器,其可適合用於非線性行為之大量資料。該等節點皆為S形曲線(邏輯功能(logistic functions))且具有至少三層。輸入層取得所有選擇的屬性,而輸出層產生最佳電源組態。於另一範例中, 決策樹模型可被使用,其保持類流程圖樹狀結構,其中葉代表標示(所有可能的最佳組態),而分支為屬性之交集。於樹之各節點,屬性係被選擇用以有效率地將資料點分成子集於一類與另一類。
一旦模型被訓練,則其被實現於電源控制器中以用於線上預測。於運行時間,對應至所選擇的屬性之效能/能源計數器係被收集且所訓練的機器學習模型預測下一個最佳電源組態。為了改善正確性,運行時間反饋機制可被使用且用以更新電源組態之機器學習決策可被撤銷而不採取任何行動。即,機器學習模型有可能在數個電源組態之間非常頻繁地來回切換,導致高切換管理負擔。對於歷程追蹤之飽和計數可被使用以避免此種過度敏感反應。同樣的,機器學習模型可傾向選擇高能源節省同時犧牲太多效能,特別是對於計算界限工作負載,其中較弱的系統資源與效能直接相關聯。每個核心之一IPS歷程暫存器可被使用以偵測因電源組態改變所造成之突然的效能下降。
控制邏輯係負責對底層系統做出最佳電源控制決定,其涉及硬體控制(例如電壓與頻率調整)與軟體控制(例如核心與執行緒對映)。於不同的實施例中,各種執行緒對映機制可被使用。
於一實施例中,軟體層(使用者應用程式、運行時間庫、及/或作業系統)可被修改。預測邏輯提供用以通訊最佳電源控制決定之介面,接著軟體經由使用者層級執行緒(分叉/加入)、動態運行時間庫(例如Posix執行緒等等)、 任務佇列排程器、或作業系統執行緒遷移來調整執行緒至核心的對映(thread-to-core mapping)。
應用程序編程介面(API)可被提供使得使用者應用程式或運行時間庫可直接存取電源控制器以擷取最佳電源組態決定。若改變電源組態是較佳的,則應用程式或運行時間調整執行緒至核心的對映。
舉例來說,若應用程式具有大的平行迴圈,則編程器或編譯器可將該迴圈分成片段且插入電源詢問與執行緒管理API呼叫,用以對各片段取得最佳組態及從而平行化下一個片段。運行時間架構(例如OpenMP)與任務佇列將從使用者應用程式解放程式管理負擔。舉例來說,當使用者應用程式以OpenMP平行化迴圈,則運行時間可呼叫電源詢問API,用以對各迴圈取得最佳組態且經由執行緒釘選API而適當地管理執行緒與核心。任務佇列庫亦可採用類似方法。任務佇列排程器可被使用以基於最佳電源決定來自動地遷移任務。
另一機制係加強作業系統用以對所有使用者應用程式提供執行緒管理。作業系統週期性地與電源控制器互動且取得最佳組態。其接著排程軟體執行緒至適當的硬體脈絡。舉例來說,假設使用者應用程式正運行八個執行緒於四個核心之上;每個核心兩個執行緒,但作業系統被通知單一核心是最佳組態。接著,作業系統指定所有八個執行緒於僅一個核心,即使有總數四個核心是可用的。其從另三個核心遷移六個執行緒至所選擇的一個核心並關閉未被 佔用的三個核心以節省能源。
實施例亦可使用穿透執行緒遷移(transparent thread migration)。於某些情形中,處理器可包含異質核心,包含偏計算式核心與記憶體最佳化核心。此設計係基於單一核心架構無法同時最佳化計算界限與記憶體界限工作負載之觀測。舉例來說,傳統多處理器通常對於目標是以高頻率運行許多核心計數之計算工作負載進行最佳化。然而,此多處理器在通常在等待記憶體存取之階段期間可能不會有能源效率。因此,對於記憶體密集階段(偏記憶體式或記憶體最佳化核心)特殊化之一或多個核心可被提供以低頻率運行,用以使記憶體資源飽和,提供如同許多計算核心之相同的記憶體效能。
執行緒遷移機制可被使用以對軟體為透明的兩種類型之核心間切換執行(使用者應用程式與作業系統兩者皆是)。舉例來說,假設系統具有一個記憶體最佳化核心與四個計算最佳化核心。若各計算核心為可雙向SMT(two-way SMT-capable),則記憶體最佳化核心被配備總數八個硬體脈絡。記憶體最佳化核心脈絡僅對硬體為可見的,且對軟體完全地隱藏。且,記憶體最佳化核心脈絡上之執行緒遷移係單獨由硬體處理。硬體控制器在計算核心與記憶體最佳化核心間複製完全相同的執行緒脈絡且接著安靜地恢復在新核心上的執行。即使作業系統亦無法偵測底層執行緒遷移。此外,因為記憶體最佳化核心僅為相同的快取一致域之另一核心,其一點也不會發生任何記憶體一致性 事件,儘管其可能遭受來自脈絡遷移之資料遷移管理負擔。應注意的是,記憶體最佳化核心架構提供新的機會以最佳化能源效率。因為僅記憶體密集工作負載被執行於其上,其架構可被特殊化至極致以達成較通用目的核心為高的效率之量級。於某些情形中,記憶體最佳化核心實現與計算核心相同的ISA。
現參照第17圖,所顯示的是根據本發明之另一實施例的包含硬體電源控制邏輯之處理器的方塊圖。如第17圖所示,處理器1700為多核心處理器,其於一特定實現中可為具有許多核心(包含具有不同計算與記憶體性能之至少一些異質核心)之SoC。依此方式,藉由活動的核心之適當控制,工作負載可在核心間分配,用以提供電源與效能之有效率的混合。由圖可見,處理器1700包含複數個核心17100-1710n。於不同的實施例中,這些核心可為循序與亂序核心以及偏計算式核心與一或多個偏記憶體式核心之混合,用以提供有效率及低核心電源之記憶體界限操作。
如第17圖進一步所示,核心1710耦接至快取記憶體1720,於一實施例中,其可被實現為共用快取記憶體,例如末階快取。再者,處理器1700可包含內部記憶體1730,例如可被置於多晶粒處理器封裝之分開的晶粒上。
操作期間,於許多核心內包含之效能/能源計數可被組構用以提供特性資訊至電源控制器1750。於各種實施例中,電源控制器1750可被實現為PCU,其包含特殊化 的硬體邏輯,用以執行此處所述之模型式(model-based)電源控制。
於第17圖之圖示中,電源控制器1750包含特性緩衝器1760,其可儲存來自各種核心之新來的資訊。雖然本發明之範疇並不以此為限,此效能/能源特性可包含每個循環資訊之指令、指令混合資訊、載入/儲存佇列資訊、快取命中/未命中資訊、記憶體潛伏資訊、及記憶體頻寬資訊(於其他此種資訊中)。
由圖可見,緩衝器1760係耦接至效能/能源模型邏輯1770,其可基於新來的特性資訊來決定效能與能源預測。於不同的實施例中,效能/能源模型邏輯1770可包括用以實現給定模型(例如專家啟發式模型、機器學習式模型及/或其組合)之硬體。仍參照第17圖,應注意的是,效能/能源模型邏輯1770更接收來自組態儲存器1780之輸入。通常,組態儲存器1780包括有關可能的操作特性之資訊,包括一些活動的核心(例如從0至n)及給定數量之活動的核心之電壓/頻率對。於效能/能源模型邏輯1770為啟發式邏輯之實施例中,組態儲存器1780可進一步提供啟發式儲存器,用以儲存具有複數個條目(entry)(各條目可被使用以儲存與特定工作負載分類與對映電源組態相關聯之工作負載特性資訊)之一或多個查找表。於效能/能源模型邏輯1770為機器學習式邏輯之實施例中,組態儲存器1780可進一步提供訓練模型參數儲存器(例如經由非揮發性儲存器),用以儲存具有複數個條目之一或多個表,各 表可被使用以儲存在離線訓練處理期間所取得之訓練模型參數。
於某些實施例中,用於機器學習與啟發式方法兩者之模型可被實現為包括輸入參數(工作負載特性,例如IPS等等)與用以對於各參數提供權重的一組係數之方程式。該方程式可被使用以計算代表處理器在下一操作間隔之最佳組態狀態的數值。此值可被使用做為具有不同組態參數的表之索引。於這些情形中,組態儲存器1780對於各參數提供係數之表。通常,方程式(或方程式之形式)是固定的。因此,僅係數可改變。於啟發式方法中,係數係在製造期間被固定。於機器學習式方法中,係數係在離線訓練期間被取得且被程式化至儲存器中。當操作時,係數可基於機器學習而被線上更新。
仍參照第17圖,電源控制器1750更包括電源組態選擇器1790,其可接收對於下一個操作間隔之給定效能能源預測且決定適當的下一個電源組態,用以在下一個操作間隔提供操作控制至核心1710。於第17圖所示之實施例中,電源組態選擇器1790包括歷程邏輯1792、影響邏輯1794、與更新邏輯1795。
通常,歷程邏輯1792可被組構以分析新來的預測且基於短期及/或長期歷程來決定預測是否適當及是否應被提供用以在下一個操作間隔控制核心。舉例來說,特定組態之數個預測(例如對於降低數量的核心)可在組態改變之前被連續地做出(例如3或更多次),用以影響降低數量的 核心發生。歷程邏輯1792亦可被使用以參考必要的歷程狀態來避免電源管理之過度敏感控制。於一實施例中,歷程邏輯1792可經由計數器(例如2位元飽和計數器)對各可能決定來實現遲緩切換方案(lazy switch scheme)。此計數器係例如當電源閘控決定被做出時累加。僅當相同決定在預定數量的連續時間間隔(例如3)期間被做出(參照計數器)才是電源組態更新被執行。於其他情形中,歷程邏輯1792可實現歷程表用以記錄先前電源組態決定及系統狀態。
影響邏輯1794可被組構用以決定於處理器之電源及/或效能上所具有的預測與組態更新之影響及用以限制或防止被提供作為至核心之控制的預測。
如第17圖進一步所示,電源組態選擇器1790更包括更新邏輯1795。更新邏輯1795可決定是否基於最近的過往決定(例如參照歷程表中的條目)及較遠的過往決定(經由長期累加函數)來進行電源組態更新。因此,更新邏輯1795可被組構用以在處理器操作之使用期限期間(從處理器一開始啟動直到多個啟動循環(可能許多年的操作))執行自學習(self-learning),藉由基於處理器現場上之實際使用來更新所訓練的模型參數。應了解,雖然以此高階於第17圖之圖示中顯示,許多變化與替代是可能的。
現參照第18圖,所顯示的是根據本發明之實施例的用以控制處理器之電源消耗的方法之流程圖。於第18圖中所示之實施例中,方法1800可藉由硬體、軟體、及/或 韌體之適當組合而被執行,例如如此處所述之硬體電源控制邏輯,其可被實現為電源控制器之一部份,其本身實現為一或多個微控制器。於一實施例中,方法1800可藉由實現啟發式模型之模型邏輯來執行。由圖可見,方法1800藉由接收工作負載特性資訊而開始(方塊1810)。如所述,此資訊可從各種核心與處理器的其他邏輯之效能/能源計數器來接收。此外,組態與電源狀態資訊亦被接收(方塊1820)。此組態資訊可對應至一數量的積極地供電的(actively powered)核心於目前的操作間隔中及其電源狀態(例如核心正在操作之給定電源位準)。於某些實施例中,電源狀態資訊可進一步包括效能狀態資訊,其可對應至核心正在操作時之特定電壓/頻率位準。於某些情形中,一核心之效能狀態可在保證操作頻率(其為處理器被保證操作之最大操作頻率)、加速模式頻率(其為高於此保證頻率之機會操作頻率)、或一效率頻率位準(其為低於保證頻率之操作頻率)。
仍參照第18圖,下個控制傳到方塊1830,於此該工作負載可被分類。更具體言之,該工作負載可基於一些或全部的所接收之工作負載特性資訊與電源狀態資訊而被分類。於高位準時,此工作負載分類可被決定於有線數量的可能位準之其中一者,包括記憶體界限位準、計算界限位準、或典型操作位準,其可大致對應至在記憶體界限位準與計算界限位準間操作之工作負載。控制接下來傳到菱形1835,用以決定該工作負載是否為記憶體界限。雖然本發 明之範疇並不以此為限,於一實施例中,工作負載記憶體界限之決定可基於從操作中之各種核心取得的潛伏資訊、及與記憶體頻寬相關聯的頻寬資訊或諸如此類之結合。
若其決定該工作負載不是記憶體界限,則控制直接傳到方塊1850,於此目前的設定可被維持。依此方式,於下一個操作間隔中,相同數量的核心可被供給電源且這些核心可持續以目前的頻率與電壓位準來執行目前的執行緒。
作為替代,若其決定該工作負載是記憶體界限,則控制從菱形1835傳到方塊1840,於此組態預測可被產生。更具體言之,此組態預測可為具有已降低的核心活動之一情境,其中一或多個目前活動的核心可被關閉及/或計算密集核心可被關閉,藉以幫助一或多個記憶體密集核心能改良處理記憶體界限情況。控制接下來傳到菱形1845,用以決定組態預測是否符合歷程資訊。此決定可基於表示之前預測的適當性之歷程資訊。若該預測不一致,則控制傳到方塊1850,於此目前的設定可被維持。應注意的是,於某些情形中,除了此歷程分析以外,決定亦可被做出用以判斷所預測的組態是否會不利地影響效能。舉例來說,若被影響的組態預測會增加大於臨界位準(例如5%)之效能損失,則新組態可不被影響且控制因此傳到方塊1850。
若取而代之的是其係決定組態預測符合歷程資訊(及/或係未被預測會不利地影響效能大於臨界位準),則控制 傳到方塊1860,於此將在下個操作間隔中被執行的執行緒可被排程/再排程至降低數量的核心。舉例來說,目前執行於將被關閉的核心上之執行緒可被再排程至保持開啟的核心。於各種實施例中,核心可被進行多執行緒(multi-threaded),使得多個執行緒可同時執行於單一核心,例如經由多個邏輯處理器,其提供適當的硬體執行緒資源以進行同時執行。於其他情形中,執行緒可從特定活動的核心被再排程至其他活動的核心,用以較佳地調節與提供有效的操作(例如從計算核心移動至偏記憶體式核心)。下個控制傳到方塊1870,於此核心之電源狀態可被更新。亦即,各種控制訊號係被傳送至核心、時脈產生器、電壓調節器、及諸如此類,用以對給定核心進行適當的啟動/解除啟動。其後,操作發生於下一個間隔操作間隔中,其中執行緒執行於活動的核心(方塊1880)。應了解,雖然以此高階於第18圖之實施例中顯示,許多變化與替代是可能的。
現參照第19圖,所顯示的是根據本發明之另一實施例的用以控制處理器之電源消耗的方法之流程圖。由第19圖可見,方法1900可藉由硬體、軟體、及/或韌體之適當組合來執行,例如此處所述之硬體電源控制邏輯。於一實施例中,方法1900可藉由實現機器學習式模型之模型邏輯來執行。方法1900藉由從例如處理器內之效能/能源計數器接收工作負載特性資訊(方塊1910)來開始。此外,組態與電源狀態資訊亦被接收(方塊1920)。此組態資訊可 對應至一數量的積極地供電的核心於目前的操作間隔中及其電源狀態。
接下來,控制傳到方塊1930,於此所訓練的模型參數可基於工作負載特性與電源狀態資訊從組態儲存器被取得。更具體言之,機器學習控制邏輯可基於工作負載特性資訊與電源狀態資訊來執行工作負載之分類,用以獲得所訓練的模型參數。這些參數可對應至給定類型之分類的工作負載,例如計算界限、記憶體界限、典型的工作負載諸如此類。再者,給定較高的計算能力之機器學型分類器式邏輯(相較於啟發式邏輯),更細緻的工作負載等級分析與分類可發生。依此方式,除了計算界限、記憶體界限與典型分類以外,複數個計算界限分類之等級、複數個記憶體界限分類之等級,除了複數個正常操作分類之等級以外,亦可被識別與分類。
仍參照第19圖,控制傳到方塊1940,於此組態預測可從所訓練的模型參數產生。應注意的是,於某些情形中,在電源組態被更新之前,機器學習邏輯可估計長期與短期效能/能源由於之前所採取的動作之影響。於一實施例中,兩個報酬函數係被實現於電源控制器中以用於短期與長期影響評估。舉例來說,若整個報酬值(短期與長期報酬之加權的結合)表示模型係做出太積極的預測(且不利地影響效能),則此電源組態更新不發生。再者,如所述,參照第20圖,自學習可發生,其中所訓練的模型參數可藉由更新至所訓練的模型參數(例如關於效能影響變 得更保守)而被調整。其後,控制傳到方塊1950,於此執行緒可被排程(與再排程,若有需要)至所決定的數量之核心。於某些實施例中,此執行緒排程可用對OS或其他軟體為透明之硬體方式被執行。於其他情形中,該OS本身可執行執行緒排程於所指示數量的核心之上。
控制接著傳到方塊1960,於此核心之電源狀態可被更新。舉例來說,各種控制訊號係被傳送至核心、時脈產生器、電壓調節器、及諸如此類,用以對給定核心進行適當的啟動/解除啟動。其後,操作發生於下一個間隔操作間隔中,其中執行緒執行於活動的核心(方塊1970)。應了解,雖然以此高階於第19圖之實施例中顯示,許多變化與替代是可能的。
應了解的是,根據本發明之實施例之機器學習邏輯提供機器式自學習(machine-based self-learning)之能力,使得所訓練的模型參數之基線(例如處理器製造時所提供)可基於處理器現場上之實際使用來更新,例如藉由特定末端使用者在處理器之使用期限期間操作包括具有大致類似之工作負載的處理器之系統。再者,當處理器之工作負載與使用隨著其使用期限改變,這些所訓練的模型參數可基於此自學習而被更新,用以達成在處理器使用期限期間有最佳化效能與電源管理。
現參照第20圖,所顯示的是根據本發明之實施例的用以更新訓練模型參數的方法之流程圖。由第20圖所示,方法2000可藉由硬體、軟體、及/或韌體之適當組合 來執行,例如此處所述實現機器學習式模型之硬體電源控制邏輯。
由圖可見,方法2000藉由對於工作負載經過分析而評估先前組態預測之效能/能源影響來開始(方塊2010)。於一範例中,此影響可為關於效能損失,為降低數量之活動的核心(及/或降低核心操作之頻率)之結果。接著,控制傳到菱形2020用以決定此影響是否大於第一影響臨界值。舉例來說,於某些實施例中,此影響臨界值可為高影響臨界值且可被設定於預定位準,例如以效能損失的百分比進行測量之效能影響。於一範例中,此臨界位準可小於約10%效能損失。若其係決定該影響大於第一影響臨界值,則控制傳到方塊2030,於此一或多個所訓練的模型參數可被更新。更具體言之,對於特定工作負載類型經過分析,一或多個所訓練的模型參數可被更新用以限制於所訓練的模型參數中所識別的電源管理組態之效能影響。依此方式,隨著處理器使用期限發生的動態機器或自學習,使得效能與電源管理之適當平衡可被實現。
仍參照第20圖,若取代的是其係於方塊2020決定該影響不大於此影響臨界值,則控制傳到菱形2040用以決定該影響是否小於第二影響臨界值。於一範例中,此第二影響臨界值可為低影響臨界值且可被設定不同的預定位準,例如於一實施例中小於約2-3%效能損失。若其係決定該影響在此臨界之上,則沒有更新或自學習發生,此係由於對於目前執行之適當的所訓練模型參數存在。否則, 若其係決定該影響小於第二影響臨界值,則控制傳到方塊2050,於此一或多個所訓練的模型參數可被更新。更具體言之,對於特定工作負載類型經過分析,一或多個所訓練的模型參數可被更新用以經由所訓練的模型參數中所識別的電源管理組態來提供進一步的電源節省控制。依此方式,隨著處理器使用期限發生的動態機器或自學習,使得效能與電源管理之適當平衡可被實現。應了解,雖然以此高階於第20圖之實施例中顯示,許多變化與替代是可能的。
基於所實現的特定模型邏輯(及在處理器使用期限期間所執行的自學習),許多記憶體界限與計算界限工作負載可用較少之活動的計算資源及/或較低的頻率實現最佳效能與能源效率。藉由對各特定工作負載識別與選擇最佳組態,實施例可提供約4倍的能源節省,同時維持效能損失在小於約5%內。
以下範例係關於進一步實施例。
於一範例中,處理器包含複數個核心,用以獨立地執行指令,該等複數個核心中之各者包括複數個計數器,用以儲存效能資訊;及耦接至該等複數個核心之一電源控制器。該電源控制器可包括一邏輯,用以從該等複數個計數器中之至少一些接收效能資訊、至少部份基於該效能資訊與模型資訊來決定將為活動的(active)之一數量的核心與在下一個操作間隔中該等數量的核心之一效能狀態、及使該等數量的核心在下一個操作間隔期間為活動的,其中該 效能資訊與於一或多個該等複數個核心上之一工作負載之執行相關聯。
於一範例中,該處理器更包括一組態儲存器,其具有複數個條目,各條目係用以儲存將被賦能(enabled)的一數量之核心及該等數量之核心操作所在之一或多對的電壓/頻率。
於一範例中,該邏輯係被耦接至該組態儲存器以存取一或多個該等複數個條目及至少部份基於其上來決定在下一個操作間隔將為活動的核心的數量。
於一範例中,該邏輯係用以至少部份基於該效能資訊來分類一工作負載及基於該工作負載分類來決定在下一個操作間隔為活動的核心的數量。
於一範例中,若該工作負載分類表示一記憶體界限工作負載,則該邏輯係用以決定在下一個操作間隔將為活動的核心的數量少於目前為活動的核心的數量。
於一範例中,若該工作負載分類表示一記憶體界限工作負載,則該邏輯係用以造成一或多個執行緒從一第一類型的核心在下一個操作間隔遷移至一第二類型的核心。
於一範例中,該邏輯包含一啟發式邏輯,且該模型資訊係從該處理器之一啟發式邏輯被取得,用以儲存與該工作負載相關聯之電源組態資訊。
於一範例中,該邏輯包含一機器學習邏輯,且該模型資訊包含將在該處理器之製造期間被儲存於該處理器之一儲存器內之訓練資訊。
於一範例中,該機器學習邏輯包括一更新邏輯,用以基於該處理器之操作的一歷程及一或多個組態預測在該處理器之使用期限期間藉由該機器學習邏輯來更新至少一些的訓練資訊。
於一範例中,該邏輯包括一歷程邏輯,用以接收在下一個操作間隔為活動的該數量的核心之一預測及用以賦能該邏輯用以基於先前預測之一歷程在下一個操作間隔使該數量的核心為活動的。
於一範例中,該歷程邏輯包含一計數器,用以對在下一個操作間隔將為活動的一第一數量的核心維持一數量的連續的預測之一計數,其中該歷程邏輯係用以當該計數超過一臨界值時,賦能該邏輯使該第一數量的核心在下一個操作間隔為活動的,及若沒有超過臨界值時,則不使該第一數量的核心在下一個操作間隔為活動的。
於一範例中,該邏輯係用以當該工作負載於該決定的數量之核心上之執行之一效能影響超過一臨界位準時,維持在下一個操作間隔中活動的核心之一目前數量。
應注意的是,以上處理器可使用各種手段來實現。
於一範例中,該處理器包含SoC被結合至使用者設備可觸控裝置中。
於另一範例中,一系統包含一顯示器與一記憶體,且包括一或多個以上範例之處理器。
於另一範例中,一種系統包含一處理器,包括:複數個核心,用以獨立地執行指令;及一電源控制器,耦接至 該等複數個核心,用以:接收在一第一操作間隔中執行於一第一數量之活動的核心上一工作負載之工作負載特性資訊、有關該第一數量之活動的核心之組態資訊、及該第一數量之活動的核心之電源狀態資訊;基於該工作負載特性資訊來分類該工作負載、該組態資訊、及該電源狀態資訊;及至少部份基於該工作負載分類在下一操作間隔中排程一或多個執行緒至一不同數量之活動的核心、及更新一或多個該等複數個核心之一電源狀態以在下一操作間隔中賦能該等不同數量之活動的核心。該系統可進一步包括耦接至該處理器之DRAM。
於一範例中,該電源控制器係用以當該工作負載係被分類為一記憶體界限工作負載時,在下一操作間隔中產生具有減少的數量之活動的核心之一電源組態預測。
於一範例中,該電源控制器係用以決定該電源組態預測是否與歷程資訊一致,且若一致,則在下一操作間隔中排程該一或多個執行緒至該減少的數量之活動的核心,若不一致,則在下一操作間隔中維持該第一數量之活動的核心。
於一範例中,該電源控制器係用以至少部份基於該工作負載特性資訊從該處理器之一儲存器來獲得訓練模型參數資訊。
於一範例中,該電源控制器係用以:從該訓練模型參數資訊產生一電源組態預測,該電源組態預測包括在下一操作間隔中將為活動的一數量的核心、在下一操作間隔中 將為活動的一數量的執行緒、及該數量的核心之一效能狀態;估計該電源組態預測之一效能/能源影響;若該估計的效能/能源影響超過一第一影響臨界值,則對一分類工作負載類型更新至少一些的該訓練模型參數資訊,用以降低一效能影響;及若該估計的效能/能源影響少於一第二影響臨界值,則對該分類工作負載類型更新至少一些的該訓練模型參數資訊,用以增加電源節省。
於另一範例中,一種方法,包含:經由一工作負載分類器,分類於包括數個核心的一多核心處理器上執行之一工作負載,且至少部份基於該工作負載分類造成將為活動的該複數個核心下一操作間隔中減少的數量之核心:基於該多核心處理器之一效能度量來決定該減少數量的核心之一影響:及若該影響大於一第一臨界值,則對於與該工作負載相關聯之一工作負載類型更新與該工作負載分類器相關聯之一或多個訓練模型參數,其中該更新的訓練模型參數係用以降低該效能度量之影響。
於一範例中,該方法更包含:若該影響小於一第二臨界值,則對於與該工作負載相關聯之該工作負載類型更新與該工作負載分類器相關聯之該一或多個訓練模型參數,其中該更新的訓練模型參數係用以降低電源消耗,其中該第二臨界值係小於該第一臨界值。
於一範例中,分類該工作負載包含至少部份基於從一或多個該等複數個核心獲得之工作負載特性資訊而從該多核心處理器之一儲存器獲得訓練模型參數。
於一範例中,該方法更包含:從該訓練模型參數產生一電源組態預測,該電源組態預測係用以識別在下一操作間隔中將為活動的該減少的數量之核心、在下一操作間隔中將為活動的一數量的執行緒、及該減少的數量之核心的一效能狀態;及決定是否賦能一電源管理控制器至少部份基於歷程資訊使得該減少的數量之核心在下一操作間隔中將為活動的。
於一範例中,更新該一或多個訓練模型參數包含對於該工作負載類型增加將為活動的一數量的核心。
於一範例中,該方法更包含使得該工作負載之一或多個執行緒從一或多個第一核心遷移至至少一第二核心,其中該至少一第二核心包含一偏記憶體式核心(memory-biased core)且該等一或多個第一核心包含一偏計算式核心(compute-biased core)。
於另一範例中,包括指令之電腦可讀取儲存媒體係用以執行以上範例中之任何一者之方法。
於另一範例中,包括資料之電腦可讀取儲存媒體係被至少一機器使用,用以製造至少一積體電路,用以執行以上範例中之任何一者之方法。
於另一範例中,一種裝置包含用以執行以上範例中之任何一者之方法之手段。
應了解的是,以上範例之各種組合是可能的。
實施例可用許多不同類型的系統而被使用。舉例來說,於一實施例中,通訊裝置可被設置以執行此處所述之 各種方法及技術。當然,本發明之範疇並不限制於通訊裝置,且取代的是,其他實施例可被導引至其他類型用以處理指令的裝置,或包括因應被執行於一計算裝置而使得該裝置執行一或多個此處所述之方法與技術之指令之一或多個機器可讀取媒體。
實施例可被實現於碼且可被儲存於具有可被使用以編程一系統來執行指令的指令儲存於其上之非暫態儲存媒體。實施例亦可被實現於資料且可被儲存於非暫態儲存媒體,若其被至少一機器使用,會使該至少一機器製造至少一積體電路用以執行一或多個操作。該儲存媒體可包括(但不限於)任何類型的碟機包含軟碟、光碟、固態硬碟(SSD)、光碟唯讀記憶體(CD-ROM)、可覆寫光碟(CD-RW)、及磁光碟、半導體裝置例如唯讀記憶體(ROM)、隨機存取記憶體(RAM)例如動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM))、可抹除可程式化唯讀記憶體(EPROM)、快閃記憶體、電氣可抹除可程式化唯讀記憶體(EEPROM)、磁或光卡、或適合用於儲存電子指令之任何其他類型的媒體之半導體元件。
雖然本發明已參照有限數量的實施例加以說明,所屬技術領域中具有通常知識者將了解可進行適當的許多修改與變化。意圖是,後附申請專利範圍涵蓋所有此等修改與變化,其落於本發明之真實精神與範疇內。
110‧‧‧處理器
120a‧‧‧核心
120n‧‧‧核心
125a‧‧‧整合式電壓調節器
125n‧‧‧整合式電壓調節器
125x‧‧‧整合式電壓調節器
132‧‧‧輸入/輸出介面
134‧‧‧介面
136‧‧‧整合式記憶體控制器
138‧‧‧電源控制單元
150‧‧‧電源供應器
160‧‧‧外部電壓調節器

Claims (23)

  1. 一種處理器,包含:複數個核心,用以獨立地執行指令,該等複數個核心中之各者包括複數個計數器,用以儲存效能資訊;及一電源控制器,耦接至該等複數個核心,該電源控制器包括:一邏輯,用以從該等複數個計數器中之至少一些接收效能資訊、至少部份基於一效能資訊與模型資訊來決定將為活動的(active)之一數量的核心與在一下一個操作間隔中該等數量的核心之該效能狀態、及使該等數量的核心在該下一個操作間隔期間為活動的,該效能資訊與於一或多個該等複數個核心上之一工作負載之執行相關聯。
  2. 如申請專利範圍第1項之處理器,更包含一組態儲存器,其包括複數個條目,該各條目係用以儲存將被賦能(enabled)的一數量之核心及該等數量之核心操作所在之一或多對的電壓/頻率。
  3. 如申請專利範圍第2項之處理器,其中該邏輯係被耦接至該組態儲存器以存取一或多個該等複數個條目及至少部份基於其上來決定在該下一個操作間隔將為活動的核心的數量。
  4. 如申請專利範圍第1項之處理器,其中該邏輯係用以至少部份基於該效能資訊來分類一工作負載及基於該工作負載分類來決定在該下一個操作間隔為活動的核心的數量。
  5. 如申請專利範圍第4項之處理器,其中若該工作負載分類表示一記憶體界限工作負載,則該邏輯係用以決定在該下一個操作間隔將為活動的核心的數量少於目前為活動的核心的數量。
  6. 如申請專利範圍第4項之處理器,其中若該工作負載分類表示一記憶體界限工作負載,則該邏輯係用以造成一或多個執行緒從一第一類型的核心在該下一個操作間隔遷移至一第二類型的核心。
  7. 如申請專利範圍第1項之處理器,其中該邏輯包含一啟發式邏輯,且該模型資訊係從該處理器之一啟發式儲存器被取得,用以儲存與該工作負載相關聯之電源組態資訊。
  8. 如申請專利範圍第1項之處理器,其中該邏輯包含一機器學習邏輯,且該模型資訊包含將在該處理器之製造期間被儲存於該處理器之一儲存器內之訓練資訊。
  9. 如申請專利範圍第8項之處理器,其中該機器學習邏輯包括一更新邏輯,用以基於該處理器之操作的一歷程及一或多個組態預測在該處理器之使用期限期間藉由該機器學習邏輯來更新至少一些的訓練資訊。
  10. 如申請專利範圍第1項之處理器,其中該邏輯包括一歷程邏輯,用以接收在該下一個操作間隔為活動的該數量的核心之一預測及用以賦能該邏輯用以基於先前預測之一歷程在該下一個操作間隔使該數量的核心為活動的。
  11. 如申請專利範圍第10項之處理器,其中該歷程邏 輯包含一計數器,用以對在該下一個操作間隔將為活動的一第一數量的核心維持一數量的連續的預測之一計數,其中該歷程邏輯係用以當該計數超過一臨界值時,賦能該邏輯使該第一數量的核心在該下一個操作間隔為活動的,及若沒有超過臨界值時,則不賦能該第一數量的核心在該下一個操作間隔為活動的。
  12. 如申請專利範圍第1項之處理器,其中該邏輯係用以當該工作負載於該決定的數量之核心上之執行之一效能影響超過一臨界位準時,維持用於該下一個操作間隔中活動的核心之一目前數量。
  13. 一種系統,包含:一處理器,包括:複數個核心,用以獨立地執行指令;及一電源控制器,耦接至該等複數個核心,用以:接收在一第一操作間隔中執行於一第一數量之活動的核心上一工作負載之工作負載特性資訊、有關該第一數量之活動的核心之組態資訊、及該第一數量之活動的核心之電源狀態資訊;基於該工作負載特性資訊來分類該工作負載、該組態資訊、及該電源狀態資訊;及至少部份基於該工作負載分類在下一操作間隔中排程一或多個執行緒至一不同數量之活動的核心、及更新一或多個該等複數個核心之一電源狀態以在該下一操作間隔中賦能該等不同數量之活動的核心;及 耦接至該處理器之一動態隨機存取記憶體(DRAM)。
  14. 如申請專利範圍第13項之系統,其中該電源控制器係用以當該工作負載係被分類為一記憶體界限工作負載時,在該下一操作間隔中產生具有減少的數量之活動的核心之一電源組態預測。
  15. 如申請專利範圍第14項之系統,其中該電源控制器係用以決定該電源組態預測是否與歷程資訊一致,且若一致,則在該下一操作間隔中排程該一或多個執行緒至該減少的數量之活動的核心,且若不一致,則在該下一操作間隔中維持該第一數量之活動的核心。
  16. 如申請專利範圍第13項之系統,其中該電源控制器係用以至少部份基於該工作負載特性資訊從該處理器之一儲存器來獲得訓練模型參數資訊。
  17. 如申請專利範圍第16項之系統,其中該電源控制器係用以:從該訓練模型參數資訊產生一電源組態預測,該電源組態預測包括在該下一操作間隔中將為活動的一數量的核心、在該下一操作間隔中將為活動的一數量的執行緒、及該數量的核心之一效能狀態;估計該電源組態預測之一效能/能源影響;若該估計的效能/能源影響超過一第一影響臨界值,則對一分類工作負載類型更新至少一些的該訓練模型參數資訊,用以降低一效能影響;及若該估計的效能/能源影響少於一第二影響臨界值, 則對該分類工作負載類型更新至少一些的該訓練模型參數資訊,用以增加電源節省。
  18. 一種機器可讀取媒體,具有資料儲存於其中,其若由至少一機器使用時,造成該至少一機器用以製造至少一積體電路用以執行一方法,包含:經由一工作負載分類器,分類於包括複數個核心的一多核心處理器上執行之一工作負載,且至少部份基於該工作負載分類造成在一下一操作間隔中將為活動的該等複數個核心的數量之減少:基於該多核心處理器之一效能度量來決定該減少數量的核心之一影響;及若該影響大於一第一臨界值,則對於與該工作負載相關聯之一工作負載類型更新與該工作負載分類器相關聯之一或多個訓練模型參數,其中該更新的訓練模型參數係用以賦能該效能度量之影響的降低。
  19. 如申請專利範圍第18項之機器可讀取媒體,其中該方法更包含:若該影響小於一第二臨界值,則對於與該工作負載相關聯之該工作負載類型更新與該工作負載分類器相關聯之該一或多個訓練模型參數,其中該更新的訓練模型參數係用以賦能電源消耗的降低,其中該第二臨界值係小於該第一臨界值。
  20. 如申請專利範圍第18項之機器可讀取媒體,其中分類該工作負載包含至少部份基於從一或多個該等複數個核心獲得之工作負載特性資訊而從該多核心處理器之一儲 存器獲得訓練模型參數。
  21. 如申請專利範圍第20項之機器可讀取媒體,其中該方法更包含:從該訓練模型參數產生一電源組態預測,該電源組態預測係用以識別在該下一操作間隔中將為活動的該減少的數量之核心、在該下一操作間隔中將為活動的一數量的執行緒、及該減少的數量之核心的一效能狀態;及決定是否賦能一電源管理控制器用以至少部份基於歷程資訊使得該減少的數量之核心在該下一操作間隔中將為活動的。
  22. 如申請專利範圍第18項之機器可讀取媒體,其中更新該一或多個訓練模型參數包含對於該工作負載類型增加將為活動的一數量的核心。
  23. 如申請專利範圍第18項之機器可讀取媒體,其中該方法更包含使得該工作負載之一或多個執行緒從一或多個第一核心遷移至至少一第二核心,其中該至少一第二核心包含一偏記憶體式核心(memory-biased core)且該等一或多個第一核心包含一偏計算式核心(compute-biased core)。
TW105100561A 2015-02-13 2016-01-08 在多核心處理器中執行電源管理 TWI575370B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/621,731 US9910481B2 (en) 2015-02-13 2015-02-13 Performing power management in a multicore processor

Publications (2)

Publication Number Publication Date
TW201640273A TW201640273A (zh) 2016-11-16
TWI575370B true TWI575370B (zh) 2017-03-21

Family

ID=56615615

Family Applications (2)

Application Number Title Priority Date Filing Date
TW105100561A TWI575370B (zh) 2015-02-13 2016-01-08 在多核心處理器中執行電源管理
TW105144240A TWI628539B (zh) 2015-02-13 2016-01-08 在多核心處理器中執行電源管理

Family Applications After (1)

Application Number Title Priority Date Filing Date
TW105144240A TWI628539B (zh) 2015-02-13 2016-01-08 在多核心處理器中執行電源管理

Country Status (5)

Country Link
US (1) US9910481B2 (zh)
EP (1) EP3256928A4 (zh)
CN (1) CN107209545B (zh)
TW (2) TWI575370B (zh)
WO (1) WO2016130282A1 (zh)

Families Citing this family (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103959198B (zh) * 2011-11-30 2017-09-12 英特尔公司 降低3d工作负荷的功率
US10048989B2 (en) * 2015-05-18 2018-08-14 Krystallize Technologies, Inc. Automated workload analysis and simulation process
KR20170013697A (ko) * 2015-07-28 2017-02-07 삼성전자주식회사 데이터 저장 장치, 및 이를 포함하는 데이터 처리 시스템
US9942631B2 (en) 2015-09-25 2018-04-10 Intel Corporation Out-of-band platform tuning and configuration
US10177194B2 (en) 2015-12-11 2019-01-08 Gingy Technology Inc. Fingerprint identification apparatus
WO2017138220A1 (ja) * 2016-02-12 2017-08-17 ソニー株式会社 情報処理方法および情報処理装置
US20180024859A1 (en) * 2016-07-20 2018-01-25 Qualcomm Incorporated Performance Provisioning Using Machine Learning Based Automated Workload Classification
US20180025289A1 (en) * 2016-07-20 2018-01-25 Qualcomm Incorporated Performance Provisioning Using Machine Learning Based Automated Workload Classification
JP2019530066A (ja) * 2016-09-23 2019-10-17 インテル・コーポレーション コンピュータシステムのためのプログラマブルセキュリティユニットを実装するための方法、装置およびプログラム
CN110249348A (zh) * 2016-12-15 2019-09-17 西门子股份公司 能量控制系统的配置与参数化
CN107161007A (zh) * 2017-06-16 2017-09-15 上海赫千电子科技有限公司 一种车辆仪表与中控的一体化设备及方法
US10732694B2 (en) * 2017-09-22 2020-08-04 Qualcomm Incorporated Power state control of a mobile device
CN107807730B (zh) * 2017-10-31 2019-12-03 Oppo广东移动通信有限公司 应用清理方法、装置、存储介质及电子设备
DE102019101853A1 (de) * 2018-01-31 2019-08-01 Nvidia Corporation Dynamische Partitionierung von Ausführungsressourcen
TWI639075B (zh) 2018-02-12 2018-10-21 創意電子股份有限公司 電腦執行方法、時脈資料處理系統以及電腦可讀取儲存媒體
US11137807B2 (en) * 2018-03-28 2021-10-05 Intel Corporation System, apparatus and method for controllable processor configuration based on a temperature specification
US10725873B2 (en) * 2018-06-01 2020-07-28 Arm Limited Lockstep processing systems and methods
US11148675B2 (en) 2018-08-06 2021-10-19 Qualcomm Incorporated Apparatus and method of sharing a sensor in a multiple system on chip environment
US11348909B2 (en) * 2018-09-28 2022-05-31 Intel Corporation Multi-die packages with efficient memory storage
US11320883B2 (en) * 2018-09-28 2022-05-03 Intel Corporation Multi-die stacks with power management
CN111078282B (zh) * 2018-10-19 2020-12-22 安徽寒武纪信息科技有限公司 运算方法、装置及相关产品
US11106261B2 (en) * 2018-11-02 2021-08-31 Nvidia Corporation Optimal operating point estimator for hardware operating under a shared power/thermal constraint
CN113168206A (zh) 2018-12-07 2021-07-23 惠普发展公司,有限责任合伙企业 使用预测模型的自动超频
US11527950B2 (en) 2019-03-25 2022-12-13 Semiconductor Components Industries, Llc Power supply system for controlling load distribution across multiple converters for optimizing overall efficiency
US11258374B2 (en) 2019-03-25 2022-02-22 Semiconductor Components Industries, Llc Power supply system for optimizing standby power using artificial intelligence
US10797581B1 (en) 2019-03-25 2020-10-06 Semiconductor Components Industries, Llc Power supply system for controlling a ZVS parameter to optimize efficiency using artificial intelligence
US11093019B2 (en) 2019-07-29 2021-08-17 Microsoft Technology Licensing, Llc Integrated circuit power domains segregated among power supply phases
CN113748398B (zh) * 2019-09-06 2023-01-17 阿里云计算有限公司 数据处理与任务调度方法、设备、系统及存储介质
CN111176408B (zh) * 2019-12-06 2021-07-16 瑞芯微电子股份有限公司 一种SoC的低功耗处理方法和装置
TWI736079B (zh) * 2019-12-23 2021-08-11 瑞昱半導體股份有限公司 晶片及其異常處理方法
US11314299B2 (en) * 2020-03-27 2022-04-26 Intel Corporation System, apparatus and method for dynamic power state scaling of a voltage regulator for a processor
US20210117307A1 (en) * 2020-12-26 2021-04-22 Chris M. MacNamara Automated verification of platform configuration for workload deployment
WO2021056033A2 (en) * 2021-01-20 2021-03-25 Zeku, Inc. Apparatus and method of intelligent power and performance management
US11640194B2 (en) 2021-06-29 2023-05-02 Red Hat, Inc. Coordinating dynamic power scaling of agents based on power correlations of agent instructions
US11797410B2 (en) * 2021-11-15 2023-10-24 Advanced Micro Devices, Inc. Chiplet-level performance information for configuring chiplets in a processor
CN116982028A (zh) * 2022-02-28 2023-10-31 华为技术有限公司 一种任务调度方法、npu、芯片、电子设备和可读介质
CN114915358A (zh) * 2022-05-06 2022-08-16 成都德辰博睿科技有限公司 一种无线电监测系统、方法、装置及存储介质
US20240004444A1 (en) * 2022-06-30 2024-01-04 Advanced Micro Devices, Inc. Rest-of-chip power optimization through data fabric performance state management
US20240111560A1 (en) * 2022-09-30 2024-04-04 Subhankar Panda Workload linked performance scaling for servers

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120254643A1 (en) * 2011-03-21 2012-10-04 Eric Fetzer Managing Power Consumption In A Multi-Core Processor
TW201329720A (zh) * 2011-08-31 2013-07-16 Intel Corp 整合矽智財組塊至處理器
US8595527B2 (en) * 2009-12-24 2013-11-26 Postech Academy—Industry Foundation Method of managing power of multi-core processor, recording medium storing program for performing the same, and multi-core processor system

Family Cites Families (85)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5163153A (en) 1989-06-12 1992-11-10 Grid Systems Corporation Low-power, standby mode computer
US5522087A (en) 1994-03-22 1996-05-28 Verifone Inc. System for selectively operating in different modes depending upon receiving signal from a host computer within a time window upon power up
US5590341A (en) 1994-09-30 1996-12-31 Intel Corporation Method and apparatus for reducing power consumption in a computer system using ready delay
US5621250A (en) 1995-07-31 1997-04-15 Ford Motor Company Wake-up interface and method for awakening an automotive electronics module
US5931950A (en) 1997-06-17 1999-08-03 Pc-Tel, Inc. Wake-up-on-ring power conservation for host signal processing communication system
US6823516B1 (en) 1999-08-10 2004-11-23 Intel Corporation System and method for dynamically adjusting to CPU performance changes
US7539885B2 (en) 2000-01-13 2009-05-26 Broadcom Corporation Method and apparatus for adaptive CPU power management
US7010708B2 (en) 2002-05-15 2006-03-07 Broadcom Corporation Method and apparatus for adaptive CPU power management
JP2001318742A (ja) 2000-05-08 2001-11-16 Mitsubishi Electric Corp コンピュータシステムおよびコンピュータ読み取り可能な記録媒体
KR100361340B1 (ko) 2000-05-15 2002-12-05 엘지전자 주식회사 씨피유 클럭 제어 방법
US6792392B1 (en) 2000-06-30 2004-09-14 Intel Corporation Method and apparatus for configuring and collecting performance counter data
US6748546B1 (en) 2000-09-26 2004-06-08 Sun Microsystems, Inc. Method and apparatus for reducing power consumption
US6829713B2 (en) 2000-12-30 2004-12-07 Intel Corporation CPU power management based on utilization with lowest performance mode at the mid-utilization range
US7058824B2 (en) 2001-06-15 2006-06-06 Microsoft Corporation Method and system for using idle threads to adaptively throttle a computer
US20030061383A1 (en) 2001-09-25 2003-03-27 Zilka Anthony M. Predicting processor inactivity for a controlled transition of power states
US7111179B1 (en) 2001-10-11 2006-09-19 In-Hand Electronics, Inc. Method and apparatus for optimizing performance and battery life of electronic devices based on system and application parameters
US6996728B2 (en) 2002-04-26 2006-02-07 Hewlett-Packard Development Company, L.P. Managing power consumption based on utilization statistics
US7051227B2 (en) 2002-09-30 2006-05-23 Intel Corporation Method and apparatus for reducing clock frequency during low workload periods
US6898689B2 (en) 2002-11-15 2005-05-24 Silicon Labs Cp, Inc. Paging scheme for a microcontroller for extending available register space
US7043649B2 (en) 2002-11-20 2006-05-09 Portalplayer, Inc. System clock power management for chips with multiple processing modules
US6971033B2 (en) 2003-01-10 2005-11-29 Broadcom Corporation Method and apparatus for improving bus master performance
JP2006518064A (ja) 2003-01-23 2006-08-03 ユニバーシティー オブ ロチェスター マルチクロックドメインを有するマイクロプロセッサ
JP4061492B2 (ja) 2003-02-10 2008-03-19 ソニー株式会社 情報処理装置および消費電力制御方法
US7093147B2 (en) 2003-04-25 2006-08-15 Hewlett-Packard Development Company, L.P. Dynamically selecting processor cores for overall power efficiency
US7272732B2 (en) 2003-06-30 2007-09-18 Hewlett-Packard Development Company, L.P. Controlling power consumption of at least one computer system
TW200502847A (en) 2003-07-08 2005-01-16 Benq Corp Control device and method for reducing number of interrupts in a processor
US7146514B2 (en) 2003-07-23 2006-12-05 Intel Corporation Determining target operating frequencies for a multiprocessor system
US7272730B1 (en) 2003-07-31 2007-09-18 Hewlett-Packard Development Company, L.P. Application-driven method and apparatus for limiting power consumption in a processor-controlled hardware platform
US7194643B2 (en) 2003-09-29 2007-03-20 Intel Corporation Apparatus and method for an energy efficient clustered micro-architecture
US7770034B2 (en) 2003-12-16 2010-08-03 Intel Corporation Performance monitoring based dynamic voltage and frequency scaling
US20070156992A1 (en) 2005-12-30 2007-07-05 Intel Corporation Method and system for optimizing latency of dynamic memory sizing
US7451333B2 (en) 2004-09-03 2008-11-11 Intel Corporation Coordinating idle state transitions in multi-core processors
US9001801B2 (en) 2004-09-07 2015-04-07 Broadcom Corporation Method and system for low power mode management for complex Bluetooth devices
US7941585B2 (en) 2004-09-10 2011-05-10 Cavium Networks, Inc. Local scratchpad and data caching system
US7426648B2 (en) 2004-09-30 2008-09-16 Intel Corporation Global and pseudo power state management for multiple processing elements
US7788670B2 (en) * 2004-10-26 2010-08-31 Intel Corporation Performance-based workload scheduling in multi-core architectures
US7434073B2 (en) 2004-11-29 2008-10-07 Intel Corporation Frequency and voltage scaling architecture
US7502948B2 (en) 2004-12-30 2009-03-10 Intel Corporation Method, system, and apparatus for selecting a maximum operation point based on number of active cores and performance level of each of the active cores
US8041967B2 (en) 2005-02-15 2011-10-18 Hewlett-Packard Development Company, L.P. System and method for controlling power to resources based on historical utilization data
US7454632B2 (en) 2005-06-16 2008-11-18 Intel Corporation Reducing computing system power through idle synchronization
US7430673B2 (en) 2005-06-30 2008-09-30 Intel Corporation Power management system for computing platform
US8301868B2 (en) 2005-09-23 2012-10-30 Intel Corporation System to profile and optimize user software in a managed run-time environment
US20070079294A1 (en) 2005-09-30 2007-04-05 Robert Knight Profiling using a user-level control mechanism
US20070106827A1 (en) 2005-11-08 2007-05-10 Boatright Bryan D Centralized interrupt controller
US20070245163A1 (en) 2006-03-03 2007-10-18 Yung-Hsiang Lu Power management in computer operating systems
US7437270B2 (en) 2006-03-30 2008-10-14 Intel Corporation Performance state management
US7752468B2 (en) 2006-06-06 2010-07-06 Intel Corporation Predict computing platform memory power utilization
US7529956B2 (en) 2006-07-17 2009-05-05 Microsoft Corporation Granular reduction in power consumption
US7930564B2 (en) 2006-07-31 2011-04-19 Intel Corporation System and method for controlling processor low power states
US7730340B2 (en) * 2007-02-16 2010-06-01 Intel Corporation Method and apparatus for dynamic voltage and frequency scaling
WO2008117133A1 (en) 2007-03-26 2008-10-02 Freescale Semiconductor, Inc. Anticipation of power on of a mobile device
JP2008257578A (ja) 2007-04-06 2008-10-23 Toshiba Corp 情報処理装置、スケジューラおよび情報処理置のスケジュール制御方法
US7971074B2 (en) 2007-06-28 2011-06-28 Intel Corporation Method, system, and apparatus for a core activity detector to facilitate dynamic power management in a distributed system
US20090089792A1 (en) 2007-09-27 2009-04-02 Sun Microsystems, Inc. Method and system for managing thermal asymmetries in a multi-core processor
US8024590B2 (en) 2007-12-10 2011-09-20 Intel Corporation Predicting future power level states for processor cores
US20090150696A1 (en) 2007-12-10 2009-06-11 Justin Song Transitioning a processor package to a low power state
US7966506B2 (en) 2007-12-12 2011-06-21 Intel Corporation Saving power in a computer system
US8442697B2 (en) 2007-12-18 2013-05-14 Packet Digital Method and apparatus for on-demand power management
KR101459140B1 (ko) 2007-12-26 2014-11-07 엘지전자 주식회사 전원관리 제어 장치 및 방법
US7930574B2 (en) 2007-12-31 2011-04-19 Intel Corporation Thread migration to improve power efficiency in a parallel processing environment
US8156362B2 (en) 2008-03-11 2012-04-10 Globalfoundries Inc. Hardware monitoring and decision making for transitioning in and out of low-power state
US8954977B2 (en) 2008-12-09 2015-02-10 Intel Corporation Software-based thread remapping for power savings
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
US8700943B2 (en) 2009-12-22 2014-04-15 Intel Corporation Controlling time stamp counter (TSC) offsets for mulitple cores and threads
US8943334B2 (en) 2010-09-23 2015-01-27 Intel Corporation Providing per core voltage and frequency control
US8949637B2 (en) 2011-03-24 2015-02-03 Intel Corporation Obtaining power profile information with low overhead
US8769316B2 (en) 2011-09-06 2014-07-01 Intel Corporation Dynamically allocating a power budget over multiple domains of a processor
US9074947B2 (en) 2011-09-28 2015-07-07 Intel Corporation Estimating temperature of a processor core in a low power state without thermal sensor information
US8954770B2 (en) 2011-09-28 2015-02-10 Intel Corporation Controlling temperature of multiple domains of a multi-domain processor using a cross domain margin
US8832478B2 (en) 2011-10-27 2014-09-09 Intel Corporation Enabling a non-core domain to control memory bandwidth in a processor
US9026815B2 (en) 2011-10-27 2015-05-05 Intel Corporation Controlling operating frequency of a core domain via a non-core domain of a multi-domain processor
US8943340B2 (en) 2011-10-31 2015-01-27 Intel Corporation Controlling a turbo mode frequency of a processor
US9158693B2 (en) 2011-10-31 2015-10-13 Intel Corporation Dynamically controlling cache size to maximize energy efficiency
US9436245B2 (en) 2012-03-13 2016-09-06 Intel Corporation Dynamically computing an electrical design point (EDP) for a multicore processor
CN104169832B (zh) 2012-03-13 2017-04-19 英特尔公司 提供处理器的能源高效的超频操作
US9323316B2 (en) 2012-03-13 2016-04-26 Intel Corporation Dynamically controlling interconnect frequency in a processor
WO2013162589A1 (en) * 2012-04-27 2013-10-31 Intel Corporation Migrating tasks between asymmetric computing elements of a multi-core processor
US8984313B2 (en) 2012-08-31 2015-03-17 Intel Corporation Configuring power management functionality in a processor including a plurality of cores by utilizing a register to store a power domain indicator
US9223979B2 (en) 2012-10-31 2015-12-29 Intel Corporation Detection of return oriented programming attacks
CN111522585A (zh) 2012-12-28 2020-08-11 英特尔公司 基于平台热以及功率预算约束,对于给定工作负荷的最佳逻辑处理器计数和类型选择
US9665154B2 (en) 2013-05-31 2017-05-30 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Subsystem-level power management in a multi-node virtual machine environment
CN104345858B (zh) * 2013-08-02 2017-08-18 北京百度网讯科技有限公司 服务器硬件设备的功耗管理方法及装置、服务器
US9292293B2 (en) * 2013-08-08 2016-03-22 Qualcomm Incorporated Intelligent multicore control for optimal performance per watt
US9852499B2 (en) * 2013-12-13 2017-12-26 Konica Minolta Laboratory U.S.A., Inc. Automatic selection of optimum algorithms for high dynamic range image processing based on scene classification
US20150355700A1 (en) * 2014-06-10 2015-12-10 Qualcomm Incorporated Systems and methods of managing processor device power consumption

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8595527B2 (en) * 2009-12-24 2013-11-26 Postech Academy—Industry Foundation Method of managing power of multi-core processor, recording medium storing program for performing the same, and multi-core processor system
US20120254643A1 (en) * 2011-03-21 2012-10-04 Eric Fetzer Managing Power Consumption In A Multi-Core Processor
TW201329720A (zh) * 2011-08-31 2013-07-16 Intel Corp 整合矽智財組塊至處理器

Also Published As

Publication number Publication date
TWI628539B (zh) 2018-07-01
US9910481B2 (en) 2018-03-06
US20160239065A1 (en) 2016-08-18
TW201640273A (zh) 2016-11-16
EP3256928A1 (en) 2017-12-20
WO2016130282A1 (en) 2016-08-18
EP3256928A4 (en) 2018-10-10
TW201730715A (zh) 2017-09-01
CN107209545A (zh) 2017-09-26
CN107209545B (zh) 2020-10-09

Similar Documents

Publication Publication Date Title
TWI575370B (zh) 在多核心處理器中執行電源管理
US10775873B2 (en) Performing power management in a multicore processor
TWI725086B (zh) 動態更新處理器的電源管理政策
CN107533354B (zh) 控制处理器的处理引擎的性能状态
TWI592794B (zh) 用以提供多晶片封裝之熱參數報告的裝置與方法
US11435816B2 (en) Processor having accelerated user responsiveness in constrained environment
CN109564526B (zh) 使用封装和线程提示信息的组合来控制处理器的性能状态
JP2022526765A (ja) プロセッサのパワーライセンス制御のためのシステム、装置、および方法
JP2022532838A (ja) プロセッサの処理回路の電流消費を動的に制御するためのシステム、装置及び方法
CN113448423A (zh) 用于基于任务特性动态调整平台功率和性能的装置和方法
US20240028101A1 (en) System, apparatus and method for globally aware reactive local power control in a processor
KR20210091048A (ko) Soc의 동적 열 분배를 위한 시스템, 장치 및 방법
CN118113127A (zh) 用于基于任务特性动态调整平台功率和性能的装置和方法
Akramullah et al. Power Consumption by Video Applications