Claims Analysis
Total Claims: 9
Claim 1
Independent Claim
215 words
An apparatus for predicting outcomes of blocks of conditional branch instructions having a common operand, comprising: a look-up table including a plurality of entries, each of the entries having a first field for storing a starting address for a block of the conditional branch instructions, a second field for storing a previous value of the common operand for the block and a third field for storing a target address produced when the previous value was used to execute the block; processor means, coupled to the look-up table, the processor means including: (a) means for detecting that one of the blocks is to be processed and for determining the starting address of the one of the blocks; (b) means for determining a current value of the common operand; (c) means for determining whether the look-up table contains a corresponding entry wherein the starting address of the one of the blocks matches data in the first field and the current value of the common operand matches the previous value of the common operand; (d) means, responsive to a determination that there is a corresponding entry, for prefetching an instruction at the target address stored in the third field of the corresponding entry prior to fetching of any of said conditional branches in the one of the blocks.
Claim 2
Independent Claim
215 words
An apparatus for predicting outcomes of blocks of conditional branch instructions having a common operand, comprising: a look-up table including a plurality of entries, each of the entries having a first field for storing a starting address for a block of the conditional branch instructions, a second field for storing a previous value of the common operand for the block and a third field for storing a target address produced when the previous value was used to execute the block; processor means, coupled to the look-up table, the processor means including: (a) means for detecting that one of the blocks is to be processed and for determining the starting address of the one of the blocks; (b) means for determining a current value of the common operand; (c) means for determining whether the look-up table contains a corresponding entry wherein the starting address of the one of the blocks matches data in the first field and the current value of the common operand matches the previous value of the common operand; (d) means, responsive to a determination that there is a corresponding entry, for prefetching an instruction at the target address stored in the third field of the corresponding entry prior to fetching of any of said conditional branches in the one of the blocks.
Claim 3
Dependent Claim
16 words
The apparatus of claim 1 further comprising a branch history table coupled to the processing means.
Claim 4
Dependent Claim
37 words
The apparatus of claim 1, further comprising: means responsive to a determination that said look-up table does not contain a corresponding entry for executing said one of the blocks using said current value of the common operand.
Claim 5
Dependent Claim
48 words
The apparatus of claim 3, further comprising: means responsive to execution of said one of the blocks for creating a new entry in said table, said new entry recording the target address which was produced by said execution of said one of the blocks using said current value.
Claim 6
Dependent Claim
42 words
The apparatus of claim 2, further comprising: means for detecting the end of said block; and means responsive to said means for detecting for enabling said branch history table to redirect instruction fetching in place of said entries in said look-up table.
Claim 7
Dependent Claim
25 words
The apparatus of claim 1 further comprising means, responsive to said means for detecting, for inhibiting the processing means from using the branch history table.
Claim 8
Independent Claim
229 words
An apparatus for predicting outcomes of blocks of conditional branch instructions having a common operand, comprising: a look-up table including a plurality of entries, each of the entries having a first field for storing a starting address for a block of the conditional branch instructions, a second field for storing a previous value of the common operand for the block and a third field for storing a target address produced when the previous value was used to execute the block; a processor, coupled to the look-up table, the processor including: (a) a decoder, the decoder including instruction detection means for detecting an instruction indicative that one of the blocks is to be processed; (b) instruction execution means, coupled to the decoder, for determining the starting address of the one of the blocks and a current value of the common operand and for determining whether the look-up table contains a corresponding entry wherein the starting address of the one of the blocks matches data in the first field and the current value of the common operand matches the previous value of the common operand; (c) instruction fetch means, responsive to a determination that there is a corresponding entry, for prefetching an instruction at the target address stored in the third field of the corresponding entry prior to fetching of any of said conditional branches in the one of the blocks.
Claim 9
Independent Claim
229 words
An apparatus for predicting outcomes of blocks of conditional branch instructions having a common operand, comprising: a look-up table including a plurality of entries, each of the entries having a first field for storing a starting address for a block of the conditional branch instructions, a second field for storing a previous value of the common operand for the block and a third field for storing a target address produced when the previous value was used to execute the block; a processor, coupled to the look-up table, the processor including: (a) a decoder, the decoder including instruction detection means for detecting an instruction indicative that one of the blocks is to be processed; (b) instruction execution means, coupled to the decoder, for determining the starting address of the one of the blocks and a current value of the common operand and for determining whether the look-up table contains a corresponding entry wherein the starting address of the one of the blocks matches data in the first field and the current value of the common operand matches the previous value of the common operand; (c) instruction fetch means, responsive to a determination that there is a corresponding entry, for prefetching an instruction at the target address stored in the third field of the corresponding entry prior to fetching of any of said conditional branches in the one of the blocks.