i

Fachkonzept Speicher

Speicher

Statt einzelner Register soll jetzt eine Speichereinheit mit integrierten Registern an den Bus angebunden werden.

Ein Speicher ist eine Folge von fortlaufend nummerierten Registern.
Die Nummer eines Registers (0, 1, 2, ...) ist die Adresse, über die man auf seinen Inhalt zugreifen kann.
Im Speicher werden das Maschinenprogramm und die zu verarbeitenden Daten
(s. Befehlscodierung und Speicherorganisation beim universellen Murmelrechner)verwaltet.
Ein Register des Speichers enthält also entweder eine Programmzeile oder einen Datenwert.

Die Anzahl der Register ist beim BONSAI-Simulator nicht genau festgelegt. In realen Hardware-Speicherbausteinen ist sie natürlich begrenzt.

In den BONSAI-Speicherzellen (d. h. in den Registern) können nur natürliche Zahlen einschließlich Null abgelegt werden (d. h. der einzige Datentyp ist integer, der negative Zahlenraum ist ausgeschlossen).

Speicher1[1]

Abbildung 1 zeigt, dass die ausgewählte Adresse über einen eigenen Bus übertragen wird, der dort gespeicherte Wert über einen anderen.
Daher muss grundsätzlich zwischen Datenbus (rot dargestellt) und Adressbus (grün dargestellt) unterschieden werden.

Ausgangssituation

  • Register A schreibt eine Null auf den Adressbus.
  • Die Speichereinheit liest diesen Wert und spricht das Register mit der Adresse 0 an.
  • Der dort gespeicherte Wert - die Zahl 17 - wird auf den Datenbus geschrieben.
  • Register D liest diesen Wert vom Bus.

Beispiel für das Verändern eines Werts im Speicher

  • Um den an Adresse 0 gespeicherten Wert zu verändern, wird ein Hilfsregister (hier: Register D) benötigt. Den alten Wert hat es bereits vom Datenbus eingelesen. Jetzt müssen zunächst alle Tore, die an den Datenbus angebunden sind, wieder geschlossen werden.
    Zur Erinnerung: Lesend geöffnete Tore müssen immer vor dem schreibenden Tor geschlossen werden!
  • Anschließend kann der Wert von Register D verändert werden. Im Beispiel wird die Zahl 17 inkrementiert.
  • Zuletzt wird der an Adresse 0 gespeicherte Wert (17) durch den neuen Wert (18) überschrieben.
    Dazu muss das Tor von Register D schreibend geöffnet werden und das Tor, das den Speicher mit dem Datenbus verbindet, muss lesend geöffnet werden.
  • Um den neuen Wert vor versehentlicher Veränderung zu schützen, muss mindestens das vom Adressbus lesende Tor des Speichers wieder geschlossen werden.
    In der Abbildung sieht man, dass der neue Wert von Register D (20) nicht in den Speicher übernommen wird.

 

Das Tor, das die Speichereinheit mit dem Adressbus verbindet, ist beim Bonsai immer (lesend) geöffnet. Dadurch wird gewährleistet, dass zu jedem Zeitpunkt korrekt auf die aktuell benötigte Adresse zugegriffen wird.

 

Für die Aufgaben, die im Beispiel von den Registern A und D übernommen wurden, hat der Bonsai zwei spezielle Register: den Akku und den Befehlszähler. Beide werden in den folgenden Abschnitten genauer vorgestellt.

Quellen

Suche

v
7.2.4.1.6
www.inf-schule.de/rechner/bonsai/cpu/operationswerk/konzept_speicher
www.inf-schule.de/7.2.4.1.6

Rückmeldung geben