-
Nichtflüchtige Speichervorrichtungen
umfassen Speicherzellen, die zumindest zwei stabile Zustände aufweisen.
Bei einigen nichtflüchtigen
Speichervorrichtungen unterscheidet sich der Widerstandswert durch
eine Speicherzelle basierend auf dem Zustand der Speicherzelle.
Der Widerstandswert durch die Speicherzelle ist in einem ersten
Zustand höher
relativ zu dem Widerstandswert durch die Speicherzelle in einem
zweiten Zustand. Diese Speichervorrichtungen können reprogrammierbare oder
einmal programmierbare Vorrichtungen sein.
-
Ein
Typ eines reprogrammierbaren nichtflüchtigen Speichers, der auf
dem Gebiet bekannt ist, stützt
sich auf magnetische Speicherzellen. Diese Vorrichtungen, die als
magnetische Direktzugriffsspeichervorrichtungen (MRAM-Vorrichtungen; MRAM
= magnetic random access memory) bekannt sind, umfassen ein Array
von magnetischen Speicherzellen. Die magnetischen Speicherzellen
können von
unterschiedlichen Typen sein. Zum Beispiel können die Speicherzellen Magnetischer-Tunnelübergang-Speicherzellen
(MTJ-Speicherzellen; MTJ = magnetic tunnel junction) oder Riesen-Magnetowiderstand-Speicherzellen (GMR-Speicherzellen; GMR
= giant magnetoresistive) sein.
-
Allgemein
umfasst die magnetische Speicherzelle eine Schicht eines magnetischen
Films, bei dem die Magnetisierungsausrichtung veränderbar ist,
und eine Schicht eines magnetischen Films, bei der die Magnetisierungsausrichtung
in eine spezielle Richtung fest oder „festgelegt" (pinned) sein kann. Der
magnetische Film, der eine veränderbare
Magnetisierung aufweist, wird als eine Erfassungsschicht oder Datenspeicherungsschicht
bezeichnet und der magnetische Film, der fest ist, wird als eine
Referenzschicht oder festgelegte Schicht bezeichnet. Bei einer MTJ-Speicherzelle
trennt eine Barriereschicht die Erfassungsschicht und die Referenzschicht.
-
Leitfähige Bahnen,
die als Wortleitungen und Bitleitungen bezeichnet werden, sind über das
Array von Speicherzellen geführt.
Wortleitungen erstrecken sich entlang Zeilen der Speicherzellen
und Bitleitungen erstrecken sich entlang Spalten der Speicherzellen.
Speicherzellen speichern ein Bit von Informationen als eine Magnetisierungsausrichtung
in einer Erfassungsschicht bei jedem Schnitt einer Wortleitung und
einer Bitleitung. Die Magnetisierungsausrichtung in der Erfassungsschicht
richtet sich entlang einer Achse der Erfassungsschicht aus, die
als die Leichtachse derselben bezeichnet wird. Magnetfelder werden
angelegt, um die Magnetisierungsausrichtung in der Erfassungsschicht
entlang der Leichtachse derselben entweder zu einer parallelen oder
antiparallelen Ausrichtung mit Bezug auf die Magnetisierungsausrichtung
in der Referenzschicht zu drehen.
-
Bei
einem Ausführungsbeispiel
sind die Wortleitungen und Bitleitungen über das Array von Speicherzellen
geführt,
um bei einem Drehen der Magnetisierungsausrichtung in Erfassungsschichten zu
helfen. Die Wortleitungen erstrecken sich entlang Zeilen der Speicherzellen
nahe den Erfassungsschichten. Die Bitleitungen erstrecken sich entlang Spalten
der Speicherzellen nahe den Referenzschichten. Die Wortleitungen
und Bitleitungen sind elektrisch mit einer Schreibschaltung gekoppelt.
-
Während einer
Schreiboperation wählt
die Schreibschaltung eine Wortleitung und eine Bitleitung aus, um
die Magnetisierungsausrichtung in der Erfassungsschicht der Speicherzelle
zu ändern,
die bei dem Kreuzungspunkt der Leiter gelegen ist. Die Schreibschaltung
liefert Schreibströme
zu der ausgewählten
Wortleitung und der Bitleitung, um Magnetfelder in der ausgewählten Speicherzelle
zu erzeugen. Die Magnetfelder verbinden sich, um die Magnetisierungsausrich tung
in der ausgewählten
Speicherzelle von parallel zu antiparallel oder umgekehrt umzuschalten.
-
Der
Widerstandswert durch eine Speicherzelle unterscheidet sich gemäß der parallelen
oder antiparallelen Magnetisierungsausrichtung der Erfassungsschicht
und der Referenzschicht. Der Widerstandswert ist am höchsten,
wenn die Ausrichtung antiparallel ist, was als der logische „1"-Zustand bezeichnet werden kann, und
am niedrigsten, wenn die Ausrichtung parallel ist, was als der logische „0"-Zustand bezeichnet werden kann. Der
Widerstandszustand der Speicherzelle kann durch ein Erfassen des Widerstandswerts
durch die Speicherzelle bestimmt werden.
-
Wortleitungen
und Bitleitungen helfen auch bei einem Erfassen des Widerstandswerts
durch eine Speicherzelle. Wortleitungen, die sich entlang Zeilen erstrecken,
sind elektrisch mit Erfassungsschichten gekoppelt und Bitleitungen,
die sich entlang Spalten erstrecken, sind elektrisch mit Referenzschichten
gekoppelt. Wortleitungen und Bitleitungen sind ferner elektrisch
mit einer Leseschaltung gekoppelt, um den Widerstandswert und Zustand
einer Speicherzelle zu erfassen.
-
Während einer
Leseoperation wählt
die Leseschaltung eine Wortleitung und eine Bitleitung aus, um den
Widerstandswert der Speicherzelle zu erfassen, die bei dem Kreuzungspunkt
der Leiter gelegen ist. Die Leseschaltung kann eine Spannung über die ausgewählte Speicherzelle
liefern, um einen Strom durch die Speicherzelle zu erzeugen. Der
Strom durch die Speicherzelle ist proportional zu dem Widerstandswert
durch die Speicherzelle und wird verwendet, um einen Hochwiderstandszustand
von einem Niedrigwiderstandszustand zu unterscheiden.
-
Obwohl
die Speichervorrichtung im Allgemeinen zuverlässig ist, können Fehler auftreten, die die
Fähigkeit
der Speichervorrichtung beeinflussen, Daten zuverlässig zu
spei chern. Die Fehler umfassen physische Fehler, die auf Speicherzellen
bezogen sind, und Erfassungsfehler, die auf die Leseschaltung bezogen
sind.
-
Physische
Fehler können
aus vielen Ursachen resultieren, einschließlich Herstellungsunvollkommenheiten
und eines Alterns der Vorrichtung bei einem Gebrauch. Fehlermechanismen
nehmen viele Formen an, einschließlich kurzgeschlossener Speicherzellen
und offener Speicherzellen bzw. Speicherzellen im Leerlauf. Eine
kurzgeschlossene Speicherzelle weist einen Widerstandswert auf,
der viel niedriger ist als erwartet. Eine offene Speicherzelle weist einen
Widerstandswert auf, der viel höher
ist als erwartet. Kurzgeschlossene und offene Speicherzellen können andere
Speicherzellen beeinflussen, die in der gleichen Zeile und der gleichen
Spalte liegen.
-
Erfassungsfehler
können
aus vielen Ursachen resultieren, einschließlich Temperatur- und Spannungsänderungen.
Die Leseschaltung ist bei einem Satz von Temperatur- und Spannungswerten kalibriert.
Wenn sich die Temperatur und/oder die Spannung ändert, kann die Leseschaltung
außer
Kalibrierung sein. In dieser Situation erfasst die Leseschaltung
den Zustand einer Speicherzelle aufgrund von Kalibrierungsproblemen
eventuell nicht genau. Um Daten zuverlässig in einer Speicherzelle
zu speichern, ist es wichtig, Informationen über den Zustand der Speicherzelle
zu haben und ob die Leseschaltung ordnungsgemäß kalibriert ist.
-
Es
ist die Aufgabe der vorliegenden Erfindung, einen Magnetspeicher
und ein Verfahren zum Lesen eines Magnetspeichers mit verbesserten
Charakteristika zu schaffen.
-
Diese
Aufgabe wird durch einen Magnetspeicher gemäß Anspruch 1, Anspruch 14 oder
Anspruch 17 und ein Verfahren gemäß Anspruch 22 oder Anspruch
26 gelöst.
-
Ausführungsbeispiele
der vorliegenden Erfindung stellen einen Magnetspeicher bereit.
Bei einem Ausführungsbeispiel
weist der Magnetspeicher ein Array von Speicherzellen, die konfiguriert
sind, um Widerstandszustände
bereitzustellen, und eine Leseschaltung auf. Die Leseschaltung ist
konfiguriert, um einen Widerstandswert durch eine Speicherzelle
in dem Array von Speicherzellen zu erfassen, um ein Abtastergebnis
zu erhalten, und das Erfassungsergebnis in eine von zumindest drei
unterschiedlichen Kategorien zu kategorisieren, die eine mittlere
Kategorie aufweisen, die zwischen den Widerstandszuständen gelegen
ist.
-
Ausführungsbeispiele
der Erfindung werden mit Bezug auf die folgenden Zeichnungen besser
verstanden. Die Elemente der Zeichnungen sind nicht notwendigerweise
maßstabsgetreu
in Bezug aufeinander. Gleiche Bezugszeichen bezeichnen entsprechende ähnliche
Teile.
-
Bevorzugte
Ausführungsbeispiele
der vorliegenden Erfindung werden nachfolgend Bezug nehmend auf
die beiliegenden Zeichnungen näher
erläutert.
Es zeigen:
-
1 ein
Diagramm, das ein exemplarisches Ausführungsbeispiel eines Magnetspeichers gemäß der vorliegenden
Erfindung darstellt;
-
2 ein
Diagramm, das ein exemplarisches Ausführungsbeispiel eines Arrayabschnitts darstellt;
-
3 ein
Diagramm, das einen Querschnitt eines exemplarischen Ausführungsbeispiels
eines Arrayabschnitts darstellt;
-
4 ein
Diagramm, das ein exemplarisches Ausführungsbeispiel eines Direktinjektion-Ladungsverstärkers und
einer Digitalversatz-Kalibrierungsschaltungsanordnung darstellt;
-
5 ein
Diagramm, das ein exemplarisches Ausführungsbeispiel eines digitalen
Leseverstärkers
während
einer Leseoperation einer ausgewählten
Speicherzelle darstellt;
-
6 ein
Graphen, der die Wahrscheinlichkeit darstellt, dass ein Leseoperationsergebnis
in eine von fünf
Kategorien kategorisiert ist;
-
7 ein
Flussdiagramm, das eine Leseoperation eines exemplarischen Ausführungsbeispiels einer
Speichervorrichtung darstellt;
-
8 einen
Graphen für
ein anderes Ausführungsbeispiel,
der die Wahrscheinlichkeit darstellt, dass ein erstes Erfassungsoperationsergebnis
in eine von fünf
Kategorien kategorisiert ist; und
-
9a und 9b ein
Flussdiagramm, das eine Leseoperation eines anderen Ausführungsbeispiels
einer Speichervorrichtung darstellt.
-
1 ist
ein Diagramm, das ein exemplarisches Ausführungsbeispiel einer Magnetspeichervorrichtung 20 gemäß der vorliegenden
Erfindung darstellt. Die Speichervorrichtung 20 umfasst
ein Magnetische-Speicherzelle-Array 22, eine Leseschaltung 24 und
eine Schreibschaltung (zu einer Klarheit nicht gezeigt). Das Speicherzellarray 22 umfasst
magnetische Speicherzellen 26, die elektrisch mit der Leseschaltung 24 gekoppelt
sind.
-
Die
Leseschaltung 24 ist konfiguriert, um den Widerstandswert
durch eine Speicherzelle 26 zu erfassen und ein Erfassungsergebnis,
wie beispielsweise einen Zählwert,
entsprechend dem erfassten Widerstandswert zu liefern. Bei dem exemplarischen Ausführungsbeispiel
ist die Leseschaltung 24 konfiguriert, um einen Zählwert zu
liefern und den Zählwert
in eine von fünf
Kategorien zu kategorisieren, die auch als Regionen bezeichnet werden.
Die fünf Regionen
umfassen eine Niedrigwiderstandszustandsregion, eine Hochwiderstandszustandsregion, eine
niedrige Außer-Bereich-Region,
eine hohe Außer-Bereich-Region
und eine mittlere Region, die als eine zweifelhafte Region bezeichnet
wird. Die zweifelhafte Region ist zwischen der Niedrigwiderstandszustandsregion
und der Hochwiderstandszustandsregion gelegen. Die niedrige Außer-Bereich-Region ist
bei einem niedrigeren Widerstandswert als die Niedrigwiderstandszustandsregion
gelegen und die hohe Außer-Bereich-Region
ist bei einem höheren Widerstandswert
als die Hochwiderstandszustandsregion gelegen. Die Leseschaltung 24 setzt
ein Außer-Bereich-Flag
im Fall, dass der Zählwert
in eine der Außer-Bereich-Regionen
kategorisiert ist. Die Leseschaltung 24 setzt ferner ein
Zweifelhaft-Flag im Fall, dass der Zähler in die zweifelhafte Region
kategorisiert ist.
-
Bei
einem anderen Ausführungsbeispiel
ist die Leseschaltung 24 konfiguriert, um den Widerstandswert
durch eine Speicherzelle 26 in einer ersten Erfassungsoperation
einer Mehrfach-Erfassungsoperation zu erfassen und ein erstes Erfassungsergebnis
zu liefern, wie beispielsweise einen ersten Zählwert. Die Speichervorrichtung 20 und
die Leseschaltung 24 sprechen durch ein unmittelbares Kalibrieren
der Leseschaltung 24 in einer unmittelbaren Kalibrierungsantwort
auf einen ersten Zählwert
an, der einen Kurzschluss oder einen Leerlauf angibt. Im Fall, dass
der erste Zählwert
in einer mittleren Nicht-Kalibrierungsregion gelegen ist, schließt die Leseschaltung 24 die
Mehrfach-Erfassungsleseoperation
ab, um ein endgültiges
Ergebnis zu erhalten, das als ein endgültiger Zählwert bezeichnet wird. Im Fall,
dass der erste Zählwert
zwischen der Kurzschluss- und
der mittleren Nicht-Kalibrierungsregion oder zwischen der Leerlauf-
und der mittleren Nicht-Kalibrierungsregion gelegen ist, setzt die
Leseschaltung 24 ein Kalibrierung-Flag zu einem Kalibrieren der Leseschaltung 24 zu
einer späteren
Zeit in einer Verzögert-Kalibrierung-Antwort.
Nach einem Setzen des Flags für
eine Kalibrierung schließt
die Leseschaltung 24 die Leseoperation ab und liefert das endgültige Ergebnis,
das als der endgültige
Zählwert bezeichnet
wird.
-
Der
endgültige
Zählwert
wird in eine von fünf Kategorien
kategorisiert, die als Regionen bezeichnet sind, einschließlich einer
Niedrigwiderstandszustandsregion, einer Hochwiderstandszustandsregion,
einer niedrigen Außer-Bereich-Region, einer
hohen Außer-Bereich-Region
und einer mittleren Region, die als eine zweifelhafte Region bezeichnet
wird. Die zweifelhafte Region ist zwischen der Niedrigwiderstandszustandsregion
und der Hochwiderstandszustandsregion gelegen. Die niedrige Außer-Bereich-Region
ist bei einem niedrigeren Widerstandswert als die Niedrigwiderstandszustandsregion
gelegen und die hohe Außer-Bereich-Region
ist bei einem höheren
Widerstandswert als die Hochwiderstandszustandsregion gelegen. Die
Leseschaltung 24 setzt ein Außer-Bereich-Flag im Fall, dass
der Zählwert
in eine der Außer-Bereich-Regionen
kategorisiert wird. Die Leseschaltung 24 setzt ferner ein Zweifelhaft-Flag
im Fall, dass der Zählwert
in die zweifelhafte Region kategorisiert wird.
-
Die
Speicherzellen 26 in dem Array 22 sind in Zeilen
und Spalten angeordnet, wobei sich die Zeilen entlang einer x-Richtung erstrecken
und sich die Spalten entlang einer y-Richtung erstrecken. Lediglich eine
relativ kleine Anzahl von Speicherzellen 26 ist gezeigt,
um die Darstellung der Speichervorrichtung 20 zu vereinfachen.
Bei anderen Ausführungsbeispielen
können
Arrays einer jeglichen geeigneten Größe verwendet werden, wie beispielsweise
ein 1-Mbit-Array-Ausführungsbeispiel,
bei dem das Array 1024 Speicherzellen 26 hoch mal 1024
Speicherzellen 26 breit ist. Zusätzlich können Makroarrays unter Verwendung
einer Mehrzahl von einzelnen Arrays, wie beispielsweise der 1-Mbit-Arrays
gebildet sein. Speichervorrichtungen mit einer großen Gesamtdatenspeicherungskapazität können unter
Verwendung von mehreren Arrays gebaut sein, ohne dass die einzelnen Arrays
so groß werden,
dass dieselben schwierig herzustellen und zu steuern sind. Die Arrays
können
ferner in Schichten hergestellt sein, um dreidimensionale Makroarrays
zu erzeugen.
-
Bei
einem Ausführungsbeispiel
eines Magnetspeichers, der eine Speicherungskapazität von 128
Mbytes aufweist, sind 1024 1-Mbit-Arrays in einem Makroarray angeordnet,
das 16 Arrays breit mal 16 Arrays hoch ist, mit vier Stapelschichten.
Wahlweise weist die Speichervorrichtung mehr als ein derartiges
Makroarray auf. Bei dem Ausführungsbeispiel des
128-Mbyte-Makroarrays weist der Magnetspeicher Zeilendecodierer,
die eine Zeile auswählen,
und Spaltendecodierer auf, die eine Mehrzahl von Spalten auswählen, um
eine Mehrzahl von Speicherzellen in jedem 1-Mbit-Array auszuwählen. Die
Speichervorrichtung greift auf eine Mehrzahl von 1-Mbit-Arrays zu
der gleichen Zeit zu. Die Zellen, auf die innerhalb jedes der Mehrzahl
von Arrays zugegriffen wird, entsprechen einem kleinen Abschnitt
einer Dateneinheit. Zusammen stellen die zugegriffenen Zellen eine
ganze Dateneinheit bereit, wie beispielsweise eine ganze Sektoreinheit
von 512 Bytes oder zumindest einen wesentlichen Abschnitt des Sektors. Auf
jedes der Mehrzahl von Arrays wird im Wesentlichen simultan zugegriffen.
Bei einem alternativen Ausführungsbeispiel
weist der Magnetspeicher Spaltendecodierer, die eine Spalte auswählen, und
Zeilendecodierer auf, die eine Mehrzahl von Zeilen auswählen.
-
Bei
dem exemplarischen umfasst die Leseschaltung 24 eine Zeilendecodierschaltung 28,
eine Lenk- bzw. Steuerschaltung 30, einen Direktinjektion-Ladungsverstärker 32,
einen digitalen Leseverstärker 34,
einen Rücksetzschalter 36 und
einen Integrierkondensator 38. Die Zeilendecodierschaltung 28 ist
elektrisch mit Wortleitungen 40a–40c gekoppelt und
die Lenkschaltung 30 ist elektrisch mit Bitleitungen 42a-42c gekoppelt.
Die leitfähigen
Wortleitungen erstrecken sich entlang der x-Richtung in einer Ebene
an einer Seite des Arrays 22 und die leitfähigen Bitleitungen 42a–42c erstrecken
sich entlang der y-Richtung in einer Ebene an einer gegenüberliegenden
Seite des Arrays 22. Es gibt eine Wortleitung 40 für jede Zeile
des Arrays 22 und eine Bitleitung 42 für jede Spalte
des Arrays 22. Eine Speicherzelle 26 ist an jedem
Kreuzungspunkt einer Wortleitung 40 und einer Bitleitung 42 positioniert.
Die Lenkschaltung 30 ist elektrisch mit dem Ladungsverstärker 32 durch
einen Ladungsverstärkerleiter 44 gekoppelt
und die Zeilendecodierschaltung ist elektrisch bei 46 mit Masse
gekoppelt.
-
Der
Ladungsverstärker 32,
der Leseverstärker 34,
der Rücksetzschalter 36 und
der Integrierkondensator 38 sind bei einem Knoten 48 elektrisch
miteinander gekoppelt. Zusätzlich
ist der Leseverstärker 34 durch
einen Schaltersteuerleiter 50 elektrisch mit dem Gate des
Rücksetzschalters 36 gekoppelt.
Der Rücksetzschalter 36 ist
elektrisch bei 52 mit VDD gekoppelt und der Integrierkondensator 38 ist
bei 54 elektrisch mit Masse gekoppelt.
-
Die
Speichervorrichtung 20 umfasst ein Ausgangsregister 56 und
eine Eingangs-/Ausgangsanschlussfläche (I/O-Anschlussfläche) 58. Ein Ausgang des
Leseverstärkers 34 ist
elektrisch mit dem Ausgangsregister 56 durch einen Leseverstärkerausgangsleiter 60 gekoppelt.
Das Ausgangsregister 56 ist durch einen Ausgangsleiter 62 elektrisch
mit der I/O-Anschlussfläche 58 gekoppelt.
Bei dem exemplarischen Ausführungsbeispiel
sind lediglich eine Leseschaltung 24, ein Ausgangsregister 56 und
eine I/O-Anschlussfläche 58 gezeigt.
Bei anderen Ausführungsbeispielen
ist eine jegliche geeignete Anzahl von Leseschaltungen 24,
Ausgangsregistern 56 und I/O-Anschlussflächen 58 enthalten.
-
Bei
dem exemplarischen Ausführungsbeispiel
ist die Schreibschaltung (nicht gezeigt) elektrisch mit den Wortleitungen 40a–40c und
den Bitleitungen 42a–42c gekoppelt.
Die Schreibschaltung ist konfiguriert, um einen ersten Schreibstrom
durch eine ausgewählte
Wortleitung 40a–40c in
eine Richtung und einen zweiten Schreibstrom durch eine ausge wählte Bitleitung 42a–42c in
eine Richtung zu liefern. Eine Speicherzelle 30 ist bei
jedem Kreuzungspunkt einer Wortleitung 40 und einer Bitleitung 42 positioniert.
-
Während einer
Schreiboperation wählt
die Schreibschaltung eine Wortleitung 40a–40c und
eine Bitleitung 42a–42c aus,
um die Magnetisierungsausrichtung in der Erfassungsschicht der Speicherzelle 26 zu
setzen oder umzuschalten, die bei dem Kreuzungspunkt positioniert
ist. Die Schreibschaltung liefert den ersten Schreibstrom zu der
ausgewählten Wortleitung 40a–40c und
den zweiten Schreibstrom zu der ausgewählten Bitleitung 42a–42c.
Der erste Schreibstrom erzeugt ein Magnetfeld um die ausgewählte Wortleitung 40a–40c herum
gemäß der Rechte-Hand-Regel
und der zweite Schreibstrom erzeugt ein Magnetfeld um die ausgewählte Bitleitung 42a–42c herum
gemäß der Rechte-Hand-Regel.
Diese Magnetfelder verbinden sich, um die Magnetisierungsausrichtung
in der Erfassungsschicht der ausgewählten Speicherzelle 26 zu
setzen oder umzuschalten.
-
Die
Leseschaltung 24 erfasst den Widerstandswert durch die
Speicherzellen 26 in dem Array 22 und liefert
Erfassungsergebnisse, wie beispielsweise Zählwerte, entsprechend den erfassten
Widerstandswerten. Bei dem exemplarischen Ausführungsbeispiel umfasst die
Zeilendecodierschaltung 28 Schalter, um eine Wortleitung 40a–40c auszuwählen und
die ausgewählte
Wortleitung 40a–40c elektrisch
mit Masse zu koppeln. Die Lenkschaltung 30 umfasst Schalter,
um eine Bitleitung 42a–42c auszuwählen und
die ausgewählte
Bitleitung 42a–42c elektrisch
mit dem Ladungsverstärker 32 zu
koppeln. Der Ladungsverstärker 32 liefert
eine konstante Spannung zu der ausgewählten Bitleitung 42a–42c.
Ein Erfassungsstrom fließt
durch die ausgewählte
Bitleitung 42a- 42c und
die ausgewählte
Speicherzelle 26 zu der ausgewählten Wortleitung 40a–40c und
Masse. Der Erfassungsstrom, der durch die ausgewählte Speicherzelle 26 fließt, entspricht
dem Widerstandswert durch die ausgewählte Speicherzelle 26.
-
Der
Kondensator 38 wird durch den Rücksetzschalter 36 zu
der Versorgungsspannung VDD hin geladen. Der Kondensator 38 liefert
den gleichen Erfassungsstrom zu der ausgewählten Speicherzelle 26 durch
den Ladungsverstärker 32.
Bei dem exemplarischen Ausführungsbeispiel
ist der Rücksetzschalter 36 ein
p-Typ-Metalloxidhalbleiter-Transistor (PMOS-Transistor). Bei anderen Ausführungsbeispielen
kann der Rücksetzschalter 36 eine
Transistorkombination oder ein anderer Typ eines Transistors sein,
wie beispielsweise ein n-Typ-Metalloxidhalbleiter-Transistor (NMOS-Transistor).
-
Der
digitale Leseverstärker 34 steuert
den Rücksetzschalter 36,
vergleicht die Spannung bei einem Knoten 48 mit einer Referenzspannung,
liefert ein Erfassungsergebnis und liefert ein Ausgangssignal zu
dem Ausgangsregister 56. Um eine Erfassungsoperation zu
beginnen, schaltet der Leseverstärker 34 den
Rücksetzschalter 36 ein,
um den Kondensator 38 zu der Versorgungsspannung VDD hin zu
laden. Der Leseverstärker 34 öffnet den
Rücksetzschalter 36 und
vergleicht die Spannung bei dem Knoten 48 mit einer Referenzspannung.
Die Spannung bei dem Knoten 48 nimmt mit einer Rate ab,
die proportional zu dem Erfassungsstrom und einem Widerstandswert
durch die ausgewählte
Speicherzelle 26 ist. Der Leseverstärker 34 umfasst einen
Zähler, der
zählt,
bis die Spannung bei dem Knoten 48 sich auf die Referenzspannung
verringert hat. Der resultierende Zählwert entspricht dem Widerstandswert der
ausgewählten
Speicherzelle 26.
-
Bei
dem exemplarischen Ausführungsbeispiel
umfasst eine Leseoperation drei Erfassungsoperationen und zwei Schreiboperationen.
Zuerst erfasst die Leseschaltung 24 den Widerstandswert durch
die ausgewählte
Speicherzelle 26, um einen ersten Zählwert zu erhalten. Der erste
Zählwert
wird mit 2 multipliziert und invertiert, um denselben zu
einem negativen Wert zu machen, der in den Zähler des Leseverstärkers 34 vor
der zweiten Erfassungsoperation eingegeben wird. Die Schreibschaltung schreibt
die ausgewählte
Speicherzelle 26 zu einem Hochwiderstandszustand, der hierin
als eine logi sche „1" bezeichnet wird,
und erfasst den Widerstandswert durch die ausgewählte Speicherzelle 26 in
einer zweiten Erfassungsoperation, um den Zähler zu einem zweiten Zählwert zu
inkrementieren. Die Schreibschaltung schreibt die ausgewählte Speicherzelle 26 zu
einem Niedrigwiderstandszustand, der hierin als eine logische „0" bezeichnet wird,
und erfasst den Widerstandswert durch die ausgewählte Speicherzelle 26 bei
einer dritten Erfassungsoperation. Die dritte Erfassungsoperation
inkrementiert den zweiten Zählwert
zu einem dritten Zählwert,
der der endgültige
Zählwert
ist. Der resultierende endgültige Zählwert in
dem Zähler
entspricht dem anfänglichen Widerstandszustand
der ausgewählten
Speicherzelle 26, wie es später in dieser Beschreibung
detaillierter beschrieben ist. Bei anderen Ausführungsbeispielen umfasst die
Leseoperation mehr oder weniger als drei Erfassungsoperationen und
zwei Schreiboperationen. Bei einem Ausführungsbeispiel wird z. B. eine dritte
Schreiboperation durchgeführt,
um das erfasste Ergebnis zurück
zu der ausgewählten
Speicherzelle 26 zu schreiben.
-
Bei
dem exemplarischen Ausführungsbeispiel
kategorisiert der Leseverstärker 34 den
endgültigen
Zählwert
in eine von fünf
Kategorien. Die fünf Kategorien
umfassen eine gültige
Niedrig- und eine Hochwiderstandszustandsregion, eine niedrige Außer-Bereich-
und eine hohe Außer-Bereich-Region und
die zweifelhafte Region. Die zweifelhafte Region ist zwischen der
Niedrig- und der Hochwiderstandszustandsregion gelegen. Die niedrige
Außer-Bereich-Region
umfasst Widerstandswerte unter der Niedrigwiderstandszustandsregion
und die hohe Außer-Bereich-Region
umfasst Widerstandswerte über der
Hochwiderstandszustandsregion. Der Leseverstärker 34 liefert ein
logisches „0"- oder „1"-Ausgangssignal zu
dem Ausgangsregister 56. Zusätzlich liefert der Leseverstärker 34 Statusflags,
um die Region des endgültigen
Zählwerts
anzugeben.
-
Bei
einem anderen Ausführungsbeispiel
kategorisiert der Leseverstärker 34 den
ersten Zählwert in
einer Mehrfach- Erfassungsleseoperation.
Der Leseverstärker 34 löst eine
Unterbrechung aus, um die Leseschaltung 24 unmittelbar
zu kalibrieren, falls der erste Zählwert einen Kurzschluss oder
einen Leerlauf angibt. Falls der erste Zählwert zwischen einem Kurzschluss
und der mittleren Nicht-Kalibrierungsregion
oder zwischen einem Leerlauf und der mittleren Nicht-Kalibrierungsregion
gelegen ist, setzt der Leseverstärker 34 ein
Flag zum Kalibrieren der Leseschaltung 24 zu einer späteren Zeit.
Nach dem Setzen des Flags schließt die Leseschaltung 24 die
Leseoperation ab und liefert einen resultierenden endgültigen Zählwert.
Der endgültige
Zählwert
wird in eine von fünf
Kategorien kategorisiert, einschließlich einer Niedrig- und einer
Hochwiderstandszustandsregion, einer niedrigen Außer-Bereich-
und einer hohen Außer-Bereich-Region
und der zweifelhaften Region. Die zweifelhafte Region ist zwischen
der gültigen Niedrig-
und der Hochwiderstandszustandsregion gelegen. Die niedrige Außer-Bereich-Region
umfasst Widerstandswerte unter der Niedrigwiderstandszustandsregion
und die hohe Außer-Bereich-Region umfasst
Widerstandswerte über
der Hochwiderstandszustandsregion. Der Leseverstärker 34 liefert ein
logisches „0"- oder „1"-Ausgangssignal zu
dem Ausgangsregister 56 und Statusflags.
-
Während einer
Erfassungsoperation wählt die
Leseschaltung 24 eine Wortleitung 40a–40c und eine
Bitleitung 42a–42c aus,
um den Widerstandswert durch die Speicherzelle 26 zu erfassen,
die bei dem Kreuzungspunkt der ausgewählten Wortleitung 40a–40c und
der Bitleitung 42a–42c positioniert
ist. Die Zeilendecodierschaltung 28 ist gesteuert, um eine
Wortleitung 40a–40c auszuwählen und
die Lenkschaltung 30 ist gesteuert, um eine Bitleitung 42a–42d auszuwählen. Die
Zeilendecodierschaltung 28 koppelt die ausgewählte Wortleitung 40a–40c elektrisch
mit Masse. Die Steuerschaltung 30 koppelt die ausgewählte Bitleitung 42a-42c elektrisch
mit dem Ladungsverstärker 32.
Der Ladungsverstärker 32 liefert
eine konstante Spannung und einen Erfassungsstrom zu der ausgewählten Bitleitung 42a–42c.
-
Der
Leseverstärker 34 schaltet
den Rücksetzschalter 36 ein,
um den Kondensator 38 zu der Versorgungsspannung VDD hin
zu laden. Der Leseverstärker 34 beginnt
ein Zählen,
wenn derselbe den Rücksetzschalter 36 öffnet. Der
Kondensator 38 liefert den Erfassungsstrom durch den Ladungsverstärker 32.
Der Leseverstärker 34 vergleicht
die Spannung bei dem Knoten 48 mit einer Referenzspannung und
zählt,
bis die Spannung bei dem Knoten 48 auf die Referenzspannung
abnimmt.
-
Bei
einer Mehrfach-Erfassungsleseoperation wird eine erste Erfassungsoperation
durchgeführt, um
einen ersten Erfassungszählwert
zu erhalten. Der erste Erfassungszählwert wird mit zwei multipliziert und
invertiert, um denselben zu einem negativen Wert zu machen. Der
negative Wert wird vor einer zweiten Erfassungsoperation in den
Zähler
des Leseverstärkers 34 zurückgespeichert.
Die Schreibschaltung schreibt die ausgewählte Speicherzelle 26 zu
einer logischen „1" und der Leseverstärker 34 erfasst den
Widerstandswert durch die ausgewählte
Speicherzelle 26 bei der zweiten Erfassungsoperation. Der
Zähler
in dem Leseverstärker 34 wird
während der
zweiten Erfassungsoperation zu dem zweiten Zählwert inkrementiert. Die Schreibschaltung schreibt
die ausgewählte
Speicherzelle 26 zu einer logischen „0" und der Leseverstärker 34 erfasst den Widerstandswert
durch die ausgewählte
Speicherzelle 26 bei einer dritten Erfassungsoperation.
Der Zähler
in dem Leseverstärker 34 wird
während
der dritten Erfassungsoperation zu dem dritten und endgültigen Zählwert inkrementiert.
Der Leseverstärker 34 kategorisiert
den endgültigen
Zählwert
in eine von fünf
Kategorien, liefert ein logisches „0"- oder „1"-Ausgangssignal zu dem Ausgangsregister 56 und liefert
Statusflags zu einer Steuerung.
-
Bei
anderen Ausführungsbeispielen
wird der erste Erfassungszählwert
in eine Unmittelbare-Kalibrierung-, eine Flag-für-Kalibrierung- oder eine Keine-Kalibrierung-Region
kategorisiert. Falls der erste Zählwert
in eine Keine- Kalibrierung-Region
kategorisiert wird, fährt
die Speichervorrichtung 20 fort, um die Mehrfach-Erfassungsleseoperation
abzuschließen.
Der endgültige
Zählwert
wird in eine von fünf Kategorien
kategorisiert.
-
2 ist
ein Diagramm, das ein exemplarisches Ausführungsbeispiel eines Arrayabschnitts darstellt,
der bei 70 angegeben ist. Der Arrayabschnitt 70 umfasst
eine Wortleitung 40a, eine Speicherzelle 26 und
eine Bitleitung 42a. Die Speicherzelle 26 ist
zwischen der Wortleitung 40a und der Bitleitung 42a positioniert.
Bei dem exemplarischen Ausführungsbeispiel
sind die Wortleitung 40a und die Bitleitung 42a orthogonal
zueinander. Bei anderen Ausführungsbeispielen
können
die Wortleitung 40a und die Bitleitung 42a in
anderen geeigneten Winkelbeziehungen zueinander liegen.
-
Bei
dem exemplarischen Ausführungsbeispiel
sind die Wortleitung 40a und die Bitleitung 42a elektrisch
mit der Leseschaltung 24 und der Schreibschaltung gekoppelt.
Die Schreibschaltung liefert Schreibströme zu der Wortleitung 40a und
der Bitleitung 42a, um Magnetfelder gemäß der Rechte-Hand-Regel um
die Wortleitung 40a und die Bitleitung 42a herum
und in der Speicherzelle 26 zu erzeugen. Die Magnetfelder
verbinden sich, um den Zustand der Speicherzelle 26 zu
setzen oder umzuschalten.
-
Während einer
Leseoperation erfasst die Leseschaltung 24 den Widerstandswert
durch die Speicherzelle 26 dreimal bei einer Mehrfach-Erfassungsleseoperation.
Bei einer Erfassungsoperation liefert die Leseschaltung 24 eine
konstante Spannung zu der Bitleitung 42a. Ein Erfassungsstrom
fließt
durch die Bitleitung 42a und die Speicherzelle 26 zu
der Wortleitung 40a und Masse. Der Erfassungsstrom wird
durch den Kondensator 38 geliefert und der Betrag des Erfassungsstroms
durch die Speicherzelle 26 entspricht dem Widerstandswert
durch die Speicherzelle 26.
-
Bei
einer ersten Erfassungsoperation liefert der Leseverstärker 34 einen
ersten Zählwert,
der dem Widerstandswert durch die Speicherzelle 26 entspricht.
Der erste Zählwert
wird mit zwei multipliziert und invertiert, um denselben zu einem
negativen Wert zu machen, der zurück in den Zähler in dem Leseverstärker 34 gespeichert
wird, um die zweite Erfassungsoperation zu beginnen. Die Speicherzelle 26 wird
zu einem Hochwiderstandszustand geschrieben und der Zähler in
dem Leseverstärker 34 wird während der
zweiten Erfassungsoperation zu einem zweiten Zählwert inkrementiert. Die Anzahl
von Inkrementen entspricht dem Hochwiderstandszustand der Speicherzelle 26.
Die Speicherzelle wird zu einem Niedrigwiderstandszustand geschrieben
und der Zähler
in dem Leseverstärker 34 wird
zu einem dritten und endgültigen
Zählwert
inkrementiert. Die Anzahl von Inkrementen entspricht dem Niedrigwiderstandszustand
der Speicherzelle 26. Der endgültige Zählwert wird in eine von fünf Kategorien
kategorisiert. Der Leseverstärker 34 liefert
ein logisches Ausgangssignal zu dem Ausgangsregister 56 und Statusflags.
-
Bei
einem anderen Ausführungsbeispiel
wird der erste Zählwert
in eine Unmittelbar-Kalibrieren-, eine Flag-für-Kalibrierung- oder eine Keine-Kalibrierung-Kategorie
kategorisiert. Falls der erste Zählwert in
eine Unmittelbar-Kalibrieren-Kategorie
kategorisiert wird, wird die Leseschaltung 24 kalibriert
und der Widerstandswert durch die Speicherzelle 26 wird erneut
erfasst. Wenn der Widerstandswert durch die Speicherzelle 26 n
mal in die Unmittelbar-Kalibrieren-Kategorie
kategorisiert wird, wird ein Flag gesetzt, das angibt, dass die
Speicherzelle 26 ein Kurzschluss oder ein Leerlauf ist.
Der Wert von n kann eine jegliche geeignete Anzahl sein und bei
dem exemplarischen Ausführungsbeispiel
beträgt
der Wert von n Zwei. Zusätzlich
wird ein Flag verwendet, um einen Kurzschluss anzugeben, und ein
anderes Flag wird verwendet, um einen Leerlauf anzugeben.
-
Falls
der erste Zählwert
in der Flag-für-Kalibrierung-
oder der Keine-Kalibrierung-Kategorie gelegen ist, fährt die
Leseoperation mit Mehrfach-Schreib- und Erfassungsoperationen fort,
um einen endgültigen
Zählwert
zu erhalten. Der endgültige Zählwert wird
in eine von fünf
Kategorien kategorisiert und der Leseverstärker 34 liefert ein
logisches Ausgangssignal zu dem Ausgangsregister 56 und Statusflags
zu einer Steuerung.
-
3 ist
ein Diagramm, das einen Querschnitt des exemplarischen Ausführungsbeispiels des
Arrayabschnitts 70 darstellt. Der Arrayabschnitt 70 umfasst
die Speicherzelle 26, die zwischen der Wortleitung 40a und
der Bitleitung 42a positioniert ist. Die Speicherzelle 26 umfasst
eine Erfassungsschicht 72, eine Abstandhalterschicht 74 und
eine Referenzschicht 76. Die Abstandhalterschicht 74 ist
zwischen der Erfassungsschicht 72 und der Referenzschicht 76 positioniert.
Die Erfassungsschicht 72 ist neben der Wortleitung 40a positioniert
und die Referenzschicht 76 ist neben der Bitleitung 42a positioniert. Die
Erfassungsschicht 72 weist eine veränderbare Magnetisierungsausrichtung
auf und die Referenzschicht 76 weist eine festgelegte Magnetisierungsausrichtung
auf.
-
Bei
dem exemplarischen Ausführungsbeispiel
ist die Speicherzelle 26 eine MTJ-Spintunnelvorrichtung,
wobei die Abstandhalterschicht 74 eine isolierende Barriereschicht
ist, durch die während
Leseoperationen eine elektrische Ladung wandert. Elektrische-Ladung-Wanderungen
durch die Abstandhalterschicht 74 treten ansprechend auf
eine Spannung, die über
die Speicherzelle 26 angelegt ist, und einen Erfassungsstrom
auf, der durch die Speicherzelle 26 geliefert wird. Bei
einem alternativen Ausführungsbeispiel
kann eine GMR-Struktur für
die Speicherzelle 26 verwendet werden, wobei die Abstandhalterschicht 74 ein
Leiter ist, wie beispielsweise Kupfer.
-
4 ist
ein Diagramm, das ein exemplarisches Ausführungsbeispiel eines Direktinjektion-Ladungsverstärkers 32 und
einer Digitalversatz-Kalibrierungsschaltungsanordnung darstellt,
die bei 100 angegeben ist. Der Ladungsverstärker 32 umfasst
einen PMOS-Differenzverstärker,
eine Grobkalibrierungsschaltung 102 und eine Feinkalibrierungsschaltung 104.
Der PMOS-Differenzverstärker
umfasst einen ersten, einen zweiten und einen dritten PMOS-Transistor 106a, 106b und 106e und
einen ersten und einen zweiten NMOS-Transistor 106c und 106d,
die einen gesteuerten Stromweg bereitstellen. Die PMOS-Transistoren 106a und 106b sind
in getrennten n-Typ-Mulden in einem Substrat positioniert, das ermöglicht,
dass die Substratvorspannung des ersten und des zweiten PMOS-Transistors 106a und 106b gesteuert
wird. Pfeile, die sich durch die Gates der PMOS-Transistoren 106a und 106b erstrecken, stellen
schematisch Verbindungen zu dem Substrat dar. Das Substrat ist den
NMOS-Transistoren 106c und 106d gemeinsam.
-
Der
Differenzverstärker
ist durch eine Zweite-Stufe-Verstärkerschaltung
gefolgt, die zwei Transistoren 108a und 108b zu
einem Verstärken
der Verstärkung
umfasst, um einen Ausgang unter Verwendung einer Rückkopplungsschleife
zu steuern. Die Rückkopplungsschleife
umfasst die Zweite-Stufe-Transistoren 108a und 108b,
gefolgt durch einen Stromquellentransistor 110 und den
ersten PMOS-Transistor 106a. Die Zweite-Stufe-Transistoren 108a und 108b liefern
ein Steuersignal zu dem Gate des Stromquellentransistors 110.
Ein Rückkopplungssignal
wird durch den Stromquellentransistor 110 zu dem ersten
PMOS-Transistor 106a geliefert.
-
Eine
Stabilität
einer geschlossenen Schleife kann als eine Folge eines Arbeitens
mit einem Verstärker
mit hoher Verstärkung
ein Thema sein. Frequenzkompensationskomponenten umfassen eine Widerstandsschaltung 112 und
eine Kondensatorschaltung 114, die die Stabilität der Zweite-Stufe-Transistoren 108a und 108b steuern.
Die Widerstandsschal tung 112 und die Kondensatorschaltung 114 reduzieren
die Hochfrequenzverstärkung
der Zweite-Stufe-Transistoren 108a und 108b, um
dadurch zu verhindern, dass der Operationsverstärker mit geschlossener Schleife
instabil ist.
-
Der
Stromquellentransistor 110 umfasst ein Gate, das mit den
Zweite-Stufe-Transistoren 108a und 108b und der
Kondensatorschaltung 114 gekoppelt ist. Ein Drain-zu-Source-Weg
durch den Stromquellentransistor 110 ist elektrisch mit
dem Gate des ersten PMOS-Transistors 106a durch einen Ladungsverstärkerleiter 44 gekoppelt.
Der Drain-zu-Source-Weg durch den Stromquellentransistor 110 ist
ferner elektrisch mit dem Knoten 48 der Speichervorrichtung 20 gekoppelt.
-
Bei
einem normalen Betrieb wird eine Versorgungsspannung VDD zu dem
dritten PMOS-Transistor 106e und dem Zweite-Stufe-Transistor 108a geliefert.
Eine BIAS-Spannung (Vorspannungsspannung) wird an das Gate des dritten
PMOS-Transistors 106e angelegt
und eine Erfassungsspannung Vs wird zu dem Gate des zweiten PMOS-Transistors 106b geliefert.
Der Ladungsverstärker 32 ist
wirksam, um die Erfassungsspannung Vs an dem Ladungsverstärkerleiter 44 aufgrund
des virtuellen Kurzschlusses über
die Eingänge
des Differenzverstärkers
zwischen dem Gate des ersten PMOS-Transistors 106a und dem Gate
des zweiten PMOS-Transistors 106b beizubehalten. Der Ladungsverstärkerleiter 44 ist
elektrisch mit einer ausgewählten
Speicherzelle 26 gekoppelt.
-
Der
Kondensator 38 ist elektrisch mit dem Knoten 48 gekoppelt
und liefert einen Erfassungsstrom durch den Stromquellentransistor 110 zu
dem Ladungsverstärkerleiter 44 und
der ausgewählten Speicherzelle 26.
Der Ladungsverstärker 32 erfasst und
steuert die Spannung an dem Ladungsverstärkerleiter 44 durch
ein Einstellen des Stroms durch den Stromquellentransistor 110 und
ein konstant Halten des Stroms durch den Stromquellentransistor 110 für eine Zeitperiode.
Der Erfassungsstrom fließt durch
den Stromquellentransistor 110 und die ausgewählte Speicherzelle 26,
um den Kondensator 38 zu entladen. Der Leseverstärker 34 erfasst
und vergleicht die Spannung bei dem Knoten 48 mit einer Referenzspannung,
um ein Erfassungsergebnis zu erhalten.
-
Die
Grobkalibrierungsschaltung 102 führt eine Grobversatzkorrektur
durch. Die Grobkalibrierungsschaltung 102 führt die
Grobversatzkorrektur durch ein Anlegen einer Substratvorspannungsspannung
Vcc+ und Vcc- an die getrennten Mulden des ersten und des zweiten
PMOS-Transistors 106a und 106b durch. Der Pegel
der Substratvorspannungsspannung Vcc+ und Vcc- ist gemäß einer
ersten digitalen Zahl gesetzt, die in der Grobkalibrierungsschaltung 102 gespeichert
ist. Die Empfindlichkeit der Versatzspannung zu Substratvorspannungsspannungsvariationen
kann ziemlich groß sein.
Deshalb ist ein Anlegen der Substratvorspannungsspannung Vcc+ und
Vcc- gut zu einem Vornehmen von Grobkorrekturen an der Versatzspannung
geeignet.
-
Die
Feinkalibrierungsschaltung 104 führt eine Feinversatzkorrektur
durch. Die Feinversatzkorrektur wird durch ein Einstellen von Impedanzen
der Transistoren 106a–106e in
dem Differenzverstärker durchgeführt. Die
Größe der Impedanzeinstellung
ist durch eine zweite digitale Zahl bestimmt, die in der Feinkalibrierungsschaltung 104 gespeichert
ist.
-
Die
Kalibrierungsschaltung 100 umfasst eine Kalibrierungssteuerschaltung 120,
eine Teststromquelle 122 und einen Zähler 124 zum Bestimmen
der ersten und der zweiten digitalen Zahl, die in der Grob- bzw.
Feinkalibrierungsschaltung 102 bzw. 104 gespeichert
sind. Während
einer Kalibrierung liefert die Teststromquelle 122 einen
Teststrom Itest bei dem Knoten 48. Der Betrag des Teststroms
Itest kann ausgewählt
sein, um näherungsweise
der Wert des erwarteten Erfassungsstroms bei der Abwesenheit eines
Versatzfehlers zu sein.
-
Bei
dem Start eines Kalibrierungsmodus beginnt der Zähler 124 von Null
zu zählen.
Der Zählwert wird
zu der Grob- und der Feinkalibrierungsschaltung 102 und 104 über einen
Steuerbus A0:A5 und Gatesteuerungen GATE_C und GATE_F geliefert.
Eine Grobkalibrierung wird durchgeführt, während das höchstwertige Bit A5 des Zählwerts
niedrig ist, und eine Feinkalibrierung wird durchgeführt, während das höchstwertige
Bit A5 hoch ist. Während
einer Grobkalibrierung wird der Pegel der Substratvorspannungsspannung
Vcc+ und Vcc- jedes Mal geändert, wenn
der Zählwert
inkrementiert wird. Eine Spannungsauslenkung bei dem Knoten 48 wird
untersucht, während
die Substratvorspannungsspannung Vcc+ und Vcc- geändert wird.
Die Spannung Vtest bei dem Knoten 48 wird hochgezogen,
während
der Teststrom Itest größer als
der Erfassungsstrom des Ladungsverstärkers 32 ist. Die
Spannung Vtest bei dem Knoten 48 wird heruntergezogen,
während
der Teststrom Itest kleiner als der oder gleich dem Erfassungsstrom
ist. Wenn der Knoten 48 von niedrig zu hoch wird oder umgekehrt,
ist die Spannungsauslenkung bei dem Knoten 48 groß genug,
um als ein logischer Eingang zu Komplementär-Metalloxidhalbleiter-Logikgattern
(CMOS-Logikgattern)
in der Kalibrierungssteuerschaltung 120 zu dienen.
-
Eine
Spannungsauslenkung tritt auf, wenn der neue Zählwert bewirkt, dass sich die
Substratvorspannungsspannung ändert,
derart, dass Itest kleiner als der oder gleich dem Erfassungsstrom
ist. Der Zählwert,
der die Spannungsauslenkung bewirkte, wird in der Grobkalibrierungsschaltung 102 gespeichert.
Dieser Zählwert
ist die erste digitale Zahl, die die Substratvorspannungsspannung
Vcc+ und Vcc- setzt. Die Zahl, die in der Grobkalibrierungsschaltung 102 gespeichert
ist, verändert
sich nicht, wenn der Zählwert
weiter inkrementiert wird.
-
Eine
Feinkalibrierung beginnt, nachdem der Zählwert eine Null und vier Einsen
erreicht hat und das nächste
Inkrement bewirkt, dass das höchstwertige
Bit A5 hoch wird und die verbleibenden Bits A0–A4 niedrig werden. Der anfängliche
Pegel des Teststroms Itest ist geringer als der Erfassungsstrom. Jedes
Mal, wenn der Zählwert
während
der Feinkalibrierung inkrementiert wird, wird die Transistorimpedanz
zu einem neuen Pegel geändert.
Eine andere Spannungsauslenkung tritt aufgrund dessen auf, dass
der neue Zählwert
bewirkt, dass sich die Transistorimpedanz ändert, derart, dass Itest größer als der
oder gleich dem Erfassungsstrom ist. Der Zählwert, der die Spannungsauslenkung
bewirkte, wird in der Feinkalibrierungsschaltung 104 gespeichert.
Dieser Zählwert
ist die zweite digitale Zahl, die verwendet wird, um die Transistorimpedanz
zu setzen.
-
Ein
Ausführungsbeispiel
eines Ladungsverstärkers 32,
der zu einer Verwendung bei der vorliegenden Erfindung geeignet
ist, ist in dem US-Patent Nr. 6, 262, 625, erteilt an Perner et
al. am 17. Juli 2001, mit dem Titel „Operational Amplifier With
Digital Offset Calibration",
offenbart und beschrieben, das hierin durch Bezugnahme aufgenommen
ist.
-
5 ist
ein Diagramm, das ein exemplarisches Ausführungsbeispiel eines digitalen
Leseverstärkers 34 während einer
Leseoperation einer ausgewählten
Speicherzelle darstellt, die durch einen Widerstand bei 26 dargestellt
ist. Der Leseverstärker 34 umfasst
eine Leseverstärkersteuerung 200,
einen N-Bit-Zähler 202,
ein voreingestelltes Register 204, eine Schwellenvergleichslogik 206,
einen Komparator 208, einen Takt 210 und ein Taktgatter 212.
Die Leseverstärkersteuerung 200 befindet
sich in einer elektrischen Kommunikation mit der Schwellenvergleichslogik 206 und
dem voreingestellten Register 204 und ist durch einen Zählerbus 201 elektrisch
mit dem N-Bit-Zähler 202 gekoppelt.
Zusätzlich
ist die Leseverstärkersteuerung 200 durch
einen Gattersteuerleiter 203 elektrisch mit dem Taktgatter 212 und
durch einen Schaltsteuerleiter 50 mit dem Gate des Rücksetzschalters 36 gekoppelt.
-
Der
N-Bit-Zähler 202 ist
durch einen Schwellenvergleichsbus 207 elektrisch mit der
Schwellenvergleichslogik 206 und durch einen Voreingestelltes-Register-Bus 209 mit
dem voreingestellten Register 204 gekoppelt. Der N-Bit-Zähler überträgt Zählwerte
zu und von der Schwellenvergleichslogik 206 und dem voreingestellten
Register 204. Zusätzlich
ist der N-Bit-Zähler 202 elektrisch
mit dem Taktgatter 212 durch einen Gatterausgangsleiter 205 zum
Empfangen eines durchgeschalteten Taktsignals gekoppelt.
-
Das
Taktgatter 212 ist durch einen Taktleiter 211 elektrisch
mit dem Takt 210 gekoppelt. Zusätzlich ist das Taktgatter 212 durch
einen Komparatorleiter 213 zu einem Durchschalten des Taktsignals
elektrisch mit dem Komparator 208 gekoppelt.
-
Ein
Drain-Source-Weg durch den Rücksetzschalter 36 ist
elektrisch mit VDD und dem Knoten 48 gekoppelt, der elektrisch
mit dem Komparator 208 des Leseverstärkers 34 gekoppelt
ist. Zusätzlich
ist der Knoten 48 elektrisch mit dem Direktinjektion-Ladungsverstärker 32 und
dem Kondensator 38 gekoppelt, der bei 54 mit Masse
gekoppelt ist. Der Ladungsverstärker 32 ist
durch den Ladungsverstärkerleiter 44 und
die Lenkschaltung 30 (in 5 nicht
gezeigt) mit der Speicherzelle 26 elektrisch gekoppelt.
-
Während einer
Leseoperation koppelt die Zeilendecodierschaltung 28 die
ausgewählte
Speicherzelle 26 elektrisch mit Masse und die Lenkschaltung 30 koppelt
die ausgewählte
Speicherzelle 26 elektrisch mit dem Ladungsverstärkerleiter 44 und dem
Ladungsverstärker 32.
Eine Erfassungsspannung Vs wird zu dem Ladungsverstärker 32 geliefert und
der Ladungsverstärker 32 liefert
eine entsprechende Erfassungsspannung Vs' über
die ausgewählte
Speicherzelle 26.
-
Die
Leseverstärkersteuerung 200 liefert
ein Steuersignal zu dem Gate des Rücksetzschalters 36, um
den Rücksetzschalter 36 einzuschalten
und die Versorgungsspannung VDD zu dem Integrierkondensator 38 zu
liefern. Die Erfassungsverstärkersteuerung 200 liefert
ein Steuersignal, um den Rücksetzschalter 36 auszuschalten,
nachdem der Integrierkondensator 38 geladen wurde. Der
Erfassungsstrom Is fließt
von dem Kondensator 38 durch den Ladungsverstärker 32 und
die ausgewählte
Speicherzelle 26. Solange die Spannung bei dem Knoten 48 größer als
die Spannung über
die ausgewählte Speicherzelle 26 ist,
wirkt der Kondensator 38 als ein Linearintegrator.
-
Der
Ladungsverstärker 32 steuert
die Erfassungsspannung Vs' über die
ausgewählte
Speicherzelle 26. Die Erfassungsspannung Vs' wird im Wesentlichen
konstant gehalten und ist unabhängig
von dem Erfassungsstrom Is, der durch die ausgewählte Speicherzelle 26 fließt. Der
Strom, der durch den Ladungsverstärker 32 fließt, ist
direkt proportional zu dem Widerstandswert durch die ausgewählte Speicherzelle 26.
Der Ladungsverstärker 32 umfasst
einen Verstärker
mit hoher Verstärkung
und negativer Rückkopplung
zu einem Beibehalten der Erfassungsspannung Vs' bei einem konstanten Wert und einem Minimieren
der Varianz der Erfassungsspannung Vs' über
einem breiten Bereich von Erfassungsströmen Is.
-
Bei
dem exemplarischen Ausführungsbeispiel
bestimmen der Widerstandswert durch die ausgewählte Speicherzelle 26 und
die Kapazität
des Kondensators 38, wie schnell der Kondensator 38 entladen
wird, nachdem der Rücksetzschalter 36 ausgeschaltet
ist. Ein gegebener Kondensator 38 entlädt sich bei der ausgewählten Speicherzelle 26 in einem
Niedrigwiderstandszustand, der einen Widerstandswert von R aufweist,
verglichen mit der ausgewählten
Speicherzelle 26 in einem Hochwiderstandszustand, der einen
Widerstandswert von R +• R
aufweist, viel schneller.
-
Der
Leseverstärker 34 misst
die Integrationszeit, um den Widerstandszustand der ausgewählten Speicherzelle 26 zu
bestimmen. Das Taktgatter 212 empfängt Signale von der Leseverstärkersteuerung 200,
dem Komparator 208 und dem Takt 210. Das Taktgatter 212 liefert
ein durchgeschaltetes Taktsignal zu dem N-Bit-Zähler 202, um den N-Bit-Zähler 202 zu
inkrementieren. Ein Hochgeschwindigkeitstaktsignal wird zu dem Taktgatter 212 durch
den Takt 210 geliefert.
-
Wenn
die Leseverstärkersteuerung 200 den Rücksetzschalter 36 ausschaltet,
gibt die Leseverstärkersteuerung 200 das
Taktgatter 212 frei, um den N-Bit-Zähler 202 zu takten.
Der Komparator 208 vergleicht die Spannung bei dem Knoten 48 mit
einer DC-Referenzspannung Vref. Wenn die Spannung bei dem Knoten 48 die
Referenzspannung Vref erreicht, liefert der Komparator 208 ein
Signal zu dem Taktgatter 212, um ein Takten des N-Bit-Zählers 202 zu
sperren. Der Zählwert
in dem N-Bit-Zähler 202 gibt
die Länge
der Zeit an, die die Spannung bei dem Knoten 48 benötigte, um
sich auf die Referenzspannung Vref zu verringern.
-
Die
Leseverstärkersteuerung 200 steuert
die Leseschaltung 24, um in unterschiedlichen Modi wirksam
zu sein, einschließlich
Leseoperationen und einer Kalibrierung der Leseschaltung 24.
Die Steuerung 200 steuert den Rücksetzschalter 36,
das Taktgatter 212, den Zähler 202, das voreingestellte
Register 204 und die Schwellenvergleichslogik 206.
-
Das
voreingestellte Register 204 ist ein voreingestelltes N-Bit-Register,
das die Inhalte desselben in den Zähler 202 lädt. Das
voreingestellte Register 204 wird durch die Leseverstärkersteuerung 200 mit
spezifischen Werten geladen, wie beispielsweise für eine Initialisierung
oder für
ein Abschließen einer
Mehrfach-Erfassungsleseoperation. Bei anderen Ausführungsbeispielen
können
durch Eingangsanschlussflächen
der Speichervorrichtung 20 spezifische Werte zugeführt werden.
-
Die
Schwellenvergleichslogik 206 ist durch die Leseverstärkersteuerung 200 gesteuert,
um einen Zählwert
von dem Zähler 202 mit
einem Satz von Schwellenwerten zu verglei chen. Bei dem exemplarischen
Ausführungsbeispiel
kategorisiert die Schwellenvergleichslogik 206 einen endgültigen Zählwert von
dem Zähler 202 in
eine von fünf
Kategorien. Die fünf
Kategorien umfassen eine Niedrigwiderstandszustandsregion, eine
Hochwiderstandszustandsregion, eine niedrige Außer-Bereich-Region, eine hohe Außer-Bereich-Region und eine zweifelhafte
Region. Die zweifelhafte Region ist zwischen der Niedrig- und der
Hochwiderstandszustandsregion gelegen. Die niedrige Außer-Bereich-Region
umfasst Widerstandswerte unter der Niedrigwiderstandszustandsregion
und die hohe Außer-Bereich-Region
umfasst Widerstandswerte über
der Hochwiderstandszustandsregion.
-
Die
Schwellenvergleichslogik 206 ist durch die Leseverstärkersteuerung 200 gesteuert,
um einen endgültigen
Zählwert
von dem Zähler 202 zu empfangen
und den Zählwert
in eine der fünf
Kategorien zu kategorisieren. Die Schwellenvergleichslogik 206 liefert
eine logische „0" oder „1" zu dem N-Bit-Zähler 202,
der ein Ausgangssignal DOUT zu dem Ausgangsregister 56 und
der I/O-Anschlussfläche 58 liefert.
Die Schwellenvergleichslogik 206 liefert ferner Statusflags
zu der Leseverstärkersteuerung 200.
Die Statusflags geben die Kategorie des endgültigen Zählwerts von dem Zähler 202 an.
Die Leseverstärkersteuerung 200 liefert
Statusflags zu externen Schaltungen durch Ausgangsanschlussflächen der
Speichervorrichtung 20.
-
Bei
dem exemplarischen Ausführungsbeispiel
ist eine Leseoperation eine Mehrfach-Erfassungsoperation, die drei
Erfassungsoperationen und zwei Schreiboperationen umfasst. Um den
Widerstandszustand einer ausgewählten
Speicherzelle 26 zu erfassen, wählt die Zeilendecodierschaltung 28 eine
Wortleitung 40a–40c aus
und die Lenkschaltung 30 wählt eine Bitleitung 42a–42c aus.
Die ausgewählte
Wortleitung 40a–40c und
die ausgewählte
Bitleitung 42a–42c kreuzen
sich bei der ausgewählten Speicherzelle 26.
Der Widerstandswert durch die ausgewählte Speicherzelle 26 wird
in einer ersten Erfassungsoperation erfasst, um einen ersten Zählwert in
dem Zähler 202 zu
erhalten. Die Leseverstärkersteuerung 200 empfängt den
ersten Zählwert
von dem Zähler 202 und
multipliziert den ersten Zählwert mit
zwei. Die Multiplikation mit zwei wird durch ein Verschieben eines
Binärwerts
um ein Bit nach links erzielt. Die Leseverstärkersteuerung 200 invertiert den
verdoppelten ersten Zählwert,
um einen negativen verdoppelten ersten Zählwert zu erhalten, der zu dem
voreingestellten Register 204 geliefert wird. Das voreingestellte
Register 204 überträgt den negativen verdoppelten
ersten Zählwert
in den Zähler 202 vor der
zweiten Erfassungsoperation.
-
Die
Leseverstärkersteuerung 200 weist
die Speichervorrichtung 20 an, die ausgewählte Speicherzelle 26 zu
einem Hochwiderstandszustand zu schreiben. Der Widerstandswert durch
die ausgewählte
Speicherzelle 26 wird in einer zweiten Erfassungsoperation
erfasst, nachdem die ausgewählte Speicherzelle 26 zu
dem Hochwiderstandszustand geschrieben wurde. Der voreingestellte
oder anfängliche
Wert des Zählers 202 für die zweite
Erfassungsoperation ist der negative verdoppelte erste Zählwert, der
von dem voreingestellten Register 204 zu dem Zähler 202 geliefert
wird. Die zweite Erfassungsoperation geht weiter, wie es vorhergehend
beschrieben ist, derart, dass der Zähler 202 inkrementiert
wird, während
die Spannung bei dem Knoten 48 sich auf die Referenzspannung
Vref verringert. Der negative Wert in dem Zähler 202 wird zu Null
hin inkrementiert. Nach der zweiten Erfassungsoperation empfängt die Leseverstärkersteuerung 200 den
zweiten Zählwert von
dem Zähler 202 und
liefert den zweiten Zählwert zu
dem voreingestellten Register 204. Das voreingestellte
Register 204 lädt
den zweiten Zählwert
in den Zähler 202 bei
dem Beginn der dritten Erfassungsoperation.
-
Die
Leseverstärkersteuerung 200 weist
die Speichervorrichtung 20 an, die ausgewählte Speicherzelle 26 zu
einem Niedrigwiderstandszustand zu schreiben. Nachdem die ausgewählte Speicherzelle 26 zu
dem Niedrigwiderstandszustand geschrieben wurde, wird eine dritte
Erfassungsoperation an der ausgewählten Speicherzelle 26 durchgeführt. Um
die dritte Erfassungsoperation zu beginnen, lädt das voreingestellte Register 204 den
zweiten Zählwert,
d. h. den Zählwert,
der nach der zweiten Erfassungsoperation in dem Zähler 202 verbleibt,
in den Zähler 202. Die
dritte Erfassungsoperation inkrementiert den Zähler 202, während die
Spannung bei dem Knoten 48 sich auf die Referenzspannung
Vref verringert. Der resultierende Zählwert, der als der endgültige Zählwert bezeichnet
wird, wird zu der Schwellenvergleichslogik 206 geliefert,
um in eine von fünf
Kategorien kategorisiert zu werden.
-
Die
Schwellenvergleichslogik 206 kategorisiert den endgültigen Zählwert in
die Niedrigwiderstandszustandsregion, die Hochwiderstandszustandsregion,
die niedrige Außer-Bereich-Region, die hohe
Außer-Bereich-Region
oder die zweifelhafte Region. Die Schwellenvergleichslogik 206 liefert
eine logische „0" oder „1" zu dem Zähler 202.
Der Zähler 202 liefert
das DOUT-Signal zu dem Ausgangsregister 56. Die Schwellenvergleichslogik 206 liefert
ferner Statusflags zu der Leseverstärkersteuerung 200,
die die Statusflags zu externen Schaltungen liefert.
-
Bei
einem Beispiel einer Mehrfach-Erfassungsleseoperation wird der Widerstandswert
durch eine ausgewählte
Speicherzelle 26 erfasst, um einen ersten Zählwert von 100 zu
erhalten. Bei diesem Beispiel ergibt ein Hochwiderstandszustand
einen Zählwert
von 110 und ein Niedrigwiderstandszustand ergibt einen
Zählwert
von 100. Der erste Zählwert
von 100 wird mit zwei multipliziert, um einen verdoppelten ersten
Zählwert
von 200 zu erhalten. Der positive Zählwert von 200 wird
invertiert, um einen negativen verdoppelten ersten Zählwert von
in etwa negativ 200 zu erhalten. Der negative verdoppelte
erste Zählwert wird
zu dem voreingestellten Register 204 geliefert. Die ausgewählte Speicherzelle 26 wird
zu einem Hochwiderstandszustand geschrieben und eine zweite Erfassungsoperation
wird durchgeführt.
-
Während der
zweiten Erfassungsoperation inkrementiert der Zähler 110 Zählwerte,
um einen zweiten Zählwert
von in etwa negativ 90 zu erhalten. Der Zählwert von
negativ 90 wird durch die Leseverstärkersteuerung 200 empfangen
und zu dem voreingestellten Register 204 geliefert. Die
Speicherzelle 26 wird zu dem Niedrigwiderstandszustand
geschrieben und die ausgewählte
Speicherzelle 26 wird in einer dritten Erfassungsoperation
erfasst. Das voreingestellte Register 206 lädt den Zähler 202 mit
dem Zählwert
von negativ 90, um die dritte Erfassungsoperation zu beginnen.
Während
der dritten Erfassungsoperation inkrementiert der Zähler 100 Zählwerte,
um einen endgültigen
Zählwert
von positiv 10 zu erreichen.
-
Bei
diesem Beispiel ist die zweifelhafte Region oder Kategorie als eine
Region von plus oder minus Zwei um Null herum definiert. Die Hochwiderstandszustandsregion
ist zwischen negativ zwei und negativ 15 und die Niedrigwiderstandszustandsregion
ist zwischen positiv zwei und positiv 15. Die hohe Außer-Bereich-Region
ist weniger als negativ 15 und die niedrige Außer-Bereich-Region
ist größer als
positiv 15. Bei einer Leseoperation kann ein hoher Außer-Bereich- oder ein
niedriger Außer-Bereich-Wert das
Ergebnis eines übermäßigen Rauschens
oder eines nichtlinearen Widerstandsfehlers sein. Für sehr hohe
und sehr niedrige Widerstandswerte ändert sich der Widerstandswert
durch die ausgewählte Speicherzelle 26 wenig,
wenn überhaupt,
bei einer Zustandsänderung
der ausgewählten
Speicherzelle 26. Deshalb resultieren sehr niedrige Widerstandswerte,
wie beispielsweise Kurzschlüsse,
und sehr hohe Widerstandswerte, wie beispielsweise Leerläufe, in
einem endgültigen
Zählwert
in der zweifelhaften Region.
-
Bei
dem vorliegenden Beispiel liegt der endgültige Zählwert von positiv 10 direkt
in der Niedrigwiderstandszustandsregion. Der Zähler 202 liefert ein logisches „0"-DOUT-Signal zu dem
Ausgangsregister 56 und die Leseverstärkersteuerung 200 setzt
ein Flag, das eine gültige
logische „0" angibt.
-
Bei
dem exemplarischen Ausführungsbeispiel
setzt die Leseverstärkersteuerung 200 ein
einziges Flag für
jede der fünf
Kategorien. Bei einem anderen Ausführungsbeispiel kann die Leseverstärkersteuerung 200 ein
Flag für
beide gültige
logische Zustände
verwenden und ein Flag für
sowohl die niedrige Außer-Bereich-
als auch die hohe Außer-Bereich-Kategorie.
-
Bei
einem anderen Ausführungsbeispiel
kategorisiert der Leseverstärker 34 den
ersten Zählwert einer
Mehrfach-Erfassungsleseoperation
in eine von fünf
Kategorien oder Regionen. Zusätzlich
kategorisiert der Leseverstärker 34 den
endgültigen
Zählwert in
eine von fünf
Regionen, wie es für
das vorhergehende Ausführungsbeispiel
beschrieben ist. Der erste Zählwert
wird in fünf
Regionen kategorisiert, einschließlich einer Kurzschluss-, einer
Leerlauf-, zwei Verzögert-Kalibrierung-Regionen
und einer Keine-Kalibrierung-Region.
Die zwei Verzögert-Kalibrierung-Regionen sind positioniert,
wobei eine Region zwischen einer Kurzschluss- und der Keine-Kalibrierung-Region
ist und die andere zwischen einer Leerlauf- und der Keine-Kalibrierung-Region
ist. Die Keine-Kalibrierung-Region ist eine mittlere Region, die den
Niedrig- und den Hochwiderstandszustand umfasst. Die fünf Regionen
zum Kategorisieren des ersten Zählwerts
sind unterschiedlich zu den fünf
Regionen zum Kategorisieren des endgültigen Zählwerts.
-
Bei
diesem Ausführungsbeispiel
wird der erste Zählwert
in eine von fünf
Regionen kategorisiert. Falls der erste Zählwert als ein Kurzschluss oder
ein Leerlauf kategorisiert wird, weist die Leseverstärkersteuerung 200 die
Speichervorrichtung 20 an, um eine unmittelbare Kalibrierung
der Leseschaltung 24 vorzunehmen. Nach der unmittelbaren
Kalibrierung prüft
die Speichervorrichtung 20 die ausgewählte Speicherzelle 26 wieder.
Die Sequenz eines Kategorisierens als ein Kurzschluss oder ein Leerlauf und
eine unmittelbare Kalibrierung geschieht bis zu n mal. Wenn der
erste Zählwert
n-mal für
die gleiche ausgewählte
Spei cherzelle 26 einen Kurzschluss oder einen Leerlauf
angibt, setzt die Leseverstärkersteuerung 200 ein
Flag, das angibt, dass die ausgewählte Speicherzelle 26 ein
Leerlauf oder ein Kurzschluss ist. Bei dem exemplarischen Ausführungsbeispiel
setzt die Leseverstärkersteuerung 200 ein Flag,
um einen Kurzschluss anzugeben, und ein anderes Flag, um einen Leerlauf
anzugeben. Die Speichervorrichtung 20 hört auf, den Widerstandswert durch
die ausgewählte
Speicherzelle 26 zu erfassen, nachdem die ausgewählte Speicherzelle 26 als
ein Kurzschluss oder ein Leerlauf markiert bzw. mit einem Flag versehen
ist.
-
Falls
der erste Wert in eine der zwei Verzögerte-Kalibrierung-Regionen kategorisiert
wird, setzt die Leseverstärkersteuerung 200 ein
Flag, das angibt, dass die Leseschaltung 24 zu einer späteren Zeit
kalibriert werden muss. Die Leseverstärkersteuerung 200 fährt mit
der Mehrfach-Erfassungsleseoperation fort, um den endgültigen Zählwert zu
erhalten und den endgültigen
Zählwert
in die eine von fünf Regionen
zu kategorisieren, wie es oben beschrieben ist. Die Leseschaltung 24 kann
bei einer verzögerten
Kalibrierung nach einem Erfassen der ausgewählten Speicherzelle 26 oder
nach einem Erfassen einer vorbestimmten Anzahl von Speicherzellen 26 kalibriert
werden. Das Verzögerte-Kalibrierung-Flag wird
entfernt, nachdem die Leseschaltung 24 kalibriert ist.
-
Falls
der erste Zählwert
in die Nicht-Kalibrierung-Kategorie
kategorisiert wird, fährt
die Leseverstärkersteuerung 200 fort,
um die Mehrfach-Erfassungsleseoperation abzuschließen, um
einen endgültigen
Zählwert
zu erhalten. Der endgültige
Zählwert
wird in die eine von fünf
Kategorien kategorisiert.
-
Bei
einem Beispiel eines Kategorisierens des ersten Zählwerts
führt die
Leseschaltung 24 eine erste Erfassungsoperation an einer
ausgewählten Speicherzelle 26 durch,
um einen ersten Zählwert von 100 von
dem Zähler 202 zu
erhal ten. Der erste Zählwert
von 100 wird durch die Schwellenvergleichslogik 206 empfangen,
um den ersten Zählwert in
eine von fünf
ersten Erfassungskategorien zu kategorisieren. Bei dem vorliegenden
Beispiel ergibt eine ausgewählte
Speicherzelle 26 in dem Niedrigwiderstandszustand einen
erwarteten ersten Zählwert
von 100 und eine Speicherzelle 26 in dem Hochwiderstandszustand
ergibt einen erwarteten ersten Zählwert
von 110. Die Nicht-Kalibrierung-Region erstreckt sich von 85 bis 125.
Ein erster Zählwert
in dieser Region gibt an, dass der erfasste Widerstandswert für ein Fortfahren
mit der Leseoperation annehmbar ist. Die niedrige Verzögerte-Kalibrierung-Region
ist in einem Bereich von 70 bis 85 und die hohe
Verzögerte-Kalibrierung-Region ist in dem
Bereich 125 bis 140. Ein erster Zählwert in
einem dieser Bereiche gibt an, dass der erfasste Widerstandswert
und der erste Zählwert
für ein
Fortfahren mit der Leseoperation annehmbar ist. Die Leseschaltung 24 muss
jedoch zu einer späteren
Zeit kalibriert werden. Die Kurzschluss-Unmittelbare-Kalibrierung-Region
ist ein Zählwert
von weniger als 70 und die Leerlauf-Unmittelbare-Kalibrierung-Region
ist ein Zählwert
von mehr als 140. Ein erster Zählwert von weniger als 70 oder
mehr als 140 gibt an, dass die Leseschaltung 24 einer
unmittelbaren Kalibrierung bedarf oder die ausgewählte Speicherzelle 26 ein
Kurzschluss oder ein Leerlauf ist. Bei dem vorliegenden Beispiel
ist ein erster Zählwert
von 100 in der Nicht-Kalibrierung-Region gelegen
und die Leseoperation fährt
fort, um einen endgültigen
Zählwert
zu erhalten und den endgültigen
Zählwert
in eine von fünf
Kategorien zu kategorisieren.
-
Ein
Ausführungsbeispiel
des Leseverstärkers 34,
das zu einer Verwendung bei der vorliegenden Erfindung geeignet
ist, ist in dem US-Patent Nr. 6,188,615, erteilt an Perner et al.
am 13. Februar 2001 und mit dem Titel „MRAM Device Including Digital
Sense Amplifiers",
offenbart und beschrieben, das hierin durch Bezugnahme aufgenommen
ist.
-
6 ist
ein Graph, der die Wahrscheinlichkeit (p) darstellt, dass ein Leseoperationsergebnis
in eine von fünf
Kategorien kategorisiert wird. Die Leseoperation ist eine Mehrfach-Erfassungsleseoperation,
die in einem endgültigen
Zählwert
resultiert. Die endgültigen
Zählwerte
sind aufgetragen, um 100% der endgültigen Zählabtastwerte zu berücksichtigen, die
von repräsentativen
Speicherzellen 26 genommen sind. Die Speicherzellen 26 wurden
für einen Abtastwert
zu einem Niedrigwiderstandszustand geschrieben und für einen
anderen Abtastwert zu einem Hochwiderstandszustand. Die Endgültige-Zählwert-Skala
ist in fünf
Regionen oder Bereiche geteilt, die die fünf Kategorien sind, die durch
den Leseverstärker 34 unterschieden
werden.
-
In
einer Kategorie 300 ist der endgültige Zählwert in der hohen Außer-Bereich-Kategorie,
die eine mögliche
Fehlersituation aufgrund eines übermäßigen Rauschens
oder eines nichtlinearen Widerstandswerts darstellt. Der Leseverstärker 34 liefert ein
logisches „1"-Ausgangssignal zu
dem Ausgangsregister 56. Zusätzlich setzt der Leseverstärker 34 ein
Flag, das angibt, dass der endgültige
Zählwert
in der hohen Außer-Bereich-Kategorie
ist.
-
In
einer Kategorie 302 ist der endgültige Zählwert in der Hochwiderstandszustandskategorie. Endgültige Zählwerte
in der Kategorie 302 sind gültige Hochwiderstandszustandszählwerte.
Der Leseverstärker 34 liefert
ein logisches „1"-Ausgangssignal bei DOUT zu dem Ausgangsregister 56.
Zusätzlich setzt
der Leseverstärker 34 ein
Flag, das angibt, dass der endgültige
Zählwert
eine gültige
logische „1" ist.
-
In
einer Kategorie 304 ist der endgültige Zählwert in der zweifelhaften
Region, wo ein Widerstandszustand nicht mit einem jeglichen Grad
an Bestimmtheit ermittelt werden kann. Der endgültige Zählwert ist zwischen den endgültigen Zählwerten
für einen
Niedrigwiderstandszustand und einen Hochwiderstandszustand der Speicherzellen 26 gelegen.
In der zweifelhaften Kategorie 304 liefert der Leseverstärker 34 eine
logische „0" oder eine logische „1" als ein Ausgangssignal
DOUT zu dem Ausgangsregister 56. Der gelieferte logische
Wert hängt
von vorbestimmten Kriterien ab, wie beispielsweise dem vorhergehenden
logischen Wert, der zu dem Ausgangsregister 56 geliefert
wird. Der Leseverstärker 34 setzt ein
Flag, das angibt, dass der endgültige
Zählwert
in der zweifelhaften Kategorie 304 gelegen ist, und liefert
das Flag, wie bei allen Flags, zu externen Vorrichtungen, wie es
benötigt
wird.
-
In
einer Kategorie 306 ist der endgültige Zählwert in der Niedrigwiderstandszustandskategorie.
Endgültige
Zählwerte
in der Kategorie 306 sind gültige Niedrigwiderstandszustandszählwerte.
Der Leseverstärker 34 liefert
ein logisches „0"-Ausgangssignal bei
DOUT zu dem Ausgangsregister 56. Zusätzlich setzt der Leseverstärker 34 ein
Flag, das angibt, dass der endgültige
Zählwert
eine gültige
logische „0" ist.
-
In
einer Kategorie 308 ist der endgültige Zählwert in der unteren Außer-Bereich-Kategorie,
die eine mögliche
Fehlersituation aufgrund eines übermäßigen Rauschens
oder eines nichtlinearen Widerstandswerts darstellt. Der Leseverstärker 34 liefert ein
logisches „0"-Ausgangssignal zu
dem Ausgangsregister 56. Zusätzlich setzt der Leseverstärker 34 ein
Flag, das angibt, dass der endgültige
Zählwert
in der unteren Außer-Bereich-Kategorie
ist.
-
Bei
dem exemplarischen Ausführungsbeispiel
umfasst die Schwellenvergleichslogik 206 Schwellenwerte
zum Unterscheiden zwischen den fünf
Kategorien von Widerstandswerten und endgültigen Zählwerten, die durch Speicherzellen 26 erfasst werden.
Die Schwellenwerte werden aus einem repräsentativen Abtastwert von Speicherzellen 26 in der
Speichervorrichtung 20 berechnet. Ausgewählte Speicherzellen 26 werden
in dem Niedrigwiderstandszustand und dem Hochwiderstandszustand erfasst.
Die endgültigen
Zählwerte
werden in die fünf Kategorien
unter Verwendung vorbestimmter Kriterien ge teilt, wie beispielsweise
Standardabweichungen, um die Grenzen zwischen den fünf Kategorien zu
bestimmen. Die berechneten Schwellenwerte werden in der Schwellenvergleichslogik 206 zum
Kategorisieren der endgültigen
Zählwerte
in eine der fünf
Regionen gespeichert.
-
7 ist
ein Flussdiagramm, das eine Leseoperation eines exemplarischen Ausführungsbeispiels
der Speichervorrichtung 20 darstellt. Die Leseoperation
ist eine Mehrfach-Erfassungs-
und Mehrfach-Schreibleseoperation, die drei Erfassungsoperationen
und zumindest zwei Schreiboperationen umfasst. Um eine Leseoperation
zu beginnen, wählt die
Zeilendecodierschaltung 28 eine Wortleitung 40a–40c aus
und die Lenkschaltung 30 wählt eine Bitleitung 42a–42c aus,
um die Speicherzelle 26 auszuwählen, die bei dem Kreuzungspunkt
der ausgewählten
Wortleitung 40a–40c und
der ausgewählten Bitleitung 42a–42c positioniert
ist, was bei 400 angegeben ist. Bei einer ersten Erfassungsoperation
bei 402 koppelt die Zeilendecodierschaltung 28 die
ausgewählte
Wortleitung 40a–40c mit
Masse und die Lenkschaltung 30 koppelt die ausgewählte Bitleitung 42a–42c mit
dem Ladungsverstärker 32.
Der Erfassungsverstärker 34 steuert
den Rücksetzschalter 36, um
den Kondensator 38 bei einem Knoten 48 zu der Versorgungsspannung
VDD hin zu leiten und zu laden, und steuert dann den Rücksetzschalter 36,
um ein Leiten zu beenden. Der Ladungsverstärker 32 liefert eine
konstante Spannung zu der ausgewählten Bitleitung 42a–42c.
Die konstante Spannung erzeugt einen konstanten Erfassungsstrom
Is durch die ausgewählte
Speicherzelle 26. Der Erfassungsstrom Is wird durch den
Kondensator 38 geliefert. Der Leseverstärker 34 zählt zu einem
ersten Zählwert,
während
der Kondensator 38 sich auf eine Referenzspannung verringert.
Der erste Zählwert
wird durch die Leseverstärkersteuerung 200 empfangen
und mit zwei multipliziert. Der verdoppelte erste Zählwert wird invertiert,
um denselben zu einer negativen Zahl zu machen, die in dem voreingestellten
Register 204 gespeichert wird.
-
Die
Schreibschaltung schreibt bei 404 die ausgewählte Speicherzelle 26 zu
einem Hochwiderstandszustand, der hierin als eine logische „1" bezeichnet wird.
Nachdem die ausgewählte
Speicherzelle 26 zu dem Hochwiderstandszustand geschrieben
wurde, führt
die Leseschaltung 24 bei 406 eine zweite Erfassungsoperation
durch. Bei dem Beginn der zweiten Erfassungsoperation lädt das voreingestellte
Register 204 das Negative des verdoppelten ersten Zählwerts
in den Zähler 202.
Die Zeilendecodierschaltung 28 und die Lenkschaltung 30 koppeln die
ausgewählte
Speicherzelle 26 mit Masse und dem Ladungsverstärker 32.
Der Leseverstärker 34 steuert
den Rücksetzschalter 36,
um den Kondensator 38 bei dem Knoten 48 zu der
Versorgungsspannung VDD hin zu leiten und zu laden, und steuert dann
den Rücksetzschalter 36,
um ein Leiten zu beenden. Der Ladungsverstärker 32 liefert eine
konstante Spannung über
die ausgewählte
Speicherzelle 26, um einen konstanten Erfassungsstrom Is
durch die ausgewählte
Speicherzelle 26 zu erzeugen. Der Zähler 202 inkrementiert
zu Null hin, während
sich die Spannung bei dem Knoten 48 auf die Referenzspannung
verringert. Der zweite Zählwert
in dem Zähler 202 wird
durch die Leseverstärkersteuerung 200 empfangen
und in das voreingestellte Register 204 geladen.
-
Die
Schreibschaltung schreibt die ausgewählte Speicherzelle 26 bei 408 zu
einem Niedrigwiderstandszustand, der hierin als eine logische „0" bezeichnet wird.
Nachdem die ausgewählte
Speicherzelle 26 zu einer logischen „0" geschrieben wurde, führt die
Leseschaltung 24 bei 410 eine dritte Erfassungsoperation
durch. Bei dem Beginn der dritten Erfassungsoperation lädt das voreingestellte
Register 204 den Zähler 202 mit
dem zweiten Zählwert.
Die Zeilendecodierschaltung 28 und die Lenkschaltung 30 koppeln
die ausgewählte
Speicherzelle 26 mit Masse und dem Ladungsverstärker 32.
Der Leseverstärker 34 steuert
den Rücksetzschalter,
um den Kondensator 38 bei dem Knoten 48 zu der
Versorgungsspannung VDD hin zu laden, und steuert dann den Rücksetzschalter 36,
um ein Leiten zu beenden. Der Ladungs verstärker 32 liefert eine
konstante Spannung über
die ausgewählte
Speicherzelle 26, um einen konstanten Erfassungsstrom Is
durch die ausgewählte
Speicherzelle 26 zu erzeugen. Der Zähler 202 inkrementiert,
während
die Spannung bei dem Knoten 48 sich auf die Referenzspannung
verringert. Der resultierende Zählwert
in dem Zähler 202,
der auch als der endgültige
Zählwert
bezeichnet wird, ist ein Nettozählwert
der drei Erfassungsoperationen 402, 406 und 410.
Die Schwellenvergleichslogik 206 empfängt den endgültigen Zählwert zu
einem Kategorisieren des endgültigen
Zählwerts
in eine von fünf
Kategorien. Der Leseverstärker 34 liefert
ein logisches „0"- oder „1"-Ausgangssignal DOUT
bei 412. Zusätzlich
schreibt die Speichervorrichtung die ausgewählte Speicherzelle 26 zu
einem logischen „0"- oder „1"-Zustand, wie es
durch den endgültigen
Zählwert
bestimmt ist.
-
Die
Schwellenvergleichslogik 206 kategorisiert den endgültigen Zählwert in
eine von fünf
Kategorien. Die Schwellenvergleichslogik 206 kann Kategorisierungsentscheidungen
in einer jeglichen Reihenfolge durchführen. Bei dem exemplarischen
Ausführungsbeispiel
entscheidet die Schwellenvergleichslogik 206 bei 414,
ob der endgültige
Zählwert in
der gültigen
Niedrigwiderstandszustandskategorie 306 oder gültigen Hochwiderstandszustandskategorie 302 gelegen
ist. Falls der endgültige
Zählwert
sich in der Kategorie 306 oder der Kategorie 302 befindet, setzen
die Schwellenvergleichslogik 206 und die Leseverstärkersteuerung 200 bei 416 ein
Flag, um anzugeben, dass der endgültige Zählwert eine gültige logische „0" ist, oder ein Flag,
um anzugeben, dass der endgültige
Zählwert
eine gültige
logische „1" ist. Bei 418 geht
eine Steuerung zu der Leseverstärkersteuerung 200 über.
-
Wenn
der endgültige
Zählwert
nicht in der Niedrigwiderstandszustandskategorie 306 oder
der Hochwiderstandszustandskategorie 302 gelegen ist, entscheidet
die Schwellenvergleichslogik 206 bei 420, ob der
endgültige
Zählwert
in der hohen Außer-Bereich-Kategorie 300 oder
der niedrigen Außer-Bereich-Kategorie 308 gelegen
ist. Falls der endgültige
Zählwert
hoch Außer-Bereich
oder niedrig Außer-Bereich
angibt, setzen die Schwellenvergleichslogik 206 und die
Leseverstärkersteuerung 200 ein hohes
Außer-Bereich-Flag
oder ein niedriges Außer-Bereich-Flag
bei 422. Eine Steuerung geht bei 418 zu der Leseverstärkersteuerung 200 über.
-
Falls
der Zählwert
nicht hoch Außer-Bereich oder
niedrig Außer-Bereich
angibt, wird angenommen, dass der endgültige Zählwert in der zweifelhaften
Region oder Kategorie 304 gelegen ist. Die Schwellenvergleichslogik 206 und
die Leseverstärkersteuerung 200 setzen
bei 424 ein Flag, um anzugeben, dass sich der endgültige Zählwert in
der zweifelhaften Kategorie 304 befindet. Eine Steuerung wird
bei 418 zu der Leseverstärkersteuerung 200 geleitet.
Das Ergebnis der Leseoperation ist ein logisches „0"- oder „1"-Ausgangssignal DOUT und ein Flag, um
die Kategorie des endgültigen
Zählwerts
anzugeben.
-
8 ist
ein Graph für
ein anderes Ausführungsbeispiel,
der die Wahrscheinlichkeit (p) darstellt, dass ein erstes Erfassungsoperationsergebnis in
eine von fünf
Kategorien kategorisiert ist. Das erste Erfassungsoperationsergebnis
ist ein erster Erfassungszählwert,
der direkt auf den Widerstandswert durch die ausgewählte Speicherzelle 26 bezogen
ist. Der Widerstandswert umfasst die Wirkung von Kriechwegwiderständen, Reihenwegwiderständen und
eines Schaltungsrauschens. Die ersten Erfassungszählwerte
sind aufgetragen, um 100% der ersten Erfassungszählabtastwerte zu berücksichtigen, die
von repräsentativen
Speicherzellen 26 genommen sind. Die Speicherzellen 26 werden
für einen Abtastwert
zu einem Niedrigwiderstandszustand und für einen anderen Abtastwert
zu einem Hochwiderstandszustand geschrieben. Die Erster-Erfassungsabtastwert-Skala
ist in fünf
Regionen oder Bereiche geteilt, die die fünf Kategorien sind, die durch
den Leseverstärker 34 für einen
ersten Zählwert
unterschieden werden.
-
In
einer Kategorie 500 ist der Widerstandswert sehr niedrig
und die Kategorie 500 stellt eine kurzgeschlossene Speicherzelle 26 dar.
Der Leseverstärker 34 steuert
die Speichervorrichtung, um die Leseschaltung 24 unmittelbar
zu kalibrieren. Nach einer Kalibrierung wird die ausgewählte Speicherzelle 26 erneut
erfasst. Falls eine Kurzschlusskategorie 500 n-mal angegeben
wird, setzt der Leseverstärker 34 ein
Flag, um anzugeben, dass die ausgewählte Speicherzelle 26 ein
Kurzschluss ist.
-
In
einer Kategorie 502 ist der Widerstandswert größer als
der Widerstandswert der kurzgeschlossenen Speicherzelle 26.
Der Widerstandswert ist jedoch nicht groß genug, um in eine Nicht-Kalibrierung-Region 504 kategorisiert
zu werden. Die Kategorie 502 stellt eine niedrige Verzögerte-Kalibrierung-Region dar. Der Leseverstärker 34 setzt
ein Flag für
eine Kalibrierung, das angibt, dass der erfasste Widerstandswert
in der niedrigen Verzögerte-Kalibrierung-Kategorie 502 ist.
Die Speichervorrichtung 20 fährt mit der Leseoperation fort.
Eine Kalibrierung der Leseschaltung 24 findet nach einem
Erfassen der ausgewählten
Speicherzelle 26 statt, oder nachdem eine vorbestimmte
Anzahl von Speicherzellen 26 erfasst wurde.
-
Die
Kategorie 504 stellt Widerstandswerte dar, die angeben,
dass keine Kalibrierung notwendig ist. Die Kategorie 504 ist
eine Keine-Kalibrierung-Region, die den Niedrig- und den Hochwiderstandszustand
umfasst. Die Speichervorrichtung 20 fährt mit der Leseoperation fort.
-
In
einer Kategorie 506 ist der Widerstandswert kleiner als
der Widerstandswert einer Speicherzelle 26 im Leerlauf.
Der Widerstandswert ist jedoch nicht klein genug, um in die Keine-Kalibrierung-Region 504 kategorisiert
zu werden. Die Kategorie 506 stellt eine hohe Verzögerte-Kalibrierung-Region dar. Der Leseverstärker 34 setzt
ein Flag für
eine Kalibrierung, das angibt, dass der erfasste Widerstandswert in
der hohen Verzögerte-Kalibrierung-Kategorie 506 ist.
Die Speichervorrichtung 20 fährt mit der Leseoperation fort.
Eine Kalibrierung der Leseschaltung 24 findet nach einem
Erfassen der ausgewählten
Speicherzelle 26 statt, oder nachdem eine vorbestimmte Anzahl
von Speicherzellen 26 erfasst wurde.
-
In
einer Kategorie 508 ist der Widerstandswert sehr hoch und
die Kategorie 508 stellt eine Speicherzelle 26 im
Leerlauf dar. Der Leseverstärker 34 steuert
die Speichervorrichtung 20, um die Leseschaltung 24 unmittelbar
zu kalibrieren. Nach einer Kalibrierung wird die Speicherzelle 26 erneut
erfasst. Falls eine Leerlaufkategorie 508 n-mal angegeben wird,
setzt der Leseverstärker 34 ein
Flag, um anzugeben, dass der erfasste Widerstandswert ein Leerlauf
ist.
-
Die
Schwellenvergleichslogik 206 umfasst Schwellenwerte zum
Unterscheiden zwischen den fünf
Kategorien von Widerstandswerten, die durch Speicherzellen 26 erfasst
werden. Die Schwellenwerte werden aus einem repräsentativen Abtastwert von Speicherzellen 26 in
der Speichervorrichtung 20 berechnet. Ausgewählte Speicherzellen 26 werden
in dem Niedrigwiderstandszustand und dem Hochwiderstandszustand
erfasst. Die erfassten Widerstandswerte werden in die fünf Kategorien
unter Verwendung von vorbestimmten Kriterien geteilt, wie beispielsweise
Standardabweichungen, um die Grenzen zwischen den fünf Kategorien
zu bestimmen. Die berechneten Schwellenwerte werden in der Schwellenvergleichslogik 206 zum
Kategorisieren eines ersten Zählwerts
in eine der fünf
Regionen gespeichert.
-
9a und 9b sind
Flussdiagramme, die eine Leseoperation eines anderen Ausführungsbeispiels
der Speichervorrichtung 20 darstellen. Die Leseoperation
ist eine Mehrfach-Erfassungs-,
Mehrfach-Schreibleseoperation, die drei Erfassungsoperationen und
zumindest zwei Schreiboperationen umfasst. Nach der ersten Erfassungsoperation
wird der erste Zählwert
in eine von fünf
Kategorien kategorisiert. Falls der erste Zählwert in eine Kurzschluss-
oder Leerlaufkategorie 500 oder 508 kategorisiert
wird, wird die Leseschaltung 24 unmittelbar kalibriert.
Wenn der erste Zählwert
in eine von zwei Verzögerte-Kalibrierung-Regionen 502 oder 506 kategorisiert
wird, wird die Leseschaltung 24 zu einer späteren Zeit
kalibriert. Die andere Kategorie 504 gibt an, dass die
Leseschaltung 24 keiner Kalibrierung bedarf. Wenn der erste
Zählwert
in eine der zwei Verzögerte-Kalibrierung-Regionen 502 und 506 oder
die Keine-Kalibrierung-Region 504 kategorisiert
wird, fährt
die Leseoperation mit Mehrfach-Erfassungs- und Schreiboperationen
fort, um einen endgültigen Zählwert zu
erhalten. Der endgültige
Zählwert
wird in eine von den fünf
Kategorien kategorisiert, die in 6 dargestellt
sind.
-
Um
eine Leseoperation zu beginnen, wählt die Zeilendecodierschaltung 28 eine
Wortleitung 40a–40c aus
und die Lenkschaltung 30 wählt eine Bitleitung 42a–42c bei 600 aus,
um eine Speicherzelle 26 auszuwählen. Bei 602 koppelt
die Zeilendecodierschaltung 28 die ausgewählte Wortleitung 40a–40c elektrisch
mit Masse und die Lenkschaltung 30 koppelt die ausgewählte Bitleitung 42a–42c elektrisch
mit dem Ladungsverstärker 32.
Der Leseverstärker 34 schaltet
den Rücksetzschalter 36 ein,
um den Kondensator 38 zu der Versorgungsspannung VDD hin
zu laden. Der Leseverstärker 34 schaltet den
Rücksetzschalter 36 aus,
nachdem der Kondensator 38 geladen ist. Der Ladungsverstärker 32 liefert eine
konstante Spannung über
die ausgewählte Speicherzelle 26,
um einen konstanten Erfassungsstrom Is durch die ausgewählte Speicherzelle 26 zu erzeugen.
Der Erfassungsstrom Is wird durch den Kondensator 38 geliefert.
Der Zähler 202 des
Leseverstärkers 34 inkrementiert,
während
die Spannung bei dem Knoten 48 sich auf die Referenzspannung verringert.
Nach der ersten Erfassungsoperation wird der Zählwert in dem Zähler 202,
der als der erste Zählwert
bezeichnet wird, durch die Schwellenvergleichslogik 206 und
die Leseverstärkersteuerung 200 empfangen.
Die Leseverstärkersteuerung 200 multipliziert
den ersten Zählwert
mit zwei und invertiert denselben, um denselben zu einer negativen Zahl
zu machen. Dieser negative verdoppelte erste Zählwert wird zu dem voreingestellten
Register 204 geliefert. Die Schwellenvergleichslogik 206 kategorisiert
den ersten Zählwert
in eine von fünf
Kategorien.
-
Die
Schwellenvergleichslogik 206 überprüft bei 604, um zu
sehen, ob der erste Zählwert
in einer Leerlaufkategorie 508 oder einer Kurzschlusskategorie 500 gelegen
ist. Wenn der erste Zählwert
als ein Leerlauf oder ein Kurzschluss kategorisiert wird, überprüft die Schwellenvergleichslogik 206,
um zu sehen, ob die Leerlauf- oder Kurzschlusskategorisierung n-mal
vorher auftrat, bei 606. Wenn der erste Zählwert für die ausgewählte Speicherzelle 26 nicht n-mal
zuvor als ein Leerlauf oder ein Kurzschluss kategorisiert wurde,
kalibriert die Speichervorrichtung 20 die Leseschaltung 24 bei 608 unmittelbar.
Nachdem die Leseschaltung 24 kalibriert ist, wählt die
Leseschaltung 24 die Speicherzelle 26 bei 600 wieder aus,
um erneut ein Lesen der ausgewählten
Speicherzelle 26 zu versuchen. Falls der erste Zählwert n-mal
nacheinander einen Leerlauf oder einen Kurzschluss angab, wird bei 610 ein
Flag gesetzt, um anzugeben, dass die ausgewählte Speicherzelle 26 ein Leerlauf
oder ein Kurzschluss ist. Es wird ein Flag gesetzt, um einen Leerlauf
anzugeben, und ein anderes Flag wird gesetzt, um einen Kurzschluss
anzugeben. Nachdem das geeignete Flag gesetzt ist, wird eine Steuerung
bei 612 zu der Leseverstärkersteuerung 200 geleitet.
-
Falls
der erste Zählwert
nicht in die Kurzschlusskategorie 500 oder die Leerlaufkategorie 508 kategorisiert
wird, überprüft die Schwellenvergleichslogik 206 bei 614,
um zu sehen, ob der erste Zählwert in
einer niedrigen Verzögerte-Kalibrierung-Kategorie 502 oder
einer hohen Verzögerte-Kalibrierung-Kategorie 506 gelegen
ist. Die niedrige Verzögerte-Kalibrierung-Kategorie 502 ist
zwischen der Kurzschlusskategorie 500 und einer Keine-Kalibrierung-Kategorie 504 gelegen.
Die hohe Verzögerte-Kalibrierung-Kategorie 506 ist
zwischen der Leerlaufkategorie 508 und der Keine-Kalibrierung-Kategorie 504 gelegen.
Die Keine-Kalibrierung-Kategorie 504 ist
die Kategorie, die Widerstandswerte für eine Speicherzelle 26 in
einem Niedrigwiderstandszustand und einem Hochwiderstandszustand
umfasst. Wenn der erste Zählwert
in der niedrigen Verzögerte-Kalibrierung-Kategorie 502 oder
der hohen Verzögerte-Kalibrierung-Kategorie 506 gelegen
ist, markiert die Schwellenvergleichslogik 206 die Leseschaltung 24 für eine verzögerte Kalibrierung
oder in anderen Worten für
eine Kalibrierung zu einer späteren
Zeit bei 616. Ein Flag wird verwendet, um anzugeben, dass der
erste Zählwert
in der niedrigen Verzögerte-Kalibrierung-Kategorie 502 gelegen
ist, und ein anderes Flag wird gesetzt, um anzugeben, dass der ersten Zählwert in
der hohen Verzögerte-Kalibrierung-Kategorie 506 gelegen
ist. Nach einem Setzen eines Flags für eine verzögerte Kalibrierung bei 616 fährt die
Speichervorrichtung 20 bei 618 mit der Leseoperation
durch ein Schreiben der ausgewählten
Speicherzelle 26 zu einem Hochwiderstandszustand fort, der
hierin als eine logische „1" bezeichnet wird.
Falls der erste Zählwert
ferner in die Nicht-Kalibrierung-Kategorie 504 kategorisiert
wird, fährt
die Speichervorrichtung 20 mit der Leseoperation bei 618 fort.
-
Die
Schreibschaltung schreibt die ausgewählte Speicherzelle 26 bei 618 zu
einem Hochwiderstandszustand. Nachdem die ausgewählte Speicherzelle 26 zu
dem Hochwiderstandszustand geschrieben wurde, führt die Leseschaltung 24 bei 620 eine
zweite Erfassungsoperation durch. Am Beginn der zweiten Erfassungsoperation
lädt das
voreingestellte Register 204 das Negative des verdoppelten ersten
Zählwerts
in den Zähler 202.
Die Zeilendecodierschaltung 28 und die Lenkschaltung 30 koppeln die
ausgewählte
Speicherzelle 26 mit Masse und dem Ladungsverstärker 32.
Der Leseverstärker 34 steuert
den Rücksetzschalter 36,
um den Kondensator 38 bei dem Knoten 48 zu der
Versorgungsspannung VDD hin zu leiten und zu laden, und steuert dann
den Rücksetzschalter 36,
um ein Leiten zu beenden. Der Ladungsverstärker 32 liefert eine
konstante Spannung über
die ausgewählte
Speicherzelle 26, um einen konstanten Erfassungsstrom Is
durch die ausgewählte
Speicherzelle 26 zu erzeugen. Der Zähler 202 inkrementiert
zu Null hin, während
die Spannung bei dem Knoten 48 sich auf die Referenzspannung
verringert. Der zweite Zählwert
in dem Zähler 202 wird
durch die Leseverstärkersteuerung 200 empfangen
und in das voreingestellte Register 204 geladen.
-
Die
Schreibschaltung schreibt die ausgewählte Speicherzelle 26 bei 622 zu
einem Niedrigwiderstandszustand, der hierin als eine logische „0" bezeichnet wird.
Nachdem die ausgewählte
Speicherzelle 26 zu einer logischen „0" geschrieben wurde, führt die
Leseschaltung 24 bei 624 eine dritte Erfassungsoperation
durch. Am Beginn der dritten Erfassungsoperation lädt das voreingestellte
Register 204 den Zähler 202 mit
dem zweiten Zählwert.
Die Zeilendecodierschaltung 28 und die Lenkschaltung 30 koppeln
die ausgewählte
Speicherzelle 26 mit Masse und dem Ladungsverstärker 32.
Der Leseverstärker 34 steuert
den Rücksetzschalter,
um den Kondensator 38 bei dem Knoten 48 zu der
Versorgungsspannung VDD hin zu laden, und steuert dann den Rücksetzschalter 36,
um ein Leiten zu beenden. Der Ladungsverstärker 32 liefert eine
konstante Spannung über
die ausgewählte
Speicherzelle 26, um einen konstanten Erfassungsstrom Is
durch die ausgewählte
Speicherzelle 26 zu erzeugen. Der Zähler 202 inkrementiert,
während
die Spannung bei dem Knoten 48 sich auf die Referenzspannung
verringert. Der resultierende Zählwert
in dem Zähler 202,
der auch als der endgültige
Zählwert
bezeichnet wird, ist ein Nettozählwert
der drei Erfassungsoperationen 602, 620 und 624.
Die Schwellenvergleichslogik 206 empfängt den endgültigen Zählwert zu
einem Kategorisieren des endgültigen
Zählwerts
in eine von fünf
Kategorien. Der Leseverstärker 34 liefert
bei 626 ein logisches „0"- oder „1"-Ausgangssignal DOUT. Zusätzlich schreibt
die Speichervorrichtung 20 die ausgewählte Speicherzelle 26 zu
einem logischen „0"- oder „1"- Zustand, wie es durch den endgültigen Zählwert bestimmt
ist.
-
Die
Schwellenvergleichslogik 206 kategorisiert den endgültigen Zählwert in
eine von fünf
Kategorien. Die Schwellenvergleichslogik 206 kann Kategorisierungsentscheidungen
in einer jeglichen Reihenfolge durchführen. Die Schwellenvergleichslogik 206 entscheidet
bei 628, ob der endgültige
Zählwert in
der gültigen
Niedrigwiderstandszustandskategorie 306 oder der gültigen Hochwiderstandszustandskategorie 302 gelegen
ist. Falls der endgültige
Zählwert in
der Kategorie 306 oder der Kategorie 302 ist,
setzen die Schwellenvergleichslogik 206 und die Leseverstärkersteuerung 200 bei 630 ein
Flag, um anzugeben, dass der endgültige Zählwert eine gültige logische „0" ist, oder ein Flag,
um anzugeben, dass der endgültige
Zählwert
eine gültige
logische „1" ist. Eine Steuerung
geht bei 612 zu der Leseverstärkersteuerung 200 über.
-
Wenn
der endgültige
Zählwert
nicht in der Niedrigwiderstandszustandskategorie 306 oder
der Hochwiderstandszustandskategorie 302 gelegen ist, entscheidet
die Schwellenvergleichslogik 206 bei 632, ob der
endgültige
Zählwert
in der hohen Außer-Bereich-Kategorie 300 oder
der niedrigen Außer-Bereich-Kategorie 308 gelegen
ist. Falls der endgültige
Zählwert
hoch Außer-Bereich
oder niedrig Außer-Bereich
angibt, setzen die Schwellenvergleichslogik 206 und die
Leseverstärkersteuerung 200 bei 634 ein
hohes Außer-Bereich-Flag oder
ein niedriges Außer-Bereich-Flag.
Eine Steuerung geht bei 612 zu der Leseverstärkersteuerung 200 über.
-
Falls
der endgültige
Zählwert
nicht hoch Außer-Bereich
oder niedrig Außer-Bereich
angibt, wird angenommen, dass der endgültige Zählwert in der zweifelhaften
Region oder Kategorie 304 gelegen ist. Die Schwellenvergleichslogik 206 und
die Leseverstärkersteuerung 200 setzen
bei 636 ein Flag, um anzugeben, dass der endgültige Zählwert in
der zweifelhaf ten Kategorie 304 ist. Eine Steuerung wird
bei 612 zu der Leseverstärkersteuerung 200 geleitet.
Das Ergebnis der Leseoperation ist ein logisches „0"- oder 1"-Ausgangssignal DOUT und ein Flag, um
die Kategorie des endgültigen
Zählwerts
anzugeben.