these are the time to decode instructions fetched from the target and wasted decode bandwidth due to branches or branch target in the middle of cache lines the execution trace cache 26 addresses both of these issues by storing decoded instructions instructions are fetched and decoded by a translation engine not shown and built into sequences of u03bc ops called traces these traces of u03bc ops are stored in the trace cache 26 the instructions from the most likely target of a branch immediately follow the branch without regard for continuity of instruction addresses once a trace is built the trace cache 26 is searched for the instruction that follows that trace if that instruction appears as the first instruction in an existing trace the fetch and decode of instructions 30 from the memory hierarchy ceases and the trace cache 26 becomes the new source of instructions the execution trace cache 18 and the translation engine not shown have cooperating branch prediction hardware branch targets are predicted based on their linear addresses using branch target buffers btbs 28 and fetched as soon as possible the branch targets are fetched from the trace cache 26 if they are indeed cached there otherwise they are fetched from the memory hierarchy the translation engine 39 s branch prediction information is used to form traces along the most likely paths the core 18 executes instructions out of order enabling the processor 10 to reorder instructions so that if one u03bc op.