-
Die
vorliegende Erfindung betrifft ein nicht-flüchtiges Speicherelement und
ein Verfahren zur Programmierüberprüfung in
einem nicht-flüchtigen
Speicherelement.
-
Halbleiterspeicher
sind wichtiger Bestandteil mikroelektronischer Systeme, wie Computer
und anderen auf Mikroprozessoren basierender Anwendungen, die von
Satelliten bis hin zu Verbraucher-Elektronik reichen. Daher helfen
Fortschritte bei der Herstellung von Halbleiterspeichern, einschließlich einer verbesserten
Herstellung und technologischer Entwicklungen durch das Skalieren
für höhere Dichten und
größere Geschwindigkeiten,
beim Aufstellen höherer
Leistungsstandards für
andere Familien digitaler Logik.
-
Halbleiterspeicher
werden generell entweder als flüchtig
oder nicht-flüchtig
charakterisiert. In flüchtigen
Speichern wird Information gespeichert, indem entweder der logische
Zustand eines bistabilen Flip-Flops gesetzt wird, wie beispielsweise
in einem Static Random Access Memory (SRAM), oder indem ein Kondensator
geladen wird, wie in einem Dynamic Random Access Memory (DRAM).
In jedem Fall sind die Daten gespeichert und können ausgelesen werden, solange
die Stromversorgung angeschaltet ist, gehen jedoch beim Abschalten
der Stromversorgung verloren.
-
Nicht-flüchtige Speicher,
wie Mask Read Only Memory (MROM), Programmable Read Only Memory
(PROM), Erasable Programmable Read Only Memory (EPROM) und Electrically
Erasable Programmable Read Only Memory (EEPROM), sind in der Lage,
Daten auch bei abgeschalteter Stromversorgung zu speichern. Der
Daten-Speichermodus nicht-flüchtiger
Speicher kann dauerhaft oder reprogrammierbar sein, was von der
verwendeten Herstellungstechnologie abhängt. Nicht-flüchtige Speicher werden zum
Speichern von Programmen und Mikrocodes bei einer Vielzahl von Anwendungen
in der Computer-, Luftfahrt-, Telekommunikations- und Verbraucherelektronik-Industrie
eingesetzt. Eine Kombination von Speicherarten mit sowohl flüchtigem
als auch nicht-flüchtigem
Speicher auf einem einzelnen Chip ist in bestimmten Speicherelementen,
wie nichtflüchtiger
SRAM (nVRAM) zur Verwendung in Systemen, die einen schnellen, reprogrammierbaren nicht-flüchtigen
Speicher benötigen,
ebenfalls verfügbar.
Zusätzliche
haben sich Dutzende von speziellen Speicherarchitekturen entwickelt,
die eine zusätzliche
Logik-Schaltkreisanordnung zum Optimieren ihrer Leistung für anwendungsspezifische
Aufgaben enthalten.
-
Einige
Arten nicht-flüchtiger
Speicherelemente, wie MROM, PROM und EPROM, sind entweder nicht
in der Lage, gelöscht
und wieder beschrieben zu werden, oder müssen aus dem System entfernt
werden, um gelöscht
und reprogrammiert zu werden. EEPROM ist elektrisch lösch- und
beschreibbar, während
er in einem System installiert ist, und hat weit verbreiteten Einsatz
in Anwendungen gefunden, die ein ständiges Reprogrammieren erfordern,
wie bei der Systemprogrammierung oder für ergänzende Speicherelemente. Eine
Art von EEPROM, die als Flash-EEPROM („Flash-Speicher") bekannt ist, wird vorteilhafter Weise
zum Massenspeichern in ergänzenden
Speicherelementen verwendet, da seine Integrationsdichte im Vergleich
mit herkömmlichem
EEPROM hoch ist. Zwei bekannte Typen von Flash-Speichern sind der
NAND-Typ (der allgemein höhere
Integrationsdichten besitzt) und der NOR-Typ.
-
Ein
Flashspeicherelement vom NAND-Typ beinhaltet einen Speicherzellenfeld-Bereich
zum Speichern von Informationen. Das Speicherzellenfeld ist durch
eine Vielzahl von Zellensträngen
gebildet, die NAND-Stränge
oder NAND-Ketten (NAND strings) genannt werden. Ein Seitenpuffer-Schaltkreis
wird zum Speichern von Daten in das Speicherzellenfeld oder zum
Lesen von Daten aus dem Speicherzellenfeld in einem Flash-Speicher
verwendet.
-
Speicherzellen
in einem Flash-Speicher vom NAND-Typ werden unter Verwendung der
hinreichend bekannten F-N (Fowler-Nordheim)-Tunnelstrom-Technik gelöscht und
programmiert. Derartige Lösch-
und Programmierverfahren sind im US-Patent 5,473,536 mit dem Titel „NONVOLATILE
SEMICONDUCTOR MEMORY" und
US-Patent 5,696,717 mit dem Titel „NONVOLATILE INTEGRATED CIRCUIT MEMORY
DEVICES HAVING ADJUSTABLE ERASE/PROGRAM THRESHOLD VOLTAGE VERIFICATION
CAPABILITY" offenbart.
-
Zum
Speichern von Daten in einem Speicherzellenfeld wird zunächst ein
Daten-Ladebefehl an einen Flash-Speicher angelegt. Dann werden Adressen
und Daten sukzessive in den Flash-Speicher eingegeben. Zu programmierende
Daten werden im Allgemeinen sequentiell in Byte- oder Worteinheiten
zu einem Seitenpuffer-Schaltkreis übertragen. Wenn der Seitenpuffer-Schaltkreis
voll ist, werden alle Daten in dem Seitenpuffer-Schaltkreis zeitgleich
nach Maßgabe
eines Programmbefehls in das Speicherzellenfeld (in die der ausgewählten Seite
entsprechenden Speicherzellen) programmiert. Ein Zyklus („Programmierzyklus"), in dem Daten programmiert
werden, besteht aus einer Mehrzahl von Programmierschleifen. Jede
der Programmierschleifen ist in zwei Abschnitte unterteilt, beispielsweise
in einen Programmier- und in einen Programmier-Überprüfungsabschnitt. Während des
Programmierabschnitts werden die Speicherzellen unter Berücksichtigung
einer gegebenen Vorspannungsbedingung programmiert, wie aus dem
Stand der Technik hinreichend bekannt ist. Während des Programmier-Überprüfungsabschnitts
wird auf die Speicherzellen zugegriffen, um zu überprüfen, ob sie bis zu einer vorbestimmten
Schwellenspannung programmiert wurden. Die oben erwähnten Programmierschleifen
werden bis zu einer bestimmten maximalen Zeitdauer wiederholt ausgeführt, bis
alle Speicherzellen als programmiert überprüft wurden. Während eines
Programmier-Überprüfungsvorgangs
wird wie in einem normalen Betrieb auf die Daten zugegriffen, mit
der Ausnahme, dass die gelesenen Daten nur zum internen Überprüfen des
Programmiervorgangs verwendet werden.
-
Vielfältige Überprüfungsverfahren
sind vorgeschlagen worden, um festzustellen, ob Speicherzellen bis
zu gewünschten
Schwellenspannungen programmiert wurden. Ein typisches Beispiel
ist ein verdrahtetes OR-Schema von dem Typ, der im US-Patent 5,299,162
mit dem Titel „NONVOLATILE SEMICONDUCTOR
MEMORY DEVICE AND AN OPTIMIZING PROGRAMMING METHOD THEREOF" („dem '162-Patent") beschrieben ist,
welches durch Bezugnahme mit in das vorliegende Dokument aufgenommen
wird. 1 ist ein Blockdiagramm
zur Darstellung eines in dem '162-Patent offenbarten Speicherelements.
Das Speicherelement beinhaltet einen Programmierstatus-Detektierschaltkreis
PS, der in Verriegelungsschaltkreisen oder Zwischenspeichern (Latches)
LT eines Seitenpuffers gespeicherte Daten während eines Programmier-Überprüfungsabschnitts
empfängt
und der detektiert, ob Eingangs-Datenwerte einen Programm-Datenwert anzeigen.
Wenn beispielsweise alle ausgewählten Speicherzellen
in einem optimierten Zustand programmiert sind, gibt der Programmierstatus-Detektierschaltkreis
PS ein normales Detektiersignal aus. Wenn wenigstens eine ausgewählte Speicherzelle unzureichend
programmiert ist, gibt der Programm-Detektierschaltkreis PS ein
anormales Detektiersignal aus.
-
In
einem Programmier-Überprüfungsverfahren
vom verdrahteten OR-Typ werden die Zustände der ausgewählten Speicherzellen
zeitgleich detektiert, sodass die Programmier-Überprüfungszeit kurz ist. Wenn jedoch
physikalische Defekte in Seitenpuffern auftreten (wenn beispielsweise
benachbarte Seitenpuffer elektrisch verbunden sind), wirken sich
die fehlerhaften Seitenpuffer auf den Programmier-Überprüfungsvorgang
aus. Mit anderen Worten: Obwohl die Seitenpuffer ersetzt werden,
zeigt die Ausgabe des Programmierstatus-Detektierschaltkreises PS immer
einen Programmfehler an. Um derartige Probleme zu umgehen, wurde
in den letzten Jahren ein Programmier-Überprüfungsverfahren vom Typ mit Spaltenabtastung
(auch als ein „Y-Abtastung"-Typ bezeichnet)
eingeführt.
Ein Beispiel für
ein Speicherelement mit einem Programmier-Überprüfungsverfahren vom Typ mit
Spaltenabtastung ist im US-Patent 6,282,121 mit dem Titel „FLASH
MEMORY DEVICE WITH PROGRAM STATUS DETECTION CIRCUITRY AND THE METHOD
THEREOF" („das '121-Patent") offenbart, welches
durch Bezugnahme mit in das vorliegende Dokument aufgenommen wird. 2 ist ein Blockdiagramm
zur Darstellung des in dem '121-Patent
offenbarten Speicherelements.
-
Das
Speicherelement der 2 beinhaltet einen
Programmierstatus-Detektierschaltkreis 190. Während eines
Programmier-Überprüfungsvorgangs werden
durch einen Seitenpuffer-Schaltkreis 110 gelesene Datenbits
durch einen Spalten-Gatterschaltkreis 140 in einer voreingestellten
Einheit, beispielsweise einer Byte- oder Worteinheit, zu dem Programmierstatus-Detektierschaltkreis 190 übertragen.
Der Programmierstatus-Detektierschaltkreis 190 detektiert,
ob alle Eingangs-Datenbits auf den korrekten Datenwert programmiert
wurden. In Abhängigkeit von
dem Detektionsergebnis inkrementiert der Programmierstatus-Detektierschaltkreis 190 einen Adresszähler 120.
Entsprechend werden die gelesenen Datenbits in dem Seitenpuffer-Schaltkreis 110 nicht
zur selben Zeit detektiert und werden durch einen Spalten-Gatterschaltkreis 140 in
voreingestellten Einheiten zu dem Programmierstatus-Detektierschaltkreis 190 übertragen.
Dies bedeutet, dass die gelesenen Daten in dem Seitenpuffer-Schaltkreis 110 in
voreingestellten Einheiten abgetastet werden, um die Programmierung
zu überprüfen.
-
Ein
Programmier-Überprüfungsvorgang
unter Verwendung der vorstehend beschriebenen Y-Abtasttechnik greift
auf Daten in derselben Weise wie ein normaler Lesevorgang zu, mit
der Ausnahme, dass die gelesenen Daten nur intern während eines Programmier-Überprüfungsvorgangs
verwendet werden. Der Programmierzyklus besteht aus mehreren Programmierschleifen,
die jeweils einen Programmierabschnitt und einem Programmier-Überprüfungsabschnitt beinhalten.
Als solche ist die gesamte Programm- oder Programmierzeit durch diejenige Zeit
begrenzt, die zum Ausführen
des Programmier-Überprüfungsvorgangs
benötigt
wird.
-
Der
vorliegenden Erfindung liegt die Aufgabe zugrunde, ein nicht-flüchtiges
Speicherelement mit reduzierter Programmierzeit und ein Verfahren
zur Programmierüberprüfung in
einem nicht-flüchtigen Speicherelement
mit reduzierter Programmier-Überprüfungszeit
anzugeben.
-
Die
Aufgabe wird durch ein nicht-flüchtiges Speicherelement
gemäß Anspruch
1 oder 25 und ein Verfahren zur Programmierüberprüfung in einem nicht-flüchtigen
Speicherelement gemäß Anspruch 20
oder 29 gelöst.
-
Bevorzugte
Ausgestaltungen der Erfindung sind nachfolgend unter Bezugnahme
auf die beigefügten
Zeichnungen beschrieben.
-
1 ist
ein Blockdiagramm zur Darstellung von Speicherelementen, bei denen
ein vorbekanntes verdrahtetes OR-Programmier-Überprüfungsverfahren
durchgeführt
wird.
-
2 ist
ein Blockdiagramm zur Darstellung von Speicherelementen, bei denen
ein vorbekanntes Programmier-Überprüfungsverfahren
vom Typ Y-Abtastung durchgeführt
wird.
-
3 ist
ein schematisches Blockdiagramm einer Ausgestaltung eines Flashspeicherelements vom
NAND-Typ gemäß der vorliegenden
Erfindung.
-
4 ist
ein Blockdiagramm zur Darstellung einer Ausgestaltung eines Seitenpuffer-Schaltkreises und
eines Auswahlschaltkreises gemäß der vorliegenden
Erfindung.
-
5 ist
ein Schaltungsdiagramm zur Darstellung einer Ausgestaltung eines
Seitenpuffers gemäß der vorliegenden
Erfindung.
-
6 ist
ein Schaltungsdiagramm zur Darstellung einer Ausgestaltung eines
Spaltendecodierers gemäß der vorliegenden
Erfindung.
-
7 ist
ein Zeitablauf-Diagramm zur Darstellung einer Ausgestaltung eines
Programmier-Überprüfungsvorgangs
bei einem nichtflüchtigen
Speicherelement gemäß der vorliegenden
Erfindung.
-
3 ist
ein schematisches Blockdiagramm zur Ausgestaltung eines nichtflüchtigen
Speicherelements gemäß der vorliegenden
Erfindung. Die Ausgestaltung der 3 ist im
Kontext eines Flashspeicherelements vom NAND-Typ dargestellt. Allerdings sind
die erfindungsgemäßen Grundsätze auch
auf andere Typen von nicht-flüchtigen
Speichern anwendbar.
-
Bezug
nehmend auf 3 beinhaltet das nicht-flüchtige Speicherelement 1000 ein
Speicherzellenfeld 1100 zum Speichern von Daten. Das Speicherzellenfeld 1100 beinhaltet
eine Mehrzahl von Zellensträngen
bzw. Zellenketten, die in dem vorliegenden Beispiel als NAND-Stränge ausgebildet
sind. Jeder der Zellstränge
ist durch eine Mehrzahl von Flash-Speicher-Zellen gebildet, die
zwischen ersten und zweiten Auswahltransistoren in Reihe geschaltet sind.
Einer der Auswahltransistoren ist ein Strang-Auswahltransistor,
während
der andere Auswahltransistor ein Masse-Auswahltransistor ist. Die Strang-
und Masse-Auswahltransistoren sind durch Strang- beziehungsweise
Masse-Auswahlleitungen gesteuert. Die Flash-Speicher-Zellen der
jeweiligen Zellenstränge
sind durch Floating-Gate-Transistoren gebildet.
-
Steuergates
der Transistoren sind mit jeweils zugehörigen Steuersignalen (z. B.
Wortleitungen) verbunden.
-
Ein
Zeilen-Decodierschaltkreis (in 3 als "x-DEC" bezeichnet) 1200 wählt Wortleitungen
gemäß einer
Zeilenadresse RA von einem Adresserzeugungs-Schaltkreis 1300 aus
und legt gemäß den jeweiligen
Betriebsmodi Wortleitungs-Spannungen an eine ausgewählte Wortleitung
und an nichtausgewählte
Wortleitungen an. Beispielsweise legt der Zeilen-Auswahlschaltkreis 1200 eine
Programmierspannung an eine während
eines Programmiervorgang-Modus bzw. einer Programmierbetriebsart
ausgewählte
Wortleitung und eine Pass-Spannung (die niedriger ist als die Programmierspannung)
an nicht ausgewählte
Wortleitungen an. Zusätzlich
legt der Zeilen-Auswahlschaltkreis 1200 eine Massespannung
an eine während
eines Lesevorgangs ausgewählte
Wortleitung und eine Lesespannung (welche niedriger als die Pass-Spannung
und höher
als die Massespannung ist) an nicht ausgewählte Wortleitungen an. Die
Programmier-, Pass- und Lesespannungen sind im Allgemeinen höhere Spannungen
als die Energieversorgungs-Spannung, sodass sie unter Verwendung
hinreichend bekannter Ladungs-Pumptechniken durch einen Hochspannungs-Erzeugungsschaltkreis
erzeugt werden.
-
Der
Adresserzeugungs-Schaltkreis 1300 ist durch eine Steuerlogik 1400 gesteuert
und erzeugt Zeilen- und Spaltenadressen RA und CA. Ein Spalten-Decodierschaltkreis
(in 3 als „Y-DEC" bezeichnet) 1500 wird
in Abhängigkeit
von Steuersignalen YSCAN_EN und YA_EN von der Steuerlogik 1400 betrieben
und decodiert die Spaltenadresse CA, um erste bis dritte Auswahlsignale
Ypi, Yqj und Yrj zu erzeugen (wobei i und j positive ganze Zahlen sind).
Wenn das Steuersignal YSCAN_EN inaktiv ist, das heißt während jedes
Vorgangs mit Ausnahme eines Programmier-Überprüfungsvorgangs (beispielsweise
einem Lese-, Programmier-, Löschvorgang usw.),
aktiviert der Spalten-Decodierschaltkreis 1500 nur eines
der ersten Aus wahlsignale Ypi in Abhängigkeit von dem Steuersignal
YA_EN und der Spaltenadresse CA. Wenn das Steuersignal YSCAN_EN
aktiviert ist, das heißt
während
eines Programmier-Überprüfungsvorgangs
kann der Spalten-Decodierschaltkreis 1500 gleichzeitig
zwei oder mehr der ersten Steuersignale Ypi nach Maßgabe des
Steuersignals YA_EN und der Spaltenadresse CA aktivieren, wie weiter
unten detaillierter beschrieben wird.
-
Bitleitungen
BL0-BLm und RBL0-RBLx sind durch das Speicherzellenfeld 110 angeordnet
und elektrisch mit einem Seitenpuffer-Schaltkreis 1600 verbunden.
Der Seitenpuffer-Schaltkreis 1600 liest während Lese-/Überprüfungsvorgängen Daten
aus Speicherzellen, die mit der ausgewählten Wortleitung verbunden
sind, durch die Bitleitungen BL0-BLm und RBL0-RBLx. Während eines
Programmiervorgangs legt der Seitenpuffer-Schaltkreis 1600 die
Energieversorgungs-Spannung (oder eine Programmierung verhindernde
Spannung) oder eine Massespannung (oder Programmierspannung) an
Bitleitungen BL0-BLm und RBL0-RBLx in Abhängigkeit von den zu programmierenden
Daten an. Der Seitenpuffer-Schaltkreis 1600 beinhaltet
den Bitleitungen BL0-BLm und RBL0-RBLx zugeordnete Seitenpuffer. In
einigen Ausgestaltungen können
die Seitenpuffer sich Bitleitungen teilen. Der Seitenpuffer-Schaltkreis 1600 gibt
gelesene Daten nach Maßgabe
der ersten Auswahlsignale Ypi auf lokalen Daten-Ausgangsleitungen
LDOLn aus. Eine Mehrzahl von Seitenpuffern (als „Seitenpuffer-Gruppe" bezeichnet) sind
gemeinsam mit einer der jeweiligen Daten-Ausgangsleitungen verbunden.
Die Seitenpuffer in der Seitenpuffer-Gruppe werden jeweils durch
die ersten Auswahlsignale Ypi ausgewählt. Wenn beispielsweise ein Auswahlsignal
aktiviert ist, werden Daten von einem Seitenpuffer in jeder der
Seitenpuffer-Gruppen mit einer entsprechenden lokalen Daten-Ausgangsleitung gekoppelt.
Wenn alle oder einige der Auswahlsignale aktiviert sind, werden
Daten von allen oder einigen der Seitenpuffer in jeder Seitenpuffer-Gruppe gemeinsam
in ihre zugehörige
lokale Daten-Ausgangsleitung umgeleitet. Da alle oder einige der
ersten Auswahlsignale Ypi während
eines Programmier-Überprüfungsvorgangs
aktiviert sind, können gelesene
Datenwerte von zwei oder mehr Seitenpuffern gleichzeitig auf eine
lokale Daten-Ausgangsleitung umgeleitet werden, die einer jeweiligen
Seitenpuffer-Gruppe
entspricht. Des Weiteren übernimmt der
Seitenpuffer-Schaltkreis 1600 die Zwischenspeicherung (Verriegelung)
von in das Speicherzellenfeld zu programmierenden Daten aus lokalen
Daten-Eingangsleitungen LDILn in Abhängigkeit von den ersten Auswahlsignalen
Ypi.
-
In
einer beispielhaften Ausgestaltung werden die ersten Auswahlsignale
Ypi während
eines Programmier-Überprüfungsvorgangs
paarweise aktiviert, beispielsweise in Paaren (Yp0, Yp1), (Yp2, Yp3),
(Yp4, Yp5) usw. Bei einigen Ausgestaltungen eines nicht-flüchtigen
Speicherelements gemäß der vorliegenden
Erfindung wird dann, wenn ein Seitenpuffer als defekt bestimmt wird
(oder wenn bestimmt wird, dass er mit einer defekten Bitleitung
verbunden ist), der defekte Seitenpuffer durch Ersetzen durch einen
anderen Seitenpuffer oder mehrere andere Seitenpuffer repariert.
In diesem Fall wird sowohl ein benachbarter Seitenpuffer als auch
der defekte Seitenpuffer durch zeitgleiches Ersetzen durch zwei
andere Seitenpuffer repariert. Auf diese Weise weisen in dem vorliegenden
Beispiel zwei Seitenpuffer eine Reparatureinheit auf. Gelesene Datenwerte
der eine Reparatureinheit aufweisenden Seitenpuffer werden während eines
Programmier-Überprüfungsvorgangs zeitgleich
in eine lokale Daten-Ausgangsleitung umgeleitet. In gleicher Weise
werden die gelesenen Datenwerte anderer in Reparatureinheiten angeordneter
Seitenpuffer ebenfalls zeitgleich in zugehörigen lokale Daten-Ausgangsleitungen
umgeleitet.
-
Der
Auswahlschaltkreis 1700 arbeitet nach Maßgabe der
ersten und dritten Auswahlsignale (Yqj, Yrj). Während eines Lese-/Überprüfungsvorgangs wählt der
Auswahlschaltkreis 1700 lokale Daten-Ausgangsleitungen
LDOLn in vorbestimmten Einheiten (z. B. x8, x16, x32 usw.) nach
Maßgabe
der zweiten und dritten Auswahlsignale (Yqj, Yrj) aus und transferiert
Daten auf den ausgewählten
lokalen Daten-Ausgangsleitungen zu jeweils entsprechenden globalen Daten-Ausgangsleitungen
GDOLx. Während
eines Daten-Ladevorgangs wählt
der Auswahl-Schaltkreis 1700 eine lokale Daten-Eingangsleitung LDILn
in Abhängigkeit
von den zweiten und dritten Auswahlsignalen (Yqj, Yrj) in vorbestimmten
Einheiten (z. B. x8, x16, x32 usw.) und transferiert zu programmierende Daten
von den globalen Daten-Eingangsleitungen GDILn zu den jeweils ausgewählten Daten-Eingangsleitungen.
Die globalen Daten-Eingangsleitungen GDILn sind elektrisch mit dem
Daten-Eingangs-/Ausgangsschaltkreis 1800 verbunden, um
zu programmierende Daten zu empfangen. Die globalen Daten-Ausgangsleitungen
GDOLn sind elektrisch mit dem Daten-Eingangs-/Ausgangsschaltkreis 1800 verbunden,
um gelesene Daten während
eines Lesevorgangs auszugeben. Der Pass/Fail-Prüfschaltkreis 1900 ist
elektrisch mit den globalen Daten-Ausgangsleitungen GDOLn verbunden,
um während
eines Programmier-Überprüfungsvorgangs
durch den Auswahlschaltkreis 1700 ausgewählte Daten
zu empfangen. Der Daten-Eingangs-/Ausgangsschaltkreis 1800 ist
durch eine Steuerlogik 1400 gesteuert, um Programm-Eingangsdaten zu
empfangen und gelesene Daten auszugeben.
-
Obwohl
in 3 nicht dargestellt, kann eine Einrichtung zum
Vorladen der globalen Daten-Eingangs-/Ausgangsleitungen vorgesehen
sein, beispielsweise in dem Daten-Eingangs-/Ausgangsschaltkreis 1800.
-
Der
Pass/Fail-Prüfschaltkreis 1900 überprüft, ob alle
Daten auf den globalen Daten-Ausgangsleitungen GDOLn den korrekten
Wert haben oder nicht. Wenn alle Eingangs-Datenwerte korrekt sind,
gibt der Pass/Fail-Prüfschaltkreis 1900 ein Pass/Fail-Signal
PF an die Steuerlogik 1400 aus, das eine ordnungsgemäße Programmierung
anzeigt. Wenn irgendeiner der Eingangs-Datenwerte fehlerhaft ist,
gibt der Pass/Fail-Prüfschaltkreis 1900 ein Pass/Fail-Signal
an die Steuerlogik 1400 aus, das einen Programmierungsfehler
(fehlerhafte Programmierung) anzeigt. Die Steuerlogik 1400 ist
Teil der gesamten Steuer-Schaltkreisanordnung, welche den Adresserzeugungs-Schaltkreis 1300 und
den Spalten-Decodierschaltkreis 1500 beinhaltet. Die Steuerlogik 1400 ist
zum Steuern des Betriebs des nicht-flüchtigen Speicherelements 1000 ausgebildet. Die
Steuerlogik 1400 steuert den Adresserzeugungs-Schaltkreis 1300 und
den Spalten-Decodierschaltkreis 1500 nach Maßgabe des
Pass/Fail-Signals PF während
eines Programmier-Überprüfungsvorgangs.
Wenn beispielsweise das Pass/Fail-Signal PF eine ordnungsgemäße Programmierung
anzeigt, steuert die Steuerlogik 1400 den Adresserzeugungs-Schaltkreis 1300 zum
Imkrementieren der Spaltenadresse CA um das geeignete Maß, beispielsweise
1, und aktiviert gleichzeitig kontinuierlich das Steuersignal YSCAN_EN.
Mit anderen Worten: Eine Y-Abtastung wird kontinuierlich durchgeführt. Wenn
das Pass/Fail-Signal
PF einen Programmierungsfehler anzeigt, deaktiviert die Steuerlogik 1400 das
Steuersignal YSCAN_EN und stoppt zur selben Zeit den Betrieb des
Adresserzeugungs-Schaltkreises 1300. Dies bedeutet, dass
die Y-Abtastung
gestoppt wird und dass anschließend
eine andere, einen Programmiervorgang beinhaltende Programmschleife
bzw. Programmierschleife unter Kontrolle der Steuerlogik 1400 ausgeführt wird.
In diesem Fall wird der Adresserzeugungs-Schaltkreis 1300 nicht initialisiert.
Stattdessen wird die zuvor erzeugte Spaltenadresse als die anfängliche
Spaltenadresse während
des Programmier-Überprüfungsvorgangs
der nächsten
Programmschleife verwendet.
-
Wie
oben beschrieben, werden aufgrund der Tatsache, dass eine Mehrzahl
erster Auswahlsignale Ypi zeitgleich aktiviert sind, Datenwerte
von wenigstens zwei Seitenpuffern gleichzeitig in eine lokale Daten-Ausgangsleitung
während
eines Programmier-Überprüfungsvorgangs
umgeleitet. Der Pass/Fail-Prüfschaltkreis 1900 detektiert
eine ordnungsgemäße oder
fehlerhafte Programmierung auf der Grundlage von Informationen,
die in die lokale Daten-Ausgangsleitung umgeleitet werden. Dementsprechend
kann die zum Ausführen
eines Y-Abtastvorgangs erforderliche Zeit reduziert wer den, sodass im
Ergebnis die gesamte Programmierdauer reduziert werden kann.
-
4 ist
ein Blockdiagramm zur Darstellung von Ausgestaltungen eines Seitenpuffer-Schaltkreises
und eines Auswahlschaltkreises gemäß der vorliegenden Erfindung.
-
Bezug
nehmend auf 4 ist der Seitenpuffer-Schaltkreis 1600 durch
eine Mehrzahl von Seitenpuffer-Gruppen PBGO-PBGy gebildet. Jede
der Seitenpuffer-Gruppen PBGO-PBGy ist beispielsweise durch acht
Seitenpuffer PBGO-PBG7 gebildet. Entsprechende Auswahlsignale Yp0-Yp7
werden an die Seitenpuffer PB0-PB7 der jeweiligen Seitenpuffer-Gruppen
angelegt. Beispielsweise wird das Auswahlsignal Yp0 an den Seitenpuffer
PB0 angelegt, und das Auswahlsignal Yp1 wird an den Seitenpuffer PB1
angelegt. Die Anzahl von Seitenpuffer-Gruppen PBG0-PBGy entspricht
der Anzahl der lokalen Daten-Ausgangsleitungen LDOL0-LDOLy. Die
Seitenpuffer einer Seitenpuffer-Gruppe sind gemeinsam mit einer
zugehörigen
lokalen Daten-Ausgangsleitung verbunden. Beispielsweise sind die
Seitenpuffer PB0-PB7
der Seitenpuffer-Gruppe PBG0 gemeinsam mit der lokalen Daten-Ausgangsleitung
LDOL0 verbunden. Die Seitenpuffer PB0-PB7 der Seitenpuffer-Gruppe
PBG1 sind gemeinsam mit der lokalen Daten-Ausgangsleitung LDOL1
verbunden. Wenn eines (z. B Yp0) der Auswahlsignale Yp0-Yp7 aktiviert ist,
geben die Seitenpuffer PB0 der Seitenpuffer-Gruppen PBG0-PBGy, in welchen
das aktivierte Auswahlsignal Yp0 angelegt ist, Datenwerte an die zugehörigen lokalen
Daten-Ausgangsleitungen LDOL0-LDOLy aus.
-
Die
Seitenpuffer-Gruppen PBG0-PBGy sind weiterhin mit jeweiligen lokalen
Daten-Eingangsleitungen LDIL0-LDILy verbunden. Eine lokale Daten-Eingangsleitung
ist gemeinschaftlich mit den Seitenpuffern einer entsprechenden
Seitenpuffer-Gruppe verbunden. Beispielsweise sind die Seitenpuffer PBG0-PBG7
der Seitengruppe PBG0 gemeinschaftlich mit der lokalen Daten-Eingangsleitung
LDIL0 verbunden. Wenn eines (z. B. Yp0) der Auswahlsignale Yp0-Yp7
aktiviert ist, werden zu programmierende Datenwerte auf zugehörigen lokalen
Daten-Eingangsleitungen LDIL0-LDILy zu den Seitenpuffern PB0 der
Seitenpuffer-Gruppen PBG0-PBGy übertragen,
in denen das aktivierte Auswahlsignal Yp0 jeweils angelegt ist.
Jede der lokalen Daten-Eingangsleitungen LDIL0-LDILy kann ein differentielles
Paar bilden, um auf diese Weise komplementäre Datensignale zu transferieren,
jedoch ist aus Gründen
der Übersichtlichkeit
nur eine lokale Daten-Eingangsleitung dargestellt. In gleicher Weise
ist zum Vermeiden einer undeutlichen Darstellung nur die letzte
Daten-Eingangsleitung LDILy in 4 in ihrer
Verbindung mit allen Seitenpuffern PB0-PB7 in der Seitenpuffer-Gruppe
PBGy gezeigt, jedoch sind auch die anderen Daten-Eingangsleitungen
als mit allen Seitenpuffern in ihrer jeweiligen Gruppe verbunden
zu betrachten.
-
Bezug
nehmend auf 4 beinhaltet der Auswahlschaltkreis 1700 einen
Decodierer 1710, Eingangsschalter SWIN0-SWINy und Ausgangsschalter
SWOUT0-SWOUTy. Der Decodierer 1710 decodiert die Auswahlsignale
(Yqj, Yrj), um Schalter-Steuersignale S0-Sy zu erzeugen. Die Schalter-Steuersignale S0-Sy
werden aktiviert, um Eingangs-/Ausgangsschalter in vorbestimmten
Einheiten, z. B. x8, x16 und x32, einzuschalten. Während eines
Daten-Ladevorgangs im Programmiermodus wählen die Eingangsschalter SWIN0-SWINy
die lokalen Daten-Eingangsleitungen LDIL0-LDILy nach Maßgabe entsprechender
Schalter-Steuersignale aus und transferieren zu programmierende
Daten selektiv von den globalen Daten-Eingangsleitungen GDILx zu
den Eingangsleitungen. Während
eines Lese-/Überprüfungsvorgangs
verbinden die Ausgangsschalter SWOUT0-SWOUTy selektiv nach Maßgabe entsprechender
Schalter-Steuersignale die globalen Daten-Ausgangsleitungen GDOLx
mit den lokalen Daten-Ausgangsleitungen LDOL0-LDOLy.
-
5 ist
ein Schaltungsdiagramm zur Darstellung einer Ausgestaltung eines
Seitenpuffers gemäß der vorliegenden
Erfindung.
-
Der
Seitenpuffer in 5 entspricht einem der Seitenpuffer
des Seitenpuffer-Schaltkreises 1600, und die restlichen
Seitenpuffer können
im Wesentlichen wie der Seitenpuffer in 5 ausgestaltet sein.
Der Seitenpuffer PB0 beinhaltet ein Register REG und eine Daten-Ausgabeeinheit
DOP. Das Register REG ist zum Zwischenspeichern (Verriegeln) von
Daten von der lokalen Daten-Eingangsleitung LDIL0 nach Maßgabe des
Auswahlsignals Yp0 während
eines Programmiervorgangs ausgebildet. Des Weiteren ist das Register
REG zum Zwischenspeichern von Daten von einer Speicherzelle durch
eine Bitleitung BL0 während
eines Lesevorgangs ausgebildet. Während eines Lesevorgangs legt
die Daten-Ausgabeeinheit DOP die Daten-Ausgangsleitung LDOL0 gemäß dem in
dem Register REG gespeicherten Wert in Verbindung mit dem Auswahlsignal Yp0
auf Massepotential. Die Daten-Ausgabeeinheit DOP beinhaltet einen
ersten Schalter SW1 und einen zweiten Schalter SW2. Der erste Schalter
SW1 wird durch den in dem Register REG gespeicherten Wert gesteuert,
und der zweite Schalter SW2 wird durch das Auswahlsignal Yp0 gesteuert.
-
Während eines
Lese-/Überprüfungsvorgangs
ist dann, wenn die ausgewählte
Speicherzelle eine Aus-Zelle (eine programmierte Zelle) ist, das Register
REG zum Ausgeben eines logischen Low-Pegels ausgebildet. Mit anderen
Worten: Wenn die ausgewählte
Speicherzelle eine Aus-Zelle (eine programmierte Zelle) ist, wird
der erste Schalter SW1 der Daten-Ausgabeeinheit DOP ausgeschaltet.
Dem gegenüber
ist dann, wenn die ausgewählte
Speicherzelle eine An-Zelle (eine gelöschte Zelle) ist, das Register
REG zum Ausgeben eines logischen High-Pegels ausgebildet. Dies bedeutet,
dass dann, wenn die ausgewählte
Speicherzelle eine An-Zelle ist, der erste Schalter SW1 der Daten-Ausgabeeinheit
DOP eingeschaltet wird.
-
Zu
programmierende Daten werden mittels des folgenden Verfahrens zu
dem Register REG transferiert. Die zu programmierenden Daten werden durch
den Daten-Eingangs-/Ausgangsschaltkreis 1800 und den Auswahlschaltkreis 1700 zu
der lokalen Daten-Eingangsleitung (z. B. LDIL0) transferiert. Wenn
die Daten den Wert „0" besitzen, hat die
lokale Daten-Eingangsleitung LDIL0 einen niedrigen Pegel. Wenn die
zu programmierenden Daten den Wert „1" besitzen, hat die lokale Daten-Eingangsleitung
LDIL0 einen hohen Signalpegel. Wenn das Auswahlsignal Yp0 aktiviert
(auf einen logischen High-Pegel gesetzt) ist, werden Daten auf der
lokalen Daten-Eingangsleitung LDIL0 in das Register REG geladen. Während eines
Programmiervorgangs wird die Bitleitung BL0 gemäß in das Register REG geladener
Daten auf eine Stromversorgungsspannung oder eine Massespannung
gesetzt, und die ausgewählte
Speicherzelle eines mit der Bitleitung BL0 verbundenen Zellenstrangs
wird in hinreichend bekannter Weise programmiert.
-
Der
Status der programmierten Speicherzelle wird folgendermaßen gelesen
und zu dem Register REG transferiert. Das Register REG liest den
Status der ausgewählten
Speicherzelle durch die Bitleitung BL0 und speichert den gelesenen
Zustand temporär. Wenn
die ausgewählte
Speicherzelle eine Aus-Zelle (eine programmierte Zelle) ist, gibt
das Register REG ein Low-Pegel-Signal
an den ersten Schalter SW1 aus. Obwohl das Auswahlsignal Yp0 aktiviert
ist, befindet sich die lokale Daten-Ausgangsleitung LDOL0 in einem
Vorlade-Zustand, z. B. auf einem logischen High-Pegel. Dies ergibt
sich dadurch, dass der erste Schalter SW1 ausgeschaltet ist. Wenn
die ausgewählte
Speicherzelle eine An-Zelle (eine gelöschte Zelle) ist, gibt das
Register REG ein High-Pegel-Signal an den ersten Schalter SW1 aus.
Wenn das ausgewählte
Signal Yp0 aktiviert ist, wird der erste Schalter SW1 eingeschaltet,
sodass die lokale Daten-Ausgangsleitung LDOL0 durch die eingeschalteten Schalter
SW1 und SW2 auf Masse gelegt ist. Daten auf der lokalen Ausgangsleitung
LDOL0 werden durch den Auswahlschaltkreis 1700 zu dem Pass/Fail-Prüfschaltkreis 1900 transferiert.
-
6 ist
ein Schaltungsdiagramm zur Darstellung einer Ausgestaltung eines
Spalten-Decodierschaltkreises gemäß der vorliegenden Erfindung.
-
Bezug
nehmend auf 6 beinhaltet der Spalten-Decodierschaltkreis 1500 einen
ersten Decodierer 1510 und einen zweiten Decodierer 1520. Der
erste Decodierer 1510 decodiert erste Spaltenadressen CA0-CA2
nach Maßgabe
von Steuersignalen YSCAN_EN und YA_EN und erzeugt in Abhängigkeit
von dem Decodierungsergebnis die ersten Auswahlsignale Yp0-Yp7.
Der zweite Decodierer 1520 decodiert zweite Spaltenadressen
CA3-CAz nach Maßgabe
von Steuersignalen YSCAN_EN und YA_EN und erzeugt in Abhängigkeit
von einem Decodierungsergebnis die zweiten und dritten Auswahlsignale
Yqj, Yrj. Der erste Decodierer 1510 decodiert Spalten-Adresssignale CA1
und CA2 zum Aktivieren der ersten Auswahlsignale Yp0-Yp7 unabhängig von dem
Spalten-Adresssignal CA0, wenn das Steuersignal YSCAN_EN auf einem
logischen High-Pegel aktiviert ist. Dies bedeutet, dass zwei Auswahlsignale zeitgleich
nach Maßgabe
der Spalten-Adresssignale während der
Aktivierung des Steuersignals YSCAN_EN aktiviert werden.
-
In 6 ist
der erste Decodierer 1510 derart ausgebildet, dass zwei
Auswahlsignale zeitgleich aktiviert werden, jedoch kann jede andere
Anzahl von Auswahlsignalen (z. B. vier oder alle Auswahlsignale)
gleichzeitig aktiviert sein.
-
7 ist
ein Zeitablauf-Diagramm zur Darstellung einer Ausgestaltung eines
Programmier-Überprüfungsvorgangs
für ein
nicht-flüchtiges Speicherelement
gemäß der vorliegenden
Erfindung. Wenn das nicht-flüchtige
Speicherelement in einen Programmiervorgang-Modus eintritt, erzeugt
der Adresserzeugungs-Schaltkreis 1300 bei Kontrolle durch
die Steuerlogik 1400 sequentiell Spaltenadressen gemäß einer
Eingangs-Spaltenadresse. Der Spalten-Decodierschaltkreis 1500 erzeugt
die ersten bis dritten Auswahlsignale Ypi, Yqj, Yrj nach Maßgabe einer
erzeugten Spaltenadresse. Zu diesem Zeitpunkt ist nur eines der
ersten Auswahlsignale Yp0-Yp7 aktiviert, da das Steuersignal YSCAN_EN nicht
aktiviert ist. Dies bedeutet, dass nur einer der Seitenpuffer PB0-PB7
in jeder Seitenpuffer-Gruppe ausgewählt ist. Der Auswahlschaltkreis 1700 wählt einige
der lokalen Daten-Eingangsleitungen
nach Maßgabe
der zweiten und dritten Auswahlsignale Yqj, Yrj aus. In diesem Fall
werden zu programmierende Daten durch den Daten-Eingangs-/Ausgangs-Schaltkreis 1800 zu
globalen Daten-Eingangsleitungen
GDILx transferiert. Zu programmierende Datenbits werden zu lokalen
Daten-Eingangsleitungen transferiert, die durch den Auswahlschaltkreis 1700 ausgewählt wurden.
Die zu programmierenden Datenbits werden in entsprechende Seitenpuffer
geladen, die mit den ausgewählten
lokalen Daten-Eingangsleitungen verbunden sind und die das aktivierte
erste Auswahlsignal empfangen. Durch diese Abläufe werden zu programmierende
Datenbits in den Seitenpuffer-Schaltkreis 1600 geladen.
-
Da
eine Wortleitung gemäß einer
Eingangs-Zeilenadresse ausgewählt
ist und da Bitleitungen gemäß geladener
Datenbits mit der Energieversorgungs-Spannung oder einer Massespannung
betrieben werden, werden mit der ausgewählten Wortleitung verbundene
Speicherzellen während
einer voreingestellten Programm-Schleifenzeit programmiert. Wenn
der Programmiervorgang einer ersten Programmschleife durchgeführt wurde,
wird ein Programmier-Überprüfungsvorgang
ausgeführt,
um zu bestimmen, ob die Schwellenspannungen der programmierten Speicherzellen
die erforderliche Schwellenspannung erreicht haben. Um die Schwellenspannungen
zu messen, werden die ausgewählten
Speicherzellen gelesen, und ihr Status wird in der oben beschriebenen
Weise in den Registern REG des Seitenpuffer-Schaltkreises 1600 gespeichert. Nachdem
die Zustände
der ausgewähl ten
Speicherzellen in dem Seitenpuffer-Schaltkreis 1600 gespeichert
sind, aktiviert die Steuerlogik 1400 das Steuersignal YSCAN_EN,
welches den Beginn einer Y-Abtastung anzeigt. Anschließend werden
die in dem Seitenpuffer-Schaltkreis 1600 gespeicherten
Datenwerte unter Verwendung einer Y-Abtasttechnik sequentiell zu
dem Pass/Fail-Prüfschaltkreis 1900 transferiert.
Gleichzeitig erzeugt der Adresserzeugungs-Schaltkreis 1300 unter
Kontrolle der Steuerlogik 1400 die Spaltenadresse CA.
-
Der
Spalten-Decodierschaltkreis 1500 decodiert eine Eingangs-Spaltenadresse
nach Maßgabe der
Steuersignale YA_EN und YSCAN_EN. Die ersten bis dritten Auswahlsignale
Ypi, Yqj, Yrj werden nach Maßgabe
des Decodierungsergebnisses erzeugt. Speziell aktiviert der erste
Decodierer 1510 des Spaltendecodierers 1500, da
das Steuersignal YSCAN_EN aktiviert ist, zwei Auswahlsignale Yp0, Yp1
zur selben Zeit. Mit anderen Worten: Da zwei Auswahlsignale Yp0,
Yp1 gleichzeitig aktiviert sind, werden Datenwerte von zwei Seitenpuffern
PB0 und PB1 in jeder der Seitenpuffer-Gruppen gleichzeitig in eine entsprechende
lokale Daten-Ausgangsleitung umgeleitet. Wenn beispielsweise in
den Seitenpuffern PB0 und PB1 der jeweiligen Seitenpuffer-Gruppen
zwischengespeicherte Datenwerte auf niedrigen Logikpegeln sind,
was eine ordnungsgemäße Gesamt-Programmierung,
ist der erste Schalter SW1 der Daten-Ausgabeeinheit DOP in jedem
der jeweiligen Seitenpuffer ausgeschaltet. Im Ergebnis verbleibt
die zugehörige
lokale Daten-Ausgangsleitung auf dem hohen Pegel (dem Vorladepegel),
was eine ordnungsgemäße Programmierung
anzeigt. Demgegenüber
wird der erste Schalter SW1 der Daten-Ausgabeeinheit DOP eines betreffenden
Seitenpuffers eingeschaltet, wenn wenigstens einer der in den Seitenpuffern
PB0 und PB1 der jeweiligen Seitenpuffer-Gruppen zwischengespeicherte
Datenwert hoch ist. Als Ergebnis geht eine lokale Daten-Ausgangsleitung
auf einen niedrigen Pegel, was einen Programmierfehler anzeigt.
-
Die
logischen Pegel der lokalen Datenausgangsleitungen werden durch
den Auswahlschaltkreis 1700 zu den globalen Daten-Ausgangsleitungen
transferiert. Der Pass/Fail-Prüfschaltkreis 1900 detektiert,
ob die Speicherzellen der gegenwärtig
erzeugten Spaltenadresse auf die erforderliche Schwellenspannung
nach Maßgabe
der logischen Pegel der globalen Daten-Ausgangsleitungen programmiert sind.
Wenn die Speicherzellen auf die erforderliche Schwellenspannung
programmiert sind, veranlasst die Steuerlogik 1400 den
Adresserzeugungs-Schaltkreis 1300, die nächste Spaltenadresse nach
Maßgabe
des Pass/Fail-Signals PF zu erzeugen. Die nächste Y-Abtastung wird dann ausgeführt, wie
weiter beschrieben. Andernfalls deaktiviert die Steuerlogik 1400 die
Steuersignale YA_EN und YSCAN-EN nach Maßgabe des Pass/Fail-Signals
PF, um auf diese Weise den gegenwärtigen Programmier-Überprüfungsvorgang
zu beenden. Die nächste Programmschleife
setzt dann den Programmier-/Überprüfungszyklus
in derselben Weise fort.
-
Wie
vorstehend beschrieben, können
Datenwerte aus wenigstens zwei oder mehr Seitenpuffern gleichzeitig
während
eines Programmier-Überprüfungsvorgangs
in eine lokale Daten-Ausgangsleitung umgeleitet werden. Als ein
Ergebnis kann die Zeit zum Ausführen
einer Y-Abtastung reduziert werden, wodurch die gesamte Programmierdauer
reduziert werden kann.