A shadow dynamic finite state machine for branch prediction : an alternative for the 2-bit saturating counter