Speicher
Was ist ein Speicher?
Ein Schrank mit nummerierten Schubladen veranschaulicht ganz gut den Speicher im Computer.
Ein Speicher ist eine Folge von Registern, die alle über eine Adresse verfügen.
In unserem Speichermodell sind die Register mit den Adressen 0, 1, 2, ... versehen. Die Anzahl der Register ist hier nicht genau festgelegt. In realen Speicherbausteinen ist sie natürlich begrenzt.
In unserem Speichermodell können in den Speicherzellen (d.h. in den Registern) natürliche Zahlen abgelegt werden.
Experimente mit dem Bonsai-Simulationsprogramm
Im CPU-Fenster siehst du einen Speicherbaustein, der mit zwei Bussen verbunden ist, einem Adressbus und einem Datenbus. Zusätzlich sind hier zwei Register mit den Bussen verbunden.
Wenn die Darstellung im CPU-Fenster zu klein ist, dann vergrößere insgesamt die Darstellung im Browser. Führe jetzt folgende Experimente aus, um das Verhalten eines Speichers kennen zu lernen.
Aufgabe 1
(a) Schaue erst einmal "in den Speicher rein". Klicke hierzu den Reiter mit der Aufschrift "Datenspeicher" an. Jetzt siehst du, welche Speicherzellen aktuell mit Daten belegt sind. Ändere direkt im Speicher Daten ab und füge auch weitere hinzu. Schaffst du es, nur die Speicherzellen mit den Adressen 0 und 5 mit einer 1 zu belegen?
(b) Den Speicherinhalt kannst du auch in einer Datei abspeichern. Probiere das aus und schaue dir den Dateiinhalt mit einem Editor an. Natürlich kannst du dann auch in Dateien gespeicherte Speicherzustände wieder in den Bonsai-Simulator laden. Probiere das auch einmal aus.
Aufgabe 2
Stelle den Ausgangszustand des Simulationprogramms wieder her (am einfachsten geht das, wenn du die Seite neu lädst). Arbeite jetzt in der CPU-Ansicht.
(a) Aktuell liegt eine 0 auf dem Adressbus. Warum eigentlich? Das Tor, das den Speicher mit dem Adressbus verbindet, ist so eingestellt, dass die Adresse am Speicher anliegt. Ändere jetzt den Inhalt von Register A mit der +- und --Schaltfläche und beobachte die Auswirkungen auf den Adressbus und die Speicheranzeige. Schließe auch einmal das Tor, das den Speicher mit dem Adressbus verbindet. Was wird jeweis im Speicherbaustein angezeigt?
(b) Lege jetzt gezielt die Adresse 1 an den Speicher. Öffne dann das Tor vom Speicher zum Datenbus (roter Pfeil vom Speicher zum Datenbus). Öffne auch das Tor vom Datenbus zum Register D (grüner Pfeil vom Datenbus zum Register). Ändere auch in dieser Situation noch einmal den Wert in Register A. Du solltest dann jeweils direkt Änderungen in Register D sehen.
(c) Stelle den Ausgangszustand des Simulationprogramms wieder her. Im Register D ist der Wert 42 gespeichert. Versuche durch geeignetes Öffnen von Toren diesen Wert in die Speicherzelle 0 zu kopieren.
(d) Führe folgende Aktionen mit geeigneten Torsteuerungen durch: Der Inhalt von Speicherzelle 1 soll zunächst in Register D transportiert werden. Dann soll dieser Wert mit der +-Schaltfläche von Register D um 1 erhöht werden. Abschließend soll der um 1 erhöhte Wert wieder in die Speicherzelle 1 transportiert werden. Beachte, dass hier zwischenzeitlich auch Tore geschlossen werden müssen.
(e) Führe folgende Aktionen mit geeigneten Torsteuerungen durch: Der Inhalt von Speicherzelle 2 soll in Speicherzelle 3 kopiert werden. Benutze das Register D als eine Art Hilfsregister zum Zwischenspeichern.
Quellen
- [1]: Schubladenschrank - Urheber: Klaus Merkert - Lizenz: Creative Commons BY-SA 3.0 DE