A method is shown for selecting active, or hot, code traces in an executing program for storage in a code cache. A trace is a sequence of dynamic instructions characterized by a start address and a branch history which allows the trace to be dynamically disassembled. Each trace is terminated by execution of a trace terminating condition which is a backward taken branch, an indirect branch, or a branch whose execution causes the branch history for the trace to reach a predetermined limit. As each trace is generated by the executing program, it is loaded into a buffer for processing. When the buffer is full, a counter corresponding to the start address of each trace is incremented. When the count for a start address exceeds a threshold, then the start address is marked as being hot. Each hot trace is then checked to see if the next trace in the buffer shares the same start address, in which case the hot trace is cyclic. If the start address of the next trace is not the same as the hot trace, then the traces in the buffer are checked to see they form a larger cycle of execution. If the traces subsequent to the hot trace are not hot themselves and are followed by a trace having the same start address as the hot trace, then their branch histories are companded with the branch history of the hot trace to form a cyclic trace. The cyclic traces are then disassembled and the instructions executed in the trace are stored in a code cache.

Een methode wordt getoond voor actief, of heet selecteren, codesporen in een het uitvoeren programma voor opslag in een codegeheim voorgeheugen. Een spoor is een reeks dynamische instructies die door een beginadres en een takgeschiedenis worden gekenmerkt die het spoor om dynamisch toelaat worden gedemonteerd. Elk spoor wordt door uitvoering van een spoor geƫindigd dat voorwaarde eindigt die een achterwaartse genomen tak, een indirecte tak, of een tak is de waarvan uitvoering de takgeschiedenis voor het spoor veroorzaakt om een vooraf bepaalde grens te bereiken. Aangezien elk spoor door het het uitvoeren programma wordt geproduceerd, wordt het geladen in een buffer voor verwerking. Wanneer de buffer volledig is, wordt een teller die aan het beginadres beantwoordt van elk spoor verhoogd. Wanneer de telling voor een beginadres een drempel overschrijdt, dan is het beginadres duidelijk zoals zijnd heet. Elk heet spoor wordt dan gecontroleerd om te zien of deelt het volgende spoor in de buffer het zelfde beginadres, waarbij het hete spoor cyclisch is. Als het beginadres van het volgende spoor niet het zelfde is als het hete spoor, dan de sporen in de buffer wordt gecontroleerd om te zien zij vorm een grotere cyclus van uitvoering. Als de sporen volgend op het hete spoor niet heet zelf zijn en door een spoor dat gevolgd het zelfde beginadres dat het hete spoor, dan hun takgeschiedenissen is heeft companded met de takgeschiedenis van het hete spoor om een cyclisch spoor te vormen. De cyclische sporen worden dan gedemonteerd en de instructies die in het spoor worden uitgevoerd worden opgeslagen in een codegeheim voorgeheugen.

 
Web www.patentalert.com

< (none)

< Method and device for acquiring usage data of application

> Method and apparatus for establishing proper gas flow for unloading materials

> (none)

~ 00028