One embodiment of the present invention provides a system for predicting an address of an instruction following a branch instruction in a computer instruction stream. This system concurrently performs a fast single-cycle branch prediction operation to produce a first predicted address, and a more-accurate multiple-cycle branch prediction operation to produce a second predicted address. The system assumes that the first predicted address is correct and proceeds with a subsequent instruction fetch operation using the first predicted address. If the first predicted address is the same as the second predicted address, the subsequent instruction fetch operation is allowed to proceed using the first predicted address. Otherwise, the subsequent fetch operation is delayed so that it can proceed using the second predicted address. In this way, the system will typically perform a fast instruction fetch operation using the first predicted address, and will less frequently have to wait for the more-accurate second predicted address. This bi-level architecture allows branch prediction work efficiently even at the higher clock frequencies that arise as semiconductor technologies continue to improve. In accordance with one feature of the above embodiment, the multiple-cycle branch prediction operation involves selecting the second predicted address from between a branch target address, a next sequential address and a return address from a function call. In accordance with another feature, the second predicted address is selected using information from a branch type table, which contains information specifying the type of branch instructions located at particular addresses.

Un mode de réalisation de la présente invention fournit un système pour prévoir une adresse d'une instruction après une instruction de branchement dans un jet d'instruction machine. Ce système effectue concurremment une opération rapide de prévision de branche de simple-cycle pour produire une adresse d'abord prévue, et une opération plus-précise de prévision de branche de multiple-cycle pour produire une adresse prévue par seconde. Le système suppose que l'adresse d'abord prévue est correcte et le montant avec une instruction suivante cherche l'opération en utilisant l'adresse d'abord prévue. Si l'adresse d'abord prévue est même que la deuxième adresse prévue, l'instruction suivante cherchent à opération est permise de procéder en utilisant l'adresse d'abord prévue. Autrement, les suivants cherchent l'opération sont retardés de sorte qu'elle puisse procéder en utilisant l'adresse prévue par seconde. De cette façon, le système effectuera typiquement une instruction rapide cherchent l'opération en utilisant l'adresse d'abord prévue, et moins devra fréquemment attendre l'adresse prévue par seconde plus-précise. Cette architecture à deux niveaux permet le travail de prévision de branche efficacement même aux fréquences de base plus élevées qui surgissent pendant que les technologies de semi-conducteur continuent à s'améliorer. Selon un dispositif de l'incorporation ci-dessus, l'opération de prévision de branche de multiple-cycle implique de choisir l'adresse prévue par seconde à partir entre d'une adresse de cible de branche, d'une prochaine adresse séquentielle et d'une adresse de retour d'un appel de fonction. Selon un autre dispositif, la deuxième adresse prévue est choisie en utilisant l'information à partir d'un type table de branche, qui contient l'information indiquant le type d'instructions de branchement situées aux adresses particulières.

 
Web www.patentalert.com

< (none)

< Multi-server location-independent authentication certificate management system

> Computing system having multiple nodes coupled in series in a closed loop

> (none)

~ 00003