Information Technology Reference
In-Depth Information
cherebefehlen verwendeten Adressen zwischengespeichert. Stellt sich dabei heraus,
dass z.B. der Speicherebefehl in Zeile 3 und der Ladebefehl in Zeile 6 dieselbe
Adresse verwenden, die potentielle in Bild 3.45a mit a markierte Abhängigkeit also
echt ist, wird das Ergebnis des Ladebefehls verworfen. In Bild 3.45d ist dies erneut
durch ein Kreuz gekennzeichnet.
sequentielle
Befehlsfolge
ohne
Spekulation
Kontrollfluss-
spekulation
Datenfluss-
spekulation
Abhängigkeits-
spekulation
Operanden-
vorhersage
1
2
3
4
5
6
7
8
9
10
11
12
13
al
al
al
al
al
al
Ö
Ö
Ö
Ö
Ö
Ö
Ö
Ö
Ö
Ö
al
al
al
al
al
al
a
st
st
st
st
st
st
Ö
al
al
al
al
al
al
Ö
Ö
Ö
Ö
Ö
Ö
br
br
br
br
br
br
Ö
Ö
Ö
ld
al
ld
al
ld
ld
ld
ld
al
al
al
al
al
al
al
al
al
al
Ö
Ö
Ö
Ö
st
st
st
ld
st
ld
st
ld
st
ld
ld
ld
Ö
Ö
Ö
br
br
br
br
br
br
al
br
al
br
al
al
al
al
br
br
br
br
a
b
c
d
e
f
Bild 3.45. Superspekulative Verarbeitung einer sequentiellen Befehlsfolge. a Sequentielle Befehls-
folge. b Befehlsverarbeitung ohne Spekulation, c mit einer Kontollflussspekulation, d mit einer
Datenflussspekulation, e mit einer Abhängigkeitsspekulation, f mit einer Wertvorhersage der Ope-
randen
Das Annullieren eines Befehls sollte natürlich grundsätzlich vermieden werden, da
es (1.) zeitaufwendig ist und (2.) Ressourcen belegt, die in einem superspekulativen
Prozessor, der eine große Anzahl von Befehlen parallel ausführen kann, sinnvoller
nutzen lassen. Durch eine sog. Abhängigkeitsspekulation ( dependence speculation )
versucht man deshalb Datenabhängigkeiten zu detektieren, ohne dass hierzu die
beteiligten Ergebnis- bzw. Operandenadressen bekannt sein müssen [118]. Erkennt
eine entsprechende Einheit z.B. die mit a markierte potentielle Datenabhängigkeit
als echt, braucht der Ladebefehl in Zeile 6 des Bildes 3.45e weder gestartet noch
annulliert werden.
Die maximale Ausführungsgeschwindigkeit wird schließlich erreicht, indem man,
wie in Bild 3.45f dargestellt, auch echte Datenabhängigkeiten durch eine Wertvor-
hersage der nicht verfügbaren Operanden löst. Das unnötige Starten eines Befehls
lässt sich dabei durch Einbeziehung eines Zuverlässigkeitswerts vermeiden (siehe
Abschnitt 2.2.6). Trotzdem müssen Fehlspekulationen, wie z.B. beim arithmetisch-
logischen Befehl in Zeile 7, auch weiterhin toleriert werden. - Es sei angemerkt,
dass es nach [100] unter realistischen Bedingungen möglich ist, die Anzahl der pro
Takt parallel ausführbaren Befehle durch Superspekulation um einen Faktor größer
Drei zu verbessern.
Search WWH ::




Custom Search