TWI518587B - 於不對稱多處理器系統中的核心切換加速之技術 - Google Patents

於不對稱多處理器系統中的核心切換加速之技術 Download PDF

Info

Publication number
TWI518587B
TWI518587B TW101149808A TW101149808A TWI518587B TW I518587 B TWI518587 B TW I518587B TW 101149808 A TW101149808 A TW 101149808A TW 101149808 A TW101149808 A TW 101149808A TW I518587 B TWI518587 B TW I518587B
Authority
TW
Taiwan
Prior art keywords
code
core
processor
unit
execution
Prior art date
Application number
TW101149808A
Other languages
English (en)
Other versions
TW201335842A (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 TW201335842A publication Critical patent/TW201335842A/zh
Application granted granted Critical
Publication of TWI518587B publication Critical patent/TWI518587B/zh

Links

Classifications

    • 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/30181Instruction operation extension or modification
    • 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
    • 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)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Power Sources (AREA)
  • Executing Machine-Instructions (AREA)

Description

於不對稱多處理器系統中的核心切換加速之技術 發明領域
本文所描述之發明係關於微處理器架構之領域。更具體言之,本發明係關於在不對稱多處理器系統中之核心切換。
發明背景
不對稱多處理器系統(asymmetric multiprocessor system,ASMP)將具有不同能力或不同規格的計算核心進行了組合。舉例而言,第一「大」核心(big core)可含有不同於第二「小」核心(small core)的邏輯元件配置。在該ASMP上執行程式碼的執行緒將自不同的核心之間的程式碼的作業系統透明核心遷移(operating-system transparent core migration)獲益。
依據本發明之一實施例,係特定提出一種器件,其包含:一程式碼分析器單元,其用以判定由一程式碼區段所要求之一或多個指令;及一程式碼檢測單元,其用以自多個處理核心中選擇出一子集以執行該程式碼區段,並 基於該多個處理核心中之所選擇出的子集來修改該程式碼區段以包括一或多個控制操作。
100‧‧‧架構
102‧‧‧記憶體
104‧‧‧執行緒
106‧‧‧程式碼
108‧‧‧再映射與遷移單元(RMU)
110‧‧‧程序設定檔資料存放區
111‧‧‧經檢測程式碼儲存單元
112(1)、112(C)‧‧‧第一核心(處理器)
114‧‧‧第一指令集架構(ISA)
116(1)、116(S)‧‧‧第二核心
118‧‧‧第二指令集架構(ISA)
120‧‧‧對於程式碼分析之請求
122‧‧‧二元分析單元
124‧‧‧程式碼分析器單元
126‧‧‧程式碼檢測單元
128‧‧‧程式碼回饋
130‧‧‧ISA錯誤資料
132‧‧‧ISA回饋
134、136‧‧‧功率使用
200‧‧‧分析
202(1)、202(2)、202(N)‧‧‧程式碼區段
204‧‧‧程式碼分析資料
206‧‧‧所用ISA
208‧‧‧ILP
300‧‧‧動作
302‧‧‧經檢測的程式碼
304、304(1)、304(2)、304(3)、304(4)‧‧‧控制微操作
400‧‧‧動作
500、600‧‧‧程序
502-510、602-610‧‧‧區塊
700‧‧‧系統
702‧‧‧互連
704、800‧‧‧處理器
704(1)、704(N)‧‧‧快取單元
706(1)、706(N)‧‧‧核心
708‧‧‧共用快取單元
710‧‧‧系統代理單元
712‧‧‧匯流排控制器單元
714‧‧‧整合式記憶體控制器單元
716‧‧‧媒體處理器
718‧‧‧整合式圖形邏輯
720‧‧‧影像處理器
722‧‧‧音訊處理器
724‧‧‧視訊處理器
726‧‧‧SRAM單元
728‧‧‧DMA單元
740‧‧‧顯示單元
802‧‧‧CPU
804‧‧‧GPU
806‧‧‧影像處理器
808‧‧‧視訊處理器
810‧‧‧USB控制器
812‧‧‧UART控制器
814‧‧‧SPI SDIO控制器
816‧‧‧顯示器
818‧‧‧記憶體介面控制器
820‧‧‧MIPI控制器
822‧‧‧快閃記憶體
824‧‧‧DDR控制器
826‧‧‧安全引擎
828‧‧‧I2S...I2C控制器
900、1000、1100‧‧‧不對稱多核心處理單元
902‧‧‧互連
1002‧‧‧網目
1102‧‧‧點對點組態
實施方式會參考所附圖式來予以闡述。在圖式中,參考數字中之最左側的數位表示該參考數字第一次出現時所在之圖式。在不同的圖式中使用相同的參考數字指示相似或相同之項目或特徵。
圖1所示為不對稱多處理器系統(ASMP)的架構中之一部分,該架構使用包含程式碼分析器單元(code analyzer unit)及程式碼檢測單元(code instrumentation unit)之二元分析單元(binary analysis unit),來提供在核心之間的程式碼之遷移。
圖2所示為由該程式碼分析器單元對該程式碼進行之分析,用以產生程式碼分析資料。
圖3所示為該程式碼檢測單元回應於該程式碼分析資料而將控制微操作(control micro-operation)插入至該程式碼中以形成經檢測的程式碼。
圖4所示為再映射與遷移單元(remap and migrate unit)根據該經檢測的程式碼之控制微操作來在核心之間遷移程式碼。
圖5為產生經檢測的程式碼之說明性程序。
圖6為執行針對核心遷移的二元分析之說明性程序。
圖7為在不對稱核心之間執行程式碼的遷移之說 明性系統的方塊圖。
圖8為根據一實施例的處理器之方塊圖。
圖9為說明性不對稱多核心處理單元之示意圖,該說明性不對稱多核心處理單元使用被配置為環形結構的互連(interconnect)。
圖10為說明性不對稱多核心處理單元之示意圖,該說明性不對稱多核心處理單元使用被配置為網目(mesh)的互連。
圖11為說明性不對稱多核心處理單元之示意圖,該說明性不對稱多核心處理單元使用被配置為點對點組態(peer-to-peer configuration)的互連。
較佳實施例之詳細說明 架構
圖1所示為不對稱多處理器系統(ASMP)的架構100中之一部分。如本文所描述,此架構使用包含程式碼分析器單元及程式碼檢測單元的二元分析單元來提供在核心之間的程式碼之遷移。
記憶體102包含電腦可讀儲存媒體(computer-readable storage media,CRSM),並且可為任何可用的實體媒體,該可用的實體媒體可由處理核心或其他器件來存取,以實施儲存於該媒體上的指令或將資料儲存於該媒體內。記憶體102可包含多個邏輯元件,該多個邏輯元件具有包括電晶體、電容器、電阻器、電感器、憶阻器 (memristor)等等在內之電組件。記憶體102可包括(但不限於)隨機存取記憶體(random access memory,RAM)、唯讀記憶體(read-only memory,ROM)、電可抹除可程式化唯讀記憶體(electrically erasable programmable read-only memory,EEPROM)、快閃記憶體、磁性儲存器件等等。
在記憶體102內可儲存有作業系統(未圖示)。該作業系統經組態以管理在架構100內的硬體及服務,以利於該作業系統(OS)以及一或多個應用程式。在該OS及/或一或多個應用程式執行期間,會產生一或多個執行緒104以供核心或其他處理器來執行。每一執行緒104包含程式碼106。
再映射與遷移單元108包含邏輯或電路,該邏輯或電路接收程式碼106,並使程式碼106在不對稱的多個核心之間遷移以供執行。該架構的不對稱性係由於兩個或兩個以上的核心具有不同的指令集架構、不同的邏輯元件、不同的實體構造,等等。如此處所示,再映射與遷移單元108可包含記憶體以儲存程序設定檔(process profile),進而形成程序設定檔資料存放區(process profiles datastore)110。程序設定檔資料存放區110含有關於執行緒104及其執行的資料。RMU 108亦可包含經檢測程式碼儲存單元以儲存經檢測的程式碼以供執行。下文將論述該經檢測的程式碼及其產生過程。
一或多個第一核心(或處理器)112(1)、112(2),…,112(C)耦接至再映射與遷移單元108。此等第一核心112實施第一指令集架構(ISA)114。一或多個第二核心116(1)、 116(2),…,116(S)亦耦接至再映射與遷移單元108。如本文所使用,圓括號中的字母(諸如(C)及(S))為大於或等於一之正整數。此等第二核心116實施第二ISA 118。在一些實施方案中,第一核心112與第二核心118之數量可不對稱。舉例而言,可存在單個第一核心112(1)以及三個第二核心116(1)、116(2)以及116(3)。儘管圖中描繪出兩個指令集架構,但是應理解,在架構100中可存在更多個ISA。在ASMP架構100中的ISA可彼此不同,但其中某一個ISA可為另一ISA之子集。舉例而言,第二ISA 118可為第一ISA 116之子集。
在一些實施方案中,可使用匯流排或互連來將第一核心112與第二核心116彼此耦接。該互連可配置為網狀互連、共用互連、點對點(P2P)互連、環形互連,等等。第一核心112與第二核心116可經組態以共用快取記憶體或其他邏輯。如本文所使用,核心包括但不限於,中央處理單元(CPU)、圖形處理單元(GPU)、浮點單元(FPU),等等。
再映射與遷移單元108可接收程式碼106,並將對於程式碼分析之請求120發佈至二元分析單元122。二元分析單元122經組態以提供程式碼106之二元分析。此二元分析會判定程式碼106之功能。此判定可用於自該等核心中選擇出哪一核心來執行儲存於其上的程式碼或程式碼的部分106。二元分析單元122可包含程式碼分析器單元124,程式碼分析器單元124包含用於評定程式碼106或程式碼106的部分所原生使用的是何種指令集架構之邏輯。下文將參照 圖2來更詳細論述程式碼分析器單元122以及程式碼分析。
程式碼檢測單元126包含用於將控制微操作添加至程式碼106中之邏輯,進而形成可儲存在經檢測程式碼儲存單元111中之經檢測的程式碼。此等控制微操作係至少部分地回應於來自二元分析單元122的輸出而添加。一經儲存,該經檢測的程式碼即可在第一核心112或第二核心116上執行。檢測資料(Instrumentation)可由RMU 108處理,以判定應將程式碼遷移至哪一核心。下文將參照圖3來更詳細地論述程式碼檢測單元126以及微操作的插入。
二元分析單元122將程式碼回饋128提供給再映射與遷移單元108。此程式碼回饋128可包含由程式碼檢測單元126產生之經檢測的程式碼。接著,再映射與遷移單元108可使用在經檢測的程式碼中之控制微操作,來在執行緒執行期間控制核心切換及與其相關之操作。
再映射與遷移單元108可自第二核心116接收ISA錯誤資料(fault)130。舉例而言,當程式碼106含有對於由第二核心116所實施的第二ISA 118而言為非原生(non-native)之指令時,ISA錯誤資料130會將有關此錯誤之通知(notice)提供給再映射與遷移單元108。再映射與遷移單元108亦可自該等核心(諸如,第一核心112)接收ISA回饋132。ISA回饋132可包含關於在執行期間所用指令、處理器狀態等等之資料。再映射與遷移單元108可使用ISA錯誤資料130及ISA回饋132,來修改在該等核心之間的程式碼106之遷移。
在程式碼106執行期間,第一核心112及第二核心 114可能使用不同量之功率。舉例而言,在正常操作期間,第一核心112可能各個會在此等核心的設計規格內之最大頻率及電壓下,消耗第一最大功率。第一核心112可經組態以進入各種較低功率狀態,包括低功率或待用(standby)狀態,在此期間,第一核心112消耗第一最小功率(諸如,在關斷時功率為零),。相比之下,在正常操作期間,第二核心112可能各個會在此等核心的設計規格內之最大頻率及電壓下,消耗第二最大功率。該第二最大功率可小於該第一最大功率。之所以為此是由於許多原因,包括第二核心116具有少於第一核心112之邏輯元件、不同之半導體構造,等等。如此處所示,圖表所描繪的是與第二核心116的最大功率使用(power usage)136相比之下的第一核心112的最大功率使用134。功率使用134大於功率使用136。
再映射與遷移單元108可使用程式碼回饋128來在第一核心112與第二核心116之間遷移程式碼108,以減少功率消耗,提高計算資源之總體利用率,提供指令之原生執行,等等。在將功率消耗最小化之一個實施方案中,程式碼106可遷移至具有較低功率使用136之第二核心116以供執行,其中僅有程式碼106中的某些部分要求在第一ISA 114上為原生之指令仍在第一核心112上執行。因此,大多數執行發生在第一個第二核心116上,因此消耗了較少的電功率。藉由使用該經檢測的程式碼,再映射與遷移單元108可對第一核心112進行暖機(warmup),即恢復至一規定的操作狀態,以使得核心切換無縫地(seamlessly)發生,且不會 對效能造成顯著影響。
在一些實施方案中(諸如,在系統單晶片中),在圖1中描述的元件中之若干者可安置在單個晶粒上。舉例而言,第一核心112、第二核心116、記憶體102等等可安置在同一晶粒上。
圖2所示為在二元分析單元122中由程式碼分析器單元124進行之程式碼106的分析200。如此處所指示,程式碼分析器單元124接收執行緒104中之程式碼106,或程式碼106中的一部分。程式碼106包含一或多個程式碼區段202(1)、202(2),…,202(N)。程式碼區段202可具有變化的長度。該長度可由程式碼分析器單元124來判定。可基於所調用之功能、所使用之指令集、指令複雜性(instruction complexity)等等來將程式碼106散佈至該等程式碼區段中。
程式碼分析器單元124包含用於自程式碼106產生程式碼分析資料204之邏輯元件。此程式碼分析資料204可包含關於程式碼106及其中所含程式碼區段202之一或多個特性。程式碼分析資料204的此等特性可包含所用ISA 206、指令階層平行度(instruction level parallelism,ILP)之指示208,等等。所用ISA 206特性指示程式碼區段202原生執行所在之特定指令集架構。舉例而言,程式碼區段202(1)可能需要一種指令,該指令在第一核心112上為原生可用且無需二元轉譯(binary translation),但是藉由在第二核心116上使用二元轉譯進行模擬而成為可用指令。因此,在此狀況中,程式碼區段202(1)可在任一處理器上執行,但是在第 一核心112上可執行地更快,因為在第一核心112上此執行為原生的,無需二元轉譯。
在其他實施方案中,在該程式碼分析資料中可包括其他特性。舉例而言,對於執行特定指令的給定核心之循環數目可得以判定或估計。
接著,程式碼分析器單元124可輸出程式碼分析資料204。程式碼分析資料204可包括程式碼106,以及其他資料,諸如所用ISA、ILP、所估計之執行循環,等等。除此以外,資料204可包括關於ISA錯誤資料130、ISA回饋132或兩者之資訊。
圖3所示為程式碼檢測單元126將指令插入(300)至程式碼106中。此等指令可包含巨集指令(macroinstruction)、微操作(micro-operation),等等。儘管以下描述使用術語「微操作」,但是,應理解,在其他架構中可使用其他指令。
程式碼檢測單元126接收程式碼分析資料204及程式碼106,並產生經檢測的程式碼302。經檢測的程式碼302包含程式碼106,且程式碼106中插入有控制微操作304。控制微操作304可包括但不限於,用於在處理器之間遷移執行緒之指令、用於將特定處理器的操作狀態自一功率狀態改變為另一功率狀態之指令等等。舉例而言,如此處所描繪(出於說明而非限制的目的),控制微操作304可包含WAKEUP_BC微操作304(1)、MOVE_to_BC微操作304(2)、WAKEUP_SC微操作304(3)、MOVE_to_SC微操作 304(4),等等。當WAKEUP_BC 304(1)由再映射與遷移單元108發佈時,WAKEUP_BC 304(1)將第一核心112自較低功率狀態引入至較高功率狀態。舉例而言,WAKEUP_BC 304(1)將第一核心112自較低功率之待用狀態轉變至全功率(full power)操作狀態,預備進行指令執行。
MOVE_to_BC微操作304(2)啟動執行緒104及相關程式碼106或程式碼106的程式碼區段202之核心遷移,該核心遷移自執行該等指令的一個核心(諸如,第二核心116)遷移至第一核心112。
當WAKEUP_SC微操作304(3)由再映射與遷移單元108發佈時,WAKEUP_SC微操作304(3)將第二核心116自較低功率狀態引入至較高功率狀態。舉例而言,WAKEUP_SC 304(3)將第二核心116自較低功率之待用狀態轉變至全功率操作狀態,預備進行指令執行。MOVE_to_SC微操作304(4)啟動執行緒104及相關程式碼106或程式碼106的程式碼區段202之核心遷移,該核心遷移自執行經檢測的程式碼之核心(諸如,第一核心112)遷移至第二核心116。為實現在正確的返回點(returning point)回至第一核心112,程式碼檢測單元126可插入WAKEUP_BC 304(1)及MOVE_to_BC 304(2)微操作,以啟動該核心切換並狀態遷移(state migration)回至第一核心112。如此處所描繪,為將核心遷移之延遲最小化或隱藏,會在WAKEUP_BC 304(1)微操作與MOVE_to_BC 304(2)微操作之間設置恰當距離「D」。該距離可藉由時間、指令數目,等等來表達。下文 將對此予以更詳細論述。
如此處所描繪,經檢測的程式碼302含有程式碼區段202及控制微操作304,序列如下:控制微操作304(3)、程式碼區段202(1)、控制微操作304(4)、程式碼區段202(2)。其他控制微操作304、程式碼區段202等等可依此序列,但並未在圖中示出,此是為便於說明,但不欲限制。可將控制微操作304安置在緊接在與其相關的程式碼區段202之前,或可將控制微操作304插入至程式碼區段202之前或之後的距離「D」處。舉例而言,如此處所示,可將程式碼區段202(1)安排在第一核心112上來執行,而將程式碼區段202(2)安排在第二核心116上來執行。將控制微操作304(3)安置在程式碼區段202(1)之前,距控制微操作304(4)距離為「D」,以為第二核心116提供在遷移之前到達所要操作狀態之時間。舉例而言,由距離「D」提供之時間間隔可為第二核心116提供在開始執行程式碼區段202(2)之前穩定之時間。在其他實施方案中,距離「D」可省略。舉例而言,WAKEUP_SC控制微操作304(3)可緊接在MOVE_to_SC控制微操作304(4)之前來執行。
程式碼檢測單元126產生經檢測的程式碼302以滿足一或多個操作參數。此等操作參數可包括最小化總體功率消耗、最小化熱擴散、最小化總體執行時間、最大化核心利用率,等等。在一個實施方案中,在第一核心112的利用率低於預定臨限值時,可將控制微操作304(諸如,MOVE_to_SC 304(4))插入。因而,此低利用率等級可指示, 第二核心116供應出充足的資源來提供與第一核心112相同之總體效能等級,但與第一核心112相比功率消耗卻較低。
在另一實施方案中,當程式碼區段202需要對於第一指令集架構114為原生而對第二指令集架構118為非原生之功能時,可將控制微操作304(諸如,MOVE_to_BC 304(2))插入。舉例而言,當程式碼檢測單元126判定程式碼區段202或其他程式碼區域具有低的指令階層平行度(ILP)且未使用第一ISA 114時,可將控制微操作304(4)插入,以將彼程式碼區段202移動至第二核心116來執行。與之相似,當判定出密集使用第一ISA 114之程式碼區段202時,可將控制微操作304(2)插入以將彼程式碼移動至第一核心112來執行。
可在耦接至程式碼檢測單元126或處於程式碼檢測單元126內之專用轉譯快取記憶體存放區中,執行此等程式碼修改。藉由將此等控制微操作304引入至程式碼106中來形成經檢測的程式碼304,遷移時間得以顯著減少。喚醒微操作(諸如,304(1)及304(3))之安置使得給定的核心得以預暖(pre-warm),並在接收程式碼區段202來執行之前預備執行。因此,延遲得以顯著減少或消除。下文將參照圖4來對此予以更詳細說明。
儘管圖中所示的經檢測的程式碼302為單線條配置,然而,在一些實施方案中,可並行地執行各種控制微操作304、程式碼區段202,等等。舉例而言,在程式碼區段202(2)的開始處插入WAKEUP_SC 304(3)微操作時,第二 核心116之上電、以及自第一核心112至第二核心116之狀態遷移,可與在第一核心112上的程式碼區段202(2)的執行並行發生,直至第一核心112執行MOVE_to_SC 304(4)微操作為止。
在一些實施方案中,微操作(諸如,MOVE_to_BC 304(2)及MOVE_to_SC 304(4))之插入可為隱含的(implicit)或自動添加的,使得此等微操作被注入至管線中,諸如在繼喚醒微操作(諸如,WAKEUP_BC 304(1)或WAKEUP_SC 304(3))後的預定義數目個指令之後如此操作。此插入可由程式碼檢測單元126、再映射與遷移單元108或在ASMP架構100中的其他硬體來進行。
程式碼檢測單元126產生程式碼回饋128。此程式碼回饋128可包含經檢測的程式碼302、程式碼分析資料204,以及其他指令、量度等等。經檢測的程式碼302可儲存於經檢測程式碼儲存單元111中。經檢測程式碼儲存單元111可包含位址查找機制,使得在程式碼執行期間執行經檢測的程式碼302,而非執行原始程式碼106。
圖4所示為再映射與遷移單元108根據該等控制微操作來在核心之間遷移(400)程式碼106。如上文所提及,再映射與遷移單元108可藉由發佈對於程式碼分析之請求120來啟動二元分析。在一些實施方案中,可至少部分地藉由尋找效能或P狀態(P-state)之改變來啟動此請求120。核心之P狀態指示效能之操作等級,諸如可由該核心的頻率與操作電壓之特定組合來加以定義。舉例而言,高P狀態可能涉 及該核心在其最大設計頻率及電壓下執行。在一些實施方案中,在ASMP 100上執行之作業系統可將該P狀態自高值轉變至低值。當接收到此轉變時,再映射與遷移單元108可啟動該二元分析,以在第一核心112與第二核心116上散佈程式碼區段202,使得功率消耗得以最小化。如上文所描述,二元分析單元122可判定何時將程式碼106或其部分遷移以供在第二核心116上執行。
遷移與再映射單元108亦可啟動二元分析單元122,以藉由評定由作業系統(OS)、虛擬機管理器(virtual machine manager,VMM)等等所程式化的控制暫存器,來預測特定指令之未來使用。具體言之,可使用XINIT追蹤程式(XINIT tracker)來判定應用程式的執行緒104何時曾使用過AVX暫存器。二元分析單元122亦可利用效能監視單元(performance monitoring unit,PMU)計數器,來對在第一ISA 114、第二ISA 118等等中所支援之所執行指令的數目進行計數。舉例而言,當調用第一ISA 114中的指令時,PMU計數器可遞增。在一些實施方案中,再映射與遷移單元108可存取,或以其他方式維護效能或使用資料。
如此處所示,再映射與遷移單元(RMU)108已接收到程式碼回饋128,程式碼回饋128包含在經檢測程式碼儲存單元111中所儲存之經檢測的程式302。在執行期間,執行經檢測的程式碼302,而非執行原始程式碼106。再映射與遷移單元108現可藉由使用其中之控制微操作304,來執行執行緒104,同時提供在ASMP中的多個核心之間的執 行緒104之遷移。此遷移對於該作業系統為透明的。WAKEUP_SC 304(3)控制微操作被發佈至第二核心116(1),進而將第二核心116(1)預暖以供在此之後執行程式碼區段202(2)。
RMU 108在第一核心112(1)上執行程式碼區段202(1)。接下來,MOVE_to_SC 304(4)控制微操作啟動自第一核心112至第二核心116之執行緒104的遷移。第一核心112執行此命令,並將狀態資訊遷移至第二核心116(1),現已預備執行。接著,將下一個程式碼區段202(2)發送至第二核心116(1)以供執行。在一些實施方案中,可將第一核心112(1)(現未被使用)設定為一降低的功率狀態。
說明性程序
在本發明中所描述之程序可由本文所描述的器件或由其他器件實施。此等程序被圖示為在邏輯流程圖中的方塊之集合。該等方塊中之一些方塊表示可在硬體、軟體或兩者組合中實施之操作。在軟體之背景中,該等區塊表示在一或多個電腦可讀儲存媒體上所儲存之電腦可執行指令,該等電腦可執行指令在由一或多個處理器執行時執行所引用之操作。大體言之,電腦可執行指令包括執行特定功能或實施具體抽象資料類型之常式、程式、物件、組件、資料結構及類似物。在硬體之背景中,該等方塊表示經組態以提供所引用的操作之電路配置。所描述操作之次序不意欲被理解為限制,而是可以任何次序或並行方式來組合任何數目個所描述方塊,以實施該等程序。
圖5為產生經檢測的程式碼302之說明性程序500。在一些實施方案中,此程序可由二元分析單元122來執行。在502處,在二元分析單元122處接收程式碼106。此程式碼106經設計以用於在諸如第一核心112及第二核心116之多個處理器中的一者或多者上執行,其中該多個處理器具有兩個或兩個以上之指令集架構。舉例而言,第一核心112實施第一ISA 114,且第二核心116實施第二ISA 118。
在504處,判定由程式碼106內的一或多個程式碼區段202調用之指令。舉例而言,程式碼分析器單元124可判定出程式碼區段202(1)使用的是對於第一ISA 114為原生之指令。
在506處,自該多個處理器中選擇出一者或多者來指派一或多個程式碼區段202以供執行。在一些實施方案中,此選擇可至少部分地基於所調用的指令之判定。在其他實施方案中,該選擇可基於其他程式碼分析資料204,或可為預定的,等等。
在508處,至少部分地回應於該選擇而將一或多個控制微操作304插入至程式碼106中,進而產生經檢測的程式碼302。在510處,接著可將經檢測的程式碼302自經檢測程式碼儲存單元111傳輸至RMU 118以用於執行緒104之核心遷移及執行。
圖6為執行針對核心遷移的二元分析之說明性程序600。在一些實施方案中,此程序可由RMU 118來執行。
與執行緒102相關的程式碼106之二元分析可以 若干方式來啟動。出於說明而非限制的目的,此處說明了兩種方式。
在一個實施方案中,在602處,接收第一處理器效能狀態(或P狀態)之改變,該改變使得該處理器效能狀態自一第一等級轉變至一較低的第二等級。舉例而言,該OS可請求自高功率狀態至低功率狀態之P狀態的改變。在另一實施方案中,在604處,將第一處理器的利用率判定為低於預定臨限值。舉例而言,第一核心112可下降至預定利用率臨限值以下,此指示第一核心112未得到充分利用,因而與在第二核心116上執行相比消耗了不必要的功率。
在606處,在二元分析單元122處啟動程式碼106之二元分析。該二元分析判定是否可將供在具有第一指令集架構的第一處理器上執行之程式碼106遷移以在具有第二指令集的第二處理器上執行。舉例而言,程式碼區段202(9)可原生執行,或可使用第一核心112的第一ISA 114或第二核心116的第二ISA 118中之任一者藉由二元轉譯來執行。
在608處,接收經檢測的程式碼302,該經檢測的程式碼302包含用於將程式碼106或其程式碼區段202遷移至第二處理器之一或多個控制微操作304。舉例而言,經檢測的程式碼302可包含由二元分析模組122插入之MOVE_to_SC微操作304(4)以供在程式碼區段202(9)之前執行。
在610處,經檢測的程式碼302至少部分地基於該 一或多個控制微操作304來將程式碼106或其一或多個程式碼區段202遷移至第二處理器。繼續描述該實例,RMU 118可在第一核心112上執行MOVE_to_SC微操作304(4),並將執行緒104遷移至第二核心116,使得程式碼區段202(9)在第二核心116上執行。
圖7為在不對稱核心之間執行程式碼的遷移之說明性系統700的方塊圖。可將此系統實施為系統單晶片(SoC)。互連單元702耦接至:一或多個處理器704,其包括一組一或多個核心706(1)-(N)與共用快取單元708;系統代理(system agent)單元710;匯流排控制器單元712;整合式記憶體控制器單元714;一組或一或多個媒體處理器716,該組或該一或多個媒體處理器716可包括整合式圖形邏輯718、用於提供靜態及/或視訊攝影機功能性之影像處理器720、用於提供硬體音訊加速之音訊處理器722以及用於提供視訊編碼/解碼加速之視訊處理器724;靜態隨機存取記憶體(SRAM)單元726;直接記憶體存取(DMA)單元728;及用於耦接至一或多個外部顯示器之顯示單元740。在一個實施方案中,RMU 108、二元分析單元122或兩者可經由互連702耦接至核心706。在另一實施方案中,RMU 108、二元分析單元122或兩者可經由在該等核心之間的另一互連耦接至該等核心706。
處理器704可包含一或多個核心706(1)、706(2),…,706(N)。此等核心706可包含第一核心112(1)-112(C)、第二核心116(1)-116(S),等等。在一些實施 方案中,處理器704可包含單一類型的核心,諸如第一核心112,而在其他實施方案中,處理器704可包含兩種或兩種以上不同類型的核心,諸如第一核心112、第二核心116,等等。每一核心可包括用於執行相應核心的各種任務之邏輯實例。該邏輯可包括專用電路、邏輯單元、微碼或類似者中之一者或多者。
該組共用快取單元708可包括一或多個中階快取(mid-level cache),諸如二階(L2)、三階(L3)、四階(L4)或其他階的快取,末階快取(LLC),及/或其組合。系統代理單元710包括對核心706(1)-(N)進行協調及操作之彼等組件。舉例而言,系統代理單元710可包括電力控制單元(PCU)及顯示單元。該PCU可為,或可包括對核心706(1)-(N)及整合式圖形邏輯718的功率狀態進行調節所需之邏輯及組件。該顯示單元用於驅動一或多個外部連接的顯示器。
圖8所示為含有中央處理單元(CPU)及圖形處理單元(GPU)之處理器,該處理器可執行用於進行本文所描述的核心切換之指令。在一個實施例中,用於執行根據至少一個實施例的操作之指令可由該CPU來執行。在另一實施例中,該指令可由該GPU來執行。在另一實施例中,該指令可藉由由該GPU及該CPU所執行的操作之組合來執行。舉例而言,在一個實施例中,可接收根據一個實施例的指令,並對該指令進行解碼,以供在該GPU上執行。然而,在該經解碼的指令內之一或多個操作可由CPU來執行,並將結果傳回至該GPU,以實現該指令最終的引退。相比之 下,在一些實施例中,該CPU可充當主處理器,而該GPU可充當副處理器。
在一些實施例中,自高度平行的輸送量處理器中獲益之指令可由該GPU來執行,而自深度管線式架構中獲益之處理器的效能中獲益之指令可由該CPU來執行。舉例而言,圖形邏輯、科學應用程式、財務應用程式,及其他並行工作負載可自該GPU的效能中獲益並相應地得到執行,而更多的序列性應用程式,諸如作業系統內核(operating system kernel),或應用程式碼可較好地適合於該CPU。
圖8描繪的是處理器800,處理器800包含CPU 802、GPU 804、影像處理器806、視訊處理器808、USB控制器810、UART控制器812、SPI/SDIO控制器814、顯示器件816、記憶體介面控制器818、MIPI控制器820、快閃記憶體控制器822、雙資料速率(DDR)控制器824、安全引擎826,以及I2S/I2C控制器828。在圖8的處理器中可包括其他邏輯及電路,包括更多的CPU或GPU及其他周邊介面控制器。
處理器800可包含一或多個核心,該一或多個核心為相似或不同的核心。舉例而言,處理器800可包括一或多個第一核心112(1)-112(C)、第二核心116(1)-116(S),等等。在一些實施方案中,處理器800可包含單一類型的核心,諸如第一核心112,而在其他實施方案中,該等處理器可包含兩種或兩種以上的不同類型之核心,諸如第一核心112、第二核心116,等等。
至少一個實施例的一或多個態樣可由儲存在機 器可讀媒體上的表示性資料來實施,該表示性資料表示該處理器內的各種邏輯,該表示性資料在由一機器讀取時使得該機器製造用於執行本文所描述的技術之邏輯。此類表示(被稱為「IP核心」)可儲存在有形的機器可讀媒體(「磁帶」)上,並可供應給各個客戶或製造廠商,以便載入至實際製作該邏輯或處理器之製造機械之中。舉例而言,IP核心(諸如由ARM Holdings,Ltd.所開發之CortexTM處理器家族,以及由Institute of Computing Technology(ICT)of the ChineseAcademy of Sciences所開發之龍芯(Loongson)IP核心)可被授權或銷售至各個客戶或被授權者(諸如Texas Instruments、Qualcomm、Apple或Samsung),並在由此等客戶或被授權者所生產的處理器中實施。
圖9為說明性不對稱多核心處理單元900之示意圖,該說明性不對稱多核心處理單元900使用被配置為環形結構902的互連。環形結構802可適應在核心1、2、3、4、5,…,X之間的資料交換。如上文所描述,該等核心可包括第一核心112中之一者或多者以及第二核心116中之一者或多者。在一些實施方案中,該等處理器中之多個處理器可耦接為如此處所示的環形結構,以適應在該等處理器之間的資料交換。
圖10為說明性不對稱多核心處理單元1000之示意圖,該說明性不對稱多核心處理單元1000使用被配置為網目1002的互連。網目1002可適應在核心1與其他核心2、3、4、5、6、7,…,X之間的資料交換,該等其他核心耦接 至核心1或耦接在該等核心的任何組合之間。如上文所描述,在一些實施方案中,該等處理器中之多個處理器可耦接為如此處所示的環形結構,以適應在該等處理器之間的資料交換。
圖11為說明性不對稱多核心處理單元1100之示意圖,該說明性不對稱多核心處理單元1100使用被配置為點對點組態1102的互連。點對點組態1102可適應在該等核心的任何組合之間的資料交換。如上文所描述,在一些實施方案中,該等處理器中之多個處理器可耦接為如此處所示的點對點結構,以適應在該等處理器之間的資料交換。
儘管已使用對於結構特徵及/或方法動作為特定的語言描述了標的物,但應理解,在所附申請專利範圍中所定義之標的物不必受限於所描述之特定特徵或動作。而是將該等特定特徵及動作揭示為實施申請專利範圍之說明性形式。舉例而言,該等方法動作不需要按本文所描述的次序或組合來執行,而是可按一或多個動作之任何組合來執行。
102‧‧‧記憶體
104‧‧‧執行緒
106‧‧‧程式碼
108‧‧‧再映射與遷移單元(RMU)
110‧‧‧程序設定檔資料存放區
111‧‧‧經檢測程式碼儲存單元
112(1)、112(C)‧‧‧第一核心(處理器)
114‧‧‧第一指令集架構(ISA)
116(1)、116(S)‧‧‧第二核心
118‧‧‧第二指令集架構(ISA)
120‧‧‧對於程式碼分析之請求
122‧‧‧二元分析單元
124‧‧‧程式碼分析器單元
126‧‧‧程式碼檢測單元
128‧‧‧程式碼回饋
130‧‧‧ISA錯誤資料
132‧‧‧ISA回饋
134、136‧‧‧功率使用

