MITIGATION OF BRANCH MISPREDICTION PENALTY IN A HARDWARE MULTI-THREAD MICROPROCESSOR

Embodiments are provided for mitigation of branch misprediction penalty in hardware multi-thread microprocessors. In some embodiments, a hardware multi-thread microprocessor includes first stage circuitry that fetches a pair of consecutive instructions of a program executed in a thread. Such micropr...

Ausführliche Beschreibung

Gespeichert in:
Bibliographische Detailangaben
1. Verfasser: PARK, Heonchul
Format: Patent
Sprache:eng ; fre
Schlagworte:
Online-Zugang:Volltext bestellen
Tags: Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
Beschreibung
Zusammenfassung:Embodiments are provided for mitigation of branch misprediction penalty in hardware multi-thread microprocessors. In some embodiments, a hardware multi-thread microprocessor includes first stage circuitry that fetches a pair of consecutive instructions of a program executed in a thread. Such microprocessor also includes second stage circuitry that determines, during a clock cycle, that a first instruction in that pair is a branch instruction. The first stage circuitry fetches, during a second clock cycle after the clock cycle, a pair of branch target instructions of the program using a branch prediction. Such microprocessor further includes third stage circuitry that determines that the branch prediction is a misprediction during the second clock cycle. The first stage circuitry sends the second instruction to the second stage circuitry during a third clock cycle after the second clock cycle. The second stage circuitry decodes the second instruction during the third clock cycle. L'invention concerne, selon des modes de réalisation, l'atténuation d'une pénalité de mauvaise prédiction de branche dans des microprocesseurs matériels à plusieurs fils. Dans certains modes de réalisation, un microprocesseur matériel à plusieurs fils comprend un circuit de premier étage qui récupère une paire d'instructions consécutives d'un programme exécuté dans un fil. Un tel microprocesseur comprend également des circuits de deuxième étage qui déterminent, pendant un cycle d'horloge, qu'une première instruction dans cette paire est une instruction de branche. Le circuit de premier étage récupère, pendant un deuxième cycle d'horloge après le cycle d'horloge, une paire d'instructions cibles de branche du programme à l'aide d'une prédiction de branche. Un tel microprocesseur comprend en outre un circuit de troisième étage qui détermine que la prédiction de branche est une mauvaise prédiction pendant le deuxième cycle d'horloge. Le circuit de premier étage envoie la seconde instruction au circuit de deuxième étage pendant un troisième cycle d'horloge après le deuxième cycle d'horloge. Le circuit de deuxième étage décode la deuxième instruction pendant le troisième cycle d'horloge.