For each predicted branch within a processor, an entry is maintained within
a branch history table. The entry within the branch history table also
includes an indication of the past record for that particular branch
instruction, which indicates how correct the branch prediction has been in
the past. When the field value associated with the predicted branch
exceeds a certain threshold, indicating that the past predictions
associated with that branch instruction have been at an unacceptable
level, then the speculative branch instructions dispatching is suspended
for that particular branch instruction. Alternative embodiments utilize a
global indicator for suspending or cancelling instruction dispatch when
the frequency of previous incorrect branch predictions increases beyond a
preselected threshold.
Para cada filial predita dentro de um processador, uma entrada é mantida dentro de uma tabela do history da filial. A entrada dentro da tabela do history da filial inclui também uma indicação do registro passado para essa instrução de filial particular, que indica como correto a predição da filial se realizou no passado. Quando o valor do campo associado com a filial predita excede um determinado ponto inicial, indicar que as predições passadas associadas com essa instrução de filial estiveram em um nível inaceitável, a seguir em despachar speculative das instruções de filial está suspendido para essa instrução de filial particular. As incorporações alternativas utilizam um indicador global suspendendo ou cancelando a expedição da instrução quando a freqüência de predições incorretas precedentes da filial aumenta além de um ponto inicial preselected.