Skip to content

Verarbeitung

Hardware

John von Neumann

John von Neumann[1]

John von Neumann (* 28. Dezember 1903 in Budapest, Österreich-Ungarn; † 8. Februar 1957 in Washington, D.C., Vereinigte Staaten) war ein ungarisch-US-amerikanischer Mathematiker.

Von Neumann gilt als einer der Väter der Informatik. Nach ihm wurde die Von-Neumann-Architektur benannt, ein Computer, in dem Daten und Programm binär codiert im selben Speicher liegen.

Von-Neumann-Architektur

1945 beschrieb John von-Neumann sein Konzept erstmals. Das Konzept war damals revolutionär, da zuvor entwickelte Rechner an ein festes Programm gebunden waren. Die meisten der heute gebräuchlichen Computer basieren auf dem Grundprinzip der Von-Neumann-Architektur.

Komponenten eines Von-Neumann-Rechners[2]

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
Bus System
dient zur Kommunikation zwischen den einzelnen Komponenten
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)

Bus-System

Man unterscheidet drei verschiedene Busse: Adressbus, Datenbus und Steuerbus

Schematischer Aufbau eines Von-Neumann-Rechners mit dem zugehörigen Bussystem[3]
Adressbus
überträgt Speicheradressen
Busbreite bestimmt den adressierbaren Speicher
Datenbus
überträgt Daten
Busbreite bestimmte maximale Datenmenge die pro Schritt verarbeitet werden kann
Steuerbus
steuert Bus-Vorgänge wie z.B. Lesen oder Schreiben

Arbeitsweise CPU

Von-Neumann-Zyklus

Der Prozessor führt immer wieder den gleichen zyklischen Ablauf aus. Dieser Ablauf wird auch Von-Neumann-Zyklus genannt und besteht aus folgenden Schritten:

1. Befehl laden

Der nächste Befehl wird aus dem Speicher in das Befehlsregister geladen. Dazu wird die Adresse des nächsten Befehls vom Programmzähler an das Speicherwerk Übertragen. Der Befehl wird aus dem Speicher über den Datenbus in das Befehlsregister übertragen. Anschliessend wird der Programmzähler um eins erhöht.

2. Befehl decodieren

Nun wird der Befehl, welcher in das Befehlsregister geladen worden ist, decodiert. Das bedeutet, dass das Dekodierwerk die Aktionen, welche für diesen Befehl ausgeführt werden müssen, in Steuersignale an die verschiedenen Komponenten Übersetzt.

3. Befehl ausführen

Schliesslich wird der eigentliche Befehl ausgeführt, indem das Dekodierwerk die Steuersignale an die Komponenten auslöst. Im nächsten Abschnitt werden einige typische Befehle erläutert.

Aufgabe

Versuche den Von-Neumann-Zyklus anhand des Additionsbeispiels des LMC nachzuvollziehen. Spiele dazu das Programm schrittweise (also mit dem roten ⏯️-Button) ab.

Befehlssatz

Der Befehlssatz ist die komplette Sammlung von Befehlen, welche ein Prozessor versteht und ausführen kann. Im folgenden werden einige typische Befehle betrachtet.

Wert laden

Um einen Wert bearbeiten zu können, muss dieser erst aus dem Hauptspeicher geladen werden. Mit einem Lade-Befehl wird ein Wert aus dem Speicher in den Akkumulator des Rechenwerks geladen.

Wert speichern

Wenn im Rechenwerk ein Resultat berechnet wurde, muss es wieder in den Speicher geschrieben werden. Das geschieht mit diesem Befehl.

Addieren

Im Rechenwerk können arithmetische Operationen durchgeführt werden. Es können also zwei Zahlen addiert, subtrahiert, multipliziert oder dividiert werden.

Eingabe

Ein Wert kann aus einem Eingabegerät in den Hauptspeicher eingelesen werden.

Ausgabe

Ein Wert kann aus dem Hauptspeicher auf ein Ausgabegerät ausgegeben werden.

Aufgabe

Finde die oben beschriebenen Befehle im LMC und notiere ihren entsprechenden Code (3 Buchstaben)

Wert Laden =
Wert Speichern =
Addieren =
Eingabe =
Ausgabe =

Logische Schaltung

Durch geschicktes Verknüpfen von Gatter können Schaltungen erzeugt werden, welche Berechnungen durchführen. Im Beispiel lassen sich Binärzahlen stellenweise addieren:

👉 Addierer


  1. LANL via Wikimedia (CC0) ↩︎

  2. Wilkensa via Virtuelle Fachhochschule (CC-BY) ↩︎

  3. Medvedev via Wikimedia (CC-BY-SA 3.0) ↩︎

Gymnasium Kirchenfeld, fts