Patent ID: 6243668
Filing Date: 2001-06-05
Classification: G06F

Abstract:
A method of executing a program compiled for a base instruction set architecture different from a native instruction set architecture on a native machine having an operating system, a register stack, and a memory, by organizing a runtime system module into at least a low level domain, a medium level domain, and a high level domain, and creating a translation lookaside buffer in the memory, said method comprising the steps of:creating a backing store in the high level domain, said backing store being a memory buffer corresponding to the register stack located in the low level domain and having a one-to-one mapping with the register stack;initializing a beginning of said backing store to contain user-visible register values constituting base instruction set architecture register values;defining a virtual instruction pointer to point to a current instruction of the program to be executed;executing a start routine for forcing a reload of said user-visible register values from said backing store to the register stack and returning to the low level domain to perform a lookup operation in the translation lookaside buffer;calling the medium level domain from the low level domain to perform a lookup operation in an address map if said lookup operation in the translation lookaside buffer failed;calling the medium level domain if a translated block performed a system call to the operating system;spilling user-visible register values from the register stack to said backing; store when switching from the medium level domain to the high level domain only if a translated block for said current instruction to execute does not exist or a system call is performed which needs to access a base instruction set register state, and performing at least one high level operation in the high level domain; and,returning from the high level domain to the low level domain if said translated block exists for said current instruction to execute.