Simultaneous Multithreading
Als Simultaneous Multithreading (SMT) bezeichnet man die Fähigkeit eines Mikroprozessors, mittels getrennter Pipelines und zusätzlicher Registersätze mehrere Threads simultan gleichzeitig auszuführen. Die derzeit wohl bekannteste Form des SMT ist Intel's Hyper-Threading Technologie (HTT) für Pentium 4 und Xeon, aber auch Prozessoren anderer Hersteller, z.B. Cell von IBM verfügen über SMT.
Funktionsweise
Ziel von SMT ist es, die bereits aufgrund der Pipeline-Architektur redundant vorhandenen Resourcen eines Prozessors noch besser auszulasten, als dies bei der Pipeline-Architektur ohnehin möglich ist. Die Pipeline-Architektur arbeitet nur Befehle innerhalb eines Threads ab. Dadurch kann sie nur solche Befehle parallelisieren, die innerhalb eines Threads aufeinanderfolgen, aber unabhängig voneinander sind. Bei dem Simultaneous Multithreading
Anwendungsgebiete
Simultaneous Multithreading stellt eine kostengünstige, wenn auch wesentlich leistungsärmere Alternative zu Mehrkernprozessoren dar. Die Leistung eines SMT-Prozessors lässt sich allerdings nur dann effektiv nutzen, wenn mehrere parallel zu verarbeitende Aufgaben durchzuführen sind, die durch das Betriebssystem, den Programmierer oder den Compiler auch derart gestaltet wurden, dass sie weitgehend parallel ausführbar sind. Bei vielen modernen Anwendungen (Stand 2005) ist dies bereits der Fall.
Abgrenzung
Von der Pipeline-Architektur unterscheidet sich SMT dadurch, dass die Ausführung mehrerer Threads gleichzeitig möglich ist. Nicht nur Datenverarbeitungseinheiten des Prozessors wie ALU und FPU werden repliziert, sondern auch der Registersatz und die Befehlsdekodierung. Gegenüber dem System erscheint eine SMT-CPU meist wie mehrere unabhängige Prozessoren.
Von der Mehrkern-Architektur unterscheidet sich SMT dadurch, dass die dem System gemeldeten Prozessoren einer SMT-CPU nicht wirklich unabhängige Prozessoren sind. Bei SMT teilen sich die virtuellen Prozessoren den Zugriff auf dieselben Datenverarbeitungseinheiten, während innerhalb eines Mehrkernprozessors jeder Kern seine eigene Datenverarbeitungseinheit besitzt.
Das Simultaneous Multithreading ist also zwischen Pipeline-Architektur und Mehrkern-Architektur anzusiedeln.