Providing accurate branch prediction is critical to effectively exploit
instruction level parallelism. Some of the existing branch prediction schemes
are static in that compilers use opcode information and profiling statistics to
make predictions. Others of the existing branch prediction schemes are dynamic
in that the hardware uses run-time execution history to make predictions. In
this research, we propose a hybrid branch prediction method that combines an
improved static branch prediction scheme and a new dynamic branch predictor. To
implement this hybrid branch prediction scheme, an intelligent compiler applies
techniques of artificial intelligence, including knowledge base system, machine
learning and evolutionary programming. The dynamic branch predictor consists of
a "Switch-Counter" and a modified two-level adaptive branch predictor.
Preliminary simulation results indicate that this approach is promising.