Heutige Computer basieren auf der von John von-Neumann entwickelten Architektur. Zwar sind heute zahlreiche Optimierungen dabei, die Grundkomponenten sind aber die gleichen.
Geschichte
1945 beschrieb John von-Neumann sein Konzept erstmals. Das Konzept war damals revolutionär, da zuvor entwickelte Rechner an ein festes Programm gebunden waren. Der Von-Neumann-Rechner realisiert alle Komponenten einer Turingmaschine, abgesehen von dem unbegrenzten Speicher, der technisch nicht realisierbar ist.
Komponenten
Ein Von-Neumann-Rechner beruht auf folgenden Komponenten, die bis heute in Computern verwendet werden:
- Rechenwerk
- führt Rechenoperationen und logische Verknüpfungen durch
- Steuerwerk
- interpretiert die Anweisungen eines Programms und regelt die Befehlsabfolge
- Datenbus
- überträgt Daten zwischen den einzelnen Komponenten
- Adressbus
- überträgt die Speicheradresse an das Speicherwerk
- Speicherwerk
- speichert sowohl Programme als auch Daten, welche für das Rechenwerk zugänglich sind
- Ein-/Ausgabewerk
- steuert die Ein- und Ausgabe von Daten, zum Anwender (Tastatur, Bildschirm) oder zu anderen Systemen (Schnittstellen)
Rechenwerk
Das Rechenwerk (engl. Arithmetic Logic Unit, ALU) führt Rechenoperationen, Vergleiche und logische Operationen durch. Der Operanden sowie das Resultat von solchen Operationen werden in speziellen Speicherstellen des Prozessors, den Registern gespeichert.
Steuerwerk
Das Steuerwerk kontrolliert den Programmablauf. Im Programmzähler ist die Speicheradresse des nächsten auszuführenden Befehls gespeichert. Im Befehlsregister wird der aktuell ausgeführte Befehl gespeichert.
Speicherwerk
Im Speicherwerk (engl. Random Access Memory, RAM) werden Programmbefehle und Daten gespeichert. Es kann jeweils nur auf eine Speicherzelle zugegriffen werden. Diese wird durch den Adressbus ausgewählt.
Ein-/ Ausgabewerk
Über das Ein-/Ausgabewerk läuft sämtliche Kommunikation mit der Aussenwelt. Hier werden Geräte wie Tastaur, Bildschirm, Festplatte, WLAN-Schnittstelle usw. angesteuert.
Datenbus
Alle Daten (und auch Befehle) werden über den Datenbus zwischen den Komponenten ausgetauscht. Die Anzahl Datenleitungen des Datenbusses bestimmen, wie viele Bits gleichzeitig übertragen werden können. Moderne Computer besitzen eine 64-bit-Architektur. Dass heisst, dass der Datenbus aus 64 Leitungen besteht und somit immer acht Byte gleichzeitig übertragen werden.
Die Datenmenge, welche über den Datenbus übertragen werden kann, wird Wort (engl. Word) genannt.
Adressbus
Über den Adressbus wird die Speicherzelle im Speicherwerk ausgewählt, welche gelesen bzw. geschrieben werden soll.
Von-Neumann-Zyklus
In der Von-Neuman-Architektur kommt beim Abarbeiten von Programmen der Von-Neumann-Zyklus zum Zug. Dieser beschreibt drei sich-wiederholende Schritte:
- Fetch
- Befehlsabruf – Aus dem Speicher wird der nächste zu bearbeitende Befehl entsprechend der Adresse im Befehlszähler in das Befehlsregister geladen und der Befehlszähler wird um die Länge des Befehls erhöht.
- Decode
- Dekodierung – Der Befehl wird durch das Steuerwerk in Schaltinstruktionen für das Rechenwerk aufgelöst.
- Execute
- Befehlsausführung – Ein Datenwert wird über den Datenbus vom oder zum Akkumulator übertragen. Dabei kann auch eine arithmetische oder logische Operation vom Rechenwerk ausgeführt werden. Bei Sprungbefehlen und erfüllter Sprungbedingung wird an dieser Stelle der Befehlszähler verändert.