TW201716923A - 用以進行交易式電源管理的硬體設備及方法 - Google Patents

用以進行交易式電源管理的硬體設備及方法 Download PDF

Info

Publication number
TW201716923A
TW201716923A TW105116129A TW105116129A TW201716923A TW 201716923 A TW201716923 A TW 201716923A TW 105116129 A TW105116129 A TW 105116129A TW 105116129 A TW105116129 A TW 105116129A TW 201716923 A TW201716923 A TW 201716923A
Authority
TW
Taiwan
Prior art keywords
power
transaction
power transaction
conflict
thread
Prior art date
Application number
TW105116129A
Other languages
English (en)
Other versions
TWI733672B (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 TW201716923A publication Critical patent/TW201716923A/zh
Application granted granted Critical
Publication of TWI733672B publication Critical patent/TWI733672B/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
    • 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/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • 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/466Transaction processing
    • 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/3243Power saving in microcontroller unit
    • 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
    • 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
    • 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/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/30076Arrangements for executing specific machine instructions to perform miscellaneous control operations, e.g. NOP
    • G06F9/30083Power or thermal control instructions
    • 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
    • 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/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • 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)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Power Sources (AREA)

Abstract

本發明說明關於交易式電源管理的方法及設備。在一實施例中,硬體設備包括具有核心的硬體處理器、複數個電源域,用以回應於用於每個電源域的電源管理命令而轉變至複數個電源狀態之其一者、及電源交易單元,用以分配第一電源管理命令作為第一電源交易和第二電源管理命令作為第二電源交易用於同時執行,當在第一電源交易和第二電源交易之間沒有衝突時進行第一電源交易和第二電源交易之提交,並當在第一電源交易和第二電源交易之間有衝突時進行第一電源交易的中止和第二電源交易的提交。

Description

