Zum Inhalt springen

Von-Neumann-Architektur

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 27. Dezember 2007 um 17:51 Uhr durch Ost38 (Diskussion | Beiträge) (Siehe auch: Harvard-Architektur ist bereits im Text verlinkt und erklärt). Sie kann sich erheblich von der aktuellen Version unterscheiden.
John von Neumann.

Die Von-Neumann-Architektur ist ein Referenzmodell für Computer, wonach ein gemeinsamer Speicher sowohl Computerprogrammbefehle 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 zur Parallelverarbeitung.

Die Von-Neumann-Architektur bildet die Grundlage für die Arbeitsweise der meisten heute bekannten Computer. Sie ist benannt nach dem österreichisch-ungarischen, später in den USA tätigen Mathematiker John von Neumann, dessen wesentliche Arbeit zum Thema 1945 veröffentlicht wurde. Sie wird manchmal auch nach der gleichnamigen US-Universität Princeton-Architektur genannt.

Entwicklung

Von Neumann beschrieb das Konzept 1945 in dem zunächst unveröffentlichten Papier „First Draft of a Report on the EDVAC“ im Rahmen des Baus der EDVAC-Rechenmaschine. Es war seinerzeit revolutionär, denn zuvor entwickelte Rechner waren an ein festes Programm gebunden, das entweder hardwaremäßig verschaltet war oder über Lochkarten eingelesen werden musste. Mit der von-Neumann-Architektur war es nun möglich, Änderungen an Programmen sehr schnell und ohne Änderungen an der Hardware durchzuführen oder in kurzer Folge verschiedene Programme ablaufen zu lassen.

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 aber im Laufe der Zeit Differenzierungen erfahren.

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.

Komponenten

Komponenten eines von-Neumann-Rechners.
Datei:John von Neumann Rechner2.gif
Zentraleinheit.

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 (Schnittstellen).

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.

Weiterentwicklungen

Von-Neumann-Flaschenhals

Der Von-Neumann-Flaschenhals der Von-Neumann-Architektur bezeichnet den Sachverhalt, dass das Verbindungssystem (Daten-& Befehls-Bus) zum Engpass zwischen dem Prozessor und dem Speicher wird. Da im Gegensatz zur Harvard-Architektur nur ein gemeinsamer Bus für Daten und Befehle genutzt wird, müssen sich diese die maximal übertragbare Datenmenge aufteilen. 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 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.

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.

Siehe auch

Vorlage:Link FA