Alle Speicherzellen haben entweder 0
oder 1
. Die CPU teilt dem Speichergerät mit, von welchen Zellen sie die Binärwerte benötigt, und liefert diese Adresse an das Speichergerät. Innerhalb der Speichervorrichtung wird die Adresse in einer Zeilen- und Spaltenadresse decodiert, und die Zelle an dieser Position in der Matrix kann ihre Daten zum Datenbus, dh zum Daten-Pin, bringen.
Angenommen, wir haben eine 8-Bit-Adresse 01100101
. Dies wird in eine Zeilenadresse 0110
(das Halbbyte hoher Ordnung) und eine Spaltenadresse 0101
(das Halbbyte niedriger Ordnung) aufgeteilt. Die Zeilenadresse wählt Zeile 06 aus, sodass alle mit dieser Zeile verbundenen Zellen ihre Daten bereit haben. Die Spaltenadresse wählt die Zelle in Spalte 05 dieser Zeile aus, so dass schließlich nur eine einzelne Zelle ihre Daten auf dem Ausgangs-Pin ablegen darf.
Das Speichern von Daten folgt demselben Muster: Es wird nur eine Zeile ausgewählt, und in der Zelle in der angegebenen Spalte in dieser Zeile werden die auf dem Pin vorhandenen Daten gespeichert.
Dies ist für 1 Bit. Die Operation wird gleichzeitig für die gesamte Datenwortbreite ausgeführt. Wenn Sie also über einen byteweiten Speicher verfügen, werden 8 Bits abgerufen und ihr Wert auf 8 Datenbus-Pins platziert.
Bearbeiten
Dieses Bild soll Ihnen helfen, die Dinge besser zu sehen:
Dies ist eine Darstellung eines DRAM- Arrays, bei dem Daten in der Ladung der Kondensatoren gespeichert sind , wobei jeder Kondensator ein Bit ist. Der Zeilenteil der Adresse (hier A1..A0) wählt eine Zeile aus, dh sie aktivieren alle FETs in dieser Zeile, sodass die Pegel der Kondensatoren für diese Zeile in der entsprechenden Spalte verfügbar werden. Dann wählt der Spaltenadressauswahlblock, der vom anderen Teil der Adresse A3..A2 gesteuert wird, das eine Bit aus, von dem die Daten stammen sollen.
DRAM ist einfach zu bauen, hat aber einen bösen Nachteil: Das Lesen der Daten entlädt den Kondensator, sodass die Daten verloren gehen. Um diesem DRAM entgegenzuwirken, verfügt er über Leseverstärker, die den aktuellen Status der Speicherzelle erkennen und beim Lesen aktualisieren. Außerdem muss diese Aktualisierung regelmäßig durchgeführt werden, da die Ladung der Kondensatoren auch dann verloren geht, wenn der Speicher nicht gelesen wird. Der Bedarf an Auffrischungsschaltungen kann dank der Kompaktheit der DRAM-Zellen leicht kompensiert werden.
SRAM verwendet ein paar Transistoren zum Speichern der Daten und ist nicht so flüchtig wie DRAM (obwohl die Daten beim Ausschalten immer noch weg sind). Bei EEPROM und Flash werden die Daten im (isolierten) Floating Gate eines FET gespeichert und verlieren daher beim Ausschalten nicht ihre Daten.
Weiterführende Literatur:
Diese Antwort zur Datenaufbewahrung im Flash-Speicher.