Information Technology Reference
In-Depth Information
Trotzdem ist es möglich, eine abhängige und unmittelbar folgende Operation verzö-
gerungsfrei zu starten, da bereits am Ende der ersten Fließbandstufe das untere
Ergebnisbit der Addition feststeht und für die nachfolgende Addition im ersten Takt-
schritt nur das untere Bit benötigt wird. Es lässt sich über die mit d markierte Ver-
bindung zurückführen. Das zweite Ergebnisbit wird etwas später über die mit e mar-
kierte Verbindung in die erste Fließbandstufe zurückgeführt - rechtzeitig, damit in
der zweiten Fließbandstufe das endgültige Ergebnis erzeugt werden kann. Neben
den versetzten Bypässen beachte man die über das erste Fließbandregister verzö-
gerte Steuerleitung zum Schalten des mit e markierten Bypasses. Die Verwendung
versetzter Bypässe ist z.B. in [152] beschrieben und wurde dort benutzt, um abhän-
gige Fließbandmultiplikationen verzögerungsfrei zu starten.
2.2.4 Kontrollflusskonflikte (predication, delay slot, branch prediction)
Der kontinuierliche Fluss der Befehle durch das Fließband kann nicht nur durch die
Datenflusskonflikte, sondern auch durch die sog. Kontrollflusskonflikte gestört wer-
den. Ein Kontrollflusskonflikt tritt z.B. auf, wenn sich bei Ausführung eines ver-
zweigenden Sprungbefehls bereits sequentiell nachfolgende Befehle im Fließband
befinden. Bild 2.24a zeigt eine Befehlsfolge, bei der es zu einem Kontrollflusskonf-
likt kommt, wenn der bedingte Sprungbefehl bne (branch not equal, Sprung bei
Ungleichheit der Operanden) zum Sprungziel verzweigt, wobei vorausgesetzt wer-
den soll, dass ein Prozessor mit vierstufigem Fließband zum Einsatz kommt, wie er
z.B. in Bild 2.20 dargestellt ist.
t 0
t 1
t 2
t 3
t 4
t 5
t 6
t 7
t
bne
r1, r2, L1
Fetch
bne
add
sub
and
Befehle annulliert
add
r3, r4, r5
Decode
bne
add ￿￿￿￿￿￿￿￿￿￿￿￿￿￿
￿￿￿￿￿￿￿￿￿￿￿￿￿￿
sub
and
sub
r6, r7, r8
Execute
bne
￿￿￿￿￿￿￿￿￿￿￿￿￿￿
￿￿￿￿￿￿￿￿￿￿￿￿￿￿
add
￿￿￿￿￿￿￿￿￿￿￿￿￿￿
￿￿￿￿￿￿￿￿￿￿￿￿￿￿
sub
and
:
￿￿￿￿￿￿￿￿￿￿￿￿￿￿
￿￿￿￿￿￿￿￿￿￿￿￿￿￿
￿￿￿￿￿￿￿￿￿￿￿￿￿￿
￿￿￿￿￿￿￿￿￿￿￿￿￿￿
add ￿￿￿￿￿￿￿￿￿￿￿￿￿￿
￿￿￿￿￿￿￿￿￿￿￿￿￿￿
L1 :
and
r9, r10, r11
Write Back
sub
and
a
b
Bild 2.24. Darstellung eines Kontrollflusskonflikts, a im Programm, b im zeitlichen Verlauf
Der zeitliche Verlauf der Befehlsverarbeitung lässt sich Bild 2.24b entnehmen. Der
bedingte Sprungbefehl wird in der Zeit zwischen t 0 und t 4 bearbeitet. In der Ausfüh-
rungsphase zwischen t 2 und t 3 werden zuerst die Operanden r1 und r2 verglichen.
Außerdem wird abhängig vom Ergebnis bereits vorbereitet, dass der Befehlszähler
zum Zeitpunkt t 3 zu inkrementieren (der Sprungbefehl verzweigt nicht) oder mit der
im Sprungbefehl codierten Zieladresse zu laden ist (der Sprungbefehl verzweigt).
Falls also der Sprungbefehl verzweigt, wie in Bild 2.24b angenommen, startet die
Bearbeitung des and-Befehls zum Zeitpunkt t 3 , drei Takte, nachdem der Sprungbe-
fehl auszuführen begonnen wurde. Die Bearbeitung des Sprungbefehls endet effek-
tiv zum Zeitpunkt t 3 . Insbesondere wird in der vierten Fließbandstufe zwischen t 3
und t 4 kein Ergebnis in den Registerspeicher geschrieben, was hier durch den
schraffierten, stark ausgezeichneten Kasten symbolisiert ist.
 
Search WWH ::




Custom Search