Patent ID: 8832418

Claim:
A microprocessor, comprising: a branch target address cache (BTAC), wherein each entry of the BTAC is configured to store branch prediction information and the BTAC is organized into multiple groups of N entries so that each group provides N entries for storing branch prediction information for N branch instructions per fetch quantum, wherein N is a constant integer value, N is at least two, and branch instructions are classified with replacement priorities that are based on branch instruction type; and an execution unit, configured to execute a new branch instruction previously fetched from an instruction cache in a fetch quantum; an override indicator that regularly, approximately X of every Y clock cycles, provides an indication to force an update of the BTAC with branch information for a branch instruction, wherein Y is greater than X; and update logic, coupled to the BTAC and execution unit, configured to: determine whether the BTAC is already storing branch prediction information for N branch instructions within the fetch quantum; update the BTAC with branch information for the new branch instruction, if the BTAC is not already storing branch prediction information for N branch instructions within the fetch quantum; determine whether the new branch instruction has a higher replacement priority, based on its type, than the branch instructions whose branch prediction information are already stored in the BTAC, if the BTAC is already storing branch prediction information for N branch instructions within the fetch quantum; update the BTAC with branch information for the new branch instruction, if the new branch instruction has a higher replacement priority, based on its type, than the branch instructions whose branch prediction information are already stored in the BTAC; and forego updating the BTAC with branch information for the new branch instruction, if the new branch instruction does not have a higher replacement priority, based on its type, than the branch instructions whose prediction information are already stored in the BTAC, unless the override indicator provides an override indication to force an update of the BTAC.