Das heute allgemein angewandte Prinzip, das nach seiner Beschreibung durch John von Neumann von 1946 als
"Von-Neumann-Architektur" bezeichnet wird, definiert für einen Computer vier Hauptkomponenten:
die Recheneinheit (Arithmetisch-Logische Einheit (ALU)),
die Steuereinheit,
den Speicher und
die Eingabe- und Ausgabeeinheit(en).
In den heutigen Computern sind die ALU und die Steuereinheit meist zu einem Baustein verschmolzen, der so genannten CPU
(Central Processing Unit, zentraler Prozessor).
Der Speicher ist eine Anzahl von durchnummerierten "Zellen", jede dieser Zellen kann ein kleines Stück
Information aufnehmen. Diese Information wird als Binärzahl, also einer Abfolge von ja/nein-Informationen, in der
Speicherzelle abgelegt - besser vorzustellen als eine Folge von Nullen und Einsen. Ein Charakteristikum der "Von
Neumann-Architektur" ist, dass diese Binärzahl (beispielsweise 65) entweder ein Teil der Daten sein kann
(also zum Beispiel der Buchstabe "A"), oder ein Befehl für die CPU ("Springe ...").
Wesentlich in der Von-Neumann-Architektur ist, dass sich Programm und Daten einen Speicherbereich teilen (dabei
belegen die Daten in aller Regel den unteren und die Programme den oberen Speicherbereich).
Dem gegenüber stehen in der sog. Harvard-Architektur Daten und Programmen eigene (physikalisch getrennte)
Speicherbereiche zur Verfügung, dadurch können Daten-Schreiboperationen keine Programme überschreiben.
In der Von-Neumann-Architektur ist die Steuereinheit dafür zuständig, zu wissen, was sich an welcher Stelle im
Speicher befindet. Man kann sich das so vorstellen, dass die Steuereinheit einen "Zeiger" auf eine bestimmte
Speicherzelle hat, in der der nächste Befehl steht, den sie auszuführen hat. Sie liest diesen aus dem Speicher
aus, erkennt zum Beispiel "65", erkennt dies als "Springe". Dann geht sie zur nächsten Speicherzelle,
weil sie wissen muss, wohin sie springen soll. Sie liest auch diesen Wert aus, und interpretiert die Zahl als Nummer
(so genannte Adresse) einer Speicherzelle. Dann setzt sie den Zeiger auf eben diese Speicherzelle, um dort wiederum ihren
nächsten Befehl auszulesen; der Sprung ist vollzogen. Wenn der Befehl zum Beispiel statt "Springe" lauten
würde "Lies Wert", dann würde sie nicht den Programmzeiger verändern, sondern aus der in der Folge
angegebenen Adresse einfach den Inhalt auslesen, um ihn dann beispielsweise an die ALU weiterzuleiten.
Die ALU hat die Aufgabe, Werte aus Speicherzellen zu kombinieren. Sie bekommt die Werte von der Steuereinheit geliefert,
verrechnet sie (addiert beispielsweise zwei Zahlen, welche die Steuereinheit aus zwei Speicherzellen ausgelesen hat) und gibt
den Wert an die Steuereinheit zurück, die den Wert dann für einen Vergleich verwenden oder wieder in eine dritte
Speicherzelle zurückschreiben kann.
Die Ein-/Ausgabeeinheiten schliesslich sind dafür zuständig, die initialen Programme in die Speicherzellen einzugeben
und dem Benutzer die Ergebnisse der Berechnung anzuzeigen. |