Zum Inhalt springen

Von-Neumann-Zyklus

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 11. Dezember 2007 um 19:37 Uhr durch 86.103.193.48 (Diskussion). Sie kann sich erheblich von der aktuellen Version unterscheiden.

Allgemein

Der Prozess der Befehlsverarbeitung bei Von-Neumann-Rechnern wird Von-Neumann-Zyklus genannt und besteht aus folgenden 5 nacheinander ablaufenden Teilschritten.

  1. FETCH
  2. DECODE
  3. FETCH OPERANDS
  4. EXECUTE
  5. UPDATE INSTRUCTION POINTER

Ein Teilschritt kann mehrere Takte dauern. Moderne Zentralprozessoren führen heutzutage in einer Sekunde bis zu 4,8 Milliarden Takte aus, das sind 4,8 GHz (Stand: 1/2005). Pro Takt werden bei Hochleistungsprozessoren oft mehrere der oben genannten Teilschritte parallel (gleichzeitig) durch so genanntes Pipelining ausgeführt, was in einem deutlichen Geschwindigkeits-Gewinn resultiert.

Die Teilschritte

FETCH

In das Befehls-Register, das zusammen mit Steuerwerk und Rechenwerk (ALU: Arithmetisch-logische Einheit) die CPU darstellt, wird aus RAM- oder ROM-Speicher der nächste zu bearbeitende Befehl geladen.

Bei modernen Prozessoren können mehrere Befehle aus dem Speicher in einen Zwischenspeicher (Prefetch-Registerblock) geladen werden, während der aktuelle Befehl noch decodiert wird. (OpCode Prefetching)

  1. Vorteil: Deutliche Steigerung der Verarbeitungsgeschwindigkeit.
  2. Nachteil: Bei Programmverzweigungen muss der Befehl evtl. wieder entfernt werden.

DECODE

Der Befehl wird durch das Steuerwerk in Schaltinstruktionen für das Rechenwerk aufgelöst (übersetzt).

FETCH OPERANDS

Aus RAM oder ROM werden nun die Operanden geholt: die Werte, die durch den Befehl verändert werden sollen bzw. die als Parameter verwendet werden.


EXECUTE

Die Operation wird vom Rechenwerk ausgeführt. An dieser Stelle wird, so vom Programm gewünscht, auch der Befehlszähler verändert (Sprungbefehl).

Jetzt kann der Zyklus wieder von vorn beginnen.

Von-Neumann-Zyklus
Von-Neumann-Zyklus

UPDATE INSTRUCTION POINTER

Der Befehlszähler wird erhöht. Das geschieht parallel zum DECODE und FETCH OPERANDS. Beim EXECUTE kann der Befehlszähler wieder verändert werden (Sprungbefehl).


  • μRISCy - RISC-Simulationsrechner für Vertiefungsübungen