用以進行交易式電源管理的硬體設備及方法
本揭露一般關於電子產品,且更具體來說,本揭露之實施例關於具有電源交易單元的硬體處理器以進行交易式電源管理。
處理器或處理器集從指令集(例如,指令集架構(ISA))執行指令。指令集是關於編程的電腦架構之部分,並且一般包括原生資料類型、指令、暫存器架構、定址模式、記憶體架構、中斷和例外處理、及外部輸入和輸出(I/O)。
100‧‧‧硬體設備
102‧‧‧硬體處理器
102A‧‧‧核心A
104A‧‧‧第一級指令快取
106A‧‧‧第一級資料快取
108A‧‧‧第2級快取
102B‧‧‧核心B
104B‧‧‧第一級指令快取
106B‧‧‧第一級資料快取
108B‧‧‧第2級快取
102C‧‧‧核心C
104C‧‧‧第一級指令快取
106C‧‧‧第一級資料快取
108C‧‧‧第2級快取
102D‧‧‧核心D
104D‧‧‧第一級指令快取
106D‧‧‧第一級資料快取
108D‧‧‧第2級快取
110‧‧‧共享第3級快取
112‧‧‧共享第3級快取
114‧‧‧共享第4級快取
116‧‧‧環形網路
120A‧‧‧(電源)交易單元
120B‧‧‧(電源)交易單元
120C‧‧‧(電源)交易單元
120D‧‧‧(電源)交易單元
120‧‧‧電源交易單元
124‧‧‧圖形單元
126‧‧‧顯示器
128‧‧‧儲存器
130‧‧‧UART
132‧‧‧LPSS
134‧‧‧USB
122‧‧‧電源管理單元
200‧‧‧積體電路
236‧‧‧快取相干控制器
216‧‧‧匯流排
240‧‧‧電源管理單元
242‧‧‧電源管理控制器
240A‧‧‧布隆過濾器
242A‧‧‧布隆過濾器
244‧‧‧暫存器
246‧‧‧暫存器
300‧‧‧積體電路
340‧‧‧電源管理單元
342‧‧‧電源管理控制器
316‧‧‧匯流排
400‧‧‧電源管理碼
500‧‧‧電源管理碼
T1‧‧‧執行緒
T2‧‧‧執行緒
600‧‧‧時序圖
t1‧‧‧時間
t2‧‧‧時間
601‧‧‧共享電源資源
700‧‧‧流程圖
800‧‧‧流程圖
900‧‧‧處理器管線
902‧‧‧提取級
904‧‧‧長度解碼級
906‧‧‧解碼級
908‧‧‧分配級
910‧‧‧更名級
912‧‧‧排程級
914‧‧‧暫存器讀取/記憶體讀取級
916‧‧‧執行級
918‧‧‧寫回/記憶體寫入級
922‧‧‧例外處理級
924‧‧‧提交級
930‧‧‧前端單元
950‧‧‧執行引擎單元
970‧‧‧記憶體單元
932‧‧‧分支預測單元
934‧‧‧指令快取單元
936‧‧‧指令轉譯旁視緩衝器
938‧‧‧指令提取單元
940‧‧‧解碼單元
952‧‧‧更名/分配器單元
954‧‧‧引退單元
956‧‧‧排程器單元
958‧‧‧實體暫存器檔案單元
960‧‧‧執行叢集
962‧‧‧執行單元
964‧‧‧記憶體存取單元
970‧‧‧記憶體單元
974‧‧‧資料快取單元
972‧‧‧資料TLB單元
976‧‧‧第2級(L2)快取單元
990‧‧‧核心
1000‧‧‧指令解碼器
1002‧‧‧互連網路
1004‧‧‧第2級(L2)快取的區域子集
1006‧‧‧L1快取
1008‧‧‧純量單元
1010‧‧‧向量單元
1012‧‧‧純量暫存器
1014‧‧‧向量暫存器
1006A‧‧‧L1資料快取
1020‧‧‧攪和單元
1022A-B‧‧‧數字轉換單元
1024‧‧‧複製單元
1026‧‧‧寫入遮罩暫存器
1100‧‧‧處理器
1102A-N‧‧‧核心
1110‧‧‧系統代理器
1116‧‧‧匯流排控制器單元
1114‧‧‧整合記憶體控制器單元
1108‧‧‧專用邏輯
1106‧‧‧共享快取單元
1112‧‧‧互連單元
1200‧‧‧系統
1210‧‧‧處理器
1215‧‧‧處理器
1220‧‧‧控制器中心
1290‧‧‧圖形記憶體控制器中心
1250‧‧‧輸入/輸出中心
1240‧‧‧記憶體
1245‧‧‧協處理器
1240A‧‧‧(電源)交易模組
1260‧‧‧輸入/輸出裝置
1295‧‧‧連線
1300‧‧‧多處理器系統
1350‧‧‧點對點互連
1370‧‧‧第一處理器
1380‧‧‧第二處理器
1338‧‧‧協處理器
1372‧‧‧整合記憶體控制器單元
1382‧‧‧整合記憶體控制器單元
1376‧‧‧P-P介面
1378‧‧‧P-P介面
1386‧‧‧P-P介面
1388‧‧‧P-P介面
1332‧‧‧記憶體
1334‧‧‧記憶體
1352‧‧‧P-P介面
1354‧‧‧P-P介面
1390‧‧‧晶片組
1339‧‧‧高效能介面
1396‧‧‧介面
1316‧‧‧第一匯流排
1314‧‧‧I/O裝置
1318‧‧‧匯流排橋接器
1320‧‧‧第二匯流排
1315‧‧‧處理器
1322‧‧‧鍵盤及/或滑鼠
1327‧‧‧通訊裝置
1330‧‧‧資料
1328‧‧‧儲存單元
1324‧‧‧音頻I/O
1400‧‧‧系統
1414‧‧‧I/O裝置
1415‧‧‧傳統I/O裝置
1502‧‧‧互連單元
1510‧‧‧應用處理器
1520‧‧‧協處理器
1530‧‧‧靜態隨機存取記憶體單元
1532‧‧‧直接記憶體存取單元
1602‧‧‧高階語言
1604‧‧‧x86編譯器
1606‧‧‧x86二進制碼
1608‧‧‧另一指令集編譯器
1610‧‧‧另一指令集二進制碼
1612‧‧‧指令轉換器
1614‧‧‧不具有x86指令集核心的處理器
1616‧‧‧具有至少一x86指令集核心的處理器
藉由附圖之圖式中所示例性且非限定地說明本揭露,該等附圖中相同編號係指類似元件,且其中:
第1圖繪示根據本揭露之實施例的硬體設備。
第2圖繪示根據本揭露之實施例的積體電路。
第3圖繪示根據本揭露之實施例的積體電路。
第4圖繪示根據本揭露之實施例之用於無電源交易之系統的電源管理碼。
第5圖繪示根據本揭露之實施例之用於具有電源交易之系統的電源管理碼。
第6圖繪示根據本揭露之實施例之具有原子電源交易和沒有原子電源交易的時序圖。
第7圖繪示根據本揭露之實施例之流程圖。
第8圖繪示根據本揭露之實施例之流程圖。
第9A圖係繪示根據本揭露之實施例之示範有序管線與示範暫存器更名、亂序發出/執行管線兩者的方塊圖。
第9B圖係繪示根據本揭露之實施例之將包括在處理器中的有序架構核心之示範實施例與示範暫存器更名、亂序發出/執行架構核心兩者的方塊圖。
第10A圖係根據本揭露之實施例之單一處理器核心,以及其與晶粒上互連網路的連接及其第2級(L2)快取的區域子集之方塊圖。
第10B圖係根據本揭露之實施例之第10A圖中的處理器核心之部分的分解圖。
第11圖係根據本揭露之實施例之可能具有超 過一個核心,可能具有整合記憶體控制器,且可能具有整合圖形之處理器的方塊圖。
第12圖係根據本揭露之一實施例之系統的方塊圖。
第13圖係根據本揭露之實施例之更具體示範系統的方塊圖。
第14圖顯示根據本揭露之實施例之第二更具體示範系統的方塊圖。
第15圖顯示根據本揭露之實施例之系統晶片(SoC)的方塊圖。
第16圖係根據本揭露之實施例之對照於使用軟體指令轉換器來將來源指令集中的二進制指令轉換成目標指令集中的二進制指令之方塊圖。
【發明內容與實施方式】
在下列說明中,提出數種具體細節。然而,了解可能實作本揭露之實施例而無須這些具體細節。在其他實例中,未詳細顯示熟知的電路、結構及技術以免模糊本說明書的理解。
說明書中提到「一個實施例」、「一實施例」、「一示範實施例」、等等指示所述之實施例可能包括特定特徵、結構、或特性,但每個實施例可能不一定包括特定特徵、結構、或特性。此外,上述措辭可能不一定係指相同實施例。又,當說明關於實施例的特定特徵、結 構、或特性時,不管是否明確說明,應瞭解影響關聯於其他實施例的上述特徵、結構、或特性係在熟悉該技術領域者之知識內。
(例如,硬體)處理器或處理器集從指令集(例如,指令集架構(ISA))執行指令。指令集是關於編程的電腦架構之部分,並且一般包括原生資料類型、指令、暫存器架構、定址模式、記憶體架構、中斷和例外處理、及外部輸入和輸出(I/O)。應注意到本文中的指令之詞可能指巨集指令,例如,提供至處理器用於執行的指令,或指微型指令,例如,由處理器之解碼巨集指令的解碼單元(解碼器)造成的指令。(例如,具有一或多個核心以解碼及/或執行指令的)處理器可能對資料操作例如執行算術、邏輯、或其他函數。
(例如,作為計算系統之一部分的)硬體處理器可能例如根據進階組態和電源介面(ACPI)規格而在電源狀態之間轉變一或多個其元件(例如,核心及/或裝置)的電源。在一實施例中,元件可能在多個操作狀態(閒置狀態、或關閉狀態)之其一者中被供電。例如,第一電源狀態可能是最大電源和頻率且第二電源狀態可能是較低電源和頻率(例如,但非閒置)。電源狀態轉變可能需要多個時脈週期(例如,從多個指令被執行以使電源狀態轉變),以例如根據請求而執行從第一狀態到第二狀態之轉變。電源可能由電池或其它電源來源提供。電源管理單元可能藉由將處理器及/或其裝置(例如,顯示器、輸 入/輸出(I/O)埠、等等)置於不同電源狀態來節省功率,例如,當沒有操作欲被執行時(例如,沒有指令要被處理器的核心執行)將其置於閒置或關閉狀態。在某些實施例中,電源管理單元可能藉由作出電源狀態判定及/或轉變來管理功率消耗。此外或替代地,電源管理可能例如經由在作業系統(OS)與用以使其電源狀態轉變(例如修改)的裝置之間通訊的驅動程式而由OS實作。
在本揭露之某些實施例中,電源管理可能利用與軟體(例如,OS及/或應用程式)共存的處理器(例如,低功率微控制器)。在本揭露之某些實施例中(例如,針對能量效率),OS可能分散功率控制於其域之內,以例如給各裝置域控制其自身的狀態。然而,從電源管理流程的角度看,這可能當電源管理(例如,轉變)命令例如被電源管理單元發出及/或執行時導致競爭和比賽情況。這可能藉由採用鎖住(例如,使用信號標或其他機構)例如以當另一電源轉變(例如,程序)發生時停頓或取消一個電源轉變請求來處理。例如,若針對整個電源轉變期間保持鎖住(例如,不論裝置層級控制,或一組裝置,或用於平台),則這可能導致能量無效率。本揭露的某些實施例可能提供可擴展的電源管理,例如,無需使用鎖住。本揭露的某些實施例可能提供電源管理而無需例如在OS中使用粗粒度鎖住或同步,或具有電源管理單元(例如,處理器的電源管理控制器(PMC)或儲存控制器單元(SCU)),或兩者的組合。本揭露的某些實施例可 能藉由OS提供電源管理而不放置(例如,高級、粗粒度的)鎖住,其中每次可能只有一個電源轉變(例如,請求)被發送至硬體。
本揭露的某些實施例包括用以進行交易式電源管理的電源管理設備(例如,處理器及/或系統晶片(SOC))和方法。例如,(例如,裝置、元件、及/或電源域的)每個電源狀態轉變可能被表示為一交易。在一實施例中,電源狀態轉變(例如,從一個狀態到不同的狀態)可能藉由接收例如發送至電源管理單元的控制輸入(例如,用於各電源域的輸入)之電源管理命令來請求。本揭露的某些實施例包括用以平行電源管理命令的電源管理設備和方法。本揭露的某些實施例包括用以進行交易式電源管理的交易式記憶體(例如,管理)設備和方法。根據本揭露的電源管理可能包括電源管理硬體、軟體、韌體、或以上之任何組合。
在一實施例中,根據原子性、一致性、隔離、和耐久性(ACID)特性之其一者、全部、或任何組合來保證交易。原子性(例如,作為原子)可能一般指交易是「全部或沒有」。例如,若交易的一部分失敗,則整個交易失敗且對其操作的資料保持不變。原子系統可能在每個且所有情況(例如,包括電源故障、錯誤、和崩潰)中保證原子性。交易之外,已提交的交易(例如,藉由其對操作資料的影響)似乎是不可分割的(「原子」),且中止的交易(例如,未提交)似乎不會發生。一致性可能 通常指任何交易是將資料從一個有效狀態帶到另一個。例如,任何寫入的資料根據所有定義的規則是有效的,例如,包括限制、級聯、觸發器、和以上的任何組合。這可能無法在所有方法中保證交易的正確性,例如,這可能是應用程式級碼的責任,但可能保證任何編程錯誤將不會導致違反任何定義的規則。隔離可能通常指導致相同系統狀態的交易(例如,執行緒)之同時執行,其若序列地(例如,一前一後)執行那些交易則會得到。例如,同時控制可能提供隔離。例如,取決於同時控制的方法,其他交易可能看不見不完整交易的影響。耐久性可能通常是指一旦交易已被提交,其應保持如此,例如,即使在電源損失、崩潰、或錯誤的事件中。例如,為了防禦電源損失,交易(或其影響)可能被記錄在非揮發性(例如,永久)記憶體中。
本揭露的某些實施例包括用以表示電源狀態轉變作為交易的電源管理的裝置和方法。這可能允許裝置(例如,處理器、系統晶片(SoC)、及/或平台)的電源狀態的語義準確(例如,多處理器)視圖。此外,代表電源狀態轉變為電源交易可能允許更有序、語義準確的方式來建模、指定、和驗證電源管理轉變。在某些實施例中,實作電源管理轉變作為交易記憶體序列可能允許裝置、SOC、及/或平台之電源狀態的語義準確多處理器視圖。此外,代表電源狀態轉變作為交易可能帶來更有序、語義準確的方式來建模、指定和驗證電源(例如,管理)轉變。 在某些實施例中,代表電源轉變作為交易可能是用以在硬體、韌體、和軟體中指定電源序列的有力方式,例如,協助裝置、SOC、及/或平台之電源管理驗證的語義上相干表示。
在一實施例中,電源管理設備和方法可能宣告碼(例如,執行緒或多個執行緒)的區域作為(例如,單一)交易。交易可能執行並原子地提交所有結果至記憶體(例如,當交易成功時)或中止並取消所有結果(例如,若交易失敗)。交易可能根據例如上面所討論的原子性、一致性、隔離、和耐久性(ACID)特性來進行。交易可能安全地並行執行,例如用以取代如鎖住和信號標的技術。某些實施例也可能包括效能優勢,例如,當鎖住可能是悲觀的,並且假設鎖住執行緒將寫入資料時,那麼其它執行緒的進展可能被阻擋。在本文沒有鎖住的一個實施例中,皆存取共享資源(例如,相同的記憶體位址或暫存器)的兩個交易可能平行進行,且轉返(例如,一個或兩個交易的中止)可能只有當其中一個交易寫入(例如,衝突寫入)至共享資源時才發生。
電源管理設備和方法可能接收用於電源狀態轉變(例如,指示要轉變到哪個裝置或域及/或新的電源級)的複數個請求(例如,來自硬體、OS、或驅動程式)。在一實施例中,電源狀態轉變可能被電源管理命令請求(例如,用以在處理器上執行以實現轉變的指令之執行緒)。在一實施例中,電源管理命令可能從請求者(例 如,OS)發送至待轉變的裝置(例如,控制輸入)。電源狀態轉變可能被宣告為交易,例如,分配為電源交易的電源管理命令(例如,執行緒)。這樣,電源狀態轉變(例如,用以引起電源狀態轉變的操作)可能被視為(例如,單一)電源交易,使得電源管理設備和方法當修改(例如,改變電源狀態)控制電源狀態轉變及/或為部分之電源狀態轉變的資料結構(例如,保持在記憶體、暫存器、資料輸入、等等)時不發出鎖住。在一實施例中,電源狀態交易包括在試圖對資料結構的任何修改之前開始狀態轉變操作、使它們的改變成為資料結構的副本(例如,參考版本)(例如,在快取中),並當操作完成後,若無發生衝突則提交交易。在交易期間,電源交易單元(例如,系統)可能追蹤(例如,登錄)那些操作進行讀取及/或寫入的所有資料結構。在電源交易被提交之前,電源交易單元可能檢查沒有其他交易(例如,它的操作)做出對交易使用之資料結構的任何改變。若沒有改變,則交易可能被提交。若有改變,交易可能被中止,例如,使得其所有改變都被撤消。在一實施例中,中止的交易(例如,其操作)可能例如在不同策略(例如,使用鎖住)下被重試或取消。因此,對多個裝置的電源狀態轉變嘗試可能與電源狀態交易並行地發生。在一實施例中,裝置及/或域包括電源管理暫存器以產生對將電源管理命令寫入至暫存器中之接收的電源狀態轉變,例如,電源管理命令可能指示用於裝置之新電源狀態的(一或多)位元。在一實施例 中,軟體(例如,OS)請求電源狀態轉變,例如,在偵測未利用裝置(及/或電源域)之後,可能指示閒置或關閉此裝置。裝置可能包括在處理器外部的元件(例如,周邊裝置),例如,不與處理器在晶粒上。多個裝置可能包括共享資源,例如,那些裝置被相同的時脈控制,或在相同電源域(例如,由電源的相同電源軌供電)。OS可能指示或偵測哪個電源域將被使用以執行電源管理命令(例如,執行緒)。例如,電源交易提示(例如,「原子」,參照下方第5圖)可能被包括在碼中以指示OS或硬體電源管理命令(例如,用以請求電源狀態轉變)將被視為交易。
作為一實例,第一裝置(例如,USB集線器)和第二裝置(例如,網路適配器)可能各在主動電源狀態中且可能(例如,從它們各自的驅動器)發送電源管理命令以將各者轉變成閒置或關閉電源狀態。第一電源管理命令(例如,用於USB集線器)和第二電源管理命令(例如,用於網路適配器)可能例如被OS發送,並由處理器或SoC的電源交易單元接收。電源交易單元可能例如根據原子性、一致性、隔離及/或耐久性(ACID)特性來偵測到針對每個電源管理命令的請求之電源狀態轉變將成為電源交易。電源交易單元(例如,在硬體、軟體、韌體、或其組合)可能允許電源狀態轉變的同時(例如,並行)執行,例如,但尚未提交它們。即使當那些裝置被共享資源供電時,這可能發生。例如,可能追蹤被第一電源 命令(例如,執行緒)和第二電源命令(例如,執行緒)發生的任何讀取及/或寫入(例如,至控制輸入及/或輸出)。在一實施例中,若沒有第一電源交易和第二電源交易的改變(例如,衝突),則它們可能隨後被提交(例如,裝置被供電至閒置或關閉電源狀態)。若有衝突改變,例如,一個裝置為閒置,而另一個裝置為關閉狀態,其中兩個裝置共享影響該等兩者的共同電源資源(例如,域),則接著一個或兩個交易可能例如根據衝突解決策略而被中止。衝突解決策略的一個實例是提交用以寫入至資源的第一交易,並中止第二交易。衝突解決策略的另一個實例是提交具有最高電源狀態的交易,並中止較小的電源狀態交易。可能包括其他衝突解決策略,例如但不限於例如在提交其他交易之後重試(例如,延遲)中止的交易。在一實施例中,每個電源交易(例如,用於各別執行緒)可能繼續進行,直到偵測到同時執行之執行緒之間的衝突為止。本文的某些實施例允許不針對同時執行(例如,沒有提交)複數個電源轉變的鎖住。
需要注意的是本文附圖不描繪電源(例如,電池或非電池)或電源連線。本領域之通常技藝者將理解這是為了不混淆在圖中的某些細節。注意,本文之雙箭頭可能不需要雙向通訊,例如,它可能指示單向通訊(例如,到達或來自該部件或裝置)。在本文實施例中可能利用任何或所有通訊路徑之組合。
第1圖繪示根據本揭露之實施例的硬體設備 100。在一實施例中,硬體設備100可能是SoC。描繪的硬體設備100包括硬體處理器102。雖然硬體處理器的某些組件被描繪,例如,多級快取和多個核心,但可能利用其他處理器而不脫離本揭露的精神(例如本文討論的那些)。描繪的核心A(102A)包括第一級指令快取(L1I)104A、第一級資料快取106A、和第2級快取(L2)108A。描繪的核心B(102B)包括第一級指令快取(L1I)104B、第一級資料快取(L1D)106B、和第2級快取(L2)108B。描繪的核心C(102C)包括第一級指令快取(L1I)104C、第一級資料快取(L1D)106C、和第2級快取(L2)108C。描繪的核心D(102D)包括第一級指令快取(L1I)104D、第一級資料快取(L1D)106D、和第2級快取(L2)108D。描繪的硬體核心A和B包括共享第3級快取(L3)110。描繪的硬體核心C和D包括共享第3級快取(L3)112。描繪的處理器102包括共享第4級快取(L4)114。雖然描繪四個核心,但可能利用單核心或任何複數個處理器核心。雖然描繪四級快取,但可能利用單級或任何複數級快取。
在一實施例中,每個核心具有其自身的電源域。在一實施例中,多個核心(例如,核心A和核心B)具有共享的電源域。在一實施例中,整個快取可能具有其自身的電源域。例如,用於L3快取110的電源轉變可能導致用於某些或所有其它快取的電源轉變。
可能根據快取相干協定(例如,四個狀態修 改(M)、排他(E)、共享(S)、和無效(I)(MESI)協定或五個狀態修改(M)、排他(E)、共享(S)、無效(I)、和轉送(F)(MESIF)協定)來利用快取相干單元(例如,作為快取的一部分)。
在本文實施例中可能利用通訊路徑的任何或所有組合。例如,處理器102(例如,其核心)可能例如透過網路(描繪為環形網路116)與其他裝置通訊。
可能根據本揭露的某些實施例來包括(例如,電源)交易單元。每個核心可能包括(例如,電源)交易單元,例如,在其各自核心中的(電源)交易單元120A、120B、120C、和120D。另外或替代地,處理器或SoC可能包括單獨(例如,電源)交易單元。描繪的硬體設備包括電源交易單元120,例如,用於儲存用以進行本文揭露的邏輯。雖然描繪某些其它組件,但這些是舉例,且可能利用其它組件及/或某些所描述的組件可能不存在於硬體設備中。描繪的組件包括圖形單元124(例如,其可能是圖形處理器),其可能發送顯示信號至顯示器126、儲存器128(例如,可能在晶粒上或晶粒外的資料儲存裝置)、通用非同步接收器和發射器(UART)130、較低功率子系統(LPSS)132、和通用序列匯流排(USB)134。圖形單元124可能是硬體處理器102的一部分。
電源管理單元122可能被包括例如以管理電源至裝置的流動。電源交易單元可能被包括在電源管理單 元中。在一實施例中,每個裝置(例如,其組件)可能包括其自身的電源域。在一實施例中,多個裝置或裝置的組件共享單一電源域。
作為一實例,第一裝置(例如,USB 134)和第二裝置(如UART 130)可能各在主動電源狀態中且可能(例如,從它們各自的驅動器)發送電源管理命令以將其各者轉變成關閉(或閒置)電源狀態。第一電源管理命令(例如,用於USB 134)和第二電源管理命令(例如,用於UART 130)可能例如被OS發送,並由電源交易單元(例如,交易單元120)接收。電源交易單元可能例如根據原子性、一致性、隔離及/或耐久性(ACID)特性來偵測到(例如,從來自OS的指示)針對每個電源管理命令的請求之電源狀態轉變將成為電源交易。電源交易單元(例如,在硬體、軟體、韌體、或其組合)可能允許電源狀態轉變的同時(例如,並行)執行,例如,但尚未提交它們。即使當那些裝置被共享資源供電時(例如,為相同電源域的成員),這可能發生。例如,可能追蹤被第一電源命令(例如,執行緒)和第二電源命令(例如,執行緒)發生的任何讀取及/或寫入(例如,至控制輸入及/或輸出)。待修改的資料之副本可能產生(例如,參考版本),並可能被儲存在快取(例如,處理器的快取或交易單元120的單獨快取)中。在一實施例中,若沒有第一電源交易和第二電源交易的衝突(例如,衝突改變),則它們可能隨後被提交(例如,USB 134和UART 130裝置被 供電至關閉(或閒置)電源狀態)。若有衝突(例如,衝突改變),例如,一個裝置為閒置,而另一個裝置為關閉狀態,其中兩個裝置共享影響該等兩者的共同電源資源(例如,域),則接著一個或兩個交易可能例如根據衝突解決策略而被中止。
在另一實施例中,單一裝置可能具有其宣告為電源交易的電源轉變。例如,在電源狀態轉變(例如,從主動狀態至關閉或閒置)之過程中的裝置(例如,USB 134)可能接收中斷(例如,周邊裝置已插入USB 134中)。電源交易單位可以偵測到此且然後中止(例如,不提交)飛行電源狀態轉變,例如,而是取而代之地返回到主動狀態。
參看第2和3圖,第2圖是用以描述積體電路(例如,其處理器核心)不包括支援硬體記憶體交易(例如,交易記憶體)的實施例,且第3圖是用以描述積體電路(例如,其處理器核心)包括支援硬體記憶體交易(例如,交易記憶體)的實施例。
第2圖繪示根據本揭露之實施例的積體電路200。處理器核心0-N各被描繪成包括(例如,私人)指令快取(IC)和(例如,私人)資料快取(DC)。此外,積體電路可能包括快取相干控制器236以在(例如,資料)快取中保持(例如,全域)快取相干性。儘管在第2圖中描繪某些裝置和組件,但這些是可選的。例如,雖然描繪「北複合體」電源域和「南複合體」電源域,但可 能使用任何電源域。匯流排216可能用於通訊。
快取相干控制器236和討論的其他修改可能允許交易電源管理。積體電路200(例如,SoC)包括電源管理單元(PUNIT)240和電源管理控制器(PMC)242,例如,每個或這兩者可能是離散處理器核心。PMC 242可能例如回應於來自PUNIT 240的電源管理命令而控制電源到域(例如,南複合體)。
硬體電源交易可能被實現如下,例如,在不支援硬體記憶體交易(例如,交易記憶體)的系統中。交易欄位(例如,位元)可能被包括用於在快取系統中的每個快取項(例如,快取行)。資料結構(例如,用於每個PUNIT和PMC)可能被包括以追蹤交易歷史及/或任何衝突。資料結構可能被存取以測試(例如,判斷)元件(例如,裝置)是否是集合中的成員(例如,共享的電源域或其他共享資源)。在所描繪的實施例中,資料結構是用於PUNIT 240的布隆過濾器(Bloom filter)240A和用於PMC 242的布隆過濾器242A。布隆過濾器可能是用以測試元件(例如,裝置)是否是集合之成員(例如,共享的電源域或其他共享資源)的(例如,空間高效)概率資料結構。在一實施例中,假陽性匹配是可能的,但假陰性不是例如其用於元件的查詢返回「元件可能在集合中」或「元件絕對不在集合中」。PUNIT和PMC可能利用資料結構(例如,布隆過濾器)以提供衝突解決和命令提交的支援。資料結構(例如,布隆過濾器)可能被存取為(例 如,記憶體映射)暫存器(例如,暫存器244和246)。PUNIT和PMC的電源管理暫存器(未繪示)可能被存取以造成電源轉變。資料結構(例如,暫存器244和246)可能被暴露到軟體中,例如,經由交易應用編程介面(API),例如以被軟體使用以定義交易邊界、配置如何處理衝突(和任何重試)等。本文中某些實施例因此可能提供交易電源管理的可擴充硬體和軟體實作(例如,用於將被視為交易的一序列之電源指令)。表示電源狀態轉變為交易可能帶來更有序、語義準確的方式來建模、指定、並驗證電源管理轉變。
第3圖繪示根據本揭露之實施例的積體電路300(例如,SoC)。在此實例中,(例如,所有)處理器核心(例如,包括電源管理控制器)包括支援硬體記憶體交易(例如,交易記憶體),且因此可能允許交易電源管理。積體電路的組件可能具有跨所有組件(例如,所有處理器核心,包括電源管理單元(PUNIT)340和電源管理控制器(PMC)342)之(例如,記憶體和電源)交易的(例如,全域)同步視圖。例如,系統(例如,SoC)可能包括記憶體交易單元(例如,引擎)及/或電源交易單元(例如,引擎)。資料結構(例如,布隆過濾器)可能不被利用。編譯器可能包括支援交易以允許電源狀態轉變。可能利用在編譯器中支援記憶體交易以允許交易電源管理。裝置驅動程式可能註釋它們用於電源管理交易的代碼。這個框架可以有助於OS和其它組件跨多核心SoC更 可攜和可擴充而例如不必提供鎖住、同步等的點解決方案。匯流排316可能被用於通訊。針對第2和3圖,對於北複合體和南複合體之各者所列出的組件和裝置僅僅是實例。
在一實施例中,系統(例如,具有多個核心)可能藉由具有例如跨所有處理器核心(和記憶體)保證用於此碼序列之ACID語義的硬體來支援用於標記為交易之碼序列的硬體交易記憶體。這一般可能稱為跨所有核心之交易的全域同步視圖,例如,使得當一個核心正在執行為標記之交易的碼流(例如,執行緒)時,若此碼正存取一些(例如,在記憶體中)資料,則有內建硬體支援以確保此交易語義被維護用於例如跨所有核心的此碼段(和記憶體)。在所述系統的一實施例中,例如,當那些命令被核心及/或電源管理單元執行(例如,具有記憶體存取的控制器)時,(例如,所有)主機驅動程式可能在處理器(例如,IA)核心(例如,通常存取和使用用於操作的主記憶體)上運行以及保證試圖進行交易電源管理(例如,針對標記為交易的電源管理命令(碼))之主機驅動程式的任何組合以維持交易語義。
支援記憶體交易的系統之某些實施例可能用以支援電源交易,例如,其中電源管理命令被讀取及/或寫入至記憶體(例如,暫存器)中。例如,ISA的電源管理指令可能具有其欄位以指示這是交易。
本揭露的某些實施例包括用於支援下列一或 多者的硬體及/或軟體(例如,運行時間):處理器核心,以及像PUNIT、PMC、和例如在行動裝置中的無線電埠控制器單元(RPCU)之(例如,微)控制器,其將特定電源管理命令(例如,序列)實作為交易(例如,序列)。軟體電源交易可能提供用於封裝電源管理命令為交易的抽象,例如,這可能藉由編譯器中的電源編譯指示(pragma)來完成以允許軟體註解軟體(例如,OS及/或驅動程式)碼中的電源管理序列。編譯器轉譯可能轉換軟體提供的電源提示(例如,第5圖中的「原子」)成特定於對硬體交易記憶體的基礎架構支援的交易記憶體指令序列。上述可能也被擴展以具有(例如,微)控制器支援硬體交易記憶體,以及,例如,用於電源管理的單獨核心或處理器。在處理器中的硬體(電源)交易支援可能提供裝置和平台及/或SoC之電源狀態的統一視圖。此框架可能允許OS和其它組件跨多核心裝置(例如,SoC)更可攜和可擴充而例如不必提供鎖住、同步等的點解決方案。例如,在第5圖中所示的實例中,執行緒T1和T2可能藉由封裝圍繞原子塊之執行緒來執行存取共享電源資源601中的共享電源狀態暫存器。當交易執行完成並被提交時,其他交易可能可見其影響。否則交易可能被中止,且其他交易可能不可見其任何影響。
本文中某些實施例包括指示(例如,標記)碼段,其係用以存取共享物件為例如用以原子地執行之交易。
第4圖繪示根據本揭露之實施例之用於無電源交易之系統的電源管理碼400。第4圖繪示無電源交易,系統可能延遲第二電源轉變直到第一電源轉變已完成為止。在針對無電源交易之電源狀態轉變的一實施例中,核心或裝置驅動程式可能發出電源管理命令(例如,電源狀態轉變請求)至單一裝置或多個裝置,例如,基於針對此的平台支援。然而,多個鎖住及/或同步原語可能被用以協調此跨OS、裝置驅動程式、韌體、及硬體之複雜狀態機,導致錯誤(例如,程式錯誤(bug))、競爭條件、死鎖/飢餓、非可攜碼、及特定平台解決方案。此外,在沒有電源交易下進行電源狀態轉變的時間可能係當例如由於在沒有電源交易下之暫停和恢復的高延遲下使用電源交易時花費之時間量的10倍以上。
第5圖繪示根據本揭露之實施例之用於具有電源交易之系統的電源管理碼500。描繪之碼包括例如根據原子性、一致性、隔離、和耐久性(ACID)交易特性之一或更多者來宣告(例如,藉由「原子」)電源管理命令(例如,兩個執行緒T1和T2)係用以被視為交易。在一實施例中,計算系統(例如,編譯器)將把那些執行緒視為可能同時執行的交易,例如,除非有衝突反則皆提交。
第6圖繪示根據本揭露之實施例之具有用於T1和T2之原子電源交易和沒有用於T1和T2之原子電源交易的時序圖600。第6圖繪示針對原子電源交易,兩個 執行緒皆可能同時執行,例如以時間t1和t2分別執行(且若沒有因其存取用於共享電源資源601的電源控制暫存器造成的衝突則被提交),對比電源管理命令(例如,非原子T1和T2),其由於它們不是交易而序列地完成(例如,至少t1+t2)。在一實施例中,每個電源管理命令(例如,執行緒)在單獨核心上執行。在一實施例中,核心可能被用作電源管理單元。
第7圖繪示根據本揭露之實施例之流程圖700。描繪之流程圖700包括提供包括硬體處理器之硬體設備的複數個電源域,用以回應於用於每個電源域的電源管理命令而轉變至複數個電源狀態之其一者702、分配第一電源管理命令作為第一電源交易和第二電源管理命令作為第二電源交易用於同時執行704、當在第一電源交易和第二電源交易之間沒有衝突時進行第一電源交易和第二電源交易之提交706、並當在第一電源交易和第二電源交易之間有衝突時進行第一電源交易的中止和第二電源交易的提交708。
第8圖繪示根據本揭露之實施例之流程圖800。描繪的流程包括示範電源交易,例如,一路從軟體(例如,OS)到韌體至硬體。在一實施例中,圖800的流程圖可能參考第1、2、及/或3圖中的電路。PMIC可能指電源管理積體電路。
在一實施例中,硬體設備包括具有核心的硬體處理器、複數個電源域,用以回應於用於每個電源域的 電源管理命令而轉變至複數個電源狀態之其一者、及電源交易單元,用以:分配第一電源管理命令作為第一電源交易和第二電源管理命令作為第二電源交易用於同時執行、當在第一電源交易和第二電源交易之間沒有衝突時進行第一電源交易和第二電源交易之提交、及當在第一電源交易和第二電源交易之間有衝突時進行第一電源交易的中止和第二電源交易的提交。第一電源交易和第二電源交易可能各包括多個指令。硬體設備可能更包括複數個電源狀態暫存器,用以接收用於每個域的電源管理命令。衝突可能係第一電源交易用以寫入至已寫入第二電源交易的電源狀態暫存器。電源交易單元可能不發送鎖住。衝突可能係第一電源交易和第二電源交易用以寫入用於共享電源域的衝突電源管理命令。當有衝突時,在第二電源交易之提交之後,回應於第二電源交易之執行之電源域的轉變只對其他交易而言是可見的。硬體設備可能更包括記憶體交易單元,用以在於硬體處理器之核心上的第一執行緒和第二核心上的第二執行緒之同時執行之後進行第一執行緒和第二執行緒的提交,除非第一執行緒和第二執行緒係用以修改相同記憶體位址。
在另一實施例中,方法包括提供包括硬體處理器之硬體設備的複數個電源域,用以回應於用於每個電源域的電源管理命令而轉變至複數個電源狀態之其一者、分配第一電源管理命令作為第一電源交易和第二電源管理命令作為第二電源交易用於同時執行、當在第一電源交易 和第二電源交易之間沒有衝突時進行第一電源交易和第二電源交易之提交、及當在第一電源交易和第二電源交易之間有衝突時進行第一電源交易的中止和第二電源交易的提交。第一電源交易和第二電源交易可能各包括多個指令。方法可能更包括在電源狀態暫存器接收用於每個域的電源管理命令。衝突可能係第一電源交易寫入至已寫入第二電源交易的電源狀態暫存器。方法可能更包括不發送鎖住。衝突可能係第一電源交易和第二電源交易寫入用於共享電源域的衝突電源管理命令。當有衝突時,在執行第二電源交易之提交之後,回應於第二電源交易之執行之電源域的轉變只對其他交易而言是可見的。方法可能更包括在於硬體處理器上的第一執行緒和第二執行緒之同時執行之後進行第一執行緒和第二執行緒的提交,除非第一執行緒和第二執行緒係用以修改相同記憶體位址。
在又一實施例中,一種非暫態機器可讀儲存媒體,具有儲存的程式碼,當其被機器處理時使方法被進行,方法包括提供包括硬體處理器之硬體設備的複數個電源域,用以回應於用於每個電源域的電源管理命令而轉變至複數個電源狀態之其一者、分配第一電源管理命令作為第一電源交易和第二電源管理命令作為第二電源交易用於同時執行、當在第一電源交易和第二電源交易之間沒有衝突時進行第一電源交易和第二電源交易之提交、及當在第一電源交易和第二電源交易之間有衝突時進行第一電源交易的中止和第二電源交易的提交。第一電源交易和第二電 源交易可能各包括多個指令。方法可能更包括在電源狀態暫存器接收用於每個域的電源管理命令。衝突可能係第一電源交易寫入至已寫入第二電源交易的電源狀態暫存器。方法可能更包括不發送鎖住。衝突可能係第一電源交易和第二電源交易寫入用於共享電源域的衝突電源管理命令。當有衝突時,在執行第二電源交易之提交之後,回應於第二電源交易之執行之電源域的轉變只對其他交易而言是可見的。方法可能更包括在於硬體處理器上的第一執行緒和第二執行緒之同時執行之後進行第一執行緒和第二執行緒的提交,除非第一執行緒和第二執行緒係用以修改相同記憶體位址。
在另一實施例中,硬體設備包括具有核心的硬體處理器、複數個電源域,用以回應於用於每個電源域的電源管理命令而轉變至複數個電源狀態之其一者、及機構用以:分配第一電源管理命令作為第一電源交易和第二電源管理命令作為第二電源交易用於同時執行、當在第一電源交易和第二電源交易之間沒有衝突時進行第一電源交易和第二電源交易之提交、及當在第一電源交易和第二電源交易之間有衝突時進行第一電源交易的中止和第二電源交易的提交。
在又一實施例中,設備包含資料儲存裝置,其儲存當被硬體處理器執行時使硬體處理器進行本文所揭露之任何方法的碼。設備可能如詳細說明中所述。方法可能如詳細說明中所述。
指令集可能包括一或更多指令格式。除此之外,給定的指令格式可能還定義各種欄位(例如,位元數、位元位址)以指定要被進行的運算(例如,運算碼)和要被進行此運算的運算元及/或其他資料欄位(例如,遮罩)。雖然定義指令模板(或子格式),但一些指令格式進一步失效。例如,給定指令格式的指令模板可能被定義具有指令格式之欄位的不同子集(包括的欄位通常以相同順序,但至少一些具有不同位元位置,因為有包括較少量欄位)及/或被定義具有不同解譯的給定欄位。因此,ISA的每個指令使用給定指令格式來表達(且若定義,則在此指令格式之給定其中一個指令模板)且包括用於指明運算及運算元的欄位。例如,示範ADD指令具有特定運算碼及包括運算碼欄位的指令格式以指定此運算碼及運算元欄位選擇運算元(來源1/目的地及來源2);及指令串中的此ADD指令之發生將在選擇特定運算元之運算元欄位中具有特定內容。稱為先進向量擴充(AVX)(AVX1和AVX2)並使用向量擴充(VEX)編碼架構的一組SIMD擴充已被釋出及/或出版(例如,參見2015年4月之Intel®64和IA-32架構軟體開發人員手冊;及參見2014年10月之Intel®架構指令集擴充編程參考)。
示範核心架構、處理器、及電腦架構
處理器核心可能以不同方式、針對不同目的、及在不同處理器中實作。例如,上述核心之實作可能 包括:1)預期用於通用計算的通用有序核心;2)預期用於通用計算的高效能通用亂序核心;3)預期主要用於圖形及/或科學(生產量)計算的專用核心。不同處理器的實作可能包括:1)CPU,包括打算用於通用計算的一或多個通用有序核心及/或打算用於通用計算的一或多個通用亂序核心;及2)協處理器,包括預期主要用於圖形及/或科學(生產量)的一或多個專用核心。上述不同處理器導致不同電腦系統架構,其可能包括:1)在不同於CPU所在之單獨晶片上的協處理器;2)在與CPU相同封裝中之單獨晶粒上的協處理器;3)在與CPU相同晶粒上的協處理器(在這情況中,這類協處理器有時候被稱為專用邏輯,如整合圖形及/或科學(生產量)邏輯,或稱為專用核心);及4)晶片上的系統,其可能在相同的晶粒上包括所述CPU(有時候稱為應用核心或應用處理器)、上述協處理器、及額外功能。接下來說明示範核心架構,之後說明示範處理器和電腦架構。
示範核心架構 有序和亂序核心方塊圖
第9A圖係繪示根據本揭露之實施例之示範有序管線與示範暫存器更名、亂序發出/執行管線兩者的方塊圖。第9B圖係繪示根據本揭露之實施例之將包括在處理器中的有序架構核心之示範實施例與示範暫存器更名、亂序發出/執行架構核心兩者的方塊圖。第9A-B圖中的實 線框繪示有序管線和有序核心,而非必要附加的虛線框繪示暫存器更名、亂序發出/執行管線和核心。假定有序態樣係亂序態樣之子集,故將說明亂序態樣。
在第9A圖中,處理器管線900包括提取級902、長度解碼級904、解碼級906、分配級908、更名級910、排程(也稱為調度或發出)級912、暫存器讀取/記憶體讀取級914、執行級916、寫回/記憶體寫入級918、例外處理級922、及提交級924。
第9B圖顯示處理器核心990,包括前端單元930,其耦接至執行引擎單元950,且這兩者都耦接至記憶體單元970。核心990可能是精簡指令集計算(RISC)核心、複雜指令集計算(CISC)核心、極長指令字(VLIW)核心、或混合或替代核心類型。作為另一種選擇,核心990可能是專用核心,例如,網路或通訊核心、壓縮引擎、協處理器核心、通用計算圖形處理單元(GPGPU)核心、圖形核心、或之類。
前端單元930包括分支預測單元932,其耦接至指令快取單元934,其係耦接至指令轉譯旁視緩衝器(TLB)936,其係耦接至指令提取單元938,其係耦接至解碼單元940。解碼單元940(或解碼器或解碼器單元)可能解碼指令(例如,巨集指令),並產生作為輸出的一或多個微操作、微碼進入點、微指令、其他指令、或其他控制信號,其係從原始指令解碼、或以其他方式反映原始指令、或從原始指令取得。解碼單元940可能使用各種不 同機制來實作。適當機制之實例包括但不限於查找表、硬體實作、可編程邏輯陣列(PLA)、微碼唯讀記憶體(ROM)、等等。在一實施例中,核心990包括微碼ROM或儲存用於某些巨集指令之微碼的其他媒體(例如,在解碼單元940中或以其他方式在前端單元930內)。解碼單元940係耦接至執行引擎單元950中的更名/分配器單元952。
執行引擎單元950包括更名/分配器單元952,其耦接至引退單元954及一組一或多個排程器單元956。排程器單元956代表任何數量的不同排程器,包括保留站、中央指令視窗、等等。排程器單元956係耦接至實體暫存器檔案單元958。每個實體暫存器檔案單元958代表一或多個實體暫存器檔案,其之不同者儲存一或多個不同的資料類型,如純量整數、純量浮點數、緊縮整數、緊縮浮點數、向量整數、向量浮點數、狀態(例如,指令指標,其係將被執行之下一個指令的位址)、等等。在一實施例中,實體暫存器檔案單元958包含向量暫存器單元、寫入遮罩暫存器單元、及純量暫存器單元。這些暫存器單元可能提供架構向量暫存器、向量遮罩暫存器、及通用暫存器。由引退單元954重疊實體暫存器檔案單元958以繪示可能實作暫存器更名和亂序執行的各種方式(例如,使用重排序緩衝器和引退暫存器檔案;使用未來檔案、歷史緩衝器、和引退暫存器檔案;使用暫存器映射及暫存器池;等等)。引退單元954和實體暫存器檔案單元 958係耦接至執行叢集960。執行叢集960包括一組一或多個執行單元962和一組一或多個記憶體存取單元964。執行單元962可能對各種類型的資料(例如,純量浮點數、緊縮整數、緊縮浮點數、向量整數、向量浮點數)進行各種運算(例如,移位、加法、減法、乘法)。儘管一些實施例可能包括一些專用於特定功能或功能組的執行單元,但其他實施例可能包括只有一個執行單元或全部進行所有功能的多個執行單元。排程器單元956、實體暫存器檔案單元958、和執行叢集960被顯示為可能是複數的,因為某些實施例對某些類型的資料/操作建立獨立管線(例如,純量整數管線、純量浮點數/緊縮整數/緊縮浮點數/向量整數/向量浮點數管線、及/或各具有其自己之排程器單元、實體暫存器檔案單元、及/或執行叢集的記憶體存取管線-且在獨立的記憶體存取管線之情況下,實作了某些實施例是只有此管線的執行叢集具有記憶體存取單元964)。也應了解在使用獨立管線之處,一或多個這些管線可能是亂序發出/執行且其餘的是有序的。
這組記憶體存取單元964係耦接至記憶體單元970,其包括耦接至資料快取單元974的資料TLB單元972,資料快取單元974耦接至第2級(L2)快取單元976。在一示範實施例中,記憶體存取單元964可能包括載入單元、儲存位址單元、及儲存資料單元,各耦接至記憶體單元970中的資料TLB單元972。指令快取單元934更耦接至記憶體單元970中的第2級(L2)快取單元 976。L2快取單元976係耦接至一或多個其他級的快取且最終耦接至主記憶體。
舉例而言,示範暫存器更名、亂序發出/執行核心架構可能如下實作管線900:1)指令提取938進行提取和長度解碼級902和904;2)解碼單元940進行解碼級906;3)更名/分配器單元952進行分配級908和更名級910;4)排程器單元956進行排程級912;5)實體暫存器檔案單元958和記憶體單元970進行暫存器讀取/記憶體讀取級914;執行叢集960進行執行級916;6)記憶體單元970和實體暫存器檔案單元958進行寫回/記憶體寫入級918;7)各種單元可能包含在例外處理級922中;及8)引退單元954和實體暫存器檔案單元958進行提交級924。
核心990可能支援包括本文所述之指令的一或多個指令集(例如,x86指令集(具有已加入較新版本的一些擴充);美國加州Sunnyvale的MIPS技術之MIPS指令集;美國加州Sunnyvale的ARM股份公司之ARM指令集(具有如NEON的可選額外的擴充))。在一實施例中,核心990包括用以支援緊縮資料指令集擴充(例如,AVX1、AVX2)的邏輯,藉此允許許多由多媒體應用所使用之操作能使用緊縮資料來進行。
應了解核心可能支援多執行緒(執行兩個或更多平行組的操作或執行緒),且可能以各種方式來實行,包括時間切割多執行緒、同步多執行緒(其中單一實 體核心提供邏輯核心給每個執行緒,該實體核心係同步多執行緒)、或以上之組合(例如,時間切割提取和解碼及之後如Intel®超執行緒技術中的同步多執行緒)。
儘管在亂序執行之內文中說明了暫存器更名,但應了解可能在有序架構中使用暫存器更名。儘管處理器之所示實施例也包括分開的指令和資料快取單元934/974及共享L2快取單元976,但替代實施例可能具有用於指令和資料兩者的單一內部快取,例如,諸如第1級(L1)內部快取、或多級的內部快取。在一些實施例中,系統可能包括內部快取與在核心及/或處理器外部的外部快取之組合。另外,所有快取可能在核心及/或處理器外部。
具體示範有序核心架構
第10A-B圖繪示更具體之示範有序核心架構的方塊圖,其核心會是在晶片中的數個邏輯方塊之其一者(包括相同類型及/或不同類型的其他核心)。邏輯方塊依據應用透過高頻寬互連網路(例如,環形網路)來與一些固定功能邏輯、記憶體I/O介面、及其他必要I/O邏輯通訊。
第10A圖係根據本揭露之實施例之單一處理器核心,以及其與晶粒上互連網路1002的連接及其第2級(L2)快取的區域子集1004之方塊圖。在一實施例中,指令解碼器1000支援具有緊縮資料指令級擴充的 x86指令集。L1快取1006允許將快取記憶體低延遲地存取至純量和向量單元中。儘管在一實施例中(為了簡化設計),純量單元1008和向量單元1010使用單獨的暫存器組(分別是純量暫存器1012和向量暫存器1014),且傳輸於它們之間的資料被寫入至記憶體並接著從第1級(L1)快取1006讀回,但本揭露之替代實施例可能使用不同的方法(例如,使用單一暫存器組或包括允許資料在沒被寫入和讀回的情況下傳輸於兩個暫存器檔案之間的通訊路徑)。
L2快取的區域子集1004為部分的全域L2快取,其被分成單獨的區域子集,每個處理器核心一個。每個處理器核心具有直接存取路徑連接至其自身的L2快取之區域子集1004。由處理器核心所讀取的資料係儲存在其L2快取子集1004中並能與存取其自身區域L2快取子集之其他處理器核心並行地被快速存取。由處理器核心所寫入的資料係儲存在自身的L2快取子集1004中,且若有需要的話則從其他子集中清除。環形網路確保共享資料的一致性。環形網路係雙向的以使得如處理器核心、L2快取和其他邏輯方塊的代理器能在晶片內彼此通訊。每個環形資料路徑在每個方向上為1012位元寬。
第10B圖係根據本揭露之實施例之第10A圖中的處理器核心之部分之分解圖。第10B圖包括L1快取1004之L1資料快取1006A部分,及更多關於向量單元1010和向量暫存器1014的細節。具體來說,向量單元 1010為16位元寬的向量處理單元(VPU)(參見16位元寬的ALU 1028),其執行整數、單精度浮點數、及雙精度浮點數指令之一或更多者。VPU以攪和單元1020來支援攪和暫存器輸入、利用數字轉換單元1022A-B來支援數字轉換、及利用複製單元1024來支援對記憶體輸入之複製。寫入遮罩暫存器1026允許預測產生之向量寫入。
第11圖係根據本揭露之實施例之可能具有超過一個核心,可能具有整合記憶體控制器,且可能具有整合圖形之處理器1100的方塊圖。第11圖中的實線框繪示具有單一核心1102A、系統代理器1110,一組一或多個匯流排控制器單元1116的處理器1100,而非必要添加的虛線框繪示具有多個核心1102A-N、在系統代理器單元1110中的一組一或多個整合記憶體控制器單元1114、及專用邏輯1108的替代處理器1100。
因此,處理器1100之不同實作可能包括:1)具有為整合圖形及/或科學(產量)邏輯(其可能包括一或多個核心)之專用邏輯1108、及為一或多個通用核心(例如,通用有序核心、通用亂序核心、這兩者之組合)之核心1102A-N的CPU;2)具有為預期主要用於圖形及/或科學(產量)之大量專用核心之核心1102A-N的協處理器;及3)具有為大量通用有序核心之核心1102A-N的協處理器。於是,處理器1100可能是通用處理器、協處理器或專用處理器,例如,諸如網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU(通用圖形處理單元)、 高產量多重整合核心(MIC)協處理器(包括30個或更多核心)、嵌入式處理器或之類。處理器可能在一或多個晶片上實作。處理器1100可能是一或多個基板的一部分及/或可能使用如BiCMOS、CMOS、或NMOS的一些處理技術之任一者來實作在一或多個基板上。
記憶體階層包括核心內之一或多級的快取、一組或一或多個共享快取單元1106、及耦接至這組整合記憶體控制器單元1114的外部記憶體(未示出)。這組共享快取單元1106可能包括如第2級(L2)、第3級(L3)、第4級(L4)、或其他級之快取的一或多個中級快取、最後一級的快取(LLC)、及/或以上之組合。儘管在一實施例中,環形為基的互連單元1112互連整合圖形邏輯1108、該組共享快取單元1106、及系統代理器單元1110/整合記憶體控制器單元1114,但替代實施例可能使用任何數量之熟知的技術來互連上述單元。在一實施例中,在一或多個快取單元1106與核心1102A-N之間保持一致性。
在一些實施例中,一或多個核心1102A-N能夠執行多執行緒。系統代理器1110包括那些協調和操作核心1102A-N的元件。例如,系統代理器單元1110可能包括例如電力控制單元(PCU)及顯示單元。PCU可能是或包括用於調節核心1102A-N及整合圖形邏輯1108之電力狀態所需的邏輯和元件。顯示單元係用於驅動一或多個外部連接的顯示器。
就架構指令集而言,核心1102A-N可能是同型或不同型的;亦即,核心1102A-N之兩個或更多者也許能夠執行相同的指令集,而其他者也許僅能夠執行此指令集的子集或不同的指令集。
示範電腦架構
第12-15圖係示範電腦架構的方塊圖。用於膝上型電腦、桌上型電腦、手持PC、個人數位助理、工程工作站、伺服器、網路裝置、網路集線器、交換器、嵌入式處理器、數位信號處理器(DSP)、圖形裝置、視頻遊戲裝置、機上盒、微控制器、手機、可攜式媒體播放器、手持裝置、及各種其他電子裝置之本領域中所知的其他系統設計和配置也是適當的。一般而言,能夠合併處理器及/或如本文所揭露之其他執行邏輯之種類繁多的系統或電子裝置通常都是適當的。
現在參考第12圖,顯示依照本揭露之一實施例之系統1200的方塊圖。系統1200可能包括一或多個處理器1210、1215,其係耦接至控制器中心1220。在一實施例中,控制器中心1220包括圖形記憶體控制器中心(GMCH)1290和輸入/輸出中心(IOH)1250(其可能在獨立晶片上);GMCH 1290包括耦接記憶體1240和協處理器1245的記憶體和圖形控制器;IOH 1250將輸入/輸出(I/O)裝置1260耦接至GMCH 1290。另外,記憶體和圖形控制器之一或兩者係整合在(如本文所述之)處 理器內,記憶體1240和協處理器1245係直接耦接至處理器1210、及在具有IOH 1250之單晶片中的控制器中心1220。記憶體1240可能包括(例如,記憶體及/或電源)交易模組1240A,例如用以儲存當被執行時使處理器進行本揭露之任何方法的碼。
在第12圖中以虛線來表示額外處理器1215的非必要性。每個處理器1210、1215可能包括一或多個本文所述之處理核心且可能是一些型式的處理器1100。
記憶體1240可能是例如動態隨機存取記憶體(DRAM)、相變記憶體(PCM)、或這兩者之組合。針對至少一實施例,控制器中心1220經由如前端匯流排(FSB)之多點匯流排、如快速路徑互連(QPI)的點對點介面、或類似連線1295來與處理器1210、1215通訊。
在一實施例中,協處理器1245係專用處理器,例如,高產量MIC處理器、網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU、嵌入式處理器、或之類。在一實施例中,控制器中心1220可能包括整合圖形加速器。
就規制標準而言,在實體資源1210、1215之間會有多種差異,包括架構、微型架構、熱、功率消耗特性、等等。
在一實施例中,處理器1210執行控制一般類型之資料處理操作的指令。嵌入於指令內的可能是協處理器指令。處理器1210辨識這些協處理器指令為應由附接 協處理器1245執行的類型。藉此,處理器1210在協處理器匯流排或其他互連上對協處理器1245發出這些協處理器指令(或代表協處理器指令的控制信號)。協處理器1245接受和執行接收之協處理器指令。
現在參考第13圖,顯示依照本揭露之實施例之第一更具體示範系統1300的方塊圖。如第13圖所示,多處理器系統1300是點對點互連系統,且包括經由點對點互連1350耦接的第一處理器1370和第二處理器1380。處理器1370和1380之各者可能是一些型式的處理器1100。在本揭露之一實施例中,處理器1370和1380分別是處理器1210和1215,而協處理器1338是協處理器1245。在另一實施例中,處理器1370和1380分別是處理器1210和協處理器1245。
顯示處理器1370和1380分別包括整合記憶體控制器(IMC)單元1372和1382。處理器1370也包括作為其匯流排控制器單元點對點(P-P)介面1376和1378的部分;同樣地,第二處理器1380包括P-P介面1386和1388。處理器1370、1380可能使用P-P介面電路1378、1388經由點對點(P-P)介面1350來交換資訊。如第13圖所示,IMC 1372和1382將處理器耦接至各別記憶體(即記憶體1332和記憶體1334),其可能是區域附接於各別處理器之主記憶體的部分。
處理器1370、1380可能各使用點對點介面電路1376、1394、1386、1398經由個別P-P介面1352、 1354來與晶片組1390交換資訊。晶片組1390可能可選地經由高效能介面1339來與協處理器1338交換資訊。在一實施例中,協處理器1338係專用處理器,例如,高產量MIC處理器、網路或通訊處理器、壓縮引擎、圖形處理器、GPGPU、嵌入式處理器、或之類。
共享快取(未示出)可能包括在任一處理器中或在兩處理器之外,但仍經由P-P互連而與處理器連接,使得若將處理器置於低功率模式中,則任一或兩處理器的區域快取資訊可能儲存於共享快取中。
晶片組1390可能經由介面1396來耦接至第一匯流排1316。在一實施例中,第一匯流排1316可能是周邊元件互連(PCI)匯流排、或如PCI快捷匯流排或另一第三代I/O互連匯流排的匯流排,雖然本揭露之範圍並不以此為限。
如第13圖所示,各種I/O裝置1314可能與匯流排橋接器1318一起耦接至第一匯流排1316,其中匯流排橋接器1318將第一匯流排1316耦接至第二匯流排1320。在一實施例中,一或多個額外的處理器1315(諸如協處理器、高產量MIC處理器、GPGPU的加速器(例如,圖形加速器或數位信號處理(DSP)單元)、現場可程式閘陣列、或任何其他處理器)係耦接至第一匯流排1316。在一實施例中,第二匯流排1320可能是低接腳數(LPC)匯流排。在一實施例中,各種裝置可能耦接至第二匯流排1320,包括例如鍵盤及/或滑鼠1322、通訊裝置 1327及如磁碟機或可能包括指令/碼和資料1330之其他大容量儲存裝置的儲存單元1328。此外,音頻I/O 1324可能耦接至第二匯流排1320。請注意其他架構係可能的。例如,系統可能實作多點匯流排或其他這類架構,來取代第13圖之點對點架構。
現在參考第14圖,顯示依照本揭露之實施例之第二更具體示範系統1400的方塊圖。第13和14圖中的相同元件具有類似參考數字,且已從第14圖省略第13圖之某些態樣以避免模糊第14圖之其他態樣。
第14圖繪示處理器1370、1380可能分別包括整合記憶體和I/O控制邏輯(「CL」)1372和1382。因此,CL 1372、1382包括整合記憶體控制器單元且包括I/O控制邏輯。第14圖不只繪示記憶體1332、1334耦接至CL 1372、1382,而且還繪示I/O裝置1414也耦接至控制邏輯1372、1382。傳統I/O裝置1415係耦接至晶片組1390。
現在參考第15圖,顯示依照本揭露之實施例之SoC 1500的方塊圖。第11圖中的相似元件具有相同參考數字。而且,虛線框在更進階的SoC上是非必要的特徵。在第15圖中,互連單元1502係耦接至:包括一組一或多個核心1102A-N及共享快取單元1106的應用處理器1510;系統代理器單元1110;匯流排控制器單元1116;整合記憶體控制器單元1114;可能包括整合圖形邏輯、影像處理器、音頻處理器、和視頻處理器的一組或一或多 個協處理器1520;靜態隨機存取記憶體(SRAM)單元1530;直接記憶體存取(DMA)單元1532、及用於耦接一或多個外部顯示器的顯示單元1540。在一實施例中,協處理器1520包括專用處理器,例如,諸如網路或通訊處理器、壓縮引擎、GPGPU、高產量MIC處理器、嵌入式處理器、或之類。
本文所揭露之(例如,機制的)實施例可能在硬體、軟體、韌體、或上述實作方法之組合中實作。本揭露之實施例可能被實作成執行在包含至少一處理器、儲存系統(包括揮發性和非揮發性記憶體及/或儲存元件)、至少一輸入裝置、及至少一輸出裝置的可程式系統上的電腦程式或程式碼。
可能施用程式碼(如第13圖所示之碼1330)來輸入指令以進行本文所述之功能並產生輸出資訊。可能以已知的方式來對一或多個輸出裝置施用輸出資訊。為了此應用之目的,處理系統包括任何具有處理器(例如,數位信號處理器(DSP)、微控制器、專用積體電路(ASIC)、或微處理器)之系統。
程式碼可能以高階程序或物件導向編程語言來實作以與處理系統通訊。若需要的話,程式碼也可能以組合或機器語言來實作。事實上,本文所述之機制在範圍上並不受限於任何特定編程語言。在任何情況下,語言可能是經編譯或轉譯語言。
至少一實施例之一或多個態樣可能藉由儲存 在機器可讀媒體上的代表指令來實作,其表現在處理器內的各種邏輯,當指令被機器讀取時使機器製造邏輯來進行本文所述之技術。這樣的表現,稱為「IP核心」,可能儲存在有形的機器可讀媒體上並供應給各種顧客或製造廠來下載至實際產生邏輯或處理器的製造機器中。
這類機器可讀媒體可能包括,但不限於由機器或裝置製造或形成之物件的非暫態有形佈置,包括如硬碟、任何型態之磁碟(包括軟碟、光碟、唯讀光碟機(CD-ROM)、可覆寫光碟(CD-RW)、及磁光碟機)、如唯讀記憶體(ROM)的半導體裝置、如動態隨機存取記憶體(DRAM)、靜態隨機存取記憶體(SRAM)的隨機存取記憶體(RAM)、可抹除可程式化唯讀記憶體(EPROM)、快閃記憶體、電子可抹除可程式化唯讀記憶體(EEPROM)、相變記憶體(PCM)、磁或光學卡、或適用於儲存電子指令之任何其他型態之媒體的儲存媒體。
因此,本揭露之實施例也包括非暫態、有形的機器可讀媒體,其包含指令或包含設計資料,如硬體描述語言(HDL),其定義本文所述之結構、電路、設備、處理器及/或系統特徵。上述實施例也可能係指程式產品。
模擬(包括二進制轉譯、碼模仿、等等)
在一些情況中,可能使用指令轉換器來將指 令從來源指令集轉換成目標指令集。例如,指令轉換器可能轉譯(例如,使用靜態二進制轉譯、包括動態編譯的動態二進制轉譯)、模仿、模擬、或以其他方式將指令轉換成一或多個由核心處理的其他指令。指令轉換器可能在軟體、硬體、韌體、或以上之組合中實作。指令轉換器可能在處理器上、在處理器之外、或部分在處理器上且部分在處理器外。
第16圖係根據本揭露之實施例之對照使用軟體指令轉換器來將來源指令集中的二進制指令轉換成目標指令集中的二進制指令之方塊圖。雖然指令轉換器可能另外在軟體、韌體、硬體、或以上之各種組合中實作,但在所述之實施例中,指令轉換器係軟體指令轉換器。第16圖顯示高階語言1602的程式可能使用x86編譯器1604來編譯以產生x86二進制碼1606,其本身可能被具有至少一x86指令集核心1616的處理器執行。具有至少一x86指令集核心1616的處理器代表任何能進行實質上與具有至少一x86指令集核心的Intel處理器相同之功能的處理器,藉由相容地執行或以其他方式處理(1)Intel x86指令集核心之指令集的實質部分或(2)目標碼型式的應用程式或其他針對在具有至少一x86指令集核心的Intel處理器上執行的軟體,以達到實質上與具有至少一x86指令集核心的Intel處理器有相同的結果。x86編譯器1604代表可操作以產生x86二進制碼1606(例如,目標碼)的編譯器,其能連同或無須額外的連鎖處理地在具有至少一 x86指令集核心1616的處理器上執行。同樣地,第16圖顯示高階語言1602的程式可能使用替代指令集編譯器1608來編譯以產生原本就可能被不具有至少一x86指令集核心1614的處理器(例如,具有執行美國加州Sunnyvale的MIPS技術之MIPS指令集及/或執行美國加州Sunnyvale的ARM股份公司之ARM指令集之核心的處理器)執行的替代指令集二進制碼1610。指令轉換器1612係用於將x86二進制碼1606轉換成本身可能被不具有x86指令集核心1614之處理器執行的碼。由於能夠轉換此的指令轉換器難以製造,因此經轉換碼不太可能與替代指令集二進制碼1610相同;然而,經轉換碼將完成一般操作且由來自替代指令集的指令組成。因此,指令轉換器1612代表軟體、韌體、硬體、或以上之組合,其透過模仿、模擬或任何其他程序,允許處理器或其他不具有x86指令集處理器或核心的電子裝置執行x86二進制碼1606。
100‧‧‧硬體設備
102‧‧‧硬體處理器
102A‧‧‧核心A
104A‧‧‧第一級指令快取
106A‧‧‧第一級資料快取
108A‧‧‧第2級快取
102B‧‧‧核心B
104B‧‧‧第一級指令快取
106B‧‧‧第一級資料快取
108B‧‧‧第2級快取
102C‧‧‧核心C
104C‧‧‧第一級指令快取
106C‧‧‧第一級資料快取
108C‧‧‧第2級快取
102D‧‧‧核心D
104D‧‧‧第一級指令快取
106D‧‧‧第一級資料快取
108D‧‧‧第2級快取
110‧‧‧共享第3級快取
112‧‧‧共享第3級快取
114‧‧‧共享第4級快取
116‧‧‧環形網路
120A‧‧‧(電源)交易單元
120B‧‧‧(電源)交易單元
120C‧‧‧(電源)交易單元
120D‧‧‧(電源)交易單元
120‧‧‧電源交易單元
122‧‧‧電源管理單元
124‧‧‧圖形單元
126‧‧‧顯示器
128‧‧‧儲存器
130‧‧‧UART
132‧‧‧LPSS
134‧‧‧USB

