Andere Antworten haben gemessen, wie RAM intern funktioniert, aber sie haben noch nicht erwähnt, wie es in ein System passt. Der am einfachsten zu verstehende RAM-Typ ist ein statischer asynchroner RAM. Ein solches Gerät weist eine Anzahl von Adresspins, eine Anzahl von Datenpins und einige Steuerpins auf, die zusammen drei interessierende Zustände aufweisen:
- Leerlaufzustand, in dem die Signale an den Adress- und Datenpins ignoriert werden und die Datenpins "schwebend" sind.
- Schreibzustand, in dem das Gerät die Signale auf den Datenpins (die schwebend sind) kontinuierlich an den durch die Adresspins angegebenen Speicherplatz überträgt.
- Lesezustand, in dem sich das Gerät kontinuierlich bemüht, die Datenpins mit dem zuletzt in den durch die Adresspins angegebenen Speicherplatz geschriebenen Wert anzusteuern.
Ein typischer statischer Speicherchip weist einige zeitliche Einschränkungen auf, die effektiv modelliert werden können, indem gesagt wird, dass sich die verschiedenen Eingänge so verhalten können, als ob sie verschiedene (nicht notwendigerweise konstante) Verzögerungen aufweisen. Eine Leseoperation kann dazu führen, dass beliebige (Müll-) Werte kurz an den Datenpins ausgegeben werden, bevor der Chip mit der Ausgabe korrekter Daten beginnt. Um eine Schreiboperation durchzuführen, muss man dem Chip einige Zeit eine gültige Adresse zuführen, bevor die Signale aktiviert werden, um den Chip in den "Schreib" -Modus zu versetzen, und man muss die korrekten Daten für einige Zeit nach dem Herausnehmen des Chips auf den Datenstiften halten Viele Speicherchips haben einen zusätzlichen Status, der als "Bereit zum Lesen" angesehen werden kann: Der Chip bestimmt kontinuierlich, welcher Wert auf dem Datenbus ausgegeben werden würde, wenn er aufgefordert würde, den adressierten Speicherort auszugeben. Wenn der Chip dann aufgefordert wird, diesen Ort auszugeben, kann er ihn viel schneller liefern, als wenn er "von vorne" beginnen müsste.
Beachten Sie, dass ein typischer statischer Speicherchip zwar intern als Zeilen- / Spaltenraster verdrahtet wird (wie in anderen Antworten angegeben) und etwa die Hälfte seiner Adresspins zur Steuerung von "Zeile" und die Hälfte zur Steuerung von "Spalte" verdrahtet ist, a Ein typischer dynamischer Speicherchip verwendet einen Satz Adresspins, um sowohl die Zeile als auch die Spalte zu steuern. Um auf den dynamischen Speicher zuzugreifen, muss eine Zeilenadresse ausgewählt und dann ein Pin mit dem Namen / RAS (Row Address Select) aktiviert werden. Dies speichert sowohl eine Zeilenadresse als auch bewirkt, dass diese bestimmte Zeile von Speicherstellen in einen temporären Puffer gelesen wird. Man kann dann die Adresspins zusammen mit einigen anderen Steuerpins verwenden, um auf diesen temporären Puffer auf ähnliche Weise wie bei einem statischen RAM zuzugreifen. Sobald man mit einer Reihe fertig ist, kann man / RAS. Dadurch wird der (möglicherweise geänderte) Inhalt des Zeilenpuffers in die entsprechende Zeile im Array zurückkopiert. Einige Zeit nach der Freigabe von / RAS ist der Speicherchip bereit, eine weitere Zeilenadresse zu empfangen, und / RAS wird erneut aktiviert.
Beachten Sie, dass beim Lesen einer Zeile aus dem Speicherarray in den temporären Puffer diese Zeile aus dem Speicherarray gelöscht wird. Selbst wenn man keine Änderungen am Zeilenpuffer vornehmen würde, wäre es folglich notwendig, ihn zurück in das Speicherarray zu schreiben, bevor man auf eine andere Zeile zugreifen könnte. Beachten Sie auch, dass die Zeit, die für den Zugriff auf eine Zeile erforderlich ist, und die Zeit zwischen dem Abschluss einer Zeile und dem Zugriff auf eine andere Zeile viel länger sind als die Zeit, die zum Lesen und Schreiben von Daten im Puffer erforderlich ist. Obwohl viele ältere Mikrocomputer immer die gesamte Sequenz "Zeile auswählen; Byte lesen oder schreiben; Zeile abwählen" für jeden Speicherzugriff ausführen würden, werden schnellere Computer versuchen, bei jeder Zeilenauswahl so viel wie möglich zu tun (ich werde gestehen einige Neugierde, warum ältere Computer dies nicht taten t diesbezüglich keine größeren Anstrengungen unternehmen, wenn auf Speicher für Dinge wie Aktualisierungen der Videoanzeige zugegriffen wird, da in vielen Fällen leicht in Gruppen von zwei, vier oder acht Bytes auf den Videospeicher zugegriffen werden konnte. Ferner enthalten moderne Speichervorrichtungen Merkmale, die es ermöglichen, dass bestimmte Operationen in vielen Fällen überlappen (z. B. in der Lage zu sein, einen Zeilenpuffer zurück in das Speicherarray zu schreiben, während eine andere Zeile gelesen wird).