So wie ein Register der Breite n aus n Flipflops aufgebaut ist, ist ein Speicher mit wahlfreiem Zugriff (random access memory, RAM) aus m Registern zusammengesetzt. Die einzelnen Register sind dabei nicht mehr zu sehen - das RAM ist eine Komponente der Hauptblockebene, der Betrachtungsebene oberhalb der Registertransferebene. Jeder Computer besitzt mindestens ein RAM.
Anders als m Register hat ein RAM aber keine m Dateneingänge und m Datenausgänge, sondern nur einen gemeinsamen Ein- und Ausgang. Es muß also neue Eingänge geben, über die man folgendes steuert:
Zusätzlich dazu enthält das RAM bereits die, für den Anschluß an einen Bus notwendige, Fähigkeit, den Ein-/Ausgang nicht zu benutzen. D.h., wenn der Speicher auf Lesen eingestellt ist, hat man, anders als bei einem reinen Register, noch die Wahl, ob der Wert des ausgewählten Registers tatsächlich zu dem Ein-/Ausgang geschickt wird, oder ob der Ein-/Ausgang, und alles was an ihn angeschlossen sein könnte, unverändert bleibt. Auf der Ebene elektrischer Schaltungen heißt das: Es gibt eine Steuerleitung, die bestimmt, ob das RAM den Ein-/Ausgang treibt.
Die folgende Tabelle zeigt die Unterschiede und Gemeinsamkeiten von Register und RAM anhand der Ein- und Ausgänge:
Name |
Richtung |
Register |
RAM |
Reset | Eingang | Register wird auf festen Wert zurückgesetzt | Normalerweise ist kein Reset-Eingang vorhanden |
Takt | Eingang | Register übernimmt neuen Wert von dem Dateneingang. | Höchstens ein Register übernimmt einen neuen Wert. |
Daten | Eingang | Daten, die im Register gespeichert werden sollen; werden übernommen, wenn Takt "aktiv". | - |
Daten | Ausgang | Inhalt des Registers; wird ständig ausgegeben. | - |
Daten | Ein-/Ausgang | - | Entweder Daten, die ein Register übernehmen soll, oder Daten, die aus einem Register kommen oder momentan nicht benutzt. |
Adresse | Eingang | - | Wählt eines der Register aus. |
Steuerleitung read/ not write | Eingang | - | Wird diese Leitung "aktiviert", soll das durch die Adresse ausgewählte Register ausgelesen, ansonsten beschrieben werden. |
Steuerleitung output enable | Eingang | - | Falls das durch die Adresse ausgewählte Register ausgelesen
werden soll, muß auch diese Leitung "aktiviert" werden, damit der Wert des Registers tatsächlich am Ein-/Ausgang
erscheint; andernfalls erscheint der Ein-/Ausgang von der "Außenwelt" abgetrennt. Darf nicht aktiviert werden, wenn das RAM beschrieben wird! |
Auf der nächsten Seite können Sie ein RAM lesen, schreiben oder nichtstun lassen - ein Java-Applet macht es möglich. Die Hinweise zur Bedienung entsprechen denen für das Register. Naturgemäß gibt es aber noch eine zusätzliche Einstellmöglichkeit:
Durch
Anklicken von "Lesen" oder "Schreiben" wird die Aktion ausgewählt, die das RAM ausführen
soll. Wenn bereits ein Lese- oder Schreibzyklus läuft, wird dieser durch die Auswahl nicht unterbrochen, sehr
wohl aber durch einen Mausklick auf "Reset auslösen"! Dieses Verhalten soll wiederspiegeln, daß
ein Lese- oder Schreibvorgang sinnvollerweise nur komplett ausgeführt wird (sonst ist das Ergebnis undefiniert),
ein Reset aber jederzeit ausgelöst werden können muß. Wenn das RAM den Reset korrekt durchführt,
befindet es sich nachher in einem wohldefinierten Zustand, unabhängig davon, was vorher war.
Carsten Kelling 1996 (); letzte Änderung: 17. September 1997 |