Simultaneous Multithreading

Simultaneous Multithreading

Der Begriff Simultaneous Multithreading (etwa simultaner Mehrfadenbetrieb), oder kurz SMT, bezeichnet die Fähigkeit eines Mikroprozessors, mittels getrennter Pipelines und/oder zusätzlicher Registersätze mehrere Threads gleichzeitig auszuführen. Hiermit stellt SMT eine Form des hardwareseitigen Multithreadings dar.

Die derzeit wohl bekannteste Form des SMT ist Intels Hyper-Threading Technologie (HTT) für Pentium 4, Xeon, Atom und Core i7, aber auch Prozessoren anderer Hersteller, z. B. Cell, POWER5 und POWER6 von IBM verfügen über SMT.

Inhaltsverzeichnis

Funktionsweise

Ziel von SMT ist es, die bereits aufgrund der Pipeline-Architektur redundant vorhandenen Ressourcen 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 unabhängig voneinander sind.

Beispiel für 2-fach SMT

Die folgenden Pipelinestufen und 2 Threads sind gegeben:

Pipeline
IF ID OF EXn WB
Thread 1
        LD R6,adr4
        ADD R4,R6,1
        BEQ R4,R6,j1
        BR j2
j1:     ADD R4,R4,1
j2:     ST R4,adr6
Thread 2
LD R1,adr0
OR R1,R1,0xF0
LD R2,adr1
ADD R3,R1,R2
ST R3,adr2


Out-of-Order-Issue und Out-of-Order-Completion. 2 Befehle je Takt. Bei einer Datenabhängigkeit fällt die erste EX-Phase des abhängigen Befehls mit der WB-Phase des vorherigen Befehls zusammen.

2 Integereinheiten EX1, EX2
1 Sprungeinheit EX1, EX2
1 Storeeinheit EX1, EX2
1 Load-Einheit EX1, EX2, EX3 EX4

Bei unbedingten Sprüngen ist das Holen des Zielbefehls (IF) nach der ID-Phase erlaubt. Bedingte Sprünge müssen im Falle eines Sprunges die EX2-Phase abarbeiten bevor die Zielanweisung geladen werden kann. Wenn der Sprung nicht ausgeführt wurde kann der Befehl parallel zur EX2-Phase wieder aufgenommen werden.

Takte 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
LD R6,adr4 IF ID OF EX1 EX2 EX3 EX4 EX5 WB
LD R1,adr0 IF ID OF EX1 EX2 EX3 EX4 EX5 WB
LD R2,adr1 IF ID OF EX1 EX2 EX3 EX4 EX5 WB
ADD R4,R6,1 IF ID OF EX1 EX2 WB
OR R1,R1,0xF0 IF ID OF EX1 EX2 WB
BEQ R4,R6,m1 IF ID OF EX1 EX2 WB
ADD R3,R1,R2 IF ID OF EX1 EX2 WB
BR m2 IF ID OF EX1 EX2 WB
ST R3,adr2 IF ID OF EX1 EX2 WB
j1: ADD R4,R4,1 IF ID OF EX1 EX2 WB Kein Sprung zu j1
j2: ST R4,adr6 IF ID OF EX1 EX2 WB

Anwendungsgebiete

Simultaneous Multithreading stellt eine kostengünstige, wenn auch wesentlich leistungsärmere Alternative zu Multicore-Prozessoren 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

Das Simultaneous Multithreading ist also zwischen Pipeline-Architektur und Mehrkern-Architektur anzusiedeln.

Abgrenzung zur Pipeline-Architektur/Superskalarität

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.

Die Pipeline-Architektur versucht, Befehle desselben Programms zu parallelisieren, und führt sie, falls dies aufgrund von Abhängigkeiten nicht möglich ist, sequenziell aus. SMT versucht die Befehle zweier oder mehrerer Threads (aus einem oder mehreren Programmen) zu parallelisieren, und führt sie, falls das nicht möglich ist, abwechselnd aus. (Dies kann als „Superskalarität über mehrere Threads“ bezeichnet werden.)

