Avoiding Instruction Cache Misses
However, if its job is to execute complex logic on a small amount of data, the instruction cache is likely to become a problem at some point. HyperThreading can make sure that this part of the processor still does some useful work, but it is also the source of the second problem – all resources, including the L1 instruction cache and µop cache are shared between the hardware threads. In other words, we have introduced two stages:
The way this can help with the instruction cache misses is that the execution stage, being smaller, is more likely to fit in the instruction cache.
Source: pdziepak.github.io