Hyper-threading

From Free net encyclopedia

POSSIBLE COPYRIGHT VIOLATION

If you have just labeled this page as a possible copyright infringement, please add the following to the bottom of [[[Template:Fullurl:Wikipedia:Copyright problems/2025 June 8]] Wikipedia:Copyright_problems/2025_June_8]
* {{subst:article-cv|Hyper-threading}} from [{{{1|http://www.osdcom.info/content/view/30/39/}}}]. ~~~~

Image:Copyright.svg The previous content of this page appears to infringe on the copyright of the text from the source(s) below:

{{{1|http://www.osdcom.info/content/view/30/39/}}}

This page is now listed on Wikipedia:Copyright problems. Please do not edit this page for the time being.

If you plan to write a new article, please follow this link to a temporary subpage.
Note that simply modifying copyrighted text is not sufficient to avoid copyright violation — it is best to write the article from scratch.

Your new article will be moved into place by an administrator once the copyright status of the original has been resolved.

  1. Please do not edit this page for the moment.
  2. If you hold the copyright to this material, or if you have permission to use this material under the terms of our license, please indicate so on this page's talk page and under the article's listing on Wikipedia:Copyright problems.
  3. Do not resubmit the material that was here before. It will be removed. This article will be restored if Wikipedia is found to have copyright permission or if the above source copied the previous content of this article (often but not always Wikipedia mirror/clone).
  4. If you want to work on this article meanwhile, write a new article at the temporary subpage, and indicate that you have done so on this page's talk page.
  5. Unless the copyright status of the previous content is clarified, this page will be deleted one week after its listing. If a new article has been written, it will replace this message.
  • Posting copyrighted material without the express permission of the copyright holder is a violation of applicable law and of our policy. Those who repeatedly post copyrighted material may be blocked from further editing. However, even if this is in fact an infringement of copyright, we will still welcome any original contributions from you.
  • The original posting is still accessible for viewing through the [[[Template:Fullurl:Hyper-threading]] history] link on this page.


Hyper-threading, officially called Hyper-Threading Technology (HTT), is Intel's trademark for their implementation of the simultaneous multithreading technology on the Pentium 4 microarchitecture. It is basically a more advanced form of Super-threading that first debuted on the Intel Xeon processors and was later added to Pentium 4 processors. The technology improves processor performance under certain workloads by providing useful work for execution units that would otherwise be idle, for example during a cache miss.

Contents

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, and increased number of users a server can support.

According to Intel, the first implementation only used an additional 5% of the die area over the "normal" processor, yet yielded performance improvements of 15-30%.

Intel claims up to a 30% speed improvement compared against an otherwise identical, non-SMT Pentium 4. The performance improvement seen is very application dependent, however, and some programs actually slow down slightly when HTT is turned on. This is due to the replay system of the Pentium 4 tying up valuable execution resources, thereby starving the other thread. However, any performance degradation is unique to the Pentium 4 (due to various architectural nuances), and is not characteristic of simultaneous 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 the other scheduled task. (The processor may stall due to a cache miss, branch misprediction, or data 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 the operating system, as the logical processors appear as standard separate processors.

However, it is possible to optimize operating system behaviour on Hyper-Threading capable systems, such as the Linux techniques discussed in 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, Cache Missing for Fun and Profit (PDF file), demonstrating that a malicious thread operating with limited privileges permits monitoring of the execution of another thread, allowing for the possibility of theft of cryptographic keys.

The future of Hyper-Threading

Current Pentium 4 based MPUs use Hyper-Threading, but the next-generation cores, Merom, Conroe and Woodcrest will not. While some have alleged that this is because Hyper-Threading is somehow energy inefficient, this is not the case. Hyper-Threading is a particular form of multithreading, and multithreading is definitely on Intel roadmaps for the generation after Merom/Conroe/Woodcrest. Quite a few other low power chips use multithreading, including the PPE from the Cell processor, the CPUs in the Playstation 3 and Sun's Niagara.

The real question is not whether Hyper-Threading will return, because it will, but rather how it will work. Currently, Hyper-Threading is identical to Simultaneous Multi-Threading, but future variants may be different.

See also

External links

Security
Performance problems

Sources

Replay: Unknown Features of the NetBurst Core [1]da:Multithreading de:Hyper-Threading es:HyperThreading fr:Hyper-Threading it:Multithreading nl:Hyper-Threading ja:マルチスレッド pl:Hiperwątkowość pt:Hyper-threading simple:Multithreading sv:Hyper Threading zh:超執行緒