Wikipedia · einfach zusammengefasst · Stand
Von-Neumann-Zyklus
Der Von-Neumann-Zyklus bezeichnet in der Technischen Informatik einen Prozess bei der Befehlsverarbeitung in einem klassischen Von-Neumann-Rechner.
Inhalt6 Abschnitte
Grundidee
Der Von-Neumann-Zyklus bezeichnet in der Technischen Informatik den Ablauf, mit dem ein klassischer Von-Neumann-Rechner Befehle verarbeitet. Ein Befehl wird aus dem Speicher geholt, verstanden, mit den nötigen Werten ausgeführt und das Ergebnis bei Bedarf gespeichert. Nach dem Ende eines Zyklus beginnt der Ablauf wieder von vorn, sodass der nächste Befehl bearbeitet wird.
Der Zyklus ist vor allem ein Modell für klassische Von-Neumann-Rechner. Moderne Mikroprozessoren arbeiten intern oft anders: Sie verwenden getrennte Caches für Daten und Befehle und können deshalb als modifizierte Harvard-Prozessoren oder als Fast-Von-Neumann-Prozessoren bezeichnet werden. Dadurch haben sie intern kaum noch etwas mit dem klassischen Von-Neumann-Zyklus gemeinsam.
Ablauf des Zyklus
Der Von-Neumann-Zyklus besteht aus fünf Teilschritten. Ein einzelner Teilschritt kann mehrere Takte dauern. Die Takte sind die zeitlichen Arbeitsschritte des Prozessors.
FETCH, der Befehlsabruf: Aus dem Speicher wird der nächste zu bearbeitende Befehl entsprechend der Adresse im Befehlszähler in das Befehlsregister geladen. Der Befehlszähler wird um die Länge des Befehls erhöht.
DECODE, die Dekodierung: Das Steuerwerk zerlegt den Befehl in Schaltinstruktionen für das Rechenwerk.
FETCH OPERANDS, der Operandenabruf: Aus dem Speicher werden die Operanden geholt. Operanden sind die Werte, die durch den Befehl verändert werden sollen oder die als Parameter verwendet werden.
EXECUTE, die Befehlsausführung: Das Rechenwerk führt eine arithmetische oder logische Operation aus. Bei Sprungbefehlen wird, wenn die Sprungbedingung erfüllt ist, an dieser Stelle der Befehlszähler verändert.
WRITE BACK, das Rückschreiben des Resultats: Wenn es notwendig ist, wird das Ergebnis der Berechnung in den Speicher zurückgeschrieben.
Unterschiede je nach Befehl
Nicht jede Befehlsart führt die letzten drei Phasen des Von-Neumann-Zyklus vollständig aus. Viele arithmetisch-logische Befehle aktueller CPUs schreiben ihr Ergebnis nicht direkt in den Hauptspeicher zurück. Das übernimmt später ein eigener Speicherbefehl. Bei einem solchen Speicherbefehl ist vor allem die Write-Back-Phase wichtig; der Operandenabruf fehlt, und die Execute-Phase ist nur schwach ausgeprägt.
Bei Mehradressmaschinen wird das Ergebnis dagegen normalerweise sofort in den Hauptspeicher geschrieben. Auch moderne Prozessoren besitzen Befehle, die ihr Ergebnis sofort wieder in den Hauptspeicher schreiben. Beispiele aus dem Artikel sind ein Inkrement-Befehl, der sich auf einen Speicherplatz bezieht, und der Exchange-Befehl. Dabei wird keine spezielle Hardware benötigt. Um eine zusätzliche Adressangabe im Befehl zu sparen, wird das Ergebnis auf denselben Speicherplatz eines Operanden zurückgeschrieben; dieser Vorgang heißt write back.
Leistungssteigerung moderner Prozessoren
Moderne Zentralprozessoren haben Taktfrequenzen von etwa 2 bis 6 GHz. Sie verarbeiten Befehle nicht mehr streng nacheinander wie im einfachen Modell, sondern führen mehrere Teilschritte parallel aus. Dieses gleichzeitige Bearbeiten verschiedener Phasen heißt Pipelining.
Außerdem wird ein Teilschritt im Allgemeinen pro Takt mehrfach ausgeführt. Bei der Befehlsausführung spricht man dabei von Ports. Als Beispiel nennt der Artikel die Haswell-CPU: Sie kann bis zu 8 neue Befehle pro Takt neu anfangen. Deren Ausführungszeit liegt meist zwischen 1 und 5 Takten, sodass sich bis zu 40 Maschinenanweisungen gleichzeitig in der EXECUTE-Phase befinden können.
Weitere leistungssteigernde Merkmale moderner Prozessoren sind SIMD-Befehle und mehrere Kerne. SIMD-Befehle sind Befehle, bei denen mehrere Datenwerte mit einer Anweisung verarbeitet werden können. Mehrere Kerne bedeuten, dass ein Prozessor mehrere Recheneinheiten besitzt, die Arbeit parallel übernehmen können.
Befehlsabruf im Detail
Beim FETCH-Schritt wird der nächste auszuführende Befehl aus RAM- oder ROM-Speicher in das Befehlsregister geladen. Das Befehlsregister gehört zusammen mit dem Steuerwerk und dem Rechenwerk, der arithmetisch-logischen Einheit oder ALU, zum Hauptprozessor, also zur CPU.
Anschließend wird der Befehlszähler erhöht. Der Befehlszähler, auch Instruction Pointer genannt, zeigt dadurch auf die nächste Speicherstelle. Diese Erhöhung ist bereits beim Befehlsabruf notwendig, damit ein Sprungbefehl mit Rückkehrabsicht, also ein Unterprogrammsprung, die Adresse des Folgebefehls vor dem Sprung sichern kann.
OpCode Prefetching
Viele Prozessoren können mehrere Befehle aus dem Speicher in einen Zwischenspeicher laden, während der aktuelle Befehl noch ausgeführt wird. Dieser Zwischenspeicher heißt Prefetch-Registerblock. Das Verfahren wird OpCode Prefetching genannt, auf Deutsch Operationscode-Vorabruf.
Der Vorteil ist eine deutliche Steigerung der Verarbeitungsgeschwindigkeit, weil die Wirkung des Von-Neumann-Flaschenhalses reduziert wird. Der Von-Neumann-Flaschenhals meint hier die Begrenzung, die entsteht, wenn Befehle und Daten über denselben Speicherweg bereitgestellt werden müssen. Der Nachteil ist, dass bei Programmverzweigungen bereits geladene, aber dann nicht mehr benötigte Befehle eventuell wieder verworfen werden müssen.
Lernvideos zu Von-Neumann-Zyklus
7:03
Der Prozessor - Komponenten eines Computers 2
Informatik - simpleclub · 250.730 Aufrufe
7:34
IFDO03 Was ist die Von-Neumann Architektur?
JavaWebAndMore · 82.352 Aufrufe
18:14
RISC und CISC Prozessoren --- Unterschiede und Entwicklung
Christian Bender · 11.632 Aufrufe
6:44
Harvard-Architektur: Überlappende Befehlsausführung
Frank Slomka · 1.277 Aufrufe