Emulating a computer run time environment
First Claim
1. A method of emulating a computer run time environment, the method implemented as a component of a dynamic binary translation loop that operates in an emulation environment to translate target executable code compiled for execution on a target computer to translated code executable on a host computer of a kind other than the target computer, the target executable code comprising user-level application code and target operating system code, the target executable code comprising target executable processes, the target operating system code effecting context switches among the target executable processes, the method comprising:
- storing translated code in blocks of a translated code cache, each block of the translated code cache designated for storage of translated code for a separate one of the target executable processes, including identifying each block in dependence upon an identifier of the process for which the block is designated as storage;
executing by the emulation environment a particular one of the target executable processes, using for target code translation the translated code in the block of the translated code cache designated as storage for the particular process; and
upon encountering a context switch by the target operating system from execution of the particular one of the target executable processes to execution of a new target executable process, changing from the block designated for the particular process to using for target code translation the translated code in the block of the translated code cache designated as storage for the new target executable process,wherein the method is implemented on a network on chip (‘
NOC’
), the NOC comprising integrated processor (‘
IP’
) blocks, routers, memory communications controllers, and network interface controller, each IP block connected to a router through a memory communications controller and a network interface controller, each memory communications controller controlling communication between an IP block and memory, and each network interface controller controlling inter-IP block communications through routers, wherein each router implements a plurality of virtual communications channels, the virtual communications channels characterized by different communication types.
1 Assignment
0 Petitions
Accused Products
Abstract
Emulating a computer run time environment including: storing translated code in blocks of a translated code cache, each block of the translated code cache designated for storage of translated code for a separate one of the target executable processes, including identifying each block in dependence upon an identifier of the process for which the block is designated as storage; executing by the emulation environment a particular one of the target executable processes, using for target code translation the translated code in the block of the translated code cache designated as storage for the particular process; and upon encountering a context switch by the target operating system to execution of a new target executable process, changing from the block designated for the particular process to using for target code translation the translated code in the block of the translated code cache designated as storage for the new target executable process.
-
Citations
15 Claims
-
1. A method of emulating a computer run time environment, the method implemented as a component of a dynamic binary translation loop that operates in an emulation environment to translate target executable code compiled for execution on a target computer to translated code executable on a host computer of a kind other than the target computer, the target executable code comprising user-level application code and target operating system code, the target executable code comprising target executable processes, the target operating system code effecting context switches among the target executable processes, the method comprising:
-
storing translated code in blocks of a translated code cache, each block of the translated code cache designated for storage of translated code for a separate one of the target executable processes, including identifying each block in dependence upon an identifier of the process for which the block is designated as storage; executing by the emulation environment a particular one of the target executable processes, using for target code translation the translated code in the block of the translated code cache designated as storage for the particular process; and upon encountering a context switch by the target operating system from execution of the particular one of the target executable processes to execution of a new target executable process, changing from the block designated for the particular process to using for target code translation the translated code in the block of the translated code cache designated as storage for the new target executable process, wherein the method is implemented on a network on chip (‘
NOC’
), the NOC comprising integrated processor (‘
IP’
) blocks, routers, memory communications controllers, and network interface controller, each IP block connected to a router through a memory communications controller and a network interface controller, each memory communications controller controlling communication between an IP block and memory, and each network interface controller controlling inter-IP block communications through routers, wherein each router implements a plurality of virtual communications channels, the virtual communications channels characterized by different communication types. - View Dependent Claims (2, 3, 4, 5)
-
-
6. An apparatus for emulating a computer run time environment, the apparatus comprising a computer processor, a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions implemented as a component of a dynamic binary translation loop that operates in an emulation environment to translate target executable code compiled for execution on a target computer to translated code executable on a host computer of a kind other than the target computer, the target executable code comprising user-level application code and target operating system code, the target executable code comprising target executable processes, the target operating system code effecting context switches among the target executable processes, the computer program instructions upon execution causes the apparatus to perform the steps of:
-
storing translated code in blocks of a translated code cache, each block of the translated code cache designated for storage of translated code for a separate one of the target executable processes, including identifying each block in dependence upon an identifier of the process for which the block is designated as storage; executing by the emulation environment a particular one of the target executable processes, using for target code translation the translated code in the block of the translated code cache designated as storage for the particular process; and upon encountering a context switch by the target operating system from execution of the particular one of the target executable processes to execution of a new target executable process, changing from the block designated for the particular process to using for target code translation the translated code in the block of the translated code cache designated as storage for the new target executable process, wherein the apparatus further comprises a network on chip (‘
NOC’
), the NOC comprising integrated processor (‘
IP’
) blocks, routers, memory communications controllers, and network interface controller, each IP block connected to a router through a memory communications controller and a network interface controller, each memory communications controller controlling communication between an IP block and memory, and each network interface controller controlling inter-IP block communications through routers, wherein each router implements a plurality of virtual communications channels, the virtual communications channels characterized by different communication types. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A computer program product for emulating a computer run time environment, the computer program product disposed in a non-transitory computer-readable medium, the computer program product comprising computer program instructions implemented as a component of a dynamic binary translation loop that operates in an emulation environment to translate target executable code compiled for execution on a target computer to translated code executable on a host computer of a kind other than the target computer, the target executable code comprising user-level application code and target operating system code, the target executable code comprising target executable processes, the target operating system code effecting context switches among the target executable processes, the computer program instructions upon execution causes a computer to perform the steps of:
-
storing translated code in blocks of a translated code cache, each block of the translated code cache designated for storage of translated code for a separate one of the target executable processes, including identifying each block in dependence upon an identifier of the process for which the block is designated as storage; executing by the emulation environment a particular one of the target executable processes, using for target code translation the translated code in the block of the translated code cache designated as storage for the particular process; and upon encountering a context switch by the target operating system from execution of the particular one of the target executable processes to execution of a new target executable process, changing from the block designated for the particular process to using for target code translation the translated code in the block of the translated code cache designated as storage for the new target executable process, wherein the computer program instructions are capable of execution on a network on chip (‘
NOC’
), the NOC comprising integrated processor (‘
IP’
) blocks, routers, memory communications controllers, and network interface controller, each IP block connected to a router through a memory communications controller and a network interface controller, each memory communications controller controlling communication between an IP block and memory, and each network interface controller controlling inter-IP block communications through routers, wherein each router implements a plurality of virtual communications channels, the virtual communications channels characterized by different communication types. - View Dependent Claims (12, 13, 14, 15)
-
Specification