Einzelnen Beitrag anzeigen

Benutzerbild von Nikolas
Nikolas

Registriert seit: 28. Jul 2003
1.528 Beiträge
 
Delphi 2005 Personal
 
#1

Technische Informatik: Datenabhängigkeit in der Pipeline

  Alt 16. Nov 2007, 10:57
Hallo Delphianer.
Ich habe ein kleines Problem mit einem Zettel. In der Aufgabe geht es um diesen Code:
Code:
S1: JMP S3       ; springe nach S3 
S2: LOAD 100 R4  ; Reg[4]:=D[100]
S3: LOAD 200 R1  ; Reg[1]:=D[200]
S4: LOAD 300 R2  ; Reg[2]:=D[300]
S5: MUL R1 R2 R1 ; Reg[1]:=Reg[1]·Reg[2]
S6: ADD R1 R2 R2 ; Reg[2]:=Reg[1]+Reg[2]
Annahme ist, dass es sich um eine fünfstufige Pipeline handelt (Befehl holen, Dekodieren, operanden holen, ausführen, abspeichern).
Im vierten Takt wird der JMP dann ausgeführt, der Befehlszähler also auf 3 gesetzt. Zu diesem Zeitpunkt wurden schon S2, S3 und S4 geholt.
Wenn ist jetzt richtig denke, müssten doch die Befehlereihenfolge dann 1,2,3,4,3,4,5,6 lauten, oder?
Also nichts mit 1,3,4,5,6 wie mein erster Ansatz war.

Jetzt muss ich auch noch die Datenabhängigkeiten angeben. Ein Beispiel wäre dafür
Zitat:
True Dependence(read after write): S2 liest ein Register, das in S1 beschrieben wird.
Ein Beispiel dafür müsste doch S5 und S3 sein. Operand holen und Operand speichern liegen zwei Takte enfternt, wenn also S5 Reg(1) ausliest, wird es gerade von S3 geschrieben.

Wenn das aber stimmt, habe ich ein Problem mit dem zweiten Aufgabenteil, da hier Pipelinekonflikte gefunden und mit NOPs geklärt werden müssen. Unter einer Datenabhängigkeit würde ich in diesem Fall eher verstehen, wenn ein späterer Befehl aus einem Register liest, dass irgendwann vor ihm beschrieben wurde um man z.B. dafür sorgen muss, dass jetzt kein ADD aus einem leeren Register liest . (Was passiert dann eigentlich? Ist dann da auch irgendwas zufälliges drin, wie bei nicht initialisierten Variablen?)

Ich habe mich leider erst letzte Woche entschieden, diese Vorlesung zu hören und war deswegen in keiner der Vorlesungen zu diesem Thema und muss den Stoff jetzt alleine lernen.

Nikolas
Erwarte das Beste und bereite dich auf das Schlimmste vor.
  Mit Zitat antworten Zitat