Bei beiden Konzepten handelt es sich also um eine Anstrengung, durch eine Parallelisierung der Befehlsverarbeitung die verschiedenen Einheiten einer CPU besser auszulasten und so eine höhere Geschwindigkeit der Programmverarbeitung zu erreichen, ohne die Taktfrequenz oder die Anzahl der befehlsausführenden Einheiten zu erhöhen, wobei der Parallelisierungsgrad bei SMT höher oder gleich, aber nie geringer als der der Pipeline-Architektur sein kann.

Abgrenzung zur Mehrkern-Architektur

Von der Multicore-Architektur unterscheidet sich SMT dadurch, dass die dem System gemeldeten Prozessoren einer SMT-CPU keine unabhängigen Prozessoren sind. Bei SMT teilen sich die virtuellen Prozessoren den Zugriff auf dieselben Datenverarbeitungseinheiten (ALU/FPU), während innerhalb eines Mehrkernprozessors jeder Kern seine eigene Datenverarbeitungseinheit besitzt.

Sowohl ein SMT-Prozessor mit zwei Threads als auch ein Doppelkern-Prozessor erscheinen gegenüber dem System als zwei Prozessoren. Jedoch handelt es sich bei einem Doppelkern-Prozessor um tatsächlich zwei unabhängige und dementsprechend schnelle Prozessoren, während es sich bei SMT um einen Prozessor mit zwei oder mehr Hardware-Threads handelt.

Prozessoren mit SMT

Weitere Informationen

Siehe auch

Hardwareseitiges Multithreading, Hyper-Threading, Nebenläufigkeit, Parallelisierung, Pipeline (Prozessor), Multicore-Prozessor


Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Simultaneous multithreading — Simultaneous multithreading, often abbreviated as SMT, is a technique for improving the overall efficiency of superscalar CPUs with hardware multithreading. SMT permits multiple independent threads of execution to better utilize the resources… …   Wikipedia

  • Simultaneous multithreading — Одновременная многопоточность (англ. Simultaneous Multithreading) технология, позволяющая исполнение инструкций из нескольких независимых потоков выполнения на множестве функциональных модулей суперскалярного микропроцессора в одном цикле.… …   Википедия

  • Simultaneous multithreading — Le Simultaneous Multi Threading est une technique informatique datant des années 1950. Elle consiste, comme le Symmetric multiprocessing (SMP), à augmenter le TLP (Thread Level Parallelism), c’est à dire le parallélisme des threads. Le but est d… …   Wikipédia en Français

  • Multithreading (computer hardware) — Multithreading computers have hardware support to efficiently execute multiple threads. These are distinguished from multiprocessing systems (such as multi core systems) in that the threads must all operate in the same address space, as there is… …   Wikipedia

  • Multithreading (computer architecture) — This article describes hardware supports for multithreads. For thread in software, see Thread (computer science). Multithreading computers have hardware support to efficiently execute multiple threads. These are distinguished from multiprocessing …   Wikipedia

  • Multithreading (hardwareseitig) — Dieser Artikel oder Abschnitt ist nicht hinreichend mit Belegen (Literatur, Webseiten oder Einzelnachweisen) versehen. Die fraglichen Angaben werden daher möglicherweise demnächst gelöscht. Hilf Wikipedia, indem du die Angaben recherchierst und… …   Deutsch Wikipedia

  • Multithreading — Cet article concerne le support matériel des multithreads. Pour les thread logiciels, voir thread (informatique). Les ordinateurs dits multithreading ont du matériel qui leur permet d exécuter efficacement des thread (informatique) multiples. Il… …   Wikipédia en Français

  • multithreading —    Simultaneous processing of more than one message by an application program …   IT glossary of terms, acronyms and abbreviations

  • Temporal multithreading — is one of the two main forms of multithreading that can be implemented on computer processor hardware, the other form being simultaneous multithreading. The distinguishing difference between the two forms is the maximum number of concurrent… …   Wikipedia

  • Hardwareseitiges Multithreading — Durch hardwareseitiges Multithreading (auch: Mehrfädigkeit, Mehrsträngigkeit) können bestimmte Prozessoren mit nur einem vollständigen Prozessor Kern mehrere Programme quasi gleichzeitig bearbeiten. Ein solcher Prozessor wird multithreaded… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”