InvestorsHub Logo
icon url

CombJelly

05/17/04 2:55 PM

#35196 RE: UpNDown #35192

"What is it about trace cache that you consider worthwhile? Why bother with it?"

Because a trace cache decouples the decoder from the rest of the pipeline. Decoding x86 is a series of very complex operations. A trace cache means that for the already decoded code, the processor doesn't have to do it again. This, for one, cuts the power consumption down a lot. It can also allow the rest of the processor to be clocked higher than it might have been otherwise.
icon url

Petz

05/17/04 3:04 PM

#35198 RE: UpNDown #35192

I like trace cache because
1) Why decode instructions more than once? It wastes power.
2) reduce dependence on L1 I-cache latency? Though the fact that it has to be bigger would be counterproductive if it took 1 more clock cycle to access it?

instructions can be selected differently for bundle packing each time through

I thought trace cache just held the muops for each instruction, not how they would be bundled. Maybe a trace cache (or L1 D-cache, for that matter) could be made smart to remember things like, "this instruction or muop often causes a cache miss."

Petz

icon url

jhalada

05/17/04 4:55 PM

#35207 RE: UpNDown #35192

UnD,

Combjelly and Petz already stated good reasons. Additional may be:
- Decoder adds to the pipeline length, instructions in Trace cache will save a couple of stages second time through
- Decoder may be a clock speed limiter
- The processor can add additional processing and dependency checking in the decode stage and store it in trace cache for better utilization of CPU resources during execution. Let's say you add a pipeline stage or 2 to enhance the decode logic on the first pass, and save 2 or 3 on all subsequent passes.

Joe