Station - Speicher

Eine Speichereinheit

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

Speicher

Lade zur Simulation dieses Systems die Datei registermaschine.txt herunter und benenne sie in registermaschine.py um.

Aufgabe 1

(a) Führe das folgende Testprogramm aus. Beachte, dass das importierte Modul registermaschine.py im selben Verzeichnis wie das Testprogramm abgespeichert ist.

from registermaschine import *

# Erzeugung des Busses
bus = Bus()

# Erzeugung der ALU
alu = ALU_addsub()

# Erzeugung des Speichers
speicher = Speicher([0, 2, 3])

# Erzeugung der Tore
tor3 = Tor(speicher, bus, "write")
tor4 = Tor(speicher, bus, "read")

tor7 = Tor(alu.akku, bus, "read")
tor8 = Tor(alu.akku, bus, "write")
tor15 = Tor(alu.puffer, bus, "read")

# Ausgabe der Registerinhalte
print("0:", speicher.register[0].wert)
print("1:", speicher.register[1].wert)
print("2:", speicher.register[2].wert)

# load_akku register[1]
speicher.regAdresse.setEingang(1)
tor3.oeffnen()
tor7.oeffnen()
tor7.schliessen()
tor3.schliessen()

# add_register register[2]
speicher.regAdresse.setEingang(2)
tor3.oeffnen()
tor15.oeffnen()
tor15.schliessen()
tor3.schliessen()
alu.add()

# store_akku register[2]
speicher.regAdresse.setEingang(0)
tor8.oeffnen()
tor4.oeffnen()
tor4.schliessen()
tor8.schliessen()

# Ausgabe der Registerinhalte
print("0:", speicher.register[0].wert)
print("1:", speicher.register[1].wert)
print("2:", speicher.register[2].wert)

(b) Analysiere das Testprogramm. Hast du eine Vermutung, was in den einzelnen Schritten hier abläuft.

(c) Führe weitere Tests durch, um deine Vermutung zu überprüfen.

Aufgabe 2

(a) Was muss man am Testprogramm ändern, wenn man die Zuweisung register[1] = register[1] + register[2] ausführen will?

(b) Was muss man am Testprogramm ändern, wenn man die Zuweisung register[2] = register[3] - register[2] ausführen will?

Aufgabe 3

Entwickle ein Testprogramm, mit dem man die Zuweisung register[1] = register[1] + 1 ausführen kann. Benutze die Klasse ALU_incdec.

Speicher

Software-Bausteine zur Simulation eines Speichers

Das Klassendiagramm beschreibt die Struktur der Software-Bausteine zur Simulation eines Speichers.

Tor-Bus-Komponente

Ein Speicher-Objekt erzeugt und verwaltet eine beliebige Anzahl von Register-Objekten. Zur Verwaltung der Adresse des aktuell zu bearbeitenden Registers hat ein Speicher-Objekt ein zusätzliches Register-Objekt regAdresse. Mit den Methoden setEingang und getAusgang kann man Werte in das aktuell adressierte Register schreiben bzw. aus diesem Register auslesen.

X

Fehler melden

X

Suche