Was ist eine Anweisungspipeline?

Jeder Prozessorbefehl hat mehrere Stufen zu seiner Operation. Jede dieser Phasen benötigt einen einzigen CPU-Zyklus, um abgeschlossen zu werden. Diese Phasen sind Befehlsabruf, Befehlsdecodierung, Ausführung, Speicherzugriff und Rückschreiben. Diese erhalten jeweils die Anweisung, die abgeschlossen werden muss, trennen die Operation von den Werten, auf denen operiert wird, führen den Prozess aus, öffnen das Register, in das das Ergebnis geschrieben wird, und schreiben das Ergebnis in das geöffnete Register.

Historische In-Order-Prozessoren

In frühen Computern verwendete die CPU keine Befehlspipeline. In diesen CPUs musste jede Einzelzyklusoperation für jeden Befehl ausgeführt werden. Dies bedeutete, dass es fünf Taktzyklen dauerte, bis der durchschnittliche Befehl vollständig verarbeitet war, bevor der nächste gestartet werden konnte. Einige Operationen müssen möglicherweise kein Ergebnis in ein Register schreiben, was bedeutet, dass die Speicherzugriffs- und Rückschreibphasen übersprungen werden können.

Was ist eine Anweisungspipeline?

In einem subskalaren Prozessor ohne Pipeline wird jeder Teil jeder Anweisung der Reihe nach ausgeführt.

Es lauert jedoch ein Problem, wenn Sie eine vollständige Anweisung der Reihe nach ausführen, bevor Sie mit der nächsten Anweisung fortfahren können. Das Problem ist der Cache-Miss. Die CPU speichert Daten, die sie aktiv verarbeitet, in dem Register. Darauf kann mit einer Ein-Zyklus-Latenz zugegriffen werden. Das Problem ist, dass das Register winzig ist, weil es in den Prozessorkern eingebaut ist. Die CPU muss zum größeren, aber langsameren L1-Cache wechseln, wenn die Daten noch nicht geladen wurden. Wenn es nicht da ist, muss es wieder in den größeren und langsameren L2-Cache gehen. Der nächste Schritt ist der L3-Cache; Die letzte Option ist der System-RAM. Jede dieser Optionen benötigt mehr und mehr CPU-Zyklen zur Überprüfung.

Nun kann diese zusätzliche zusätzliche Latenzzeit ein großes Problem in einem System sein, das jede Anweisung der Reihe nach vollständig abschließen muss, bevor die nächste Anweisung gestartet wird. Was ein Prozessor mit 5 Zyklen pro Befehl war, kann plötzlich für Dutzende oder Hunderte von Taktzyklen an einem Befehl hängen bleiben. Währenddessen kann auf dem Computer nichts weiter passieren. Technisch kann dies etwas gemildert werden, indem man zwei unabhängige Kerne hat. Nichts hindert sie jedoch daran, dasselbe zu tun, möglicherweise gleichzeitig. Wenn Sie also die Multi-Core-Route hinuntergehen, wird dies nicht behoben.

Die klassische RISC-Pipeline

RISC steht für Computer mit reduziertem Befehlssatz . Es handelt sich um einen Stil des Prozessordesigns, der die Leistung optimiert, indem er die Dekodierung jeder Anweisung erleichtert. Dies steht im Vergleich zu CISC oder Complex Instruction Set Computer, der komplexere Befehlssätze entwirft, sodass weniger Befehle erforderlich sind, um dieselben Aufgaben auszuführen.

Das klassische RISC-Design enthält eine Befehlspipeline. Anstatt irgendeine der fünf Anweisungsstufen in einem gegebenen Zyklus auszuführen, ermöglicht die Pipeline die Ausführung aller fünf Stufen. Natürlich können Sie nicht alle fünf Stufen einer Anweisung in einem Zyklus ausführen. Sie können jedoch fünf aufeinanderfolgende Anweisungen mit einem Versatz von jeweils einer Stufe aneinanderreihen. Auf diese Weise kann in jedem Taktzyklus ein neuer Befehl ausgeführt werden. Bietet eine potenzielle 5-fache Leistungssteigerung bei einem relativ geringen Anstieg der Kernkomplexität.

Was ist eine Anweisungspipeline?

In einem Skalar-Pipeline-Prozessor kann jede Stufe einer Befehlsausführung einmal pro Taktzyklus durchgeführt werden. Dies ermöglicht einen maximalen Durchsatz von einem abgeschlossenen Befehl pro Zyklus.

Prozessoren ohne Pipeline können immer nur subskalar sein, da sie keinen vollständigen Befehl pro Zyklus ausführen können. Mit dieser primären fünfstufigen Pipeline können Sie eine skalare CPU erstellen, die eine Anweisung für jeden Prozess ausführen kann. Indem Sie noch weitreichendere Pipelines erstellen, können Sie superskalare CPUs herstellen, die mehr als eine Anweisung pro Taktzyklus ausführen können. Natürlich gibt es immer noch mögliche Probleme.

