Transferring execution from one instruction stream to another
First Claim
1. A computer, comprising:
- instruction pipeline circuitry designed to effect interpretation of computer instructions under two instruction set architectures alternately;
a binary translator programmed to translate at least a selected portion of a computer program from a lower-performance one of the instruction set architectures to a higher-performance one of the instruction set architectures;
pipeline control circuitry cooperatively designed with the instruction pipeline circuitry to initiate a query, when about to execute a program region coded in a lower-performance one of the instruction set architectures in the instruction pipeline circuitry, the query inquiring whether a program region coded in the higher-performance instruction set architectures exists, the higher-performance region being logically equivalent to the lower-performance program region, the pipeline control circuitry being effective to initiate the determination with neither a query nor a transfer of control to the lower-performance region being coded into the lower-performance region;
circuitry and/or software designed to abort the execution of the about-to-be-executed instruction when the higher-performance region exists, and to transfer execution control to the higher-performance region, without an alternation to effect the transfer being made to the lower-performance binary object code; and
circuitry and/or software designed to reestablish execution of the lower-performance region after execution of the higher-performance region, execution of the lower-performance region being reestablished at a point downstream from the aborted instruction, in a context logically equivalent to that which would have prevailed had the code of the lower-performance region been allowed to proceed.
3 Assignments
0 Petitions
Accused Products
Abstract
A computer has instruction pipeline circuitry capable of executing two instruction set architectures (ISA'"'"'s). A binary translator translates at least a selected portion of a computer program from a lower-performance one of the ISA'"'"'s to a higher-performance one of the ISA'"'"'s. Hardware initiates a query when about to execute a program region coded in the lower-performance ISA, to determine whether a higher-performance translation exists. If so, the about-to-be-executed instruction is aborted, and control transfers to the higher-performance translation. After execution of the higher-performance translation, execution of the lower-performance region is reestablished at a point downstream from the aborted instruction, in a context logically equivalent to that which would have prevailed had the code of the lower-performance region been allowed to proceed.
-
Citations
40 Claims
-
1. A computer, comprising:
-
instruction pipeline circuitry designed to effect interpretation of computer instructions under two instruction set architectures alternately;
a binary translator programmed to translate at least a selected portion of a computer program from a lower-performance one of the instruction set architectures to a higher-performance one of the instruction set architectures;
pipeline control circuitry cooperatively designed with the instruction pipeline circuitry to initiate a query, when about to execute a program region coded in a lower-performance one of the instruction set architectures in the instruction pipeline circuitry, the query inquiring whether a program region coded in the higher-performance instruction set architectures exists, the higher-performance region being logically equivalent to the lower-performance program region, the pipeline control circuitry being effective to initiate the determination with neither a query nor a transfer of control to the lower-performance region being coded into the lower-performance region;
circuitry and/or software designed to abort the execution of the about-to-be-executed instruction when the higher-performance region exists, and to transfer execution control to the higher-performance region, without an alternation to effect the transfer being made to the lower-performance binary object code; and
circuitry and/or software designed to reestablish execution of the lower-performance region after execution of the higher-performance region, execution of the lower-performance region being reestablished at a point downstream from the aborted instruction, in a context logically equivalent to that which would have prevailed had the code of the lower-performance region been allowed to proceed.
-
-
2. A computer, comprising:
-
instruction pipeline circuitry;
pipeline control circuitry cooperatively designed with the instruction pipeline circuitry to initiate, when about to execute a program region coded in a lower-performance binary object code representation, a query whether a program region coded in a higher-performance binary object code representation exists, the higher-performance region being logically equivalent to the lower-performance program region; and
circuitry and/or software to transfer execution control to the higher-performance region, without an alternation to effect the transfer being made to the lower-performance binary object code. - View Dependent Claims (3, 4, 5, 6, 7, 8, 9)
-
-
10. A method, comprising the steps of:
-
translating at least a selected portion of a computer program from a first binary object code representation to a second binary object code representation;
during execution of the first binary object code representation of the program on a computer, recognizing that execution has entered the selected portion, the recognizing being initiated by basic instruction execution of the computer, without an alternation to effect the transfer being made to the first binary object code; and
in response to the recognition, transferring control to the translation in the first binary object code representation. - View Dependent Claims (11, 12, 13)
-
-
14. A computer, comprising:
-
instruction pipeline circuitry;
a binary translator programmed to translate at least a selected portion of a computer program from a first binary object code representation to a second binary object code representation;
pipeline control circuitry cooperatively designed with the instruction pipeline circuitry to initiate a determination of whether to transfer control from an execution of the first binary object code representation of the program to the second, and effective to initiate the determination, without an alternation to effect the transfer being made to the first binary object code. - View Dependent Claims (15, 16)
-
-
17. A method, comprising the steps of:
-
as part of executing an instruction on a computer, recognizing that an alternate binary object code representation of the instruction exists, the recognizing being initiated without an instruction to transfer control to the alternate binary object code representation, or otherwise altering the binary object code to effect the transfer;
when an alternate binary object code representation exists, aborting the execution of the instruction; and
transferring control to the alternate binary object code representation. - View Dependent Claims (18, 19, 20, 21, 22, 23)
-
-
24. A computer, comprising:
-
instruction pipeline circuitry;
pipeline control circuitry cooperatively designed with the instruction pipeline circuitry effective to recognize, as part of executing an instruction, that an alternate binary object code representation of the instruction exists, the recognizing being initiated without an alternation to effect the transfer being made to the binary object code representation of which the instruction is a part; and
circuitry and/or software designed to abort the execution of the instruction when the alternate binary object code representation exists, and to transfer control to the alternate binary object code representation. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A method, comprising the steps of:
-
during execution of a program on instruction pipeline circuitry of a computer, initiating a determination of whether to transfer control from a first instruction stream in execution by the instruction pipeline circuitry to a second instruction stream, without an alteration to effect the transfer being made to the first instruction stream; and
reestablishing execution of the first instruction stream after execution of the second instruction stream, execution of the first instruction stream being reestablished at a point downstream from the point at which control was seized, in a context logically equivalent to that which would have prevailed had the code of the first instruction stream been allowed to proceed. - View Dependent Claims (34, 35, 36)
-
-
37. A method, comprising the steps of:
-
while executing a program on a computer, when about to execute a program region coded in a lower-performance binary object code representation, querying whether a program region coded in a higher-performance binary object code representation exists, the higher-performance region being logically equivalent to the lower-performance program region, the query being initiated in hardware; and
transferring execution control to the higher-performance region, without an alteration being made to the lower-performance binary object code in order to effect the transfer. - View Dependent Claims (38, 39, 40)
-
Specification