Claims (17)

  1. 一種裝置,其包含:一程式碼分析器單元,其用以判定由一程式碼區段所調用之一或多個指令;及一程式碼檢測單元,其用以自多個處理核心中選擇出一子集以執行該程式碼區段,並基於該多個處理核心中之該所選擇出的子集來修改該程式碼區段以包括一或多個控制操作,其中該多個處理核心包含一第一核心及一第二核心,其中該一或多個操作用以啟動該程式碼區段至該第一核心或該第二核心之遷移。
  2. 如申請專利範圍第1項之裝置,其中該一或多個控制操作用以喚醒該多個處理核心中之一者或多者。
  3. 如申請專利範圍第1項之裝置,其中該第一核心用以執行一第一指令集且該第二核心用以執行一第二指令集。
  4. 一種處理器,其包含:一第一核心,其用以在一第一最大功率消耗率下操作;一第二核心,其用以在一第二最大功率消耗率下操作,該第二最大功率消耗率小於該第一最大功率消耗率;及二元分析邏輯,其用以:判定何種指令被在程式碼內的一或多個程式碼區段所調用; 自該第一核心或該第二核心中選擇出一者以指派該一或多個程式碼區段以供執行;及至少部分地回應於該選擇,並至少部分地基於該選擇來將一或多個控制操作插入至該程式碼中,以形成經檢測的程式碼,其中該等控制操作包含命令,該等命令用以:喚醒該第一核心;喚醒該第二核心;將程式碼移動至該第一核心;及將程式碼移動至該第二核心。
  5. 如申請專利範圍第4項之處理器,其進一步包含再映射與遷移邏輯,該再映射與遷移邏輯用以至少部分地基於該一或多個控制操作,來將該經檢測的程式碼中之一或多個程式碼區段遷移至該第一核心或該第二核心以供執行。
  6. 如申請專利範圍第4項之處理器,用於自該第一核心或該第二核心中選擇出一者以指派該一或多個程式碼區段以供執行之該邏輯係至少部分地基於接收到該第一核心之效能狀態之一改變。
  7. 如申請專利範圍第6項之處理器,其中該效能狀態之該改變包含自一第一狀態至一第二狀態之一轉變,該第二狀態低於該第一狀態。
  8. 如申請專利範圍第4項之處理器,其中該第一核心用以接受一第一指令集架構,而該第二核心用以接受一 第二指令集架構。
  9. 如申請專利範圍第8項之處理器,該自該第一核心或該第二核心中選擇出一者以指派該一或多個程式碼區段以供執行係至少部分地基於該一或多個程式碼區段在該第一指令集架構或該第二指令集架構中為可原生執行的。
  10. 如申請專利範圍第4項之處理器,用以自該第一核心或該第二核心中選擇出一者以指派該一或多個程式碼區段以供執行之該邏輯係至少部分地基於該第一核心或該第二核心用以執行該一或多個程式碼區段之功率消耗。
  11. 一種方法,其包含下列步驟:將用於在一第一處理器或一第二處理器上執行之程式碼接收到一記憶體中,其中該第一處理器與該第二處理器利用不同之架構;偵測由儲存在該記憶體中之該程式碼調用之功能;至少部分地基於該等所調用之功能而自該程式碼中選擇出一或多個部分以供在一特定處理器上執行;及至少部分地回應於該選擇而將一或多個控制操作插入至儲存在該記憶體中之該程式碼中,以形成經檢測的程式碼,其中該一或多個控制操作將該程式碼在該第一處理器與該第二處理器之間遷移。
  12. 如申請專利範圍第11項之方法,其中該一或多個控制操作將該第一處理器或該第二處理器自一低功率狀態中喚醒。
  13. 如申請專利範圍第11項之方法,該插入包含在 該經檢測的程式碼中將一處理器喚醒操作安置在一移動程式碼操作之前。
  14. 如申請專利範圍第11項之方法,該插入包含將一處理器喚醒操作添加至該程式碼中。
  15. 如申請專利範圍第14項之方法,該插入進一步包含在預定數目個所執行的指令之後添加一程式碼移動操作。
  16. 如申請專利範圍第11項之方法,該選擇進一步包含選擇該特定處理器以使得該偵測到的所調用之功能原生執行。
  17. 如申請專利範圍第11項之方法,該選擇係至少部分地基於由該第一處理器或該第二處理器執行時之該等功能之功率消耗。
