Der Grund, warum das Schreiben des DRAM länger dauert, liegt in der Empfindlichkeit des DRAM-Bits und in der Art und Weise, wie die Arrays verkabelt sind. Im Wesentlichen machen diese beiden Parameter es erforderlich, einen Lesevorgang durchzuführen, bevor Daten geschrieben werden.
Speicherarrays, einschließlich DRAM, sind normalerweise in einem Raster angeordnet. Die Ausgänge jedes Bits sind vertikal verbunden, und die Freigabesignale für jedes Bit sind horizontal verbunden. Um ein Datenbit zu lesen, verbindet das horizontale Freigabesignal oder die Wortleitung die gesamte Zeile mit den vertikalen Drähten, die als Bitleitungen bekannt sind. Selbst wenn Sie nur ein einzelnes Bit in einem großen Array möchten, müssen Sie auf die gesamte Zeile zugreifen. Diese verringerte Flexibilität beim Routing ist notwendig, um die gewünschte Dichte in Speicherarrays zu erreichen. DRAM ist im Wesentlichen ein Array von Kondensatoren mit Schaltern. Bei der Auslegung dieser Kondensatoren machen sie nur einen Bruchteil der parasitären Verdrahtungskapazitäten der vertikalen Bitleitungen aus. Mit den Bitleitungen verbundene Verstärker können die kleine Spannungsänderung erkennen, die auftritt, wenn eine geladene DRAM-Zelle mit der Bitleitung verbunden ist, und sie auf einen logischen Wert verstärken, den andere Schaltungen und Chips verwenden können. Aufgrund der Ladungsteilung der Bitleitungskapazität und der DRAM-Zellenkapazität werden die Daten auf einem DRAM-Bit bei jedem Zugriff effektiv gelöscht. Wenn Sie ein einzelnes DRAM-Bit lesen möchten, müssen Sie den Wert in dasselbe Bit zurückschreiben. Somit wird jedes Mal, wenn Sie aus dem DRAM lesen, der Zyklus gelesen und dann geschrieben.
Aufgrund der Gitternatur von Speicherarrays ist die Anzahl der Bits in einer Zeile normalerweise viel größer als die Wortgröße des Arrays. Dies bedeutet, dass, wenn Sie ein Wort aus einer Zeile lesen oder schreiben möchten, Bits durch die Wortzeile aktiviert werden, die Sie nicht lesen oder schreiben möchten. Diese Daten werden zerstört, wenn nichts unternommen wird, um sie zu erhalten. Das heißt, wenn Sie lesen, müssen Sie die gesamte Zeile lesen und die gesamte Zeile zurückschreiben. Zum Schreiben müssen Sie die gesamte Zeile lesen und dann die gelesenen Daten zusammen mit den Daten, die Sie schreiben möchten, zurückschreiben. Somit wird die Prozedur zum Schreiben von Daten in das Array gelesen und dann geschrieben.
Wir sehen also, dass die Vorgehensweise beim Lesen und Schreiben im Wesentlichen gleich ist: Lesen Sie zuerst eine Zeile und schreiben Sie dann den neuen Inhalt zurück. Das Lesen erfolgt zuerst, sodass die Daten zuerst verfügbar gemacht werden können, wenn es sich bei dem Prozess um ein Mehrzyklusereignis handelt. Das Schreiben kann am längsten dauern, da das Schreiben erst am Ende des Prozesses erfolgt. In der Vergangenheit war dies möglicherweise ein mehrzyklischer Prozess, aber ich habe Verstärker zum Lesen gesehen, die zurückschreiben, sobald sie den Wert kennen, der sie effektiv zum Binden zum Lesen und Schreiben macht.