Von-Neumann-Rechner (Architektur)        zurück ]      [ Stichworte ]      [ Die Hyper-Bibliothek ]      [ Systemtheorie ]         [ Meine Bücher ]

J. von Neumann hat im Manhattan-Projekt an verschiedenen Computern mitgearbeitet. Dort wurden viele Erfindungen gemacht, die später unter Patentstreitereien einzelnen Erfindern zugerechnet wurden.
Das wäre Stoff für einen Thriller: Mark 1 ist ein Anfang des Computers aus diesem Dschungel.

J. von Neumann hat 1945 in einem Uni-Papier mit dem Titel FirstDraft" eine Rechnerarchitektur vorgeschlagen, bei welcher die Programme als Daten im Rechner wie andere Daten gespeichert werden.

In diesem Papier wird das, was ich heute als Computer bezeichne zum ersten Mal hinreichend abstrakt - also auf eine logischen Metaebene jenseits der Elektrotechnik - dargestellt. Ich sehe darin einen Anfang der Informatik als Disziplin, zumal auch die Programmierungsweise Thema ist, die später als Programmiersprache entwickelt wurde.

Im FirstDraft ist von einem "computing system" die Rede, während die - im Projektzusammenhang implizit beschriebene Maschine "Electronic Discrete Variable Automatic Computer" (EDVAC) - als "Computer" bezeichnet wurde.

J. von Neumann beschreibt den Prozessor eines Computers und zwar so, dass in dieser CPU die Ausgabegeräte von spezifischen Teilen der CPU, die er Ausgabe nennt, gesteuert werden. Mit "Ausgabe" ist also nicht der Bildschirm, sondern dessen Steuerung gemeint.
Das Konzept ist abstrakt, konkrete Computer weichen in verschiedensten Hinsichten davon ab.


Eine sehr gute Darstellung der Prinzipien gibt C. Kelling, hier sind nur grundsätzlichen Komponenten aufgeführt:

bild bild
Quelle: Wikipedia

Diese schematische Darstellung ist typisch in der Indifferenz, was zur CPU gehört.

Die Struktur des Von-Neumann-Rechners ist problemunabhängig und in diesem Sinne "universell". Jedes Problem wird durch ein Programm und zugehörige Daten beschrieben, die in demselben Speicher abgelegt werden. Der Speicher ist in Zellen unterteilt, die fortlaufend durchnumeriert sind, was dem Steuerwerk als Adressen dient. Das Steuerwerk hat verschiedene "Befehlsarten". Ich unterscheide arithmetische Befehle wie Addieren, logische Befehle wie Vergleichen und "Transportbefehle" die Daten vom Speicher beisbielsweise ins Rechenwerk kopieren.

Alle Daten (Befehle, Adressen usw.) werden binär codiert.
[ ]

Anmerkung

[ ]
Die Von-Neumann-Architektur ist eigentlich nur historisch interessant, sie hat sich einerseits vollständig durchgesetzt, wurde aber durch die technische Entwicklung auch rasch aufgehoben:

Heutzutage wird unter Von-Neumann-Architektur nur verkürzt ein Prozessor mit gemeinsamem Instruktions- und Datencache verstanden, im Unterschied zur Harvard-Architektur, der nach dem von Howard Aiken an der Universität Harvard konstruierten Mark I benannten Architektur mit getrenntem Speicher und getrennten Pfaden für Daten und Instruktionen. Das bezieht sich inzwischen nur noch auf den L1-Cache, dass L2-Cache und Hauptspeicher gemeinsam sind, ist für diese Betrachtung weitgehend unwichtig. Der 486 war in diesem Sinne ein typischer Von-Neumann-Prozessor, fast der letzte seiner Zunft, denn in der x86-Welt wurde diese Architektur dann nur noch von Cyrix am Leben gehalten -- wiewohl diese zum Schluss mit winzigen zusätzlichen Mini-Caches auch schon Havard-lastig waren. Seitdem sind Von-Neumann-Architekturen weitgehend ausgestorben. Ob Pentium 4 oder Athlon, ob Itanium oder Opteron, ob PowerPC, UltraSPARC oder ARM: Getrennte Caches für Instruktionen und Daten sind fast durchgängig der Standard.
Dazu kommen noch die Verbindungen zwischen den Funktionsblöcken - das Bussystem.

Die Rechnerarchitektur des Von-Neumann-Rechners fällt in die Klasse der SISD-Architekturen. ”
SISD: Abkürzung für single instruction stream, single data stream. Ein Rechner mit solcher Architektur besitzt nur einen Prozessor und bearbeitet damit jeweils nur einen Befehl zur Zeit, erzeugt also auch nur einen Strom von Daten. Von praktischer Bedeutung sind noch folgende Architekturen:


SIMD (single instruction stream, multiple data stream): Mehrere Prozessoren führen jeweils denselben Befehl auf unterschiedlichen Daten aus (Beispiel: systolische Arrays).
MIMD (multiple instruction stream, multiple data stream): Das allgemeinste Architekturmodell für Parallelverarbeitung - mehrere Prozessoren führen unterschiedliche Befehle auf unterschiedlichen Daten aus.


 
[ Wie kam die Von-Neumann-Computerarchitektur von Princeton nach Moskau? ]
[ wp ]