Zurück zur StartseiteInformatik · EF · Fach wechseln
Kostenlos starten
EF · Informatik
Objekte, Suchen und Sortieren, Binärcodes und Rechnerarchitektur · Binärcodes und Rechnerarchitektur

Von-Neumann-Architektur

Du tippst auf deinem Smartphone eine Nachricht, dann startest du ein Spiel, danach eine Fahrplan-App der Deutschen Bahn. Das Gerät bleibt dasselbe, nur das Programm wechselt. Wie kann eine einzige Maschine so viele verschiedene Aufgaben erledigen? Die Antwort liefert eine Idee aus dem Jahr 1945, die bis heute fast jeden Computer prägt: die Von-Neumann-Architektur.

Die Bauteile des Rechners

John von Neumann beschrieb einen Rechner, der aus wenigen Funktionseinheiten besteht. Jede hat eine klare Aufgabe.

Blockschaltbild der Von-Neumann-Architektur: Prozessor mit Steuerwerk und Rechenwerk, Speicher und Ein-/Ausgabewerk, verbunden über das Bussystem Prozessor (CPU) Steuerwerk Rechenwerk Speicher Daten + Programme Ein-/Ausgabewerk Bussystem (Adressen, Daten, Steuersignale)

Vergleich mit einer Mensa-Küche: Das Steuerwerk ist die Küchenleitung, die sagt, was als Nächstes geschieht. Das Rechenwerk ist der Koch, der arbeitet. Der Speicher ist das Regal mit Rezepten und Zutaten. Die Essensausgabe ist das Ein-/Ausgabewerk, die Wagen zwischen den Stationen sind der Bus.

Üben★☆☆Nicht begonnen
Nennen Sie die Hauptkomponenten eines Rechners nach der Von-Neumann-Architektur und beschreiben Sie jeweils in einem Satz ihre Aufgabe: Steuerwerk, Rechenwerk, Speicher,…

Nennen Sie die Hauptkomponenten eines Rechners nach der Von-Neumann-Architektur und beschreiben Sie jeweils in einem Satz ihre Aufgabe: Steuerwerk, Rechenwerk, Speicher, Ein-/Ausgabewerk, Bussystem.

Lösen
Üben★★☆Nicht begonnen
Die Lehrkraft einer Schule in Düsseldorf zeigt einen Laptop. Ordnen Sie folgende Bauteile den Komponenten der Von-Neumann-Architektur zu und begründen Sie: Prozessor…

Die Lehrkraft einer Schule in Düsseldorf zeigt einen Laptop. Ordnen Sie folgende Bauteile den Komponenten der Von-Neumann-Architektur zu und begründen Sie: Prozessor (CPU), Arbeitsspeicher (RAM), SSD, Tastatur, Bildschirm, Hauptplatine mit Leitungen.

Lösen

Programme und Daten im selben Speicher

Das wichtigste Prinzip: Befehle und Daten liegen im selben Speicher und sind dort nur Bitmuster. Ob eine Zelle als Zahl oder als Befehl gedeutet wird, hängt davon ab, wie der Prozessor sie verwendet.

Vorteil: Man ändert die Aufgabe eines Rechners, indem man ein anderes Programm in den Speicher lädt. Man muss keine Leitungen umstecken. Programme können außerdem wie Daten behandelt werden, z. B. beim Laden einer App oder beim Übersetzen durch einen Compiler.

Die Harvard-Architektur trennt dagegen Programm- und Datenspeicher mit eigenen Bussen. Sie ist besser gegen solches Überschreiben geschützt und findet sich z. B. in Mikrocontrollern.

Üben★☆☆Nicht begonnen
Erklären Sie das Grundprinzip „Daten und Programme liegen im selben Speicher“. Nennen Sie einen Vorteil dieses Prinzips.

Erklären Sie das Grundprinzip „Daten und Programme liegen im selben Speicher“. Nennen Sie einen Vorteil dieses Prinzips.

Lösen
Üben★★★Nicht begonnen
Beurteilen Sie die Aussage: „Da Programme und Daten im selben Speicher liegen, kann ein fehlerhaftes Programm sich selbst oder andere Programme überschreiben.“ a)…

