Claims Analysis
Total Claims: 25
Claim 1
Independent Claim
245 words
An apparatus for branch prediction, comprising: processor means for executing a plurality of instructions concurrently; a branch prediction table which registers entries, each entry including a branching address indicating the plurality of instructions containing a predicted branch instruction, a branch target address of said predicted branch instruction, and an instruction location indicating a location of said predicted branch instruction in said plurality of instructions indicated by said branching address; instruction fetch means for fetching the plurality of instructions to be executed concurrently by said processor means by fetching the plurality of instructions indicated by the branch target address of the predicted branch instruction for a presently fetched plurality of instructions at a next processing timing, where said predicted branch instruction for said presently fetched plurality of instructions is registered in one entry of said branch prediction table having the branching address which coincides with an address of said presently fetched plurality of instructions; prediction judging means for judging said predicted branch instruction for said presently fetched plurality of instructions as correct when said predicted branch instruction is actually encountered during actual execution of said presently fetched plurality of instructions; and predicted instruction invalidation means for invalidating the plurality of instructions indicated by said branch target address of said predicted branch instruction for said presently fetched plurality of instructions which are fetched by said instruction fetch means at the next processing timing, when said prediction judging means does not judge said predicted branch instruction as correct.
Claim 2
Independent Claim
245 words
An apparatus for branch prediction, comprising: processor means for executing a plurality of instructions concurrently; a branch prediction table which registers entries, each entry including a branching address indicating the plurality of instructions containing a predicted branch instruction, a branch target address of said predicted branch instruction, and an instruction location indicating a location of said predicted branch instruction in said plurality of instructions indicated by said branching address; instruction fetch means for fetching the plurality of instructions to be executed concurrently by said processor means by fetching the plurality of instructions indicated by the branch target address of the predicted branch instruction for a presently fetched plurality of instructions at a next processing timing, where said predicted branch instruction for said presently fetched plurality of instructions is registered in one entry of said branch prediction table having the branching address which coincides with an address of said presently fetched plurality of instructions; prediction judging means for judging said predicted branch instruction for said presently fetched plurality of instructions as correct when said predicted branch instruction is actually encountered during actual execution of said presently fetched plurality of instructions; and predicted instruction invalidation means for invalidating the plurality of instructions indicated by said branch target address of said predicted branch instruction for said presently fetched plurality of instructions which are fetched by said instruction fetch means at the next processing timing, when said prediction judging means does not judge said predicted branch instruction as correct.
Claim 3
Dependent Claim
64 words
The apparatus of claim 1, wherein said prediction judging means includes a comparator for comparing the instruction location registered in the entry of said branch prediction table having the branching address which coincides with the address of said presently fetched plurality of instructions with an actual instruction location of an actual branch instruction encountered during actual execution of said presently fetched plurality of instructions.
Claim 4
Dependent Claim
117 words
The apparatus of claim 2, further comprising table registration means for rewriting the entries in said branch prediction table, wherein when said actual instruction location of said actual branch instruction encountered during said actual execution of said presently fetched plurality of instructions is different from the instruction location of said predicted branch instruction for said presently fetched plurality of instructions and said actual branch instruction is not actually taken, said table registration means does not rewrite said entries in said branch prediction table until execution of all of said presently fetched plurality of instructions is finished, unless another branch instruction is encountered during actual execution of said presently fetched plurality of instructions after said actual branch instructions.
Claim 5
Dependent Claim
64 words
The apparatus of claim 2, further comprising table registration means for rewriting entries in said branch prediction table and registering as a new entry the actual branch instruction for said presently fetched plurality of instructions in said branch prediction table when an actual branch prediction encountered during actual execution of said presently fetched plurality of instructions is not registered in said branch prediction table.
Claim 6
Dependent Claim
51 words
The apparatus of claim 1, further comprising present instruction invalidation means for invalidating instructions in said presently fetched plurality of instructions which are located after said instruction location of said predicted branch instruction for said presently fetched plurality of instructions before said actual execution of said presently fetched plurality of instructions.
Claim 7
Dependent Claim
66 words
The apparatus of claim 5, wherein said instruction fetch means fetches instructions invalidated by said present instruction invalidation means at the next processing timing in a case when all branch instructions encountered during said actual execution of said presently fetched plurality of instructions are not actually taken and in a case when no branch instruction is encountered during execution of said presently fetched plurality of instructions.
Claim 8
Dependent Claim
104 words
The apparatus of claim 5, wherein when said plurality of instructions fetched by said instruction fetch means includes a delayed instruction which cannot be invalidated by said present instruction invalidation means even when it is located after the instruction location of said predicted branch instruction for said presently fetched plurality of instructions and said delayed instruction is actually a branch instruction, said instruction fetch means fetches said delayed instruction which is actually said branch instruction and all the instructions of said presently fetched plurality of instructions which are located after said delayed instruction which is actually said branch instruction at the next processing timing.
Claim 9
Dependent Claim
124 words
The apparatus of claim 1, wherein said instruction fetch means fetches said plurality of instructions sequentially according to addresses of instructions, in a case in which the address of said presently fetched group of instructions originates from another address, and in which said predicted branch instruction for said presently fetched group of instructions which is registered in said one entry in said branch prediction table has said branching address which coincides with said address of said presently fetched group of instructions, and the registered instruction location corresponding to said branching address which coincides with said address of said presently fetched plurality of instructions is before an instruction position of said another address from which said address of said presently fetched plurality of instructions originates.
Claim 10
Dependent Claim
15 words
The apparatus of claim 1, wherein said branch prediction table means comprises an associative memory.
Claim 11
Independent Claim
271 words
An apparatus for branch prediction, comprising: processor means for executing instructions; a branch prediction table, formed by an associative memory, for registering entries, each entry including a branching address indicating instructions to be executed concurrently containing a predicted branch instruction, and an entry address indicating a location of said each entry in said associative memory of said branch prediction table; instruction fetch means for fetching said instructions to be executed concurrently by said processor means by fetching said instructions indicated by said branch target address of said predicted branch instruction for the presently fetched instructions at a next processing timing, wherein said predicted branch instruction for said presently fetched instructions is registered in one entry in said branch prediction table having the branching address which coincides with an address of said presently fetched instructions; prediction judging means for judging the predicted branch instruction for said presently fetched instructions as correct when said predicted branch instruction is actually encountered during actual execution of said presently fetched instruction; predicted instruction invalidation means for invalidating instructions indicated by said branch target address of said predicted branch instruction for said presently fetched instructions which are fetched by said instruction fetch means at the next processing timing, when said prediction judging means does not judge said predicted branch instruction as correct; and table registration means for rewriting said entry registering said predicted branch instruction for said presently fetched instructions in said branch prediction table when said prediction judging means does not judge said predicted branch instruction as correct, by using the entry address of said entry registering said predicted branch instruction for said presently fetched instructions.
Claim 12
Independent Claim
271 words
An apparatus for branch prediction, comprising: processor means for executing instructions; a branch prediction table, formed by an associative memory, for registering entries, each entry including a branching address indicating instructions to be executed concurrently containing a predicted branch instruction, and an entry address indicating a location of said each entry in said associative memory of said branch prediction table; instruction fetch means for fetching said instructions to be executed concurrently by said processor means by fetching said instructions indicated by said branch target address of said predicted branch instruction for the presently fetched instructions at a next processing timing, wherein said predicted branch instruction for said presently fetched instructions is registered in one entry in said branch prediction table having the branching address which coincides with an address of said presently fetched instructions; prediction judging means for judging the predicted branch instruction for said presently fetched instructions as correct when said predicted branch instruction is actually encountered during actual execution of said presently fetched instruction; predicted instruction invalidation means for invalidating instructions indicated by said branch target address of said predicted branch instruction for said presently fetched instructions which are fetched by said instruction fetch means at the next processing timing, when said prediction judging means does not judge said predicted branch instruction as correct; and table registration means for rewriting said entry registering said predicted branch instruction for said presently fetched instructions in said branch prediction table when said prediction judging means does not judge said predicted branch instruction as correct, by using the entry address of said entry registering said predicted branch instruction for said presently fetched instructions.
Claim 13
Dependent Claim
78 words
The apparatus of claim 10, wherein said table registration means also registers as a new entry an actual branch instruction for said presently fetched instructions in said branch prediction table when an actual branch prediction encountered during said actual execution of said presently fetched instructions is not registered in said branch prediction table, where said table registration means registers said new entry by using a new entry address which is presently not used in said branch prediction table.
Claim 14
Dependent Claim
68 words
The apparatus of claim 10, further comprising means for supplying the entry address of said entry registering said predicted branch instruction for said presently fetched instructions by storing said entry address of said entry registering said predicted branch instruction for said presently fetched instructions until a rewriting of said entry registering said predicted branch instruction for said presently fetched instructions is carried out by said table registration means.
Claim 15
Dependent Claim
80 words
The apparatus of claim 10, wherein said table registration means does not rewrite said entry registering said predicted branch instruction for said presently fetched instructions in said branch prediction table even when said prediction judging means does not judge said predicted branch instruction as correct as long as an actual branch instruction encountered during actual execution of said presently fetched instructions is fetched at an identical processing timing at which a registration by said table registration means is carried out.
Claim 16
Dependent Claim
31 words
The apparatus of claim 10, wherein each entry in said branch prediction table means further includes a valid bit indicating a validity of each entry in said branch prediction table means.
Claim 17
Dependent Claim
41 words
The apparatus of claim 14, wherein said valid bit of each entry in said branch prediction table indicates an entry as invalid when the predicted branch instruction of said entry is not actually taken during execution of said predicted branch instruction.
Claim 18
Dependent Claim
63 words
The apparatus of claim 14, further comprising cache memory means for storing said instructions to be fetched by said instruction fetch means, wherein said valid bit of an entry in said branch prediction table means indicates the entry as invalid when an instruction having an address which coincides with the branching address of said entry is not present in said cache memory means.
Claim 19
Dependent Claim
75 words
The apparatus of claim 14, wherein said table registration means also registers as a new entry an actual branch instruction for said presently fetched instructions in said branch prediction table when said actual branch prediction encountered during actual execution of said presently fetched instructions is not registered in said branch prediction table means, where said table registration means registers said new entry by overwriting an entry with said valid bit indicating said entry is valid.
Claim 20
Dependent Claim
59 words
The apparatus of claim 10, wherein said processor means executes said plurality of instructions concurrently, said instruction fetch means fetches said plurality of instructions at each processing time, and each entry in said branch prediction table further includes an instruction location indicating a location of said predicted branch instruction in said plurality of instructions indicated by said branching address.
Claim 21
Dependent Claim
113 words
The apparatus of claim 18, wherein said instruction fetch means fetches instructions sequentially according to addresses of instructions, except for a case in which said predicted branch instruction for said presently fetched instructions which is registered in an entry in said branch prediction table having branching address which coincides with an address of said presently fetched instructions and the instructions indicated by said branch target address of said predicted branch instruction for said presently fetched instructions does not include another predicted branch instruction registered in another entry in said branch prediction table having another branching address which is before said branch target address of said predicted branch instruction for said presently fetched instructions.
Claim 22
Independent Claim
234 words
A method of branch prediction for a processor capable of executing a plurality of instructions concurrently, comprising the steps of: providing a branch prediction table for registering entries, each entry including a branching address indicating said plurality of instructions containing a predicted branch instruction, a branch target address of said predicated branch instruction, and an instruction location indicating a location of said predicted branch instruction in said plurality of instructions indicated by said branching address; fetching said plurality of instructions to be executed concurrently by said processor which are indicated by said branch target address of said predicted branch instruction for the presently fetched plurality of instructions at a next processing timing, where said predicted branch instruction for said presently fetched plurality of instructions is registered in one entry in branch prediction table having said branching address which coincides with an address of said presently fetched plurality of instructions; actually executing said plurality of instructions fetched by said processor concurrently; judging said predicted branch instruction for said presently fetched group of instructions as correct when said predicted branch instruction is actually encountered during actual execution of said presently fetched plurality of instructions; and invalidating said plurality of instructions indicated by said branch target address of said predicted branch instruction for said presently fetched plurality of instructions which are fetched at the next processing timing, when said predicted branch instruction is not judged as correct.
Claim 23
Independent Claim
234 words
A method of branch prediction for a processor capable of executing a plurality of instructions concurrently, comprising the steps of: providing a branch prediction table for registering entries, each entry including a branching address indicating said plurality of instructions containing a predicted branch instruction, a branch target address of said predicated branch instruction, and an instruction location indicating a location of said predicted branch instruction in said plurality of instructions indicated by said branching address; fetching said plurality of instructions to be executed concurrently by said processor which are indicated by said branch target address of said predicted branch instruction for the presently fetched plurality of instructions at a next processing timing, where said predicted branch instruction for said presently fetched plurality of instructions is registered in one entry in branch prediction table having said branching address which coincides with an address of said presently fetched plurality of instructions; actually executing said plurality of instructions fetched by said processor concurrently; judging said predicted branch instruction for said presently fetched group of instructions as correct when said predicted branch instruction is actually encountered during actual execution of said presently fetched plurality of instructions; and invalidating said plurality of instructions indicated by said branch target address of said predicted branch instruction for said presently fetched plurality of instructions which are fetched at the next processing timing, when said predicted branch instruction is not judged as correct.
Claim 24
Independent Claim
255 words
A method of branch prediction, comprising the steps of: providing a branch prediction table formed by an associative memory for registering entries, each entry including a branching address indicating instructions to be executed concurrently containing a predicted branch instruction, a branch target address of said predicated branch instruction, and an entry address indicating a location of each entry in said associative memory of said branch prediction table; fetching said instructions to be executed concurrently by a processor which are indicated by said branch target address of said predicted branch instruction for the presently fetched instructions at a next processing timing, where said predicted branch instruction for said presently fetched instructions is registered in one entry in said branch prediction table having the branching address which coincides with an address of said presently fetched instructions; actually executing said instructions fetched by said processor concurrently; judging said predicted branch instruction for said presently fetched instructions as correct when said predicted branch instruction is actually encountered during actual execution of said presently fetched instructions; invalidating said instructions indicated by said branch target address of said predicted branch instruction for said presently fetched instructions which are fetched at the next processing timing, when said predicted branch instruction is not judged as correct; and rewriting said entry registering said predicted branch instruction for said presently fetched instructions in said branch prediction table when said predicted branch instruction is not judged as correct, by using said entry address of said entry registering said predicted branch instruction for said presently fetched instructions.
Claim 25
Independent Claim
255 words
A method of branch prediction, comprising the steps of: providing a branch prediction table formed by an associative memory for registering entries, each entry including a branching address indicating instructions to be executed concurrently containing a predicted branch instruction, a branch target address of said predicated branch instruction, and an entry address indicating a location of each entry in said associative memory of said branch prediction table; fetching said instructions to be executed concurrently by a processor which are indicated by said branch target address of said predicted branch instruction for the presently fetched instructions at a next processing timing, where said predicted branch instruction for said presently fetched instructions is registered in one entry in said branch prediction table having the branching address which coincides with an address of said presently fetched instructions; actually executing said instructions fetched by said processor concurrently; judging said predicted branch instruction for said presently fetched instructions as correct when said predicted branch instruction is actually encountered during actual execution of said presently fetched instructions; invalidating said instructions indicated by said branch target address of said predicted branch instruction for said presently fetched instructions which are fetched at the next processing timing, when said predicted branch instruction is not judged as correct; and rewriting said entry registering said predicted branch instruction for said presently fetched instructions in said branch prediction table when said predicted branch instruction is not judged as correct, by using said entry address of said entry registering said predicted branch instruction for said presently fetched instructions.