Wozu muss eine SRAM/DRAM-Speicherzelle vorgeladen werden?

Warum ist das Vorladen so notwendig, während der Lesevorgang an SRAM/DRAM-Zellen durchgeführt wird?

Zum Beispiel in der unten gezeigten SRAM 6T-Zelle,

Geben Sie hier die Bildbeschreibung ein

Das Lesen von 0 erfordert, dass die Bitleitung auf 0 entladen wird; Das Lesen von 1 erfordert, dass die Bitleitungsspannung dem logischen Wert '1' entspricht.

Rechts?

Warum kann diese Ladung (bei Q = 1) also nicht über M4 und M6 erfolgen? dh warum betrachten wir M4-M6 nicht als Pfad, der stark genug ist, um die Bitleitung hochzuziehen?

Warum verlassen wir uns auf den Vorladewert, um auf der Bitleitung eine logische '1' zu geben?

Liegt es daran, dass NMOS M6 ein schwacher Hochpass ist? (aufgrund der Tatsache, dass NMOS ein schwacher Hochpass ist)

Auch im Falle des Vorladens ist die Vorladespannung = Vdd oder Vdd/2?

DRAM und SRAM sind nicht dasselbe. Fragst du nach beidem oder nur nach SRAM?
Nun, beide Fälle laden normalerweise hoch vor und verwenden ein NMOS zum Herunterziehen.
@ jbord39 DRAM ist völlig anders - es verwendet einen einzelnen Transistor als Durchgangsgatter, und die mittlere Versorgung wird vorgeladen, um den Effekt der Ladungsteilung zwischen der Bitleitung und dem Bitkondensator zu verringern.
@Tom Carpenter "DRAM ist völlig anders", nein, wenn Sie meinen Kommentar lesen, laden sie beide normalerweise hoch vor und verwenden ein NMOS zum Herunterziehen (offensichtlich sind sie unterschiedlich oder hätten denselben Namen - ich habe ihre Eigenschaften in Bezug genommen zwei Wege, nicht alle Wege). Ja, die WL wird während des READ-Vorgangs auf vcc/2 vorgeladen, aber das interne Speicherbit ist idealerweise Rail-to-Rail (obwohl seine Spannung leckt, wenn es nicht aufgefrischt wird). Die Schreiboperation ist jedoch eine volle Schiene.

Antworten (4)

Das Vorladen soll sich nicht mit der Fähigkeit befassen, Treiberstrom in eine Bitleitung einzuspeisen. Das Vorladen soll die Ausbreitungsverzögerungszeit minimieren.

Wenn keine Vorladung vorhanden ist, geht der maximale Spannungshub in einer Anzeige von "0" nach "1" (oder umgekehrt), was in T01 geschieht.

Das Vorladen stellt sicher, dass die Bitleitung auf eine Spannung in der Mitte zwischen "0" und "1" getrieben wird, so dass, wenn die eigentliche Zelle ausgelesen wird, die Leitung nur von der Mittelspannung auf entweder "0" oder "1" getrieben werden muss. Dies führt zu etwa der Hälfte der Übergangszeit (1/2*T01) und zu einem schnelleren Speicher.

Die Antworten hier sind gut, wie in der normalen Praxis die Bitleitungen mit VDD/2 belastet werden. Aber das beantwortet die Frage nicht wirklich, denn es:

  • gilt nicht immer (hängt von den Cache-Anforderungen und Prozesstechnologien ab. Ich habe viele Caches gesehen, die auf VDD vorgeladen werden, da VDD / 2 bei Niederspannungsbetrieb zu riskant sein kann)

  • Der „kanonische Fall“, den jeder zuerst lernt, lädt nicht auf VDD/2 vor, und das ist die Situation, die er fragt. Es gibt jedoch immer noch einen guten Grund, warum sie zu VDD gehen.

Der Hauptgrund, warum sie die Bitleitungen auf HIGH laden (in der Schaltung, die er zeigt) und sie entladen lassen, ist, dass die Durchgangstransistoren NMOS sind. Dies bedeutet, dass sie eine sehr solide „0“ bestehen, aber eine verschlechterte „1“.

Anstatt also die Bitleitungen niedrig zu starten und sie durch das NMOS hochziehen zu lassen (langsamer und schwächer, kann nur auf VSUPPLY-VTH ziehen), werden sie die Bitleitungen hoch starten und sie durch das NMOS herunterziehen lassen (was stärker herunterziehen kann). , auf eine solide '0').

Ein weiterer sehr guter Grund sind die Einschränkungen bei der Transistorgröße, die für eine gute Beschreibbarkeit/Lesbarkeit eingehalten werden müssen.