Claims (24)

  1. 一種硬體設備,包含:一硬體處理器,具有一核心;複數個電源域,用以回應於用於每個電源域的一電源管理命令而轉變至複數個電源狀態之其一者;及一電源交易單元,用以:分配一第一電源管理命令作為一第一電源交易和一第二電源管理命令作為一第二電源交易用於同時執行,當在該第一電源交易和該第二電源交易之間沒有衝突時進行該第一電源交易和該第二電源交易之提交,及當在該第一電源交易和該第二電源交易之間有衝突時進行該第一電源交易的中止和該第二電源交易的提交。
  2. 如申請專利範圍第1項所述之硬體設備,其中該第一電源交易和該第二電源交易各包括多個指令。
  3. 如申請專利範圍第1項所述之硬體設備,更包含複數個電源狀態暫存器,用以接收用於每個域的該電源管理命令。
  4. 如申請專利範圍第3項所述之硬體設備,其中該衝突係該第一電源交易用以寫入至已寫入該第二電源交易的一電源狀態暫存器。
  5. 如申請專利範圍第1項所述之硬體設備,其中該電源交易單元係用以不發送一鎖住。
  6. 如申請專利範圍第1項所述之硬體設備,其中該衝突係該第一電源交易和該第二電源交易用以寫入用於一 共享電源域的衝突電源管理命令。
  7. 如申請專利範圍第1項所述之硬體設備,其中當有該衝突時,在該第二電源交易之該提交之後,回應於該第二電源交易之執行之一電源域的轉變只對其他交易而言是可見的。
  8. 如申請專利範圍第1項所述之硬體設備,更包含一記憶體交易單元,用以在於該硬體處理器之該核心上的一第一執行緒和一第二核心上的一第二執行緒之同時執行之後進行該第一執行緒和該第二執行緒的提交,除非該第一執行緒和該第二執行緒係用以修改一相同記憶體位址。
  9. 一種方法,包含:提供包括一硬體處理器之一硬體設備的複數個電源域,用以回應於用於每個電源域的一電源管理命令而轉變至複數個電源狀態之其一者;分配一第一電源管理命令作為一第一電源交易和一第二電源管理命令作為一第二電源交易用於同時執行;當在該第一電源交易和該第二電源交易之間沒有衝突時進行該第一電源交易和該第二電源交易之提交;及當在該第一電源交易和該第二電源交易之間有衝突時進行該第一電源交易的中止和該第二電源交易的提交。
  10. 如申請專利範圍第9項所述之方法,其中該第一電源交易和該第二電源交易各包括多個指令。
  11. 如申請專利範圍第9項所述之方法,更包含在一電源狀態暫存器接收用於每個域的該電源管理命令。
  12. 如申請專利範圍第11項所述之方法,其中該衝突係該第一電源交易寫入至已寫入該第二電源交易的一電源狀態暫存器。
  13. 如申請專利範圍第9項所述之方法,其中不發送鎖住。
  14. 如申請專利範圍第9項所述之方法,其中該衝突係該第一電源交易和該第二電源交易寫入用於一共享電源域的衝突電源管理命令。
  15. 如申請專利範圍第9項所述之方法,其中當有該衝突時,在進行該第二電源交易之該提交之後,回應於該第二電源交易之執行之一電源域的轉變只對其他交易而言是可見的。
  16. 如申請專利範圍第9項所述之方法,更包含在於該硬體處理器上的一第一執行緒和一第二執行緒之同時執行之後進行該第一執行緒和該第二執行緒的提交,除非該第一執行緒和該第二執行緒係用以修改一相同記憶體位址。
  17. 一種非暫態機器可讀儲存媒體,具有儲存的程式碼,當其被一機器處理時使一方法被進行,該方法包含:提供包括一硬體處理器之一硬體設備的複數個電源域,用以回應於用於每個電源域的一電源管理命令而轉變至複數個電源狀態之其一者;分配一第一電源管理命令作為一第一電源交易和一第二電源管理命令作為一第二電源交易用於同時執行; 當在該第一電源交易和該第二電源交易之間沒有衝突時進行該第一電源交易和該第二電源交易之提交;及當在該第一電源交易和該第二電源交易之間有衝突時進行該第一電源交易的中止和該第二電源交易的提交。
  18. 如申請專利範圍第17項所述之非暫態機器可讀儲存媒體,其中該第一電源交易和該第二電源交易各包括多個指令。
  19. 如申請專利範圍第17項所述之非暫態機器可讀儲存媒體,其中該方法更包含在一電源狀態暫存器接收用於每個域的該電源管理命令。
  20. 如申請專利範圍第19項所述之非暫態機器可讀儲存媒體,其中該衝突係該第一電源交易寫入至已寫入該第二電源交易的一電源狀態暫存器。
  21. 如申請專利範圍第17項所述之非暫態機器可讀儲存媒體,其中該方法包括不發送鎖住。
  22. 如申請專利範圍第17項所述之非暫態機器可讀儲存媒體,其中該衝突係該第一電源交易和該第二電源交易寫入用於一共享電源域的衝突電源管理命令。
  23. 如申請專利範圍第17項所述之非暫態機器可讀儲存媒體,其中當有該衝突時,在進行該第二電源交易之該提交之後,回應於該第二電源交易之執行之一電源域的轉變只對其他交易而言是可見的。
  24. 如申請專利範圍第17項所述之非暫態機器可讀儲存媒體,其中該方法更包含在於該硬體處理器上的一第 一執行緒和一第二執行緒之同時執行之後進行該第一執行緒和該第二執行緒的提交,除非該第一執行緒和該第二執行緒係用以修改一相同記憶體位址。
