Claims Analysis
Total Claims: 9
Claim 1
Independent Claim
146 words
A method improving the prediction of branch instructions with program loops in a pipelined computer microprocessor, said microprocessor containing a branch prediction mechanism that predicts which instructions should be fetched after a branch instruction, and said mechanism utilizing a branch target buffer, wherein sad method comprising the steps of: determining a final loop count for a loop based branch instruction, said final loop count comprising a number of loop iterations; storing said final loop count in a branch target buffer; clearing a loop count in said branch target buffer; modifying said loop count when said loop based branch instruction is encountered; comparing said loop count to said final loop count; predicting said loop based branch instruction taken when said loop count does not equal said final loop count; and predicting said loop based branch instruction not taken when said loop count equals said final loop count.
Claim 2
Independent Claim
146 words
A method improving the prediction of branch instructions with program loops in a pipelined computer microprocessor, said microprocessor containing a branch prediction mechanism that predicts which instructions should be fetched after a branch instruction, and said mechanism utilizing a branch target buffer, wherein sad method comprising the steps of: determining a final loop count for a loop based branch instruction, said final loop count comprising a number of loop iterations; storing said final loop count in a branch target buffer; clearing a loop count in said branch target buffer; modifying said loop count when said loop based branch instruction is encountered; comparing said loop count to said final loop count; predicting said loop based branch instruction taken when said loop count does not equal said final loop count; and predicting said loop based branch instruction not taken when said loop count equals said final loop count.
Claim 3
Dependent Claim
25 words
The method as claimed in claim 1 wherein said step of determining a final loop count comprises dynamic run-time determination of said final loop count.
Claim 4
Dependent Claim
28 words
The method as claimed in claim 1 wherein said step of determining a final loop count comprises run-time determination of a memory location containing a final loop count.
Claim 5
Dependent Claim
53 words
The method as claimed in claim 1 wherein said step of determining a final loop count comprises using a hint bit that identifies a branch instruction as implementing a program loop, wherein said hint bit informs the branch target buffer that said branch instruction is best predicted by a counter based prediction scheme.
Claim 6
Dependent Claim
30 words
The method as claimed in claim 1 wherein said step of determining a final loop count comprises identifying a branch instruction as implementing a program loop with a hint instruction.
Claim 7
Dependent Claim
81 words
A branch target buffer for predicting branch instructions, said branch target buffer comprising: a tag address field, said tag address field identifying location of a branch instruction in memory; a target address field, said target address field specifying address that program will branch to if said branch instruction is predicted taken; a final loop count field, said final loop count field containing a number of loop iterations; and a counter field, said counter field storing a current number of loop iterations.
Claim 8
Dependent Claim
81 words
A branch target buffer for predicting branch instructions, said branch target buffer comprising: a tag address field, said tag address field identifying location of a branch instruction in memory; a target address field, said target address field specifying address that program will branch to if said branch instruction is predicted taken; a final loop count field, said final loop count field containing a number of loop iterations; and a counter field, said counter field storing a current number of loop iterations.
Claim 9
Dependent Claim
43 words
The branch target buffer as claimed in claim 6 further comprising: a branch history field, said branch history field storing a history of branch results; and a branch type field, said branch type field specifying if said branch instruction implements a program loop.