Claims Analysis
Total Claims: 20
Claim 1
Independent Claim
247 words
Apparatus for mapping logical registers, comprising: a map comprising: means for storing a current set of register numbers which are available for assignment in a current cycle and for storing a previous set of register numbers which were assigned in a previous cycle; means for storing a current set of logical register destination operands and for storing a previous set of logical register destination operands; a plurality of register files corresponding to a number of instructions to be mapped in a cycle, said register files each having a plurality of locations, each register file having a plurality of write ports corresponding to said number of instructions to be mapped in a cycle, with said write ports of each of said register files having a write address port and a write data port, and with a first write port of a first one of said register files having the corresponding write address port fed by a first one of the logical destination register operands of a previous set of instructions and the corresponding write data port fed by a first one of the register numbers of the previous set of instructions, and a last write port of a first one of said register files having the corresponding write address port fed by a last one of the logical destination register operands of the previous set of instructions and the corresponding write data port fed by a last one of the register numbers of the previous set of instructions.
Claim 2
Dependent Claim
247 words
Apparatus for mapping logical registers, comprising: a map comprising: means for storing a current set of register numbers which are available for assignment in a current cycle and for storing a previous set of register numbers which were assigned in a previous cycle; means for storing a current set of logical register destination operands and for storing a previous set of logical register destination operands; a plurality of register files corresponding to a number of instructions to be mapped in a cycle, said register files each having a plurality of locations, each register file having a plurality of write ports corresponding to said number of instructions to be mapped in a cycle, with said write ports of each of said register files having a write address port and a write data port, and with a first write port of a first one of said register files having the corresponding write address port fed by a first one of the logical destination register operands of a previous set of instructions and the corresponding write data port fed by a first one of the register numbers of the previous set of instructions, and a last write port of a first one of said register files having the corresponding write address port fed by a last one of the logical destination register operands of the previous set of instructions and the corresponding write data port fed by a last one of the register numbers of the previous set of instructions.
Claim 3
Dependent Claim
121 words
The apparatus as recited in claim 1 wherein a first write port of a second one of said register files has the corresponding write address port fed by a second one of the logical destination register operands of the previous set of instructions and the corresponding write data port fed by a second one of the register numbers of the previous set of instructions, and a last write port of the second one of said register files having the corresponding write address port fed by a first one of the logical destination register operands of the current set of instructions and the corresponding write data port fed by a first one of the register numbers of the current set of instructions.
Claim 4
Dependent Claim
38 words
The apparatus of claim 1 wherein said means for storing said current and previous set of register numbers, further comprises: means for maintaining a list of destination operands which are free to be used in a current cycle.
Claim 5
Dependent Claim
64 words
The apparatus as recited in claim 3 wherein each one of said plurality of register files further includes: three read ports each port having an address port fed by one of a pair of source logical operand register and a destination logical operand register to provide in response thereto a new register number corresponding to a physical location containing the corresponding logical register operands.
Claim 6
Dependent Claim
28 words
The apparatus as recited in claim 4 further comprising: means for maintaining a list of each logical register operand which was reassigned in a previous number of cycles.
Claim 7
Dependent Claim
25 words
The apparatus as recited in claim 5 further comprising: means for delaying reuse of assigned register numbers until a selected number of cycles has elapsed.
Claim 8
Dependent Claim
25 words
The apparatus as recited in claim 6 further comprising: means for compressing the delayed register numbers to provide a complete set of available register numbers.
Claim 9
Dependent Claim
33 words
The apparatus as recited in claim 7 further comprising: means, responsive to said complete set of available registers, for freeing up the use of registers assigned by said means for maintaining a list.
Claim 10
Dependent Claim
298 words
The apparatus as recited in claim 1 further comprising: a backup map comprising: means for storing a first previous set of register numbers which were assigned in a corresponding first cycle of a previous set of cycles of the register mapper and for storing a second previous set of register numbers which were assigned in a second cycle of the previous set of cycles of the register mapper; means for storing a first previous set of logical register destination operands and for storing a second previous set of logical register destination operands associated with said first and second previous cycles of the previous set of cycles; a second plurality of register files corresponding to the number of instructions to be backed up during the previous set of cycles, said register files each having a plurality of locations, each register file having a like plurality of write ports, with said write ports of each of said register files having a write address port and a write data port, and with a first write port of a first one of said register files having the corresponding write address port fed by a first one of the logical destination register operands of the second cycle of the previous set of cycles and the corresponding write data port fed by a first one of the register numbers of the second cycle of the previous set of cycles, and a last write port of a first one of said register files having the corresponding write address port fed by a last one of the logical destination register operands of the second cycle of the previous set of cycles and the corresponding write data port fed by a last one of the register numbers of the second cycle of the previous set of cycles.
Claim 11
Dependent Claim
135 words
The apparatus as recited in claim 9 wherein a first write port of a second one of said files has the corresponding write address port fed by a second one of the logical destination register operands of the second cycle of the previous set of cycles and the corresponding write data port fed by a second one of the register numbers of the second cycles of the previous set of cycles, and a last write port of the second one of said files having the corresponding write address port fed by a first one of the logical destination register operands of the first cycles of the previous set of cycles and the corresponding write data port fed by a first one of the register numbers of the first cycle of the previous set of cycles.
Claim 12
Dependent Claim
38 words
The apparatus of claim 10 wherein said means for storing said current and previous sets of register numbers, further comprises: means for maintaining a list of destination operands which are free to be used in a current cycle.
Claim 13
Dependent Claim
75 words
The apparatus as recited in claim 11 wherein each one of said plurality of register files further includes: three read ports each port having an address port fed by one of a pair of source logical operands and a destination logical operand of a selected one of the set of instructions and to provide in response thereto a new register number corresponding to a physical location of the contents of the corresponding logical register operands.
Claim 14
Dependent Claim
28 words
The apparatus as recited in claim 12 further comprising: means for maintaining a list of each logical register operand which was reassigned in a previous number of cycles.
Claim 15
Dependent Claim
25 words
The apparatus as recited in claim 13 further comprising: means for delaying reuse of assigned register numbers until a selected number of cycles has elapsed.
Claim 16
Dependent Claim
24 words
The apparatus as recited in claim 14 further comprising: means for compressing the delayed register numbers to provide a complete set of available registers.
Claim 17
Dependent Claim
31 words
The apparatus as recited in claim 15 further comprising: means, responsive to said complete set of available registers, for freeing up the use of registers assigned by said list maintaining means.
Claim 18
Dependent Claim
375 words
Apparatus for mapping n logical registers used in the execution of a plurality of instructions, comprising: a map comprising: a plurality of register files corresponding to the number of instructions to be mapped in a cycle, said register files each having a plurality of locations, each register file having a like plurality of write ports and three read ports for providing an output from said register file, with said write ports of each of said register files having a write address port and a write data port; means for maintaining a list of locations in each of said register files which are free to be used in a current cycle, said means further comprising: means for storing a current set of register numbers which are available for assignment in the current cycle; means for storing a previous set of register numbers which were assigned in the previous cycle; means for storing a current set of logical register destination operands and for storing a previous set of logical register destination operands; means for providing the previous and current sets of register numbers as data to said register files with a first one of said register files having a first one of said register numbers as data to a first data port of said register file, and each succeeding one of said register files having each succeeding one of said register numbers input as data to a first data port of each of said succeeding files, and for providing the previous and current sets of register operands as addresses to said register files with a first one of said files having a first one of said register operands as an address to a first address port of said first file, and each succeeding one of said files having each succeeding one of said register operands as an address to a first address port of each of said succeeding files; means for providing addresses to said read ports of each of said files to provide at the output of said files a register address corresponding to a physical home of each of said previous logical register destination operands; and means for maintaining a list of each logical register operand which was reassigned in a previous number of cycles.
Claim 19
Dependent Claim
375 words
Apparatus for mapping n logical registers used in the execution of a plurality of instructions, comprising: a map comprising: a plurality of register files corresponding to the number of instructions to be mapped in a cycle, said register files each having a plurality of locations, each register file having a like plurality of write ports and three read ports for providing an output from said register file, with said write ports of each of said register files having a write address port and a write data port; means for maintaining a list of locations in each of said register files which are free to be used in a current cycle, said means further comprising: means for storing a current set of register numbers which are available for assignment in the current cycle; means for storing a previous set of register numbers which were assigned in the previous cycle; means for storing a current set of logical register destination operands and for storing a previous set of logical register destination operands; means for providing the previous and current sets of register numbers as data to said register files with a first one of said register files having a first one of said register numbers as data to a first data port of said register file, and each succeeding one of said register files having each succeeding one of said register numbers input as data to a first data port of each of said succeeding files, and for providing the previous and current sets of register operands as addresses to said register files with a first one of said files having a first one of said register operands as an address to a first address port of said first file, and each succeeding one of said files having each succeeding one of said register operands as an address to a first address port of each of said succeeding files; means for providing addresses to said read ports of each of said files to provide at the output of said files a register address corresponding to a physical home of each of said previous logical register destination operands; and means for maintaining a list of each logical register operand which was reassigned in a previous number of cycles.
Claim 20
Dependent Claim
324 words
The apparatus as recited in claim 17 further comprising: a backup map, comprising: a plurality of register files corresponding to the number of instructions mapped in a previous first set of cycles, said files each having a plurality of locations, each file having a like plurality of write ports and three read ports with said write ports of each of said register files having a write address port and a write data port; means for storing a first one of a previous set of register numbers which were assigned in the previous first set of cycles; means for storing a second one of a previous set of register numbers which were assigned in the previous first set of cycles; means for storing a first one of a previous set of logical register destination operands and for storing a second one of a previous set of logical destination register operands; means for providing output from a first one of said register files having a first one of said register numbers of the second one of the first previous set of cycles as data to a first data port of said file, and each succeeding one of said files having each succeeding one of said register numbers of said second one of said first previous set of cycles as data to a first data port of each of said succeeding files, and for providing a first one of said register operands of the first previous set of cycles as an address to a first address port of said first file, and each succeeding one of said register operands of said first previous set of cycles as an address to a first address port of each of said succeeding files; and means for providing addresses to said read ports of each of said files to provide at the output of said files a register address corresponding to a physical home of each of said logical register operands.