TW105116129A 2015-06-27 2016-05-24 用以進行交易式電源管理的硬體設備及方法 TWI733672B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/752,896 2015-06-27
US14/752,896 US9733689B2 (en) 2015-06-27 2015-06-27 Hardware apparatuses and methods to perform transactional power management

Publications (2)

Publication Number Publication Date
TW201716923A true TW201716923A (zh) 2017-05-16
TWI733672B TWI733672B (zh) 2021-07-21

Family

ID=56080322

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105116129A TWI733672B (zh) 2015-06-27 2016-05-24 用以進行交易式電源管理的硬體設備及方法

Country Status (8)

Country Link
US (2) US9733689B2 (zh)
EP (1) EP3109728A1 (zh)
JP (1) JP6272942B2 (zh)
KR (1) KR101804677B1 (zh)
CN (1) CN106293894B (zh)
BR (1) BR102016012083A2 (zh)
DE (1) DE102016006399A1 (zh)
TW (1) TWI733672B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI812029B (zh) * 2021-07-16 2023-08-11 美商谷歌有限責任公司 用於電源狀態管理之電源序列器

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10216245B2 (en) * 2015-12-22 2019-02-26 Cray Inc. Application ramp rate control in large installations
US10133341B2 (en) * 2016-06-06 2018-11-20 Arm Limited Delegating component power control
EP3422192B1 (en) * 2017-06-28 2020-08-12 Arm Ltd Address translation data invalidation
US10642341B2 (en) * 2018-03-23 2020-05-05 Juniper Networks, Inc. Selective modification of power states based on conditions
US20190303777A1 (en) 2018-03-30 2019-10-03 Provino Technologies, Inc. Protocol level control for system on a chip (soc) agent reset and power management
KR20200135780A (ko) 2018-03-30 2020-12-03 프로비노 테크놀로지스, 아이엔씨. 인터커넥트와 연관된 가상 채널을 통한 트랜잭션의 부분들 중재하기

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3906015B2 (ja) * 2000-07-12 2007-04-18 株式会社東芝 クロック周波数切り替え機能を有するlsi、計算機システム及びクロック周波数切り替え方法
US7685365B2 (en) * 2004-09-30 2010-03-23 Intel Corporation Transactional memory execution utilizing virtual memory
US9785462B2 (en) 2008-12-30 2017-10-10 Intel Corporation Registering a user-handler in hardware for transactional memory event handling
US8423802B2 (en) * 2010-04-07 2013-04-16 Andes Technology Corporation Power scaling module and power scaling unit of an electronic system having a function unit in a standby state which is insensitive to change in frequency or voltage during synchronization
US8601288B2 (en) 2010-08-31 2013-12-03 Sonics, Inc. Intelligent power controller
JP5636276B2 (ja) * 2010-12-27 2014-12-03 ルネサスエレクトロニクス株式会社 半導体装置
US8868941B2 (en) 2011-09-19 2014-10-21 Sonics, Inc. Apparatus and methods for an interconnect power manager
JP5833434B2 (ja) * 2011-12-28 2015-12-16 ルネサスエレクトロニクス株式会社 半導体装置
CN102681937B (zh) * 2012-05-15 2016-05-18 浪潮电子信息产业股份有限公司 一种缓存一致性协议正确性验证方法
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
US9489307B2 (en) * 2012-10-24 2016-11-08 Texas Instruments Incorporated Multi domain bridge with auto snoop response
US8959576B2 (en) * 2013-03-14 2015-02-17 Intel Corporation Method, apparatus, system for qualifying CPU transactions with security attributes
US9928264B2 (en) * 2014-10-19 2018-03-27 Microsoft Technology Licensing, Llc High performance transactions in database management systems

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI812029B (zh) * 2021-07-16 2023-08-11 美商谷歌有限責任公司 用於電源狀態管理之電源序列器

