Von-Neumann-Computer

Die Von-Neumann-Architektur (auch Von-Neumann-Rechner), benannt nach John von Neumann, ist ein Schaltungskonzept zur Realisierung universeller Computer, welches folgende Komponenten enthält:

Durch diesen Aufbau ist damit die Möglichkeit gegeben, dass der Computer unter Kontrolle eines Programms und unter Zuhilfenahme weiterer Daten ein Programm selbst erstellt oder modifiziert und anschließend ausführt.

Die Mehrzahl der heute gebräuchlichen Computer basiert auf dieser Architektur. Beispielsweise teilen sich Programm und Daten nicht mehr einen Hauptspeicher, es werden stattdessen Programm und Daten oft in unterschiedlichen Zwischenspeichern (Caches) gehalten, deutliche Modifikationen der ursprünglichen Architektur und Anleihen von der Harvardarchitektur.

Der Prozess der Befehlsverarbeitung erfolgt in einem Von-Neumann-Rechner mittels so genannter Von-Neumann-Zyklen.

Was ist ein Taktzyklus?

Die Interpretation und Ausführung eines Befehles erfolgt in vier Phasen.

  1. Holen
  2. Dekodieren (inklusive Operandenadressen berechnen)
  3. Daten holen (bzw. Operanden)
  4. Ausführen

Jede der vier Phasen wird in eine Anzahl von Schnittstellen bzw. Zyklen eingeteilt. Ein Taktzyklus ist die kleinstmöglich verarbeitbare Einheit. Somit benötigt ein Befehl zur Ausführung im Allgemeinen mehr als einen Taktzyklus.

Von-Neumann-Rechner gehören nach dem Klassifizierungsschema von M.J. Flynn zur Klasse der SISD-Architekturen (Single Instruction, Single Data), die keine Parallelverarbeitung vorsieht.

Praktisch alle Ideen der so genannten Von-Neumann-Architektur waren schon lange vorher 1936 von Konrad Zuse ausgearbeitet, in zwei Patentschriften von 1937 dokumentiert und größtenteils bereits 1938 in der Z1 realisiert worden. Es ist aber wenig wahrscheinlich, dass von Neumann Zuses Arbeiten kannte, als er 1946 seine Architektur vorstellte.(Quelle: Wikipedi)

Was heißt Havard-Architektur?

Daten- und Befehlsspeicher sind getrennt. So ist es möglich Daten und Befehle Zeitgleich aus dem Speicher zu holen. Da dies aber einen extrem hohen Aufwand bedeutet, wird dies nur bei Echtzeitanwendungen implementiert.