An indirect branch predictor includes a buffer storing branch target
addresses corresponding to previously executed indirect branch
instructions. The buffer is indexed with an index derived from history
information corresponding to previously predicted indirect branch
instructions and from the PC of the particular indirect branch instruction
being predicted. In one embodiment, the buffer may be tagless and/or
direct mapped. In various embodiments, the indirect branch target
predictor may generate the index to the buffer using one or more
techniques to improve the accuracy of the prediction: (i) offsetting the
history information from the various previously predicted indirect branch
instructions; (ii) weighting the history information based on the age of
the previously predicted indirect branch instructions; and/or (iii)
reversing the bit order of the PC of the particular indirect branch
instruction being predicted. In one embodiment, the indirect branch
predictor may include a second buffer indexed by a portion of the PC of
the particular indirect branch instruction being predicted. The second
buffer may store target addresses corresponding to previously executed
indirect branch instructions and prediction selection information which
may be used to select a target address prediction from one of the buffer
and the second buffer. The second buffer may accurately predict indirect
branch instructions whose target addresses are relatively fixed, using the
buffer indexed by history information to predict the indirect branch
instructions having more frequently changing indirect targets.
Ein indirektes Niederlassung Kommandogerät schließt einen Puffer ein, der die Niederlassung Zieladressen speichert, die vorher durchgeführten indirekten Verzweigungsbefehlen entsprechen. Der Puffer wird mit einem Index registriert, der von den Geschichte Informationen abgeleitet wird, die vorher vorausgesagten indirekten Verzweigungsbefehlen entsprechen und vom PC des bestimmten indirekten Verzweigungsbefehls, der vorausgesagt wird. In einer Verkörperung kann der Puffer tagless und/oder direktes sein abgebildet. In den verschiedenen Verkörperungen kann das indirekte Niederlassung Zielkommandogerät den Index zum Puffer mit einer oder mehr Techniken erzeugen, die Genauigkeit der Vorhersage zu verbessern: (i) Versatz der Geschichte Informationen von den verschiedenen vorher vorausgesagten indirekten Verzweigungsbefehlen; (ii), die Geschichte Informationen belastend basiert auf dem Alter der vorher vorausgesagten indirekten Verzweigungsbefehle; und/oder (iii), den Spitze Auftrag des PC des bestimmten indirekten Verzweigungsbefehls aufhebend, der vorausgesagt wird. In einer Verkörperung kann das indirekte Niederlassung Kommandogerät einen zweiten Puffer einschließen, der durch einen Teil des PC des bestimmten indirekten Verzweigungsbefehls registriert wird, der vorausgesagt wird. Der zweite Puffer kann die Zieladressen speichern, die vorher durchgeführten indirekten Verzweigungsbefehlen und Vorhersagevorwählerinformationen, die, entsprechen verwendet werden können, um eine Zieladresse Vorhersage von einer des Puffers und des zweiten Puffers vorzuwählen. Der zweite Puffer kann indirekte Verzweigungsbefehle genau voraussagen deren Zieladressen verhältnismäßig örtlich festgelegt sind mit dem Puffer, der durch Geschichte Informationen registriert wird, um die indirekten Verzweigungsbefehle vorauszusagen, die häufiger ändernde indirekte Ziele haben.