Pipeline
Eine Pipeline bei der Computerverarbeitung ist eine Technik, mit der mehrere Anweisungen gleichzeitig ausgeführt werden. Computer-Prozessoren können Millionen von Anweisungen pro Sekunde verarbeiten. Jede Anweisung durchläuft mehrere Stufen, die jeweils von einem anderen Teil des Prozessors verarbeitet werden. Mit jedem Taktzyklus bewegt sich eine Anweisung von einer Stufe zur nächsten. Während eine Anweisung eine Stufe durchläuft, durchlaufen andere Anweisungen gleichzeitig andere Stufen.
Eine typische CPU-Pipeline umfasst fünf Stufen — Abrufen der Anweisung, Dekodieren der Anweisung, Ausführen, Zugriff auf den Speicher und Zurückschreiben dies kann jedoch je nach (Architektur variieren). Ohne Pipelining könnte ein Prozessor immer nur eine Anweisung gleichzeitig verarbeiten. Da jede Anweisung mehrere Taktzyklen benötigt, um alle Stufen zu durchlaufen, würde der größte Teil des Prozessors untätig bleiben, während eine einzelne Anweisung von einer Stufe zur nächsten bewegt wird. Bei der Verarbeitung ohne Pipeline dauert die Verarbeitung einer einzelnen Anweisung nicht länger, aber der Prozessor kann weniger Anweisungen pro Sekunde verarbeiten.
Das Pipelining von Anweisungen funktioniert ähnlich wie ein Fließband in der Automobilproduktion, bei dem jede Station eine einzelne Aufgabe übernimmt — Sitze einbauen, den Motor montieren, die Räder anbringen usw. Wenn sich immer nur ein Auto gleichzeitig auf dem Fließband bewegt, stehen die meisten dieser Stationen still, und die Fabrik kann an einem Tag nicht viele Autos herstellen. Wenn sich jedoch Dutzende Fahrzeuge gleichzeitig auf dem Fließband befinden — genug, um jede Station beschäftigt zu halten — werden an einem einzigen Tag deutlich mehr Autos fertiggestellt, obwohl jedes einzelne weiterhin genauso lange dauert.
Grafik-Pipelines von GPUs
Zusätzlich zu CPUs verwenden auch Computer-GPUs Pipelining, um Anweisungen zu verarbeiten. Die Grafik-Pipeline einer GPU ist komplexer und umfasst mehrere spezialisierte Verarbeitungskomponenten, die mathematische Funktionen ausführen, um 3D-Szenen und Objekte zu rendern, die auf einem Bildschirm angezeigt werden.
GPU-Architekturen unterscheiden sich von Generation zu Generation deutlich, aber die meisten Grafik-Pipelines folgen einem ähnlichen Muster. Eine einfache Grafik-Pipeline beginnt damit, die 3D-Koordinaten von Scheitelpunkten (den Ecken der Dreiecke, aus denen jedes 3D-Objekt besteht) in 2D-Koordinaten auf der flachen Ebene eines Bildschirms umzuwandeln. Sie wandelt diese Koordinaten in Drahtgittermodelle um und füllt dann die Geometrie zwischen diesen Scheitelpunkten aus, um Formen zu erzeugen. Anschließend rasterisiert sie diese Formen zu Pixeln, indem sie Texturabbildungen, Beleuchtung und andere Shader-Effekte hinzufügt. Verdeckte Pixel und andere Informationen, die für die „Kamera“ nicht sichtbar sind, werden verworfen. Danach wird das endgültige Bild im Bildpuffer gespeichert und auf dem Bildschirm angezeigt.
Testen Sie Ihr Wissen