Pipelining
Bei Computern ist eine Pipeline eine kontinuierliche und teilweise überlappende Bewegung von Anweisungen an den Prozessor. Es sind die arithmetischen Schritte gemeint, die der Prozessor durchführt, um eine Anweisung auszuführen. Pipelining beschreibt die Benutzung einer sogenannten Pipeline, einer Verarbeitungseinheit in einem Prozessor. Ohne eine Pipeline bekommt der Prozessor des Computers die erste Anweisung aus dem Speicher, führt die entsprechende Operation durch und verarbeitet im Anschluss die nächste Anweisung aus dem Speicher. Das geht immer so weiter. Nun ist der Arbeitsspeicher eines Computers im Vergleich relativ langsam, und der arithmetische Teil des Prozessors ist im Leerlauf, während die Anweisungen geholt werden. Er muss immer auf die nächste Anweisung warten.
Beim Pipelining erlaubt es die Computer-Architektur, dass die nächsten Anweisungen bereits geholt werden, während der Prozessor noch arithmetische Operationen durchführt. Sie werden solange in einem Puffer gehalten, der sich nahe am Prozessor befindet, bis die jeweilige Operation durchgeführt werden kann. Die Anweisungen oder Instruktionen werden kontinuierlich oder am laufenden Band geholt. Das Resultat ist eine wachsende Anzahl an Instruktionen, die während einer bestimmten Zeit durchgeführt werden.
Pipelining lässt sich in gewisser Weise mit einem Fließband in einer Fabrik vergleichen, bei dem ein Produkt aus verschiedenen Teilen hergestellt wird. Die Einzelteile werden alle gleichzeitig gefertigt, aber die Montage erfolgt zu unterschiedlichen Zeiten. Auch wenn eine gewisse Sequenz notwendig ist, kann der komplette Prozess von den Operationen profitieren, die sich gleichzeitig durchführen lassen.
Das Pipelining von Computer-Prozessoren ist manchmal in eine Anweisungs-Pipeline und eine arithmetische Pipeline aufgeteilt. Die Anweisungs-Pipeline repräsentiert die Phasen, bei denen eine Anweisung durch den Prozessor bewegt wird. Dazu gehören auch die Abholung, das Puffern und die Ausführung. Die arithmetische Pipeline repräsentiert die Teile einer arithmetischen Operation, die sich aufteilen und überlappen lassen, während sie durchgeführt wird.
Pipelines und Pipelining gelten auch für die Speicherkontroller und beim Bewegen von Daten durch diverse Speicherorte.