| CPC G06F 9/3861 (2013.01) [G06F 9/30101 (2013.01); G06F 9/3804 (2013.01); G06F 9/3844 (2013.01); G06F 9/3806 (2013.01)] | 20 Claims |

|
1. A method for managing local branch history registers of a processor including a pipeline comprising a plurality of stages, the method comprising:
providing a bit-vector associated with each of in-flight branches associated with the pipeline, wherein each bit-vector having a bit corresponding to each local branch history register associated with a respective in-flight branch;
providing a recovery counter associated with each local branch history register for tracking a number of bits needing recovery before a local branch history register is valid for participation in branch prediction;
in response to an update of a local branch history register by a branch, setting a bit in a corresponding bit-vector indicative of the update of the local branch history register by the branch; and
upon a flush, determining a value indicative of an extent of recovery required for each local branch history register affected by the flush, and setting a corresponding recovery counter to the value indicative of the extent of recovery required.
|