Hyper-threading

related topics
{system, computer, user}
{math, number, function}
{album, band, music}
{son, year, death}
{acid, form, water}

Hyper-threading (officially Hyper-Threading Technology, and abbreviated HT Technology, HTT or HT) is Intel's term for its simultaneous multithreading implementation in its Atom, Core i3, Core i5, Core i7, Itanium, Pentium 4 and Xeon CPUs.

Hyper-threading is an Intel-proprietary technology used to improve parallelization of computations (doing multiple tasks at once) performed on PC microprocessors. For each processor core that is physically present, the operating system addresses two virtual processors, and shares the workload between them when possible. Hyper-threading requires not only that the operating system support multiple processors, but also that it be specifically optimized for HTT, and Intel recommends disabling HTT when using operating systems that have not been optimized for this chip feature.[1]

Contents

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 processor to appear as two "logical" processors to the host operating system, allowing the operating system to schedule two threads or processes simultaneously. When execution resources would not be used by the current task in a processor without hyper-threading, and especially when the processor is stalled, a hyper-threading equipped processor can use those execution resources to execute another scheduled task. (The processor may stall due to a cache miss, branch misprediction, or data dependency.)

This technology is transparent to operating systems and programs. The minimum 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.

It is possible to optimize operating system behavior on multi-processor hyper-threading capable systems. 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 will treat all four processors as being the same. 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; that processor would become extremely busy while the other would be idle, leading to poorer performance than is possible with better scheduling. 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.

Full article ▸

related documents
InterMezzo (file system)
Distributed-queue dual-bus
Data circuit-terminating equipment
Unicos
Wiki software
Links (web browser)
GE-200 series
Colorburst
ISO 7816
VESA Local Bus
MP/M
Motorola 88000
Standard-definition television
FastTrack
Internetwork Packet Exchange
VSE (operating system)
Linux framebuffer
Korn shell
IBM PC keyboard
Chaosnet
Skinny Call Control Protocol
Magnavox Odyssey²
Red Book (audio CD standard)
Context menu
TRIPOS
IWarp
Local loop
32-bit application
Common Gateway Interface
8-bit