15 Jahre TecChannel - der beliebteste Artikel 1999

So funktioniert ein Prozessor

Pipeline-Verfahren

Bis jetzt sind wir davon ausgegangen, dass die CPU die Befehle nach dem klassischen Von-Neumann-Prinzip nacheinander verarbeitet. Jeder Befehl wird innerhalb einer bestimmten Zeit (Taktzyklus) erledigt, dann ist der Nächste dran.

Wenn man der BIU erlaubt, schon Befehle aus dem Speicher zu holen während die CU gerade einen analysiert, hat man zwei Arbeitsschritte parallelisiert. Es sind also zwei Befehle gleichzeitig in Teilbearbeitung. Überträgt man das Prinzip auf alle beteiligten Funktionseinheiten, erhöht sich die Zahl der Teilbearbeitungen weiter. Dieses Pipeline-Prinzip verarbeitet aber die eingehenden Befehle und Daten immer noch Schritt für Schritt.

Im Bild ist zu erkennen, was eine Pipeline bringt. Durch die überlappende Bearbeitung mehrerer Befehle erledigt die Hardware in der gleichen Zeit mehr Kommandos als ohne Pipeline. Die ersten beiden Befehle lassen sich in unserem Beispiel in jeweils nur fünf Takten bearbeiten. Beim dritten Befehl haben wir einfach festgelegt, dass er zwei Taktzyklen in der Ausführungseinheit benötigen soll. Die Wirkung auf alle nachfolgenden Kommandos ist deutlich zu sehen, denn in dieser Zeit stockt der Ablauf in der gesamten Pipeline.

Das gezeigte Beispiel ist immer noch nahe am Idealfall. Sprungbefehle, die den nachfolgenden Programmcode in der Pipeline nicht als Ziel haben, sind nicht eingezeichnet. In diesem Fall müsste die Pipeline im ungünstigsten Fall vollständig (also alle Funktionseinheiten) neu geladen werden. Auch wenn ein nachfolgender Befehl das Ergebnis eines seiner noch in Bearbeitung befindlichen Vorgänger benötigt, stockt das Fließband bis dieser vollständig abgearbeitet ist.