Von Neumann Architekturmodell
Von Neumann Architekturmodell
Bücher zum Thema bei Amazon.de
Dem überwiegenden Teil aller Rechner liegt nach wie vor ein Maschinenmodell zugrunde,
das vom Mathematiker J. von Neumann bereits in den fünfziger Jahren entworfen wurde.
Seine wesentlichen Komponenten sind:
- Prozessoren, die Programme verarbeiten und aus einem Leit- und einem Rechenwerk bestehen;
- Speicher für Programme und Daten;
- Ein- und Ausgabewerke für die Kommunikation mit der Umwelt.
Prozessoren werden auch als
CPUs (engl.:central processing unit) bezeichnet, und Leitwerke heien manchmal auch Steuerwerke.
Rechenwerke sind weiter als
ALUs ,(eng.:arithmetic logical unit) oder Operationswerke bekannt, und statt
E/A-Werken bzw. Geräten
spricht man manchmal auch von der Peripherie.
Technisch gesehen handelt es sich bei den einzelnen Einheiten und dem Gesamtsystem um Schaltwerke. Die
CPU sowie die meisten
anderen Komponenten sind dabei als synchrone Schaltwerke ausgeführt, weil diese leichter zu gröeren Schaltwerken zusammenzusetzen sind.
Die zentrale Einheit des von Neumann-Maschinenmodells ist der
Prozessor. Wie bei komplexeren Schaltwerken üblich, ist er aus
zwei kooperierenden Teilschaltwerken aufgebaut, wobei die verarbeitende Einheit, das Rechenwerk, durch das Leitwerk gesteuert wird.
Die Aufgabe des Rechenwerks ist die Durchführung arithmetischer und logischer Operationen.
Charakteristisch für von Neumann-Rechner sind neben der schon angegebenen Gliederung die folgenden Prinzipien:
- Der Speicher besteht aus einzelnen, gleich groen Speicherzellen, welche fortlaufend adressiert sind.
- Der Inhalt einer Speicherzelle wird über ihre Adresse angesprochen.
- Der Rechner verarbeitet Gruppen von Bits fester Länge.
- Programme und Daten liegen in einem einheitlichen Speicher.
- Zur Bearbeitung von Aufgaben werden Programme eingegeben und im Speicher abgelegt.
- Programme bestehen aus einzelnen Befehlen, welche der Prozessor sequentiell abarbeitet.
- Die Verarbeitung von Befehlen geschieht normalerweise in der Reihenfolge ihrer Ablage im Speicher.
- Die normale Verarbeitungsreihenfolge der Befehle kann durch bedingte und unbedingte Sprungbefehle verändert werden.
Hierdurch sind Verzweigungen im Ablauf des
Programms in Abhängigkeit von Daten möglich.
Das hervorstechende Merkmal ist die Steuerung des
Prozessors durch im Speicher abgelegte
Programme. Diese Speicherprogrammierbarkeit erlaubt es, den
Prozessor "universell" für die
Lösung sehr unterschiedlicher Probleme anzuwenden, ohne die Struktur des Rechners zu verändern.
Eine Konsequenz der Gleichbehandlung von Daten und
Programmen ist es, da
Programme selbst als Eingabe- oder Ausgabedaten anderer
Programme auftreten können. In diesem Sinne ist auch
die Bezeichnung "Daten" an den Verbindungspfeilen von
CPU und den Ein-/Ausgabewerken in Bild 1.1 zu verstehen: zu den ein- bzw. ausgegebenen Daten gehören auch
Programme, die aber
durch den
Prozessor nicht direkt ausgeführt, sondern erst im Speicher abgelegt und dann ausgeführt werden.
Im Prinzip ist es durch die Behandlung von Befehlskode als Daten sogar möglich, den Kode des gerade laufenden Programmes zu verändern. Solch selbstmodifizierender Kode ist allerdings nur
sehr schwer auf seine Korrektheit zu überprüfen und gilt inzwischen als schlechter Programmierstil. Statt dessen benutzt man Programmverzweigungen, um den Ablauf des Programmes von den
Eingabedaten oder bestimmten Zwischenergebnissen abhängig zu machen. Der gesamte potentiell ausführbare Programmkode steht also bereits vor der eigentlichen Ausführung fest und kann so
bereits auf bestimmte statische Eigenschaften hin überprüft werden, wie z.B. ob alle vorkommenden
Variablen vorher deklariert wurden.
Moderne Rechner weichen in einigen Punkten von den oben genannten Prinzipien ab. Dennoch folgt nach wie vor das Gros aller Rechner den
meisten dieser Prinzipien, so da man sie als "von Neumann-Rechnerarchitekturen" bezeichnet.