Hyper-Threading technology
Hyper-Threading technology, or HT technology, allows each
microprocessor core to execute two software threads at the same time.
Simultaneous execution of two threads by the same core is
accomplished by:
- Adding the second set of a few internal core components, such as
interrupt controller, general, control and special registers. The
second set of registers allows the CPU to keep the state of both
cores, and effortlessly switch between them by switching the register
set.
- Modifying other core units to switch between two threads. Some
internal units automatically switch from one thread to another, and
back, while others switch to another thread only when the current
thread is stalled, i.e. is waiting for data.
- Limiting maximum size of internal buffers used by each thread.
This is necessary to ensure that both threads get sufficient
resources required for thread execution.
HT technology results in better utilization of core resources and
improved performance. Using this technology, many core resources can
be shared between threads without negative impact, although sharing
of some resources, like level 1 cache, may lower process performance
under certain conditions. Overall, for large number of multi-threaded
applications the Hyper-Threading can provide noticeable performance
boost, up to 20%, or up to 50% in rare cases. On operating system
level, a single-core CPU with HyperThreading technology will be
reported as two logical processors, dual-core CPU with HT is reported
as four logical processors, and so on. HyperThreading Technology does
not require any special drivers to be installed, but does require
BIOS to support this feature.
HyperThreading was implemented in the following processor
families:
| Desktop/Server families | Mobile families |
| Atom |
| Core i3 | Core i3 Mobile |
| Core i5 | Core i5 Mobile |
| Core i7 | Core i7 Mobile |
| Core i7 Extreme Edition | Core i7 Mobile Extreme Edition |
| Pentium 4 | Mobile Pentium 4 |
| Pentium 4 Extreme Edition |
| Pentium Extreme Edition |
| Xeon |
Hyper-Threading technology is one of a few methods of improving
CPU performance in multi-threaded applications and/or multiple
single-threaded tasks. Other methods are multi-core and
multi-processing. The table below summarizes difference between
Hyper-Threading, multi-core and multi-processing methods.
| Method | Core resources | Other package resources | Motherboard resources | Performance in multi-threaded tasks |
| HyperThreading Technology | Most resources shared | Shared | Shared | Minor improvement |
| Multi-core (N cores) | Not shared | Shared | Shared | Up to N times |
| Multi-processing (N CPUs) | Not shared | Not shared | Shared | Up to N times |