Ausgangspunkt des Pipelining ist die Aufspaltung einer Instruktion in Stufen. Das Pipelining setzt voraus, dass für die zugrundeliegende Befehlsarchitektur eine Folge von Teilschritten gefunden wird, die für alle Befehle gleich ist. Für die folgende Aufgabe wird angenommen, dass alle Befehle in den folgenden fünf Stufen bearbeitet werden:
1. Instruction Fetch (IF): Befehl holen
2. Instruction Decode (ID): Befehl dekodieren und gleichzeitig die Quelloperanden aus dem
Registerblock lesen
3. Execute (EX): Führe eine arithmetische bzw. logische Operation mit den Operanden aus
4. Memory Access (MEM): Daten holen (LOAD) oder Speichern (STORE)
5. Write Back (WB): Ergebnis in einem prozessorinternen Register speichern
In der unten stehenden Tabelle sind die Rechenzeiten für die einzelnen Stufen der Pipeline angegeben.
IF ID EX MEM WB
110 ps 130 ps 90 ps 120 ps 70 ps
Wie lange braucht die Pipeline-Architektur, um ein Programm mit 50 Instruktionen ohne Abhängigkeiten und Sprünge auszuführen? Wie groß ist der Speed-up im Vergleich zur Ausführung auf einer Einzeltakt-Architektur?