System and method for preserving instruction state-atomicity for translated program
AssigneeDigital Equipment Corporation
InventorsScott G. Robinson, Richard L. Sites, Richard T. Witek
Life of this patent
Estimating the term…
Loading patent…
AssigneeDigital Equipment Corporation
InventorsScott G. Robinson, Richard L. Sites, Richard T. Witek
Estimating the term…
A system or method is provided for translating a first program code to a second program code and for executing the second program code while preserving instruction state-atomicity of the first code. The first program code is executable on a computer having a first architecture adapted to a first instruction set and the second program code is executable on a computer having a memory and register state and a second architecture adapted to a second instruction set that is reduced relative to the first instruction set. A first computer translates the first code instructions to corresponding second code instructions in accordance with a pattern code that defines first code instructions in terms of second code instructions. The second code instructions for each first code instruction organized in a granular instruction sequence having in order at least two groups, a first group having a first subgroup including second code read instructions and a second subgroup including modify instructions and a second group having a third subgroup including state update instructions subject to exception, including any special write instruction required to implement the first code instruction being translated, and a fourth subgroup including state update instructions free of exception.
A method for translating a first program code comprising a first sequence of instructions to a second program code comprising a second sequence of instructions and for executing the second program code while preserving instruction state-atomicity of the first program code, the first program code associated with a first computer system having a first state area including a first set of one or more registers and a first memory and characterized by a first architecture adapted to a first instruction set, the second program code associated with a second computer system including a processor, and a second state area corresponding to said first state area and including a second memory and a second set of one or more registers, and characterized by a second architecture adapted to a second instruction set, said method comprising the steps of:
A method for translating a first program code to a second program code and for executing the second program code while preserving instruction state-atomicity of the first program code, the first program code including first program code instructions of a first instruction set associated with a first computer system having a first architecture and a first state area including a first memory and a first register set of one or more registers and the second program code including second program code instructions of a second instruction set associated with a second computer system having a second state area corresponding to said first state area and including a second memory and second register set of one or more registers, said second computer system having a second architecture, said method comprising the steps of:
A method for translating a first program code to a second program code and for executing the second program code while preserving instruction state-atomicity of the first program code, the first program code including first code instructions of a first instruction set associated with a first computer system having a first state area including a first memory and a first set of one or more registers, said first computer system having a first architecture, the second program code including second code instructions of a second instruction set associated with a second computer system having a second state area corresponding to said first state area and having a second memory and a second register set of one or more registers, said second computer system having a second architecture, said method comprising the steps of:
A method for translating a first program code to a second program code to facilitate preserving state atomicity of the first program code during execution of the second program code, the first program code including first code instructions of a first instruction set associated with a first computer system having a first architecture and first state area including a first memory and a first set of one or more registers, the second program code including second code instructions of a second instruction set associated with a second computer system having a second state area corresponding to the first state area and having a second memory and a second set of one or more registers, said second computer system having a second architecture, said method comprising the steps of:
A method for executing a second program code while preserving state atomicity of a first program code from which the second program code is translated, the first program code including first code instructions of a first instruction set associated with a first computer system having a first state area including a first memory and first set of one or more registers, said first computer system having a first architecture, the second program code including second code instructions of a second instruction set associated with a second computer system having a second state area corresponding to said first state area and including a second memory and a second set of one or more registers, said second computer system having a second architecture, the second code instructions for each of said first code instructions being organized into a granular instruction sequence having at least two groups, a first group including those second code instructions that perform data operations using temporary storage locations and can be aborted after execution and preserve state atomicity of said first program code, and a second group including one or more instructions used to implement one or more special write instructions of said first instruction set, a first of said special write instructions resulting in including a first subsequence of instructions in said second sequence for processing a single write to a first memory location, said first sequence requiring execution without interruption and without intervening conflicting writes to said first memory location, said special write instructions including a second special write instruction resulting in a second subsequence of instructions being included in said second sequence for processing multiple write operations, said second sequence requiring execution without any interruption, said method comprising the steps of:
A system for translating a first program code to a second program code and for executing the second program code preserving instruction state-atomicity of the first code, the first program code including first code instructions of a first instruction set associated with a first computer system having a first architecture and a first state area including a first memory and a first set of one or more registers, the second program code including second code instructions of a second instruction set associated with a second computer system having a second state area corresponding to said first state area and including a second memory and a second set of one or more registers, said second computer system having a second architecture, said system comprising:
A system for translating a first program code to a second program code and for executing the second program code while preserving instruction state-atomicity of the first code, the first program code associated with a first computer system having a first architecture and a first state area including a first memory and a first set of one or more registers, and the second program code associated with a second computer system having a second architecture and a second state area corresponding to said first state area and having a second memory and second set of one or more registers, said system comprising:
A system for translating a first program code to a second program code and for executing the second program code in a manner that preserves instruction state-atomicity of the first code, the first program code associated with a first computer system having a first architecture and a first state area including a first memory and a first set of one or more registers, and the second program code associated with a second architecture and a second state area corresponding to the first state area and including a second memory and a second set of one or more registers, said system comprising:
A system for translating a first program code to a second program code to facilitate preserving state atomicity of the first code when the second code is executed, the first program code associated with a first computer system having a first computer architecture, a first instruction set, and a first state area having a first memory and first set of one or more registers, and the second program code associated with a second computer system having a second computer architecture, a second instruction set, and a second state area corresponding to said first state area and having a second memory and second set of one or more registers, said system comprising:
A system for executing a second program code while preserving state atomicity of a first program code from which the second program code is translated, the first program code associated with a first computer system having a first computer architecture, a first instruction set, and a first state area including a first memory and first set of one or more registers, and the second program code associated with a second computer system having a second computer architecture, a second instruction set, a second state area corresponding to said first state area, and a second memory and second set of one or more registers, each of the instructions of said second program code being organized into a granular instruction sequence having at least two groups, a first group including those second code instructions that perform data operations using temporary storage locations and can be aborted after execution and preserve state atomicity of said first program code, and a second group including instructions in said second program code that update said second state area, said second group including one or more instructions used to implement one or more special write instructions of said first instruction set, a first of said special write instructions processing a single write to a first memory location and causing a first subsequence of instructions to be included in said second program code, said first subsequence being executed without an interruption and without intervening conflicting write operations to said first memory location, and a second of said special write instructions performing multiple write operations and causing a second subsequence of instructions to be included in said second program code, said second subsequence requiring execution without an interruption, said system comprising:
A method for translating a first program code to a second program code and for executing the second program code in a manner that preserves instruction state-atomicity of the first code, the first program code associated with a first computer system having a first computer architecture, a first instruction set, and a first state area including a first memory and a first set of one or more registers, and the second program code associated with a second computer system having a second computer architecture, a second instruction set, a second state area corresponding to said first state area, second memory and a second set of one or more registers, said method comprising the steps of:
A system for translating a first program code to a second program code and for executing the second program code in a manner that preserves instruction state-atomicity of the first code, the first program code associated with a first computer system having a first computer architecture, a first instruction set, and a first state area including a first memory and a first set of one or more registers, and the second program code associated with a second computer system having a second computer architecture, a second instruction set, a second state area corresponding to said first state area, a second memory, and a second set of one or more registers, the system comprising:
Dependencies are inferred from the claim text.