Also Published As

Publication number Publication date
US10768680B2 (en) 2020-09-08
TWI733672B (zh) 2021-07-21
BR102016012083A2 (pt) 2017-12-12
CN106293894A (zh) 2017-01-04
EP3109728A1 (en) 2016-12-28
DE102016006399A1 (de) 2016-12-29
KR101804677B1 (ko) 2017-12-04
US9733689B2 (en) 2017-08-15
JP6272942B2 (ja) 2018-01-31
JP2017016639A (ja) 2017-01-19
CN106293894B (zh) 2020-05-19
US20160378160A1 (en) 2016-12-29
US20180059766A1 (en) 2018-03-01
KR20170001577A (ko) 2017-01-04

Similar Documents

Publication Publication Date Title
US11494194B2 (en) Processor having multiple cores, shared core extension logic, and shared core extension utilization instructions
TWI733672B (zh) 用以進行交易式電源管理的硬體設備及方法
CN108292221B (zh) 事务结束加上持续性提交指令、处理器、方法和系统
US9870209B2 (en) Instruction and logic for reducing data cache evictions in an out-of-order processor
CN106708753B (zh) 在使用共享虚拟存储器的处理器中加速操作的装置和方法
TWI770009B (zh) 原子式儲存至寬於原生支援資料寬度之記憶體資料的處理器、方法、系統與指令
US20160132336A1 (en) Method, apparatus, and system for speculative abort control mechanisms
TW201826122A (zh) 用於異質計算之系統,方法,及設備
JP2017532643A (ja) 永続ストアフェンスプロセッサ、方法、システム、及び命令
TWI738682B (zh) 用於載入索引和散佈元件的處理器、方法及系統
US9569212B2 (en) Instruction and logic for a memory ordering buffer
US20140379996A1 (en) Method, apparatus, and system for transactional speculation control instructions
CN108701101B (zh) 处理器系统管理中断事件的基于仲裁器的串行化
TW201800948A (zh) 提取資料至具保證完成指示快取階之處理器、方法、系統及指令
TWI630480B (zh) 用於分頁表走查位元交換之指令和邏輯
KR20170036036A (ko) 계산 처리를 위한 벡터 포맷용 명령어 및 로직
US20200310798A1 (en) Technology For Providing Memory Atomicity With Low Overhead
TWI724066B (zh) 分散縮減指令