Claims Analysis
Total Claims: 8
Claim 1
Independent Claim
303 words
A method for loading a data value from a memory into a microprocessor for a future LOAD instruction, said microprocessor having a program counter containing an address of a current instruction and having a memory array comprising a plurality of memory lines, each of said memory lines comprising a last effective address field storing a last effective address and a next-to-last effective address field storing a next-to-last effective address, said method comprising the steps of: a) updating said memory array during execution of a current LOAD instruction by said microprocessor, said updating step comprising the substeps of: i) indexing into said memory array to select a first one of said memory lines using a set of low order bits from a memory address of a first instruction located before said current LOAD instruction, ii) moving the last effective address in the last effective address field of said first memory line to the next-to-last effective address field of said first memory line, and iii) storing a current effective address of the current LOAD instruction in the last effective address field of said first memory line; b) loading a data value from said memory for a future LOAD instruction, said loading step comprising the substeps of: i) indexing into said memory array to select a second one of said memory lines using a set of low order bits from said program counter, ii) predicting an effective address by adding the last effective address of said second memory line to a difference between the last effective address of said second memory line and the next-to-last effective address of said second memory line, and iii) loading said data value from said memory using said predicted effective address; and c) using said data value if the predicted effective address matches an effective address of the future LOAD instruction.
Claim 2
Independent Claim
303 words
A method for loading a data value from a memory into a microprocessor for a future LOAD instruction, said microprocessor having a program counter containing an address of a current instruction and having a memory array comprising a plurality of memory lines, each of said memory lines comprising a last effective address field storing a last effective address and a next-to-last effective address field storing a next-to-last effective address, said method comprising the steps of: a) updating said memory array during execution of a current LOAD instruction by said microprocessor, said updating step comprising the substeps of: i) indexing into said memory array to select a first one of said memory lines using a set of low order bits from a memory address of a first instruction located before said current LOAD instruction, ii) moving the last effective address in the last effective address field of said first memory line to the next-to-last effective address field of said first memory line, and iii) storing a current effective address of the current LOAD instruction in the last effective address field of said first memory line; b) loading a data value from said memory for a future LOAD instruction, said loading step comprising the substeps of: i) indexing into said memory array to select a second one of said memory lines using a set of low order bits from said program counter, ii) predicting an effective address by adding the last effective address of said second memory line to a difference between the last effective address of said second memory line and the next-to-last effective address of said second memory line, and iii) loading said data value from said memory using said predicted effective address; and c) using said data value if the predicted effective address matches an effective address of the future LOAD instruction.
Claim 3
Dependent Claim
168 words
The method as claimed in claim 1 wherein said memory array further comprises a tag field and a status bit field in each memory line of said memory array, said tag field storing a tag comprising a set of high order address bits, said status bit field storing a status bit, and said updating step (a) further comprises the substeps of: updating the status bit of said first memory line during execution of the current LOAD instruction by said microprocessor by setting the status bit of said first memory line if a set of high order bits of said memory address of said first instruction match the tag of said first memory line; and moving the set of high order bits of said memory address of said first instruction to the tag field of said first memory line during execution of the current LOAD instruction; and further wherein said loading step (b) loads said data value only if the status bit of said second memory line is set.
Claim 4
Dependent Claim
20 words
The method as claimed in claim 2 wherein said first instruction is located four instructions before said current LOAD instruction.
Claim 5
Independent Claim
314 words
An apparatus in a microprocessor for loading a data value from a memory into the microprocessor for a future LOAD instruction, said microprocessor having a program counter containing an address of a current instruction, said apparatus comprising: a) a memory array comprising a plurality of memory lines, each of said memory lines comprising a last effective address field storing a last effective address and a next-to-last effective address field storing a next-to-last effective address; b) means for updating said memory array during execution of a current LOAD instruction by said microprocessor, said updating means comprising: i) means for indexing into said memory array to select a first one of said memory lines using a set of low order bits from a memory address of a first instruction located before said current LOAD instruction, ii) means for moving the last effective address in the last effective address field of said first memory line to the next-to-last effective address field of said first memory line, and iii) means for storing a current effective address of the current LOAD instruction in the last effective address field of said first memory line; c) means for loading a data value from said memory for a future LOAD instruction, said loading means comprising: i) means for indexing into said memory array to select a second one of said memory lines using a set of low order bits from said program counter, ii) means for predicting an effective address by adding the last effective address of said second memory line to a difference between the last effective address of said second memory line and the next-to-last effective address of said second memory line, and iii) means for loading said data value from said memory using said predicted effective address; and d) means for using said data value if the predicted effective address matches an effective address of the future LOAD instruction.
Claim 6
Independent Claim
314 words
An apparatus in a microprocessor for loading a data value from a memory into the microprocessor for a future LOAD instruction, said microprocessor having a program counter containing an address of a current instruction, said apparatus comprising: a) a memory array comprising a plurality of memory lines, each of said memory lines comprising a last effective address field storing a last effective address and a next-to-last effective address field storing a next-to-last effective address; b) means for updating said memory array during execution of a current LOAD instruction by said microprocessor, said updating means comprising: i) means for indexing into said memory array to select a first one of said memory lines using a set of low order bits from a memory address of a first instruction located before said current LOAD instruction, ii) means for moving the last effective address in the last effective address field of said first memory line to the next-to-last effective address field of said first memory line, and iii) means for storing a current effective address of the current LOAD instruction in the last effective address field of said first memory line; c) means for loading a data value from said memory for a future LOAD instruction, said loading means comprising: i) means for indexing into said memory array to select a second one of said memory lines using a set of low order bits from said program counter, ii) means for predicting an effective address by adding the last effective address of said second memory line to a difference between the last effective address of said second memory line and the next-to-last effective address of said second memory line, and iii) means for loading said data value from said memory using said predicted effective address; and d) means for using said data value if the predicted effective address matches an effective address of the future LOAD instruction.
Claim 7
Dependent Claim
167 words
The apparatus as claimed in claim 4 further comprising: a tag field in each memory line of said memory array, said tag field storing a tag comprising a set of high order address bits; means for updating the tag field of said first memory line during execution of the current LOAD instruction by said microprocessor by storing a set of high order bits of said memory address of said first instruction; a status bit in each memory line of said memory array, said status bit field storing a status bit; and means for updating the status bit of said first memory line during execution of the current LOAD instruction by said microprocessor by setting the status bit of said first memory line if a set of high order bits of said memory address of said first instruction match the tag of said first memory line; wherein said data value loading means loads said data value only if the status bit of said second memory line is set.
Claim 8
Dependent Claim
20 words
The apparatus as claimed in claim 5 wherein said first instruction is located four instructions before said current LOAD instruction.