article

Die Pipeline-Architektur (oft auch kurz Pipelining genannt) beschreibt die Fähigkeit von Mikroprozessoren, die Abarbeitung von Maschinenbefehlen so zu parallelisieren, dass möglichst alle Funktionselemente des Mikroprozessors voll ausgelastet werden. Der Zweck jedes Pipelinings ist es, komplexe Befehle in einfachere Einzelaktionen zu zerlegen, die dann parallelisiert werden können. Die Teiloperationen werden taktsynchron von hintereinander geschalteten Verarbeitungseinheiten bearbeitet.

Die einzelnen Einheiten einer Pipeline nennt man Pipeline-Stufen, Pipeline-Stages oder auch Pipeline-Segmente. Diese Stufen werden durch getaktete Pipeline-Register (auf Englisch latches) getrennt.

Taktung


Je einfacher eine einzelne Stufe aufgebaut ist, desto höher ist die Frequenz mit der sie betrieben werden kann. In einer modernen CPU mit einem Kerntakt im Gigahertz Bereich (~ Milliarden Instruktionen pro Sekunde) kann die Befehlspipeline über 20 Stufen lang sein. Der Kerntakt ist die Zeit, die ein Befehl braucht, um eine Stufe der Pipeline durchzuwandern. In einer k-stufigen Pipeline wird ein Befehl also in k Takten von k Stufen bearbeitet. Da in jedem Takt ein neuer Befehl geladen wird, verläßt im Idealfall auch ein Befehl pro Takt die Pipeline.

Konflikte


Ist es für die Bearbeitung eines Befehls in einer Stufe der Pipeline notwendig, dass ein Befehl, der sich weiter vorne in der Pipeline befindet, zuerst abgearbeitet wird, so spricht man von Abhängigkeiten. Diese können zu Konflikten (engl. Hazards) führen. Man unterscheidet zwischen:
  • Betriebsmittelkonflikten, wenn eine Stufe der Pipeline Zugriff auf eine Ressource benötigt, die bereits von einer anderen Stufe belegt ist;
  • Datenkonflikten, falls ein Befehl Daten lesen/schreiben will, die zuvor von einem anderen Befehl gelesen/geschrieben werden müssen;
  • Kontrollflusskonflikten, wenn die Pipeline abwarten muss, ob ein bedingter Sprung ausgeführt wird oder nicht.

Pipelining und Sprungvorhersagen


Architekturen mit besonders langer Pipeline, wie etwa der Intel Pentium 4 oder der IBM Power5, besitzen deshalb sehr ausgeklügelte Techniken zur Sprungvorhersage (engl. Branch-Prediction), so dass die CPU nur in weniger als einem Prozent der stattfindenden Sprünge den Inhalt der Befehlspipeline verwerfen muss.

Vorteile und Nachteile


Der Vorteil langer Pipelines besteht in der starken Steigerung der Verarbeitungsgeschwindigkeit. Der Nachteil besteht gerade darin, dass sich sehr viele Befehle gleichzeitig in Bearbeitung befinden. Im Falle eines Pipeline-Flushs müssen alle Befehle in der Pipeline verworfen werden und die Pipeline anschließend neu gefüllt werden. Dies bedarf des Nachladens von Befehlen aus dem Arbeitsspeicher oder dem Befehlscaches der CPU, so dass sich hohe Latenzzeiten ergeben, in denen der Prozessor untätig ist.

Beispiel


In modernen Systemen kommen verschiedene Pipelines zum Einsatz.

Beispiel einer 4-Stufige Befehlspipeline: (A) Befehlscode laden (IF - instruction Fetch) (B) Instruktion dekodieren und Laden der Daten (ID - Instruction Decoding) (C) Befehl ausführen (EX - Execution) (D) Ergebnisse zurückgeben (WB - Write Back) Befehlspipeline.PNG

  • In der Befehlbereitsstellungsphase (Instruction Fetch) wird der Befehl, der durch den Befehlszähler adressiert ist, aus dem Arbeitsspeicher geladen. Der Befehlszähler wird anschließend hochgezählt.

  • In der Dekodier- und Ladephase (ID - Instruction Decoding und OF - Operand Fetch) wird der geladene Befehl dekodiert (1. Takthälfte) und die notwendigen Daten aus dem Arbeitsspeicher und dem Registersatz geladen (2. Takthälfte).

  • In der Ausführungsphase (EX - Execution) wird der dekodierte Befehl ausgeführt. Das Ergebnis wird durch den Pipeline-latch gepuffert.

  • In der Resultatspeicherphase (WB - Write Back) wird das Ergebnis in den Arbeitsspeicher oder in den Registersatz zurückgeschrieben.

Siehe auch


Weblinks


Rechnerarchitektur

Pipeline (computer) | Segmentación | Pipeline (informatique) | Segmentación | パイプライン処理 | Pipeline

 

This article is licensed under the GNU Free Documentation License. It uses material from the "Pipeline-Architektur".

Home Pageartsbusinesscomputersgameshealthhospitalshomekids & teensnewsphysiciansrecreationreferenceregionalscienceshoppingsocietysportsworld