Zum Inhalt springen

Hyper-Threading

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 21. Dezember 2003 um 21:45 Uhr durch 82.82.130.108 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.


Als Hyperthreading (abgeleitet von Multithreading) bezeichnet man die Fähigkeit einer Zentraleinheit, mehrere Programme parallel auszuführen.

Dazu besitzt eine Zentraleinheit bestimmte Ressourcen mehrfach. Die duplizierten Zentraleinheit-Ressourcen bilden die virtuellen Zentraleinheiten, genannt Siblings.

Im Gegensatz zu SMP besitzt der Chip der Zentraleinheit allerdings keine vollständigen virtuellen Zentraleinheiten. Der Unterschied zwischen Multitasking und Multithreading spiegelt sich hier in der Zentraleinheit wieder. Die Siblings besitzen einen eigenen Registersatz inkl. Stackpointer und Programcounter, eine eigene Pipe, und möglicherweise auch eigene 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.

Zentraleinheiten 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 Zentraleinheiten-Hersteller als Intel ihre Zentraleinheiten mit Hyperthreading-Fähigkeiten ausstatten werden.