TWI570548B - 包括執行指令集架構之不同部分之多個相異處理器核心之處理器 - Google Patents

包括執行指令集架構之不同部分之多個相異處理器核心之處理器 Download PDF

Info

Publication number
TWI570548B
TWI570548B TW104135132A TW104135132A TWI570548B TW I570548 B TWI570548 B TW I570548B TW 104135132 A TW104135132 A TW 104135132A TW 104135132 A TW104135132 A TW 104135132A TW I570548 B TWI570548 B TW I570548B
Authority
TW
Taiwan
Prior art keywords
processor
core
cores
feature
processor core
Prior art date
Application number
TW104135132A
Other languages
English (en)
Other versions
TW201631438A (zh
Inventor
大衛J 威廉森
蓋瑞爾德R 三世 威廉斯
詹姆士N 二世 哈德吉
理查F 魯索
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 TW201631438A publication Critical patent/TW201631438A/zh
Application granted granted Critical
Publication of TWI570548B publication Critical patent/TWI570548B/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/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/325Power saving in peripheral device
    • G06F1/3275Power saving in memory, e.g. RAM, cache
    • 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
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45579I/O management, e.g. providing access to device drivers or storage
    • 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
    • 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
    • Y02D30/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • 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)

Description

包括執行指令集架構之不同部分之多個相異處理器核心之處理器
本文所描述之實施例係關於處理器,且更特定而言係關於形成處理器之多個處理器核心。
各種處理器包括於電子系統中以執行提供一定量之使用者功能性之軟體。處理器可包括系統中之中央處理單元(CPU),以及專用於諸如圖形、媒體處理等之特定任務之專用處理器。一般而言,處理器經設計而以多個操作點(供應電壓量值及時脈頻率之設定)操作。相較於較高操作點,較低操作點消耗更少電力但亦提供有限效能。對於一些工作負載,有限效能為足夠的且可使用較低操作點。對於其他工作負載,需要較高操作點以提供足夠的效能。
在一些系統中,會經歷多種多樣之工作負載。設計如下處理器已變成一種挑戰,該處理器可提供最苛刻工作負載所需要之效能同時亦支援將為許多頻繁執行的工作負載提供足夠效能的最低可能操作點。在高操作點處操作之處理器可能僅支援在電路停止正確地運行之前將供應電壓降低至某一位準。必須制定折衷方案,且通常提高最低操作點直至設計可滿足所要高端操作點。隨著高端操作點繼續提高, 越來越多工作負載可在最低操作點處執行(且許多可在甚至更低的操作點處執行)。電力被此類工作負載不必要地消耗,此可為行動系統頻繁地基於諸如電池之有限能量來源操作之關鍵因素。
在一實施例中,一種積體電路可包括一或多個處理器。每一處理器可包括多個處理器核心,且每一核心具有不同設計/實施及效能位準。舉例而言,可以高效能實施一核心,但該核心可具有較高最低電壓,該核心可在此電壓下正確地操作。可以較低最大效能實施另一核心,但可最佳化其效率且可在較低最小電壓下正確地操作。另外,在一些實施例中,處理器所使用之指令集架構之一些特徵可實施於構成處理器之該等核心中之僅一者中(或可由該等核心中排除至少一個核心的子集來實施)。若此特徵在一不同核心處於作用中時由一程式碼序列調用,則該處理器可將核心交換成實施該特徵之核心中之一者。替代地,可採取例外且可執行例外處理常式以識別該特徵且啟動該對應核心。
在一些實施例中,將某些特徵限制於一個核心或至少限制於並非全部核心可藉由省略用以處理相同指令類型的該等核心中之重複電路來提供面積有效實施。將僅可能以高效能程式碼使用之特徵(例如)可僅實施於高效能核心中,此係由於彼核心最可能實施高效能程式碼。不大可能使用之特徵(例如,針對向後相容性所提供之特徵,但該等特徵並不藉由較新程式碼使用)可實施於一個核心中,且因此可自面積觀點有效地支援該等特徵。
處理器可支援多個處理器狀態(PState)。每一PState可指定一操作點(例如,供應電壓量值及時脈頻率之組合),且每一PState可映射至該等處理器核心中之一者。在操作期間,該等核心中之一者處於作用中:當前PState映射至該核心。若新的PState經選擇且經映射至不同 的核心,則處理器可自動將處理器狀態內容切換至新選擇之核心且可開始在彼核心上執行。在一實施例中,處理器可偵測新選擇之核心是否支援正由當前工作負載使用之特徵,且若不支援,則可採取校正動作。
10‧‧‧系統單晶片
12‧‧‧記憶體
14‧‧‧中央處理單元複合體/組件
16‧‧‧SOC電源管理器
18A‧‧‧周邊組件
18B‧‧‧周邊組件
22‧‧‧記憶體控制器
27‧‧‧通信網狀架構
30‧‧‧處理器叢集
32A‧‧‧處理器
32n‧‧‧處理器
34‧‧‧二階快取記憶體
36‧‧‧處理器電源管理器
38‧‧‧PState暫存器
40‧‧‧效能核心
42‧‧‧高效率核心
44‧‧‧電源開關
46‧‧‧電源開關
50‧‧‧決策區塊
52‧‧‧區塊
54‧‧‧決策區塊
56‧‧‧區塊
58‧‧‧決策區塊
60‧‧‧區塊
62‧‧‧區塊
64‧‧‧決策區塊
70‧‧‧區塊
72‧‧‧區塊
74‧‧‧決策區塊
76‧‧‧區塊
78‧‧‧決策區塊
80‧‧‧區塊
82‧‧‧區塊
90A‧‧‧內容狀態機
90B‧‧‧內容狀態機
92‧‧‧內容緩衝器
100‧‧‧決策區塊
102‧‧‧區塊
104‧‧‧決策區塊
106‧‧‧區塊
108‧‧‧區塊
150‧‧‧系統
154‧‧‧周邊裝置
156‧‧‧電源管理單元
200‧‧‧電腦可存取儲存媒體
202‧‧‧核心交換例外處理常式
以下詳細描述參考現簡短描述之隨附圖式。
圖1為處理器叢集之一項實施例的方塊圖。
圖2為繪示一項實施例的如圖1中所說明之PCore及ECore之效率與效能關係的曲線圖。
圖3為繪示處理器電源管理單元改變處理器狀態之一項實施例之操作的流程圖。
圖4為繪示處理器電源管理交換核心之一項實施例之操作的流程圖。
圖5為繪示在執行指令期間對作用中核心之一項實施例的操作的流程圖。
圖6為繪示在執行指令期間對作用中核心之另一實施例的操作的流程圖。
圖7為電腦可存取儲存媒體之方塊圖。
圖8為用於核心交換之內容切換硬體之一項實施例的方塊圖。
圖9為包括圖1中所展示之處理器叢集之一項實施例的系統單晶片(SOC)之一項實施例的方塊圖。
圖10為系統之一項實施例的方塊圖。
雖然本發明中所描述之實施例可容許各種修改及替代形式,但在圖式中藉助於實例來展示其特定實施例,且將在本文中詳細描述該等實施例。然而應理解,該等圖式及對其之詳細描述並非意欲將實施例限於所揭示之特定形式,而正相反,本發明意欲涵蓋屬於隨附申請 專利範圍之精神及範疇內的所有修改、等效物或替代物。本文中所使用之標題僅處於組織性目的,且不意欲用以限制該描述之範疇。如本申請案全篇中所使用,詞語「可」係以許可意義(亦即,意謂有可能)而非強制意義(亦即,意謂必須)加以使用。類似地,詞語「包括」意謂包括但不限於。
可將各種單元、電路或其他組件描述為「經組態以」執行一或多個任務。在此等情形下,「經組態以」係對結構之廣泛敍述,其大體上意謂「具有在操作期間執行該或該等任務之電路」。因而,單元/電路/組件可經組態以執行任務(即使該單元/電路/組件當前未接通亦如此)。一般而言,形成對應於「經組態以」之結構的電路可包括硬體電路及/或儲存可執行以實施該操作之程式指令的記憶體。該記憶體可包括揮發性記憶體(諸如,靜態或動態隨機存取記憶體),及/或非揮發性記憶體(諸如,光碟或磁碟儲存器、快閃記憶體、可程式化唯讀記憶體,等等)。類似地,為了描述之便利起見,各種單元/電路/組件可經描述為執行一或多個任務。此等描述應解釋為包括片語「經組態以」。敍述經組態以執行一或多個任務之單元/電路/組件明確地意欲不援引35 U.S.C.§ 112(f)對彼單元/電路/組件之解釋。
本說明書包括對「一項實施例」或「一實施例」之參考。片語「在一項實施例中」或「在一實施例中」之出現未必係指同一實施例,但除非本文中明確地否認,一般預期包括特徵之任何組合的實施例。可以與本發明一致之任何適合方式來組合特定特徵、結構或特性。
圖1為處理器叢集30之一項實施例的方塊圖。在所繪示之實施例中,包括多個處理器32A至32n及二階(L2)快取記憶體34。處理器32A至32n耦接至L2快取記憶體34,該L2快取記憶體經進一步耦接以與包 括叢集30之系統的其他元件通信。在所繪示之實施例中,L2快取記憶體34包括一處理器電源管理器36,其包括儲存用於處理器32A至32n之PState的PState暫存器38。在各種實施例中,每一處理器32A至32n可具有其自身的獨立PState,處理器32A至32n之群組可共用一PState,或叢集30可具有用於處理器32A至32n的共用PState。處理器32A在圖1中更詳細地展示為包括至少兩個處理器核心、一效能核心(PCore)40及一高效率核心(efficient core)(ECore)42。其它實施例可包括額外核心。經由各別電源開關44及46將每一核心40及42耦接至電力供應軌(VP)。因此,每一核心40及42可獨立地開啟電力或切斷電力。其他處理器(諸如處理器32n)可類似於處理器32A。
每一處理器32A至32n可為一實體,在系統中執行之軟體可指派程式碼至此實體以便執行。舉例而言,軟體可為作業系統(OS)的控制該系統中之硬體的一部分。軟體可為排程待執行之程式碼的執行緒或任務排程器。OS亦可基於正在執行的程式碼之效能需求指派PState至處理器32A至32n。OS可追蹤程式碼之特性以判定PState、可靜態地記錄每一執行緒/任務之資訊以選擇PState等等,或其任何組合。另外或替代地,PState可受系統中之其他條件(熱限制、可用電池電力等)影響。
PCore 40及ECore 42可為處理器32A至32n所使用之指令集架構(ISA)之不同設計、不同實施。以另一方式檢視,PCore 40及ECore 42可實施不同微架構。PCore 40可為嘗試藉由作為較不重視之設計目標之電力節約來最大化效能的積極設計。PCore 40中之電路可為積極的,如此可防止PCore 40可操作之最低供應電壓低至在一些PState中可能所要之電壓。另一方面,ECore 42可實施更保守設計,且因此可在比PCore 40低的最低電壓下正確地操作。ECore 42之效能在一給定操作點處可低於PCore 40,且對於ECore 42,電力節約可為更為高度 重視之目標。由ECore 42佔據之半導體面積亦可小於PCore 40之彼面積。
更特定而言,在一實施例中,ECore 42及/或PCore 40可實施處理器32A至32n所使用之ISA之子集,其中該ISA之一或多個特徵並不包括於子集中。在一實施例中,PCore 40可實施ISA之整體,且ECore 42可執行子集。在另一實施例中,PCore 40及ECore 42可各自實施不同的子集。該等子集可部分重疊(例如,諸如整數指令之常用指令可為每一子集的部分)。
各種實施例可選擇以多種方式自特定子集排除的特徵。對於ECore 42,可排除不頻繁使用而且實施代價大(例如,就所佔據之半導體基板面積、電力消耗等而言)的特徵。舉例而言,在一實施例中,ISA可定義給定運算元類型之多個運算元大小。在一實施例中,運算元類型可為整數,且大小可包括32位元及64位元。現代程式碼似乎趨向於64位元整數程式碼。另一方面,支援64位元及32位元整數運算元大小兩者之硬體可為消耗面積的且可壓迫時序,此可導致較高功率實施。因此,ECore 42可實施64位元整數硬體且可排除對32位元整數程式碼之支援。可類似地排除其他ISA特徵。舉例而言,ISA常常包括對運算元之向量執行單指令多資料(SIMD)處理的向量指令集。向量實施可為高功率及/或消耗面積的。最近之ISA引入為有助於迴路向量化之預測向量指令集。亦可自ECore 42省略此特徵。一般而言,ISA特徵可包括指令、指令集、運算元類型或大小、模式等。
每一可能的PState可為處理器32A至32n指定操作點。舉例而言,操作點可包括VP之供應電壓量值以及處理器32A至32n中之時脈的時脈頻率。其它實施例可以其他方式定義操作點,但一般而言,操作點可指示處理器之效能及電力消耗。在一實施例中,PState可為直接用作供應電壓量值及時脈頻率的一對值。在其他實施例中,PState可為 用以獲得供應電壓量值及時脈頻率的值(例如,至值之表格中之索引)。
如圖1中所說明,處理器32A包括PCore 40及ECore 42。由處理器32A支援之每一PState映射至核心40及42中之一者。每一核心40及42可具有映射至每一核心40及42之一個以上的PState。
當處理器32A至32n正在執行之程式碼改變及/或其他系統考慮因素保證PState之改變時,可更新(例如,藉由OS)PState暫存器38。若PState自映射至核心40及42中之一者(「作用中核心」)的當前PState改變成映射至核心40及42中之另一者(「目標核心」)的新PState,則叢集30可在硬體中自動將處理器32A之處理器內容自作用中核心傳送至目標核心。當PState改變時,目標核心可斷電。傳送內容之過程可包括:使目標核心通電,重設及初始化目標核心,傳送處理器內容,以及使作用中核心斷電(使得目標核心成為作用中核心)。可在目標核心(現為作用中核心)上繼續執行。因此,核心之間的切換對於軟體可為不可見的。實際上,軟體甚至可能未「察覺」在處理器32A至32n中存在多個核心。
雖然圖1中所繪示之實例在處理器32A中包括兩個核心,但其它實施例可包括兩個以上核心。一個核心可為在最低PState下操作之最高效率核心,且其他核心可針對沿效能/效率頻譜之其他點經最佳化直至又一核心為處理器中之多個核心中的最高效能核心為止。任何數目的核心可用於各種實施例中。
一般而言,處理器可為任何電路,其經組態以實施經定義指令集架構(ISA)。存在各種ISA且其且可用於各種實施例中,該等ISA諸如:x86架構(亦被稱為APX)、ARM架構、MIPS架構、PowerPC(現簡稱為Power)等。處理器可使用多種微架構技術,包括上文所描述的多核心方法。每一核心亦可實施各種微架構技術。一般而言,微架構可 指執行單元之組織及用來實施ISA之其他電路。實例可包括依序對無序執行、推測執行、分支預測、超純量(superscalar)、超管線(superpipelined)等。除各種其他技術之外,實施例亦可實施微寫碼技術。
處理器32A至32n及/或處理器複合體30可用作系統中之任何處理器。舉例而言,處理器可為中央處理單元(CPU),其執行OS以控制系統中之其他硬體及排程待執行之應用程式碼。CPU亦可執行應用程式碼等。處理器可為專用處理器,諸如針對圖形操縱最佳化之圖形處理單位(GPU)、針對信號處理最佳化之數位信號處理器(DSP)、在各種周邊組件中執行軟體執行之嵌入式處理器等。
在一實施例中,形成處理器32A至32n之核心40及42中之至多一者可在執行期間(除傳送處理器內容的時間外)通電。給定處理器32A至32n可完全斷電(全部核心電力切斷)。處理器電源管理器36可經組態以使用電源開關44及46控制處理器核心之接通/電力開啟及處理器核心之斷電/電力切斷。
在一些實施例中,核心40及/或42可實施資料快取記憶體,該資料快取記憶體可儲存經修改資料(亦即,例如回應於正在執行的處理器程式碼中之儲存,已寫入快取記憶體中但仍尚未寫入至記憶體以使得記憶體中之資料不再為正確資料的資料)。除傳送處理器內容之外,該經修改資料亦可自資料快取記憶體排清。特定言之,資料可經排清至L2快取記憶體34,但可保持儲存於L2快取記憶體34中,除非L2快取記憶體34之正常操作引起資料被收回。一旦新作用中核心正在執行,經修改資料可為L2快取記憶體34中之命中且可以相對低延遲移動至新作用中核心之快取記憶體中。
處理器電源管理器36可經組態以管理處理器叢集30內之PState變換。處理器電源管理器36可經組態以將供應電壓量值變換傳達至系統 層級電源管理器或直接傳達至對系統供應電壓之電源管理單元(PMU)。處理器電源管理器36可經組態以與時脈產生硬體(圖1中未展示)互動,該時脈產生硬體諸如鎖相迴路(PLL)或類似者。
處理器內容可大體上包括任何軟體可見之處理器狀態。該狀態通常可儲存於暫存器中,該狀態可作為定義於ISA中之各種指令之運算元存取。該狀態可包括架構暫存器,諸如各種類型之運算元暫存器(整數、浮點、向量等)。暫存器亦可包括處理器控制暫存器,諸如狀態暫存器、處理器模式暫存器等。暫存器亦可包括經定義以包括特定單元之特定內容的專用暫存器。暫存器可進一步包括模型特定暫存器,其存在可在架構上經指定,但其內容可因實施而不同。
L2快取記憶體34可具有任何容量及組態。L2快取記憶體34可包括處理器32A至32n中之快取記憶體,可排除該等快取記憶體,或不包括該等快取記憶體。
圖2為繪示核心40及42之一項實施例之效率與效能關係的曲線圖。虛線曲線對應於ECore 42,且實線對應於PCore 40。在豎軸上用曲線圖表示效率,且在橫軸上用曲線圖表示效能。效率可以多種方式(例如,效能/瓦特)量測。效能可使用諸如Specint、SpecFlt、Dhrystone等之各種基準程式來量測。沿圖2中之曲線繪示處理器32A之各種PState。對應於較高效能之PState在PCore曲線上,因為PCore之效能經最佳化,其中對應於較低效能/較高能量節約之PState在ECore曲線上,該ECore在較低效能位準下更高效而在較高效能位準下較低效。
因此,在圖2之實例中,PState 1、2及3映射至ECore 42,且PState 4、5、6及7映射至PCore 40。可支援任何數目的PState,且任何數目可映射至各種核心。在另一實施例中,可支援持續PState設定。在此實施例中,圖2中該等曲線相交之點上的暫停可經定義為可 發生核心切換之處。
圖3為繪示處理器電源管理器36回應於寫入至PState暫存器38之新的PState之操作之一項實施例的流程圖。雖然為易於理解起見以特定次序展示區塊,但可使用其他次序。可在處理器電源管理器36中以組合邏輯並行地執行區塊。可經由多個時脈循環使區塊、區塊之組合、及/或流程作為整體經管線化。處理器電力狀態管理器36可經組態以實施圖3中展示之操作。
作用中核心可為當前正執行程式碼之核心40/42。在一些實施例中,作用中核心可為在當前PState下在穩定狀態操作期間通電之唯一核心。若新的PState未映射至作用中核心(決策區塊50,「否」支路),則處理器電力狀態管理器36可考慮關於工作負載及目標核心之任何資訊以判定目標核心是否支援該工作負載(決策區塊64)。舉例而言,某一程式碼當儲存於諸如快閃記憶體之非揮發性記憶體中時可包括描述符,且該等描述符可指示程式碼使用了哪些ISA特徵。處理器電力狀態管理器36可自該等描述符判定程式碼所使用的特徵。替代地,處理器32A至32n可追蹤並非全部核心實施之ISA特徵。所追蹤之狀態可用於判定目標核心是否支援當前正在使用中的特徵。
若正在執行的程式碼使用未實施於目標核心上之特徵(決策區塊64,「否」支路),則處理器電力狀態管理器36可不執行狀態改變。在一實施例中,處理器電力狀態管理器36可在暫存器或其他軟體可讀位置中記錄狀態改變的缺乏以使得軟體可判定未發生狀態改變。當未執行狀態改變時,亦可使用其他指示(例如,中斷或其他傳信機制)。在一些實施例中,可能未執行阻止狀態改變的嘗試,且可省略決策區塊64。實情為,當在目標核心上執行程式碼時可偵測到不受支援之特徵。若正在執行的程式碼僅使用實施於目標核心上之特徵(決策區塊64,「是」支路),則處理器電力狀態管理器36可執行至新PState所映 射至之核心的「核心交換」(區塊52)。
若新PState映射至作用中核心(決策區塊50,「是」支路),則作用中核心可保持作用中,且執行可在PState改變時繼續。若新PState為自當前PState之提高(決策區塊54,「是」支路),則可首先提高供應電壓量值以支援提高的頻率。因此,處理器電力狀態管理器36可請求電壓升高(區塊56)且等待完成電壓升高(決策區塊58,「是」支路)。處理器電力狀態管理器36可藉由等待指定時段來判定電壓升高完成,或可接收指示電壓升高何時完成之通信。在一實施例中,處理器電力狀態管理器36可將電壓升高請求傳輸至另一電源管理器(例如,在一項實施例中,圖9中所展示之SOC層級電源管理器)或可將電壓請求直接傳輸至供應電壓之PMU。一旦完成電壓升高,處理器電源管理器36即可提高時脈之頻率(區塊60)。另一方面,若新PState為自當前PState的降低,則當前供應電壓可支援新的(較低)頻率。因此(決策區塊54,「否」支路),處理器電源管理器36可更新時脈頻率且請求新的供應電壓而無需等待完成電壓改變(區塊62)。
圖4為繪示處理器電源管理器36執行核心交換(來自圖3之區塊52)之操作之一項實施例的流程圖。雖然為易於理解起見以特定次序展示區塊,但可使用其他次序。可在處理器電源管理器36中以組合邏輯並行地執行區塊。可經由多個時脈循環使區塊、區塊之組合及/或流程圖作為整體經管線化。處理器電力狀態管理器36可經組態以實施圖4中展示之操作。
處理器電源管理器36可將作用中核心變換至「安全」PState(區塊70)。安全PState可為一狀態,作用中核心及目標核心兩者在該狀態下正確地操作。在此情形下,目標核心可為新PState映射所至之核心。在存在兩個以上核心的實施例中,安全PState可取決於哪些核心為作用中核心及目標核心而不同。安全PState不必為PState暫存器36 中可選擇的PState。亦即,供應電壓與頻率之組合可不為映射至核心的所支援組合中之一者。舉例而言,考慮到安全PState中之供應電壓量值,PCore可能能夠在較高頻率下執行。然而,在給定供應電壓量值之情況下,ECore可能不能夠在較高頻率下執行。因此,安全PState可能包括當前供應電壓量值但不包括較低時脈頻率。替代地,目標核心可不支援當前供應電壓,且安全PState可包括不同供應電壓量值及時脈頻率。至安全PState之變換可類似於圖3中之區塊54、56、58、60及62。
在一些實施例中,可在硬體電路中實施圖3及圖4之操作。在其他實施例中,可在儲存於電腦可存取儲存媒體上且由處理器32A至32n執行之硬體與軟體之組合中或完全在軟體中實施操作。
處理器電源管理器36可使目標核心電力開啟(區塊72)。舉例而言,在圖1之實施例中,處理器電源管理器36可閉合至目標核心之電源開關,從而允許電力流至目標核心。可在電力已穩定後重設目標核心。在一些實施例中,目標核心可在完成重設後初始化。一旦完成重設(及初始化,若適用)(決策區塊74,「是」支路),處理器電源管理器36即可起始處理器內容自作用中核心至目標核心的傳送(區塊76)。在一實施例中,核心可包括經組態以傳輸/接收處理器內容之電路。在另一實施例中,電路可在處理器電源管理器36中。如先前所提及,核心亦可經組態以在內容傳送期間排清快取記憶體。一旦完成內容傳送(決策區塊78,「是」支路),處理器電源管理器可使(先前)作用中核心電力切斷,且目標核心可變成作用中核心(區塊80)。可(例如)藉由斷開至先前作用中核心之電源開關來實現電力切斷。處理器電源管理器36可將作用中核心變換至新PState(區塊82)。至新PState之變換可類似於圖3中之區塊54、56、58、60及62。
圖5為繪示給定處理器32A至32n(且更特定言之,作用中核心 40/42)在程式碼執行期間之操作之一項實施例的流程圖。雖然為易於理解起見以特定次序展示區塊,但可使用其他次序。可在處理器32A至32n內以組合邏輯並行地執行區塊。區塊、區塊之組合及/或流程整體可經由多個時脈循環經管線化。
程式碼中之每一指令可為ISA特徵及/或可利用一或多個ISA特徵。若用於給定指令之ISA特徵由作用中核心實施(決策區塊100,「是」支路),則可正常處理指令(區塊102)。另一方面,若至少一個特徵不由作用中核心實施(決策區塊100,「否」支路),但另一核心實施該特徵(決策區塊104,「是」支路),則可執行至實施該等特徵之核心的核心交換(區塊52)。若無核心實施特徵(決策區塊100及104,「否」支路),則可採取「未經實施」例外,以使得軟體可處理錯誤(區塊106)。
一般而言,可針對每一指令(當其經由處理器管線經處理時)執行圖5(及下文所論述之圖6)中所繪示之操作。可在不同狀態下偵測各種特徵。因此,圖5及圖6之流程圖可由處理器32A至32n針對正在執行之程式碼序列中之每一指令並行地實施。
圖6為給定處理器32A至32n(且更特定言之,作用中核心40/42)在程式碼執行期間之操作的另一實施例。類似於圖5之實施例,圖6之實施例可判定作用中核心是否實施程式碼所使用之ISA特徵(決策區塊100),若是則正常處理程式碼(區塊102),判定另一核心是否實施該特徵(決策區塊104),且若未實施於任何核心上,則採取未經實施例外(區塊106)。然而,在此實施例中,若另一核心實施該等特徵(決策區塊104),則可採取核心交換例外(區塊108)。核心交換例外可不同於未經實施例外及由核心40/42實施之其他例外。核心交換例外可引起處理器執行核心交換例外處理常式,該核心交換例外處理常式可執行先前所提及之核心交換52。類似地,在一些實施例中,在執行核心交換 52之其他時間可使用核心交換例外處理常式。
圖7為電腦可存取儲存媒體200之一項實施例的方塊圖。一般而言,電腦可存取儲存媒體可包括在使用期間可由電腦存取以將指令及/或資料提供至電腦的任何儲存媒體。舉例而言,電腦可存取儲存媒體可包括諸如磁性媒體或光學媒體之儲存媒體,例如,磁碟(固定式或可抽取式)、磁帶、CD-ROM、DVD-ROM、CD-R、CD-RW、DVD-R、DVD-RW,或Blu-Ray。儲存媒體可進一步包括揮發性或非揮發性記憶體媒體,諸如RAM(例如,同步動態RAM(SDRAM)、Rambus DRAM(RDRAM)、靜態RAM(SRAM)等)、ROM或快閃記憶體。儲存媒體可實體上包括於儲存媒體提供指令/資料所至的電腦內。替代地,儲存媒體可連接至電腦。舉例而言,儲存媒體可經由網路或無線連結(諸如網路附接儲存器)連接至電腦。儲存媒體可經由周邊介面(諸如通用串列匯流排(USB))連接。一般而言,電腦可存取儲存媒體200可以非暫時性方式儲存資料,其中在此情形下非暫時性可指不基於信號傳輸指令/資料。舉例而言,非暫時性儲存器可為揮發性(且可回應於電力切斷而丟失所儲存之指令/資料)或非揮發性。
圖7中之電腦可存取儲存媒體200可儲存形成核心交換例外處理常式202之程式碼。核心交換例外處理常式202可包括指令,該等指令在由處理器32A至32n執行時實施用於核心交換例外處理常式之上文所描述之操作(舉例而言,圖6中之區塊108及圖4之區塊)。一載體媒體可包括電腦可存取儲存媒體以及諸如有線或無線傳輸之傳輸媒體。
圖8為更詳細的處理器32A之一項實施例的方塊圖。在所繪示之實施例中,展示PCore 40及ECore 42,包括內容狀態機90之個例(亦即,圖8中之內容狀態機90A及90B)。核心40及42中之狀態機90之實施可不同,但其可以類似方式按邏輯操作。一般而言,作用中核心中之狀態機90可引起暫存器狀態由作用中核心輸出至內容緩衝器92,狀 態機90耦接至該內容緩衝器。該狀態下之暫存器之次序可為固定的,以使得接收狀態機可簡單地讀取資料且將其寫入至正確的暫存器。在另一實施中,次序可為任意的,且每一暫存器可經指派有一識別符,該識別符可與暫存器內容一起寫入至內容緩衝器92且由接收狀態機用以將正確暫存器寫入接收核心內。
可用以下多種方式實施狀態機:固定功能電路(例如,有限狀態機)、由處理器執行之微碼、在處理器電源管理器36中(例如,將命令傳輸至核心以傳送各種暫存器)等。另外,作用中處理器中之狀態機90可將該(該等)資料快取記憶體排清至L2快取記憶體34,如上文所提及。
內容緩衝器92可為先進先出緩衝器(FIFO)以自一個核心至另一核心俘獲內容狀態。內容緩衝器92可提供彈性、處理時脈域交叉等。在一實施例中,內容緩衝器92可為處理器電源管理器36之部分且因此在圖8中以虛線展示。在另一實施例中,亦可在處理器電源管理器36中實施狀態機90。在此等實施例中,處理器電源管理器36可存取核心40及42中之暫存器狀態,或可引起執行指令以便執行暫存器讀取/寫入,從而執行暫存器狀態之傳輸。
圖9為耦接至記憶體12之SOC 10之一項實施例的方塊圖。如由名稱所暗示,SOC 10之組件可經整合至單一半導體基板上而作為積體電路「晶片」。在一些實施例中,可在系統中之兩個或兩個以上離散晶片上實施該等組件。然而,SOC 10將在本文中用作一實例。在所繪示之實施例中,SOC 10之組件包括中央處理單元(CPU)複合體14(其可由圖1中所展示之處理器叢集30實施)、周邊組件18A至18B(更簡要地,「周邊裝置」18)、記憶體控制器22、SOC電源管理器(PMGR)16及通信網狀架構27。組件14、16、18A至18B及22可全部耦接至通信網狀架構27。記憶體控制器22可在使用期間耦接至記憶體 12。
記憶體控制器22可一般包括用於自SOC 10之其他組件接收記憶體操作及用於存取記憶體12以完成記憶體操作的電路。記憶體控制器22可經組態以存取任何類型之記憶體12。舉例而言,記憶體12可為靜態隨機存取記憶體(SRAM)、動態RAM(DRAM)(諸如,同步DRAM(SDRAM),包括雙資料速率(DDR、DDR2、DDR3、DDR4等)DRAM)。可支援DDR DRAM之低功率/行動版本(例如,LPDDR、mDDR等)。記憶體控制器22可包括用於記憶體操作、用於為操作排序(及潛在地,重新排序)及向記憶體12呈現操作之佇列。記憶體控制器22可進一步包括資料緩衝器以儲存等待寫入至記憶體的寫入資料及等待返回至記憶體操作之來源的讀取資料。在一些實施例中,記憶體控制器22可包括快取記憶體以儲存最近存取之記憶體資料。舉例而言,在SOC實施中,快取記憶體可藉由避免自記憶體12重新存取資料(若預期不久將再次進行存取)來降低SOC中之電力消耗。在一些情況下,快取記憶體亦可被稱作系統快取記憶體,與僅服務某些組件的處理器中之私用快取記憶體(諸如該或該等L2快取記憶體)相對。另外,在一些實施例中,系統快取記憶體不需要位於記憶體控制器22內。
周邊裝置18A至18B可為包括於SOC 10中之額外硬體功能性之任一集合。舉例而言,周邊裝置18A至18B可包括視訊周邊裝置,諸如,經組態以處理來自攝影機或其他影像感測器之影像俘獲資料之影像信號處理器、經組態以在一或多個顯示器件上顯示視訊資料之顯示控制器、圖形處理單元(GPU)、視訊編碼器/解碼器、定標器、旋轉器、調合器等。周邊裝置可包括音訊周邊裝置,諸如,麥克風、揚聲器、至麥克風及揚聲器之介面、音訊處理器、數位信號處理器、混音器等。周邊裝置可包括用於在SOC 10外部之各種介面(包括諸如通用串列匯流排(USB)、包括PCI Express(PCIe)之周邊組件互連(PCI)、串 聯及並聯埠等之介面)的介面控制器(例如,周邊裝置18B)。周邊裝置可包括諸如媒體存取控制器(MAC)之網路連接周邊裝置。可包括任何硬體集合。
通信網狀架構27可為用於在SOC 10之組件間通信的任何通信互連件及協定。通信網狀架構27可基於匯流排,包括共用匯流排組態、縱橫式組態及具有橋接器之階層式匯流排。通信網狀架構27亦可基於封包,且可為具有橋接器之階層式、為縱橫式、為點對點式或其他互連件。
SOC PMGR 16可經組態以控制自系統中之PMU請求之供應電壓量值。可存在用於SOC 10之由PMU產生的多個供應電壓。舉例而言,可產生VP電壓以用於CPU複合體14中之處理器32A至32n,且可產生VSOC電壓以用於SOC 10中之其他組件。在一實施例中,VSOC可服務記憶體控制器22、周邊裝置18、SOC PMGR 16及SOC 10之其他組件,且可基於功率域使用電力閘控。在一些實施例中,可存在用於SOC 10之其餘部分之多個供應電壓。在一些實施例中,亦可存在用於CPU複合體14及/或SOC 10中之各種記憶體陣列的記憶體供應電壓。記憶體供應電壓可與供應至邏輯電路之電壓(例如,VP或VSOC)一起使用,該記憶體供應電壓可具有比所需電壓量值低之電壓量值以保證穩固記憶體操作。SOC PMGR 16可在直接軟體控制下(例如,軟體可直接請求組件之電力開啟及/或電力切斷)及/或可經組態以監視SOC 10及判定何時應使各種組件電力開啟或電力切斷。對於CPU複合體14,可將對VP之電壓請求提供至SOC PMGR 16,其可將請求傳達至PMU以實現供應電壓量值之改變。
一般而言,組件可被稱作通電或斷電。若組件正接收供應電壓以使得其可根據設計操作,則組件可能通電。若組件斷電,則其並非正接收供應電壓且不在操作中。組件亦可在通電時被稱作電力開啟, 且在組件斷電時被稱作電力切斷。使組件電力開啟可指將供應電壓供應至斷電之組件,且使組件電力切斷可指終止將供應電壓供應至組件。類似地,任何子組件及/或SOC 10作為整體可被稱作電力開啟/電力切斷等。組件可為電路之預定義區塊,該預定義區塊提供SOC 10內之指定功能且其具有至SOC 10之其餘部分的特定介面。因此,周邊裝置18A至18B、CPU複合體14、記憶體控制器22及SOC PMGR 16可各自為組件之實例。
應注意,SOC 10之組件之數目(及用於圖1中所展示之彼等組件之子組件之數目,諸如在CPU複合體14內)可因實施例而異。可存在比圖1中展示之數目多或少的每一組件/子組件。
接下來轉至圖10,展示系統150之一項實施例之方塊圖。在所繪示之實施例中,系統150包括耦接至一或多個周邊裝置154及外部記憶體12的SOC 10之至少一個個例。提供PMU 156,其將供應電壓供應至SOC 10以及將一或多個供應電壓供應至記憶體12及/或周邊裝置154。在一些實施例中,可包括SOC 10之一個以上個例(且亦可包括一個以上記憶體12)。
PMU 156一般可包括用以產生供應電壓且將彼等供應電壓提供至系統之其他組件(諸如,SOC 10、記憶體12、各種晶片外周邊組件154(諸如,顯示器件、影像感測器、使用者介面器件等等))之電路。因此,PMU 156可包括可程式化電壓調節器、介接至SOC 10(且更特定言之,SOC PMGR 16)以接收電壓請求的邏輯等。
周邊裝置154可視系統150之類型包括任何所要電路。舉例而言,在一項實施例中,系統150可為行動器件(例如,個人數位助理(PDA)、智慧型電話等),且周邊裝置154可包括用於各種類型之無線通信(諸如,wifi、藍芽、蜂巢式、全球定位系統等)之器件。周邊裝置154亦可包括額外儲存器,包括RAM儲存器、固態儲存器,或磁碟 儲存器。周邊裝置154可包括使用者介面器件,諸如顯示螢幕(包括觸控式顯示螢幕或多點觸控式顯示螢幕)、鍵盤或其他輸入器件、麥克風、揚聲器等。在其他實施例中,系統150可為任何類型之計算系統(例如,桌上型個人電腦、膝上型電腦、工作站、桌上型易網機(net top)等)。
外部記憶體12可包括任何類型之記憶體。舉例而言,外部記憶體12可為SRAM、動態RAM(DRAM)(諸如,同步DRAM(SDRAM)、雙資料速率(DDR、DDR2、DDR3等)SDRAM、RAMBUS DRAM、DDR DRAM之低功率版本(例如,LPDDR、mDDR等)等)。外部記憶體12可包括記憶體器件安裝至之一或多個記憶體模組,諸如,單列記憶體模組(SIMM)、雙列記憶體模組(DIMM)等。替代地,外部記憶體12可包括按疊層晶片或疊層封裝實施安裝於SOC 10上之一或多個記憶體器件。
對於熟習此項技術者而言,一旦完全瞭解上述揭示內容,眾多變化及修改將變得顯而易見。意欲將以下申請專利範圍解釋為涵蓋所有此等變化及修改。
52‧‧‧區塊
100‧‧‧決策區塊
102‧‧‧區塊
104‧‧‧決策區塊
106‧‧‧區塊

