Claims Analysis
Total Claims: 24
Claim 1
Independent Claim
109 words
A processor, comprising: one or more execution units for executing instructions, said one or more execution units including a branch processing unit for executing branch instructions, said branch processing unit including: selection logic for selecting one of a plurality of branch prediction methodologies; a branch prediction unit for predicting a resolution of a conditional branch instruction utilizing said selected branch prediction methodology; and means for speculatively executing said branch instruction according to said prediction; wherein said selection logic automatically selects a branch prediction methodology from said plurality of branch prediction methodologies for predicting a resolution of a subsequent conditional branch instruction in response to an outcome of said prediction.
Claim 2
Dependent Claim
109 words
A processor, comprising: one or more execution units for executing instructions, said one or more execution units including a branch processing unit for executing branch instructions, said branch processing unit including: selection logic for selecting one of a plurality of branch prediction methodologies; a branch prediction unit for predicting a resolution of a conditional branch instruction utilizing said selected branch prediction methodology; and means for speculatively executing said branch instruction according to said prediction; wherein said selection logic automatically selects a branch prediction methodology from said plurality of branch prediction methodologies for predicting a resolution of a subsequent conditional branch instruction in response to an outcome of said prediction.
Claim 3
Dependent Claim
16 words
The processor of claim 1, wherein said plurality of branch prediction methodologies includes dynamic branch prediction.
Claim 4
Dependent Claim
39 words
The processor of claim 2, and further comprising: a branch history table, wherein said branch history table stores an indication whether said conditional branch instruction should be predicted as taken or not taken if dynamic branch prediction is utilized.
Claim 5
Dependent Claim
16 words
The processor of claim 3, wherein said plurality of branch prediction methodologies includes static branch prediction.
Claim 6
Dependent Claim
60 words
The processor of claim 4, said selection logic comprising: means, responsive to a first selected number of incorrect predictions of conditional branch instructions utilizing dynamic branch prediction, for selecting static branch prediction; and means, responsive to a resolution of a second selected number of statically predicted conditional branch instructions as all taken or not taken, for selecting dynamic branch prediction.
Claim 7
Dependent Claim
42 words
The processor of claim 1, wherein said processor has an associated memory for storing instructions, said processor further comprising a fetcher, wherein said fetcher fetches from memory one or more instructions for execution within a speculative execution path indicated by said prediction.
Claim 8
Dependent Claim
31 words
The processor of claim 6, said processor further comprising: means for cancelling said instructions within said speculative execution path in response to a resolution of said conditional branch instruction as mispredicted.
Claim 9
Dependent Claim
153 words
A data processing system, comprising: a bus; a a memory coupled to said bus, wherein said memory stores instructions to be executed; a fetcher for fetching instructions from said memory, said fetcher being coupled to said memory via said bus; one or more execution units for executing fetched instructions, said one or more execution units including a branch processing unit for executing branch instructions, said branch processing unit including: selection logic for selecting one of a plurality of branch prediction methodologies; a branch prediction unit for predicting a resolution of a conditional branch instruction utilizing said selected branch prediction methodology; and means for speculatively executing said branch instruction according to said prediction; wherein based upon an outcome of said prediction, said selection logic automatically selects a branch prediction methodology from said plurality of branch prediction methodolgies for predicting a resolution of a subsequent conditional branch instruction, such that branch prediction accuracy is enhanced.
Claim 10
Dependent Claim
153 words
A data processing system, comprising: a bus; a a memory coupled to said bus, wherein said memory stores instructions to be executed; a fetcher for fetching instructions from said memory, said fetcher being coupled to said memory via said bus; one or more execution units for executing fetched instructions, said one or more execution units including a branch processing unit for executing branch instructions, said branch processing unit including: selection logic for selecting one of a plurality of branch prediction methodologies; a branch prediction unit for predicting a resolution of a conditional branch instruction utilizing said selected branch prediction methodology; and means for speculatively executing said branch instruction according to said prediction; wherein based upon an outcome of said prediction, said selection logic automatically selects a branch prediction methodology from said plurality of branch prediction methodolgies for predicting a resolution of a subsequent conditional branch instruction, such that branch prediction accuracy is enhanced.
Claim 11
Dependent Claim
18 words
The data processing system of claim 8, wherein said plurality of branch prediction methodologies includes dynamic branch prediction.
Claim 12
Dependent Claim
43 words
The data processing system of claim 9, and further comprising: a branch history table, wherein said branch history table stores an indication whether or not said conditional branch instruction should be predicted as taken or not taken if dynamic branch prediction is utilized.
Claim 13
Dependent Claim
18 words
The data processing system of claim 10, wherein said plurality of branch prediction methodologies includes static branch prediction.
Claim 14
Dependent Claim
62 words
The data processing system of claim 11, said selection logic comprising: means, responsive to a first selected number of incorrect predictions of conditional branch instructions utilizing dynamic branch prediction, for selecting static branch prediction; and means, responsive to a resolution of a second selected number of statically predicted conditional branch instructions as all taken or not taken, for selecting dynamic branch prediction.
Claim 15
Dependent Claim
29 words
The data processing system of claim 8, wherein said fetcher fetches from said memory one or more instructions for execution within a speculative execution path indicated by said prediction.
Claim 16
Dependent Claim
32 words
The data processing system of claim 13, and further comprising: means for cancelling said instructions within said speculative execution path in response to a resolution of said conditional branch instruction as mispredicted.
Claim 17
Independent Claim
119 words
A method within a processor for speculatively executing a conditional branch instruction, said method comprising: selecting one of a plurality of branch prediction methodologies to predict a resolution of a conditional branch instruction; predicting a resolution of said conditional branch instruction as taken or not taken utilizing said selected branch prediction methodology; speculatively executing said conditional branch instruction according to said prediction; thereafter, resolving said conditional branch instruction as taken or not taken; and in response to said resolution of said branch instruction, utilizing an outcome of said prediction to automatically select a branch prediction methodology from said plurality of branch prediction methodologies for predicting a resolution of a subsequent conditional branch instruction, wherein branch prediction accuracy is enhanced.
Claim 18
Independent Claim
119 words
A method within a processor for speculatively executing a conditional branch instruction, said method comprising: selecting one of a plurality of branch prediction methodologies to predict a resolution of a conditional branch instruction; predicting a resolution of said conditional branch instruction as taken or not taken utilizing said selected branch prediction methodology; speculatively executing said conditional branch instruction according to said prediction; thereafter, resolving said conditional branch instruction as taken or not taken; and in response to said resolution of said branch instruction, utilizing an outcome of said prediction to automatically select a branch prediction methodology from said plurality of branch prediction methodologies for predicting a resolution of a subsequent conditional branch instruction, wherein branch prediction accuracy is enhanced.
Claim 19
Dependent Claim
23 words
The method for speculatively executing a conditional branch instruction of claim 15, wherein said plurality of branch prediction methodologies includes dynamic branch prediction.
Claim 20
Dependent Claim
40 words
The method for speculatively executing a conditional branch instruction of claim 16, said method further comprising: storing an indication of whether or not said subsequent conditional branch instruction should be predicted as taken or not taken utilizing dynamic branch prediction.
Claim 21
Dependent Claim
23 words
The method for speculatively executing a conditional branch instruction of claim 17, wherein said plurality of branch prediction methodologies includes static branch prediction.
Claim 22
Dependent Claim
73 words
The method for speculatively executing a conditional branch instruction of claim 18, wherein said step of selecting one of a plurality of branch prediction methodologies comprises: in response to a first selected number of incorrect predictions of branch instructions utilizing dynamic branch prediction, selecting static branch prediction; and in response to a resolution of a second selected number of statically predicted branch instructions as all taken or not taken, selecting dynamic branch prediction.
Claim 23
Dependent Claim
32 words
The method for speculatively executing a conditional branch instruction of claim 15 said method further comprising fetching one or more instructions for execution within a speculative execution path indicated by said prediction.
Claim 24
Dependent Claim
36 words
The method for speculatively executing a conditional branch instruction of claim 20, said method further comprising cancelling said instructions within said speculative execution path in response to a resolution of said conditional branch instruction as mispredicted.