MINT lernen

Textaufgaben: Von-Neumann-Architektur

Ein Mini-Prozessor addiert drei Preise Befehl für Befehl, und ein Werbeversprechen scheitert am Flaschenhals des Busses.

Dein Fortschritt:
0 / 0 Aufgaben
1

Drei Preise an der Kiosk-Kasse

AFB I–II

Die Kasse des Schulkiosks enthält einen sehr einfachen Prozessor nach dem Von-Neumann-Prinzip. Für einen Einkauf mit drei Artikeln zu 12, 7 und 4 (Preise in Zehn-Cent-Schritten) liegt das folgende Programm im Speicher. Die Befehle bedeuten: LADE [x] legt den Inhalt von Zelle x in den Akkumulator, ADDIERE [x] addiert den Inhalt von Zelle x zum Akkumulator, SPEICHERE [x] schreibt den Akkumulator in Zelle x, STOPP beendet das Programm. Zu Beginn stehen Befehlszähler und Akkumulator auf 0.

Speicherinhalt vor dem Start
Speicher012345678LADE [5]ADDIERE [6]ADDIERE [7]SPEICHERE [8]STOPP1274—
Links die Adresse der Zelle, rechts ihr Inhalt
  1. Entnehmen Sie der Abbildung, in welchen Zellen Befehle und in welchen Daten stehen, und geben Sie den Inhalt von Zelle 6 an.
  2. Bestimmen Sie für jeden der fünf Befehle den Stand von Befehlszähler und Akkumulator nach seiner Ausführung sowie den Inhalt von Zelle 8 am Programmende.
  3. Beschreiben Sie, was während der drei Phasen des Von-Neumann-Zyklus beim Befehl in Zelle 2 geschieht. Nennen Sie dabei die beteiligten Einheiten.

Hinweise

Hinweis zu Aufgabe a)
Für den Speicher sehen Befehle und Daten gleich aus — erst der Befehlszähler entscheidet, was als Befehl gelesen wird. In der Abbildung helfen die Farben.Entnehmen heißt: direkt aus der Abbildung ablesen, ohne zu rechnen.
Hinweis zu Aufgabe b)
Legen Sie eine Tabelle mit den Spalten Befehl, Befehlszähler, Akkumulator an. Nach jedem ausgeführten Befehl zählt der Befehlszähler um eins weiter.
Hinweis zu Aufgabe c)
Holen — Dekodieren — Ausführen. Überlegen Sie bei jeder Phase: Wer ist aktiv (Steuerwerk, Rechenwerk, Speicher)? Und was wandert über den Bus?

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)

Befehle stehen in den Zellen 0 bis 4, Daten in den Zellen 5 bis 7; Zelle 8 ist für das Ergebnis vorgesehen und noch leer. Zelle 6 enthält den Wert 7. Programm und Daten liegen also im selben Speicher — das Kennzeichen der Von-Neumann-Architektur.

Erwartungshorizont zu Aufgabe b)

LADE [5]: Befehlszähler 1, Akkumulator 12. ADDIERE [6]: Befehlszähler 2, Akkumulator \(12+7=19\). ADDIERE [7]: Befehlszähler 3, Akkumulator \(19+4=23\). SPEICHERE [8]: Befehlszähler 4, Akkumulator 23 (unverändert), Zelle 8 = 23. STOPP: Das Programm endet, der Akkumulator bleibt 23.

Zelle 8 enthält am Ende 23, also 2,30 €.

Erwartungshorizont zu Aufgabe c)

Holen: Das Steuerwerk schickt den Befehlszählerstand 2 als Adresse über den Bus zum Speicher; der Befehl „ADDIERE [7]“ kommt über den Bus zurück ins Befehlsregister. Dekodieren: Das Steuerwerk entschlüsselt den Befehl: Es soll addiert werden, und der Wert steht in Zelle 7. Ausführen: Der Wert 4 wird über den Bus aus Zelle 7 geholt; das Rechenwerk (ALU) addiert ihn zum Akkumulator (19 + 4 = 23). Danach springt der Befehlszähler auf 3.

2

Das doppelt so schnelle Rechenwerk

AFB II–III

Eine Messstation soll 1000 Messwerte aufsummieren. Ihr Programm besteht aus 1000 ADDIERE-Befehlen hintereinander. Für jeden dieser Befehle gilt auf dem bisherigen Prozessor: Befehl über den Bus holen 10 ns, dekodieren 1 ns, den Messwert über den Bus holen 10 ns, im Rechenwerk addieren 2 ns (1 ns = eine milliardstel Sekunde).

