Method and system for instruction-set architecture simulation using just in time compilation
First Claim
1. A method of simulating a program comprising:
- a) determining if compiled data of an instruction of a program simulation is stored in a memory table of compiled instructions, in response to a request for said compiled data;
b) if said compiled data is not is said memory table, compiling said instruction and storing said compiled data in said memory table; and
c) returning said compiled data or said reference thereto to a simulator that is executing said program simulation.
7 Assignments
0 Petitions
Accused Products
Abstract
A method of simulating a program. Compiled and interpretive techniques are combined into a just-in-time cached compiled technique. When an instruction of a program simulation is to be executed at run-time, a table of compiled instructions is accessed to determine whether compiled data for the instruction is stored in the table. If the compiled data is not therein, the instruction is compiled and stored in the table. The compiled data is returned to a simulator that is executing the program simulation. In another embodiment, before storing new information in the table, another table may be consulted to determine if the location to which the new information is to be stored is protected. If the table location is protected, the new information is not stored in the table. Rather, the new information is simply passed on to the simulator.
36 Citations
39 Claims
-
1. A method of simulating a program comprising:
-
a) determining if compiled data of an instruction of a program simulation is stored in a memory table of compiled instructions, in response to a request for said compiled data;
b) if said compiled data is not is said memory table, compiling said instruction and storing said compiled data in said memory table; and
c) returning said compiled data or said reference thereto to a simulator that is executing said program simulation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A computer implemented method of simulating the execution of a set of instructions comprising:
-
a) accessing a first instruction to be simulated;
b) determining if compiled data relating to said first instruction is present in a memory stored table;
c) if said compiled data relating to said first instruction is present in said memory stored table, providing said compiled data to a simulator for execution thereof by a computer system; and
d) if said compiled data relating to said first instruction is not present in said memory stored table, compiling said first instruction to produce a compiled result and providing said compiled result to said simulator for execution thereof by a computer system. - View Dependent Claims (15, 16, 17)
-
-
18. A computer implemented method of simulating the execution of a set of instructions comprising:
-
a) when an instruction of a program simulation is to be executed by a simulator at run-time, determining if information to simulate said instruction is stored in a memory table;
b) if said information is not therein, determining said information to be used to simulate said instruction;
c) determining if a location in said memory table to which said information is to be written is protected;
d) if said location is not protected, storing said information in said memory table location and returning said information to said simulator; and
e) if said location is protected, returning said information to said simulator without storing said information in said memory table. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25)
-
-
26. A computer system for simulating a program, comprising:
-
a cache table for storing information for specifying operations to simulate an instruction-set architecture;
an instruction compiler for decoding instructions to be simulated, determining said information, and storing said information in said cache table; and
a program simulator for using said information to simulate said instruction-set architecture. - View Dependent Claims (27, 28, 29, 30, 31, 32, 33, 34)
-
-
35. A computer readable medium having stored therein instructions which when executed on a general purpose processor implement a method of simulating a processor, said method comprising:
-
a) determining if compiled data used in simulating an instruction is stored in a memory table of compiled instructions, in response to a request for said compiled data;
b) if said compiled data is not is said memory table;
b1) decoding said instruction;
b2) determining said compiled data;
b3) storing said compiled data in said memory table; and
c) returning said compiled data to a simulator for executing a program simulation. - View Dependent Claims (36, 37, 38, 39)
-
Specification