Beurteilen Sie die Aussage: „Da Programme und Daten im selben Speicher liegen, kann ein fehlerhaftes Programm sich selbst oder andere Programme überschreiben.“

  1. a) Erklären Sie, was gemeint ist und warum dies eine Folge der Von-Neumann-Architektur ist.
  1. b) Nennen Sie einen Schutzmechanismus moderner Betriebssysteme.
  1. c) Vergleichen Sie kurz mit der Harvard-Architektur.
Lösen

Der Befehlszyklus

Der Prozessor arbeitet Befehle in einem ständig wiederholten Zyklus ab. Im Steuerwerk steht der Befehlszähler: Er enthält die Adresse des nächsten Befehls.

  1. Holen (fetch): Der Befehl, auf den der Befehlszähler zeigt, wird aus dem Speicher geholt.

  2. Dekodieren (decode): Das Steuerwerk erkennt, welche Operation und welche Adresse gemeint sind.

  3. Ausführen (execute): Das Rechenwerk rechnet, oder es wird ein Wert gelesen bzw. geschrieben.

  4. Befehlszähler erhöhen bzw. bei einem Sprung auf das Sprungziel setzen.

Dann beginnt alles von vorn. Ein Sprungbefehl ändert den Befehlszähler und macht so Verzweigungen und Schleifen möglich.

Üben★☆☆Nicht begonnen
Ordnen Sie den Schritten des Befehlszyklus die richtige Reihenfolge zu: (a) Befehl ausführen, (b) Befehl aus dem Speicher holen, (c) Befehl dekodieren, (d) Befehlszähler…

Ordnen Sie den Schritten des Befehlszyklus die richtige Reihenfolge zu: (a) Befehl ausführen, (b) Befehl aus dem Speicher holen, (c) Befehl dekodieren, (d) Befehlszähler erhöhen bzw. nächsten Befehl bestimmen. Erklären Sie, was in jedem Schritt geschieht.

Lösen

Ein Programm Schritt für Schritt

Zum Verständnis nutzen wir eine einfache Registermaschine mit einem Akkumulator (ACC, Register des Rechenwerks):

Befehl Wirkung
LOAD adr ACC := Inhalt der Zelle adr
ADD adr ACC := ACC + Inhalt der Zelle adr
SUB adr ACC := ACC − Inhalt der Zelle adr
STORE adr Zelle adr := ACC
JMP z springe zu Zeile z
JNZ z springe zu Zeile z, wenn ACC ≠ 0
HALT Programmende

Mit JNZ entstehen Schleifen. Das Ablaufprotokoll (Schreibtischtest) hilft, den Überblick zu behalten.

Üben★★☆Nicht begonnen
Ein einfacher Rechner hat die Befehle LOAD adr (Wert aus Speicherzelle in den Akkumulator), ADD adr (Wert addieren), STORE adr (Akkumulator in Speicherzelle) und HALT.…

Ein einfacher Rechner hat die Befehle LOAD adr (Wert aus Speicherzelle in den Akkumulator), ADD adr (Wert addieren), STORE adr (Akkumulator in Speicherzelle) und HALT. Die Zellen 10 und 11 enthalten die Werte 7 und 5, Zelle 12 den Wert 0.

Programm:

1: LOAD 10

2: ADD 11

3: STORE 12

4: HALT
  1. a) Geben Sie nach jedem Befehl Akkumulator und Inhalt von Zelle 12 an.
  1. b) Was berechnet das Programm?
  1. c) Ändern Sie es so, dass es $7 + 5 + 5$ berechnet.
Lösen
Üben★★★Nicht begonnen
Ein Registermaschinenprogramm mit den Befehlen LOAD adr (lädt den Inhalt der Zelle adr in den Akkumulator), STORE adr (speichert den Akkumulatorinhalt in Zelle adr), ADD…

Ein Registermaschinenprogramm mit den Befehlen LOAD adr (lädt den Inhalt der Zelle adr in den Akkumulator), STORE adr (speichert den Akkumulatorinhalt in Zelle adr), ADD adr bzw. SUB adr (addiert bzw. subtrahiert den Inhalt der Zelle adr zum bzw. vom Akkumulator), JNZ z (springt zu Zeile z, wenn der Akkumulator ungleich 0 ist), JMP z (springt immer zu Zeile z) und HALT (beendet das Programm) steht im Speicher. Die Zelle 20 enthält 3, Zelle 21 enthält 0, Zelle 22 enthält 1.