Ein Hersteller bietet einen Prozessor an und wirbt: „Unser neues Rechenwerk addiert doppelt so schnell — nur 1 ns!“ Der Bus bleibt dabei unverändert. Ein zweiter Hersteller bietet zum selben Preis einen Prozessor mit dem alten Rechenwerk, aber einem größeren Cache an. Befehle und Daten, die schon im Cache liegen, erreicht dieser Prozessor in 1 ns statt 10 ns; der Cache fasst allerdings nur wenige Megabyte, und was zum ersten Mal gebraucht wird, muss weiterhin über den Bus kommen.

Zeitbedarf eines ADDIERE-Befehls bisher
Befehl holen · 10 nsWert holen · 10 ns1 ns2 nsRot: Bus · Violett: dekodieren · Grün: RechenwerkSumme: 23 ns
Maßstäblich: 1 ns ≙ 15 Einheiten
  1. Erläutern Sie am Beispiel eines ADDIERE-Befehls, warum der Bus in der Von-Neumann-Architektur zum Flaschenhals wird.
  2. Weisen Sie rechnerisch nach, dass das Programm mit dem neuen Rechenwerk nur um etwa 4 % schneller fertig wird.
  3. Diskutieren Sie, welcher der beiden Prozessoren für die Messstation die bessere Wahl ist.

Hinweise

Hinweis zu Aufgabe a)
Wie oft muss ein einziger ADDIERE-Befehl den Bus benutzen? Kann der Bus Befehl und Messwert gleichzeitig transportieren?
Hinweis zu Aufgabe b)
Berechnen Sie die Zeit pro Befehl vorher und nachher, dann die Gesamtzeit für 1000 Befehle. Die Ersparnis in Prozent ist die eingesparte Zeit geteilt durch die ursprüngliche Zeit.
Hinweis zu Aufgabe c)
Rechnen Sie für den Cache-Prozessor den günstigsten Fall aus (alles liegt im Cache). Wägen Sie dann ab: Wann liegen die Daten wirklich im Cache — und wann nicht? Kommen Sie zu einem begründeten Ergebnis.

Erwartungshorizont

Erwartungshorizont zu Aufgabe a)

In der Von-Neumann-Architektur liegen Befehle und Daten im selben Speicher und erreichen den Prozessor über denselben Bus. Ein ADDIERE-Befehl braucht den Bus zweimal nacheinander: erst, um den Befehl zu holen, dann, um den Messwert zu holen. Beides gleichzeitig ist nicht möglich. Von 23 ns entfallen 20 ns auf Bustransporte und nur 2 ns auf das eigentliche Rechnen — das Rechenwerk wartet die meiste Zeit. Der Bus ist die enge Stelle, an der sich alles staut: der Von-Neumann-Flaschenhals.

Erwartungshorizont zu Aufgabe b)

Bisher: \(10 + 1 + 10 + 2 = 23\text{ ns}\) pro Befehl, also \(1000 \cdot 23\text{ ns} = 23\,000\text{ ns} = 23\ \mu\text{s}\). Neu: \(10 + 1 + 10 + 1 = 22\text{ ns}\), also \(22\,000\text{ ns}\).

Ersparnis: \(\frac{1000\text{ ns}}{23\,000\text{ ns}} \approx 0{,}043 = 4{,}3\,\%\). Obwohl das Rechenwerk doppelt so schnell ist, wird das Programm nur um etwa 4 % schneller fertig — die Aussage ist nachgewiesen.

Erwartungshorizont zu Aufgabe c)

Pro Cache: Er setzt am Flaschenhals an. Liegen Befehl und Messwert im Cache, braucht ein Befehl \(1 + 1 + 1 + 2 = 5\text{ ns}\) statt 23 ns — mehr als viermal so schnell, während das neue Rechenwerk nur 1 ns spart. Contra Cache: Beim ersten Durchlauf müssen alle 1000 Befehle und Messwerte trotzdem über den Bus kommen, dann ist der Vorteil gering; der Cache ist klein, bei sehr vielen Daten passt nicht alles hinein. Pro Rechenwerk: Der Gewinn ist sicher, aber winzig (etwa 4 %); nützlich wäre es nur bei Programmen, die viel rechnen und wenig Daten holen.

Ergebnis in der Regel: Der Prozessor mit größerem Cache ist die bessere Wahl, vor allem wenn die Station ihr Programm immer wieder mit denselben Befehlen ausführt. Auch ein anderes Ergebnis ist zulässig, wenn es schlüssig begründet ist. Vollständig ist die Antwort mit Argumenten für beide Seiten, einem Bezug auf den Flaschenhals und einem klaren Ergebnis.