TWI493452B - 非對稱多處理器系統中之二進制轉譯技術 - Google Patents

非對稱多處理器系統中之二進制轉譯技術 Download PDF

Info

Publication number
TWI493452B
TWI493452B TW101147868A TW101147868A TWI493452B TW I493452 B TWI493452 B TW I493452B TW 101147868 A TW101147868 A TW 101147868A TW 101147868 A TW101147868 A TW 101147868A TW I493452 B TWI493452 B TW I493452B
Authority
TW
Taiwan
Prior art keywords
core
code
fault
instruction
processor
Prior art date
Application number
TW101147868A
Other languages
English (en)
Other versions
TW201346722A (zh
Inventor
Koichi Yamada
Ronny Ronen
Wei Li
Boris Ginzburg
Gadi Haber
Konstantin Levit-Gurevich
Esfir Natanzon
Alon Naveh
Eliezer Weissmann
Michael Mishaeli
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of TW201346722A publication Critical patent/TW201346722A/zh
Application granted granted Critical
Publication of TWI493452B publication Critical patent/TWI493452B/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/30145Instruction analysis, e.g. decoding, instruction word fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package
    • 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
    • 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
    • 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/3017Runtime instruction translation, e.g. macros
    • G06F9/30174Runtime instruction translation, e.g. macros for non-native instruction set, e.g. Javabyte, legacy code
    • 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/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3802Instruction prefetching
    • G06F9/3808Instruction prefetching for instruction reuse, e.g. trace cache, branch target cache
    • 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/45504Abstract machines for programme code execution, e.g. Java virtual machine [JVM], interpreters, emulators
    • G06F9/45516Runtime code conversion or optimisation
    • G06F9/4552Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5094Allocation of resources, e.g. of the central processing unit [CPU] where the allocation takes into account power or heat criteria
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Hardware Redundancy (AREA)
  • Executing Machine-Instructions (AREA)

Description

非對稱多處理器系統中之二進制轉譯技術
本發明係有關於微處理器架構的領域。更特別地,本發明係有關於非對稱多處理器系統中之二進制轉譯。
非對稱多處理器系統(ASMP)結合具有不同能力或規格的計算核心。舉例而言,第一「大」核心含有不同於第二「小」核心之邏輯元件配置。在非對稱多處理器系統上執行程式碼的線程將從不同核心之間程式碼的作業系統透明核心遷移而獲利。
架構
圖1顯示非對稱多處理器系統(ASMP)的架構100的一部份。如同此處所述般,使用設有二進制轉譯器單元及二進制分析單元之再映射及遷移單元(RMU),此架構提供程式碼的二進制轉譯及核心之間程式碼的遷移。
記憶體102包括電腦可讀取儲存媒體(CRSM)且是可由處理核心或其它裝置存取以實施儲存於其上的指令或儲存資料於其中之任何可供使用的實體媒體。記憶體102可包括多個具有電性組件的邏輯元件,電性組件包含電晶體、電容器、電阻器、電感器、憶阻器、等等。記憶體102可包含但不限於隨機存取記憶體(RAM)、唯讀記憶 體(ROM)、電可抹拭可編程唯讀記憶體(EEPROM)、快閃記憶體、磁性儲存裝置、等等。
在記憶體102之內可儲存作業系統(未顯示出)。為了作業系統(OS)及一或更多個應用的利益,作業系統係配置成管理架構100內的硬體及服務。在OS及一或更多個應用的執行期間,產生一或更多個線程104以由核心或其它處理器所執行。各線程104包括程式碼106。
再映射及遷移單元(RMU)106包括邏輯、電路、內部程式碼、或是其組合,以接收線程104及將其中的程式碼遷移、轉譯、或二者,以遍佈於非對稱多核心執行。架構的不對稱性導因於具有不同指令集架構、不同邏輯元件、不同實體構造、等等之二或更多個核心的架構。
RMU 106包括控制單元108、遷移單元110、二進制轉譯器單元112、二進制分析單元114、轉譯黑名單單元116、轉譯快取單元117、及處理設定檔資料儲存器118。
耦合至再映射及遷移單元106是一或更多個第一核心(或是處理器)120(1)、120(2)、...、120(C)。這些核心可包括一或更多個監視單元122、性能監視、一或更多個「性能監視(perfmon)」單元124、等等。監視單元122係配置成監視指令集架構用法、性能、等等。性能監視單元124係配置成監視例如執行循環、電力狀態、等等核心功能。這些第一核心120實施第一指令集架構(ISA)126。
也耦合至再映射及遷移單元106是一或更多個第二核 心128(1)、128(2)、...、128(S)。第二核心128也包含一或更多個性能監視單元130。第二核心128實施第二ISA 132。在某些實施中,第一核心120及第二核心128的數量可以是不對稱的。舉例而言,有單一第一核心120(1)及第二核心128(1)、128(2)、及128(3)。雖然顯示二指令集架構,但是,須瞭解,更多個ISA可以存在於架構100中。在非對稱多處理器系統架構100中的ISA彼此不同,但是,一ISA可以是另一ISA的子集合。舉例而言,第二ISA 132可以是第一ISA 126的子集合。
在某些實施中,可使用匯流排以使第一核心120及第二核心128彼此耦合。第一核心120及第二核心128可被配置成共用快取記憶體或其它邏輯。如同此處所使用般,核心包含但不限於中央處理單元(CPU)、圖形處理單元(GPU)、浮點單元(FPU)等等。
如同參考圖3-9之下述中更詳細說明般,控制單元108包括邏輯以決定何時遷移、轉譯、或二者。遷移單元110管理核心120與128之間的線程104的遷移。
二進制轉譯器單元112含有邏輯以將線程104中的指令從一個指令集架構轉譯至另一個指令集架構。舉例而言,二進制轉譯器單元112將第一核心120的第一ISA 126本地的指令轉譯成第二ISA 132,使得經過轉譯的指令可於第二核心128上執行。由於指令未受第二ISA 132所支援,此轉譯允許第二核心128執行線程104中的程式 碼,在其它情況中,這會產生故障。
二進制分析單元114係配置成提供線程104的二進制分析。二進制分析104可包含辨識本地指令、決定指令是什麼ISA本地的、等等。此決定可用以選取哪些核心是要執行線程104或是其部份。在某些實施中,二進制分析單元114可被配置成將例如控制微操作等指令插入於線程104的程式碼中。
轉譯黑名單單元116維持從轉譯列入黑名單的指令集。舉例而言,在某些實施中,特定指令是令人無法接受地時間強化以產生二進制轉譯,並因而被排除轉譯。在另一實例中,特定指定可以更經常地執行並因而於指令特屬的核心上更有效地執行,並且被排除轉譯用於在另一核心上執行。在某些實施中,取代黑名單或是黑名單之外,使用白名單以表示要被轉譯的指令。
在RMU 106之內的轉譯快取單元117提供儲存給經過轉譯的程式碼。提供位址查詢機制,允許先前經過轉譯的程式碼被儲存及呼叫以用於執行。這藉由避免原始程式碼的再轉譯來增進性能。
如同此處所示,再映射及遷移單元106包括記憶體以儲存處理記錄,形成處理記錄資料儲存器118。處理記錄資料儲存器118含有關於線程104及它們的執行之資料。
再映射及遷移單元106的控制單元108從第二核心128接收ISA故障134。舉例而言,當由第二核心128所實施時,線程104含有非第二ISA 132本地的指令時, ISA故障134將此故障通知再映射及遷移單元106。再映射及遷移單元106也從例如第一核心120等核心接收ISA回饋136。ISA回饋136可包括關於執行期間使用的指令型式、處理器狀態、等等資料。再映射及遷移單元106使用ISA故障134及ISA回饋136至少部份地修改遍佈多個核心之程式碼106的遷移及轉譯。
在程式碼執行期間,第一核心120及第二核心128使用不同的電力量。舉例而言,第一核心120在這些核心的設計規格內的最大頻率及電壓下之正常操作期間個別地消耗第一最大功率。第一核心120可被配置成進入各種較低功率狀態,包含消耗第一最小功率的低功率或待機狀態,例如當關閉時為零。相對地,第二核心128在這些核心的設計規格內的最大頻率及電壓下之正常操作期間個別地消耗第二最大功率。第二最大功率小於第一最大功率。這因為很多原因而發生,包括第二核心128具有比第一核心120更少的邏輯元件、不同的半導體構造、等等。如同此處所示般,圖形顯示第一核心120的最大功率使用138與第二核心128的最大功率使用140相比。功率使用138大於功率使用140。
再映射及遷移單元106可使用ISA回饋136、ISA故障134、來自於二進制分析單元114的結果、等等,以決定何時及如何在第一核心120與第二核心128之間遷移線程104、或是轉譯線程104的程式碼的至少一部份以降低功率消耗、增加計算資源的整體利用、提供指令的本地執 行、等等。在最小化功率消耗的一實施中,線程104被轉譯及在具有較低功率使用140的第二核心128上執行。結果,消耗更多電力的第一核心120維持在低功率或是關閉模式。
再映射及遷移單元106也藉由查看「P狀態」的變化而決定程式碼的轉譯及遷移。核心的P狀態表示例如可由核心的頻率及操作電壓的特定結合所界定的性能之操作等級等等。舉例而言,高P狀態涉及以核心的最大設計頻率及電壓執行的核心。當作業系統改變P狀態及標示轉換至低功率和性能狀態時,再映射及遷移單元106起始從第一核心120至第二核心128的遷移,以最小化功率消耗。
在某些實施中,例如在系統晶片中,圖1中所示的元件中的數個元件可被配置在單一晶粒上。舉例而言,第一核心120、第二核心128、記憶體102、RMU 106、等等可以被配置在相同晶粒上。
圖2顯示線程及其碼段(code segment),這些碼段是具有不同的指令集架構的非對稱多處理器系統中不同的處理器本地特有的。線程104被顯示為包括程式碼202。此程式碼202又可被分成碼段204(1)、204(2)、...、204(N)。碼段204含有用於在核心上執行的指令。程式碼202可以根據被呼叫的函數、被使用的指令集、指令複雜度、長度、等等而被分佈成碼段204。
此處顯示不同長度的碼段204(1)、204(2)、...、204(N)之序列。在此顯示中所示的是碼段204中的指令 是指令集架構本地的。本地指令是不用二進制轉譯而可由核心執行的指令。此處,至少碼段204(1)及204(3)是第二ISA 132本地的,而碼段204(2)及204(4)是第一ISA 126本地的。
碼段204具有可變碼段長度206。在某些實施中,碼段204被視為基本構件。確切而言,它們具有單一進入點及單一離去點,並且含有迴路。長度可由二進制分析單元114或其它邏輯來予以決定。以指令的資料尺寸、指令的計數、等等,給定長度。在碼長度204包括迴路的情況中,將控制流程列入考慮,使得考慮執行期間程式碼202的真正長度。舉例而言,具有含有十次迭代的迴路之碼段長度的碼段204,在執行期間被視為具有十的碼段長度206。
碼段長度206可被用來決定碼段204是否要被轉譯或遷移。碼段長度206可與預定碼段長度臨界值208相比較。在碼段長度206小於臨界值208的情況中,轉譯可發生。在較大的情況中,使用遷移,但是在某些實施中,轉譯可同時發生。
對於此說明,考慮第二ISA 132是第一ISA 126的子集合。亦即,第一ISA 126能夠執行大部份或全部存在於第二ISA 132中的指令。為了最小化功率消耗,RMU 106可嘗試最大化第二核心128上的執行,第二核心128比第一核心120使用較少的功率140。沒有二進制轉譯,指令會於第二核心128上產生故障,第二核心128會呼叫線程 104遷移至第一核心120以用於執行。對於例如204(2)等在長度臨界值208之下的碼段,二進制轉譯提供可接受的淨省電、可接受的執行時間、等等。但是,對於例如204(4)等超過長度臨界值208之碼段,二進制轉譯造成增加的功率消耗、降低的執行時間、等等。以靜態方式配置或是動態地調整長度臨界值208。
除了碼段長度206之外,在某些實施中,可以考慮特定核心本地的碼段204中ISA使用的密度。考慮碼段204(2)何時被視為是第一ISA 126本地的但包括第一ISA 126與第二ISA 132之間共同的指令混合。當ISA 126本地之ISA的密度是在預定極限之下時,長度臨界值208增加。因此,用於特定ISA的指令密度可以用以改變長度臨界值208。
說明的處理
本揭示中所述的處理可由此處所述的裝置、或是其它裝置所實施。這些處理顯示為邏輯流程圖中的方塊總合。某些方塊代表能以硬體、軟體、或其組合所實施之操作。在軟體的環境中,方塊代表儲存在一或更多個電腦可讀取儲存媒體上之電腦可讀取指令,當由一或更多個處理器所執行時,執行所述操作。一般而言,電腦可讀取指含包含執行特定功能或是實施特定摘要資料型式之常式、程式、物件、組件、資料結構、等等。在硬體環境中,方塊代表配置成提供所述操作的電路配置。所述之操作的次序並非 要被解譯成限定,任何數目的所述方塊可以以任何次序或是平行地結合以實施處理。
圖3是選取的說明之處理300,選取何時遷移或轉譯碼段以在非對稱多處理器系統中的處理器上執行。如上所述,RMU 106包括邏輯以決定何時藉由實施下述處理來遷移、轉譯或二者。如同此處所示,在302,決定呼叫與第一ISA 126相關連的一或更多個指令之碼段204的長度206。舉例而言,二進制分析單元114決定長度206。
在304,當一或更多個指令不是在轉譯黑名單單元116中的轉譯黑名單中時,處理進行至306。在306,當碼段長度206小於預定長度臨界值208時,處理進行至308。在308,碼段204由二進制轉譯器單元112轉譯以在第二ISA 132上執行。在310,在實施第二ISA 132上的第二核心128上執行經過轉譯的碼段。
返回至304,當一或更多個指令在轉譯黑名單上時,處理進行至312。在312,碼段204遷移至第一核心120,第一核心120本地支援其中的一或更多個指令。在314,碼段304在第一核心120上本地執行。
返回至306,當碼段長度206不小於預定長度臨界值208時,處理進行至312以遷移碼段204。
圖4是選取的另一說明之處理400,選取何時遷移或轉譯碼段204以在非對稱多處理器系統中的核心上執行。RMU 106包括邏輯以決定何時藉由實施下述處理以遷移、轉譯、或二者。
在402,RMU 106從第二核心128接收故障指令,故障指令在第一核心120上執行時會呼叫第一ISA 126。換言之,第二核心128遭遇到在第二核心128的第二ISA 132中無法本地執行之線程104的程式碼202中的指令。
在404,當指令故障計數器在預定臨界值之下時,處理進行至406以及在預定間隔之後重設指令故障計數器。此重設有助於避免「膠著」於遷移選取。
在408,當指令不在轉譯黑名單上時,處理進行至410。在410,含有故障指令的碼段204由二進制轉譯器單元112轉譯,以致於經過轉譯的程式碼可在第二ISA 132中執行。
在412,當故障指令被執行時,經過轉譯的碼段被工具化(instrument)以使故障計數器增量。舉例而言,二進制分析單元114將工具化碼插入碼段204。在414,工具化轉譯碼在實施第二ISA 132的第二核心128上執行。隨著故障指令被第二核心128呼叫,工具化碼使故障計數器增量。
在某些實施中,在414執行工具化轉譯碼之後,例如參考404之上述所述般,處理決定何時指令故障計數器在預定臨界之下。當在預定臨界值之下時,在預定間隔之後處理重設指令故障計數器以及如下所述地進行至418以開始遷移及碼段的執行。
返回至404,當指令故障計數器不再在預定臨界值之下時,處理進行至416。在416,故障指令被加至由轉譯 黑名單單元116維持的轉譯黑名單。如上所述,處理接著進行至406。
返回408,當指令是在由轉譯黑名單單元116維持的轉譯黑名單上時,處理進行至418。在418,含有故障指令的碼段204遷移至實施第一ISA 126的第一核心120。在420,含有故障指令的碼段204在第一核心120上執行。
圖5是選取的另一說明之處理500,選取何時遷移或轉譯碼段以在非對稱多處理器系統中的核心上執行。RMU 106實施下述處理。
在502,RMU 106從第二核心128接收故障指令,故障指令在第一核心120上實施時會呼叫第一ISA 126。換言之,第二核心128遭遇到在第二核心128的第二ISA 132中無法本地執行之線程104的程式碼202中的指令。
在504,當這不是用於此指令的第一故障時,處理進行至506。在506,當指令故障計數器在預定臨界值之下時,處理進行至508。在508,在預定間隔之後重設指令故障計數器。
在510,當指令不在轉譯黑名單上時,處理進行至512。在512,含有故障指令的碼段204由二進制轉譯器單元112轉譯,以致於經過轉譯的程式碼可在第二ISA 132中執行。
在514,當故障指令被執行時,經過轉譯的碼段被工具化以使故障計數器增量。舉例而言,二進制分析單元 114將工具化碼插入碼段204。在516,工具化轉譯碼在實施第二ISA 132的第二核心128上執行。隨著故障指令被第二核心128呼叫,工具化碼使故障計數器增量。
返回至506,當指令故障計數器不再在預定臨界值之下時,處理進行至518。在518,故障指令被加至由轉譯黑名單單元116維持的轉譯黑名單。如上所述,處理接著進行至508。
返回510,當指令是在由轉譯黑名單單元116維持的轉譯黑名單上時,處理進行至520。在520,含有故障指令的碼段204遷移至實施第一ISA 126的第一核心120。在522,含有故障指令的碼段204在第一核心120上執行。
返回至504,當這是第一故障時,處理同時進行至512和520。因此,碼段204的二進制轉譯發生,並且也為了在第一核心120上本地執行而也遷移碼段204。當二進制轉譯完成時,使用經過轉譯的碼段,線程104遷回至第二核心128。藉由同時地執行這些操作,整體回應維持實質上不受轉譯處理影響。
圖6是遷回遷移的說明處理600。當線程104在短時間內遷移至一核心而非回至其它核心時,遷回發生。此回遷導入不希望的性能衝擊。下述處理可以併入參考圖3-5之上述所述的處理。RMU 106可以實施下述處理。
在602,二進制分析單元112決定線程104的程式碼202中的一或更多個指令當於第二核心128上執行時將產 生故障以及當於第一核心120上執行時不產生故障。舉例而言,一或更多個指令對於第一ISA 126是本地特有的,但對於第二ISA 132不是本地的。
在604,將產生故障的決定的指令的其中之一或更多加至轉譯黑名單。轉譯黑名單由轉譯黑名單單元116來予以維持。防止出現在轉譯黑名單中的指令從第一核心120遷移至第二核心128,並因而不被轉譯。如同參考圖3及4之上述所述般,轉譯黑名單可被用來決定在第二核心128上執行作為轉譯的碼段204何時遷移至第一核心120以供本地執行用。舉例而言,在第二核心128上初始轉譯及執行之後,指令被加至轉譯黑名單。接著在此添加之後,碼從第二核心128遷移至第一核心120。部份地根據碼段204之內的一些故障指令及執行頻率,對黑名單作出改變。RMU 106因而可實施臨界頻率,當達到臨界頻率時,將故障指令加至黑名單。此臨界頻率可被固定或是被動態地調整。
在606,含有故障指令的程式碼202被遷移至實施第一ISA 126的第一核心120。在608,含有故障指令的程式碼202在實施第一ISA 126的第一核心120上執行。結果,程式碼202執行而無故障。
圖7是說明藉由防止遷移直到達到預定的循環執行計數器臨界值為止之遷回遷移處理700。在702,線程104的程式碼202從第二核心128遷移至第一核心120。RMU 106可以實施下述處理。
在704,執行第一核心120上循環執行計數器的增量。在某些實施中,可以使用延遲計數器。在另一實施中,此計數器可以從例如性能監視單元124所產生之性能性能監視資料導出。
在706,防止遷移至第二核心128直到循環執行計數器達到預定的循環執行計數器臨界值為止。這超過例如功率降低等其它考慮。在知道核心之間的轉譯成本的情況中,轉換時間/整體時間的負擔可以降低。舉例而言,當轉換使用5,000循環及在從第一核心120轉換至第二核心128之前的預定循環執行臨界值是500,000循環時,假定在移至第二核心128之後立即再度轉換,負擔侷限於小於2%。
在某些實施中,預定的循環執行計數器臨界值可以是不對稱的。舉例而言,從第一核心120轉換至第二核心128的臨界值不同於從第二核心128轉換至第一核心120的臨界值。
圖8是說明藉由防止遷移直到達到預定的循環執行計數器臨界值為止之遷回遷移的另一處理800。RMU 106可實施下述處理。
在802,線程104的程式碼202從第二核心128遷移至第一核心120。在804,執行第一核心120上循環執行計數器的增量。在某些實施中,此計數器可以由性能監視單元124來予以維持。
在806,在遇到在第二核心128上執行期間將故障之 指令時,循環執行計數器被重設。在808,防止遷移至第二核心128直到循環執行計數器達到預定的循環執行計數器臨界值為止。此處理減輕線程104從第一核心120移至第二核心128且接著快速回至第一核心120之情況。循環執行臨界值的值視平均值或是期望的轉換成本之有關資訊而變。在某些實施中,此資訊可以從ISA回饋136導出並由監視單元122來予以提供。
圖9是說明部份地根據二進制分析器的使用之遷移的處理900。RMU 106可實施下述處理。如上所述,二進制分析單元114係配置成對線程104的程式碼202執行二進制分析。二進制分析包含被呼叫的指令之決定、由那些指令使用的指令集架構、等等。
在902,二進制分析單元114決定將於第二核心128無故障地執行的線程104中具有預定長度之碼段204。此預定長度可以被靜態或動態地設定。
在904,碼段204從第一核心120遷移至第二核心128。無論其它計數器或臨界值為何,此遷移佔優勢或發生。藉由分析程式碼202及提供前瞻(proactive)遷移,此處理增進系統性能。因此,不用等待達到臨界值,遷移即可發生。舉例而言,二進制分析單元114決定碼段204是否具有當在第二核心128上執行時將不故障之指令的一佰萬次迭代之迴路。假定如此,從第一核心120的遷移超過等待計數器達到預定的臨界位準。藉由降低第一核心120的使用,此前瞻遷移又降低功率消耗。
在某些實施中,動態計數器可被用來超過預定的遷移點。舉例而言,碼段204已被分析以便無故障地執行,但是在真正執行期間,當在第二核心128上執行時,事實上產生故障。這些故障使動態計數器增量並因而造成遷移。配合與圖3-8有關的上述說明所述的其它處理,使用處理900。
圖10是方塊圖,說明用以執行非對稱核心之間程式碼的遷移之系統1000。此系統可以被實施成為系統晶片(SoC)。互連單元1002係耦合至:一或更多個處理器1004,處理器1004包含一或更多個核心1006(1)-(N)組及共用快取單元1008;系統代理器單元1010;匯流排控制器單元1012;整合記憶體控制器單元1014;一組或一或更多個媒體處理器1016,包含整合圖形邏輯1018、用以提供靜態相機及/或攝影機的影像處理器1020、用以提供硬體音頻加速的音頻處理器1022、以及用以提供視頻編碼/解碼加速的視頻處理器1024;靜態隨機存取記憶體(SRAM)單元1026;直接記憶體存取(DMA)單元1028;以及,顯示單元1040,用於耦合至一或更多個外部顯示器。在一個實施中,RMU 106、二進制轉譯器單元112、或二者,經由互連1002而被耦合至核心1006。在另一實施中,RMU 106、二進制分析單元112、或二者,經由核心之間的另一互連而被耦合至核心1006。
處理器1004包括一或更多個核心1006(1)、1006 (2)、...、1006(N)。這些核心1006包括第一核心120(1)-120(c)、第二核心128(1)-128(S)、等等。在某些實施中,處理器1004可包括例如第一核心120等單一型式的核心,而在其它實施中,處理器1004包括例如第一核心120、第二核心128、等等二或更多個相異型式的核心。各核心可包含邏輯的實例以為該各別核心執行各式各樣的工作。邏輯可包含一或更多個專用的電路、邏輯單元、微碼、等等。
共用快取單元1008可包含一或更多個中階快取記憶體,例如階層2(L2)、階層3(L3)、階層4(L4)、或其它階層的快取記憶體、最後一階快取記憶體(LLC)、及/或其組合。系統代理器單元1010可包含包含協調及操作核心1006(1)-(N)的那些組件。系統代理器單元1010可包含例如功率控制單元(PCU)及顯示單元。PCU可為或是包含調節核心1006(1)-(N)及整合圖形邏輯1018的功率狀態所需的邏輯及組件。顯示單元係用來驅動一或更多個外部連接的顯示器。
圖11顯示含有中央處理單元(CPU)及圖形處理單元(GPU)的處理器,其可執行如此處所述的用於操作核心切換之指令。在一個實施例中,用以執行根據至少一實施例的操作之指令可由CPU所執行。在另一實施例中,指令可由GPU所執行。在仍然另一實施例中,經由GPU及CPU所執行的操作的組合,執行指令。舉例而言,在一個實施例中,根據一個實施例的指令被接收及解碼,以 在GPU上執行。但是,在經過解碼的指令之內的一或更多個操作由CPU所執行,且為了指令的最後退出,將結果歸還給GPU。相反地,在某些實施例中,CPU可用作為主處理器及GPU用作為副處理器。
在某些實施例中,從高度平行、通量處理得利的指令由GPU所執行,而從得利於深度管線化架構的處理器得到優勢的指令可由CPU所執行。舉例而言,圖形、科學應用、財務應用及其它平行工作量可以從GPU的性能得利並因而被執行,而例如作業系統核心等更多個順序應用可以更佳地適用於CPU。
圖11顯示處理器1100,其包括CPU 1102、GPU 1104、影像處理器1106、視頻處理器1108、USB控制器1110、UART控制器1112、SPI/SDIO控制器1114、顯示裝置1116、記憶體介面控制器1118、MIPI控制器1120、快閃記憶體控制器1122、雙資料速率(DDR)、控制器1124、安全引擎1126、及I2S/I2C控制器1128。在包含更多個CPU或GPU及其它週邊介面控制器之圖11的處理器中,可以包含其它邏輯及電路。
處理器1100可包括一或更多個類似或相異的核心。舉例而言,處理器1100包含一或更多個第一核心120(1)-120(C)、第二核心128(1)-128(S)、等等。在某些實施中,處理器1100可包括例如第一核心120等單一型式的核心,而在其它實施中,處理器可包括例如第一核心120、第二核心128、等等二或更多個相異型式的 核心。
以儲存在機器可讀取媒體上表示處理器內各種邏輯的表示資料,實施至少一實施例的一或更多個態樣,表示資料當由機器所讀取時會促使機器製造邏輯以執行此處所述的技術。稱為「IP核心」的這些表示可以儲存在實體的、機器可讀取媒體(「帶子」)上以及供應給各式各樣的客戶或製造設備,以載入真正製造邏輯或處理器的製造機器。舉例而言,例如ARM Holdings,Ltd.開發的CortexTM 系列處理器、以及由中國科學院的計算技術研究所(ICT)開發的龍芯(Loongson)IP核心等IP核心可以授權或賣給例如德州儀器(Texas Instruments)、高通(Qualcomm)、蘋果(Apple)、或三星(Samsung)等各式各樣的客戶或被授權者,且被實施於由這些客戶或被授權者所製造的處理器中。
圖12為說明使用配置成環式結構1202的互連之非對稱多核心處理單元1200的示意圖。環式結構1202可容納核心1、2、3、4、5、...、X之間的資料交換。如上所述,核心可包含一或更多個第一核心120及一或更多個第二核心128。
圖13為說明使用配置成網狀1302的互連之非對稱多核心處理單元1300的示意圖。網狀網路1302可容納耦合至其之核心1與其它核心2、3、4、5、6、7...、X之間的、或是在這些核心的任何組合之間的資料交換。
圖14為說明使用配置成點對點配置1402的互連之非 對稱多核心處理單元1400的示意圖。點對點配置1402可容納這些核心的任何組合之間的資料交換。
結論
雖然以結構特點及/或方法動作特定的語言,說明標的,但是,須瞭解,在後附的申請專利範圍中所界定的標的不一定侷限於所述的這些特定特點或是動作。相反地,以實施申請專利範圍的說明形式來揭示這些特定特點及動作。舉例而言,方法動作無需依此處所述的次序或結合來執行,而是可以以一或更多個動作的任何組合來予以執行。
100‧‧‧非對稱多處理器系統的架構
1000‧‧‧系統
1100‧‧‧處理器
1200‧‧‧非對稱多核心處理單元
1300‧‧‧非對稱多核心處理單元
1400‧‧‧非對稱多核心處理單元
參考附圖,揭示詳細說明。在圖式中,代號的最左方數字表示第一次出現代號的圖式。在不同的圖式中使用相同的代號以表示類似或相同的項目或特點。
圖1顯示提供程式碼的二進制轉譯之非對稱多處理器系統的架構的一部份。
圖2顯示線程及其碼段,這些碼段是具有不同的指令集架構的非對稱多處理器系統中不同的處理器本地特有的指令。
圖3是選取的說明之處理,選取何時遷移或轉譯碼段以在非對稱多處理器系統中的處理器上執行。
圖4是選取的另一說明之處理,選取何時遷移或轉譯 碼段以在非對稱多處理器系統中的核心上執行。
圖5是選取的另一說明之處理,選取何時遷移或轉譯碼段以在非對稱多處理器系統中的核心上執行。
圖6是說明遷回遷移處理。
圖7說明藉由防止遷移直到達到預定的循環執行計數器臨界值為止之遷回遷移處理。
圖8說明藉由防止遷移直到達到預定的循環執行計數器臨界值為止之另一遷回遷移處理。
圖9說明至少部份根據二進制分析器使用之遷移處理。
圖10是方塊圖,說明用以執行非對稱核心之間程式碼的遷移之系統。
圖11是根據一實施例之處理器的方塊圖。
圖12是說明使用配置成環式結構的互連之非對稱多處理單元的示意圖。
圖13是說明使用配置成網狀的互連之非對稱多核心處理單元的示意圖。
圖14是說明使用配置成點對點配置的互連之非對稱多核心處理單元的示意圖。
100‧‧‧非對稱多處理器系統的架構
102‧‧‧記憶體
104‧‧‧線程
106‧‧‧再映射及遷移單元(RMU)
108‧‧‧控制單元
116‧‧‧轉譯黑名單單元
117‧‧‧轉譯快取單元
110‧‧‧遷移單元
118‧‧‧處理記錄資料儲存器
112‧‧‧二進制轉譯器單元
114‧‧‧二進制分析單元
136‧‧‧ISA回饋
126‧‧‧第一指令集架構(ISA)
120(1)‧‧‧第一核心(處理器)
122‧‧‧監視單元
124‧‧‧性能監視單元
120(C)‧‧‧第一核心(處理單)
122‧‧‧監視單元
124‧‧‧性能監視單元
138‧‧‧電力使用
132‧‧‧第二指令集架構(ISA)
128(1)‧‧‧第二核心
130‧‧‧性能監視單元
128(S)‧‧‧第二核心
130‧‧‧性能監視單元
140‧‧‧電力使用
134‧‧‧ISA故障

Claims (16)

  1. 一種裝置,包括:控制單元,用以選擇是否在第一核心上執行碼段或是將該碼段轉譯以便在第二核心上執行,其中,該控制單元用以藉由決定碼段長度及當該碼段長度係在預定長度臨界值之下時轉譯而做選擇;遷移單元,用以接受該選擇而在該第一核心上執行該碼段並且將該碼段遷移至該第一核心;二進制轉譯器單元,用以接受該選擇而轉譯該碼段及產生該碼段的二進制轉譯以便在該第二核心上執行;以及轉譯黑名單單元,用以維持不執行二進制轉譯的指令之清單。
  2. 如申請專利範圍第1項之裝置,該第一核心用以執行來自第一指令集架構的指令以及該第二核心用以執行來自包括該第一指令集架構的子集合之第二指令集架構的指令。
  3. 一種處理器,包括:第一核心,以第一最大功率消耗率來操作;第二核心,以第二最大功率消耗率來操作,該第二最大功率消耗率小於該第一最大功率消耗率;以及再映射及遷移邏輯,用以選擇:何時在該第一核心上執行程式碼而不需二進制轉譯;以及何時對該程式碼施加二進制轉譯以產生經過轉譯 的程式碼而在該第二核心上執行,其中,該再映射及遷移邏輯用以決定呼叫與由該第一核心所實施之第一指令集架構相關連的一或多個指令之該程式碼中的碼段之長度;當該一或多個指令不在轉譯黑名單上時,決定該碼段的長度;當該碼段的長度小於預定臨界值時:將該碼段轉譯以在由該第二核心所實施的第二指令集架構上執行,並且致使在該第二核心上執行該經過轉譯的碼段;當該碼段的該長度不小於預定臨界值時,用以:將該碼段遷移至該第一核心;致使在該第一核心上本地執行該碼段;當該一或多個指令係在轉譯黑名單上時,用以:將該碼段遷移至該第一核心;以及致使在該第一核心上本地執行該碼段。
  4. 如申請專利範圍第3項之處理器,相較於當沒有選擇發生時,該再映射及遷移邏輯的該選擇用以降低在該程式碼的執行期間該第一及第二核心的整體功率消耗。
  5. 如申請專利範圍第3項之處理器,該再映射及遷移的該選擇包括:從該第二核心接收表示呼叫第一指令集架構的故障指 令之故障;當指令故障計數器係在預定的臨界值之下時,在預定間隔之後重設該指令故障計數器;當該故障指令係不在轉譯黑名單上時:將含有該故障指令的該程式碼的碼段轉譯成第二指令集架構;當該故障指令被執行時,將該經過轉譯的碼段工具化以使該指令故障計數器增量;在實施該第二指令集架構的該第二核心上執行該工具化的轉譯碼以及當故障指令被呼叫時使該故障計數器增量;當該故障指令係在轉譯黑名單上時:將含有該故障指令的該碼段遷移至實施該第一指令集架構的該第一核心;在該第一核心上執行含有該故障指令的該碼段;以及當該指令故障計數器係不在該預定臨界值之下時,將該故障指令加至該轉譯黑名單。
  6. 如申請專利範圍第3項之處理器,該選擇包括:從該第二核心接收表示呼叫第一指令集架構的故障指令之故障;當該故障不是第一故障時:當指令故障計數器係在預定的臨界值之下時,在預定間隔之後重設故障計數器; 當該故障指令係不在轉譯黑名單上時:將含有該故障指令的該程式碼的碼段轉譯成第二指令集架構;當該故障指令被執行時,將該經過轉譯的碼段工具化以使該指令故障計數器增量;在實施該第二指令集架構的該第二核心上執行該工具化的轉譯碼以及當故障指令被呼叫時使該故障計數器增量;當該指令故障計數器係不在該預定的臨界值之下時,將該故障指令加至該轉譯黑名單;當該故障指令係在轉譯黑名單上時:將含有該故障指令的該碼段遷移至實施該第一指令集架構的該第一核心;在該第一核心上執行含有該故障指令的該碼段;以及當該故障是第一故障時,同時續行至該轉譯及遷移。
  7. 如申請專利範圍第3項之處理器,又包括二進制分析邏輯,用以:決定該程式碼中的一或多個指令何時會產生故障於在該第二核心上執行時,以及何時不會產生故障於在該第一核心上執行時;將該一或多個故障指令加至轉譯黑名單;將含有該故障指令的該程式碼遷移至實施該第一指令集架構的該第一核心;以及 在該第一核心上執行含有該故障指令的該程式碼。
  8. 如申請專利範圍第3項之處理器,該再映射及遷移邏輯又用以:將該程式碼從該第二核心遷移至該第一核心;在該第一核心上執行循環執行計數器的增量;以及防止從該第一核心遷移至該第二核心,直到該循環執行計數器達到預定的循環執行計數器臨界值為止。
  9. 如申請專利範圍第3項之處理器,該再映射及遷移邏輯又用以:將該程式碼從該第二核心遷移至該第一核心;在該第一核心上執行循環執行計數器的增量;在遭遇在該第二核心上執行期間故障之指令時,重設該循環執行計數器;以及防止遷移至該第二核心,直到該循環執行計數器達到預定的循環執行計數器臨界值為止。
  10. 如申請專利範圍第3項之處理器,二進制分析邏輯又用以:決定該程式碼中預定長度的複數個碼段將在該第二核心上無故障地執行;以及將該等碼段從該第一核心遷移至該第二核心。
  11. 一種方法,包括:將用以在第一處理器或第二處理器上執行的程式碼接收至記憶體中,其中,該第一處理器及該第二處理器使用不同的指令集架構; 決定何時在該第一處理器上執行該程式碼;以及決定何時對該程式碼施加二進制轉譯以產生經過轉譯的程式碼,並且藉由將呼叫與該等指令集架構的其中一者相關連的一或多個指令之碼段的長度與預定臨界長度做比較而在該第二處理器上執行該經過轉譯的程式碼。
  12. 如申請專利範圍第11項之方法,該決定何時在該第一處理器上執行該程式碼包括比較該程式碼中的指令與轉譯黑名單。
  13. 如申請專利範圍第11項之方法,該決定何時在該第一處理器上執行該程式碼而不需二進制轉譯包括比較該程式碼中的指令與轉譯黑名單。
  14. 如申請專利範圍第11項之方法,又包括:在該第一處理器上執行該程式碼並同時地產生該經過轉譯的程式碼;以及當該經過轉譯的程式碼被產生時,使用該經過轉譯的程式碼,將該程式碼從該第一處理器遷移至該第二處理器。
  15. 如申請專利範圍第11項之方法,該決定何時施加二進制轉譯包括決定當在該第一處理器上及該第二處理器上執行時該程式碼的功率消耗。
  16. 如申請專利範圍第11項之方法,又包括對該程式碼執行二進制分析以決定該程式碼中的指令何時會產生故障於當被執行於該第二處理器上而不是該第一處理器上時,以及,該決定何時對該程式碼施加二進制轉譯是根據該二進制分析。
TW101147868A 2011-12-28 2012-12-17 非對稱多處理器系統中之二進制轉譯技術 TWI493452B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/067654 WO2013100996A1 (en) 2011-12-28 2011-12-28 Binary translation in asymmetric multiprocessor system

Publications (2)

Publication Number Publication Date
TW201346722A TW201346722A (zh) 2013-11-16
TWI493452B true TWI493452B (zh) 2015-07-21

Family

ID=48698238

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101147868A TWI493452B (zh) 2011-12-28 2012-12-17 非對稱多處理器系統中之二進制轉譯技術

Country Status (3)

Country Link
US (1) US20140019723A1 (zh)
TW (1) TWI493452B (zh)
WO (1) WO2013100996A1 (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8799693B2 (en) 2011-09-20 2014-08-05 Qualcomm Incorporated Dynamic power optimization for computing devices
US9098309B2 (en) * 2011-09-23 2015-08-04 Qualcomm Incorporated Power consumption optimized translation of object code partitioned for hardware component based on identified operations
US10146545B2 (en) 2012-03-13 2018-12-04 Nvidia Corporation Translation address cache for a microprocessor
US9880846B2 (en) 2012-04-11 2018-01-30 Nvidia Corporation Improving hit rate of code translation redirection table with replacement strategy based on usage history table of evicted entries
CN104471587B (zh) * 2012-05-16 2018-01-23 诺基亚技术有限公司 处理器中的方法,装置和计算机程序产品
US10241810B2 (en) * 2012-05-18 2019-03-26 Nvidia Corporation Instruction-optimizing processor with branch-count table in hardware
US8982124B2 (en) 2012-09-29 2015-03-17 Intel Corporation Load balancing and merging of tessellation thread workloads
US9123167B2 (en) 2012-09-29 2015-09-01 Intel Corporation Shader serialization and instance unrolling
US20140189310A1 (en) 2012-12-27 2014-07-03 Nvidia Corporation Fault detection in instruction translations
US10108424B2 (en) 2013-03-14 2018-10-23 Nvidia Corporation Profiling code portions to generate translations
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
GB2546465B (en) 2015-06-05 2018-02-28 Advanced Risc Mach Ltd Modal processing of program instructions
CN106325819B (zh) * 2015-06-17 2019-08-02 华为技术有限公司 计算机指令处理方法、协处理器和系统
US9928115B2 (en) 2015-09-03 2018-03-27 Apple Inc. Hardware migration between dissimilar cores
US9710305B2 (en) * 2015-11-12 2017-07-18 International Business Machines Corporation Virtual machine migration management
US10223061B2 (en) * 2015-12-17 2019-03-05 International Business Machines Corporation Display redistribution between a primary display and a secondary display
US10043232B1 (en) 2017-04-09 2018-08-07 Intel Corporation Compute cluster preemption within a general-purpose graphics processing unit
US10325341B2 (en) 2017-04-21 2019-06-18 Intel Corporation Handling pipeline submissions across many compute units
US10235178B2 (en) * 2017-06-02 2019-03-19 Microsoft Technology Licensing, Llc Performance scaling for binary translation
CN112785482A (zh) * 2019-11-07 2021-05-11 英特尔公司 用于将可执行对象适配到处理单元的系统和方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100005474A1 (en) * 2008-02-29 2010-01-07 Eric Sprangle Distribution of tasks among asymmetric processing elements
US7734895B1 (en) * 2005-04-28 2010-06-08 Massachusetts Institute Of Technology Configuring sets of processor cores for processing instructions
US20100274551A1 (en) * 2009-04-24 2010-10-28 Sun Microsystems, Inc. Support for a non-native application
TW201112118A (en) * 2009-07-27 2011-04-01 Advanced Micro Devices Inc Mapping processing logic having data-parallel threads across processors
TW201140435A (en) * 2009-12-22 2011-11-16 Intel Corp Synchronizing SIMD vectors

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6480952B2 (en) * 1998-05-26 2002-11-12 Advanced Micro Devices, Inc. Emulation coprocessor
US6327704B1 (en) * 1998-08-06 2001-12-04 Hewlett-Packard Company System, method, and product for multi-branch backpatching in a dynamic translator
EP1182567B1 (en) * 2000-08-21 2012-03-07 Texas Instruments France Software controlled cache configuration
US7171546B2 (en) * 2002-05-23 2007-01-30 Adams Phillip M CPU life-extension apparatus and method
US7100060B2 (en) * 2002-06-26 2006-08-29 Intel Corporation Techniques for utilization of asymmetric secondary processing resources
US7774558B2 (en) * 2005-08-29 2010-08-10 The Invention Science Fund I, Inc Multiprocessor resource optimization
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
US9348594B2 (en) * 2011-12-29 2016-05-24 Intel Corporation Core switching acceleration in asymmetric multiprocessor system

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7734895B1 (en) * 2005-04-28 2010-06-08 Massachusetts Institute Of Technology Configuring sets of processor cores for processing instructions
US20100005474A1 (en) * 2008-02-29 2010-01-07 Eric Sprangle Distribution of tasks among asymmetric processing elements
US20100274551A1 (en) * 2009-04-24 2010-10-28 Sun Microsystems, Inc. Support for a non-native application
TW201112118A (en) * 2009-07-27 2011-04-01 Advanced Micro Devices Inc Mapping processing logic having data-parallel threads across processors
TW201140435A (en) * 2009-12-22 2011-11-16 Intel Corp Synchronizing SIMD vectors

Also Published As

Publication number Publication date
US20140019723A1 (en) 2014-01-16
TW201346722A (zh) 2013-11-16
WO2013100996A1 (en) 2013-07-04

Similar Documents

Publication Publication Date Title
TWI493452B (zh) 非對稱多處理器系統中之二進制轉譯技術
US9348594B2 (en) Core switching acceleration in asymmetric multiprocessor system
KR101275698B1 (ko) 데이터 처리 방법 및 장치
US8190863B2 (en) Apparatus and method for heterogeneous chip multiprocessors via resource allocation and restriction
Hadidi et al. Cairo: A compiler-assisted technique for enabling instruction-level offloading of processing-in-memory
US20090113181A1 (en) Method and Apparatus for Executing Instructions
TWI537831B (zh) 多核心處理器、用於執行處理程序切換之方法、用於保全一記憶體區塊之方法、用於致能使用一多核心裝置之異動處理之設備、以及用於執行記憶體異動處理之方法
US20070150895A1 (en) Methods and apparatus for multi-core processing with dedicated thread management
US20150355700A1 (en) Systems and methods of managing processor device power consumption
WO2017079089A1 (en) Backward compatibility testing of software in a mode that disrupts timing
US10558460B2 (en) General purpose register allocation in streaming processor
CN108885586B (zh) 用于以有保证的完成将数据取出到所指示的高速缓存层级的处理器、方法、系统和指令
Hoogerbrugge et al. A multithreaded multicore system for embedded media processing
US7152170B2 (en) Simultaneous multi-threading processor circuits and computer program products configured to operate at different performance levels based on a number of operating threads and methods of operating
US20140068792A1 (en) Information processing apparatus and control method
US20180365022A1 (en) Dynamic offlining and onlining of processor cores
US11816061B2 (en) Dynamic allocation of arithmetic logic units for vectorized operations
KR20230041593A (ko) 프로그래밍가능한 인터리브 입도를 갖는 cxl 타입-2 디바이스들을 위한 확장가능한 주소 디코딩 체계
CN114830083A (zh) 调度器队列分配突发模式
Gajaria et al. ARC: DVFS-aware asymmetric-retention STT-RAM caches for energy-efficient multicore processors
US20130166887A1 (en) Data processing apparatus and data processing method
US9361103B2 (en) Store replay policy
CN117667787B (zh) 运算装置及其操作方法和机器可读存储介质
Zhai et al. The algorithm of thread scheduling with an Improvement Accelerating Critical Section of migration strategy
JP2020071746A (ja) コンパイラ、コンパイル方法、及びコンピュータシステム

Legal Events

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