A method, system and branch predictor for branch prediction. The system
includes a processor core for executing instructions, a branch target
buffer for fetching a branch address, and a branch predictor for first
predicting a branch of a current instruction address and indicating to
the processor core when to fetch the branch address from the branch
target buffer. A branch predictor, including a branch prediction table
for storing a plurality of branch prediction values of previous branch
instructions, and a controller for selecting one of the plurality of
branch prediction values and outputting the selected one of the plurality
of branch prediction values to a processor core, the selected one of the
plurality of branch prediction values indicating to the processor core
when to fetch a branch address from a branch target buffer. A method of
branch prediction, including first outputting a current instruction
address from a processor core to a branch predictor, predicting whether a
branch occurs based on the received current instruction address and a
global history, and second outputting a branch prediction value from the
branch predictor to the processor core, the branch prediction value
indicating whether the processor core fetches a branch address from a
branch target buffer.