[vorheriger Abschnitt][nächster Abschnitt][Inhalt]

2 Grundlagen der Rechnerarchitektur


2.1.2 random access memory (RAM)

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:

  1. Welches der m Register soll benutzt werden?
  2. Soll dieses Register einen neuen Wert annehmen (man sagt "in das RAM wird geschrieben" oder "das RAM wird beschrieben") oder soll es seinen Wert ausgeben (man sagt "aus dem RAM wird gelesen" oder "das RAM wird ausgelesen")?

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:

[Steuerfenster für RAM]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.


[vorheriger Abschnitt][nächster Abschnitt][Inhalt] Carsten Kelling 1996 ([EMail senden]); letzte Änderung: 17. September 1997