Intel's Pentium 4 3.06GHz: Hyper-Threading on Desktopsby Anand Lal Shimpi on November 14, 2002 5:39 AM EST
- Posted in
Hyper-Threading - How it Works
Your CPU has many different units, or groups of transistors that work together to perform particular functions. A CPU's execution units are those units that actually perform calculations on data and units that move data around (to/from memory).
Unfortunately it's very difficult to keep all of these execution units busy 100% of the time. Because of the nature of most applications, your CPUs execution units enjoy a horribly low utilization rate - generally around 35%. Reducing the number of execution units would cut down on costs however we've ended up with these 7 - 9 execution unit CPUs because of the performance improvements having those additional units give us in the rare occasion that they are in use.
One of the biggest reasons that around 65% of your CPU's execution resources remain idle is because of the fact that the CPU can only execute one thread of instructions at a time. Think of a thread as a collection of instructions related to a single program, for example running spell check in Word would send a thread of instructions to the CPU to begin checking your document for spelling errors. It turns out that the instructions within a particular thread mostly use the same execution units over and over again, leaving the remaining units idle. The idea behind Hyper-Threading is to send multiple threads to the CPU with the hopes that the idle execution units will be used by different threads. Intel claims that with HT enabled the utilization of the Pentium 4's execution units can jump to around 50%, not a bad improvement for such a small modification to the core.
The current version of Intel's Hyper-Threading technology allows a maximum of two threads to be dispatched to a HT enabled CPU. To the OS, a HT enabled CPU simply looks like two processors and thus the OS sends two threads to the CPU for execution.