1: LOAD 21

2: ADD 20

3: STORE 21

4: LOAD 20

5: SUB 22

6: STORE 20

7: JNZ 1

8: HALT
  1. a) Erstellen Sie eine Tabelle mit den Werten der Zellen 20 und 21 nach jedem Durchlauf der Schleife.
  1. b) Was berechnet das Programm?
  1. c) Erklären Sie, wie der Befehlszähler diese Schleife ermöglicht.
Lösen

Der Von-Neumann-Flaschenhals und Adressen

Befehle und Daten laufen über denselben Bus. Der Prozessor kann also nicht gleichzeitig einen Befehl holen und Daten lesen. Weil der Speicher meist langsamer ist als der Prozessor, wartet dieser oft: der Von-Neumann-Flaschenhals.

Gegenmaßnahmen moderner Rechner: Cache (kleiner, schneller Zwischenspeicher in der CPU), mehrere Kerne, vorausschauendes Laden von Befehlen und getrennte Caches für Befehle und Daten.

Adressbreite

Mit $n$ Bit Adressbreite lassen sich $2^n$ Zellen adressieren. 16 Bit ergeben $2^{16} = 65\,536$ Zellen, bei einem Byte pro Zelle also 64 KiB (1 KiB = 1.024 Byte). Umgekehrt: 4 GiB $= 2^{32}$ Byte, man braucht also mindestens 32 Bit. Ein Befehl aus 8 Bit Operationscode und 16 Bit Adresse belegt 24 Bit = 3 Byte.

Üben★★☆Nicht begonnen
Erklären Sie, was der „Von-Neumann-Flaschenhals“ ist. a) Beschreiben Sie, warum der gemeinsame Bus zu Wartezeiten führt. b) Nennen Sie zwei Maßnahmen moderner Rechner,…

Erklären Sie, was der „Von-Neumann-Flaschenhals“ ist.

  1. a) Beschreiben Sie, warum der gemeinsame Bus zu Wartezeiten führt.
  1. b) Nennen Sie zwei Maßnahmen moderner Rechner, die das Problem verringern (z. B. Cache).
  1. c) Ein Prozessor kann 3 Milliarden Befehle pro Sekunde ausführen, der Speicher liefert aber nur 1 Milliarde Zugriffe pro Sekunde. Wie viel Prozent der Rechenleistung können höchstens genutzt werden, wenn jeder Befehl einen Speicherzugriff benötigt?
Lösen
Üben★★★Nicht begonnen
Ein Rechner hat 16-Bit-Adressen und speichert pro Adresse ein Byte. a) Wie viele Speicherzellen kann er maximal adressieren? Geben Sie das Ergebnis in KiB an. b) Ein…

Ein Rechner hat 16-Bit-Adressen und speichert pro Adresse ein Byte.

  1. a) Wie viele Speicherzellen kann er maximal adressieren? Geben Sie das Ergebnis in KiB an.
  1. b) Ein Befehl besteht aus 8 Bit Operationscode und 16 Bit Adresse. Wie viele Byte belegt ein Programm aus 200 Befehlen?
  1. c) Wie viele Bit Adressbreite benötigt man mindestens, um 4 GiB zu adressieren? Begründen Sie.
Lösen

Auf einen Blick

  • Die Von-Neumann-Architektur besteht aus Steuerwerk, Rechenwerk, Speicher, Ein-/Ausgabewerk und Bussystem.

  • Programme und Daten liegen im selben Speicher. Das macht Rechner flexibel, birgt aber das Risiko des Überschreibens.

  • Befehlszyklus: holen, dekodieren, ausführen, Befehlszähler weiterschalten oder Sprung.

  • Mit LOAD, ADD, STORE und JNZ lassen sich Programme und Schleifen mit einem Ablaufprotokoll nachvollziehen.

  • Der gemeinsame Bus bildet den Flaschenhals; Cache und mehrere Kerne mildern ihn.

  • $n$ Adressbits adressieren $2^n$ Speicherzellen.

Vorn gefragt: Ein Smartphone kann viele Aufgaben erledigen, weil Programme als Daten im Speicher liegen und das Steuerwerk sie Befehl für Befehl abarbeitet.

Alle Aufgaben zu diesem Abschnitt anzeigen