Hyper-Threading ist Intels Marketingbezeichnung für Simultaneous Multithreading (SMT): Ein physischer CPU-Kern verwaltet zwei (teils auch mehr) logische Prozessoren und führt parallel zwei Threads aus. Das Betriebssystem sieht dadurch doppelt so viele CPUs, wie physisch vorhanden sind — typisch erscheinen 16 logische Kerne bei 8 physischen Kernen.

Woher die Leistung kommt

Ein einzelner Thread nutzt die Ausführungseinheiten eines Kerns selten vollständig: Er wartet auf Speicherzugriffe, hat Abhängigkeiten oder versucht Vorhersagen, die gelegentlich scheitern. Genau in diese Lücken schiebt SMT den zweiten Thread. Während der eine auf Daten wartet, rechnet der andere — die Auslastung des Kerns steigt typischerweise um 15 bis 30 Prozent, ohne zusätzliche Hardware zu verdoppeln.

Was geteilt wird und was nicht

Die Ausführungseinheiten, die Caches und die Out-of-Order-Einrichtungen teilen sich beide Threads. Jeder logische Prozessor erhält dagegen eigene Architektur-Register in der Registerbank, einen eigenen Befehlszähler und einen eigenen Interrupt-Zustand — so kann das Betriebssystem beide Threads unabhängig planen. Der Wechsel zwischen den logischen Prozessoren ist hardware-seitig so schnell, dass der Scheduler keine teuren Kontextwechsel zahlen muss.

Abgrenzung zu Multi-Core und Threads

Multi-Core bedeutet separate physische Kerne, die über Cache-Kohärenz abgestimmt werden; SMT dagegen verdoppelt die Thread-Kapazität innerhalb eines Kerns. Auf Software-Ebene bleibt Thread der vom Betriebssystem verwaltete Ausführungsfaden, und ein laufendes Programm ist ein Prozess. Das Zusammenspiel der beiden Parallelitätsformen ist zentral für die Mikroarchitektur moderner superskalarer Kerne: Superskalarität nutzt Parallelität innerhalb eines Threads, SMT zusätzlich zwischen Threads.

Geschichte und Verbreitung

Forschung zu SMT reicht bis in die 1990er-Jahre zurück (Dean Tullsen et al.); Intels erster kommerzieller Einsatz folgte 2002 in Xeon- und Pentium-4-Modellen („Hyper-Threading Technology"). AMD zog mit Clustered Multi-Threading im Buldoser und später mit SMT in Ryzen-Prozessoren nach. Bei voll ausgelasteten Kernen bringt SMT kaum oder sogar leicht negative Effekte, weil sich beide Threads Bandbreite und Caches streitig machen — in stark nebenläufigen Servern lohnt es sich dagegen deutlich.

Sicherheitshinweis

SMT erzeugt Seitenkanäle: Da sich beide Threads dieselben Ausführungseinheiten teilen, sind Timing-Angriffe wie PortSmash möglich. In Hochsicherheitsumgebungen wird Hyper-Threading deshalb bisweilen im BIOS oder per Betriebssystem-Konfiguration deaktiviert.