Dem Universalrechner auf der Spur Was ist eine Von-Neumann-Architektur?
Die Von-Neumann-Architektur (VNA) ist ein Referenzmodell für Computer, in dem ein gemeinsamer Speicher Programmbefehle und Daten enthält. Im Unterschied zur Parallelverarbeitung gehören Von-Neumann-Systeme zur Klasse der SISD-Architekturen (Single Instruction, Single Data).
Anbieter zum Thema

Die Computer aus der Pionierzeit waren monströse Gerätschaften. Der Electronic Numerical Integrator and Computer (ENIAC) von 1942 war der erste elektronische Turing-vollständige Universalrechner. Er bestand aus rund 18.000 Vakuumröhren und 1500 Relais, verbrauchte stolze 30 Tonnen auf die Waage und rund 140 Kilowatt an Strom.
Das revolutionäre Konzept
Zwei Jahre später präsentierte der ehemalige Mitarbeiter des ENIAC-Projektes John von Neumann ein Architektur-Konzept für einen Speicher-programmierten Universalrechner. Dabei fiel ihm auf, dass die Programmierung von Computern mit dieser Vielzahl von Schaltern und Kabeln viel zu langsam und unflexibel war.
Von Neumann entdeckte, dass sich Programme mit den jeweiligen Daten im Speicher des Computers in digitaler Form besser darstellen lassen. Damit löste er die schwerfällige, serielle Dezimalarithmetik des ENIAC durch eine parallele Binärarithmetik ab. Dies war in jener Zeit revolutionär, da alle zuvor entwickelten Rechner an ein festes Programm gebunden waren, die entweder hardwaremäßig verschaltet waren oder über Lochkarten eingelesen werden mussten.
Auf Basis dieser Von-Neumann-Architektur konnten nun Änderungen an Programmen sehr leicht, schnell und ohne Veränderungen an der Hardware ausgeführt werden. Das heißt, es war nun möglich, verschiedene Programme in kurzer Folge ablaufen zu lassen.
Allerdings wurden einige dieser Ideen schon 1936 von Konrad Zuse entwickelt, in zwei Patentschriften 1937 dokumentiert und größtenteils schon 1938 in der „Z1“-Maschine zum Einsatz gebracht. Zusammen mit Helmut Schreyer baute Zuse den Zuse „Z3“, der als weltweit erster Digitalrechner in die Geschichte einging. Es gilt als gesichert, dass von Neumann die Arbeiten Zuses nicht kannte, als er im Jahre 1945 sein Architektur-Konzept der Fachwelt vorstellte.
Anforderungen an das Architektur-Konzept
Bei einer von-Neumann-Architektur ist der Computer klar in verschiedene Bereiche aufgeteilt und räumlich zerlegt. Er besteht aus einem Rechenwerk, Speicherwerk, Leit- beziehungsweise Steuerwerk und einem Ein- und Ausgabewerk. Damit besteht ein solcher Rechner nicht aus einer einzigen Platine.
Das Rechenwerk übernimmt die Ausführung arithmetischer und logischer Operationen, das Speicherwerk die Speicherung von Programmen und Daten und das Leitwerk steuert die Programme. Für die Eingabe und Ausgabe von Daten ist jeweils das Eingabe- beziehungsweise Ausgabewerk zuständig.
Eine von-Neumann-Architektur muss aber noch weitere Eigenschaften erfüllen: Damit der Computer universell bleibt, darf seine Struktur nicht verändert werden. Zudem müssen die Daten sowie der Code der Programme „extern“ über Peripheriegeräte (zum Beispiel Maus, Tastatur oder Netzwerke wie das Internet) eingegeben werden.
Alle Programme und Daten sind in einem Speicher untergebracht. Somit ist hierzu keine räumliche Trennung vorgesehen. Dieser Speicher wird wiederum in verschiedene Einheiten mit eigener Adresse unterteilt. Die Zellen dieser Adressen müssen immer sofort erreichbar sein.
Abgrenzung zur Harvard-Architektur
Zu den wichtigsten Konkurrenzarchitekturen gehört die so genannte Harvard-Architektur. Sie ist durch eine physische Trennung von Befehls- und Datenspeicher charakterisiert. Auf beide wird über getrennte Busse zugegriffen.
Das heißt, bei der Harvard-Architektur können Befehle und Daten gleichzeitig geladen beziehungsweise geschrieben werden. Damit kann der sogenannte Von-Neumann-Flaschenhals vermieden werden. Ferner sorgt die physikalische Trennung von Daten und Programmen ebenso für eine Trennung der Zugriffsrechte. Der Speicher kann demnach sehr einfach geschützt werden.
Wurde für den Programmcode ein im Betrieb nur lesbarer Speicher verwendet, so ist das Überschreiben selbst durch Schadcodes ausgeschlossen. Andererseits kann der nicht benutzte Datenspeicher auch nicht als Programmspeicher genutzt werden – und umgekehrt. Die Folge: eine erhöhte Speicherfragmentierung.
(ID:46191698)