Interference in a branch history table of a microprocessor is reduced by methods and apparatus which predict the outcome of branch instructions (taken or not taken) through a combination of static and dynamic prediction techniques. Static prediction information (e.g., a compiler hint) may be stored in instruction memory, and dynamic prediction information is stored in a branch history table. A branch prediction results from an exclusive OR of static and dynamic prediction information. After execution of a branch instruction, an indication as to whether a branch was taken or not taken is exclusively ORed with the static prediction information for the branch instruction, and the result of this exclusive OR is used to update an appropriate entry in the branch history table. Using the methods and apparatus disclosed herein, two well-behaved branches may share an entry in a branch history table, yet not interfere with one another (even when the two well-behaved branches include one which is mostly taken, and one which is mostly not taken).

L'interférence dans une table d'histoire de branche d'un microprocesseur est réduite par les méthodes et les appareils qui prévoient les résultats des instructions de branchement (prises ou non prises) par une combinaison des techniques statiques et dynamiques de prévision. L'information statique de prévision (par exemple, un conseil de compilateur) peut être stockée dans la mémoire d'instruction, et l'information dynamique de prévision est stockée dans une table d'histoire de branche. Une prévision de branche résulte de l'information exclusive OU statique et dynamique de prévision. Après exécution d'une instruction de branchement, une indication de savoir si une branche a été prise ou non pris est exclusivement ORed avec l'information statique de prévision pour l'instruction de branchement, et le résultat de cette exclusivité OU est employée pour mettre à jour une entrée appropriée dans la table d'histoire de branche. En utilisant les méthodes et l'appareil a révélé ci-dessus, deux branches polies peuvent partager une entrée dans une table d'histoire de branche, pourtant ne pas interférer entre eux (même lorsque les deux branches polies incluent un qui est la plupart du temps pris, et une qui ne sont pas la plupart du temps prises).

 
Web www.patentalert.com

< (none)

< Rotary landing gear assembly

> Swimming simulation system

> (none)

~ 00028