- Hyper-threading
Hyper-threading (officially termed Hyper-Threading Technology or HTT) is an Intel-proprietary technology used to improve parallelization of computations performed on PC microprocessors via
simultaneous multithreading . It is an improvement onsuper-threading . It debuted in U.S. Patent 4,847,755 (Gordon Morrison et al.) and can be seen in use on theIntel Xeon ,Pentium 4 and Atom processors. The technology improves processor performance under certain workloads by providing useful work forexecution unit s that would otherwise be idle, for example during a cache miss. A processor with Hyper-Threading enabled is treated by theoperating system as two processors instead of one.Hyper-threading relies on support in the operating system as well as the CPU. Conventional multiprocessor support is not enough to take advantage of hyper-threading. [Operating Systems that include optimizations for [http://www.intel.com/support/processors/sb/CS-017343.htm Hyper-Threading Technology] ] For example, even though Windows 2000 supports multiple CPUs, Intel does not recommend that hyper-threading be enabled under that operating system.
Performance
The advantages of Hyper-Threading are listed as: improved support for multi-threaded code, allowing multiple threads to run simultaneously, improved reaction and response time.
According to Intel, the first implementation only used an additional 5% of the
die area over the comparable non-hyperthreaded processor, yet yielded performance improvements of 15–30%.Intel claims up to a 30% speed improvement compared against an otherwise identical, non-
simultaneous multithreading Pentium 4. The performance improvement seen is very application-dependent, however, and some programs actually slow down slightly when Hyper Threading Technology is turned on. This is due to thereplay system of the Pentium 4 tying up valuable execution resources, thereby starving the other thread. (The Pentium 4 Prescott core gained a replay queue, which reduces execution time needed for the replay system, but this is not enough to completely overcome the performance hit.) However, any performance degradation is unique to the Pentium 4 (due to various architectural nuances), and is not characteristic ofsimultaneous multithreading in general.Details
Hyper-Threading works by duplicating certain sections of the processor—those that store the
architectural state —but not duplicating the main execution resources. This allows a Hyper-Threading equipped processor to pretend to be two "logical" processors to the host operating system, allowing the operating system to schedule two threads or processes simultaneously. Where execution resources in a non-Hyper-Threading capable processor are not used by the current task, and especially when the processor is stalled, a Hyper-Threading equipped processor may use those execution resources to execute another scheduled task. (The processor may stall due to a cache miss,branch misprediction , ordata dependency .)Except for its performance implications, this innovation is transparent to operating systems and programs. All that is required to take advantage of Hyper-Threading is
symmetric multiprocessing (SMP) support in theoperating system , as the logical processors appear as standard separate processors.However, it is possible to optimize operating system behavior on Hyper-Threading capable systems, such as the Linux techniques discussed in [http://www.kerneltraffic.org/kernel-traffic/topics/Hyperthreading.html Kernel Traffic] . For example, consider an SMP system with two physical processors that are both Hyper-Threaded (for a total of four logical processors). If the operating system's process scheduler is unaware of Hyper-Threading, it would treat all four processors the same. As a result, if only two processes are eligible to run, it might choose to schedule those processes on the two logical processors that happen to belong to one of the physical processors. Thus, one CPU would be extremely busy while the other CPU would be completely idle, leading to poor overall performance. This problem can be avoided by improving the scheduler to treat logical processors differently from physical processors; in a sense, this is a limited form of the scheduler changes that are required for NUMA systems.
Security
In May 2005 Colin Percival presented a paper, [http://www.daemonology.net/papers/htt.pdf Cache Missing for Fun and Profit] (PDF file), demonstrating that a malicious thread operating with limited privileges can monitor the execution of another thread through their influence on a shared data cache, allowing for the theft of cryptographic keys. Note that while the attack described in the paper was demonstrated on an Intel Pentium 4 with HyperThreading processor, the same techniques could theoretically apply to any system where caches are shared between two or more non-mutually-trusted execution threads; see also
side channel attack .Future
Older Pentium 4 based CPUs use Hyper-Threading, but the current-generation
Pentium M based cores Merom, Conroe, and Woodcrest do not. Hyper-Threading is a specialized form ofsimultaneous multithreading (SMT), which has been said to be on Intel's plans for the generation after Merom, Conroe and Woodcrest.More recently Hyper-Threading has been criticised as being energy inefficient. For example, specialist low-power CPU design company ARM has stated SMT can use up to 46% more power than dual CPU designs. Furthermore, they claim SMT increases
cache thrashing by 42%, whereasdual core results in a 37% decrease [http://www.theinquirer.net/default.aspx?article=33438] . These considerations are claimed to be the reason Intel dropped SMT from the followingmicroarchitecture .The
Intel Atom is an in-order single-core processor with Hyper-Threading, for low power mobile PCs and low-price desktop PCs.However, for 2008 Intel has claimed that the upcoming Nehalem will see the return of Hyper-Threading. Nehalem is projected to contain up to 8 cores and will be able to effectively scale 16+ threads. [ [http://www.intel.com/pressroom/archive/releases/20070328fact.htm Intel Details Upcoming New Processor Generations ] ]
See also
* Multi-core
*Barrel processor References
External links
* Intel's [http://www.intel.com/technology/platform-technology/hyper-threading/ high level overview of Hyper-threading]
* [http://www.osdcom.info/content/view/30/39/ HyperThreading Overview] from OSDEV Community
* An [http://arstechnica.com/articles/paedia/cpu/hyperthreading.ars introductory article] from Ars Technica* [ftp://download.intel.com/technology/itj/2002/volume06issue01/vol6iss1_hyper_threading_technology.pdf "Hyper-Threading Technology Architecture and Microarchitecture"] , technical description of Hyper-Threading (1.2 MB
PDF -file)
* [http://patft.uspto.gov/netahtml/PTO/srchnum.htm] Enter Patent Number 4,847,755
* [http://www.theregister.co.uk/2005/08/23/intel_next_gen_architecture/ Merom, Conroe, Woodcrest lose HyperThreading]
* [http://msdn.microsoft.com/msdnmag/issues/05/06/HyperThreading/ Hyper-threading on MSDN Magazine] ; Security
*KernelTrap discussion: [http://kerneltrap.org/node/5103 Hyper-Threading Vulnerability] ; Performance problems
* [http://news.zdnet.co.uk/hardware/chips/0,39020354,39237341,00.htm ZDnet: Hyperthreading hurts server performance, say developers]
* [http://www.theinquirer.net/default.aspx?article=33438 ARM is no fan of HyperThreading] - Outlines problems of SMT solutionsSources
"Replay: Unknown Features of the NetBurst Core" [http://www.xbitlabs.com/articles/cpu/display/replay.html]
Wikimedia Foundation. 2010.