Zusammenfassung

  • SMT lässt Befehle mehrerer unabhängiger Hardwarekontexte im selben Takt auf den Ressourcen eines breiten superskalaren Kerns antreten. Thread-Level-Parallelität füllt Lücken der Instruction-Level-Parallelität; physische Kerne entstehen dadurch nicht.
  • Die bekannten Ergebnisse von 1995 waren Durchsatzwerte eines bestimmten Simulationsmodells mit Alpha-21164-Ausgangspunkt, bis zu acht Kontexten und multiprogrammierten SPEC92-Lasten. Sie versprachen weder schnellere Einzelthreads noch allgemeine Fairness, Energieeffizienz oder Sicherheit.

Breite ist noch keine Auslastung

Ein superskalarer Kern benötigt in jedem Takt mehrere ausführbare Befehle. Datenabhängigkeiten, Sprünge und Cache-Fehler verringern die Auswahl. Dean Tullsen, Susan Eggers und Henry Levy bezeichneten freie Slots in einem aktiven Takt als horizontale Verschwendung und Takte ohne Ausgabe als vertikale. Ihr ISCA-Beitrag von 1995 hielt mehrere Thread-Zustände bereit und ließ ihre Befehle gemeinsam freie Einheiten belegen.

Das trennt Begriffe, die später oft vermischt wurden. Instruction-Level-Parallelität liegt innerhalb eines Threads; Thread-Level-Parallelität liefert unabhängige Ströme. Hardwarekontexte halten deren architektonischen Zustand, teilen jedoch Warteschlangen, Funktionseinheiten, Caches und Prädiktoren. Ein Mehrkernprozessor partitioniert mehr dieser Ressourcen physisch. Acht SMT-Kontexte sind nicht acht Kerne.

Die Aussagekraft des 1995er Modells

Die erste Arbeit simulierte eine verbreiterte, von einem 300-MHz-Alpha 21164 abgeleitete Maschine. Eine typische Konfiguration bot zehn Funktionseinheiten, maximal acht Ausgaben pro Takt und bis zu acht Kontexte. Unterschiedliche SPEC92-Programme liefen zusammen, damit der reine Gesamtdurchsatz nicht mit Synchronisation oder Parallelisierung einer Anwendung verwechselt wurde.

Die Programme waren zugleich auf gute Einzelthreadleistung kompiliert. Das verhinderte eine künstlich schwache Basis. Im Modell erreichte SMT Beschleunigungen von 3,2 bis 4,2 gegenüber dem breiten Superskalar und höchstens 6,3 Befehle pro Takt. Zusammenfassend waren bis zu viermal dessen Durchsatz und zweimal der Durchsatz feingranularen Multithreadings möglich.

Das ist keine vierfache Beschleunigung eines Jobs. Takt, Breite, Speicherhierarchie, Leistungsbudget und Programmmix begrenzen die Übertragbarkeit.

Teilen heißt zuteilen

Sobald Threads um dieselben Slots konkurrieren, wird die Richtlinie messbar. Strikte Priorität und fairere Verfahren konnten ähnlichen Gesamtdurchsatz liefern, aber sehr unterschiedliche Einzelgeschwindigkeiten. In einem Acht-Thread-Versuch erreichte das niedrig priorisierte Programm nur 55 Prozent der Geschwindigkeit des höchsten. Selbst der bevorzugte Thread verlor rund 35 Prozent durch gemeinsam genutzte Caches, TLBs und Sprungvorhersage.

Fetch-Auswahl, Warteschlangen, Register, Ausführungseinheiten und Speicherbandbreite bilden damit die Steuerungsfläche. Ein höherer Mittelwert kann mit schlechterer Tail-Latenz oder unberechenbarem Fortschritt einzelner Dienste einhergehen.

Der Weg zur implementierbaren Organisation

1996 beschrieben Tullsen, Eggers, Joel Emer, Levy, Jack Lo und Rebecca Stamm eine konventioneller umsetzbare Erweiterung. Die ICOUNT-Auswahl bevorzugte Threads mit wenigen bereits im Prozessor befindlichen Befehlen, damit ein Kontext das gemeinsame Fenster nicht füllte. Das Modell erreichte 5,4 Befehle pro Takt und den 2,5-fachen Durchsatz eines vergleichbaren Superskalars bei acht Threads; der gemeldete Einzelthreadverlust lag unter zwei Prozent.

Der Bericht von 1997 ergänzte SPEC95 und SPLASH-2. Er kam bei acht Threads auf etwa 6,2 IPC für Multiprogrammierung und 6,1 für parallele Programme, dokumentierte aber erneut Konflikte in Cache, TLB und Prädiktor. Gegenüber einem modellierten Chip-Multiprozessor zeigte sich der Tausch: dynamisches Teilen nutzt verstreute Reserve; statische Partitionierung schafft eine andere Isolation.

Gemeinsame Urheberschaft, begrenzte Behauptung

Die Projektseite der University of Washington nennt Eggers und Levy als Faculty, Tullsen und Lo als Studierende sowie Emer und Stamm als Partner der Digital Equipment Corporation. Eggers war prägend, aber nicht alleinige Erfinderin. Intel brachte das Prinzip später als Hyper-Threading in kommerzielle Prozessoren. Der Beitrag von 1995 erhielt 2010 den ISCA Test of Time Award; Eggers wurde 2018 für Beiträge zu SMT sowie Multiprozessor-Sharing und Kohärenz mit dem Eckert-Mauchly Award ausgezeichnet.

Die Ehrungen belegen Einfluss, keine universelle Überlegenheit. Die belastbare Einsicht lautet: SMT verwandelt brachliegende Gelegenheit in umkämpfte gemeinsame Kapazität. Ihr Wert hängt von Maschine, Nachbarschaft und Zielmetrik ab.

Quellen