i

Die Simulationssoftware 'JOHNNY'

Ein erster Blick auf den Simulator

Wie schon gesagt, sieht man einem modernen Rechner seine Funktion nicht an. Um besser zu verstehen, wie Rechner funktionieren, greifen wir deshalb auf eine Simulation zurück. Der Simulator „Johnny“ ist nach dem genialen Entwickler der heutigen Rechnerstruktur, John von Neumann (1903-1957) benannt: Privat war von Neumann für seine Partys berühmt und sein Spitzname war wohl auch deshalb „Good Time Johnny“, worauf der Name des Simulators anspielt.

Der Johnny-Simulator konzentriert sich auf die in Abschnitt 7.1 erwähnten Bestandteile Prozessor (CPU) mit Rechenwerk (Arithmetic Logic Unit, ALU) und Steuerwerk (Control Unit) sowie auf den Arbeitsspeicher (RAM). Die Benutzungsoberfläche entspricht dabei etwa dem folgenden Blockdiagramm:

Rechnerstruktur[1]

Man erkennt von links nach rechts den Arbeitsspeicher (RAM), das Steuerwerk (Control Unit) und das Rechenwerk (Arithmetic Logic Unit). Das Bus-System des vereinfachten Blockschaltbildes ist in JOHNNYs Benutzeroberfläche in einen Adressbus (oben) und einen Datenbus (unten) aufgespalten worden. Außerdem kann in den Inhalt des Arbeitsspeichers hineinschauen, ebenso ins Rechenwerk. Beim Start ist der Aufbau des Steuerwerks (Control Unit) noch verdeckt, um die Dinge zunächst einfach zu halten.

JOHNNYs Benutzeroberfläche[2]
Vieles ist beim Johnny-Simulator einfacher als bei einem richtigen Rechner.
  • Obwohl praktisch alle "echten" Rechner im Binärsystem rechnen, tut dies der Simulator in unserem gewohnten Dezimalsystem.
  • Auch die Funktion des Bus-Systems ist gegenüber echten Rechnern vereinfacht: Normalerweise können sich Bus-Systeme keine Daten merken, sondern sind lediglich Verbindungswege.
  • Der Inhalt des RAM kann im Simulator gelöscht, aus einer Datei geladen bzw. in eine Datei geschrieben werden.
All diese Vereinfachungen sollen den Benutzern des Simulators die Bedienung vereinfachen, die Grundprinzipien des Rechners bleiben jedoch erhalten.

Arbeitsspeicher und Prozessor von JOHNNY

Der Arbeitsspeicher (MEMORY)

[3]

Betrachten wir zunächst den Arbeitsspeicher auf der linken Seite des Bildschirms. Dieser ist hier tatsächlich als eine Tabelle dargestellt, was seiner tatsächlichen Struktur recht nahe kommt. In der Spalte „Adr" stehen die (unveränderlichen) Adressen. In den beiden Spalten „Hi" und „Lo" kann eine Zahl zwischen 0 und 19999 abgelegt werden. Das ist der Inhalt der Speicherstelle. Im Bild rechts steht z.B. in der Speicherstelle mit der Adresse 003 der Inhalt 4711. Aus bestimmten Gründen, die später noch klar werden, werden dabei die 10000er- und die 1000er-Stelle in einer gesonderten Spalte „Hi“, die 100er-, die 10er- und die 1er-Stelle „Lo“ geschrieben. Die hinteren beiden Spalten „Asm“ und „Op“ werden später eine Rolle spielen, sie sind aber wirklich nur Kommentare. Der eigentliche RAM-Inhalt sind nur die beiden weiß hinterlegten Spalten „Hi“ und „Lo“.

In einem echten Rechner kann man auf die Inhalte der Speicherstelle nur über das Bus-System zugreifen, sie also lesen oder verändern. Dazu muss zunächst die entsprechende Adresse auf den Adressbus gelegt werden (Eingabefeld oben links mit grauer, unbeschrifteter Taste zum Übernehmen des eingegebenen Wertes auf den Adressbus). Dann kann man den Inhalt der Speicherstelle entweder auf den Datenbus kopieren oder aber den Inhalt des Datenbusses in den Speicher kopieren.

Beim Simulator kann man direkt in den Speicher hineinschauen. Bei JOHNNY gibt es sozusagen zwei "Fenster" zum Speicher, ein oberes und ein unteres. Diese können -- wie im Bild -- den gleichen Bereich von Hausnummern, aber auch unterschiedliche zeigen. Das ist später bequem, muss uns aber im Augenblick noch nicht interessieren.

Durch Klicken auf die entsprechende Speicherstelle kann man auch deren Inhalt verändern.


Das Rechenwerk (ARITHMETIC LOGIC UNIT)

[4]
Betrachten wir nun das Rechenwerk (Arithmetic Logic Unit). Diese kann mit Daten, die auf dem Datenbus liegen, rechnen. Kernstück des Rechenwerks ist der so genannte Akkumulator (lat.: „Sammler“). In ihm sammeln sich die Rechenergebnisse an. Drückt man z.B. auf die Taste plus, so wird der Wert auf dem Datenbus zum Wert des Akkumulators addiert und das Ergebnis wieder im Akkumulator gespeichert. Johnny beherrscht von sich aus nur die beiden Rechenoperationen plus und minus, alles andere muss man ihm sozusagen beibringen (mehr dazu später). Der Wert des Akkumulators kann auch wieder auf den Datenbus kopiert werden (mit acc->db). Daneben gibt es noch ein paar andere Möglichkeiten, den Akkumulator zu manipulieren, die Du aber auch leicht selbst herausfinden kannst. Wichtig für später ist auch die Kontrolllampe links neben dem Akkumulator. Diese zeigt an, ob der Inhalt des Akkumulators gerade den Wert 0 hat.

Quellen

Suche

v
12.4.1.1
dev.inf-schule.de/rechner/johnny/grobarchitektur/johnnysimulator
dev.inf-schule.de/12.4.1.1
dev.inf-schule.de/@/page/DV5hyTp575ok5Pd0

Rückmeldung geben