Branch prediction apparatus and process for restoring replaced branch history for use in future branch predictions for an executing program

   
   

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=.

 
Web www.patentalert.com

< Method and apparatus for facilitating validation of data retrieved from disk

< Methods and apparatus for controlling speculative execution of instructions based on a multiaccess memory condition

> Method and system for previewing and printing customized business forms

> Apparatus, method, and computer program product for achieving interoperability between cryptographic key recovery enabled and unaware systems

~ 00171