The inventive mechanism has a run-time optimization system (RTOS) embedded
in hardware. When the code is first moved into Icache, a threshold value
is set into a counter associated with the instruction or instruction
bundle of the particular cache line of the Icache. Each time the
instruction or instruction bundle is executed and retired, the counter is
decremented by one. When the counter reaches zero, a trap is generated to
inform that the code is hot. A trace selector will form a trace starting
from the hot instruction (or instruction bundle) from the Icache line. The
Icache maintains branch history information for the instructions in each
cache line which is used to determine whether a branch should be predicted
as taken or fall through. After the trace is formed, it is optimized and
stored into a trace memory portion of the physical memory. The mapping
between the original code of the trace and the optimized trace in the
trace memory is maintained in a mapping table. The processor consults the
mapping table to lead the execution to the optimized code in trace memory.
Thus, subsequent execution uses the code in trace memory.
Die erfinderische Einheit hat ein Laufzeitoptimierung System (RTOS) eingebettet in den Kleinteilen. Wenn der Code zuerst in Icache verschoben wird, wird ein Schwellenwert in einen Kostenzähler eingestellt, der mit der Anweisung oder dem Anweisung Bündel der bestimmten Pufferspeicherlinie des Icache verbunden ist. Jede Zeit wird die Anweisung oder das Anweisung Bündel durchgeführt und zurückgezogen, wird der Kostenzähler durch einen verringert. Wenn der Kostenzähler null erreicht, wird eine Falle erzeugt, um sich zu informieren, daß der Code heiß ist. Ein Spur Vorwahl bildet eine Spur, die von der heißen Anweisung abfährt (oder vom Anweisung Bündel) von der Icache Linie. Das Icache behält Niederlassung Geschichte Informationen für die Anweisungen in jeder Pufferspeicherlinie bei, die benutzt wird, um festzustellen, ob eine Niederlassung vorausgesagt werden sollte, wie durch genommen worden oder Fall. Nachdem die Spur gebildet ist, wird sie in einen Spur Gedächtnisteil des körperlichen Gedächtnisses optimiert und gespeichert. Das Diagramm zwischen dem ursprünglichen Code der Spur und der optimierten Spur im Spur Gedächtnis wird in einer abbildentabelle beibehalten. Der Prozessor berät die abbildentabelle, um die Durchführung zum optimierten Code im Spur Gedächtnis zu führen. So verwendet folgende Durchführung den Code im Spur Gedächtnis.