Method and apparatus for dynamic conversion of computer instructions
First Claim
1. A method of executing a computer program, compiled for sequential instruction execution, on a parallel instruction processing system, the method comprising the steps of:
- retrieving, in response to a cache miss, a group of sequential instructions having a first and second conditional branch instruction, and first and second instructions that are dependent upon the first and second conditional branch instructions, respectively;
creating a compound instruction for parallel execution including the steps of;
inserting, for each of the first and second conditional branch instructions, a branch operation, and a branch address, into the compound instruction, the branch condition indicating the condition to be tested, and the branch address indicating where to proceed if the branch is executed;
inserting, for each of the first and second dependent instructions, a target register, a source operand, an operation indicator, and a dependency indicator, the operation indicator indicating the type of operation to be performed, the source operand indicating the register containing the data for the operation, the target register for containing the result of the operation, and the dependency indicator for indicating whether the execution of the instruction depends upon either the first or second conditional branch instruction; and
storing the address of the next sequential instruction;
storing the compound instruction in the cache; and
indexing the cache according to the address of the first sequential instruction in the compound instruction;
detecting an exception from the execution of one of the instructions in the compound instruction; and
executing, in response to the exception, the instructions stored in the compound instruction sequentially.
0 Assignments
0 Petitions
Accused Products
Abstract
An instruction cache design which converts a sequential instruction stream into a compound format in the instruction cache. The conversion from sequential instructions to compound instructions is performed by an instruction stream interpreter unit (ISU), which is placed between the instruction cache and main memory. The conversion process is performed when an instruction cache miss occurs. Each line in the instruction cache contains a single compound instruction. The format of this compound instruction is transparent to programmers and will vary depending on the number of execution units which are to be supported.
-
Citations
2 Claims
-
1. A method of executing a computer program, compiled for sequential instruction execution, on a parallel instruction processing system, the method comprising the steps of:
-
retrieving, in response to a cache miss, a group of sequential instructions having a first and second conditional branch instruction, and first and second instructions that are dependent upon the first and second conditional branch instructions, respectively; creating a compound instruction for parallel execution including the steps of; inserting, for each of the first and second conditional branch instructions, a branch operation, and a branch address, into the compound instruction, the branch condition indicating the condition to be tested, and the branch address indicating where to proceed if the branch is executed; inserting, for each of the first and second dependent instructions, a target register, a source operand, an operation indicator, and a dependency indicator, the operation indicator indicating the type of operation to be performed, the source operand indicating the register containing the data for the operation, the target register for containing the result of the operation, and the dependency indicator for indicating whether the execution of the instruction depends upon either the first or second conditional branch instruction; and storing the address of the next sequential instruction; storing the compound instruction in the cache; and indexing the cache according to the address of the first sequential instruction in the compound instruction; detecting an exception from the execution of one of the instructions in the compound instruction; and executing, in response to the exception, the instructions stored in the compound instruction sequentially.
-
-
2. An apparatus for executing a computer program, compiled for sequential instruction execution, on a parallel instruction processing system, the apparatus comprising:
-
means for retrieving, in response to a cache miss, a group of sequential instructions having a first and second conditional branch instruction, and first and second instructions that are dependent upon the first and second conditional branch instructions, respectively; means for creating a compound instruction for parallel execution including; means for inserting, for each of the first and second conditional branch instructions, a branch operation, and a branch address, into the compound instruction, the branch condition indicating the condition to be tested, and the branch address indicating where to proceed if the branch is executed; means for inserting, for each of the first and second dependent instructions, a target register, a source operand, an operation indicator, and a dependency indicator, the operation indicator indicating the type of operation to be performed, the source operand indicating the register containing the data for the operation, the target register for containing the result of the operation, and the dependency indicator for indicating whether the execution of the instruction depends upon either the first or second conditional branch instruction; and means for storing the address of the next sequential instruction; means for storing the compound instruction in the cache; means for indexing the cache according to the address of the first sequential instruction in the compound instruction; means for detecting an exception from the execution of one of the instructions in the compound instruction; and means for executing, in response to the exception, the instructions stored in the compound instruction sequentially.
-
Specification