Zum Inhalt springen

Simultaneous Multithreading

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 29. April 2005 um 13:52 Uhr durch ChristianHujer (Diskussion | Beiträge). Sie kann sich erheblich von der aktuellen Version unterscheiden.
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)

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.

Prozessoren mit SMT