Von-Neumann-Architektur
aus Wikipedia, der freien Enzyklopädie
Die Von-Neumann-Architektur ist ein Referenzmodell für Computer, wonach ein gemeinsamer Speicher sowohl Programmbefehle als auch Daten hält. Von-Neumann-Systeme gehören nach dem Klassifizierungsschema von Michael J. Flynn zur Klasse der SISD-Architekturen (Single Instruction, Single Data), im Unterschied zu der Parallelverarbeitung.
Die von-Neumann-Architektur bildet die Grundlage für die Arbeitsweise der meisten heute bekannten Computer. Sie ist benannt nach dem ungarischen, später in den USA tätigen Mathematiker John von Neumann, dessen wesentliche Arbeit zum Thema 1945 veröffentlicht wurde.
Inhaltsverzeichnis |
[Bearbeiten] Entwicklung
Das Konzept, das von Neumann 1945 in dem zunächst unveröffentlichten Papier “First Draft of a Report on the EDVAC” im Rahmen des Baus der EDVAC beschrieb, war zur Zeit seiner Entwicklung revolutionär. Zuvor entwickelte Rechner waren im allgemeinen an ein festes Programm gebunden, das entweder hardwaremäßig verschaltet war oder über Lochkarten eingelesen werden musste. Mittels der Von-Neumann-Architektur war es nun möglich, Änderungen an Programmen sehr schnell durchzuführen oder in kurzer Folge ganz verschiedene Programme ablaufen zu lassen, ohne Veränderungen an der Hardware vornehmen zu müssen.
Viele Ideen der von-Neumann-Architektur waren schon vorher 1936 von Konrad Zuse ausgearbeitet, in zwei Patentschriften von 1937 dokumentiert und größtenteils bereits 1938 in der Z1 Maschine mechanisch realisiert worden. Es gilt aber als unwahrscheinlich, dass von Neumann Zuses Arbeiten kannte, als er 1945 seine Architektur vorstellte.
Die meisten der heute gebräuchlichen Computer basieren auf dem Grundprinzip der Von-Neumann-Architektur. Die einfache Einteilung der verschiedenen Schaltwerke hat im Laufe der Zeit zahlreiche Veränderungen erfahren.
[Bearbeiten] Konzept
Die von-Neumann-Architektur ist ein Schaltungskonzept zur Realisierung universeller Rechner (Von-Neumann-Rechner, VNR). Sie realisiert alle Komponenten einer Turingmaschine. Dabei ermöglicht ihre systematische Aufteilung in die entsprechenden Funktionsgruppen jedoch die Nutzung spezialisierter binärer Schaltwerke und damit eine effizientere Strukturierung der Operationen.
Im Prinzip bleibt es aber dabei, dass alles, was mit einer Turingmaschine berechenbar ist, auch auf einer Maschine mit Von-Neumann-Architektur berechenbar ist und umgekehrt. Gleiches gilt für alle höheren Programmiersprachen, die durch einen Compiler oder Interpreter auf die binäre Repräsentation abgebildet werden. Sie vereinfachen zwar das Handling der Operationen, bieten jedoch keine Erweiterung der von der Turingmaschine vorgegebenen Semantik. Dies wird daran deutlich, dass die Übersetzung aus einer höheren Programmiersprache in die binäre Repräsentation wiederum von einem binären Programm ohne Anwenderinteraktion vorgenommen wird.
[Bearbeiten] Komponenten
Ein von-Neumann-Rechner beruht auf folgenden Komponenten, die bis heute in Computern verwendet werden:
- ALU (Arithmetic Logic Unit) - Rechenwerk, auch Prozessor oder Zentraleinheit genannt, führt Rechenoperationen und logische Verknüpfungen durch.
- Control Unit - Steuerwerk oder Leitwerk, interpretiert die Anweisungen eines Programmes und steuert die Befehlsabfolge.
- Memory - Speicherwerk speichert sowohl Programme als auch Daten, welche für das Rechenwerk zugänglich sind.
- I/O Unit - Eingabe-/Ausgabewerk steuert die Ein- und Ausgabe von Daten, zum Anwender (Tastatur, Bildschirm) oder zu anderen Systemen (Schnitstellen).
- Bus-System verbindet die Komponenten des Rechners untereinander.
[Bearbeiten] Programmablauf
Diese Komponenten arbeiten Programmbefehle nach folgenden Regeln ab.
- Prinzipien des gespeicherten Programmes:
- Befehle sind in einem RAM-Speicher mit linearem (1-dimensionalem) Adressraum abgelegt.
- Ein Befehls-Adressregister, genannt Befehlszähler oder Programmzähler, zeigt auf den momentan auszuführenden Befehl.
- Befehle können geändert werden wie Daten.
- Prinzipien der sequentiellen Programm-Ausführung (s. a. Von-Neumann-Zyklus):
- Befehle werden aus einer Zelle des Speichers gelesen und dann ausgeführt.
- Normalerweise wird dann der Inhalt des Befehlszählers inkrementiert (d. h. um den Wert Eins erhöht).
- Es gibt einen oder mehrere Sprung-Befehle, die dann den Inhalt des Befehlszählers um einen anderen Wert als +1 verändern.
- Es gibt einen oder mehrere Verzweigungs-Befehle, die in Abhängigkeit vom Wert eines Entscheidungs-Bit den Befehlszähler inkrementieren oder einen Sprung-Befehl ausführen.
[Bearbeiten] Weiterentwicklungen
[Bearbeiten] Von-Neumann-Flaschenhals
Der Von-Neumann-Flaschenhals der Von-Neumann-Architektur bezeichnet den Sachverhalt, dass das Verbindungssystem zum Engpass zwischen dem Prozessor und dem Speicher wird. Bei frühen Computern stellte die CPU die langsamste Einheit des Rechners dar. Die ebenfalls langsamen Busse waren zu dieser Zeit ausreichend, d. h. die Datenbereitstellung erfolgte schneller als die Verarbeitung durch die CPU. Seit Mitte der 90er Jahre des 20. Jahrhunderts steigen jedoch die Taktraten der CPUs wesentlich schneller als die der verwendeten Speicherbausteine (RAM) und der übertragenden Busse, so dass die Datenübertragung und -bereitstellung mehr Zeit beansprucht als die Datenverarbeitung durch die CPU.
Hauptspeicher und Bussystem bestimmen somit die Arbeitsgeschwindigkeit des gesamten Systems und bilden den Von-Neumann-Flaschenhals. In der Praxis versucht man, diesen Effekt durch die Nutzung von Datencaches abzuschwächen.
[Bearbeiten] Harvard-Architektur
Eine der wichtigsten Modifikationen ist die Aufteilung von Befehls- und Datenspeicher gemäß der Harvard-Architektur. Einzelne Elemente der Harvard-Architektur fließen seit den 1980er Jahren verstärkt wieder in die üblichen Von-Neumann-Rechner ein, da eine klarere Trennung von Befehlen und Daten die Betriebssicherheit erfahrungsgemäß deutlich erhöht. Besonders die gefürchteten Pufferüberläufe, die für die meisten Sicherheitslücken in modernen Systemen verantwortlich sind, werden bei stärkerer Trennung von Befehlen und Daten besser beherrschbar.
[Bearbeiten] Siehe auch
[Bearbeiten] Weblinks
- John von Neumann: First Draft of a Report on the EDVAC. (PDF-Format, engl.) 1945
- http://tech-www.informatik.uni-hamburg.de/applets/baukasten/DA/VNR_Einleitung.html Erklärung des Von Neumann Rechners mit Applets zur Simulation