Was ist die Performance‐Ratio?
Wie eben gezeigt wäre für k Pipeline‐Stufen und eine große Zahl an ausgeführten Instruktionen die Performance‐Ratio gleich k, wenn jede Pipeline‐Stufe dieselbe Zeit beanspruchen würde.
Allerdings brauchen die einzelnen Stufen s1,...,sk unterschiedliche Zeiteinheiten: t 1 ,..., t k . Somit ist die Performance‐Ratio für n
Instruktionen:
Mit den Zeiten aus dem vorigen Beispiel für n also:
Die Performance‐Ratio wird durch die langsamste Stufe bestimmt.
Taktung
Annahme die einzelnen Abschnitte des MIPS‐Instruktionszyklus benötigen die bisher betrachteten Ausführungszeiten:
Instruction‐Fetch 200ps, Register‐Read 100ps, ALU‐Operation 200ps, Data‐Access 200ps, Register‐Write 100ps.
Wie hoch dürfen wir unseren Prozessor (ungefähr) Takten? Die längste Stufe benötigt 200ps. Also gilt für den Clock‐Cycle c:
Achtung: Maximal mögliche Taktung hängt aber auch von anderen
Faktoren ab. (Erinnerung: Power‐Wall).
Quiz
Welchen CPI‐Wert suggeriert das MIPS‐Pipelining‐Beispiel?
Achtung: der CPI‐Wert ist in der Regel höher, wie wir noch sehen.
Der Ansatz ist noch zu naiv
lw $1, 100($0) lw $2, 200($0)
lw $3, 300($0) lw $4, 400($0)
lw $5, 500($0) Beispiel:
IF ID EX MEM WB
Pipelining
Pipeline‐Register
Pipeline‐Stufen brauchen Pipeline‐Register
Pipeline‐Stufen brauchen Pipeline‐Register
Control
…
Änderung im Tafelbild
Write‐Register darf erst in der WB‐Stufe gesetzt werden.
RegDst steht mit der Entscheidung von Wird durchgereicht
Was speichern die Pipeline‐Register?
Wir schauen uns den Weg einer einzigen Instruktion durch die Pipeline an; und zwar den der Load‐Word‐Instruktion lw.
Auf dem Weg durch die Pipeline überlegen wir, was alles in den Pipeline‐Registern IF/ID, ID/EX, EX/MEM und MEM/WB stehen muss.
In der Darstellung verwenden wir folgende Konvention.
Bedeutet: Register/Speicher wird gelesen Bedeutet: Register/Speicher wird beschrieben
Was speichern die Pipeline‐Register?
IF/ID:
• Instruktion
• PC+4 (z.B. für beq)
Was speichern die Pipeline‐Register?
ID/EX:
• PC+4 (z.B. für beq)
• Inhalt Register 1
• Inhalt Register 2
• Sign‐ext. Immediate (z.B. für beq)
• Das Write‐Register
(wird im Letzten Zyklus von lw gebraucht)
Generell: Alles was in einem späteren Clock‐Cycle noch verwendet werden könnte, muss
durchgereicht werden.
Was speichern die Pipeline‐Register?
EX/MEM:
• Ergebnis von PC+4+
Offset (z.B. für beq)
• Zero der ALU (z.B. für beq)
• Result der ALU • Register 2 Daten (z.B. für sw)
• Das Write‐Register (wird im letzten Zyklus von lw gebraucht)
Was speichern die Pipeline‐Register?
MEM/WB:
• Das gelesene Datum aus dem
Speicher (wird dann von
lw im nächsten Zyklus ins Write‐Register geschrieben)
• Das Ergebnis der ALU‐Operation (für die
arithmetisch‐logischen Instruktionen)
Was speichern die Pipeline‐Register?
Für die letzte
Pipeline‐Stufe
braucht man kein
Pipeline‐Register.
Zusätzlich wird noch Control‐Info gespeichert
Control