发明名称 Method for selecting active code traces for translation in a caching dynamic translator
摘要 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.
申请公布号 US6351844(B1) 申请公布日期 2002.02.26
申请号 US19980186945 申请日期 1998.11.05
申请人 HEWLETT-PACKARD COMPANY 发明人 BALA VASANTH
分类号 G06F9/455;G06F9/318;G06F9/38;G06F11/34;(IPC1-7):G06F9/45 主分类号 G06F9/455
代理机构 代理人
主权项
地址