TW101149808A 2011-12-29 2012-12-25 於不對稱多處理器系統中的核心切換加速之技術 TWI518587B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/067851 WO2013101069A1 (en) 2011-12-29 2011-12-29 Core switching accelaration in asymmetric multiprocessor system

Publications (2)

Publication Number Publication Date
TW201335842A TW201335842A (zh) 2013-09-01
TWI518587B true TWI518587B (zh) 2016-01-21

Family

ID=48698305

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101149808A TWI518587B (zh) 2011-12-29 2012-12-25 於不對稱多處理器系統中的核心切換加速之技術

Country Status (3)

Country Link
US (1) US9348594B2 (zh)
TW (1) TWI518587B (zh)
WO (1) WO2013101069A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9672019B2 (en) 2008-11-24 2017-06-06 Intel Corporation Systems, apparatuses, and methods for a hardware and software system to automatically decompose a program to multiple parallel threads
US10621092B2 (en) 2008-11-24 2020-04-14 Intel Corporation Merging level cache and data cache units having indicator bits related to speculative execution
WO2013048468A1 (en) 2011-09-30 2013-04-04 Intel Corporation Instruction and logic to perform dynamic binary translation
US20140019723A1 (en) * 2011-12-28 2014-01-16 Koichi Yamada Binary translation in asymmetric multiprocessor system
KR102082859B1 (ko) * 2013-01-07 2020-02-28 삼성전자주식회사 복수의 이종 코어들을 포함하는 시스템 온 칩 및 그 동작 방법
US10133557B1 (en) * 2013-01-11 2018-11-20 Mentor Graphics Corporation Modifying code to reduce redundant or unnecessary power usage
US10423216B2 (en) 2013-03-26 2019-09-24 Via Technologies, Inc. Asymmetric multi-core processor with native switching mechanism
US20160162293A1 (en) * 2013-03-26 2016-06-09 Via Technologies, Inc. Asymmetric processor with cores that support different isa instruction subsets
US9367325B2 (en) * 2013-06-29 2016-06-14 Intel Corporation Common architecture state presentation for processor having processing cores of different types
US9891936B2 (en) 2013-09-27 2018-02-13 Intel Corporation Method and apparatus for page-level monitoring
US10291391B2 (en) * 2014-06-04 2019-05-14 Giesecke+Devrient Mobile Security Gmbh Method for enhanced security of computational device with multiple 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
US9898071B2 (en) 2014-11-20 2018-02-20 Apple Inc. Processor including multiple dissimilar processor cores
US9713192B2 (en) * 2015-03-27 2017-07-18 Intel Corporation Device and method for processing audio data
US9928115B2 (en) 2015-09-03 2018-03-27 Apple Inc. Hardware migration between dissimilar cores
TWI550398B (zh) * 2015-12-28 2016-09-21 英業達股份有限公司 邏輯cpu的實體位置判斷系統及其方法
JP6631374B2 (ja) * 2016-04-13 2020-01-15 富士通株式会社 情報処理装置、動作状況収集プログラム及び動作状況収集方法
US11372711B2 (en) 2019-06-29 2022-06-28 Intel Corporation Apparatus and method for fault handling of an offload transaction
US20200409764A1 (en) * 2019-06-29 2020-12-31 Intel Corporation Core-to-core "snoop" instruction variants
US11775298B2 (en) * 2020-04-24 2023-10-03 Intel Corporation Frequency scaling for per-core accelerator assignments
US11687338B2 (en) * 2021-04-30 2023-06-27 Seagate Technology Llc Computational storage with pre-programmed slots using dedicated processor core

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2003283680A1 (en) * 2002-12-04 2004-06-23 Koninklijke Philips Electronics N.V. Software-based control of microprocessor power dissipation
US7734895B1 (en) 2005-04-28 2010-06-08 Massachusetts Institute Of Technology Configuring sets of processor cores for processing instructions
US7774558B2 (en) 2005-08-29 2010-08-10 The Invention Science Fund I, Inc Multiprocessor resource optimization
US7730470B2 (en) 2006-02-27 2010-06-01 Oracle America, Inc. Binary code instrumentation to reduce effective memory latency
US20080263324A1 (en) * 2006-08-10 2008-10-23 Sehat Sutardja Dynamic core switching
US20080244538A1 (en) 2007-03-26 2008-10-02 Nair Sreekumar R Multi-core processor virtualization based on dynamic binary translation
US8615647B2 (en) * 2008-02-29 2013-12-24 Intel Corporation Migrating execution of thread between cores of different instruction set architecture in multi-core processor and transitioning each core to respective on / off power state
JP5169731B2 (ja) * 2008-10-24 2013-03-27 富士通セミコンダクター株式会社 マルチプロセッサシステムlsi
US9766911B2 (en) 2009-04-24 2017-09-19 Oracle America, Inc. Support for a non-native application
US9354944B2 (en) * 2009-07-27 2016-05-31 Advanced Micro Devices, Inc. Mapping processing logic having data-parallel threads across processors
TW201324357A (zh) * 2011-12-01 2013-06-16 Univ Tunghai 虛擬機叢集之綠能管理方法

