Ein im Jahre 1945 von John von Neumann vorgeschlagenes Konzept zur Gestaltung eines universellen Rechners (in The First Draft of a Report on the EDVAC ist von einem "computing system", nicht von einen Computer die Rede, während die Maschine selbst EDVAC (Electronic Discrete Variable Automatic Computer) also Computer genannt wurde. Der Neumann-Rechner, den man heute als Prozessor bezeichnet (während Computer für eine umfassendere Konstruktion verwendet wird), ist nach folgenden Prinzipien aufgebaut:”
Der Rechner besteht aus fünf Funktionseinheiten, dem Steuerwerk, dem Rechenwerk, dem Speicher, dem Eingabewerk und dem Ausgabewerk.
Die Rechnerarchitektur des Von-Neumann-Rechners fällt in die Klasse der SISD-Architekturen.”
Die grundsätzlichen Funktionen eines Steuerwerkes wurden in 2.1.5 Steuerwerk
Simuliert und bei der Arbeit betrachtet werden kann der Arbeits-Speicher hier. Diese Bezeichnung steht im Konzept des Von-Neumann-Rechners für alle die Logik, die den Computer mit "draußen"
verbindet. "Draußen" bedeutet dabei nicht „außerhalb des Gehäuses", sondern "nicht
mehr zu dem eigentlichen, universellen VNR-Konzept gehörend". Eine Grafikkarte, für die allermeisten
Rechner notwendiges Bauteil zur Kommunikation mit dem Benutzer, ist bereits "draußen" – und heutzutage
bereits ein spezialisierter Rechner für sich. Zu dem Ein-/Ausgabewerk gehören also z.B. der PCI-Bus für
Einsteckkarten ebenso wie ein SCSI-Interface zum Anschluß von Peripheriegeräten und auch "klassische"
parallele (Drucker) und serielle (Maus) Schnittstellen. Inwieweit der Von-Neumann-Rechner Grundlage heutiger Computer ist, sollte bis zum Ende dieses Abschnittes klar
werden. Die Abschnitte 3.3 Nachbetrachtung: Steuerwerk, 3.5
Die Speicherhierarchie
Das
Rechenwerk können wir, anders als das Steuerwerk, bereits hier eingehend
untersuchen. Es besteht lediglich aus zwei Komponenten, die wir beide bereits kennengelernt haben: Der Akkumulator
ist ein einfaches Register, die Rechenlogik und die Ablaufsteuerung (die
die sogenannten flags erzeugt) bilden zusammen das, was wir als ALU kennen.
Typisch für das Konzept des Von-Neumann-Rechners ist der sparsame Umgang mit Registern – der Akkumulator ist
das einzige Allzweckregister. Er ist als ein Operand an jeder Berechnung beteiligt und nimmt danach immer das Ergebnis
auf (daher der Name – die Ergebnisse aufeinanderfolgender Berechnungen werden hier akkumuliert und bilden schließlich
das Endergebnis).
Der zweite Operand wird während der Berechnung direkt über den Datenbus geliefert – weil keine weiteren
Allzweckregister an diesen Bus angeschlossen sind, muß der Wert entweder direkt aus dem Hauptspeicher oder
aus dem Befehlsregister stammen, das wir in 2.2 Computerprinzipien
kennengelernt haben.
Die „Rechenlogik" meint hier ein Schaltnetz, das einige mathematische
Funktionen realisiert. Die „Ablaufsteuerung" tut aber mehr, als nur die jeweils gewünschte Funktion auszuwählen
– Akkumulator, Rechenlogik und Ablaufsteuerung bilden zusammen ein Schaltwerk,
mit dessen Hilfe z.B. eine Multiplikation auf mehrere Additionen zurückgeführt werden kann. Die Erweiterung
einer bestehenden ALU um die Multiplikation kostet damit praktisch nichts, eine Multiplikation mit n würde
aber n-1 Mal so lange dauern, wie eine Addition; Alternativen wären das Hinzufügen eines (relativ großen)
Schaltnetzes allein für die Multiplikation oder intelligente Mischformen.
Der Arbeits-Speicher
3.1.4 Das Eingabe-/Ausgabewerk
Kritik
Obwohl die Struktur dieses klassischen Universalrechners also vielfach erweitert wurde, besonders, um die Verarbeitungsleistung
zu erhöhen, orientieren sich nahezu alle heutigen Rechenanlagen an ihr. Sie wird, wenn überhaupt, dann
von hochgradig parallel arbeitender Hardware für spezielle Anwendungsfälle durchbrochen (Quelle: Carsten Kelling: Aufbau und Funktionsweise von Computersystemen)
Dies gilt auch für alle Weiterentwicklungen des Geräts, das wir heute gemeinhin als Computer bezeichnen. Damit sind günstige Notebooks, aber auch bereits die nachfolgenden Geräte wie die Tablet-PCs mit all ihren Erscheinungen gemeint. Denn auch hinter diesen kleineren Computern steckt die Struktur des klassischen Universalrechners. Die Leistungskraft dieser Geräte hat sich deutlich und geradezu rasant weiter entwickelt, sie sind den ersten Rechnern haushoch überlegen.
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.