-
GEBIET DER ERFINDUNG
-
Die
vorliegende Erfindung betrifft dynamische Speicher und insbesondere
in solchen Speichern verwendete Auffrischschaltungen.
-
HINTERGRUND DER ERFINDUNG
-
Wie
in der Technik bekannt ist, erfordern dynamische Speicher, wie beispielsweise
dynamische Direktzugriffsspeicher (DRAMs), daß darin gespeicherte Daten
von Zeit zu Zeit aufgefrischt werden. Im Fall eines DRAM wird ein
Array aus Speicherzellen auf einem integrierten Schaltungschip bereitgestellt. Eine
typische Speicherzelle enthält
einen Transistor, der an ein Speicherelement, in der Regel einen
Kondensator, angekoppelt ist. Jede Zelle speichert ein Bit (d. h.
eine logische 1 oder eine logische 0) der Daten. Die Zellen sind
in einer Matrix aus adressierbaren Zeilen und Spalten angeordnet,
wobei jede Zeile einem Datenwort mit mehreren Bit entspricht. Das
Datenbit in jeder Zelle ist als eine Ladung oder als keine Ladung
auf dem Kondensator gespeichert. Diese Daten müssen aufgefrischt werden, da
die Ladung des Kondensators im Lauf der Zeit, d. h. über die
Ladungs- oder Datenhaltezeit der Zelle, daraus abfließt. Um einen
Datenverlust zu verhindern, müssen
die in der Zelle gespeicherten Daten vor dem Ende der Datenhaltezeit
aufgefrischt werden. Es folgt daraus, daß die für die Zelle erforderliche Datenauffrischrate
um so höher
ist, je schneller die Ladung aus der Zelle abfließt.
-
Allgemein
ist der während
eines Datenauffrischzyklus verbrauchte Strom relativ hoch. Es wird somit
gewünscht,
Zellen mit hohen Datenhaltezeiten zu haben.
-
Eine
Technik, mit der die Datenauffrischrate für ein Speicherarray bestimmt
wird, besteht in der Verwendung eines externen (d. h. außerhalb
des Chips befindlichen) Prüfgeräts. Das
Prüfgerät mißt die Datenhaltezeit
jeder der Speicherzellen im Array. So wird durch die ”schwächste” aller
Speicherzellen (d. h. die Zelle mit der kürzesten Datenhaltezeit) eine Mindest-Datenhaltezeit
bestimmt. Falls diese Datenhaltezeit unter einem spezifizierten
Wert liegt, können
diese ”schwachen” Zellen
nicht verwendet werden und können
durch Redundanzzellen ersetzt werden, falls sie zur Verfügung stehen.
Ansonsten muß der
Chip verworfen werden, wodurch die Ausbeute reduziert und die Produktkosten
erhöht
werden.
-
In 1 ist ein typisches DRAN gezeigt. Bei diesem
Beispiel enthält
somit das Speicherarray vier Bänke
aus Speicherzellen, die von einer Auffrischschaltung aufgefrischt
werden. Die Auffrischschaltung enthält einen Zähler, der als Reaktion auf
von außerhalb
des Chips gelieferte Auffrischbefehle Zeilenadressen an die Speicherzellen
liefert. So enthält das
DRAN einen internen, d. h. auf dem Chip integrierten Auffrischzähler, der
die Zeilenadresse der Wortleitung liefert, die beim nächsten externen
Auffrischbefehl aufgefrischt werden soll. Der Zähler beginnt entweder an einer
willkürlichen
Zeilenadresse, oder er ist auf einen bestimmten Anfangswert voreingestellt.
Wenn der Zähler
seinen Höchstwert
erreicht hat, läuft
er zurück
und beginnt wieder mit seinem kleinsten Wert. Der Zählerwert
wird bei jedem externen Auffrischbefehl inkrementiert.
-
Ein
weiteres Auffrischsystem wird in der am 23. Februar 1999 veröffentlichten
US 5,857,143 A mit dem
Titel ”Dynamic
Memory Device With Refresh Circuit and Refresh Method”, Erfinder
Ben-Zvi, beschrieben. Hier kann das Speicherarray partiell aufgefrischt
werden, um den Energieverbrauch zu reduzieren. Noch eine weitere
Auffrischschaltung wird in der am 19. Juli 1994 veröffentlichten
US 5,331,601 A mit
dem Titel, ”DRAN
Variable Row Select”,
Erfinder Parris, be schrieben. Hier ändert ein Speicherbauelement
die eingegebenen Auffrischadressen auf weniger Speicherzellen, um
Strom zu sparen oder um mehr Speicherzellen zu adressieren, damit
die Auffrischzeit sinkt. Eine weitere Auffrischschaltung ist aus
der
US 2002/0004882
A1 bekannt.
-
KURZE DARSTELLUNG DER ERFINDUNG
-
Gemäß der vorliegenden
Erfindung wird eine Auffrischschaltung zum Auffrischen von in einem
Array aus dynamischen Speicherzellen gespeicherten Daten bereitgestellt.
Die Schaltung enthält
einen integrierten Schaltungschip. Auf dem Chip ist das Array aus
Speicherzellen ausgebildet. Die Schaltung enthält außerdem eine Auffrischratenanalyseschaltung zum
Bestimmen von Datenhaltezeiten in jeder einzelnen der Speicherzellen
und, anhand dieser Bestimmung, von Auffrischadressenmodifikationssignalen. Außerdem wird
ein Auffrischadreßgenerator
bereitgestellt, der auf dem Chip ausgebildet ist und mit außerhalb
des Chips erzeugten Auffrischbefehlssignalen und mit den Adreßmodifikationssignalen
versorgt wird. Der Auffrischadressengenerator liefert ein internes
Auffrischbefehlssignal zusammen mit Auffrischadressen an das Array
aus Speicherzellen. In den Zellen sind Daten gespeichert, die als
Reaktion auf die internen Auffrischbefehlssignale aufgefrischt werden, wobei
diese aufgefrischten Zellen durch die Auffrischadressen adressiert
werden.
-
Bei
einer derartigen Anordnung können
der Stromverbrauch und/oder die Ausbeute erhöht werden.
-
Bei
einer Ausführungsform
ist die Auffrischratenanalyseschaltung auf dem Chip ausgebildet.
-
Gemäß einer
Ausführungsform
bestimmt die Auffrischratenanalyseschaltung Zellen im Array mit Datenhaltezeiten,
die unter einem vorbestimmten Wert liegen. Der Auffrisch adreßgenerator
erzeugt die internen Auffrischbefehle mit einer ersten Rate für die Speicherzellen
mit Haltezeiten, die größer sind
als dieser vorbestimmte Wert, und die internen Auffrischbefehle
mit einer zweiten, geringeren Rate für Zellen mit Haltezeiten, die
größer sind
als dieser vorbestimmte Wert.
-
Bei
einer Ausführungsform
bestimmt die Auffrischratenanalyseschaltung Zellen im Array mit
Datenhaltezeiten, die kleiner sind als ein vorbestimmter Wert. Der
Auffrischadreßgenerator
erzeugt interne Auffrischbefehle und Auffrischadressen während eines
ersten Zyklus und während
eines darauffolgenden zweiten Zyklus. Während des ersten Zyklus erhalten
die Speicherzellen im Array die internen Auffrischbefehle, wobei
während
des zweiten Zyklus nur ein Bruchteil der Zellen in diesem Array
die internen Auffrischbefehle erhält.
-
Bei
dieser Ausführungsform
wird während des
zweiten Zyklus Strom gespart, und Zellen mit höheren Datenhaltezeiten werden
nicht aufgefrischt.
-
Bei
einer Ausführungsform
bestimmt die Auffrischratenanalyseschaltung Zellen im Array mit
Datenhaltezeiten, die unter einem vorbestimmten Wert liegen. Der
Auffrischadreßgenerator
erzeugt interne Auffrischbefehle während eines ersten Zyklus und während eines
darauffolgenden zweiten Zyklus. Während des ersten Zyklus erhalten
die Speicherzellen im Array interne Auffrischbefehle, wobei während des
zweiten Zyklus die gleiche der Zellen in diesem Array mehrere Auffrischbefehle
erhält.
-
Bei
dieser Ausführungsform
werden der erste und zweite Zyklus als Reaktion auf jeden extern
erzeugten Auffrischbefehl eingeleitet. Dennoch ist die Ausbeute
verbessert, da Zellen mit Datenhaltezeiten, die kleiner sind als
die Zeit, in der externe Auffrischbefehle zugeführt werden, beibehalten werden
können,
anstatt verworfen zu werden, da sie während des zweiten Auffrischzyklus
mehr als einmal aufgefrischt werden.
-
Bei
einer Ausführungsform
bestimmt die Auffrischratenanalyseschaltung Zellen im Array mit
Datenhaltezeiten, die unter einem vorbestimmten Wert liegen. Der
Auffrischdreßgenerator
erzeugt interne Auffrischbefehle während eines ersten Zyklus und während eines
darauffolgenden zweiten Zyklus. Während jedes einzelnen des ersten
und zweiten Zyklus erzeugt der Auffrischadreßgenerator mehrere der internen
Auffrischbefehle. Während
des ersten Zyklus erhalten die Speicherzellen im Array jeweils einen
entsprechenden der mehreren internen Auffrischbefehle. Während des
zweiten Zyklus erhält eine
der Zellen in diesem Array mehr als einen der mehreren internen
Auffrischbefehle, und eine andere der Zellen wird daran gehindert,
mindestens einen der mehreren internen Auffrischbefehle zu erhalten.
-
Die
Einzelheiten einer oder mehrerer Ausführungsformen der Erfindung
sind in den beiliegenden Zeichnungen und der folgenden Beschreibung dargelegt.
Weitere Merkmale, Aufgaben und Vorteile der Erfindung ergeben sich
aus der Beschreibung und den Zeichnungen und aus den Ansprüchen.
-
BESCHREIBUNG DER ZEICHNUNGEN
-
1A ist
ein schematisches Blockschaltbild eines DRAM mit einer Auffrischschaltung
gemäß dem Stand
der Technik;
-
1B ist
ein Impulsdiagramm für
ein DRAM mit einer Auffrischschaltung gemäß dem Stand der Technik;
-
2 ist
ein schematisches Blockschaltbild eines und ein Impulsdiagramm für ein DRAM
mit einer Auffrischschaltung gemäß der Erfindung;
-
3 ist
ein Flußdiagramm
eines Programms, das in einer Auffrischanalyseschaltung gespeichert
ist, die in der Auffrischschaltung von 2 verwendet
wird;
-
4 ist
ein Blockschaltbild einer und ein Impulsdiagramm für eine Schaltung
mit einer variablen Auffrischrate, die in der Auffrischschaltung
von 2 gemäß einer
Ausführungsform
zum Reduzieren des Stroms verwendet wird; und
-
5 ist
ein Blockschaltbild einer und ein Impulsdiagramm für eine Schaltung
mit einer variablen Auffrischrate, die in der Auffrischschaltung
von 2 gemäß einer
weiteren Ausführungsform
zum Verbessern der Ausbeute verwendet wird.
-
Gleiche
Elemente sind in den verschiedenen Zeichnungen mit gleichen Referenzsymbolen
bezeichnet.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Nunmehr
unter Bezugnahme auf 2 werden ein vereinfachtes schematisches
Blockschaltbild eines dynamischen Speichers und ein Impulsdiagramm
für einen
dynamischen Speicher gezeigt, hier ein DRAM 10 mit einer
Auffrischschaltung 12. Die Auffrischschaltung 12 ist
vorgesehen, um in einem Array 14 dynamischer Speicherzellen 16 gespeicherte
Daten aufzufrischen. Das DRAM 10 ist auf einem integrierten
Schaltungschip 18 ausgebildet. Auf dem Chip 16 ist
das Array 14 aus Speicherzellen 16 ausgebildet.
Hier ist das Array 14 in vier Bänke aus Zellen 16 aufgeteilt
(hier Bank 0, Bank 1, Bank 2 und Bank 3). Die Zellen 16 sind
in Zeilen und Spalten angeordnet. Die Spalten sind sogenannte Bitleitungen und
die Zeilen sogenannte Wortleitungen.
-
Die
Auffrischschaltung 12 enthält außerdem eine Auffrischratenanalyseschaltung 20 zum
Bestimmen von Datenhaltezeiten in jeder einzelnen der Speicherzellen
und, anhand dieser Bestimmung, von Auffrischadreßmodifikationssignalen. Außerdem ist ein
Auffrischadreßgenerator 22 bereitgestellt,
der auf dem Chip ausgebildet ist und mit außerhalb des Chips 18 erzeugten
Auffrischbefehlssignalen und mit den durch die Auffrischanalyseschaltung 20 erzeugten
Adreßmodifikationssignalen
auf eine noch zu beschreibende Weise versorgt wird. Der Auffrischadreßgenerator 22 liefert
einen internen Auffrischbefehl zusammen mit Auffrischadressen an
das Array 14 aus Speicherzellen 16. In den Zellen 16 sind
Daten gespeichert, die als Reaktion auf den internen Auffrischbefehl
aufgefrischt werden, wobei diese Zellen, die aufgefrischt werden,
durch die von der Schaltung 22 für die variable Auffrischung
gelieferten Auffrischadressen adressiert werden. Hier ist die Auffrischratenanalyseschal-tung 20 auf
dem Chip 18 ausgebildet.
-
Die
Auffrischratenanalyseschaltung 20 bestimmt Zellen 16 im
Array 14 mit Datenhaltezeiten, die unter einem vorbestimmten
Wert liegen. Der Prozeß,
um eine derartige Bestimmung vorzunehmen, wird unten in Verbindung
mit 3 näher
beschrieben. Es reicht jedoch, wenn hier gesagt wird, daß der Auffrischadreßgenerator 22,
der in Verbindung mit 4 gezeigt und ausführlicher
beschrieben wird, die internen Auffrischbefehle für das Array 14 mit
einer ersten Rate für
diejenigen Speicherzellen 16 erzeugt, die Haltezeiten aufweisen,
die größer sind
als dieser vorbestimmte Wert, und Auffrischadressen mit einer zweiten,
niedrigeren Rate für
Zellen 16 mit Haltezeiten, die größer sind als dieser vorbestimmte Wert.
Mit dieser Schaltung 22' wird
Strom gespart, da während
des zweiten Zyklus Zellen mit längeren
Datenhaltezeiten nicht aufgefrischt werden. Bei dem Auffrischadreßgenerator 22', der in Verbindung
mit 5 gezeigt und näher beschrieben wird, erzeugt der
Auffrischadreßgenerator 22' interne Auffrischbefehle
für das
Array 14 während
eines ersten Zyklus und während
eines darauffolgenden zweiten Zyklus. Während des ersten Zyklus erhalten
die Speicherzellen 16 im Array 14 die internen
Auffrischbefehle, wobei während
des zweiten Zyklus die gleiche der Zellen 16 in diesem
Array 14 mehrere der internen Auffrischbefehle erhält. Mit
der Schaltung 22' werden
der erste und zweite Zyklus als Reaktion auf jeden extern erzeugten
Auffrischbefehl eingeleitet.
-
Dennoch
ist die Ausbeute verbessert, weil Zellen mit Datenhaltezeiten, die
kleiner sind als die Zeit, in der externe Auffrischbefehle geliefert
werden, beibehalten werden können
und nicht verworfen werden, da sie während des zweiten Auffrischzyklus mehr
als einmal aufgefrischt werden.
-
Insbesondere
bestimmt, wieder unter Bezugnahme auf die 2 und 3,
die Auffrischanalyseschaltung 20 die kleinste Ladungshaltezeit
der Zellen 16 innerhalb jeder einzelnen der vier Bänke oder Gebiete
des Arrays 14. Es sei angemerkt, daß jedes der vier Gebiete unabhängig aufgefrischt
werden kann. Die Mindestgröße eines
Gebiets ist eine Wortleitung, die größte Größe wäre das ganze Array. Die Größen der
Gebiete müssen
innerhalb eines Chips nicht konstant sein. Die kleinste Haltezeit
dieser Gebiete würde
einer statistischen Verteilung folgen; d. h., sie differieren von
Gebiet zu Gebiet. Nach einer Reparatur etwaiger fehlerhafter Zellen
mit geeigneten redundanten Zellen beginnt die Auffrischanalyseschaltung 20 den
in 3 gezeigten Prozeß.
-
Somit
wird bei Schritt 302 eine Anfangshaltezeit Δt angenommen.
Diese vorbestimmte Anfangshaltezeit Δt kann man durch das Prüfen eines
vorausgegangenen Chips erhalten. In Schritt 304 schreibt dann
die Auffrischanalyseschaltung 20 ein Datenmuster über einen
DRAM-Befehls- und Adressen-BUS 30 in das erste Gebiet.
Im Schritt 306 wartet die Auffrischanalyseschaltung 20 die
Zeitperiode Δt ab.
Im Schritt 308 liest die Auffrischanalyseschaltung 20 nach
dieser Periode Δt
die Daten in den Speicherzellen 16 dieses Gebiets und vergleicht
die gelesenen Daten mit dem Referenzmuster. Im Schritt 310 wird
die Verzögerung,
falls in den gelesenen Daten keine Fehler gefunden werden, durch
ein gewisses, a priori bestimmtes Zeitinkrement 6 (je nach der gewünschten
Auflösung
der Schaltung 20) vergrößert, und
die Prüfung
wird wiederholt (Schritte 304, 306, 308 und 310),
bis eine Zelle des geprüften
Gebiets bei Schritt 310 versagt. Dies bedeutet, daß die vorbestimmte
Haltezeit Δt
die kleinste Haltezeit des Gebiets überschreitet.
-
Der
Prozeß geht
dann zu Schritt 312 weiter, wo die vorbestimmte Haltezeit Δt um (δ–β) reduziert wird,
um einen Sicherheitsspielraum zu garantieren. Dieser Wert wird gespeichert
(Schritt 314), und das nächste Gebiet wird geprüft (Schritt 314).
Der Prozeß geht
weiter, bis alle Gebiete, hier alle vier Gebiete, geprüft worden
sind. Am Ende der Prüfung
werden in der Schaltung 20 in diesem Fall vier kürzeste Haltezeiten
gespeichert, eine für
jedes einzelne der Arraygebiete. So wird eine Tabelle erzeugt, die
ein Speichergebiet, bei dem es sich wie oben angemerkt um nur eine
Zeilenadresse handeln kann, und eine kürzeste Haltezeit für dieses
Gebiet in Beziehung setzt. Wie unten ausführlicher beschrieben wird,
kann mit dieser Tabelle Strom gespart oder die Ausbeute verbessert
werden. Im ersteren Fall kann die Anzahl der Zellen im Array, die
aufgefrischt werden, während Stromsparzyklen
reduziert werden (d. h. keine Auffrischung für die Zellen in einem Gebiet,
das Zellen mit einer relativ langen Haltezeit aufweist), die mit
normalen Auffrischzyklen verschachtelt werden, bei denen Zellen
in allen Gebieten aufgefrischt werden. Dieser Fall wird in Verbindung
mit der in 4 gezeigten Schaltung 22 ausführlicher
beschrieben. Im letzteren Fall können
die Zellen im gleichen Gebiet (d. h. dem Gebiet, das Zellen mit
relativ kurzen Haltezeiten besitzt) mehr als einmal aufgefrischt
werden, jedoch unter Verlust einer Auffrischung bei Zellen in einem
anderen Gebiet (d. h. einem Gebiet, das Zellen mit längeren Haltezeiten
besitzt). Dieser Fall wird in Verbindung mit der in 5 gezeigten
Schaltung 22' ausführlicher
beschrieben.
-
Als
Zusammenfassung bis zu diesem Punkt liefert somit die Auffrischschaltung 20 (2)
die Zeilenadresse der Wortleitung im Array 16, die als nächste mit
einem externen Befehl aufgefrischt werden soll. Sie kann den ankommenden
Auffrischbefehl als Reaktion auf Signale, die von der Tabelle in
der Auffrischanalyseschaltung 20 geliefert werden, modifizieren,
z. B. einen Auffrischbefehl unterdrücken. Die Sequenz von Auffrischadressen,
die von der Auffrischschaltung 22 an die Speicherarraygebiete
geliefert werden, ist nicht für
alle DRAMs der gleichen Art im voraus gesetzt, sondern wird hier
individuell für
jedes DRAM, das hergestellt wird, durch die Auffrischanalyseschaltung 29 programmiert.
Indem die Sequenz der Auffrischadressen und der Auffrischbefehl modifiziert
werden, kann die Schaltung 10 den durch das Auffrischen
verursachten Stromverbrauch reduzieren und/oder die Produktionsausbeute
erhöhen. Das
individuelle Auffrischprogramm kann extern geliefert werden, z.
B. von einem Speicherprüfgerät, oder
intern (d. h. auf dem Chip) durch die auf dem Chip integrierte Auffrischanalyseschaltung 20 berechnet
werden. Diese Schaltung 10 schreibt Daten in das Speicherarray 14 und
liest sie aus diesem aus. Wenn die Verzögerung zwischen Schreiben und
Lesen modifiziert wird, kann die Schaltung 22 die Auffrischanforderungen
analysieren, wie oben in Verbindung mit 2 umrissen
ist.
-
Somit
bestimmt die Auffrischratenanalyseschaltung 20 Zellen 16 im
Array 14 mit Datenhaltezeiten, die kleiner sind als ein
vorbestimmter Wert. Der Auffrischadreßgenerator 22 erzeugt
interne Auffrischbefehle während
eines ersten Zyklus, hier periodische ”normale Auffrischzyklen”, und während eines
darauffolgenden zweiten Zyklus, hier ”stromsparende Zyklen”, verschachtelt
mit den ”normalen
Auffrischzyklen”.
Während
jedes einzelnen des ersten und zweiten Zyklus erzeugen die Auffrischadreßgeneratoren
mehrere der internen Auffrischbefehle, in 2 gezeigt.
Während
des ersten Zyklus (d. h. eines ”normalen
Auffrischzyklus”)
erhalten die Speicherzellen 14 im Array 16 (hier
die Speicherzellen in jedem der vier Gebiete) jeweils einen entsprechenden
der mehreren der internen Auffrischbefehle. Während des zweiten Zyklus (d.
h. einem ”stromsparenden
Zyklus”)
erhält
nur eine der Zellen (hier die Zellen in nur einem der vier Gebiete)
in diesem Array mehr als einen der mehreren der internen Auf frischbefehle,
und eine andere der Zellen wird daran gehindert (hier die anderen
drei der vier Gebiete), mindestens einen der mehreren der internen
Auffrischbefehle zu erhalten.
-
In
dem in 4 gezeigten Beispiel bestimmte die Analyseschaltung 20 (2),
daß nur
die Zellen im Gebiet 1 mit dem Doppelten der normalen Auffrischrate
aufgefrischt werden müssen.
So werden die Adressen im Gebiet 1 in einer Adreßliste 40 der Auffrischschaltung 22 gespeichert.
Während
externe Auffrischbefehle der Schaltung 22 von außerhalb
des Chips zugeführt
werden, werden sie von Zähler 42 gezählt. Der
Zähler 42 liefert
inkrementierte Gebietsadressen (d. h. Adressen zum Gebiet 0, gefolgt
von Adressen zum Gebiet 1, gefolgt von Adressen zum Gebiet 2, gefolgt
von Adressen zum Gebiet 3) und wird dann auf Null zurückgesetzt,
um den Zählprozeß für externe
Befehle zu wiederholen, und auch der Logikzustand eines Überlaufbit
des Zählers 42 schaltet zwischen
einer logischen 0 und einer logischen 1 hin und her. Wenn das Überlaufbit
eine logische 0 ist, befindet sich die Schaltung 22 somit
im ”normalen
Auffrischzyklus”,
und wenn das Überlaufbit
eine logische 1 ist, befindet sich die Schaltung 22 im ”stromsparenden
Zyklus”.
Wenn sich die Schaltung 22 im ”normalen Auffrischzyklus” befindet,
ist der Ausgang eines UND-Gatters 46 unabhängig vom
Ausgang der Vergleichsschaltung 44 eine logische 0, und
der Ausgang des Inverters 48 ist eine logische 1. Somit
erzeugt das ODER-Gatter 50 während der ”normalen Auffrischzyklen” eine logische
1, wodurch die externen Befehle durch das UND-Gatter 52 als
interne Auffrischbefehle zu allen vier Gebieten des Arrays laufen
können.
Während
des nächsten
Zyklus aus vier externen Auffrischbefehlen wechselt das Überlaufbit
zu einer logischen 1, und die Schaltung befindet sich im ”stromsparenden
Zyklus”.
Der Ausgang des Inverters 48 wird während dieses ”stromsparenden
Zyklus” eine
logische 0 sein. Der Ausgang des UND-Gatters 46 wird ebenfalls
eine logische 0 sein, bis der Zähler
zu einem Gebiet mit einer Adresse in krementiert, die der entspricht,
die in der Adreßliste 40 gespeichert
ist. Somit erzeugt hier bei diesem Beispiel das UND-Gatter 46 während des ”stromsparenden
Zyklus” nur
dann eine logische 1, wenn die vom Zähler erzeugte Gebietsadresse
Gebiet 1 lautet. Wenn Gebiet 1 adressiert ist, erzeugen das UND-Gatter 40,
das ODER-Gatter 50 und das UND-Gatter 52 eine
logische 1, wodurch ein externer Befehl als interner Auffrischbefehl
zu dem Array laufen kann, was das Auffrischen der Zellen im Gebiet
1 ermöglicht.
Während
des ”stromsparenden
Zyklus” in diesem
Beispiel werden somit nur die Zellen im Gebiet 1 aufgefrischt.
-
Zusammengefaßt liefert
somit der Auffrischzähler 42 die
Auffrischadressen mit jedem externen Auffrischbefehl. Nachdem die
maximale Auffrischadresse erreicht ist, läuft der Zähler 42 in ein oder
mehrere Überlaufbit über, hier
in diesem Beispiel ein Bit. Mit anderen Worten wird die Bitlänge des
Zählers
um ein oder mehrere Bit erweitert. Der Wert der Überlaufbit steuert, ob der
Auffrischbefehl direkt zum Speicherarray geleitet wird oder ob er
von einem chipspezifischen Programm gefiltert wird. Beispielsweise
wird eine Liste ”schwacher” Auffrischadressen in
der Adreßliste 40 gespeichert.
Diese Adressen erfordern die meisten Ausführungen von Auffrischbefehlen,
da die entsprechenden Speicherzellen einen hohen Abfluß aufweisen
(schwache Zellen). Der Rest der Auffrischadressen kann mit einer
Rate aufgefrischt werden (d. h. während der ”stromsparenden Zyklen”), die
kleiner ist als die Rate der externen Auffrischbefehle.
-
In
einem Überlaufzustand
würde die
Schaltung für
das variable Auffrischen alle Auffrischbefehle herausfiltern, es
sei denn, die Liste schwacher Auffrischadressen zeigt an, daß die vom
Auffrischzähler erzeugte
Auffrischadresse mit der maximalen Rate aufgefrischt werden muß. Dadurch
werden im Vergleich zum Stand der Technik weniger Auffrischbefehle
ausgeführt,
was zu einer wesentlichen Stromeinsparung führt. 4 zeigt
ein Beispiel, bei dem ein einzelnes Überlauf bit angenommen wird
und daß Adressen
des Auffrischgebiets 1 schwache Adressen sind.
-
In
dem in 5 gezeigten Beispiel hat die Analyseschaltung 20' (2)
wieder bestimmt, daß die
Zellen im Gebiet 3 nur bei jedem zweiten Auffrischzyklus aufgefrischt
werden müssen,
während die
Zellen im Gebiet 3 mit dem Doppelten der Auffrischrate aufgefrischt
werden müssen.
Somit werden die Zellen in den Adressen im Gebiet 3 auf eine Adreßkarte 40' der Auffrischschaltung 22' abgebildet und
darin gespeichert. D. h. immer dann, wenn die Adressen für die Zellen
im Gebiet 3 vom Zähler 42' erzeugt werden,
werden sie in Adressen für
die Zellen im Gebiet 1 konvertiert oder darauf abgebildet, während die
anderen Adressen in diesem Beispiel unverändert bleiben. Während in
diesem Beispiel der Zähler 42' die externen
Auffrischbefehle zählt,
erzeugt somit der Zähler 42' sequentiell
die Adressen für
die Zellen im Gebiet 0, dann Gebiet 1, dann Gebiet 2, dann Gebiet
3 und wieder Gebiet 0, um den Prozeß zu wiederholen. Als Reaktion
auf diese vom Zähler 42' erzeugte Sequenz
von Adressen sind jedoch die von der Adreßkarte 40' erzeugten Adressen im
Gebiet 0, dann Gebiet 1, dann Gebiet 2, dann wieder Gebiet 1 und
dann Gebiet 0, um den Prozeß zu wiederholen.
Während
jedes Auffrischzyklus, ob es ein ”normaler Auffrischzyklus” oder ein ”stehlender Auffrischzyklus” ist, werden
so die Adressen für
die Zellen im Gebiet 1 wiederholt, während die Adressen für die Zellen
im Gebiet 3 blockiert (d. h. von Gebiet 3 gestohlen) und durch die
Adressen im Gebiet 1 ersetzt werden.
-
Während im
Betrieb externe Auffrischbefehle der Schaltung 22' von außerhalb
des Chips zugeführt werden,
werden sie vom Zähler 42' gezählt. Der
Zähler 42' liefert inkrementierte
Gebietsadressen (d. h. Adressen zum Gebiet 0, gefolgt von Adressen
zum Gebiet 1, gefolgt von Adressen zum Gebiet 3, gefolgt von Adressen
zum Gebiet 3) und wird dann auf 0 zurückgesetzt, um den Zählprozeß für externe
Befehle zu wie derholen, und auch der Logikzustand eines Überlaufbit
des Zählers 42' schaltet zwischen
einer logischen 0 und einer logischen 1 hin und her. Wenn das Überlaufbit
eine logische 0 ist, befindet sich die Schaltung 22' somit im ”normalen
Auffrischzyklus”, und
wenn das Überlaufbit
eine logische 1 ist, befindet sich die Schaltung 22' im ”stehlenden
Zyklus”.
Die Schaltung 22' enthält einen
Multiplexer 50, dem am Eingang A die vom Zähler 42 gelieferte
Auffrischadresse und am Eingang B von der Adreßkarte 40' gelieferte
modifizierte Auffrischadressen zugeführt werden. Falls sich die
Schaltung 22' im ”normalen
Auffrischzyklus” befindet,
wird das logische 0-Überlaufbit dem
Multiplexer 50 zugeführt.
Als Reaktion auf dieses logische 0-Bit (d. h. während des ”normalen Auffrischzyklus”) koppelt
der Multiplexer 50 die Auffrischadressen sequentiell durch
den Multiplexer 50 zum Array. Während der ”normalen Auffrischzyklen” werden
somit die Zellen in den vier Gebieten sequentiell aufgefrischt.
-
Im
Hinblick auf die in 5 gezeigte Schaltung zeigt zusammengefaßt das chipspezifische
Programm (3) an, ob eine vom Auffrischzähler gelieferte
Auffrischadresse durch eine andere Auffrischadresse ersetzt werden
sollte. Eine ”schwache” Auffrischadresse ”stiehlt” Auffrischbefehle
von einer ”starken” Auffrischadresse.
Analog zu 4 ist das Stehlen nicht bei
jedem Zyklus effektiv, damit garantiert wird, daß auch die starken Adressen
aufgefrischt werden. Das Verhältnis
von normalen Auffrischoperationszyklen zu stehlenden Zyklen wird
wieder durch das Überlaufbit
oder die Überlaufbit
des Auffrischzählers 42' gesteuert. 5 zeigt
ein Beispiel mit einem einzigen Überlaufbit,
was zu 50% normalen 50% und stehlenden Zyklen führt. Während des stehlenden Zyklus
stehlen die schwachen Adressen für
Gebiet 1 einen Auffrischbefehl von der starken Adresse für Gebiet
3. Dadurch erhalten Adressen für Gebiet
1 eine Auffrischung, die 50% höher
ist als im Stand der Technik, und Adressen im Gebiet 3 erhalten
50% weniger. Dies ermöglicht
den Verkauf eines Speicherbauelements mit schwachen Adressen, ohne
daß die
Anforderungen hinsichtlich externer Auffrischung verletzt werden
(d. h., es führt
zu einer Ausbeuteverbesserung und geringeren Kosten – ansonsten
würde man
diesen Chip als fehlerhaft verwerfen müssen).
-
In 4 sowie
in 5 können
die gespeicherten Auffrischadressen die volle Bitbreite einer Auffrischadresse
abdecken. Es ist jedoch auch eine Teilmenge (d. h. eines von mehreren
Gebieten davon) möglich.
Einerseits reduziert dies die Granularität, mit der ”schwache” Adressen spezifiziert werden können, doch
werden andererseits vorteilhafterweise die Speicheranforderungen
reduziert.