Also Published As

Publication number Publication date
US20130268742A1 (en) 2013-10-10
US9348594B2 (en) 2016-05-24
TW201335842A (zh) 2013-09-01
WO2013101069A1 (en) 2013-07-04

Similar Documents

Publication Publication Date Title
TWI518587B (zh) 於不對稱多處理器系統中的核心切換加速之技術
US20140019723A1 (en) Binary translation in asymmetric multiprocessor system
TWI494850B (zh) 通透地提供給作業系統之非對稱多核心處理器系統
US9696771B2 (en) Methods and systems for operating multi-core processors
KR101847857B1 (ko) 스레드 일시중지 프로세서들, 방법들, 시스템들 및 명령어들
TWI537821B (zh) 對每一核心提供電壓及頻率控制之技術
JP5932044B2 (ja) 消費電力を低減する優先度に基づくアプリケーションイベント制御(paec)
TWI516909B (zh) 包括在裝置中自主的硬體式深度省電之能源效率及能源節約的方法、設備及系統
US8589939B2 (en) Composite contention aware task scheduling
US20110078412A1 (en) Processor Core Stacking for Efficient Collaboration
US10156884B2 (en) Local power gate (LPG) interfaces for power-aware operations
US20090172428A1 (en) Apparatus and method for controlling power management
EP3979072B1 (en) Firmware boot task distribution to enable low latency boot performance
GB2547769A (en) Method for booting a heterogeneous system and presenting a symmetric core view
CN109313604B (zh) 用于压缩虚拟存储器的动态配置的计算系统、装置和方法
US9715403B2 (en) Optimized extended context management for virtual machines
US9471395B2 (en) Processor cluster migration techniques
TWI514128B (zh) 用於包括基於非核心領域於電力節省狀態的滯留時間來決定裝置的最佳電力狀態之能源效率及能源節約的方法、裝置及系統
WO2011155047A1 (ja) マルチコアプロセッサシステム、電力制御方法、および電力制御プログラム
US20140351828A1 (en) Apparatus and method for controlling multi-core system on chip
US20230185349A1 (en) Power management watchdog
US11880231B2 (en) Accurate timestamp or derived counter value generation on a complex CPU
JP5862727B2 (ja) マルチコアプロセッサシステム、マルチコアプロセッサシステムの制御方法、およびマルチコアプロセッサシステムの制御プログラム

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees