US2008307209A1PendingUtilityA1

Methods and apparatus for implementing polymorphic branch predictors

52
Assignee: GSCHWIND MICHAELPriority: May 4, 2006Filed: Aug 19, 2008Published: Dec 11, 2008
Est. expiryMay 4, 2026(expired)· nominal 20-yr term from priority
G06F 9/3848G06F 9/3844G06F 9/3806
52
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A polymorphic branch predictor and method includes a plurality of branch prediction methods. The methods are selectively enabled to perform branch prediction. A selection mechanism is configured to select one or more of the branch prediction methods in accordance with a dynamic setting to optimize performance of the branch predictor during operation in accordance with a current task.

Claims

exact text as granted — not AI-modified
1 . A polymorphic branch predictor, comprising:
 a plurality of branch prediction methods, each method being selectively enabled to perform branch prediction;   a mechanism for dynamically configuring a mode of prediction formed from at least one of the plurality of branch prediction methods responsive to a dynamic setting to optimize performance of the at least one of the plurality of branch prediction methods during operation where the dynamic setting configures the mode of prediction in accordance with task specific information; and   a storage array for concurrently storing data for at least a first mode of prediction corresponding to a first one of the plurality of branch prediction methods and for a second mode of prediction corresponding to a second one of the plurality of branch prediction methods.   
   
   
       2 . The polymorphic branch predictor as recited in  claim 1 , wherein the setting includes a performance metric. 
   
   
       3 . The polymorphic branch predictor as recited in  claim 1 , wherein the mechanism configures the mode of prediction by configuring at least two of the plurality of branch prediction methods to work together to provide a result. 
   
   
       4 . The polymorphic branch predictor as recited in  claim 1 , wherein the mechanism configures the mode of prediction by configuring the at least one of the plurality of branch prediction methods for a specific application or set of applications as designated in advance. 
   
   
       5 . The polymorphic branch predictor as recited in  claim 1 , wherein the mechanism configures the mode of prediction by configuring the at least one of the plurality of branch prediction methods based upon an analysis of runtime behavior. 
   
   
       6 . The polymorphic branch predictor as recited in  claim 1 , wherein the mechanism is configured to receive information from one of a compiler, and a runtime component to configure the at least one of the plurality of branch prediction methods. 
   
   
       7 . The polymorphic branch predictor as recited in  claim 1 , wherein the mechanism is configured to be updated during runtime of an application. 
   
   
       8 . The polymorphic branch predictor as recited in  claim 1 , wherein the mechanism is configured to be updated based upon at least one of output from a logic function, an address bit, a thread specifier and a hash of several address or thread bits. 
   
   
       9 . The polymorphic branch predictor as recited in  claim 1 , further comprising an array of predictor entries wherein the predictor entries stored in the array are configured with respect to a number and bits of information. 
   
   
       10 . The polymorphic branch predictor as recited in  claim 1 , further comprising an array of predictor entries wherein storage in the array is implemented using one of a per-bit write enable signal and a multi-bit write enable signal to permit a write operation to the array. 
   
   
       11 . The polymorphic branch predictor as recited in  claim 1 , wherein each of the plurality of branch prediction methods includes logic elements such that the logic elements are shared between the plurality of branch prediction methods for efficiency. 
   
   
       12 . The polymorphic branch predictor as recited in  claim 11 , wherein the logic elements shared between the plurality of branch prediction methods includes at least one of arrays, predictor update logic, and address generation logic. 
   
   
       13 . The polymorphic branch predictor as recited in  claim 1 , further comprising an array of predictor entries and a branch information queue wherein information is used from the branch information queue to re-write previously read information from the array. 
   
   
       14 . The polymorphic branch predictor as recited in  claim 1 , further comprising addressing logic configured to be shared between a unified table and a table of a multi-component predictor. 
   
   
       15 . The polymorphic branch predictor as recited in  claim 1 , further comprising multiple component arrays of predictor entries wherein predictor entries are selected by address bits. 
   
   
       16 . The polymorphic branch predictor as recited in  claim 1 , further comprising multiple component arrays of predictor entries wherein predictor entries are selected by address hashing to select one of the multiple component arrays. 
   
   
       17 . A method for dynamically selecting a branch prediction method, comprising:
 providing a plurality of branch prediction methods;   configuring a mode of prediction formed from at least one of the plurality of branch prediction methods in accordance with a dynamic setting to optimize performance of the at least one of the plurality of branch prediction methods during operation where the dynamic setting configures the mode of prediction in accordance with task specific information; and   updating a configuration of the mode of prediction to provide improved prediction results,   wherein the mode of prediction is configured before the at least one of the plurality of branch prediction methods is performed, and wherein when the at least one of the plurality of branch prediction methods is configured, remaining ones of the plurality of branch prediction methods are in an un-configured state constrained from being simultaneously performed with the at least one of the plurality of branch prediction methods.   
   
   
       18 . The method as recited in  claim 17 , wherein configuring the mode of prediction includes configuring the at least one of the plurality of branch prediction methods based on one of an application being run, a phase of an application being run, runtime behavior and an operational metric. 
   
   
       19 . The method as recited in  claim 17 , further comprising generating program code to cause a reconfiguration of the at least one of the plurality of branch prediction methods. 
   
   
       20 . A computer readable medium storing a computer readable program, wherein the computer readable program when executed on a computer causes the computer to perform the steps of  claim 19 .

Cited by (0)

No later patents cite this yet.

References (0)

No backward citations on record.