Claims (19)

  1. 一種處理器裝置,其包含:複數個處理器核心,其中:該複數個處理器核心實施由該處理器裝置使用之一指令集架構之至少一部分;該指令集架構之至少一第一特徵並不實施於該複數個處理器核心中之一第一處理器核心中;該第一特徵實施於該複數個處理器核心中之一第二處理器核心中;且在一給定時間點,該複數個處理器核心中之至多一者處於作用中,除在該複數個處理器核心之兩者間的一內容切換期間外;及一處理器電源管理器,其耦接至該複數個處理器核心,其中該處理器電源管理器可以複數個處理器狀態程式化,其中該複數個處理器狀態中之每一者映射至該複數個處理器核心中之一者,及其中該處理器電源管理器經組態以:偵測正在該第一處理器核心中執行之程式碼使用該指令集架構之該第一特徵;回應於偵測到該程式碼使用該第一特徵而啟動該第二處理器核心及撤銷啟動該第一處理器核心;引起一處理器內容自該第二處理器核心至該第一處理器核心之一傳送,一所請求之處理器狀態回應於該處理器裝置正自一當前處理器狀態經程式化為該所請求之處理器狀態而映射至該第一處理器核心;且以回應於正由該裝置執行之該程式碼使用該第一特徵而阻 止該傳送且繼續使用作用中之第二處理器核心。
  2. 如請求項1之處理器裝置,其中:該第一處理器核心經組態以偵測該第一特徵在該程式碼之執行期間之該使用且回應於偵測到該使用而以信號傳送一例外;且該例外向該處理器電源管理器指向該程式碼使用該第一特徵。
  3. 如請求項2之處理器裝置,其中該處理器電源管理器經組態以回應於該例外而引起該處理器內容自該第一處理器核心至該第二處理器核心之該傳送。
  4. 如請求項3之處理器裝置,其中該處理器電源管理器包含一非暫時性電腦可存取儲存媒體,其儲存可由該處理器裝置執行之複數個指令。
  5. 如請求項2之處理器裝置,其中:該第一處理器核心經組態以偵測該指令集架構之一第二特徵並不由該複數個核心中之任一核心實施;且該第一處理器核心經組態以回應於偵測到該第二特徵之使用而以信號傳送一不同例外。
  6. 如請求項1之處理器裝置,其中該處理器電源管理器經組態以:使該第二處理器核心通電;及回應於將該處理器內容傳送至該第二處理器核心而使該第一處理器核心電力切斷。
  7. 如請求項1之處理器裝置,其中該第一特徵包含一向量指令集。
  8. 如請求項1之處理器裝置,其中該第一特徵包含一預測向量指令集。
  9. 如請求項1之處理器裝置,其中該指令集架構指定用於一第一運算元類型之複數個運算元大小,且該第一特徵包含該複數個運 算元大小中之一第一運算元大小。
  10. 如請求項9之處理器裝置,其中該複數個運算元大小之一最大運算元大小為由該第一處理器核心實施之一唯一運算元大小。
  11. 一種使用一指令集架構之處理器裝置,該處理器裝置包含:複數個處理器核心,其中:該複數個處理器核心中之一第一處理器核心實施該指令集架構之一子集;該複數個處理器核心中之一第二處理器核心實施該指令集架構之一整體;且在一給定時間點,該複數個處理器核心中之至多一者處於作用中,除在該複數個處理器核心之兩者間的一內容切換期間外;及一處理器電源管理器,其耦接至該複數個處理器核心,其中:該處理器電源管理器經組態以回應於包括在該子集外之一特徵的程式碼而啟動該第二處理器核心且撤銷啟動該第一處理器核心;該處理器電源管理器可以複數個處理器狀態程式化,其中該複數個處理器狀態中之每一者映射至該複數個處理器核心中之一者;該處理器電源管理器經組態以引起一處理器內容自該第二處理器核心至該第一處理器核心之一傳送,一所請求之處理器狀態回應於該處理器裝置正自一當前處理器狀態經程式化為該所請求之處理器狀態而映射至該第一處理器核心;且該處理器電源管理器經組態以回應於正由該裝置執行之該程式碼使用該第一特徵而阻止該傳送且繼續使用作用中之第二處 理器核心。
  12. 如請求項11之處理器裝置,其中該第一處理器核心經組態以在該程式碼之執行期間偵測該特徵且向該處理器電源管理器指示該偵測。
  13. 如請求項12之處理器裝置,其中該指示為一例外。
  14. 如請求項11之處理器裝置,其中該處理器電源管理器經組態以引起自該第一處理器至該第二處理器核心之該處理器內容之該傳送,以啟動該第二處理器核心且撤銷啟動該第一處理器核心。
  15. 如請求項14之處理器裝置,其中該處理器電源管理器經組態以在該處理器內容之該傳送之前引起該第二處理器核心之一通電;且回應於完成該處理器內容之該傳送而引起該第一處理器核心之一斷電。
  16. 一種方法,其包含:判定經寫碼至一指令集架構之第一程式碼包括不在形成一處理器的複數個處理器核心中之一第一處理器核心上實施的一特徵,其中該特徵實施於該複數個核心中之一第二處理器核心上;回應於該判定而將一處理器內容自該第一處理器核心傳送至該第二處理器核心;在該第二處理器核心上執行該第一程式碼;回應於一第一操作點而操作該第二處理器核心;偵測至該第一處理器之一第二操作點之一改變,其中該第二操作點經映射至該第一處理器核心;及回應於判定該第一程式碼包括該特徵,防止至該第二操作點之該改變及繼續在該第二處理器之該第一操作點。
  17. 如請求項16之方法,其進一步包含: 回應於該判定使該第二處理器核心通電;及在該傳送之後使該第一處理器核心斷電。
  18. 如請求項16之方法,其進一步包含:回應於一第三操作點而操作該第一處理器核心;偵測至該第一處理器之一第四操作點之一改變,其中該第四操作點經映射至該第二處理器核心;及回應於該偵測而將該處理器內容傳送至該第二處理器核心。
  19. 如請求項16之方法,其中該第二處理器核心相較於該第一處理器核心為一更高效能處理器核心,且其中該第二處理器核心實施該指令集架構之一整體。
