Claims Analysis
Total Claims: 18
Claim 1
Independent Claim
349 words
An apparatus for accessing memory operands in a microprocessor, comprising: a first address generation unit coupled to receive a first plurality of address operands corresponding to a first instruction, wherein said first address generation unit is configured to add said first plurality of address operands to form a first address of a first memory operand corresponding to said first instruction, and wherein said first plurality of address operands includes a register operand; a second address generation unit coupled to receive a second plurality of address operands corresponding to a second instruction, wherein said second address generation unit is configured to add said second plurality of address operands to form a second address of a second memory operand corresponding to said second instruction; a data cache coupled to said first address generation unit and said second address generation unit, wherein said data cache is configured to store a plurality of cache lines of data, and wherein said data cache is configured to receive said first address from said first address generation unit and said second address from said second address generation unit, and wherein said data cache is configured to provide at least one data byte corresponding to said first data address and at least one data byte corresponding to said second data address; a first reservation station coupled to said first address generation unit, wherein said first reservation station is configured to store certain ones of said first plurality of address operands until certain other ones of said first plurality of address operands are provided via execution of another instruction; a second reservation station coupled to said second address generation unit, wherein said second reservation station is configured to store certain ones of said second plurality of address operands until certain other ones of said second plurality of address operands are provided via execution of another instruction; and a speculative register file coupled to said first reservation station and said second reservation station, wherein said speculative register file is configured to provide a value of said register operand prior to execution of a particular instruction which generates said value.
Claim 2
Independent Claim
349 words
An apparatus for accessing memory operands in a microprocessor, comprising: a first address generation unit coupled to receive a first plurality of address operands corresponding to a first instruction, wherein said first address generation unit is configured to add said first plurality of address operands to form a first address of a first memory operand corresponding to said first instruction, and wherein said first plurality of address operands includes a register operand; a second address generation unit coupled to receive a second plurality of address operands corresponding to a second instruction, wherein said second address generation unit is configured to add said second plurality of address operands to form a second address of a second memory operand corresponding to said second instruction; a data cache coupled to said first address generation unit and said second address generation unit, wherein said data cache is configured to store a plurality of cache lines of data, and wherein said data cache is configured to receive said first address from said first address generation unit and said second address from said second address generation unit, and wherein said data cache is configured to provide at least one data byte corresponding to said first data address and at least one data byte corresponding to said second data address; a first reservation station coupled to said first address generation unit, wherein said first reservation station is configured to store certain ones of said first plurality of address operands until certain other ones of said first plurality of address operands are provided via execution of another instruction; a second reservation station coupled to said second address generation unit, wherein said second reservation station is configured to store certain ones of said second plurality of address operands until certain other ones of said second plurality of address operands are provided via execution of another instruction; and a speculative register file coupled to said first reservation station and said second reservation station, wherein said speculative register file is configured to provide a value of said register operand prior to execution of a particular instruction which generates said value.
Claim 3
Dependent Claim
32 words
The apparatus as recited in claim 1 wherein said particular instruction generates said value by modifying a previous value stored in a register corresponding to said register operand by a constant value.
Claim 4
Dependent Claim
47 words
The apparatus as recited in claim 2 further comprising a first decode unit coupled to said first reservation station and a second decode unit coupled to said second reservation station, wherein said first and second decode units are configured to concurrently decode said first and second instructions.
Claim 5
Dependent Claim
28 words
The apparatus as recited in claim 3 wherein said previous value comprises a second value stored in said register prior to execution of said first and second instructions.
Claim 6
Dependent Claim
42 words
The apparatus as recited in claim 4 wherein said second decode unit is configured to provide a second constant value indicative of modification of said previous value by said first instruction in order to produce said value corresponding to said second instruction.
Claim 7
Dependent Claim
39 words
The apparatus as recited in claim 1 further comprising a plurality of segment registers configured to store a plurality of segment base addresses, wherein said plurality of segment registers are coupled to said first and second address generation units.
Claim 8
Dependent Claim
24 words
The apparatus as recited in claim 6 wherein said first instruction includes a selected segment indication identifying one of said plurality of segment registers.
Claim 9
Dependent Claim
35 words
The apparatus as recited in claim 7 wherein one of said plurality of segment base addresses corresponding to said one of said plurality of segment registers comprises one of said first plurality of address operands.
Claim 10
Dependent Claim
52 words
The apparatus as recited in claim 1 wherein said first reservation station is coupled to receive said first address from said first address generation unit and said second address from said second address generation unit, and wherein said first reservation station is configured to store a plurality of said first memory operands.
Claim 11
Dependent Claim
51 words
The apparatus as recited in claim 9 wherein said first reservation station is configured to perform dependency checking between said first address and said plurality of memory operands, and wherein said first reservation station is configured to perform dependency checking between said second address and said plurality of first memory operands.
Claim 12
Dependent Claim
41 words
The apparatus as recited in claim 10 wherein said first reservation station is configured to stall providing data corresponding to said first address if a dependency is detected between said first address and one of said plurality of first memory operands.
Claim 13
Dependent Claim
41 words
The apparatus as recited in claim 10 wherein said first reservation station is configured to stall providing data corresponding to said second address if a dependency is detected between said second address and one of said plurality of first memory operands.
Claim 14
Dependent Claim
39 words
The apparatus as recited in claim 1 wherein said data cache is configured to stall said first address if said data cache determines that data corresponding to said first address is not provided when said first address is received.
Claim 15
Independent Claim
106 words
A method for accessing memory operands in a microprocessor, comprising: generating a plurality of address operands upon decode of an instruction, wherein said plurality of address operands includes a register operand, and wherein said register operand is speculatively generated prior to execution of a second instruction which produces said register operand; adding said plurality of address operands in one of a plurality of address generation units, thereby producing an address corresponding to a memory operand of said instruction; accessing a data cache with said address, whereby said data cache produces data corresponding to said address; and providing said data to a reservation station storing said instruction.
Claim 16
Independent Claim
106 words
A method for accessing memory operands in a microprocessor, comprising: generating a plurality of address operands upon decode of an instruction, wherein said plurality of address operands includes a register operand, and wherein said register operand is speculatively generated prior to execution of a second instruction which produces said register operand; adding said plurality of address operands in one of a plurality of address generation units, thereby producing an address corresponding to a memory operand of said instruction; accessing a data cache with said address, whereby said data cache produces data corresponding to said address; and providing said data to a reservation station storing said instruction.
Claim 17
Dependent Claim
30 words
The method as recited in claim 14 further comprising executing said instruction in a functional unit coupled to said reservation station if other operands of said instruction have been provided.
Claim 18
Dependent Claim
60 words
The method as recited in claim 14 further comprising performing dependency checking upon said address in a second reservation station coupled to said one of said plurality of address generation units, wherein said second reservation station is configured to stored certain ones of said plurality of memory operands until certain other ones of said plurality of memory operands are provided.