US20080059769A1 - Multiple-core processor supporting multiple instruction set architectures - Google Patents
Multiple-core processor supporting multiple instruction set architectures Download PDFInfo
- Publication number
- US20080059769A1 US20080059769A1 US11/468,547 US46854706A US2008059769A1 US 20080059769 A1 US20080059769 A1 US 20080059769A1 US 46854706 A US46854706 A US 46854706A US 2008059769 A1 US2008059769 A1 US 2008059769A1
- Authority
- US
- United States
- Prior art keywords
- program instructions
- processor
- instruction set
- cores
- set architecture
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000012545 processing Methods 0.000 claims description 20
- 238000000034 method Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 5
- 238000005192 partition Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 230000007246 mechanism Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7839—Architectures of general purpose stored program computers comprising a single central processing unit with memory
- G06F15/7842—Architectures of general purpose stored program computers comprising a single central processing unit with memory on one IC chip (single chip microcontrollers)
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30181—Instruction operation extension or modification
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3885—Concurrent instruction execution, e.g. pipeline or look ahead using a plurality of independent parallel functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/507—Low-level
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1028—Power efficiency
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE 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/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Definitions
- the present invention relates generally to data processing systems, and more particularly, to processors for running multiple virtual machines having disparate instruction set architectures.
- VMs virtual machines
- the system may be a large-scale on-demand server system that executes hundreds of server instances on a single hardware platform to support customers with varying computing requirements.
- multiple partitions which may differ in operating system or run-time environment, as well as application mix on those environments, are concurrently present in system memory.
- Processes executing in each partition are run in an environment that supports their execution on a guest operating system (or run-time environment).
- the virtual machine provides an environment similar enough to a real hardware platform that the operating system can run with little or no modification.
- a hypervisor (sometimes referred to as a virtual machine monitor) manages all of the virtual machines or partitions and abstracts system resources so that each partition provides a machine-like environment to each environment instance.
- processor emulation In order to provide efficient operation, total virtualization of machine code instruction sets is typically not performed. Such total virtualization, generally referred to as processor emulation, cannot reach the efficiency of a machine executing native machine code. Therefore, the above-described systems, in applications in which the VMs must provide environments supporting different native instruction sets, typically include disparate processing units that implement differing instruction set architectures (ISAs). In some instances, disparate processors must be included for critical applications that can only run efficiently in a particular machine code environment. Therefore, even though a particular operating system or run-time environment may be supported across multiple ISAs, a particular application may require that a particular underlying ISA be provided in support of the VM in which that application runs.
- ISAs instruction set architectures
- custom applications tend to evolve on particular platforms and are frequently coded or ported to run on only one ISA. Those applications must be supported, as well as a mix of any other custom applications, as well as off-the shelf software.
- the result is increased customization of systems for particular applications, increasing system cost, and a reduction in availability and system efficiency in that not every processing element and resource is necessarily available or usable for any task that might be assigned to the system.
- PPC power PC
- x86 VMs is not continuous and represents a varying fraction of the total system throughput required at any given time, the amount of x86 processing support will either be over-installed or under-available for much of the time.
- the objective of providing an efficient mechanism for supporting multiple VMs requiring multiple ISAs is provided in a a processor, processing system, method and computer program product.
- the processor includes multiple cores having disparate native ISAs and that may be selectively enabled for operation, so that power is conserved when support for a particular ISA is not required of the processor.
- the processing system includes one or more such processors and the method of operation is a method of operation of the processing system under control of the computer program product, known as a hypervisor.
- the hypervisor determines when a particular VM will be instantiated that requires a particular ISA, locates a processor core capable of supporting the ISA, and enables the processor code if the processor core is disabled. The hypervisor then instantiates the VM in memory and starts the VM execution by the processor core. When the VM is terminated, the hypervisor powers down the core if it is no longer needed.
- FIG. 1 is a block diagram of a processor in accordance with an embodiment of the present invention.
- FIG. 2 is a block diagram of a processor in accordance with another embodiment of the present invention.
- FIG. 3 is a block diagram of a multi-processing system in accordance with an embodiment of the present invention.
- FIG. 4 is a flowchart depicting a method in accordance with an embodiment of the present invention.
- Processor 10 A includes multiple cores 12 A- 12 C each having disparate ISAs. While the illustrative embodiment depicts three cores having different native ISAs, it is contemplated that any desirable arrangement and number of cores may be included within a processor in accordance with an embodiment of the present, as long as at least one of the processor cores has an ISA differing from that of the other cores. For example, in an 8-core processor, one core may support an ISA that is infrequently required, while the other seven cores implement the most universal ISA.
- core 12 A supports the PowerPC (PPC) instruction set as originally promulgated by the Apple-IBM-Motorola (AIM) Alliance
- core 12 B supports x86 instruction sets as originally promulgated by Intel Corporation and implemented by many present-day manufacturers
- core 12 C supports an instruction set optimized for the System Z operating environment, such as the z9 Integrated Information Processor (zIIP) instruction set as promulgated by International Business Machines Corporation.
- zIIP Integrated Information Processor
- Other types of cores, such as special purpose co-processors and accelerator engines could also be included, but are not illustrated.
- Each core 12 A- 12 C has an associated L1-level cache 14 A- 14 C, which is then coupled to a common L2-level cache and cache controller 16 .
- a power management unit (PMU) 17 controls power to each of cores 12 A- 12 C, so that during intervals of time when one or more of cores 12 A- 12 C is not needed, or when system power, processor 10 A thermal capabilities, or other resource limitations dictate that only a subset of cores 12 A- 12 C can be simultaneously operational, power is removed from the disabled cores.
- the L1 cache units that are associated with disabled cores may also be disabled.
- a bus interface unit (BIU) provides for interfacing processor 10 A with other processors and devices, including lower level caches and system memory.
- a service processor (SP) port 19 provides an interface to a supervisory service processor that performs tasks under direction of the hypervisor and controls PMU 17 to enable, disable, and set the operating environment for cores 12 A- 12 C as cores 12 A- 12 C are brought on-line and off-line.
- SP service processor
- processor 10 B in accordance with another embodiment of the present invention, is shown.
- Processor 10 B is similar to processor 10 A of FIG. 1 , and therefore only differences between them will be described below.
- L1 cache and optional other resources 14 are shared in common between cores 12 A-C, resulting in a reduction of die area required to implement processor 10 B over processor 10 A.
- PMU 17 only enables one core 12 A-C at a time, enabling the sharing of L1 cache and optional other resources 16 , such as floating point hardware, register space and other units that can be controlled by control logic provided from cores 12 A-C, but that can be designed independent of the ISA of any particular core.
- a core implementing a first ISA requiring 128 64-bit registers may use the same storage units as a second ISA that requires only 64 64-bit registers, with the other 64 registers disabled or unused when the core implementing the second ISA is active.
- the processing system includes a processor group 20 having four processors 22 A-D, at least one of which includes multiple cores 12 A, 12 B supporting disparate native ISAs.
- Processor group 20 may be connected to other processor groups via a bridge 26 forming a super-scalar processor.
- Processor group 20 is connected to an L3 cache unit 27 , system local memory 28 and various peripherals 25 , as well as to two service processors 29 A and 29 B.
- Service processors 29 A-B provide fault supervision, startup assistance and test capability to processor group 20 and may have their own interconnect paths to other processor groups as well as connecting to all of processors 22 A-D.
- processor group 20 Within processor group 20 are a plurality of processors 22 A-D, each fabricated in a single unit and including a plurality of processor cores 12 A and 12 B that support differing ISAs, and include an internal L1 cache in the illustrated embodiment.
- Cores 12 A and 12 B are coupled to an L2 cache 16 and an internal memory controller 24 .
- Cores 12 A and 12 B provide instruction execution and operation on data values for general-purpose processing functions, but support disparate native ISAs simultaneously or mutually-exclusively as described above.
- Bridge 26 as well as other bridges within the system, provides communication over wide buses with other processor groups and bus 5 provides connection of processors 22 A-D, bridge 26 , peripherals 25 , L3 cache 27 and system local memory 28 .
- JTAG Joint Test Action Group
- a virtual machine monitor program provides support for execution of multiple virtual machines (VMs) or “partitions” that each provide an execution environment for an operating system and a number of “guest” programs (applications and services executed by an operating system and running in the associated VM).
- VMs virtual machines
- guest programs
- the hypervisor is aware of the resource needs and specific ISA requirements for each VM.
- the hypervisor instantiates VMs by dynamically assigning their virtual resources to the physical resources of the server.
- the hypervisor manages the mapping of physical memory to virtual memory space within each VM, and therefore prevents conflicts between VMs for physical memory.
- the hypervisor also prevents conflicts between higher-level caches such as L1 Caches 14 A- 14 C of FIG. 1 mapping to lines within lower-level L2 cache 16 .
- a processing system including processors in accordance with embodiments of the present invention can provide multi-ISA support without requiring separate discrete processor modules or dies.
- the hypervisor receives a request to instantiate a VM with support for a particular ISA (step 40 ), for example, when a particular application requiring a particular ISA and operating system is started.
- the hypervisor attempts to locate a core that is available for support of the ISA (step 42 ), and if the core is not available (decision 44 ) the VM startup fails (step 45 ). Otherwise, if the located core is in power-down mode (decision 46 ), the core is powered up (step 47 ).
- the VM is instantiated and the operating system and application are loaded (step 49 ).
- the hypervisor waits until all VMs/Apps terminate (decision 50 ), otherwise, the core is powered down (step 54 ) until requested again.
- the decision to turn off a core can be postponed until some number of idle cycles have passed.
- times on the order of only a few tens of microseconds are needed to power a core on or off, while the assignment of a virtual processor to run on a core is made for time slices on the order of a millisecond or more.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Microcomputers (AREA)
Abstract
Description
- 1. Technical Field
- The present invention relates generally to data processing systems, and more particularly, to processors for running multiple virtual machines having disparate instruction set architectures.
- 2. Description of the Related Art
- Present-day computing systems, and in particular large-scale server systems, often include support for running multiple virtual machines (VMs). The system may be a large-scale on-demand server system that executes hundreds of server instances on a single hardware platform to support customers with varying computing requirements. In the most flexible of these systems, multiple partitions, which may differ in operating system or run-time environment, as well as application mix on those environments, are concurrently present in system memory. Processes executing in each partition are run in an environment that supports their execution on a guest operating system (or run-time environment). The virtual machine provides an environment similar enough to a real hardware platform that the operating system can run with little or no modification. A hypervisor (sometimes referred to as a virtual machine monitor) manages all of the virtual machines or partitions and abstracts system resources so that each partition provides a machine-like environment to each environment instance.
- However, in order to provide efficient operation, total virtualization of machine code instruction sets is typically not performed. Such total virtualization, generally referred to as processor emulation, cannot reach the efficiency of a machine executing native machine code. Therefore, the above-described systems, in applications in which the VMs must provide environments supporting different native instruction sets, typically include disparate processing units that implement differing instruction set architectures (ISAs). In some instances, disparate processors must be included for critical applications that can only run efficiently in a particular machine code environment. Therefore, even though a particular operating system or run-time environment may be supported across multiple ISAs, a particular application may require that a particular underlying ISA be provided in support of the VM in which that application runs.
- In particular, custom applications tend to evolve on particular platforms and are frequently coded or ported to run on only one ISA. Those applications must be supported, as well as a mix of any other custom applications, as well as off-the shelf software. The result is increased customization of systems for particular applications, increasing system cost, and a reduction in availability and system efficiency in that not every processing element and resource is necessarily available or usable for any task that might be assigned to the system. For example, when a system must support VMs that require both the power PC (PPC) and x86 ISAs, but the demand for x86 VMs is not continuous and represents a varying fraction of the total system throughput required at any given time, the amount of x86 processing support will either be over-installed or under-available for much of the time.
- Therefore, it would be desirable to provide an efficient mechanism for supporting multiple VMs requiring disparate ISAs. It would further be desirable to provide such a mechanism that efficiently manages electrical power used by the hardware supporting the multiple ISAs.
- The objective of providing an efficient mechanism for supporting multiple VMs requiring multiple ISAs is provided in a a processor, processing system, method and computer program product.
- The processor includes multiple cores having disparate native ISAs and that may be selectively enabled for operation, so that power is conserved when support for a particular ISA is not required of the processor. The processing system includes one or more such processors and the method of operation is a method of operation of the processing system under control of the computer program product, known as a hypervisor.
- The hypervisor determines when a particular VM will be instantiated that requires a particular ISA, locates a processor core capable of supporting the ISA, and enables the processor code if the processor core is disabled. The hypervisor then instantiates the VM in memory and starts the VM execution by the processor core. When the VM is terminated, the hypervisor powers down the core if it is no longer needed.
- The foregoing and other objectives, features, and advantages of the invention will be apparent from the following, more particular, description of the preferred embodiment of the invention, as illustrated in the accompanying drawings.
- The novel features believed characteristic of the invention are set forth in the appended claims. The invention itself, however, as well as a preferred mode of use, further objectives, and advantages thereof, will best be understood by reference to the following detailed description of an illustrative embodiment when read in conjunction with the accompanying drawings, wherein like reference numerals indicate like components, and:
-
FIG. 1 is a block diagram of a processor in accordance with an embodiment of the present invention. -
FIG. 2 is a block diagram of a processor in accordance with another embodiment of the present invention. -
FIG. 3 is a block diagram of a multi-processing system in accordance with an embodiment of the present invention. -
FIG. 4 is a flowchart depicting a method in accordance with an embodiment of the present invention. - With reference now to the figures, and in particular with reference to
FIG. 1 , there is depicted a block diagram of aprocessor 10A in accordance with an embodiment of the present invention.Processor 10A includesmultiple cores 12A-12C each having disparate ISAs. While the illustrative embodiment depicts three cores having different native ISAs, it is contemplated that any desirable arrangement and number of cores may be included within a processor in accordance with an embodiment of the present, as long as at least one of the processor cores has an ISA differing from that of the other cores. For example, in an 8-core processor, one core may support an ISA that is infrequently required, while the other seven cores implement the most universal ISA. - In the illustrated embodiment,
core 12A supports the PowerPC (PPC) instruction set as originally promulgated by the Apple-IBM-Motorola (AIM) Alliance,core 12B supports x86 instruction sets as originally promulgated by Intel Corporation and implemented by many present-day manufacturers, andcore 12C supports an instruction set optimized for the System Z operating environment, such as the z9 Integrated Information Processor (zIIP) instruction set as promulgated by International Business Machines Corporation. Other types of cores, such as special purpose co-processors and accelerator engines could also be included, but are not illustrated. Eachcore 12A-12C has an associated L1-level cache 14A-14C, which is then coupled to a common L2-level cache andcache controller 16. Therefore, with proper address space management bycache controller 16 and the hypervisor, all threecores 12A-12C may be operated simultaneously to support concurrent execution of VMs supporting the disparate ISAs implemented bycores 12A-12C. A power management unit (PMU) 17 controls power to each ofcores 12A-12C, so that during intervals of time when one or more ofcores 12A-12C is not needed, or when system power,processor 10A thermal capabilities, or other resource limitations dictate that only a subset ofcores 12A-12C can be simultaneously operational, power is removed from the disabled cores. The L1 cache units that are associated with disabled cores may also be disabled. A bus interface unit (BIU) provides forinterfacing processor 10A with other processors and devices, including lower level caches and system memory. A service processor (SP)port 19 provides an interface to a supervisory service processor that performs tasks under direction of the hypervisor and controlsPMU 17 to enable, disable, and set the operating environment forcores 12A-12C ascores 12A-12C are brought on-line and off-line. - Referring now to
FIG. 2 , aprocessor 10B, in accordance with another embodiment of the present invention, is shown.Processor 10B is similar toprocessor 10A ofFIG. 1 , and therefore only differences between them will be described below. Inprocessor 10B, L1 cache and optionalother resources 14 are shared in common betweencores 12A-C, resulting in a reduction of die area required to implementprocessor 10B overprocessor 10A. However, unlikeprocessor 10A ofFIG. 1 , inprocessor 10A, PMU 17 only enables onecore 12A-C at a time, enabling the sharing of L1 cache and optionalother resources 16, such as floating point hardware, register space and other units that can be controlled by control logic provided fromcores 12A-C, but that can be designed independent of the ISA of any particular core. For example, a core implementing a first ISA requiring 128 64-bit registers may use the same storage units as a second ISA that requires only 64 64-bit registers, with the other 64 registers disabled or unused when the core implementing the second ISA is active. - Referring now to
FIG. 3 , a processing system in whichprocessors 10A and/or 10B may be employed, is depicted. It will be understood that the depicted embodiment is not intended to be limiting, but only exemplary of the type of processing system to which the methods and techniques of the present invention may be applied. The processing system includes aprocessor group 20 having fourprocessors 22A-D, at least one of which includesmultiple cores Processor group 20 may be connected to other processor groups via abridge 26 forming a super-scalar processor.Processor group 20 is connected to anL3 cache unit 27, systemlocal memory 28 andvarious peripherals 25, as well as to twoservice processors Service processors 29A-B provide fault supervision, startup assistance and test capability toprocessor group 20 and may have their own interconnect paths to other processor groups as well as connecting to all ofprocessors 22A-D. - Within
processor group 20 are a plurality ofprocessors 22A-D, each fabricated in a single unit and including a plurality ofprocessor cores Cores L2 cache 16 and aninternal memory controller 24.Cores Bridge 26, as well as other bridges within the system, provides communication over wide buses with other processor groups andbus 5 provides connection ofprocessors 22A-D,bridge 26,peripherals 25,L3 cache 27 and systemlocal memory 28. Other global system memory may be coupled external to bridge 26 for symmetrical access by all processor groups.Service processor processors 22A-D via a Joint Test Action Group (JTAG) test port interface that has command and logic extensions providing very facile control ofprocessors 22A-D, including disabling and enablingcores - Within system
local memory 28, a virtual machine monitor program, or “hypervisor” provides support for execution of multiple virtual machines (VMs) or “partitions” that each provide an execution environment for an operating system and a number of “guest” programs (applications and services executed by an operating system and running in the associated VM). By referring to metadata that accompanies each VM, the hypervisor is aware of the resource needs and specific ISA requirements for each VM. The hypervisor instantiates VMs by dynamically assigning their virtual resources to the physical resources of the server. The hypervisor manages the mapping of physical memory to virtual memory space within each VM, and therefore prevents conflicts between VMs for physical memory. By virtue of the virtual mapping and control of cache controllers, the hypervisor also prevents conflicts between higher-level caches such asL1 Caches 14A-14C ofFIG. 1 mapping to lines within lower-level L2 cache 16. Thus, under hypervisor management, support for VMs with differing ISA requirements and with multi-threading context support, a processing system including processors in accordance with embodiments of the present invention can provide multi-ISA support without requiring separate discrete processor modules or dies. - Referring now to
FIG. 4 , a method in accordance with an embodiment of the invention is depicted. The hypervisor receives a request to instantiate a VM with support for a particular ISA (step 40), for example, when a particular application requiring a particular ISA and operating system is started. The hypervisor attempts to locate a core that is available for support of the ISA (step 42), and if the core is not available (decision 44) the VM startup fails (step 45). Otherwise, if the located core is in power-down mode (decision 46), the core is powered up (step 47). Next, the VM is instantiated and the operating system and application are loaded (step 49). When the application or VM terminates (decision 50), if the core is in use by any other VM (decision 52), then the hypervisor waits until all VMs/Apps terminate (decision 50), otherwise, the core is powered down (step 54) until requested again. In the method described above, if the particular hardware implementation requires a significant amount of time to power a core on or off, then the decision to turn off a core can be postponed until some number of idle cycles have passed. In CMOS technologies presently available, times on the order of only a few tens of microseconds are needed to power a core on or off, while the assignment of a virtual processor to run on a core is made for time slices on the order of a millisecond or more. - While the invention has been particularly shown and described with reference to the preferred embodiment thereof, it will be understood by those skilled in the art that the foregoing and other changes in form and details may be made therein without departing from the spirit and scope of the invention.
Claims (20)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/468,547 US8028290B2 (en) | 2006-08-30 | 2006-08-30 | Multiple-core processor supporting multiple instruction set architectures |
US13/182,181 US8806182B2 (en) | 2006-08-30 | 2011-07-13 | Multiple-core processor supporting multiple instruction set architectures |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/468,547 US8028290B2 (en) | 2006-08-30 | 2006-08-30 | Multiple-core processor supporting multiple instruction set architectures |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/182,181 Continuation US8806182B2 (en) | 2006-08-30 | 2011-07-13 | Multiple-core processor supporting multiple instruction set architectures |
Publications (2)
Publication Number | Publication Date |
---|---|
US20080059769A1 true US20080059769A1 (en) | 2008-03-06 |
US8028290B2 US8028290B2 (en) | 2011-09-27 |
Family
ID=39153431
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US11/468,547 Expired - Fee Related US8028290B2 (en) | 2006-08-30 | 2006-08-30 | Multiple-core processor supporting multiple instruction set architectures |
US13/182,181 Expired - Fee Related US8806182B2 (en) | 2006-08-30 | 2011-07-13 | Multiple-core processor supporting multiple instruction set architectures |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/182,181 Expired - Fee Related US8806182B2 (en) | 2006-08-30 | 2011-07-13 | Multiple-core processor supporting multiple instruction set architectures |
Country Status (1)
Country | Link |
---|---|
US (2) | US8028290B2 (en) |
Cited By (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080172554A1 (en) * | 2007-01-15 | 2008-07-17 | Armstrong William J | Controlling an Operational Mode for a Logical Partition on a Computing System |
CN101977313A (en) * | 2010-09-20 | 2011-02-16 | 中国科学院计算技术研究所 | Video signal coding device and method |
US20110131580A1 (en) * | 2009-11-30 | 2011-06-02 | International Business Machines Corporation | Managing task execution on accelerators |
US20110131430A1 (en) * | 2009-11-30 | 2011-06-02 | International Business Machines Corporation | Managing accelerators of a computing environment |
WO2012134431A1 (en) * | 2011-03-25 | 2012-10-04 | Research In Motion Limited | Dynamic power management of cache memory in a multi-core processing system |
CN102880064A (en) * | 2011-07-13 | 2013-01-16 | 库卡罗伯特有限公司 | Control system of a robot |
EP2568394A1 (en) * | 2010-05-07 | 2013-03-13 | Fujitsu Limited | Hardware control method of information processing system and information processing system |
US20130174130A1 (en) * | 2011-12-29 | 2013-07-04 | Michael Münster | Method and system for executing a 3gl program and/or an assembler program within a 4gl runtime environment |
WO2013101146A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Using reduced instruction set cores |
US20130290961A1 (en) * | 2009-12-15 | 2013-10-31 | At&T Mobility Ii Llc | Multiple Mode Mobile Device |
US8904113B2 (en) | 2012-05-24 | 2014-12-02 | International Business Machines Corporation | Virtual machine exclusive caching |
US8935516B2 (en) | 2011-07-29 | 2015-01-13 | International Business Machines Corporation | Enabling portions of programs to be executed on system z integrated information processor (zIIP) without requiring programs to be entirely restructured |
WO2016090554A1 (en) * | 2014-12-09 | 2016-06-16 | Intel Corporation | System and method for execution of application code compiled according to two instruction set architectures |
US20160232071A1 (en) * | 2015-02-10 | 2016-08-11 | International Business Machines Corporation | System level testing of multi-threading functionality |
JP2016537717A (en) * | 2013-12-23 | 2016-12-01 | インテル・コーポレーション | System-on-chip (SoC) with multiple hybrid processor cores |
WO2017046354A1 (en) * | 2015-09-16 | 2017-03-23 | Calay Venture S.A.R.L. | Game engine on a chip |
US9842040B2 (en) | 2013-06-18 | 2017-12-12 | Empire Technology Development Llc | Tracking core-level instruction set capabilities in a chip multiprocessor |
US9852000B2 (en) * | 2013-08-27 | 2017-12-26 | Empire Technology Development Llc | Consolidating operations associated with a plurality of host devices |
US9939873B1 (en) * | 2015-12-09 | 2018-04-10 | International Business Machines Corporation | Reconfigurable backup and caching devices |
US9965287B1 (en) * | 2012-01-27 | 2018-05-08 | Open Invention Network Llc | Virtualized multicore systems with extended instruction heterogeneity |
US20180173674A1 (en) * | 2016-12-21 | 2018-06-21 | Intel Corporation | Systems and methods for multi-architecture computing |
US10552207B2 (en) | 2016-12-21 | 2020-02-04 | Intel Corporation | Systems and methods for multi-architecture computing including program stack translation |
US10713213B2 (en) | 2016-12-21 | 2020-07-14 | Intel Corporation | Systems and methods for multi-architecture computing |
US11275709B2 (en) | 2017-05-02 | 2022-03-15 | Intel Corporation | Systems and methods for multi-architecture computing |
US11301951B2 (en) | 2018-03-15 | 2022-04-12 | The Calany Holding S. À R.L. | Game engine and artificial intelligence engine on a chip |
US11334324B2 (en) | 2019-11-08 | 2022-05-17 | Software Ag | Systems and/or methods for error-free implementation of non-java program code on special purpose processors |
US11422943B2 (en) | 2015-03-27 | 2022-08-23 | Intel Corporation | Efficient address translation |
US11625884B2 (en) | 2019-06-18 | 2023-04-11 | The Calany Holding S. À R.L. | Systems, methods and apparatus for implementing tracked data communications on a chip |
US11748074B2 (en) | 2021-05-28 | 2023-09-05 | Software Ag | User exit daemon for use with special-purpose processor, mainframe including user exit daemon, and associated methods |
Families Citing this family (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US9274851B2 (en) * | 2009-11-25 | 2016-03-01 | Brocade Communications Systems, Inc. | Core-trunking across cores on physically separated processors allocated to a virtual machine based on configuration information including context information for virtual machines |
US8769155B2 (en) | 2010-03-19 | 2014-07-01 | Brocade Communications Systems, Inc. | Techniques for synchronizing application object instances |
US8503289B2 (en) | 2010-03-19 | 2013-08-06 | Brocade Communications Systems, Inc. | Synchronizing multicast information for linecards |
US9104619B2 (en) | 2010-07-23 | 2015-08-11 | Brocade Communications Systems, Inc. | Persisting data across warm boots |
US8495418B2 (en) | 2010-07-23 | 2013-07-23 | Brocade Communications Systems, Inc. | Achieving ultra-high availability using a single CPU |
KR101763426B1 (en) | 2010-08-20 | 2017-07-31 | 삼성전자주식회사 | Device and method for controlling external device |
IN2014CN01367A (en) | 2011-09-06 | 2015-04-24 | Intel Corp | |
US9143335B2 (en) | 2011-09-16 | 2015-09-22 | Brocade Communications Systems, Inc. | Multicast route cache system |
KR101894752B1 (en) * | 2011-10-27 | 2018-09-05 | 삼성전자주식회사 | Virtual Architecture Producing Apparatus, Runtime System, Multi Core System and Method thereof |
US9720730B2 (en) * | 2011-12-30 | 2017-08-01 | Intel Corporation | Providing an asymmetric multicore processor system transparently to an operating system |
US10581763B2 (en) | 2012-09-21 | 2020-03-03 | Avago Technologies International Sales Pte. Limited | High availability application messaging layer |
US9203690B2 (en) | 2012-09-24 | 2015-12-01 | Brocade Communications Systems, Inc. | Role based multicast messaging infrastructure |
US9967106B2 (en) | 2012-09-24 | 2018-05-08 | Brocade Communications Systems LLC | Role based multicast messaging infrastructure |
US9292318B2 (en) | 2012-11-26 | 2016-03-22 | International Business Machines Corporation | Initiating software applications requiring different processor architectures in respective isolated execution environment of an operating system |
US9984083B1 (en) | 2013-02-25 | 2018-05-29 | EMC IP Holding Company LLC | Pluggable storage system for parallel query engines across non-native file systems |
US9805053B1 (en) | 2013-02-25 | 2017-10-31 | EMC IP Holding Company LLC | Pluggable storage system for parallel query engines |
US9916185B2 (en) * | 2014-03-18 | 2018-03-13 | International Business Machines Corporation | Managing processing associated with selected architectural facilities |
US9582295B2 (en) | 2014-03-18 | 2017-02-28 | International Business Machines Corporation | Architectural mode configuration |
US9753770B2 (en) * | 2014-04-03 | 2017-09-05 | Strato Scale Ltd. | Register-type-aware scheduling of virtual central processing units |
EP3001313A1 (en) * | 2014-09-23 | 2016-03-30 | dSPACE digital signal processing and control engineering GmbH | Methods for simulating an application program of an electronic control device on a computer |
US9619349B2 (en) | 2014-10-14 | 2017-04-11 | Brocade Communications Systems, Inc. | Biasing active-standby determination |
TWI664572B (en) * | 2018-02-09 | 2019-07-01 | 威綸科技股份有限公司 | Information processing transmission device |
US12175247B2 (en) * | 2021-06-25 | 2024-12-24 | Intel Corporation | Apparatuses, methods, and systems for instructions for a hardware assisted heterogeneous instruction set architecture dispatcher |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5095427A (en) * | 1986-01-14 | 1992-03-10 | Hitachi, Ltd. | Dispatch control of virtual machine |
US5546554A (en) * | 1994-02-02 | 1996-08-13 | Sun Microsystems, Inc. | Apparatus for dynamic register management in a floating point unit |
US5774686A (en) * | 1995-06-07 | 1998-06-30 | Intel Corporation | Method and apparatus for providing two system architectures in a processor |
US5946487A (en) * | 1996-06-10 | 1999-08-31 | Lsi Logic Corporation | Object-oriented multi-media architecture |
US6021489A (en) * | 1997-06-30 | 2000-02-01 | Intel Corporation | Apparatus and method for sharing a branch prediction unit in a microprocessor implementing a two instruction set architecture |
US6298370B1 (en) * | 1997-04-04 | 2001-10-02 | Texas Instruments Incorporated | Computer operating process allocating tasks between first and second processors at run time based upon current processor load |
US20030088604A1 (en) * | 2001-11-07 | 2003-05-08 | Norbert Kuck | Process attachable virtual machines |
US20050050310A1 (en) * | 2003-07-15 | 2005-03-03 | Bailey Daniel W. | Method, system, and apparatus for improving multi-core processor performance |
US20050081181A1 (en) * | 2001-03-22 | 2005-04-14 | International Business Machines Corporation | System and method for dynamically partitioning processing across plurality of heterogeneous processors |
US20050160151A1 (en) * | 2003-12-17 | 2005-07-21 | International Business Machines Corporation | Method and system for machine memory power and availability management in a processing system supporting multiple virtual machines |
US6948050B1 (en) * | 1989-11-17 | 2005-09-20 | Texas Instruments Incorporated | Single integrated circuit embodying a dual heterogenous processors with separate instruction handling hardware |
US20050223199A1 (en) * | 2004-03-31 | 2005-10-06 | Grochowski Edward T | Method and system to provide user-level multithreading |
US20050283679A1 (en) * | 2004-06-03 | 2005-12-22 | International Business Machines Corporation | Method, system, and computer program product for dynamically managing power in microprocessor chips according to present processing demands |
US6988183B1 (en) * | 1998-06-26 | 2006-01-17 | Derek Chi-Lan Wong | Methods for increasing instruction-level parallelism in microprocessors and digital system |
US20070079150A1 (en) * | 2005-09-30 | 2007-04-05 | Belmont Brian V | Dynamic core swapping |
US7620953B1 (en) * | 2004-10-05 | 2009-11-17 | Azul Systems, Inc. | System and method for allocating resources of a core space among a plurality of core virtual machines |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5794062A (en) * | 1995-04-17 | 1998-08-11 | Ricoh Company Ltd. | System and method for dynamically reconfigurable computing using a processing unit having changeable internal hardware organization |
US7017030B2 (en) * | 2002-02-20 | 2006-03-21 | Arm Limited | Prediction of instructions in a data processing apparatus |
-
2006
- 2006-08-30 US US11/468,547 patent/US8028290B2/en not_active Expired - Fee Related
-
2011
- 2011-07-13 US US13/182,181 patent/US8806182B2/en not_active Expired - Fee Related
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5095427A (en) * | 1986-01-14 | 1992-03-10 | Hitachi, Ltd. | Dispatch control of virtual machine |
US6948050B1 (en) * | 1989-11-17 | 2005-09-20 | Texas Instruments Incorporated | Single integrated circuit embodying a dual heterogenous processors with separate instruction handling hardware |
US5546554A (en) * | 1994-02-02 | 1996-08-13 | Sun Microsystems, Inc. | Apparatus for dynamic register management in a floating point unit |
US5774686A (en) * | 1995-06-07 | 1998-06-30 | Intel Corporation | Method and apparatus for providing two system architectures in a processor |
US5946487A (en) * | 1996-06-10 | 1999-08-31 | Lsi Logic Corporation | Object-oriented multi-media architecture |
US6298370B1 (en) * | 1997-04-04 | 2001-10-02 | Texas Instruments Incorporated | Computer operating process allocating tasks between first and second processors at run time based upon current processor load |
US6021489A (en) * | 1997-06-30 | 2000-02-01 | Intel Corporation | Apparatus and method for sharing a branch prediction unit in a microprocessor implementing a two instruction set architecture |
US6988183B1 (en) * | 1998-06-26 | 2006-01-17 | Derek Chi-Lan Wong | Methods for increasing instruction-level parallelism in microprocessors and digital system |
US20050081181A1 (en) * | 2001-03-22 | 2005-04-14 | International Business Machines Corporation | System and method for dynamically partitioning processing across plurality of heterogeneous processors |
US20030088604A1 (en) * | 2001-11-07 | 2003-05-08 | Norbert Kuck | Process attachable virtual machines |
US20050050310A1 (en) * | 2003-07-15 | 2005-03-03 | Bailey Daniel W. | Method, system, and apparatus for improving multi-core processor performance |
US20050160151A1 (en) * | 2003-12-17 | 2005-07-21 | International Business Machines Corporation | Method and system for machine memory power and availability management in a processing system supporting multiple virtual machines |
US20050223199A1 (en) * | 2004-03-31 | 2005-10-06 | Grochowski Edward T | Method and system to provide user-level multithreading |
US20050283679A1 (en) * | 2004-06-03 | 2005-12-22 | International Business Machines Corporation | Method, system, and computer program product for dynamically managing power in microprocessor chips according to present processing demands |
US7620953B1 (en) * | 2004-10-05 | 2009-11-17 | Azul Systems, Inc. | System and method for allocating resources of a core space among a plurality of core virtual machines |
US20070079150A1 (en) * | 2005-09-30 | 2007-04-05 | Belmont Brian V | Dynamic core swapping |
Cited By (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7941803B2 (en) * | 2007-01-15 | 2011-05-10 | International Business Machines Corporation | Controlling an operational mode for a logical partition on a computing system |
US20080172554A1 (en) * | 2007-01-15 | 2008-07-17 | Armstrong William J | Controlling an Operational Mode for a Logical Partition on a Computing System |
US20110131580A1 (en) * | 2009-11-30 | 2011-06-02 | International Business Machines Corporation | Managing task execution on accelerators |
US20110131430A1 (en) * | 2009-11-30 | 2011-06-02 | International Business Machines Corporation | Managing accelerators of a computing environment |
US8423799B2 (en) | 2009-11-30 | 2013-04-16 | International Business Machines Corporation | Managing accelerators of a computing environment |
US8776066B2 (en) | 2009-11-30 | 2014-07-08 | International Business Machines Corporation | Managing task execution on accelerators |
US9864857B2 (en) * | 2009-12-15 | 2018-01-09 | AT&T Mobility II LC | Fault detection during operation of multiple applications at a mobile device |
US20130290961A1 (en) * | 2009-12-15 | 2013-10-31 | At&T Mobility Ii Llc | Multiple Mode Mobile Device |
EP2568394A1 (en) * | 2010-05-07 | 2013-03-13 | Fujitsu Limited | Hardware control method of information processing system and information processing system |
EP2568394A4 (en) * | 2010-05-07 | 2013-08-28 | Fujitsu Ltd | METHOD FOR CONTROLLING INFORMATION PROCESSING SYSTEM MATERIAL, AND INFORMATION PROCESSING SYSTEM |
CN101977313A (en) * | 2010-09-20 | 2011-02-16 | 中国科学院计算技术研究所 | Video signal coding device and method |
US20130246825A1 (en) * | 2011-03-25 | 2013-09-19 | Research In Motion Limited | Method and system for dynamically power scaling a cache memory of a multi-core processing system |
WO2012134431A1 (en) * | 2011-03-25 | 2012-10-04 | Research In Motion Limited | Dynamic power management of cache memory in a multi-core processing system |
US20130018507A1 (en) * | 2011-07-13 | 2013-01-17 | Kuka Roboter Gmbh | Control System Of A Robot |
CN102880064A (en) * | 2011-07-13 | 2013-01-16 | 库卡罗伯特有限公司 | Control system of a robot |
US9114528B2 (en) * | 2011-07-13 | 2015-08-25 | Kuka Roboter Gmbh | Control system of a robot |
US8935516B2 (en) | 2011-07-29 | 2015-01-13 | International Business Machines Corporation | Enabling portions of programs to be executed on system z integrated information processor (zIIP) without requiring programs to be entirely restructured |
US8938608B2 (en) | 2011-07-29 | 2015-01-20 | International Business Machines Corporation | Enabling portions of programs to be executed on system z integrated information processor (zIIP) without requiring programs to be entirely restructured |
US8910130B2 (en) * | 2011-12-29 | 2014-12-09 | Software Ag | Method and system for executing a 3GL program and/or an assembler program within a 4GL runtime environment |
US20130174130A1 (en) * | 2011-12-29 | 2013-07-04 | Michael Münster | Method and system for executing a 3gl program and/or an assembler program within a 4gl runtime environment |
WO2013101146A1 (en) * | 2011-12-30 | 2013-07-04 | Intel Corporation | Using reduced instruction set cores |
US12153540B2 (en) | 2012-01-27 | 2024-11-26 | Google Llc | Virtualized multicore systems with extended instruction heterogeneity |
US11630798B1 (en) | 2012-01-27 | 2023-04-18 | Google Llc | Virtualized multicore systems with extended instruction heterogeneity |
US11106623B1 (en) | 2012-01-27 | 2021-08-31 | Open Invention Network Llc | Virtualized multicore systems with extended instruction heterogeneity |
US9965287B1 (en) * | 2012-01-27 | 2018-05-08 | Open Invention Network Llc | Virtualized multicore systems with extended instruction heterogeneity |
US8904113B2 (en) | 2012-05-24 | 2014-12-02 | International Business Machines Corporation | Virtual machine exclusive caching |
US10534684B2 (en) | 2013-06-18 | 2020-01-14 | Empire Technology Development Llc | Tracking core-level instruction set capabilities in a chip multiprocessor |
US9842040B2 (en) | 2013-06-18 | 2017-12-12 | Empire Technology Development Llc | Tracking core-level instruction set capabilities in a chip multiprocessor |
US9852000B2 (en) * | 2013-08-27 | 2017-12-26 | Empire Technology Development Llc | Consolidating operations associated with a plurality of host devices |
JP2016537717A (en) * | 2013-12-23 | 2016-12-01 | インテル・コーポレーション | System-on-chip (SoC) with multiple hybrid processor cores |
WO2016090554A1 (en) * | 2014-12-09 | 2016-06-16 | Intel Corporation | System and method for execution of application code compiled according to two instruction set architectures |
KR20170094136A (en) * | 2014-12-09 | 2017-08-17 | 인텔 코포레이션 | System and method for execution of application code compiled according to two instruction set architectures |
EP3230853A4 (en) * | 2014-12-09 | 2019-05-29 | Intel Corporation | System and method for execution of application code compiled according to two instruction set architectures |
US9910721B2 (en) | 2014-12-09 | 2018-03-06 | Intel Corporation | System and method for execution of application code compiled according to two instruction set architectures |
KR102332209B1 (en) | 2014-12-09 | 2021-11-29 | 인텔 코포레이션 | System and method for execution of application code compiled according to two instruction set architectures |
US20160232071A1 (en) * | 2015-02-10 | 2016-08-11 | International Business Machines Corporation | System level testing of multi-threading functionality |
US10713139B2 (en) * | 2015-02-10 | 2020-07-14 | International Business Machines Corporation | System level testing of multi-threading functionality including building independent instruction streams while honoring architecturally imposed common fields and constraints |
US10719420B2 (en) | 2015-02-10 | 2020-07-21 | International Business Machines Corporation | System level testing of multi-threading functionality including building independent instruction streams while honoring architecturally imposed common fields and constraints |
US12079138B2 (en) | 2015-03-27 | 2024-09-03 | Intel Corporation | Efficient address translation |
US11422943B2 (en) | 2015-03-27 | 2022-08-23 | Intel Corporation | Efficient address translation |
US11663769B2 (en) | 2015-09-16 | 2023-05-30 | Tmrw Foundation Ip S. À R.L. | Game engine on a chip |
WO2017046354A1 (en) * | 2015-09-16 | 2017-03-23 | Calay Venture S.A.R.L. | Game engine on a chip |
US12249018B2 (en) | 2015-09-16 | 2025-03-11 | Tmrw Foundation Ip S.Àr.L. | Game engine on a chip |
US11295506B2 (en) | 2015-09-16 | 2022-04-05 | Tmrw Foundation Ip S. À R.L. | Chip with game engine and ray trace engine |
EP4332906A3 (en) * | 2015-09-16 | 2024-05-15 | TMRW Foundation IP SARL | Game engine on a chip |
US9939873B1 (en) * | 2015-12-09 | 2018-04-10 | International Business Machines Corporation | Reconfigurable backup and caching devices |
US20180173674A1 (en) * | 2016-12-21 | 2018-06-21 | Intel Corporation | Systems and methods for multi-architecture computing |
US10684984B2 (en) * | 2016-12-21 | 2020-06-16 | Intel Corporation | Computing devices and server systems with processing cores having different instruction set architectures |
US10552207B2 (en) | 2016-12-21 | 2020-02-04 | Intel Corporation | Systems and methods for multi-architecture computing including program stack translation |
US10713213B2 (en) | 2016-12-21 | 2020-07-14 | Intel Corporation | Systems and methods for multi-architecture computing |
US20220197851A1 (en) * | 2017-05-02 | 2022-06-23 | Intel Corporation | Systems and methods for multi-architecture computing |
US12124403B2 (en) * | 2017-05-02 | 2024-10-22 | Intel Corporation | Systems and methods for multi-architecture computing |
US11275709B2 (en) | 2017-05-02 | 2022-03-15 | Intel Corporation | Systems and methods for multi-architecture computing |
US11301951B2 (en) | 2018-03-15 | 2022-04-12 | The Calany Holding S. À R.L. | Game engine and artificial intelligence engine on a chip |
US11625884B2 (en) | 2019-06-18 | 2023-04-11 | The Calany Holding S. À R.L. | Systems, methods and apparatus for implementing tracked data communications on a chip |
US11334324B2 (en) | 2019-11-08 | 2022-05-17 | Software Ag | Systems and/or methods for error-free implementation of non-java program code on special purpose processors |
US11748074B2 (en) | 2021-05-28 | 2023-09-05 | Software Ag | User exit daemon for use with special-purpose processor, mainframe including user exit daemon, and associated methods |
Also Published As
Publication number | Publication date |
---|---|
US8806182B2 (en) | 2014-08-12 |
US8028290B2 (en) | 2011-09-27 |
US20110271079A1 (en) | 2011-11-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8028290B2 (en) | Multiple-core processor supporting multiple instruction set architectures | |
US7222203B2 (en) | Interrupt redirection for virtual partitioning | |
US8261284B2 (en) | Fast context switching using virtual cpus | |
US8166288B2 (en) | Managing requests of operating systems executing in virtual machines | |
US8745441B2 (en) | Processor replacement | |
US8176339B2 (en) | Method and system for managing peripheral connection wakeup in a processing system supporting multiple virtual machines | |
US20110113426A1 (en) | Apparatuses for switching the running of a virtual machine between multiple computer devices belonging to the same computer platform and the associated switching methods | |
WO2018148082A1 (en) | Migrating accelerators between compute systems | |
US9164784B2 (en) | Signalizing an external event using a dedicated virtual central processing unit | |
US20090210069A1 (en) | Industrial controller using shared memory multicore architecture | |
US8589938B2 (en) | Composite contention aware task scheduling | |
JP2010510607A (en) | Replacing system hardware | |
KR20060108711A (en) | Virtual machine management with activity information | |
US9959134B2 (en) | Request processing using VM functions | |
US20160253196A1 (en) | Optimized extended context management for virtual machines | |
US20100100892A1 (en) | Managing hosted virtualized operating system environments | |
US10949243B2 (en) | Reducing IPI overhead with CPU overcommit support via IPI broadcast | |
US9471395B2 (en) | Processor cluster migration techniques | |
US8560868B2 (en) | Reducing subsystem energy costs | |
US8713545B2 (en) | Architecture for accelerated computer processing | |
US10810032B2 (en) | System and method for dynamic guest-controlled halt polling using a CPU governor | |
CN114064128B (en) | Kernel restarting method | |
US20240248744A1 (en) | Systems and methods for offloading guest tasks to a host system | |
Kale et al. | Distributing subsystems across different kernels running simultaneously in a Multi-Core architecture | |
CN117573386B (en) | Inter-process communication method and device |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:RYMARCZYK, JAMES W;IGNATOWSKI, MICHAEL;HELLER, JR, THOMAS J;REEL/FRAME:018193/0368;SIGNING DATES FROM 20060825 TO 20060830 Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:RYMARCZYK, JAMES W;IGNATOWSKI, MICHAEL;HELLER, JR, THOMAS J;SIGNING DATES FROM 20060825 TO 20060830;REEL/FRAME:018193/0368 |
|
ZAAA | Notice of allowance and fees due |
Free format text: ORIGINAL CODE: NOA |
|
ZAAB | Notice of allowance mailed |
Free format text: ORIGINAL CODE: MN/=. |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: MICROSOFT CORPORATION, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:INTERNATIONAL BUSINESS MACHINES CORPORATION;REEL/FRAME:028176/0290 Effective date: 20120330 |
|
AS | Assignment |
Owner name: MICROSOFT TECHNOLOGY LICENSING, LLC, WASHINGTON Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:MICROSOFT CORPORATION;REEL/FRAME:034542/0001 Effective date: 20141014 |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |
|
FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20230927 |