studyklar
GdI 1 · Übungsblatt 2 · Aufgabe 5

Von-Neumann-Rechner: den Befehl „Akku invertieren“ ausführen

Ein Rechner führt einen Befehl nicht in einem Zug aus. Er holt ihn aus dem Speicher, entschlüsselt ihn und führt ihn dann aus. Rechts steht der Rechner aus der Vorlesung; zu jedem Schritt leuchten die Teile und Leitungen, die gerade arbeiten. Mit Weiter geht es Schritt für Schritt voran.

Die Aufgabe

Aufgabe 2.5

Betrachtet wird die Von-Neumann-Architektur gemäß Seite 2-11 der Vorlesungsunterlagen. Beschreiben Sie schrittweise die Ausführung eines Befehls, welcher den Inhalt des Akkumulators invertiert!

Der Akkumulator (kurz Akku) ist das Register im Rechenwerk, das das Zwischenergebnis hält. Invertieren heißt: jedes Bit umdrehen, aus 0 wird 1 und aus 1 wird 0. Gesucht ist, was im Rechner nacheinander passiert, bis der Befehl fertig ist: welches Teil was an welches andere Teil gibt.

Merke: Jeder Befehl läuft in drei Phasen: Holen (aus dem Speicher ins Befehlsregister), Decodieren (das Steuerwerk erkennt, was zu tun ist), Ausführen (das Rechenwerk rechnet). Das ist die übliche Einteilung; das Skript zeigt nur Bauteile und Leitungen.
  1. Die Bauteile der Skizze kennenlernen.
  2. Holen: Adresse aus dem Programmzähler, Befehl über die Busse ins Befehlsregister.
  3. Den Programmzähler auf den nächsten Befehl stellen.
  4. Decodieren im Befehlsdecoder.
  5. Ausführen: ALU invertiert den Akku-Inhalt und schreibt ihn zurück.

Die Bauteile des Rechners

  • Rechenwerk: Akkumulator (Zwischenergebnis), ALU (Arithmetic Logic Unit, das eigentliche Rechenteil), Datenregister (Wert, der vom oder zum Speicher geht).
  • Leitwerk: Programmzähler (Adresse des nächsten Befehls), Adressregister (Adresse, die gerade am Speicher anliegt), Befehlsregister (der aktuelle Befehl), Befehlsdecoder und Steuerwerk (erkennen den Befehl und steuern alle Teile).
  • Busse: Der Adressbus bringt eine Adresse zum Speicher, der Datenbus bringt Befehle und Daten in beide Richtungen.
  • Nicht jeder Befehl braucht jede Leitung. Unser Befehl benutzt zum Beispiel die Leitungen Akku–Datenregister, Datenregister–Adressregister und Steuerwerk–Adressregister nicht; sie dienen Befehlen, die Werte aus dem Speicher lesen oder dorthin schreiben.
Aus Skript 2, Folien 2-9 und 2-12 („Von-Neumann-Architektur“): Befehle und Daten liegen im selben Speicher, jede Speicherzelle hat eine Adresse. Die CPU (der Prozessor) holt Befehle und Daten über ein Bussystem (gemeinsame Leitungen) zu sich.

Ein Register ist ein kleiner Speicher in der CPU für genau einen Wert. Die CPU in der Skizze hat zwei Hälften. Das Rechenwerk heißt auch Datenprozessor, weil es die Daten verarbeitet. Das Leitwerk heißt auch Befehlsprozessor, weil es die Befehle holt, erkennt und den Ablauf steuert.

Programmzähler → Adressregister

Adressregister ← Inhalt des Programmzählers.

Der Programmzähler enthält die Adresse, unter der der nächste Befehl im Speicher liegt, hier also unser Befehl „Akku invertieren“. Diese Adresse wird ins Adressregister kopiert, denn nur das Adressregister ist mit dem Adressbus verbunden.

Noch 8 Schritte bis zum Ergebnis
Den ganzen Lösungsweg sehen Studierende und Lehrende der HS KL. Registriere dich mit deiner Adresse @stud.hs-kl.de oder @hs-kl.de, dann geht es hier direkt weiter.

Abbildung 1

CPURechenwerk (Datenprozessor)Leitwerk (Befehlsprozessor)AdressbusDatenbusAkkumulatorALUDatenregisterBefehlsdecoderSteuerwerkBefehlsregisterAdressregisterProgrammzählerSpeicher
Legendearbeitet in diesem SchrittDer Von-Neumann-Rechner aus Skript 2, Folie 2-11.