Leseoperation: M1 muss stärker sein als M5, damit der zwischen M5/M1 gebildete Spannungsteiler den Bitknoten nicht umdreht.

Schreibvorgang: M2 muss schwächer sein als M5, damit M5 beim Schreiben einer '1' die Rückkopplungsschleife überwinden kann.

Also M1 > M5 > M2 (und M3 > M6 > M4). Die PMOS sind die schwächsten Transistoren in der ganzen Zelle, warum sollte man das zum Hochziehen verwenden?

Darüber hinaus waren NMOS traditionell schneller als PMOS. Dies gilt heute weniger für niedrigere Prozesstechnologien (22nm, 14nm, 10nm usw.), wird aber normalerweise immer noch angenommen.

Was ist die Notwendigkeit, eine solide „0“ zu haben, wenn wir einen Leseverstärker verwenden?
@Surferonthefall: Weil Sie immer noch in der Lage sein müssen, die Bitzellen zu schreiben. Darüber hinaus verwenden nicht alle Speicherarrays Leseverstärker (sie werden in dieser Frage nicht erwähnt). Die Leseverstärker würden im Allgemeinen verwendet, um die Werte der komplementären BLs schneller zu "schnappen", als es nur die gelesene einzelne Bitzelle liefern könnte. Aber während eines Schreibvorgangs müssen Sie immer noch in der Lage sein, den einen oder anderen internen Knoten je nach Schreibschema, bei Vorhandensein von Rauschen und über niedrige und hohe Spannungen vollständig herunterzuziehen.
Wir haben positives Feedback, das uns hilft zu schreiben: „Ich bin in Ordnung genug, um auf VT statt auf VDD-VT aufzuladen“, „Dies gilt heute weniger für niedrigere Prozesstechnologien (22 nm, 14 nm, 10 nm usw.)“. Auch das Vorladen verbraucht mehr Strom, warum also nicht mit niedrigem bl beginnen und ein Differential in einem Array auf Sense-Amp-Basis erhalten? Können wir uns auch für PMOS-Zugriffstransistoren entscheiden?
@ZaidSyedMMd: In einem Standard-SRAM schreiben Sie nicht wirklich eine '1', Sie schreiben eine '0', die sich auf die andere Seite der Bitzelle ausbreitet. Wenn Sie in der Lage wären, eine „1“ zu schreiben, würden Ihre Lesevorgänge (bei denen Sie beide BLs auf eine „1“ vorladen, bevor Sie die WL-Durchgangstransistoren einschalten) ein falsches Schreiben von „1“ ausführen. Ich würde vermuten, dass der Grund dafür ist, dass es langsamer ist und die typische Bitzelle nicht in der Lage ist, die Bitleitung hochzuziehen (schwache PMOS-Geräte). Und in Bezug auf die PMOS-Zugriffstransistoren: weil traditionell N-Vorrichtungen stärker sind als P-Vorrichtungen. Sie können das Array jedoch auf beide Arten erstellen.
Ich frage, stellen Sie sich ein Array vor, das so aufgebaut ist, dass wir hier Bitleitungen vorab entladen, wenn sich Worlines öffnen, können wir eine von bl ein wenig aufladen. Wenn eine einzelne Mem-Zelle Bitleitungen entladen kann, ist das Aufladen gleich. Ist in diesem Szenario PU>PG>PD diese Konfiguration nicht möglich?
@ZaidSyedMMd: Ja, das ist möglich, es ist im Wesentlichen ein PMOS-basiertes SRAM, das "Dual" des normalen NMOS-basierten SRAM. Ich habe noch nie gesehen, dass es auf diese Weise implementiert wurde, aber ich bin sicher, dass es passiert. Hin und wieder wird es in der ersten Planungsphase eines Entwurfs erwähnt.

Sie können keinen hohen Wert durch einen NMOS-Schalter treiben. Der Ausgang hört auf, schnell anzusteigen, sobald der Ausgang sich Vdd-Vt nähert. Durch das Vorladen muss die Schaltung nur einen 0-Wert treiben, was sie gut kann. Ich habe ein einfaches Schema beigefügt, um die Idee zu demonstrieren.

schematisch

Simulieren Sie diese Schaltung – Mit CircuitLab erstellter Schaltplan

Bei DRAM besteht der Zweck des Vorladens darin, die aktuelle Zeile zu schließen und die Aktivierung einer anderen Zeile zu ermöglichen.

In dem Fall, in dem dieselben Zeilenzellen gelesen werden sollen, kann das Vorladen später durchgeführt werden, wenn ein Fast-Page-Mode-DRAM verwendet wird.