System and method for register renaming
First Claim
1. A system for renaming source registers of instructions to be executed in a microprocessor, the system comprising:
- an instruction window comprising a plurality of storage locations each of which stores a single instruction that may be issued during a single processor cycle, wherein only a subset of the plurality of storage locations may be filled with new instructions in a single processor cycle; and
a plurality of register renaming circuits, wherein each of the plurality of register renaming circuits is uniquely associated with a storage location in the subset of the plurality of storage locations and configured to determine if a new instruction stored in the corresponding storage location is dependent on any older instructions in the instruction window and to output a renamed source register address for the new instruction if such a dependency exists.
3 Assignments
0 Petitions
Accused Products
Abstract
A system and method for performing register renaming of source registers in a processor having a variable advance instruction window for storing a group of instructions to be executed by the processor, wherein a new instruction is added to the variable advance instruction window when a location becomes available. A tag is assigned to each instruction in the variable advance instruction window. The tag of each instruction to leave the window is assigned to the next new instruction to be added to it. The results of instructions executed by the processor are stored in a temp buffer according to their corresponding tags to avoid output and anti-dependencies. The temp buffer therefore permits the processor to execute instructions out of order and in parallel. Data dependency checks for input dependencies are performed only for each new instruction added to the variable advance instruction window and register renaming is performed to avoid input dependencies.
322 Citations
24 Claims
-
1. A system for renaming source registers of instructions to be executed in a microprocessor, the system comprising:
-
an instruction window comprising a plurality of storage locations each of which stores a single instruction that may be issued during a single processor cycle, wherein only a subset of the plurality of storage locations may be filled with new instructions in a single processor cycle; and a plurality of register renaming circuits, wherein each of the plurality of register renaming circuits is uniquely associated with a storage location in the subset of the plurality of storage locations and configured to determine if a new instruction stored in the corresponding storage location is dependent on any older instructions in the instruction window and to output a renamed source register address for the new instruction if such a dependency exists. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A computer system, comprising:
-
a memory unit; a bus coupled to the memory unit for retrieving program instructions therefrom; and a processor coupled to the bus, wherein the process comprises a register renaming system that includes; an instruction window comprising a plurality of storage locations each of which stores a single program instruction that may be issued during a single processor cycle, wherein only a subset of the plurality of storage locations may be filled with new program instructions retrieved from the memory unit in a single processor cycle; and a plurality of register renaming circuits, wherein each of the plurality of register renaming circuits is uniquely associated with a storage location in the subset of the plurality of storage locations and configured to determine if a new program instruction stored in the corresponding storage location is dependent on any older program instructions in the instruction window and to output a renamed source register address for the new program instruction if such a dependency exists. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24)
-
Specification