Apparatus and methods implemented in a processor semiconductor logic chip
for providing novel "hint instructions" that uniquely preserve and reuse
branch predictions replaced in a branch history table (BHT). A branch
prediction is lost in the BHT after its associated instruction is replaced
in an instruction cache. The unique "hint instructions" are generated and
stored in a unique instruction cache which associates each hint
instruction with a line of instructions. The hint instructions contains
the latest branch history for all branch instructions executed in an
associated line of instructions, and they are stored in the instruction
cache during instruction cache hits in the associated line. During an
instruction cache miss in an instruction line, the associated hint
instruction is stored in a second level cache with a copy of the
associated instruction line being replaced in the instruction cache. In
the second level cache, the copy of the line is located through the
instruction cache directory entry associated with the line being replaced
in the instruction cache. Later, the hint instruction can be retrieved
into the instruction cache when its associated instruction line is fetched
from the second level cache, and then its associated hint instruction is
also retrieved and used to restore the latest branch predictions for that
instruction line. In the prior art this branch prediction would have been
lost. It is estimated that this invention improves program performance for
each replaced branch prediction by about 80%, due to increasing the
probability of BHT bits correctly predicting the branch paths in the
program from about 50% to over 90%. Each incorrect BHT branch prediction
may result in the loss of many execution cycles, resulting in additional
instruction re-execution overhead when incorrect branch paths are
belatedly discovered.
Apparaten en methodes die in een de logicaspaander van de bewerkerhalfgeleider worden uitgevoerd voor het verstrekken van nieuwe "wenkinstructies" dat uniek domein en hergebruikstakvoorspellingen die in een lijst worden vervangen van de takgeschiedenis (BHT). Een takvoorspelling wordt verloren in BHT nadat zijn bijbehorende instructie in een instructiegeheim voorgeheugen wordt vervangen. De unieke "wenkinstructies worden" geproduceerd en in een uniek instructiegeheim voorgeheugen opgeslagen dat elke wenkinstructie met een lijn van instructies associƫert. De wenkinstructies bevat de recentste takgeschiedenis voor alle takinstructies die in een bijbehorende lijn van instructies worden uitgevoerd, en zij worden opgeslagen in het instructiegeheime voorgeheugen tijdens de klappen van het instructiegeheime voorgeheugen in de bijbehorende lijn. Tijdens juffrouw van het instructiegeheime voorgeheugen in een instructielijn, wordt de bijbehorende wenkinstructie opgeslagen in een tweede niveaugeheim voorgeheugen met een exemplaar van de bijbehorende instructielijn die in het instructiegeheime voorgeheugen wordt vervangen. In het tweede niveaugeheime voorgeheugen, wordt het exemplaar van de lijn gevestigd door de de folderingang van het instructiegeheime voorgeheugen verbonden aan de lijn die in het instructiegeheime voorgeheugen wordt vervangen. Later, kan de wenkinstructie in het instructiegeheime voorgeheugen worden teruggewonnen wanneer zijn bijbehorende instructielijn van het tweede niveaugeheime voorgeheugen wordt gehaald, en dan wordt zijn bijbehorende wenkinstructie ook teruggewonnen en gebruikt om de recentste takvoorspellingen voor die instructielijn te herstellen. In de vroegere kunst zou deze takvoorspelling verloren zijn. Men schat dat deze uitvinding programmaprestaties voor elke vervangen takvoorspelling door ongeveer 80% verbetert, wegens het verhogen van de waarschijnlijkheid die van BHT beetjes correct voorspelt de takwegen in het programma van ongeveer 50% tot meer dan 90%, Elke onjuiste BHT takvoorspelling kan in het verlies van vele uitvoeringscycli resulteren, boven resulterend in extra instructie re-uitvoering wanneer de onjuiste takwegen te laat ontdekt=worden=.