TW104135132A 2014-11-20 2015-10-26 包括執行指令集架構之不同部分之多個相異處理器核心之處理器 TWI570548B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US14/548,912 US9958932B2 (en) 2014-11-20 2014-11-20 Processor including multiple dissimilar processor cores that implement different portions of instruction set architecture

Publications (2)

Publication Number Publication Date
TW201631438A TW201631438A (zh) 2016-09-01
TWI570548B true TWI570548B (zh) 2017-02-11

Family

ID=54361177

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104135132A TWI570548B (zh) 2014-11-20 2015-10-26 包括執行指令集架構之不同部分之多個相異處理器核心之處理器

Country Status (6)

Country Link
US (2) US9958932B2 (zh)
EP (1) EP3221764B1 (zh)
KR (1) KR101930183B1 (zh)
CN (1) CN107003709B (zh)
TW (1) TWI570548B (zh)
WO (1) WO2016081090A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9977699B2 (en) * 2014-11-17 2018-05-22 Mediatek, Inc. Energy efficient multi-cluster system and its operations
US9958932B2 (en) 2014-11-20 2018-05-01 Apple Inc. Processor including multiple dissimilar processor cores that implement different portions of instruction set architecture
US9898071B2 (en) 2014-11-20 2018-02-20 Apple Inc. Processor including multiple dissimilar processor cores
US10417731B2 (en) 2017-04-24 2019-09-17 Intel Corporation Compute optimization mechanism for deep neural networks
US10417734B2 (en) 2017-04-24 2019-09-17 Intel Corporation Compute optimization mechanism for deep neural networks
US10656700B2 (en) * 2017-07-10 2020-05-19 Oracle International Corporation Power management in an integrated circuit
US11537838B2 (en) * 2018-05-04 2022-12-27 Apple Inc. Scalable neural network processing engine
KR20210016773A (ko) * 2019-08-05 2021-02-17 삼성전자주식회사 프로세서의 주파수를 제어하는 전자 장치와 이의 동작 방법
KR20210017249A (ko) * 2019-08-07 2021-02-17 삼성전자주식회사 프로세서 코어들과 다양한 버전의 isa들을 이용하여 명령어들을 실행하는 전자 장치
KR102437625B1 (ko) * 2020-06-19 2022-08-29 재단법인대구경북과학기술원 전자 장치 및 전자 장치의 전력 관리 방법

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201418972A (zh) * 2012-07-31 2014-05-16 Nvidia Corp 用於節省功率和節省面積計算的異構性多處理器設計
TW201437912A (zh) * 2013-03-26 2014-10-01 Via Tech Inc 具有原生切換機制之非對稱多核心處理器

