TWI474191B

Control register mapping in heterogeneous instruction set architecture processor

Abstract

A microprocessor capable of running both x86 instruction set architecture (ISA) machine language programs and Advanced RISC Machines (ARM) ISA machine language programs. The microprocessor includes a mode indicator that indicates whether the microprocessor is currently fetching instructions of an x86 ISA or ARM ISA machine language program. The microprocessor also includes a plurality of model-specific registers (MSRs) that control aspects of the operation of the microprocessor. When the mode indicator indicates the microprocessor is currently fetching x86 ISA machine language program instructions, each of the plurality of MSRs is accessible via an x86 ISA RDMSR/WRMSR instruction that specifies an address of the MSR. When the mode indicator indicates the microprocessor is currently fetching ARM ISA machine language program instructions, each of the plurality of MSRs is accessible via an ARM ISA MRRC/MCRR instruction that specifies the address of the MSR.

TWI474191B, drawing sheet 1
Sheet 1 of 27

Term

No projected expiry on record.

  1. Priority
  2. Filed
  3. Granted
  4. Today

90 claims: 15 independent, 75 dependent

  1. 1
    A microprocessor capable of executing an x86 instruction set architecture (ISA) machine language program and an Advanced RISC Machines (ARM) ISA machine language program, the microprocessor comprising:an instruction mode , instructing the microprocessor to capture an x86 ISA or an ARM ISA machine language program instruction;and a plurality of specific model-specific registers (MSRs) for controlling the operation mode of the microprocessor;When the instruction mode instructs the microprocessor to retrieve x86 ISA machine language program instructions, each particular model register is accessed via an x86 ISA RDMSR/WRMSR instruction, and the x86 ISA RDMSR/WRMSR instruction specifies the An address of a particular model register;wherein, when the instruction mode instructs the microprocessor to retrieve an ARM ISA machine language program instruction, each particular model register is accessed via an ARM ISA MRRC/MCRR instruction, And the ARM ISA MRRC/MCRR instruction specifies the address of the specific model register. 一種微處理器,係可執行x86指令集架構(instruction set architecture;ISA)機器語言程式以及進階精簡指令集機器(Advanced RISC Machines;ARM)ISA機器語言程式,該微處理器包含:一指令模式,係指示該微處理器擷取一x86 ISA或一ARM ISA機器語言程式指令;以及複數個特定模型暫存器(model-specific registers;MSRs),係控制該微處理器之操作方式;其中,當該指令模式指示該微處理器擷取x86 ISA機器語言程式指令時,每一特定模型暫存器係經由一x86 ISA RDMSR/WRMSR指令而存取,且該x86 ISA RDMSR/WRMSR指令係指定該特定模型暫存器之位址;其中,當該指令模式指示該微處理器擷取ARM ISA機器語言程式指令時,每一特定模型暫存器係經由一ARM ISA MRRC/MCRR指令而存取,且該ARM ISA MRRC/MCRR指令係指定該特定模型暫存器之位址。 一種微處理器,係可執行x86指令集架構(instruction set architecture;ISA)機器語言程式以及進階精簡指令集機器(Advanced RISC Machines;ARM)ISA機器語言程式,該微處理器包含:一指令模式,係指示該微處理器擷取一x86 ISA或一ARM ISA機器語言程式指令;以及複數個特定模型暫存器(model-specific registers;MSRs),係控制該微處理器之操作方式;其中,當該指令模式指示該微處理器擷取x86 ISA機器語言程式指令時,每一特定模型暫存器係經由一x86 ISA RDMSR/WRMSR指令而存取,且該x86 ISA RDMSR/WRMSR指令係指定該特定模型暫存器之位址;其中,當該指令模式指示該微處理器擷取ARM ISA機器語言程式指令時,每一特定模型暫存器係經由一ARM ISA MRRC/MCRR指令而存取,且該ARM ISA MRRC/MCRR指令係指定該特定模型暫存器之位址。
  2. 16
    A method of accessing a plurality of specific model-specific registers (MSRs) for controlling the operation mode of a microprocessor, and executing an x86 instruction set architecture (ISA) machine language program and An Advanced RISC Machines (ARM) ISA machine language program having an instruction mode instructing the microprocessor to retrieve an x86 ISA or an ARM ISA machine language program instruction. The method of taking a plurality of specific model registers includes:accessing the specific model registers via an x86 ISA RDMSR/WRMSR instruction when the instruction mode instructs the microprocessor to retrieve the x86 ISA machine language program In addition, the x86 ISA RDMSR/WRMSR instruction is used to specify the address of the specific model register;when the instruction mode instructs the microprocessor to retrieve the ARM ISA machine language program instruction, via an ARM ISA MRRC The /MCRR instruction accesses one of the specific model registers, and the ARM ISA MRRC/MCRR instruction is used to specify the address of the particular model register. 一種存取複數個特定模型暫存器(model-specific registers;MSRs)之方法,係控制一微處理器之操作方式,而可以執行x86指令集架構(instruction set architecture;ISA)機器語言程式以及進階精簡指令集機器(Advanced RISC Machines;ARM)ISA機器語言程式,該微處理器具有一指令模式,該指令模式係指示該微處理器擷取一x86 ISA或一ARM ISA機器語言程式指令,該存取複數個特定模型暫存器方法包含:當該指令模式指示該微處理器擷取該x86 ISA機器語言程式時,經由一x86 ISA RDMSR/WRMSR指令來存取該些特定模型暫存器中之一者,而該x86 ISA RDMSR/WRMSR指令係用以指定該特定模型暫存器之位址;當該指令模式指示該微處理器擷取該ARM ISA機器語言程式指令時,經由一ARM ISA MRRC/MCRR指令來存取該些特定模型暫存器中之一者,而該ARM ISA MRRC/MCRR指令係用以指定該特定模型暫存器之位址。 一種存取複數個特定模型暫存器(model-specific registers;MSRs)之方法,係控制一微處理器之操作方式,而可以執行x86指令集架構(instruction set architecture;ISA)機器語言程式以及進階精簡指令集機器(Advanced RISC Machines;ARM)ISA機器語言程式,該微處理器具有一指令模式,該指令模式係指示該微處理器擷取一x86 ISA或一ARM ISA機器語言程式指令,該存取複數個特定模型暫存器方法包含:當該指令模式指示該微處理器擷取該x86 ISA機器語言程式時,經由一x86 ISA RDMSR/WRMSR指令來存取該些特定模型暫存器中之一者,而該x86 ISA RDMSR/WRMSR指令係用以指定該特定模型暫存器之位址;當該指令模式指示該微處理器擷取該ARM ISA機器語言程式指令時,經由一ARM ISA MRRC/MCRR指令來存取該些特定模型暫存器中之一者,而該ARM ISA MRRC/MCRR指令係用以指定該特定模型暫存器之位址。
  3. 19
    A method for accessing a plurality of specific model registers as described in claim 16 wherein the microprocessor has a microcode comprising a first portion and a second portion, and the first portion is adapted to The x86 ISA RDMSR/WRMSR instruction is executed, and the second part is executed in response to the ARM ISA MRRC/MCRR instruction, wherein the method includes:transferring control from the second part to the first part. 如申請專利範圍第16項所述之存取複數個特定模型暫存器之方法,其中該微處理器具有微碼,包含一第一部分及一第二部份,且第一部份係因應於該x86 ISA RDMSR/WRMSR指令而執行,且該第二部份係因應於該ARM ISA MRRC/MCRR指令而執行,其中該方法包含:由該第二部份轉移控制權至該第一部份。 如申請專利範圍第16項所述之存取複數個特定模型暫存器之方法,其中該微處理器具有微碼,包含一第一部分及一第二部份,且第一部份係因應於該x86 ISA RDMSR/WRMSR指令而執行,且該第二部份係因應於該ARM ISA MRRC/MCRR指令而執行,其中該方法包含:由該第二部份轉移控制權至該第一部份。
  4. 21
    A computer program product encoded in at least one computer readable storage medium for use in an computing device, the computer program product comprising:a computer readable program code for use in the computer readable storage medium for designating An executable x86 instruction set architecture (ISA) machine language program and a microprocessor of an Advanced RISC Machines (ARM) ISA machine language program, the computer readable code includes: a code for specifying an instruction mode for instructing the microprocessor to retrieve an x86 ISA or an ARM ISA machine language program instruction;and a second code for specifying a plurality of specific models Model-specific registers (MSRs), and the specific model registers control the manner in which the microprocessor operates;wherein, when the instruction mode instructs the microprocessor to retrieve x86 ISA machine language program instructions, each A particular model register is accessed via an x86 ISA RDMSR/WRMSR instruction, and the x86 ISA MRRC/MCRR instruction specifies the location of the particular model register ;Wherein, when the instruction mode indicates that the microprocessor to retrieve ARM ISA machine language program instruction, each specific model via a register-based ARM ISA Accessed by the MRRC/MCRR instruction, and the ARM ISA MRRC/MCRR instruction specifies the address of the particular model register. 一種電腦程式產品,係編碼於至少一電腦可讀取儲存媒介,以使用於一運算裝置,該電腦程式產品包含:一電腦可讀程式碼,係應用於該電腦可讀取儲存媒介,藉以指定一可執行x86指令集架構(instruction set architecture;ISA)機器語言程式以及進階精簡指令集機器(Advanced RISC Machines;ARM)ISA機器語言程式之微處理器,該電腦可讀程式碼包含:一第一程式碼,係用以指定一指令模式,該指令模式係指示該微處理器擷取一x86 ISA或一ARM ISA機器語言程式指令;以及一第二程式碼,係用以指定複數個特定模型暫存器(model-specific registers;MSRs),且該些特定模型暫存器係控制微處理器操作方式;其中,當該指令模式指示該微處理器擷取x86 ISA機器語言程式指令時,每一特定模型暫存器係經由一x86 ISA RDMSR/WRMSR指令而存取,且該x86 ISA MRRC/MCRR指令係指定該特定模型暫存器之位址;其中,當該指令模式指示該微處理器擷取ARM ISA機器語言程式指令時,每一特定模型暫存器係經由一ARM ISA MRRC/MCRR指令而存取,且該ARM ISA MRRC/MCRR指令係指定該特定模型暫存器之位址。 一種電腦程式產品,係編碼於至少一電腦可讀取儲存媒介,以使用於一運算裝置,該電腦程式產品包含:一電腦可讀程式碼,係應用於該電腦可讀取儲存媒介,藉以指定一可執行x86指令集架構(instruction set architecture;ISA)機器語言程式以及進階精簡指令集機器(Advanced RISC Machines;ARM)ISA機器語言程式之微處理器,該電腦可讀程式碼包含:一第一程式碼,係用以指定一指令模式,該指令模式係指示該微處理器擷取一x86 ISA或一ARM ISA機器語言程式指令;以及一第二程式碼,係用以指定複數個特定模型暫存器(model-specific registers;MSRs),且該些特定模型暫存器係控制微處理器操作方式;其中,當該指令模式指示該微處理器擷取x86 ISA機器語言程式指令時,每一特定模型暫存器係經由一x86 ISA RDMSR/WRMSR指令而存取,且該x86 ISA MRRC/MCRR指令係指定該特定模型暫存器之位址;其中,當該指令模式指示該微處理器擷取ARM ISA機器語言程式指令時,每一特定模型暫存器係經由一ARM ISA MRRC/MCRR指令而存取,且該ARM ISA MRRC/MCRR指令係指定該特定模型暫存器之位址。
  5. 23
    A microprocessor capable of executing an x86 instruction set architecture (ISA) machine language program and an Advanced RISC Machines (ARM) ISA machine language program, the microprocessor comprising:an instruction mode Directing the microprocessor to retrieve an x86 ISA or an ARM ISA machine language program instruction;and a plurality of hardware scratchpads, wherein the instruction mode instructs the microprocessor to retrieve the x86 ISA machine language program instructions The hardware registers store the x86 ISA architecture state, wherein the hardware registers store the ARM ISA architectural state when the instruction mode instructs the microprocessor to retrieve the ARM ISA machine language program instructions. 一種微處理器,係可執行x86指令集架構(instruction set architecture;ISA)機器語言程式以及進階精簡指令集機器(Advanced RISC Machines;ARM)ISA機器語言程式,該微處理器包含:一指令模式,係指示該微處理器擷取一x86 ISA或一ARM ISA機器語言程式指令;以及複數個硬體暫存器,其中,當該指令模式指示該微處理器擷取x86 ISA機器語言程式指令時,該些硬體暫存器儲存x86 ISA架構狀態,其中當該指令模式指示該微處理器擷取ARM ISA機器語言程式指令時,該些硬體暫存器儲存ARM ISA架構狀態。 一種微處理器,係可執行x86指令集架構(instruction set architecture;ISA)機器語言程式以及進階精簡指令集機器(Advanced RISC Machines;ARM)ISA機器語言程式,該微處理器包含:一指令模式,係指示該微處理器擷取一x86 ISA或一ARM ISA機器語言程式指令;以及複數個硬體暫存器,其中,當該指令模式指示該微處理器擷取x86 ISA機器語言程式指令時,該些硬體暫存器儲存x86 ISA架構狀態,其中當該指令模式指示該微處理器擷取ARM ISA機器語言程式指令時,該些硬體暫存器儲存ARM ISA架構狀態。
  6. 40
    A method of operating a microprocessor executing an x86 instruction set architecture (ISA) machine language program and an Advanced RISC Machines (ARM) ISA machine language program, the method comprising:setting an instruction Mode to instruct the microprocessor to retrieve an x86 ISA or ARM ISA machine language program instruction;when the instruction mode instructs the microprocessor to retrieve the x86 ISA machine language program instruction, the plurality of hardware in the microprocessor The x86 ISA architecture state is stored in the scratchpad;when the instruction mode instructs the microprocessor to retrieve the ARM ISA machine language program instructions, the ARM ISA architecture state is stored in a plurality of hardware scratchpads of the microprocessor. 一種運作一微處理器可執行x86指令集架構(instruction set architecture;ISA)機器語言程式以及進階精簡指令集機器(Advanced RISC Machines;ARM)ISA機器語言程式之方法,該方法包含:設定一指令模式以指示該微處理器擷取一x86 ISA或ARM ISA機器語言程序指令;當該指令模式指示該微處理器擷取該x86 ISA機器語言程式指令時,在該微處理器之複數個硬體暫存器內儲存x86 ISA架構狀態;當該指令模式指示該微處理器擷取該ARM ISA機器語言程式指令時,在該微處理器之複數個硬體暫存器內儲存ARM ISA架構狀態。 一種運作一微處理器可執行x86指令集架構(instruction set architecture;ISA)機器語言程式以及進階精簡指令集機器(Advanced RISC Machines;ARM)ISA機器語言程式之方法,該方法包含:設定一指令模式以指示該微處理器擷取一x86 ISA或ARM ISA機器語言程序指令;當該指令模式指示該微處理器擷取該x86 ISA機器語言程式指令時,在該微處理器之複數個硬體暫存器內儲存x86 ISA架構狀態;當該指令模式指示該微處理器擷取該ARM ISA機器語言程式指令時,在該微處理器之複數個硬體暫存器內儲存ARM ISA架構狀態。
  7. 46
    For example, the method described in claim 40 of the patent scope further includes:Translating the x86 ISA instruction and the ARM ISA instruction into a plurality of microinstructions, and the microinstructions are defined by a microinstruction set of the microprocessor, so that one of the microprocessors executes the pipeline to execute the microinstructions Generating the results defined by the x86 ISA and the ARM ISA instructions;wherein the microinstructions are encoded in a unique encoding manner, and the unique encoding is different from the encoding defined by the instruction set of the x86 ISA and ARM ISA the way. 如申請專利範圍第40項所述之方法,更包含: 將該x86 ISA指令以及該ARM ISA指令轉譯成複數個微指令,且該些微指令係由該微處理器之一微指令集所定義,藉以讓該微處理器之一執行管線執行該些微指令來產生該x86 ISA及該ARM ISA指令所定義之結果;其中,該些微指令係以一獨特編碼方式加以編碼,且該獨特編碼方式係不同於該x86 ISA及ARM ISA之該指令集所定義之編碼方式。 如申請專利範圍第40項所述之方法,更包含: 將該x86 ISA指令以及該ARM ISA指令轉譯成複數個微指令,且該些微指令係由該微處理器之一微指令集所定義,藉以讓該微處理器之一執行管線執行該些微指令來產生該x86 ISA及該ARM ISA指令所定義之結果;其中,該些微指令係以一獨特編碼方式加以編碼,且該獨特編碼方式係不同於該x86 ISA及ARM ISA之該指令集所定義之編碼方式。
  8. 49
    A computer program product encoded in at least one computer readable storage medium for use in an computing device, the computer program product comprising:a computer readable program code for use in the computer readable storage medium for designating A microprocessor executable x86 instruction set architecture (instruction set architecture;ISA) machine language program and Advanced RISC Machines (ARM) ISA machine language program, the computer readable code includes: a first code for specifying an instruction mode The instruction mode instructs the microprocessor to retrieve an x86 ISA or an (ARM) ISA machine language program instruction;and a second code to specify a plurality of hardware registers;wherein, the instruction When the mode indicates that the microprocessor captures the x86 ISA machine language program instructions, the hardware registers store the x86 ISA architecture state;wherein, when the instruction mode instructs the microprocessor to retrieve the ARM ISA machine language program instructions, The hardware registers store the x86 ISA architecture state. 一種電腦程式產品,係編碼於至少一電腦可讀取儲存媒介,以使用於一運算裝置,該電腦程式產品包含:一電腦可讀程式碼,係應用於該電腦可讀取儲存媒介,藉以指定一微處理器可執行x86指令集架構 (instruction set architecture;ISA)機器語言程式以及進階精簡指令集機器(Advanced RISC Machines;ARM)ISA機器語言程式,該電腦可讀程式碼包含:一第一程式碼,係用以指定一指令模式,該指令模式係指示該微處理器擷取一x86 ISA或一(ARM)ISA機器語言程式指令;以及一第二程式碼,係用以指定複數個硬體暫存器;其中,當該指令模式指示該微處理器擷取x86 ISA機器語言程式指令時,該些硬體暫存器儲存x86 ISA架構狀態;其中,當該指令模式指示該微處理器擷取ARM ISA機器語言程式指令時,該些硬體暫存器儲存x86 ISA架構狀態。 一種電腦程式產品,係編碼於至少一電腦可讀取儲存媒介,以使用於一運算裝置,該電腦程式產品包含:一電腦可讀程式碼,係應用於該電腦可讀取儲存媒介,藉以指定一微處理器可執行x86指令集架構 (instruction set architecture;ISA)機器語言程式以及進階精簡指令集機器(Advanced RISC Machines;ARM)ISA機器語言程式,該電腦可讀程式碼包含:一第一程式碼,係用以指定一指令模式,該指令模式係指示該微處理器擷取一x86 ISA或一(ARM)ISA機器語言程式指令;以及一第二程式碼,係用以指定複數個硬體暫存器;其中,當該指令模式指示該微處理器擷取x86 ISA機器語言程式指令時,該些硬體暫存器儲存x86 ISA架構狀態;其中,當該指令模式指示該微處理器擷取ARM ISA機器語言程式指令時,該些硬體暫存器儲存x86 ISA架構狀態。
  9. 51
    A microprocessor comprising:a plurality of processing cores, each of the processing cores comprising: a hardware instruction translator, an x86 instruction set architecture (ISA) machine language program and an advanced streamlining An RIS machine (ARM) ISA machine language program is translated into a plurality of microinstructions, and the microinstructions are defined by a microinstruction set of the microprocessor;wherein the microinstructions are encoded in a unique encoding manner. Coding, and this unique coding method Different from the coding mode defined by the instruction set of the x86 ISA and ARM ISA;and an execution pipeline coupled to the hardware instruction translator, wherein the execution pipeline executes the micro instruction to generate the x86 ISA and the ARM ISA The result defined by the instruction. 一種微處理器,包含:複數個處理核心,該些處理核心之每一處理核心包含:一硬體指令轉譯器,係將x86指令集架構(instruction set architecture;ISA)機器語言程式以及進階精簡指令集機器(Advanced RISC Machines;ARM)ISA機器語言程式轉譯成複數個微指令,且該些微指令係由該微處理器之一微指令集所定義;其中該些微指令係以一獨特編碼方式加以編碼,且該獨特編碼方式 係不同於該x86 ISA及ARM ISA之該指令集所定義之編碼方式;以及一執行管線,耦合於該硬體指令轉譯器,其中該執行管線執行該微指令來產生該x86 ISA及該ARM ISA指令所定義之結果。 一種微處理器,包含:複數個處理核心,該些處理核心之每一處理核心包含:一硬體指令轉譯器,係將x86指令集架構(instruction set architecture;ISA)機器語言程式以及進階精簡指令集機器(Advanced RISC Machines;ARM)ISA機器語言程式轉譯成複數個微指令,且該些微指令係由該微處理器之一微指令集所定義;其中該些微指令係以一獨特編碼方式加以編碼,且該獨特編碼方式 係不同於該x86 ISA及ARM ISA之該指令集所定義之編碼方式;以及一執行管線,耦合於該硬體指令轉譯器,其中該執行管線執行該微指令來產生該x86 ISA及該ARM ISA指令所定義之結果。
  10. 63
    A method of operating a microprocessor including a plurality of processing cores, each core of the processing core including an indicator for indicating an x86 instruction set architecture (ISA) machine language program or a Advanced RISC Machines (ARM) ISA machine, which includes:For each core of the processing cores: determining whether the indicator indicates the x86 ISA or the ARM ISA;when the indicator indicates the x86 ISA, the machine language instructions are translated into a plurality of microinstructions according to the x86 ISA, When the indicator indicates the ARM ISA, the machine language instructions are translated into a plurality of microinstructions according to the ARM ISA, wherein the microinstructions are encoded in a unique encoding manner, and the unique encoding manner is different from the x86 ISA. And an encoding method defined by the ARM ISA, wherein the translation is performed by a hardware instruction translator of the microprocessor;and when the indicator indicates the x86 ISA, the micro instructions are executed to generate the x86 a microinstruction defined by the ISA, and when the indicator indicates the ARM ISA, executing the microinstructions to generate microinstructions defined by the ARM ISA, wherein the execution is processed by one of the microprocessor execution pipelines, and the An execution pipeline is coupled to the hardware instruction translator. 一種運作一包含複數個處理核心之微處理器之方法,該些處理核心之每一核心包含一指標,該指標係用以指示一x86指令集架構(instruction set architecture;ISA)機器語言程式或一進階精簡指令集機器(Advanced RISC Machines;ARM)ISA機器,該方法包含: 對該些處理核心之每一核心來說:確定該指標係指示該x86 ISA或該ARM ISA;當該指標係指示該x86 ISA時,根據該x86 ISA將機器語言指令轉譯成複數個微指令,而當該指標係指示該ARM ISA時,根據該ARM ISA將機器語言指令轉譯成複數個微指令,其中該些微指令係以一獨特編碼方式加以編碼,且該獨特編碼方式係不同於該x86 ISA及ARM ISA之該指令集所定義之編碼方式,其中上述轉譯係由該微處理器之一硬體指令轉譯器所執行;以及當該指標指示該x86 ISA時,執行該些微指令以產生該x86 ISA所定義之微指令,且當該指標指示該ARM ISA時,執行該些微指令以產生該ARM ISA所定義之微指令,其中上述執行係由該微處理器之一執行管線所處理,且該執行管線係耦合於該硬體指令轉譯器。 一種運作一包含複數個處理核心之微處理器之方法,該些處理核心之每一核心包含一指標,該指標係用以指示一x86指令集架構(instruction set architecture;ISA)機器語言程式或一進階精簡指令集機器(Advanced RISC Machines;ARM)ISA機器,該方法包含: 對該些處理核心之每一核心來說:確定該指標係指示該x86 ISA或該ARM ISA;當該指標係指示該x86 ISA時,根據該x86 ISA將機器語言指令轉譯成複數個微指令,而當該指標係指示該ARM ISA時,根據該ARM ISA將機器語言指令轉譯成複數個微指令,其中該些微指令係以一獨特編碼方式加以編碼,且該獨特編碼方式係不同於該x86 ISA及ARM ISA之該指令集所定義之編碼方式,其中上述轉譯係由該微處理器之一硬體指令轉譯器所執行;以及當該指標指示該x86 ISA時,執行該些微指令以產生該x86 ISA所定義之微指令,且當該指標指示該ARM ISA時,執行該些微指令以產生該ARM ISA所定義之微指令,其中上述執行係由該微處理器之一執行管線所處理,且該執行管線係耦合於該硬體指令轉譯器。
  11. 69
    A computer program product encoded in at least one computer readable storage medium for use in an computing device, the computer program product comprising:a computer readable program code for use in the computer readable storage medium for designating A microprocessor, the computer readable code comprising: a code for specifying a plurality of processing cores, each core of the processing cores comprising: a hardware instruction translator, the x86 instruction set architecture (instruction) Set architecture;ISA) machine language program instructions and Advanced RISC Machines (ARM) ISA machine language program instructions are translated into a plurality of microinstructions, and the microinstructions are encoded in a unique encoding manner, and The unique encoding mode is different from the encoding mode defined by the instruction set of the x86 ISA and ARM ISA;and an execution pipeline is coupled to the hardware instruction translator, wherein the execution pipeline executes the microinstructions to generate the x86 ISA and the The result defined by the ARM ISA directive. 一種電腦程式產品,係編碼於至少一電腦可讀取儲存媒介,以使用於一運算裝置,該電腦程式產品包含:一電腦可讀程式碼,係應用於該電腦可讀取儲存媒介,藉以指定一微處理器,該電腦可讀程式碼包含:一程式碼,用以指定複數個處理核心,該些處理核心之每一核心包含:一硬體指令轉譯器,係將x86指令集架構(instruction set architecture;ISA)機器語言程式指令以及進階精簡指令集機器(Advanced RISC Machines;ARM)ISA機器語言程式指令轉譯成複數個微指令,且該些微指令係以一獨特編碼方式加以編碼,且該獨特編碼方式係不同於該x86 ISA及ARM ISA之該指令集所定義之編碼方式;以及一執行管線耦合於該硬體指令轉譯器,其中該執行管線執行該些微指令來產生該x86 ISA及該ARM ISA指令所定義之結果。 一種電腦程式產品,係編碼於至少一電腦可讀取儲存媒介,以使用於一運算裝置,該電腦程式產品包含:一電腦可讀程式碼,係應用於該電腦可讀取儲存媒介,藉以指定一微處理器,該電腦可讀程式碼包含:一程式碼,用以指定複數個處理核心,該些處理核心之每一核心包含:一硬體指令轉譯器,係將x86指令集架構(instruction set architecture;ISA)機器語言程式指令以及進階精簡指令集機器(Advanced RISC Machines;ARM)ISA機器語言程式指令轉譯成複數個微指令,且該些微指令係以一獨特編碼方式加以編碼,且該獨特編碼方式係不同於該x86 ISA及ARM ISA之該指令集所定義之編碼方式;以及一執行管線耦合於該硬體指令轉譯器,其中該執行管線執行該些微指令來產生該x86 ISA及該ARM ISA指令所定義之結果。
  12. 71
    A microprocessor operable as an x86 instruction set architecture (ISA) microprocessor and an Advanced RISC Machines (ARM) ISA microprocessor, the microprocessor comprising:a first storage storing an x86 ISA specific state of the microprocessor;a second storage storing an ARM ISA specific state of the microprocessor;and a third storage storing a non-ISA specific state of the microprocessor Wherein, in response to the resetting, the microprocessor: initializing the first memory to a preset value specified by the x86 ISA;initializing the second memory to a preset value specified by the ARM ISA;Initializing the third storage device to a preset value;starting to retrieve a first ISA command, wherein the first ISA command is the x86 ISA or the ARM ISA, and a second ISA is the other ISA;The microprocessor updates at least a portion of the third storage in response to one or more of the first ISA instructions;wherein, in response to subsequent instructions in the first ISA instruction, the microprocessor is instructed to Set to the second ISA, the micro Is: Avoid stored in the correction of the third non-ISA reservoir of a particular state;to And start to retrieve the second ISA command. 一種微處理器,可運作為一x86指令集架構(instruction set architecture;ISA)微處理器以及一進階精簡指令集機器(Advanced RISC Machines;ARM)ISA微處理器,該微處理器包含:一第一儲存器,儲存該微處理器之x86 ISA特定狀態;一第二儲存器,儲存該微處理器之ARM ISA特定狀態;以及一第三儲存器,儲存該微處理器之非ISA特定狀態;其中,因應於重置時,該微處理器:將該第一儲存器初始化至該x86 ISA所指定之預設值;將該第二儲存器初始化至該ARM ISA所指定之預設值;將該第三儲存器初始化至預設值;開始擷取一第一ISA指令,其中該第一ISA指令係該x86 ISA或該ARM ISA,且一第二ISA係為該另一ISA;其中,該微處理器係因應於一或多個該第一ISA指令,而更新該第三儲存器之至少一部分;其中,因應於該第一ISA指令中隨後之指令,其係指示該微處理器重置至該第二ISA,該微處理器:避免修正儲存在該第三儲存器之該非ISA特定狀態;以 及開始擷取該第二ISA指令。 一種微處理器,可運作為一x86指令集架構(instruction set architecture;ISA)微處理器以及一進階精簡指令集機器(Advanced RISC Machines;ARM)ISA微處理器,該微處理器包含:一第一儲存器,儲存該微處理器之x86 ISA特定狀態;一第二儲存器,儲存該微處理器之ARM ISA特定狀態;以及一第三儲存器,儲存該微處理器之非ISA特定狀態;其中,因應於重置時,該微處理器:將該第一儲存器初始化至該x86 ISA所指定之預設值;將該第二儲存器初始化至該ARM ISA所指定之預設值;將該第三儲存器初始化至預設值;開始擷取一第一ISA指令,其中該第一ISA指令係該x86 ISA或該ARM ISA,且一第二ISA係為該另一ISA;其中,該微處理器係因應於一或多個該第一ISA指令,而更新該第三儲存器之至少一部分;其中,因應於該第一ISA指令中隨後之指令,其係指示該微處理器重置至該第二ISA,該微處理器:避免修正儲存在該第三儲存器之該非ISA特定狀態;以 及開始擷取該第二ISA指令。
  13. 80
    The microprocessor described in claim 71, further comprising:A microcode initializes the first, second, and third memories in response to the reset. 如申請專利範圍第71項所述之微處理器,更包含: 一微碼,因應於該重置而初始化該第一、第二及第三儲存器。 如申請專利範圍第71項所述之微處理器,更包含: 一微碼,因應於該重置而初始化該第一、第二及第三儲存器。
  14. 85
    A method of operating a microprocessor as an x86 instruction set architecture (ISA) microprocessor and an advanced RISC Machines (ARM) ISA microprocessor, the method comprising:Resetting to one of the microprocessors: initializing a first memory to a preset value specified by the x86 ISA, wherein the first memory stores the x86 ISA specific state of the microprocessor;The second storage is initialized to a preset value specified by the ARM ISA, wherein the second storage stores an ARM ISA specific state of the microprocessor;Initializing a third storage to a preset value, wherein the third storage stores a non-ISA specific state of the microprocessor;capturing a first ISA command, wherein the first ISA command is the x86 ISA or the ARM ISA, and a second ISA is the other ISA;the microprocessor updates at least a portion of the third storage in response to one or more of the first ISA instructions;in response to the first ISA instruction And an instruction to instruct the microprocessor to reset to the second ISA: avoiding correcting the non-ISA specific state stored in the third storage;and extracting the second ISA command. 一種可使一微處理器運作為一x86指令集架構(instruction set architecture;ISA)微處理器以及一進階精簡指令集機器(Advanced RISC Machines;ARM)ISA微處理器之方法,該方法包含:因應於該微處理器之一重置:將一第一儲存器初始化至該x86 ISA所指定之預設值,其中,該第一儲存器儲存該微處理器之x86 ISA特定狀態;將一第二儲存器初始化至該ARM ISA所指定之預設值,其中該第二儲存器儲存該微處理器之ARM ISA特定狀態; 將一第三儲存器初始化至預設值,其中該第三儲存器儲存該微處理器之非ISA特定狀態;擷取一第一ISA指令,其中該第一ISA指令係該x86 ISA或該ARM ISA,且一第二ISA係為該另一ISA;該微處理器因應於一或多個該第一ISA指令,而更新該第三儲存器之至少一部分;因應於該第一ISA指令中隨後之指令,其係指示該微處理器重置至該第二ISA:避免修正儲存在該第三儲存器之該非ISA特定狀態;以及擷取該第二ISA指令。 一種可使一微處理器運作為一x86指令集架構(instruction set architecture;ISA)微處理器以及一進階精簡指令集機器(Advanced RISC Machines;ARM)ISA微處理器之方法,該方法包含:因應於該微處理器之一重置:將一第一儲存器初始化至該x86 ISA所指定之預設值,其中,該第一儲存器儲存該微處理器之x86 ISA特定狀態;將一第二儲存器初始化至該ARM ISA所指定之預設值,其中該第二儲存器儲存該微處理器之ARM ISA特定狀態; 將一第三儲存器初始化至預設值,其中該第三儲存器儲存該微處理器之非ISA特定狀態;擷取一第一ISA指令,其中該第一ISA指令係該x86 ISA或該ARM ISA,且一第二ISA係為該另一ISA;該微處理器因應於一或多個該第一ISA指令,而更新該第三儲存器之至少一部分;因應於該第一ISA指令中隨後之指令,其係指示該微處理器重置至該第二ISA:避免修正儲存在該第三儲存器之該非ISA特定狀態;以及擷取該第二ISA指令。
  15. 89
    A computer program product encoded in at least one computer readable storage medium for use in an computing device, the computer program product comprising:a computer readable program code for use in the computer readable storage medium for designating A microprocessor can operate as an x86 instruction set architecture (ISA) microprocessor and an advanced RISC Machines (ARM) ISA microprocessor, the computer readable code comprising: a first code for specifying a first memory to store an x86 ISA specific state of the microprocessor;a second code for specifying a second memory to store an ARM ISA specific state of the microprocessor;a third code for specifying a third storage to store the non-ISA specific state of the microprocessor;wherein, in response to a reset, the microprocessor: initializing the first storage to the x86 ISA The preset value specified;initializing the second storage to a preset value specified by the ARM ISA;initializing the third storage to a preset value;Starting to retrieve a first ISA instruction, wherein the first ISA instruction is the x86 ISA or the ARM ISA, and a second ISA is the other ISA;wherein the microprocessor updates at least a portion of the third storage in response to one or more of the first ISA commands;wherein, in response to the first a subsequent instruction in the ISA instruction that instructs the microprocessor to reset to the second ISA, the microprocessor: avoiding correcting the non-ISA specific state stored in the third storage;and starting to retrieve the second ISA instruction. 一種電腦程式產品,係編碼於至少一電腦可讀取儲存媒介,以使用於一運算裝置,該電腦程式產品包含:一電腦可讀程式碼,係應用於該電腦可讀取儲存媒介,藉以指定一微處理器可運作為一x86指令集架構(instruction set architecture;ISA)微處理器以及一進階精簡指令集機器(Advanced RISC Machines;ARM)ISA微處理器,該電腦可讀程式碼包含:一第一程式碼,用以指定一第一儲存器儲存該微處理器之x86 ISA特定狀態;一第二程式碼,用以指定一第二儲存器儲存該微處理器之ARM ISA特定狀態;一第三程式碼,用以指定一第三儲存器儲存該微處理器之非ISA特定狀態;其中,因應於一重置時,該微處理器:將該第一儲存器初始化至該x86 ISA所指定之預設值;將該第二儲存器初始化至該ARM ISA所指定之預設值;將該第三儲存器初始化至預設值; 開始擷取一第一ISA指令,其中該第一ISA指令係該x86 ISA或該ARM ISA,且一第二ISA係為該另一ISA;其中,該微處理器因應於一或多個該第一ISA指令,而更新該第三儲存器之至少一部分;其中,因應於該第一ISA指令中隨後之指令,其係指示該微處理器重置至該第二ISA,該微處理器:避免修正儲存在該第三儲存器之該非ISA特定狀態;以及開始擷取該第二ISA指令。 一種電腦程式產品,係編碼於至少一電腦可讀取儲存媒介,以使用於一運算裝置,該電腦程式產品包含:一電腦可讀程式碼,係應用於該電腦可讀取儲存媒介,藉以指定一微處理器可運作為一x86指令集架構(instruction set architecture;ISA)微處理器以及一進階精簡指令集機器(Advanced RISC Machines;ARM)ISA微處理器,該電腦可讀程式碼包含:一第一程式碼,用以指定一第一儲存器儲存該微處理器之x86 ISA特定狀態;一第二程式碼,用以指定一第二儲存器儲存該微處理器之ARM ISA特定狀態;一第三程式碼,用以指定一第三儲存器儲存該微處理器之非ISA特定狀態;其中,因應於一重置時,該微處理器:將該第一儲存器初始化至該x86 ISA所指定之預設值;將該第二儲存器初始化至該ARM ISA所指定之預設值;將該第三儲存器初始化至預設值; 開始擷取一第一ISA指令,其中該第一ISA指令係該x86 ISA或該ARM ISA,且一第二ISA係為該另一ISA;其中,該微處理器因應於一或多個該第一ISA指令,而更新該第三儲存器之至少一部分;其中,因應於該第一ISA指令中隨後之指令,其係指示該微處理器重置至該第二ISA,該微處理器:避免修正儲存在該第三儲存器之該非ISA特定狀態;以及開始擷取該第二ISA指令。
Independent claims15