Claims Analysis
Total Claims: 14
Claim 1
Independent Claim
136 words
A method of reducing instruction fetch penalty in the execution of a programmed sequence of instructions which includes branches, the method comprising the steps of: (a) inserting at a location in the programmed sequence a branch predict instruction having an opcode that specifies a branch as taken or not taken, and a target address of the branch, and a trace vector of a path in the programmed sequence that leads to the target address from the branch predict instruction, the branch predict instruction otherwise not affecting an architectural state of the microprocessor, and wherein the location precedes the branch by a predetermined number of instructions; (b) prefetching a block of target instructions, starting at the target address of the branch, into an instruction cache of the microprocessor before the branch is encountered in the programmed sequence.
Claim 2
Independent Claim
136 words
A method of reducing instruction fetch penalty in the execution of a programmed sequence of instructions which includes branches, the method comprising the steps of: (a) inserting at a location in the programmed sequence a branch predict instruction having an opcode that specifies a branch as taken or not taken, and a target address of the branch, and a trace vector of a path in the programmed sequence that leads to the target address from the branch predict instruction, the branch predict instruction otherwise not affecting an architectural state of the microprocessor, and wherein the location precedes the branch by a predetermined number of instructions; (b) prefetching a block of target instructions, starting at the target address of the branch, into an instruction cache of the microprocessor before the branch is encountered in the programmed sequence.
Claim 3
Dependent Claim
19 words
The method according to claim 1 wherein the opcode further specifies a size of the block of target instructions.
Claim 4
Dependent Claim
23 words
The method according to claim 2 wherein the size is specified as large if the block target instruction is greater than 32 bytes.
Claim 5
Dependent Claim
23 words
The method according to claim 2 wherein the size is specified as large if the block target instruction is greater than 64 bytes.
Claim 6
Dependent Claim
39 words
The method according to claim 2 further comprising the step of: repeating step (b) in a streaming operation that sequentially prefetches instructions of the block of target instructions when the size is greater than a predetermined number of bytes.
Claim 7
Dependent Claim
32 words
The method according to claim 1 further comprising the step of: eliminating a prefetch request of a second branch predict instruction based upon a trace vector of the second branch predict instruction.
Claim 8
Dependent Claim
60 words
The method according to claim 6 wherein the eliminating step comprises the steps of: predicting an execution path of the programmed sequence of instructions; comparing the execution path with the trace vector of the second branch predict instruction; and canceling the prefetch request if the execution path and the trace vector of the second branch predict instruction do not match.
Claim 9
Dependent Claim
24 words
The method according to claim 1 further comprising the step of: generating the trace vector by a compiler of the programmed sequence of instructions.
Claim 10
Dependent Claim
23 words
The method according to claim 8 wherein the trace vector comprises a bit field that encodes two or more levels of the path.
Claim 11
Dependent Claim
119 words
A microprocessor for executing a programmed set of instructions that includes a branch, the microprocessor comprising: a decoder that decodes a branch predict instruction located within the programmed sequence a predetermined number of instructions prior to the branch, the branch predict instruction having an opcode field that specifies the branch as taken or not taken, a target address of the branch, and a trace vector of a path in the programmed sequence that leads to the target address from the branch predict instruction, execution of the branch predict instruction otherwise not affecting an architectural state of the microprocessor; and a prefetching mechanism that prefetches a target block of instructions at a target address responsive to the branch predict instruction.
Claim 12
Dependent Claim
119 words
A microprocessor for executing a programmed set of instructions that includes a branch, the microprocessor comprising: a decoder that decodes a branch predict instruction located within the programmed sequence a predetermined number of instructions prior to the branch, the branch predict instruction having an opcode field that specifies the branch as taken or not taken, a target address of the branch, and a trace vector of a path in the programmed sequence that leads to the target address from the branch predict instruction, execution of the branch predict instruction otherwise not affecting an architectural state of the microprocessor; and a prefetching mechanism that prefetches a target block of instructions at a target address responsive to the branch predict instruction.
Claim 13
Dependent Claim
18 words
The microprocessor of claim 10 wherein the opcode further specifies a size of the target block of instructions.
Claim 14
Dependent Claim
22 words
The microprocessor of claim 10 wherein the trace vector comprises a bit field that encodes two or more levels of the path.