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
Nehmen Sie an, dass sowohl das Lesen als auch das Schreiben der Register zwischen den einzelnen Pipeline-Stufen (d.h. der Puffer IF/ID, ID/EX usw.) eine zusätzliche Verzögerung von jeweils 15 ps erzeugt.
Wie groß ist die minimal zulässige Taktperiode der Pipeline-Architektur? Wie groß ist die minimal zulässige Taktperiode einer entsprechenden Einzeltakt-Architektur ohne Pipeline?