Immer noch sequentiell

Nichts davon löst das Problem, viele Zyklen auf eine Antwort zu warten, wenn die verschiedenen Ebenen von Cache und RAM abgefragt werden müssen. Es führt auch ein neues Problem ein. Was ist, wenn sich eine Anweisung auf die Ausgabe der vorherigen Anweisung stützt? Diese Probleme werden selbstständig mit einem fortschrittlichen Dispatcher gelöst. Es plant die Ausführungsreihenfolge sorgfältig, sodass keine Anweisungen, die sich auf die Ausgabe eines anderen stützen, zu nahe beieinander liegen. Es handhabt auch Cache-Fehler, indem es eine Anweisung parkt und sie in der Pipeline durch andere Anweisungen ersetzt, die zur Ausführung bereit sind und ihr Ergebnis nicht benötigen, und die Anweisung wieder aufnimmt, wenn sie bereit ist.

Diese Lösungen können auf Prozessoren ohne Pipeline funktionieren, sind jedoch für einen superskalaren Prozessor erforderlich, der mehr als eine Anweisung pro Takt ausführt. Ein Verzweigungsprädiktor ist ebenfalls sehr nützlich, da er versuchen kann, das Ergebnis einer Anweisung mit mehr als einem möglichen Ergebnis vorherzusagen, und weiterhin davon ausgeht, dass es korrekt ist, sofern nicht das Gegenteil bewiesen wird.

Abschluss

Eine Pipeline ermöglicht die Verwendung aller unterschiedlichen Fähigkeiten des Prozessors in jedem Zyklus. Dies geschieht durch gleichzeitiges Ausführen verschiedener Stufen verschiedener Anweisungen. Dies fügt dem CPU-Design nicht einmal viel Komplexität hinzu. Es ebnet auch den Weg, um zuzulassen, dass mehr als eine Anweisung eine einzelne Stufe pro Zyklus durchführt.



So klonen Sie eine Festplatte

So klonen Sie eine Festplatte

Im modernen digitalen Zeitalter, in dem Daten ein wertvolles Gut sind, kann das Klonen einer Festplatte unter Windows für viele ein entscheidender Prozess sein. Dieser umfassende Leitfaden

Wie behebt man, dass der Treiber WUDFRd unter Windows 10 nicht geladen werden konnte?

Wie behebt man, dass der Treiber WUDFRd unter Windows 10 nicht geladen werden konnte?

Wird beim Booten Ihres Computers die Fehlermeldung angezeigt, dass der Treiber WUDFRd nicht auf Ihren Computer geladen werden konnte?

So beheben Sie den NVIDIA GeForce Experience-Fehlercode 0x0003

So beheben Sie den NVIDIA GeForce Experience-Fehlercode 0x0003

Tritt auf Ihrem Desktop der NVIDIA GeForce-Fehlercode 0x0003 auf? Wenn ja, lesen Sie den Blog, um herauszufinden, wie Sie diesen Fehler schnell und einfach beheben können.

Warum lässt sich mein Chromebook nicht einschalten?

Warum lässt sich mein Chromebook nicht einschalten?

Erhalten Sie Antworten auf die Frage: Warum lässt sich mein Chromebook nicht einschalten? In diesem hilfreichen Leitfaden für Chromebook-Benutzer.

So ändern Sie das Zifferblatt einer Fitbit Versa 4

So ändern Sie das Zifferblatt einer Fitbit Versa 4

Ändere das Zifferblatt deiner Fitbit Versa 4, um deiner Uhr jeden Tag kostenlos ein anderes Aussehen zu verleihen. Sehen Sie, wie schnell und einfach es geht.

Roomba stoppt, bleibt hängen und dreht sich um – Reparieren

Roomba stoppt, bleibt hängen und dreht sich um – Reparieren

Beheben Sie ein Problem, bei dem Ihr Roomba-Roboterstaubsauger anhält, hängenbleibt und sich ständig umdreht.

So ändern Sie die Grafikeinstellungen auf Steam Deck

So ändern Sie die Grafikeinstellungen auf Steam Deck

Das Steam Deck bietet ein robustes und vielseitiges Spielerlebnis direkt auf Knopfdruck. Allerdings, um Ihr Spiel zu optimieren und das bestmögliche zu gewährleisten

Was ist isolationsbasierte Sicherheit?

Was ist isolationsbasierte Sicherheit?

Wir werden uns mit einem Thema befassen, das in der Welt der Cybersicherheit immer wichtiger wird: Isolationsbasierte Sicherheit. Dieser Ansatz zu

How to Use Auto Clicker for Chromebook

How to Use Auto Clicker for Chromebook

Today, were going to delve into a tool that can automate repetitive clicking tasks on your Chromebook: the Auto Clicker. This tool can save you time and

Was ist SMPS?

Was ist SMPS?

Erfahren Sie, was SMPS ist und welche Bedeutung die verschiedenen Effizienzbewertungen haben, bevor Sie sich für ein SMPS für Ihren Computer entscheiden.