Speichergrundlagen: RAM und ROM
← Alle Artikel

Speichergrundlagen: RAM und ROM

6 Min

Was „Speicher" in der digitalen Logik bedeutet

Jede bisher behandelte Schaltung berechnet entweder sofort ein Ergebnis aus ihren aktuellen Eingängen (kombinatorische Logik) oder speichert ein einzelnes Bit (Latches und Flip-Flops). Speicher skaliert diese Einzelbit-Idee auf Tausende oder Milliarden von Bits, organisiert so, dass jedes davon durch Angabe einer Adresse gelesen oder geschrieben werden kann.

RAM: ein Array von Latches

Random Access Memory ist konzeptionell ein Gitter aus Einzelbit-Speicherzellen (im statischen RAM buchstäblich ein Latch pro Bit), angeordnet in Zeilen und Spalten. Ein Decoder nimmt die Adressbits und aktiviert genau eine Zeile; die Daten dieser Zeile sind dann über gemeinsame Datenleitungen lesbar oder schreibbar.

„Zufallszugriff" bedeutet, dass jede Adresse in derselben Zeit erreichbar ist, unabhängig davon, auf welche Adresse zuvor zugegriffen wurde — anders als bei einem Schieberegister oder Band, wo das Erreichen eines weit entfernten Bits länger dauert.

Lesen und Schreiben

Eine Write-Enable-Leitung steuert die Richtung: Wenn aktiv, werden die Latches der decodierten Zeile auf den Wert der Datenleitungen gesetzt. Wenn inaktiv, wird stattdessen der aktuelle Inhalt der decodierten Zeile zum Lesen auf die Datenleitungen gelegt. Es ist immer nur eine Zeile ausgewählt — genau deshalb macht der Decoder aus dem vorherigen Artikel adressierbaren Speicher überhaupt erst möglich.

ROM: dauerhaft verdrahtete Daten

Read-Only Memory verwendet das gleiche Adressierungsprinzip — ein Decoder wählt eine Zeile —, aber statt Latches ist jede Zelle eine feste Verbindung (vorhanden oder nicht), die zur Herstellungszeit eingebrannt oder in manchen Varianten einmalig programmiert wird. Es gibt nichts zu schreiben: Dieselbe Adresse liefert immer denselben Wert, was ROM perfekt für Daten macht, die sich niemals ändern dürfen, wie einen Bootloader oder eine feste Nachschlagetabelle.

RAM vs. ROM in der Praxis

Ein echtes System verwendet beide: ROM enthält den Startcode, der ausgeführt wird, bevor etwas anderes konfiguriert ist, und RAM enthält Arbeitsdaten und das Programm nach dem Laden. Boolflow modelliert kein vollständiges Speicherarray als einzelnen Block, aber das Adressierungsprinzip ist direkt sichtbar: Laden Sie ein Decoder-Beispiel und beachten Sie, dass derselbe Decoder, der eines von mehreren Latches ansteuert, genau das ist, wie ein winziges RAM aus bereits bekannten Teilen aufgebaut wird.

Speicher-Beispielschaltung laden