Information Technology Reference
In-Depth Information
lässt. Dies ist hier z.B. im dritten Takt der Fall, in dem A 2 und C 6 nicht ausgeführt
werden können, weil beide Befehle drei Takte zur Ausführung benötigen, und B 6 ,
weil zu B 5 eine Abhängigkeit besteht.
A 1
B 1
B 2
C 1
C 2
A 1 B 1 B 2
C 1
C 2 C 3 C 4 C 5
B 3 B 4
C 3
C 4
C 5
B 5
A 2 A 3 A 4 B 6
t
A 2
B 3
A 3
A 4
B 4
B 5
B 6
a
b
Bild 3.50. Zeitlicher Ablauf bei Verarbeitung von drei unabhängigen Befehlsfolgen A, B und C. a
Sequentielle Verarbeitung durch einen skalaren Prozessor. b Parallele Verarbeitung der Befehle
durch einen Prozessor mit simultanem Multithreading
Das simultane Multithreading ist sehr einfach zu realisieren, sofern als Basis ein
superskalarer Prozessor verwendet wird, der die Befehle außer-der-Reihe startet
(out of order issue). Grundsätzlich werden in einem solchen Prozessor nämlich die
Befehle zunächst in eine zentrale, allen Verarbeitungseinheiten gemeinsame Reser-
vierungsstation , die oft als Befehlspuffer ( instruction queue ) bezeichnet wird, einge-
tragen und entsprechend der bestehenden Abhängigkeiten ausgeführt. In dem
Befehlspuffer lassen sich selbstverständlich auch Befehle einer zweiten Befehls-
folge problemlos verwalten, falls sichergestellt ist, dass keine Abhängigkeiten zur
ersten bestehen. Erreichbar ist dies, indem den Befehlsfolgen jeweils eigene Regis-
terspeicher oder eigene Bereiche innerhalb eines großen Registerspeichers zugeord-
net werden. Die grobe Struktur eines in dieser Form arbeitenden Prozessors zeigt
Bild 3.51. Der Übersichtlichkeit halber wurde hierbei auf die Darstellung vieler für
das Verständnis des simultanen Multithreadings unnötiger Details, wie Decoder,
Renaming-Register, Reorder-Buffer usw., verzichtet.
FU 1
a
c
b
Befehls-
speicher
FU 2
Register
Befehlspuffer
FU N
Bild 3.51. Grobes Strukturbild eines superskalaren Prozessors mit simultanem Multithreading. Es
werden pro Takt Befehle unterschiedlicher Befehlsfolgen adressiert, decodiert und gestartet
Die Verarbeitung beginnt damit, Befehle zu einer vorgegebenen Anzahl von
Befehlsfolgen zu adressieren (a) und aus dem Befehlsspeicher bzw. -Cache in den
Befehlspuffer zu übertragen (b). Am einfachsten ist es, wenn mit jedem Takt auf
eine andere Befehlsfolge zugegriffen wird. Aufgrund bestehender Abhängigkeiten
führt dies im zeitlichen Mittel dazu, dass Befehle aller auszuführenden Befehlsfol-
Search WWH ::




Custom Search