Claims Analysis
Total Claims: 28
Claim 1
Independent Claim
91 words
A method within a processor of speculatively executing an instruction loop, comprising: initiating execution of said instruction loop and counting each executed iteration of said instruction loop; thereafter, determining an actual number of iterations that said instruction loop should be executed; in response to said determination, determining a difference between said actual number of iterations and a number of executed iterations of said instruction loop; and in response to a determination that said difference is greater than zero, executing said instruction loop an additional number of iterations equal to said difference.
Claim 2
Independent Claim
91 words
A method within a processor of speculatively executing an instruction loop, comprising: initiating execution of said instruction loop and counting each executed iteration of said instruction loop; thereafter, determining an actual number of iterations that said instruction loop should be executed; in response to said determination, determining a difference between said actual number of iterations and a number of executed iterations of said instruction loop; and in response to a determination that said difference is greater than zero, executing said instruction loop an additional number of iterations equal to said difference.
Claim 3
Dependent Claim
31 words
The method of claim 1, said instruction loop including a conditional branch instruction, wherein said conditional branch instruction is resolved in response to said determination of said actual number of iterations.
Claim 4
Dependent Claim
39 words
The method of claim 1, wherein said processor includes a count register, said method further comprising the step of predicting a number of iterations that said instruction loop will be executed and storing said prediction within said count register.
Claim 5
Dependent Claim
34 words
The method of claim 1, said processor including a count register, wherein said step of counting each executed iteration of said instruction loop comprises maintaining said number of executed iterations within said count register.
Claim 6
Dependent Claim
40 words
The method of claim 4, wherein said step of maintaining said number of executed iterations within said count register comprises setting said count register to zero and decrementing said count register once for each iteration of said instruction loop executed.
Claim 7
Dependent Claim
25 words
The method of claim 5, wherein said step of determining a difference comprises adding said actual iteration value to a value within said count register.
Claim 8
Dependent Claim
33 words
The method of claim 1, wherein said step of determining an actual number of iterations that said instruction loop should be executed comprises executing an instruction that supplies said actual number of iterations.
Claim 9
Dependent Claim
31 words
The method of claim 1, said method further comprising: in response to a determination that said difference is less than zero, cancelling unexecuted instructions within mispredicted iterations of said instruction loop.
Claim 10
Dependent Claim
18 words
The method of claim 8, and further comprising: discarding data results of mispredicted iterations of said instruction loop.
Claim 11
Dependent Claim
108 words
A processor, comprising: one or more execution units for executing instructions, wherein said one or more execution units initiate execution of an instruction loop while an actual number of iterations of said instruction loop to be executed is unknown; means for counting a number of executed iterations of said instruction loop; and means, responsive to a determination of said actual number of iterations, for determining a difference between said actual number of iterations and said number of executed iterations; wherein said execution units execute said instruction loop an additional number of iterations equal to said difference in response to a determination that said difference is zero or greater.
Claim 12
Dependent Claim
108 words
A processor, comprising: one or more execution units for executing instructions, wherein said one or more execution units initiate execution of an instruction loop while an actual number of iterations of said instruction loop to be executed is unknown; means for counting a number of executed iterations of said instruction loop; and means, responsive to a determination of said actual number of iterations, for determining a difference between said actual number of iterations and said number of executed iterations; wherein said execution units execute said instruction loop an additional number of iterations equal to said difference in response to a determination that said difference is zero or greater.
Claim 13
Dependent Claim
19 words
The processor of claim 8, wherein said means for counting a number of executed iterations comprises a count register.
Claim 14
Dependent Claim
35 words
The processor of claim 11, said processor further comprising means for predicting a number of iterations that said instruction loop will be executed, wherein said means for predicting stores said prediction within said count register.
Claim 15
Dependent Claim
23 words
The processor of claim 11, and further comprising means for decrementing said count register once for each iteration of said instruction loop executed.
Claim 16
Dependent Claim
28 words
The processor of claim 13, wherein said means for determining a difference comprises means for adding said actual number of iterations to a value within said count register.
Claim 17
Dependent Claim
30 words
The processor of claim 10, wherein said determination of said actual number of iterations is made in response to execution of an instruction by said one or more execution units.
Claim 18
Dependent Claim
54 words
The processor of claim 10, wherein said processor further comprises: a fetcher for fetching instructions for execution; a queue for temporarily storing fetched instructions prior to execution, wherein instructions within mispredicted iterations of said instruction loop are cancelled out of said queue in response to a determination that said difference is less than zero.
Claim 19
Dependent Claim
39 words
The processor of claim 16, and further comprising: one or more registers for temporarily storing data results of instructions, wherein data results of instructions within mispredicted iterations of said instruction loop are discarded from said one or more registers.
Claim 20
Dependent Claim
129 words
A data processing system, comprising: a memory for storing instructions; a fetcher for fetching instructions within an instruction loop from said memory for execution; one or more execution units for executing instructions, wherein said one or more execution units begin execution of an instruction loop while an actual number of iterations of said instruction loop to be executed is unknown; means for counting a number of executed iterations of said instruction loop; and means, responsive to a determination of said actual number of iterations, for determining a difference between said actual number of iterations and said number of executed iterations; wherein said execution units execute said instruction loop an additional number of iterations equal to said difference in response to a determination that said difference is zero or greater.
Claim 21
Dependent Claim
129 words
A data processing system, comprising: a memory for storing instructions; a fetcher for fetching instructions within an instruction loop from said memory for execution; one or more execution units for executing instructions, wherein said one or more execution units begin execution of an instruction loop while an actual number of iterations of said instruction loop to be executed is unknown; means for counting a number of executed iterations of said instruction loop; and means, responsive to a determination of said actual number of iterations, for determining a difference between said actual number of iterations and said number of executed iterations; wherein said execution units execute said instruction loop an additional number of iterations equal to said difference in response to a determination that said difference is zero or greater.
Claim 22
Dependent Claim
21 words
The data processing system of claim 18, wherein said means for counting a number of executed iterations comprises a count register.
Claim 23
Dependent Claim
39 words
The data processing system of claim 19, said data processing system further comprising means for predicting a number of iterations that said instruction loop will be executed, wherein said means for predicting stores said prediction within said count register.
Claim 24
Dependent Claim
25 words
The data processing system of claim 19, and further comprising means for decrementing said count register once for each iteration of said instruction loop executed.
Claim 25
Dependent Claim
30 words
The data processing system of claim 21, wherein said means for determining a difference comprises means for adding said actual number of iterations to a value within said count register.
Claim 26
Dependent Claim
32 words
The data processing system of claim 18, wherein said determination of said actual number of iterations is made in response to execution of an instruction by said one or more execution units.
Claim 27
Dependent Claim
39 words
The data processing system of claim 18, wherein said data processing system further comprises: a queue for temporarily storing fetched instructions prior to execution, wherein instructions within mispredicted iterations of said instruction loop are cancelled out of said queue.
Claim 28
Dependent Claim
41 words
The data processing system of claim 24, and further comprising: one or more registers for temporarily storing data results of instructions, wherein data results of instructions within mispredicted iterations of said instruction loop are discarded from said one or more registers.