Hyper-Threading
Als Hyperthreading (abgeleitet von Multithreading) bezeichnet man die Fähigkeit einer CPU, mehrere Programme parallel auszuführen.
Dazu besitzt eine CPU bestimmte Resourcen mehrfach. Die duplizierten CPU-Resourcen bilden die virtuellen CPUs, genannt Siblings.
Im Gegensatz zu SMP besitzt der Chip der CPU allerdings keine vollständigen virtuellen CPUs. Der Unterschied zwischen Multitasking und Multithreading spiegelt sich hier in der CPU wieder. Die Siblings besitzen lediglich eigen: Registersatz inkl. SP und PC, Pipe, eventuell noch BPU, ALU, FPU sowie einen Teil der Adressierungseinheit. Die MMU-Tabelle müssen sie sich jedoch teilen, weshalb nicht zwei Prozesse sondern nur zwei Threads gleichzeitig ausgeführt werden.
Der Geschwindigkeitsvorteil von Hyperthreading gegenüber dem klassischen Singlethreading ist nur nutzbar, wenn man ein Hyperthreading-fähiges Betriebssystem und Software mit Threads oder Hyperthreading-fähige Software einsetzt. Gegenüber klassischem SMP ist Hyperthreading im Nachteil, jedoch ganz erheblich kostengünstiger zu realisieren.
CPUs mit Hyperthreading sind unter anderem neuere Serien von Intel Pentium 4 und Xeon.
Betriebssysteme mit Unterstützung für Hyperthreading sind unter anderem Linux ab Kernel 2.4.18, neuere Versionen von FreeBSD und anderen BSDs sowie neuere Versionen (aktuelle Service Packs) von Windows 2000 und Windows XP.
Compiler, die Code mit Hyperthreading-Unterstützung erzeugen können, sind der Intel-Compiler und gcc.
Man kann davon ausgehen, dass langfristig auch andere CPU-Hersteller als Intel ihre CPUs mit Hyperthreading-Fähigkeiten ausstatten werden.