Family Cites Families (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7281055B2 (en) 2002-05-28 2007-10-09 Newisys, Inc. Routing mechanisms in systems having multiple multi-processor clusters
US7260702B2 (en) * 2004-06-30 2007-08-21 Microsoft Corporation Systems and methods for running a legacy 32-bit x86 virtual machine on a 64-bit x86 processor
JP2006185348A (ja) 2004-12-28 2006-07-13 Fujitsu Ltd マルチプロセッサシステム及びロックフラグ操作方法
US7624250B2 (en) 2005-12-05 2009-11-24 Intel Corporation Heterogeneous multi-core processor having dedicated connections between processor cores
US7717350B2 (en) * 2006-06-30 2010-05-18 Advanced Micro Devices, Inc. Portable computing platform having multiple operating modes and heterogeneous processors
US20080263324A1 (en) 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
US7856562B2 (en) 2007-05-02 2010-12-21 Advanced Micro Devices, Inc. Selective deactivation of processor cores in multiple processor core systems
US20080307422A1 (en) 2007-06-08 2008-12-11 Kurland Aaron S Shared memory for multi-core processors
US8146106B2 (en) * 2007-12-31 2012-03-27 Intel Corporation On-demand emulation via user-level exception handling
US8819686B2 (en) 2009-07-23 2014-08-26 Empire Technology Development Llc Scheduling threads on different processor cores based on memory temperature
US8301932B2 (en) 2009-11-16 2012-10-30 Arm Limited Synchronising between clock domains
US8533505B2 (en) 2010-03-01 2013-09-10 Arm Limited Data processing apparatus and method for transferring workload between source and destination processing circuitry
US20110213935A1 (en) 2010-03-01 2011-09-01 Arm Limited Data processing apparatus and method for switching a workload between first and second processing circuitry
US8418187B2 (en) 2010-03-01 2013-04-09 Arm Limited Virtualization software migrating workload between processing circuitries while making architectural states available transparent to operating system
US20110265090A1 (en) * 2010-04-22 2011-10-27 Moyer William C Multiple core data processor with usage monitoring
US8751833B2 (en) 2010-04-30 2014-06-10 Arm Limited Data processing system
US8683243B2 (en) 2011-03-11 2014-03-25 Intel Corporation Dynamic core selection for heterogeneous multi-core systems
US8949836B2 (en) 2011-04-01 2015-02-03 International Business Machines Corporation Transferring architected state between cores
US8793686B2 (en) 2011-06-08 2014-07-29 Microsoft Corporation Operating system decoupled heterogeneous computing
DE112011105590T5 (de) 2011-09-06 2014-07-03 Intel Corp. Energieeffiziente Prozessorarchitektur
US9069553B2 (en) * 2011-09-06 2015-06-30 Marvell World Trade Ltd. Switching tasks between heterogeneous cores
US10078515B2 (en) * 2011-10-03 2018-09-18 International Business Machines Corporation Tracking operand liveness information in a computer system and performing function based on the liveness information
WO2013100996A1 (en) 2011-12-28 2013-07-04 Intel Corporation Binary translation in asymmetric multiprocessor system
US9348594B2 (en) * 2011-12-29 2016-05-24 Intel Corporation Core switching acceleration in asymmetric multiprocessor system
US9727388B2 (en) * 2011-12-29 2017-08-08 Intel Corporation Migrating threads between asymmetric cores in a multiple core processor
WO2013162589A1 (en) 2012-04-27 2013-10-31 Intel Corporation Migrating tasks between asymmetric computing elements of a multi-core processor
US9342334B2 (en) * 2012-06-22 2016-05-17 Advanced Micro Devices, Inc. Simulating vector execution
US9569279B2 (en) * 2012-07-31 2017-02-14 Nvidia Corporation Heterogeneous multiprocessor design for power-efficient and area-efficient computing
KR102005765B1 (ko) 2012-12-17 2019-07-31 삼성전자주식회사 시스템-온 칩과, 이의 동작 방법
CN104781803B (zh) * 2012-12-26 2018-06-15 英特尔公司 用于架构不同核的线程迁移支持
KR102082859B1 (ko) * 2013-01-07 2020-02-28 삼성전자주식회사 복수의 이종 코어들을 포함하는 시스템 온 칩 및 그 동작 방법
US20150007196A1 (en) 2013-06-28 2015-01-01 Intel Corporation Processors having heterogeneous cores with different instructions and/or architecural features that are presented to software as homogeneous virtual cores
US9495001B2 (en) 2013-08-21 2016-11-15 Intel Corporation Forcing core low power states in a processor
KR20150050135A (ko) 2013-10-31 2015-05-08 삼성전자주식회사 복수의 이종 코어들을 포함하는 전자 시스템 및 이의 동작 방법
US9684545B2 (en) * 2014-03-26 2017-06-20 Unisys Corporation Distributed and continuous computing in a fabric environment
US10120663B2 (en) * 2014-03-28 2018-11-06 Intel Corporation Inter-architecture compatability module to allow code module of one architecture to use library module of another architecture
US9513689B2 (en) * 2014-06-30 2016-12-06 Intel Corporation Controlling processor performance scaling based on context
US9898071B2 (en) 2014-11-20 2018-02-20 Apple Inc. Processor including multiple dissimilar processor cores
US9958932B2 (en) 2014-11-20 2018-05-01 Apple Inc. Processor including multiple dissimilar processor cores that implement different portions of instruction set architecture
US20160154649A1 (en) 2014-12-01 2016-06-02 Mediatek Inc. Switching methods for context migration and systems thereof
US9928115B2 (en) 2015-09-03 2018-03-27 Apple Inc. Hardware migration between dissimilar cores

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW201418972A (zh) * 2012-07-31 2014-05-16 Nvidia Corp 用於節省功率和節省面積計算的異構性多處理器設計
TW201437912A (zh) * 2013-03-26 2014-10-01 Via Tech Inc 具有原生切換機制之非對稱多核心處理器

Also Published As

Publication number Publication date
CN107003709B (zh) 2019-08-20
WO2016081090A1 (en) 2016-05-26
KR20170076767A (ko) 2017-07-04
US10401945B2 (en) 2019-09-03
EP3221764A1 (en) 2017-09-27
KR101930183B1 (ko) 2018-12-17
US20180217659A1 (en) 2018-08-02
TW201631438A (zh) 2016-09-01
EP3221764B1 (en) 2021-07-21
US20160147290A1 (en) 2016-05-26
CN107003709A (zh) 2017-08-01
US9958932B2 (en) 2018-05-01

Similar Documents

Publication Publication Date Title
TWI570548B (zh) 包括執行指令集架構之不同部分之多個相異處理器核心之處理器
US20240028094A1 (en) Techniques To Enable Communication Between A Processor And Voltage Regulator
JP6154071B2 (ja) アクティブなプロセッサに基づく動的電圧及び周波数管理
CN110109527B (zh) 动态电压裕度恢复
TWI553549B (zh) 包括多個不同處理器核心之處理器
US8806232B2 (en) Systems and method for hardware dynamic cache power management via bridge and power manager
WO2014204572A1 (en) Digital power estimator to control processor power consumption
CN112257356A (zh) 提供针对多芯片封装的热参数报告的装置和方法
US20160224090A1 (en) Performing context save and restore operations in a processor
US9928115B2 (en) Hardware migration between dissimilar cores
US10198027B2 (en) Providing reduced latency credit information in a processor
US11061692B2 (en) Low latency boot from zero-power state
JP6409218B2 (ja) 電力効率の優れたプロセッサアーキテクチャ