Wie funktioniert ein RAM mit einer CPU?

8

Ich lese ein Assembler-Buch. Das Problem mit diesem Buch ist, dass es versucht zu erklären, wie ein RAM mit einer CPU funktioniert, aber es wird nicht ausführlich erklärt.

Ich möchte wissen, wie eine Speicherzelle, eine Adresszeile und ein Daten-Pin beim Speichern oder Abrufen von Daten funktionieren.

Mond
quelle

Antworten:

9

Alle Speicherzellen haben entweder 0oder 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:

Speicherarray

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.

stevenvh
quelle
// Ich schätze deine Antwort sehr. Darf ich eine neue Frage stellen? Wo hast du es gelernt? Ich verstehe es immer noch nicht vollständig ... kann sein, weil ich es nicht visualisieren kann. Haben Sie ein Bild oder ein Buch, auf das ich mich beziehen kann?
Mond
@Moon - habe es vor langer Zeit im College gelernt. Ich denke, mein Kurs wird Bilder gehabt haben, aber ich habe diesen Kurs nicht mehr (es war die Zeit von allem auf Papier!). Ich werde sehen, ob ich ein gutes Bild davon finden kann, und ich werde es meiner Antwort hinzufügen, wenn ich eines finde.
Stevenvh
1
Das College muss es nicht unbedingt verstehen, aber Sie müssen die Grundlagen von Widerständen, Kappen und Netzwerken sowie ein funktionales Verständnis der Funktionsweise der verschiedenen Arten von Transitoren verstehen. Ich frage mich, ob und wie das Petzold-Buch CODE das Thema abdeckt und es sich lohnt, in einer Bibliothek oder einem Buchladen einen Blick darauf zu werfen.
old_timer
1
Ich würde dringend empfehlen, "von nand zu tetris" durchzugehen, wenn Sie die Interna des Rechnens vertiefen möchten. Bis zur Hälfte des Buches haben Sie sich eine funktionierende CPU und einen funktionierenden RAM aufgebaut. Es ist eine schnelle Lektüre, wenn Sie bereits über die erforderlichen Kenntnisse verfügen, aber es lässt keinen Schritt aus, wenn Sie dies nicht tun.
James M. Lay