-
Die
Erfindung betrifft ein nicht-flüchtiges Halbleiterspeicherbauelement
und insbesondere ein Flash-EEPROM-
(elektrisch programmierbarer und löschbarer Nur-Lese-Speicher) Bauelement
vom NICHT-UND-Typ mit einer Programmierungszustands-Feststellungsschaltung
und das Verfahren dafür.
-
Das
Programmieren eines Flash-EEPROM-Bauelements vom NICHT-UND-Typ ist mit den
wiederholten Zyklen der Programmierung, Datenauslesung und Programmierungsüberprüfung und Y-ABTASTUNG durchführbar. Insbesondere
werden während
des Programmierzyklus EEPROM-Zellen, die einer angesteuerten Seite
(d.h. einer Wortleitung) zugeordnet sind, in einen gewünschten
Datenzustand programmiert. Dann wird die Datenausleseoperation der
programmierten Zellen durchgeführt. Schließlich wird
die Überprüfungsoperation ausgeführt, um
zu prüfen,
ob sich die programmierten Zellen im gewünschten Datenzustand befinden.
Wenn mindestens eine der programmierten Zellen nicht dem gewünschten
Zustand entspricht, werden die obigen Programmierzyklen vorbestimmte
Male kontinuierlich durchgeführt.
Zu diesem Zweck enthalten die meisten Flash-Speicherbauelemente
eine Programmierungszustands-Feststellungsschaltung, um ERFOLG oder
MISSERFOLG festzustellen, die ein Ergebnis der Programmierung melden.
-
Eine
Programmierungszustands-Feststellungsschaltung für Flash-Speicher ist beispielsweise im
US-Patent Nr. 5 299 162 mit dem Titel "NONVOLATILE SEMICONDUCTOR MEMORY DEVICE AND
AN OPTIMIZING PROGRAMMING METHOD THEREOF" offenbart.
-
1 stellt die im vorstehend
erwähnten
Dokument offenbarte Programmierungszustands-Feststellungsschaltung
dar. Mit Bezug auf 1 ist
jede der Bitleitungen BL1-BL1024
mit einer Zellenkette (CE) mit NICHT-UND-Struktur gekoppelt, welche
aus einem in Reihe geschalteten Transistor ST, acht Zellentransistoren
CT1-CT8 und einem Erdansteuertransistor GT besteht. Der Kettenansteuertransistor ST
und der Erdansteuertransistor GT weisen eine MOS-Transistorstruktur
auf. Die Gates sind mit Ansteuerleitungen SL1 bzw. SL2 gekoppelt.
Jeder der Zellentransistoren CT1-CT8 weist die Struktur eines MOS-Verarmungstransistors
mit einem zwischen einem Steuergate und einem Substrat angeordneten schwebenden
Gate auf. Jedes Steuergate ist jeweils mit den Steuerleitungen CL1-CL8
gekoppelt. Jede der Bitleitungen (BL1-BL1024) ist jeweils mit Hochspannungs-Versorgungsschaltungen
HV zum Liefern einer Programmierspannung mit positiv hohem Pegel,
jeweils mit Bitleitungs-Halteschaltungen LT, in die von außen eingegebene
Daten eingelesen werden, mit einer Stromquellenschaltung CS zum
Liefern eines Feststellungsstroms während der Programmierungsfeststellungsoperation
und jeweils mit Programmierungsprüfeinheiten PC zum Invertieren
von Daten der Bitleitungs-Halteschaltung LT gekoppelt.
-
Die
Hochspannungs-Versorgungsschaltung HV ist ein Ladungspumpschaltkreis,
der aus Transistoren PT1 und PT2 und einem Pumpkondensator C1 besteht.
Ein Drainpol des Transistors PT1 ist mit der Programmierspannung
Vpp gekoppelt, dessen Gate ist mit einer Bitleitung BL1 gekoppelt,
und dessen Sourcepol ist mit einem Gate eines Transistors PT2 gekoppelt.
Ein Drainpol des Transistors PT2 ist mit einer Elektrode eines Pumpkondensators
C gekoppelt und dessen Sourcepol ist mit der Bitleitung BL1 gekoppelt.
Wenn ein Taktsignal ⌀pp
auf einen hohen Pegel umschaltet, entlädt der Pumpkondensator C die
im Kondensator C gespeicherte Ladung über den Transistor PT2 auf
die Bitleitung BL1 und liefert eine Löschspannung und eine Programmiersperrspannung
zur Bitleitung.
-
Die
Bitleitungs-Halteschaltung LT besteht aus zwei Invertern INV1 und
INV2 und einem Übertragungstransistor
TT1. Die Inverter INV1 und INV2 sind miteinander gekoppelt, wobei
ein Eingang von einem von ihnen mit einem Ausgang des anderen gekoppelt
ist. Ein Gate des Übertragungstransistors TT1
ist mit einem Taktsignal ⌀1
gekoppelt, ein erster Stromanschluß (Drainpol oder Sourcepol)
desselben ist mit einer Bitleitung gekoppelt, und ein zweiter Anschluß desselben
(Sourcepol oder Drainpol) ist mit einem Eingang des Inverters INV2
gekoppelt. Somit empfängt
und hält
die Bitleitungs-Halteschaltung LT externe Daten, die über den Übertragungstransistor TT1
an die Bitleitung angelegt werden, welcher durchgesteuert wird,
wenn das Taktsignal ⌀1
auf einem hohen Potential liegt.
-
Die
Stromquellenschaltung CS umfaßt
eine Vielzahl von Ausgangsschaltungen OS, die jeweils mit den Bitleitungen
gekoppelt sind, und eine gemeinsame Bezugsstrom- Festlegungsschaltung RC. Die Schaltungen
RC und OS sind in Form einer Stromspiegelschaltung miteinander gekoppelt,
um einen Bezugsstrom gegen alle Ausgangsschaltungen OS festzulegen.
Die gemeinsame Bezugsstrom-Festlegungsschaltung
RC umfaßt
einen P-Kanal-MOS-Transistor M1, der zwischen die Versorgungsspannung
Vcc und die Erdspannung Vss gekoppelt ist, und N-Kanal-MOS-Transistoren
M2 und M3. Ein Drainpol und ein Gate des P-Kanal-MOS-Transistors M1 sind
miteinander gekoppelt. Ein Gate des N-Kanal-MOS-Transistors M2 ist mit der
Bezugsspannung Vref gekoppelt und jenes des N-Kanal-MOS-Transistors
M3 ist mit einem Taktsignal ⌀2
gekoppelt. Jede der Ausgangsschaltungen OS weist einen P-Kanal-MOS-Transistor
M4, der zwischen die Versorgungsspannung Vcc und jede der Bitleitungen
gekoppelt ist, und einen N-Kanal-MOS-Transistor M5 auf. Ein Gate
des P-Kanal-MOS-Transistors ist mit jenem des P-Kanal-MOS-Transistors gekoppelt.
Ein Gate des N-Kanal-MOS-Transistors M5 ist mit dem Taktsignal ⌀2 gekoppelt.
Somit wird die Stromquellenschaltung CS aktiviert, wenn das Taktsignal ⌀2 auf
einen hohen Pegel umschaltet, so daß der Drainstrom des P-Kanal-MOS-Transistors
M4, d.h. der Überprüfungsstrom,
zur Bitleitung BL1 geliefert wird.
-
Die
Programmierungsprüfschaltung
PC umfaßt
einen MOS-Transistor
M6. Ein Drainpol des MOS-Transistors M6 ist mit einem Eingang des
Inverters INV1 gekoppelt, dessen Sourcepol ist mit der Erdspannung
Vss gekoppelt und dessen Gate ist mit einer Bitleitung gekoppelt.
Wenn der an die Bitleitung angelegte Überprüfungsstrom nicht über eine
Zellenkette mit NICHT-UND-Struktur mit einer angesteuerten Zelle
zu einer Erdung fließt,
schaltet die Bitleitung auf einen hohen Pegel um und folglich wird
der MOS-Transistor M6 (Programmierungsüberprüfungseinheit) durchgesteuert.
Dies veranlaßt,
daß der
Eingang des Inverters INV1 auf einen niedrigen Pegel (z.B. Erdspannung)
umschaltet. Wenn die Programmierung der angesteuerten Zelle unzureichend ist,
stellt die Programmierungsprüfschaltung
PC folglich einen unzureichenden Programmierungszustand fest und
invertiert dann einen Datenlogikpegel der Bitleitungs-Halteschaltung LT.
-
In 1 befindet sich eine Programmierungszustands-Feststellungsschaltung
PS. Wenn alle angesteuerten Zellen mit einem optimalen Zustand programmiert
sind, gibt die Schaltung PS ein normales Feststellungssignal aus.
Wenn mindestens eine der angesteuerten Zellen unzureichend programmiert
ist, gibt die Schaltung PS ein anormales Feststellungssignal aus.
Die Schaltung PS umfaßt
einen MOS-Verarmungstransistor
M7 und einen MOS-Verarmungstransistor M8. Der MOS-Verarmungstransistor
M7 dient als Pull-up-Schaltung
zum Hochsetzen eines Knotens N1, und der MOS-Verarmungstransistor M8 dient als Pull-up-Last.
Ein Sourcepol des MOS-Verarmungstransistors ist mit der Versorgungsspannung
Vcc gekoppelt, dessen Gate ist mit einem Taktsignal ⌀3 gekoppelt
und dessen Drainpol ist mit einem Sourcepol des MOS-Verarmungstransistors
M8 gekoppelt. Ein Gate und ein Drainpol des MOS-Verarmungstransistors
M8 sind mit dem Knoten N1 gekoppelt. Eine Vielzahl von N-Kanal-MOS-Transistoren
PD1-PD1024, die als Pull-down-Schaltung
PD dienen, sind zwischen den Knoten N1 und eine Erdspannung Vss
parallel geschaltet. Ein Gate von jedem der MOS-Transistoren ist
mit einem invertierten Ausgang Q der
Bitleitungs-Halteschaltungen LT gekoppelt. Der Knoten N1 ist über einen
Inverter INV3 mit einem Eingangsanschluß eines NICHT-ODER-Gatters
G gekoppelt. Der andere des NICHT-ODER-Gatters G ist mit einem Taktsignal ϕ4 gekoppelt.
-
Die
Programmier- und Überprüfungsoperationen
des nicht-flüchtigen
Halbleiterspeicherbauelements, das in 1 dargestellt
ist, werden nachstehend genauer beschrieben.
-
Zuerst
wird eine Löschoperation,
um eine Schwellenspannung einer Zelle auf einen negativen Pegel
zu bringen, vor dem Programmieren von Daten in eine Zelle durchgeführt. Nach der
Beendung der Löschoperation
werden externe Daten in die Bitleitungs-Halteschaltung LT geladen.
Zu diesem Zeitpunkt wird ein hoher Logikpegel zu Daten "1" geladen und ein niedriger Logikpegel
wird zu Daten "0" geladen. Wenn das
Taktsignal ⌀1
auf einem hohen Pegel liegt, werden die Daten in die Bitleitungs-Halteschaltung
LT geladen. Wenn die in dieser gehaltenen Daten auf einem hohen
Pegel liegen, wird die Hochspannungs-Versorgungsschaltung HV betätigt, um eine
Spannung auf einer Bitleitung als Programmiersperrspannung festzulegen.
Da die Spannungsdifferenz zwischen einem Gate und einem Drainpol
eines angesteuerten Zellentransistors (z.B. CT6) zur Erzeugung einer
F-N-Tunnelung unzureichend ist, weist der angesteuerte Zellentransistor
CT6 eine negative Schwellenspannung auf.
-
Wenn
die in die Bitleitungs-Halteschaltung LT geladenen Daten auf einem
niedrigen Pegel liegen, wird die Hochspannungs-Versorgungsschaltung HV
nicht betätigt
und behält
0V auf der Bitleitung bei. Da die F-N-Tunnelung durch die Spannungsdifferenz dazwischen
erzeugt wird, werden folglich Ladungen in ein schwebendes Gate injiziert
und folglich schaltet die Zellenschwellenspannung auf einen positiven
Pegel um. Eine unzureichende Programmierung verhindert jedoch, daß der angesteuerte
Zellentransistor die festgelegte positive Schwellenspannung erhält. Um nach
der Beendung der Programmieroperation zu prüfen, ob Zellen korrekt programmiert
sind, wird die Stromquelle CS als Reaktion auf einen hohen Zustand
des Taktsignals ⌀2
betätigt
und folglich wird ein Überprüfungsstrom
zur Bitleitung BL geliefert. Die Steuerleitungen CL1-CL5, CL7 und
CL8 empfangen die Versorgungsspannung Vcc und die Steuerleitung CL6
empfängt
eine vorbestimmte Überprüfungsspannung
(z.B. +0,8 V). Wenn die Schwellenspannung des angesteuerten Zellentransistors
CT6 auf einen negativen Pegel umschaltet, fließt der Überprüfungsstrom über die Zellenkette CE zur
Erdung. Somit behält
die Bitleitung BL1 0 V bei.
-
Wenn
die Schwellenspannung der angesteuerten Zelle auf einen positiven
Pegel (Vth > 0,8 V) umschaltet,
schaltet die Bitleitung BL1 auf einen hohen Pegel um, da der Überprüfungsstrom
nicht durch die Zellenkette CE fließt. Wenn die angesteuerte Zelle
unzureichend programmiert ist (dies bedeutet, daß deren Schwellenspannung niedriger
ist als 0,8 V), fließt
der Überprüfungsstrom
zur Erdung und die Bitleitung BL1 behält nach wie vor 0 V bei.
-
Während der
Programmierungsüberprüfungsoperation
wird der Transistor M6 zum Prüfen
einer Programmierung gesperrt, wenn die Bitleitung der angesteuerten
Zelle auf einem niedrigen Pegel liegt. Folglich werden die in der
Bitleitungs-Halteschaltung LT gespeicherten Daten nicht invertiert,
um zu veranlassen, daß Daten "0" eines anfänglich geladenen Zustands an
einem Ausgang Q gehalten werden. Da Daten "1" an
einer invertierten Version Q des Ausgangs
Q gehalten werden, wird der Pull-down-Transistor PD1 der Programmierungszustands-Feststellungsschaltung
PS, der mit der Version Q gekoppelt
ist, kontinuierlich durchgesteuert. Daher wurde das Programmieren
anormal durchgeführt, so
daß veranlaßt wird,
daß ein
Taktsignal ⌀5
der Programmierungszustands-Feststellungsschaltung PS einen niedrigen
Pegel beibehält.
-
Während der
Umprogrammieroperation werden die Daten "0" der
Bitleitungs-Halteschaltung LT innerhalb eines hohen Intervalls des
Taktsignals ⌀1 wieder
zur Bitleitung BL1 geliefert. Ladungen werden wiederholt in das
schwebende Gate der unzureichend programmierten Zelle injiziert,
so daß die Schwellenspannung
der Zelle eine höhere
positive Spannung aufweist. Wenn die Programmierzyklen nacheinander
ausgeführt
werden, um die Schwellenspannung der angesteuerten Zelle mit der
höheren positiven
Spannung aufzuladen, und folglich die angesteuerte Zelle durch die Überprüfungsspannung (0,8
V) nicht durchgesteuert wird, schaltet die Bitleitung auf einen
hohen Pegel um, um den Transistor M6 durchzusteuern. Somit werden
die am Ausgang Q der Bitleitungs-Halteschaltung LT geladenen Daten "0" in Daten "1" invertiert,
und Daten "1" der invertierten
Version Q werden in Daten "0" invertiert. Somit wird der Pull-down-Transistor
PD1 der Programmierungszustands-Feststellungsschaltung
PS gesperrt. Durch diese wiederholten Operationen schalten die komplementären Ausgangssignale Q aller Bits (d.h. aller
Bitleitungs-Halteschaltungen)
des Seitenpuffers PB auf die Daten "0" um.
Wenn alle komplementären Ausgangssignale Q auf einen niedrigen Pegel
umschalten, schaltet das Taktsignal ⌀5 der Programmierungszustands-Feststellungsschaltung
PS auf einen hohen Pegel um. Das heißt, alle angesteuerten Zellen
sind mit einem erforderlichen Zustand programmiert.
-
Wie
durch die obige Beschreibung bekannt ist, kann ein nicht-flüchtiges
Halbleiterspeicherbauelement mit einer in 1 dargestellten Programmierungszustands-Feststellungsschaltung
simultan einen Programmierungszustand der Zellentransistoren, die
mit einer Seite in Zusammenhang stehen, überprüfen.
-
Wenn
mit Bezug auf 2 zwei
benachbarte Bitleitungs-Halteschaltungen
LT1 und LT2 elektrisch miteinander verbunden sind, wie durch eine
gestrichelte Linie angezeigt, lassen sich die mit den Schaltungen
LT1 und LT2 gekoppelten Bitleitungen BL1 und BL2 gegen redundante
Bitleitungen (nicht dargestellt), die einer Zellenmatrix zugeführt werden,
austauschen, wie für
Fachleute ersichtlich ist. Da jedoch die komplementären Ausgänge Q der Bitleitungs-Halteschaltungen
LT1 und LT2 immer Logikzustände
aufweisen, die zueinander entgegengesetzt sind, wird einer der Pull-down-Transistoren
PD1 und PD2, die mit den komplementären Ausgängen Q gekoppelt sind, während der Programmierungsüberprüfungsoperation
immer durchgesteuert. Wenn beispielsweise die Bitleitung BL1 oder
BL2 auf einen niedrigen Pegel gesetzt wird, wird die damit elektrisch
verbundene Bitleitung BL2 oder BL1 ebenfalls auf den niedrigen Pegel
gesetzt. Folglich schaltet der komplementäre Ausgang Q der Bitleitungs-Halteschaltung LT1 auf
einen hohen Pegel um, wie in 2 dargestellt.
Dies veranlaßt,
daß der Pull-down-Transistor
PD1, der mit dem komplementären
Ausgang Q gekoppelt ist, durchgesteuert
wird, so daß die
Programmierungszustands-Feststellungsschaltung
PS ein Taktsignal ⌀5
mit niedrigem Pegel ausgibt, das einen Programmierungsmißerfolg
anzeigt, bis eine Reihe der Programmieroperation und der Programmierungsüberprüfungsoperation
nicht weniger als vorbestimmte Male wiederholt werden. Das heißt, das
nicht-flüchtige Halbleiterspeicherbauelement
wird als Ausfallbauelement betrachtet.
-
Wenn
irgendeine Bitleitung mit einer Erdspannung gekoppelt ist (sie wird
als fehlerhafte Spalte betrachtet, um sich gegen eine redundante
Bitleitung austauschen zu lassen), behält ein komplementärer Ausgang Q einer Bitleitungs-Halteschaltung, die mit
einer geerdeten Bitleitung gekoppelt ist, immer einen hohen Pegel
bei. Folglich gibt eine Programmierungszustands-Feststellungsschaltung
PS ein Taktsignal ⌀5
mit niedrigem Pegel aus, welches einen Programmierungsmißerfolg
anzeigt. Wenn sich ein Zellentransistor, der programmiert wird,
kontinuierlich in einem Löschzustand
befindet (eine mit einer Zellenkette mit dem Zellentransistor im
Löschzustand
gekoppelte Bitleitung wird gegen eine entsprechende redundante Bitleitung
ausgetauscht), behält
der komplementäre
Ausgang Q immer einen hohen
Pegel bei. Folglich gibt die Programmierungszustands-Feststellungsschaltung
PS das Taktsignal ⌀5 mit
niedrigem Pegel aus.
-
Obwohl
fehlerhafte Bitleitungen gegen redundante Bitleitungen ausgetauscht
werden, gibt eine herkömmliche
Programmierungszustands-Feststellungsschaltung, wie vorstehend erwähnt, immer
ein Taktsignal mit niedrigem Pegel aus, welches einen Programmierungsmißerfolg
infolge der fehlerhaften Bitleitungen anzeigt. Daher wird ein nicht-flüchtiges Halbleiterspeicherbauelement
als Ausfallbauelement betrachtet und verursacht eine Verschlechterung
einer Ausbeute.
-
Es
ist daher Aufgabe der Erfindung, ein nicht-flüchtiges Halbleiterspeicherbauelement
mit einer Programmierungszustands-Feststellungsschaltung, die eine
durch eine fehlerhafte Spalte verursachte Ausbeuteverschlechterung
unterdrücken kann,
und das Verfahren dafür
bereitzustellen.
-
Gemäß der Erfindung
ist ein nicht-flüchtiges Halbleiterspeicherbauelement
ein Flash-Speicherbauelement vom NICHT-UND-Typ und besitzt einen Programmierzyklus,
der durch eine Reihe einer Programmieroperation, einer Programmierungsüberprüfungsoperation
und einer Y-ABTAST-Operation durchgeführt wird.
Das Speicherbauelement umfaßt eine
Speicherzellenmatrix, eine Seitenpufferschaltung, einen Adressenzähler, eine
Spaltenansteuerschaltung, einen Vorwärtszählsignalgenerator und eine
Programmiererfolg/-mißerfolg-Prüfschaltung. Die
Speicherzellenmatrix umfaßt
eine Vielzahl von Zeilen, eine Vielzahl von Spalten, eine Vielzahl
von redundanten Spalten und eine Vielzahl von Speicherzellen, die
jeweils an den Kreuzungsbereichen der Zeilen und Spalten angeordnet
sind. Die Seitenpufferschaltung liest programmierte Datenbits aus
der Speicherzellenmatrix über
die Spalten aus und hält die
ausgelesenen programmierten Datenbits. Der Adressenzähler erzeugt
eine Spaltenadresse als Reaktion auf ein Vorwärtszählsignal während einer Y-ABTAST-Operation.
Die Spaltenansteuerschaltung steuert die Spalten als Reaktion auf
die Spaltenadresse an und umfaßt
einen Spaltendecodierer zum Decodieren einer aus dem Adressenzähler ausgegebenen
Spaltenadresse, eine Spaltengatterschaltung zum Ansteuern der Spalten
als Reaktion auf die vom Spaltendecodierer decodierte Spaltenadresse
und eine Redundanzschaltung zum Empfangen der Spaltenadresse. Wenn
der Spaltenadresse entsprechende Spalten mindestens eine fehlerhafte
Spalte enthalten, aktiviert die Redundanzschaltung den Spaltendecodierer
und tauscht die fehlerhafte Spalte über die Spaltengatterschaltung
gegen eine entsprechende redundante Spalte aus.
-
Wenn
unter den programmierten Datenbits, die in der Seitenpufferschaltung
gehalten werden, den angesteuerten Spalten entsprechende Programmierungsdatenbits
mit einem Programmierungszustand verbunden sind, erzeugt der Vorwärtszählsignalgenerator
das Vorwärtszählsignal
während
der Y-ABTAST-Operation. Der Vorwärtszählsignalgenerator
umfaßt
eine Datenzustands-Feststellungsschaltung und einen Oszillator.
Die Datenzustands-Feststellungsschaltung stellt fest, ob die den
angesteuerten Spalten entsprechenden programmierten Datenbits jeweils
mit dem Programmierungszustand verbunden sind, um ein Schwingungssteuersignal
zu erzeugen. Der Oszillator erzeugt das Vorwärtszählsignal als Reaktion auf das
Schwingungssteuersignal. Wenn nämlich
alle den angesteuerten Spalten entsprechenden programmierten Datenbits
mit dem Programmierungszustand verbunden sind, aktiviert die Datenzustands-Feststellungsschaltung
das Schwingungssteuersignal, um das Vorwärtszählsignal zum Erhöhen der
Spaltenadresse zu aktivieren. Wenn mindestens eines der programmierten
Datenbits mit einem unzureichend programmierten Zustand verbunden
ist, deaktiviert die Datenzustands-Feststellungsschaltung das Schwingungssteuersignal,
um das Vorwärtszählsignal
zu deaktivieren.
-
Die
Programmiererfolg/-mißerfolg-Prüfschaltung
erzeugt ein Erfolg/Mißerfolg-Hinweissignal,
das mit einem von Programmiererfolg und Programmiermißerfolg
in Zusammenhang steht, als Reaktion auf das Vorwärtszählsignal und die Spaltenadresse. Wenn
das Schwingungssteuersignal aktiviert wird und alle Bits der Spaltenadresse
auf einem hohen Pegel liegen, erzeugt die Programmiererfolg/-mißerfolg-Prüfschaltung
das mit dem Programmiererfolg in Zusammenhang stehende Erfolg/Mißerfolg-Hinweissignal
mit hohem Pegel. Wenn das Schwingungssteuersignal deaktiviert oder
aktiviert wird und mindestens eines der Spaltenadressenbits auf
einem niedrigen Pegel liegt, erzeugt die Programmiererfolg/-mißerfolg-Prüfschaltung
das mit dem Programmiermißerfolg
in Zusammenhang stehende Erfolg/Mißerfolg-Hinweissignal mit niedrigem
Pegel.
-
Die
Programmier-/Erfolg-Prüfoperation
wird unter Verwendung von Datenbits durchgeführt, die durch eine Spaltengatterschaltung
gemäß einer Spaltenadresse
mit einer Redundanzinformation angesteuert werden. Daher kann eine
fehlerhafte Bitleitung (oder können
fehlerhafte Bitleitungen) keinen Einfluß auf die Programmiererfolg/-mißerfolg-Prüfoperation
haben.
-
Ausführungsbeispiele
der Erfindung werden anhand der Zeichnung näher erläutert. Es zeigen:
-
1 einen
Schaltplan, der eine Programmierungszustands-Feststellungsschaltung eines nicht-flüchtigen
Halbleiterspeicherbauelements gemäß dem Stand der Technik zeigt;
-
2 ein
Diagramm zum Beschreiben eines Problems des Standes der Technik;
-
3 ein
Blockdiagramm, das ein Flash-Speicherbauelement mit einer Programmierungszustands-Feststellungsschaltung
gemäß einem
ersten Ausführungsbeispiel
der Erfindung zeigt;
-
4 ein
bevorzugtes Ausführungsbeispiel einer
in 3 gezeigten Datenzustands-Feststellungsschaltung;
-
5 ein
bevorzugtes Ausführungsbeispiel einer
in 3 gezeigten Erfolg/Mißerfolg-Prüfschaltung;
-
6 einen
Ablaufplan, der einen Programmieralgorithmus gemäß einem ersten Ausführungsbeispiel
der Erfindung zeigt;
-
7A-7B Zeitablaufdarstellungen zum
Beschreiben einer erfindungsgemäßen Y-ABTAST-Operation;
-
8 ein
Blockdiagramm eines Flash-Speicherbauelements mit einer Programmierungszustands-Feststellungsschaltung
gemäß einem
zweiten Ausführungsbeispiel
der Erfindung;
-
9 ein
Blockdiagramm, das eine in 8 dargestellte
Programmierungszustands-Feststellungsschaltung zeigt;
-
10 ein
bevorzugtes Ausführungsbeispiel einer
in 9 gezeigten Datenzustands-Feststellungsschaltung;
-
11 ein
bevorzugtes Ausführungsbeispiel eines
in 9 gezeigten ersten Registers;
-
12 ein
bevorzugtes Ausführungsbeispiel eines
in 9 gezeigten Schwingungssteuersignal-Generators;
-
13 ein
bevorzugtes Ausführungsbeispiel einer
in 9 gezeigten Aktivierungsschaltung;
-
14 ein
bevorzugtes Ausführungsbeispiel einer
in 9 dargestellten Deaktivierungsschaltung;
-
15 einen
Ablaufplan, der einen Programmieralgorithmus gemäß einem zweiten Ausführungsbeispiel
der Erfindung darstellt; und
-
16A-16D Zeitablaufdarstellungen zum
Beschreiben einer erfindungsgemäßen Y-ABTAST-Operation.
-
(Erstes Ausführungsbeispiel)
-
Mit
Bezug auf 3 umfaßt ein nicht-flüchtiges
Halbleiterspeicherbauelement, d.h. ein Flash-Speicherbauelement vom NICHT-UND-Typ, eine
Speicherzellenmatrix 100 zum Speichern von Informationen.
In dem Flash-Speicherbauelement vom NICHT-UND-Typ sind eine Vielzahl
von Bitleitungen BL1-BLi (i ist eine positive ganze Zahl) und eine
Vielzahl von redundanten Bitleitungen RBL1-RBLj (j ist eine positive
ganze Zahl) in Spaltenrichtung durch die Speicherzellenmatrix 100 angeordnet.
Die redundanten Bitleitungen RBL1-RBLj werden zum Austauschen von
fehlerhaften der Bitleitungen BL1-BLi verwendet. Zellenketten mit
derselben Struktur wie jener von 1 sind mit
den Bitleitungen BL1-BLi bzw. den redundanten Bitleitungen RBL1-RBLj
gekoppelt. Eine Seitenpufferschaltung 110, mit der die
Bitleitungen BL1-BLi und die redundanten Bitleitungen RBL1-RBLj
gekoppelt sind, dient als Treiber, der Bitleitungen und redundante
Bitleitungen RBL1-RBLj während
der Programmieroperation eines Programmierzyklus gemäß einem
zu programmierenden Datenzustand ansteuert. Während der Programmierungsüberprüfungsoperation
(insbesondere der Überprüfungsausleseoperation)
des Programmierzyklus dient die Seitenpufferschaltung 110 als
Leseverstärker
(oder Seitenpufferschaltung), der Datenbits, die in Zellentransistoren
programmiert wurden, welche mit einer angesteuerten Seite gekoppelt
sind, liest.
-
Unter
erneuter Bezugsnahme auf 3 sind ein Adressenzähler 120,
ein Spaltendecodierer 130, eine Spaltengatterschaltung 140,
eine Redundanzschaltung 150 und eine Programmierungszustands-Feststellungsschaltung 190 für das Flash-Speicherbauelement
vorgesehen.
-
Der
Adressenzähler 120 besteht
aus Zählern und
erzeugt eine Spaltenadresse Ai (bei diesem Ausführungsbeispiel i = 1 – 8) als
Reaktion auf ein Vorwärtszählsignal
YCNTUP, das aus der Programmierungszustands-Feststellungsschaltung 190 während einer
Programmierungsüberprüfungsoperation
ausgegeben wird. Der Spaltendecodierer 130 decodiert die
im Adressenzähler 120 erzeugte
Spaltenadresse Ai. Die decodierte Spaltenadresse wird zur Spaltengatterschaltung 140 übertragen.
Die Spaltengatterschaltung 140 steuert die der decodierten
Spaltenadresse entsprechenden Bitleitungen BL1-BLi an, d.h. steuert Seitenpuffer entsprechend
den angesteuerten Bitleitungen aus den für die Seitenpufferschaltung 110 vorgesehenen
Seitenpuffern an. Die programmierten Datenbits, die in den angesteuerten Seitenpuffern
gespeichert sind (dies bedeutet, daß die Datenbits während der Überprüfungsausleseoperation
nach der Beendung der Programmieroperation ausgelesen werden), werden
während
der Programmierungsüberprüfungsoperation
nacheinander über die
Spaltengatterschaltung 140 zur Programmierungszustands-Feststellungsschaltung 190 übertragen.
-
Die
im Spaltenzähler 120 erzeugte
Spaltenadresse wird zu einer Redundanzschaltung 150 übertragen,
wie in 3 gezeigt. Die Redundanzschaltung prüft, ob eine
fehlerhafte der angesteuerten Bitleitungen, die der Spaltenadresse entsprechen,
vorliegt. Wenn die angesteuerten Bitleitungen mindestens eine fehlerhafte
Bitleitung enthalten, aktiviert die Redundanzschaltung 150 den
Spaltendecodierer 130 und veranlaßt, daß eine redundante Bitleitung, die
der fehlerhaften Bitleitung entspricht, von der Spaltengatterschaltung 140 angesteuert
wird. Das heißt,
wenn eine fehlerhafte der Spalten, die der Spaltenadresse entsprechen,
vorliegt (d.h. Redundanz erforderlich ist), wird eine redundante
Bitleitung, die der fehlerhaften Spalte entspricht, durch die Redundanzschaltung 150 und
die Spaltengatterschaltung 140 angesteuert, während eine
der fehlerhaften Spalte entsprechende Bitleitung nicht von diesen
angesteuert wird.
-
Während der
Y-ABTAST-Operation jedes Programmierzyklus werden die in den angesteuerten Seitenpuffern
gehaltenen programmierten Datenbits über die Spaltengatterschaltung 140 zur
Programmierungszustands-Feststellungsschaltung 190 übertragen.
Die Programmierungszustands-Feststellungsschaltung 190 prüft, ob alle übertragenen
Datenbits mit einem erforderlichen Programmierungszustand verbunden
sind. Wenn ja, weist das aus der Programmierungszustands-Feststellungsschaltung 190 ausgegebene
Vorwärtszählsignal
YCNTUP einen Übergang
von einem hohen auf einen niedrigen Pegel auf, und daher nimmt die
aus dem Adressenzähler 120 ausgegebene
Spaltenadresse um nicht weniger als "1" zu.
Wenn die zunehmende Spaltenadresse zum Spaltendecodierer 130 und
zur Redundanzschaltung 150 übertragen wird, werden die nächsten Spalten
durch die Spaltengatterschaltung 140 angesteuert. Wenn
mindestens eines der Datenbits mit einem unzureichend programmierten
Zustand verbunden ist, behält
das aus der Programmierungszustands-Feststellungsschaltung 190 ausgegebene
Vorwärtszählsignal
YCNTUP einen hohen Pegel bei, so daß der Adressenzähler 120 deaktiviert werden
kann (dies bedeutet, daß eine
vorher erzeugte Spaltenadresse ohne Erhöhung um nicht weniger als "1" gehalten wird). In diesem Fall bilden
der Spaltendecodierer 130, die Spaltengatterschaltung 140 und
die Redundanzschaltung 150 eine Spaltenansteuerschaltung.
-
Unter
weiterer Bezugnahme auf 3 umfaßt die Programmierungszustands-Feststellungsschaltung 190 eine
Datenzustands-Feststellungsschaltung 160, einen Oszillator 170 und
eine Programmiererfolg/-mißerfolg-Prüfschaltung
180. Wenn Datenbits Li einer Byte/Wort-Einheit, die von der Spaltengatterschaltung 140 übertragen
werden, mit einem erforderlichen Programmierungszustand verbunden
sind, erzeugt die Datenzustands-Feststellungsschaltung 160 ein
Schwingungssteuersignal LTo zum Betätigen des Oszillators 170.
Wie in 4 gezeigt, umfaßt die Datenzustands-Feststellungsschaltung 160 zwei
NICHT-UND-Gatter 161 und 162, die miteinander
gekoppelt sind, und ein NICHT-ODER-Gatter 163. Wenn Datenbits
eines Bytes L1-L8, die von der Seitenpufferschaltung 110 über die
Spaltengatterschaltung 140 übertragen werden, auf einem
hohen Pegel liegen (d.h. alle Datenbits L1-L8 mit einem Programmierungszustand
verbunden sind), schaltet das Schwingungssteuersignal LTo auf einen
hohen Pegel um. Wenn mindestens eines der Datenbits auf einem niedrigen
Pegel liegt (d.h. mindestens eines der Datenbits mit einem unzureichend
programmierten Zustand verbunden ist), schaltet das Schwingungssteuersignal
LTo auf einen niedrigen Pegel um.
-
Unter
weiterem Bezug auf 3 geht das Ausgangssignal (d.h.
das Vorwärtszählsignal
YCNTUP) des Oszillators 170 von einem niedrigen Pegel auf
einen hohen Pegel über,
wenn ein Signal PGMSCN, das eine Programmiererfolg/-mißerfolg-Prüfung meldet,
intern auf einen hohen Pegel aktiviert wird. Gemäß einem Zustand des Schwingungssteuersignals
LTo, das aus der Datenzustands-Feststellungsschaltung 160 ausgegeben
wird, gibt der Oszillator 170 das Vorwärtszählsignal YCNTUP aus, das von
einem hohen Pegel auf einen niedrigen Pegel übergeht. Wenn beispielsweise
die Datenbits L1-L8, die über
die Spaltengatterschaltung 140 übertragen werden, mit einem
Programmierungszustand verbunden sind, wird das Schwingungssteuersignal
LTo mit einem hohen Pegel erzeugt. Der Oszillator 170 erzeugt
das Vorwärtszählsignal
YCNTUP mit einem Übergang
von einem hohen auf einen niedrigen Pegel, so daß eine Spaltenadresse aus dem
Adressenzähler 120 um
nicht weniger als "1" zunehmen kann.
-
Während der
Y-ABTAST-Operation erzeugt eine Programmiererfolg/-mißerfolg-Prüfschaltung 180 ein
Hinweissignal PFi, das einen Programmiererfolg oder einen Programmiermißerfolg
meldet, als Reaktion auf die vom Adressenzähler 120 erzeugte Spaltenadresse
und das aus dem Oszillator 170 ausgegebene Vorwärtszählsignal
YCNTUP. Die Programmiererfolg/-mißerfolg-Prüfschaltung umfaßt zwei
NICHT-UND-Gatter 181 und 182, einen Inverter 183 und
ein NICHT-ODER-Gatter 184. Die Gatter 181 und 182 sind
miteinander gekoppelt. Wenn alle Bits A1-A8 der Spaltenadresse auf
einem niedrigen Pegel liegen und das Vorwärtszählsignal YCNTUP auf einem hohen
Pegel liegt, erzeugt die Programmiererfolg/-mißerfolg-Prüfschaltung 180 das
Erfolg/Mißerfolg-Hinweissignal
PFi mit einem hohen Pegel. Wenn mindestens eines der Spaltenadressenbits
auf einem niedrigen Pegel liegt, erzeugt die Schaltung 180 das
Hinweissignal PFi mit einem niedrigen Pegel ungeachtet des Logikzustands.
Wenn das Vorwärtszählsignal
YCNTUP auf einem niedrigen Pegel liegt, erzeugt die Schaltung 180 das
Hinweissignal PFi mit einem niedrigen Pegel, obwohl alle Spaltenadressenbits
auf einem hohen Pegel liegen.
-
Die
Programmierungszustands-Feststellungsschaltung 190 prüft einen
Programmierungszustand unter Verwendung von programmierten Datenbits,
die über
die Spaltengatterschaltung 140 übertragen werden, entlang einer
Spaltenadresse mit Redundanzinformation. Durch den Austausch gegen
eine redundante Bitleitung auf der Basis der Steuerung der Redundanzschaltung 150 hat
eine fehlerhafte Bitleitung keinen Einfluß auf die Schaltung 190.
Das heißt,
es ist möglich,
das Problem, daß ein Flash-Speicherbauelement
infolge einer fehlerhaften Bitleitung als Ausfallbauelement betrachtet
wird, zu beseitigen.
-
6 ist
ein Ablaufplan, der einen erfindungsgemäßen Programmieralgorithmus
zeigt. Nun wird der Betrieb eines Flash-Speicherbauelements mit
Bezug auf 6-7 genauer
beschrieben.
-
Vor
der Durchführung
einer Programmierung wird eine Löschoperation
zum Umwandeln einer Schwellenspannung von jedem Zellentransistor
in eine negative Spannung ausgeführt,
und dann wird die Programmierung gemäß dem Programmieralgorithmus
durchgeführt.
In Schritt S100 werden Daten, die programmiert werden, in eine Seitenpufferschaltung 110 geladen.
Schritt S100 geht zu Schritt S110 über, in dem eine Spaltenadresse
zurückgesetzt wird.
Das heißt,
ein Adressenzähler 120 wird
zurückgesetzt.
Anschließend
wird eine Reihe von Programmierzyklen zum Speichern der geladenen
Daten in einer Speicherzellenmatrix 100 wie folgt ausgeführt.
-
In
Schritt S120 wird eine Programmieroperation während einer vorbestimmten Zeit
ausgeführt. Schritt
S120 geht zu Schritt S130 über,
in dem die Seitenpufferschaltung 110 Datenbits erfaßt und hält, die
in die Speicherzellen einer angesteuerten Seite programmiert werden.
Das heißt,
eine Überprüfungsausleseoperation
wird ausgeführt.
Anschließend
wird eine Y-ABTAST-Operation wie folgt ausgeführt.
-
Wenn
die Y-ABTAST-Operation beginnt, geht ein Signal, das die Y-ABTAST-Operation
meldet, von einem niedrigen Pegel auf einen hohen Pegel über, wie
in 7A gezeigt. In Schritt S140 steuern ein Spaltendecodierer 130 (oder
eine Redundanzschaltung 150) und eine Spaltengatterschaltung 140 Byteeinheitsspalten
entsprechende Bitleitungen gemäß den Spaltenadressenbits
A1-A8 (z.B. "0") an. Wenn die angesteuerten
Spalten eine fehlerhafte Spalte enthalten, werden eine redundante
Bitleitung und sieben Bitleitungen angesteuert. Wenn das Signal
PGMSCN von einem niedrigen Pegel auf einen hohen Pegel übergeht,
geht ein Vorwärtszählsignal YCNTUP,
das aus einem Oszillator 170 einer Programmierungszustands-Feststellungsschaltung
ausgegeben wird, von einem niedrigen Pegel auf einen hohen Pegel über.
-
Programmierte
Datenbits einer Byteeinheit L1-L8, die in den angesteuerten Spalten
entsprechenden Seitenpuffern gehalten werden, werden über eine
Spaltengatterschaltung 140 zu einer Datenzustands-Feststellungsschaltung 160 übertragen. Wenn
geprüft
wird, daß alle
Datenbits L1-L8, die in Schritt S150 eingegeben werden, auf einem
hohen Pegel liegen, behält
ein Schwingungssteuersignal LTo, das aus der Datenzustands-Feststellungsschaltung 160 ausgegeben
wird, einen hohen Pegel bei. Dann erzeugt der Oszillator 170 das
Vorwärtszählsignal
YCNTUP mit einem Übergang
von einem hohen auf einen niedrigen Pegel als Reaktion auf das Schwingungssteuersignal
mit einem niedrigen Pegel. Eine Programmiererfolg/-mißerfolg-Prüfschaltung 180 gibt
ein Erfolg/Mißerfolg-Hinweissignal
PFi mit einem niedrigen Pegel aus, da alle Spaltenadressenbits auf
einem niedrigen Pegel liegen. Und ein Adressenzähler 120 erhöht eine
Spaltenadresse um nicht weniger als "1" als
Reaktion auf den Übergang
des Vorwärtszählsignals
YCNTUP von einem hohen auf einen niedrigen Pegel (Schritt S160).
-
In
Schritt S170 wird geprüft,
ob die zunehmende Spaltenadresse die letzte Spaltenadresse ist. Wenn
nicht, steuert eine Spaltenansteuerschaltung mit einem Spaltendecodierer 130,
einer Redundanzschaltung 150 und einer Spaltengatterschaltung 140 Byteeinheitsspalten
als Reaktion auf die zunehmende Spaltenadresse an. Es ist selbstverständlich,
daß, wenn
Byteeinheits-Bitleitungen angesteuert werden oder eine fehlerhafte
Spalte vorliegt, eine redundante Bitleitung und normale Bitleitungen
angesteuert werden können.
Die programmierten Datenbits L1-L8 werden über die
Spaltengatterschaltung 140 zur Datenzustands-Feststellungsschaltung 160 übertragen. Wenn
geprüft
wird, daß alle
eingegebenen Datenbits L1-L8 auf einem hohen Pegel liegen (mit einem
Programmierungszustand verbunden sind), wird die folgende Operation
genau wie die vorstehend angeführte
ausgeführt.
Zu diesem Zeitpunkt behält
das Ausgangssignal PFi der Programmiererfolg/-mißerfolg-Prüfschaltung 180 einen
niedrigen Pegel bei.
-
Wenn
die Datenbits immer mit einem programmierten Zustand verbunden sind,
wird die Reihe der Operationen wiederholt ausgeführt, bis alle Spaltenadressenbits,
die im Adressenzähler 120 erzeugt werden,
auf einen hohen Pegel umschalten (d.h. bis alle Spalten angesteuert
sind). Folglich geht das aus der Programmiererfolg/-mißerfolg-Prüfschaltung 180 ausgegebene
Erfolg/Mißerfolg-Hinweissignal PFi von
einem niedrigen Pegel auf einen hohen Pegel über, wenn alle Adressenbits
auf einem hohen Pegel liegen und das Vorwärtszählsignal YCNTUP von einem niedrigen
Pegel auf einen hohen Pegel übergeht,
wie in 7A gezeigt. Dies bedeutet, daß alle Zellentransistoren,
die mit der angesteuerten Seite gekoppelt sind, korrekt programmiert
sind.
-
Wenn
mindestens eines der Datenbits L1-L8 auf einem niedrigen Pegel liegt,
bevor alle Spaltenadressenbits auf einen hohen Pegel umschalten
(die letzte Spaltenadresse erzeugt wird), wird das Schwingungssteuersignal
LTo von einem hohen Pegel auf einen niedrigen Pegel deaktiviert,
wie in 7B dargestellt. Dies veranlaßt, daß das vom
Oszillator 170 erzeugte Vorwärtszählsignal YCNTUP einen hohen
Pegel beibehält,
so daß die
Spaltenadresse den zunehmenden Wert beibehält, ohne einen Wert derselben
zu erhöhen.
Und das Signal PCMSCN schaltet durch einen Übergang des Schwingungssteuersignals
LTo von einem hohen auf einen niedrigen Pegel auf einen niedrigen
Pegel um, wie in 7B gezeigt. Die Programmiererfolg/-mißerfolg-Prüfschaltung 180 erzeugt
dann das Erfolg/Mißerfolg-Hinweissignal PFi
mit einem niedrigen Pegel, da mindestens eines der Spaltenadressenbits
einen niedrigen Pegel beibehält.
In Schritt S190 wird geprüft,
ob ein Programmierzyklus, der durchgeführt wird, die letzte Programmierung
ist. Wenn ja, wird die Programmierung als Programmiermißerfolg
beendet. Wenn nicht, werden die Programmieroperation, die Überprüfungsausleseoperation
und die Y-ABTAST-Operation gemäß einem
Programmierzyklus von festgelegten Malen wiederholt ausgeführt.
-
Eine
Spaltenadresse, die Speicherzellen zuordnet, die als Programmiermißerfolg
in der Y-ABTAST-Operation des ersteren Programmierzyklus überprüft wurden,
wird als Startspaltenadresse der Y-ABTAST-Operation des letzteren
Programmierzyklus verwendet. Dies bedeutet, daß die zum Durchführen der
Y-ABTAST-Operation erforderliche Zeit verringert wird. Folglich
kann die gesamte Programmierzeit verringert werden.
-
Gemäß dem Programmieralgorithmus
der vorliegenden Erfindung werden fehlerhafte von Bitleitungen,
die in einer Speicherzellenmatrix 100 angeordnet sind, üblich gegen
redundante Bitleitungen ausgetauscht. Eine fehlerhafte Spalte ist
nicht in den Spalten enthalten, die durch eine Spaltenansteuerschaltung
(mit einem Spaltendecodierer, einer Redundanzschaltung und einer
Spaltengatterschaltung) gemäß einer
Spaltenadresse mit Redundanzinformation angesteuert werden. Datenbits
zum Prüfen
des Programmiererfolgs/-mißerfolgs
stehen mit normalen Spalten in Beziehung, so daß eine ausgetauschte fehlerhafte
Spalte keinen Einfluß auf
die Operation zum Prüfen
des Programmiererfolgs/-mißerfolgs
hat.
-
(Zweites Ausführungsbeispiel)
-
8 ist
ein Blockdiagramm, das ein Flash-Speicherbauelement
gemäß einem
zweiten Ausführungsbeispiel
der vorliegenden Erfindung zeigt. Mit Bezug auf 8 umfaßt das Flash-Speicherbauelement
zwei Speicherzellenmatrizes 200a und 200b. Jede
der Zellenmatrizes 200a und 200b ist genauso wie
in 3 dargestellt strukturiert und weist zusätzliche
Zeilen (Wortleitungen) und Spalten (Bitleitungen) auf. Und jede
von ihnen wird "Partner" genannt. Das Flash-Speicherbauelement
umfaßt
ferner Seitenpufferschaltungen 210a/210b und Spaltengatterschaltungen 220a/220b,
die den Zellenmatrizes 200a bzw. 200b entsprechen.
Ein Spaltendecodierer & eine
Redundanzschaltung 230 und ein Adressenzähler 240 sind für das Flash-Speicherbauelement
vorgesehen. Die Seitenpufferschaltungen 210a und 210b,
die Spaltengatterschaltungen 220a und 220b, der
Spaltendecodierer & die
Redundanzschaltung 230 und der Adressenzähler 240 weisen
dieselbe Struktur und Funktion wie in 3 gezeigt
auf. Daher wird deren Beschreibung hierin übergangen.
-
Das
Flash-Speicherbauelement unterstützt eine
Funktion, um zwei Speicherzellenmatrizes 200a und 200b simultan
zu programmieren. Nachstehend wird diese Funktion als "1K-Programmierung" bezeichnet. Das
Bauelement umfaßt
eine Programmierungszustands-Feststellungsschaltung 300,
die Daten DM1i und DM2i (i ist eine positive ganze Zahl) empfängt, die über die
Spaltengatterschaltungen 220a und 220b übertragen
werden, und prüft,
ob alle der Daten DM1i und DM2i mit einem Programmierungszustand
verbunden sind.
-
Üblicherweise
werden fehlerhafte der in den Speicherzellenmatrizes 200a und 200b angeordneten
Bitleitungen gegen redundante Bitleitungen ausgetauscht. Eine fehlerhafte
Spalte ist nicht in den Spalten enthalten, die durch den Spaltendecodierer & die Redundanzschaltung 230 und
die Spaltengatterschaltungen 220a und 220b gemäß einer
Spaltenadresse mit Redundanzinformation angesteuert werden. Datenbits,
die von der Seitenpufferschaltung 210a und 210b über die
Spaltengatterschaltung 220a und 220b zur Programmierungszustands-Feststellungsschaltung 300 übertragen
werden, um einen Programmiererfolg/-mißerfolg zu prüfen, betreffen normale
Spalten, die nicht fehlerhaft sind. Folglich kann eine ausgetauschte
fehlerhafte Spalte keinen Einfluß auf die Operation zum Prüfen des
Programmiererfolgs/-mißerfolgs
haben, wodurch die vorstehend erwähnten Probleme gelöst werden.
-
Unter
weiterer Bezugnahme auf 8 prüft die Programmierungszustands-Feststellungsschaltung 300,
ob die Datenbits DM1i, die über
die Spaltengatterschaltung 220a, die der Speicherzellenmatrix 200a entspricht, übertragen
werden, mit einem Programmierungszustand (z.B. "1")
verbunden sind. Und die Schaltung 300 prüft, ob die
Datenbits DM2i, die über
die Spaltengatterschaltung 220b, die der Speicherzellenmatrix 200b entspricht, übertragen
werden, mit einem Programmierungszustand (z.B. "1")
verbunden sind. Als Prüfergebnis
gibt die Schaltung 300 Signale PF_OSC, PF_FSR1 und PF_FSR2
aus. Dies wird nachstehend genauer beschrieben.
-
Mit
Bezug auf 9, in der ein Blockdiagramm
eine Programmiererfolg/-mißerfolg-Prüfschaltung
gemäß dem zweiten
Ausführungsbeispiel der
vorliegenden Erfindung zeigt, umfaßt die Programmierungszustands-Feststellungsschaltung 300 zwei
Datenzustands-Feststellungsschaltungen 310 und 312,
erste bis dritte Register 314, 316 und 328, ein
Oszillatorsteuerelement 324 und einen Oszillator 326.
-
Die
Datenzustands-Feststellungsschaltungen 310 und 312 entsprechen
den Speicherzellenmatrizes 200a bzw. 200b. Die
Schaltung 310 prüft,
ob alle Datenbits DM1i (z.B. Datenbits einer Byteeinheit), die über die
Spaltengatterschaltung 220a übertragen werden, unter den
Datenbits, die aus der entsprechenden Speicherzellenmatrix 200a ausgelesen werden,
mit einem Programmierungszustand verbunden sind. Als Prüfergebnis
gibt die Schaltung 300 ein Signal pf_dM1FAIL aus. Ähnlich dazu
prüft die Datenzustands-Feststellungsschaltung 312,
ob alle Datenbits DM2i (z.B. Datenbits einer Byteeinheit), die über die
Spaltengatterschaltung 220b übertragen werden, unter den
Datenbits, die aus der entsprechenden Speicherzellenmatrix 200b ausgelesen werden,
mit einem Programmierungszustand verbunden sind. Als Prüfergebnis
gibt die Schaltung 300 ein Signal pf_dM2FAIL aus.
-
Mit
Bezug auf 10, die ein bevorzugtes Ausführungsbeispiel
der Datenzustands-Feststellungsschaltung 310 zeigt,
besteht die Schaltung 310 aus drei NICHT-UND-Gattern 501, 502 und 505,
einem NICHT-ODER-Gatter 503 und
zwei Invertern 504 und 506. Ein Signal ACP_M1
zeigt an, ob eine Speicherzellenmatrix 200a angesteuert
wird. Wenn ja, weist das Signal ACP_M1 einen hohen Pegel auf. Wenn
alle Datenbits DM1<1> bis DM1<7> auf einer logischen "1" liegen (mit einem Programmierungszustand
verbunden sind), schaltet das Signal pf_dM1FAIL auf einen hohen
Pegel um. Dies bedeutet, daß die
Zellentransistoren, die den angesteuerten Spalten entsprechen, mit
einer Schwellenspannung programmiert sind, die einem erforderlichen Programmierungszustand
entspricht. Wenn mindestens eines der Datenbits DM1<0> bis DM1<7> auf einer logischen "0" liegt, schaltet das Signal pf_dM1FAIL
auf einen niedrigen Pegel um. Dies bedeutet, daß die Zellentransistoren, die
den angesteuerten Spalten entsprechen, unzureichend programmiert
sind. Obwohl in keiner Figur dargestellt, ist es selbstverständlich,
daß eine
Datenzustands-Feststellungsschaltung 312, die der Speicherzellenmatrix 200b entspricht,
dieselbe Struktur wie in 10 gezeigt
aufweist.
-
Unter
erneuter Bezugnahme auf 9 speichert das erste und das
zweite Register 314 und 316 die Signale pf_dM1FAIL
und pf_dM2FAIL, die aus den Datenzustands-Feststellungsschaltungen 310 bzw. 312 während des
letzten Programmierzyklus ausgegeben werden. Im letzten Programmierzyklus geben
die Register 314 und 316 die Signale pf_fM1FAIL/pf_fM2FAIL
als Reaktion auf das Signal pf_dM1FAIL und pf_dM2FAIL aus, welche
aus den Datenzustands-Feststellungsschaltungen 310 bzw. 312 ausgegeben
werden. Ein bevorzugtes Ausführungsbeispiel
des ersten Registers 314, das der Datenzustands-Feststellungsschaltung 310 entspricht, ist
in 11 dargestellt.
-
Mit
Bezug auf 11 besteht das erste Register 314 aus
einem UND-Gatter 507, drei NICHT-UND-Gattern 508, 515 und 516,
zwei Invertern 511 und 513, drei NICHT-ODER-Gattern 509, 510 und 514 und
einem Impulsgenerator 512. Die NICHT-UND-Gatter werden durch einen Setz-Rücksetz-Flipflop
(SR-Flipflop) betätigt. Signale INT_S1KPGM
und PGM_FLPMAX zeigen eine 1K-Programmieroperation bzw. einen letzten
Programmierzyklus an. Ein Signal RD_PYSCNEN zeigt den Beginn einer
Y-ABTAST-Operation als Impulssignal an. Ein Signal INT_PPWRUP wird
bei der Einschaltoperation aktiviert. Und ein Signal pf_1SCNen wird
von einem Oszillatorsteuerelement 324 geliefert. Jedes
von ihnen ist ein aktiv hohes Signal.
-
Bei
der Einschaltoperation oder Anforderung der 1K-Programmierung wird das erste Register 314 initialisiert, um
zu veranlassen, daß ein
Ausgangssignal pf_fM1FAIL des SR-Flipflops auf einen niedrigen Pegel
umschaltet. Wenn ein Programmierzyklus, der durchgeführt wird,
nicht der letzte ist (d.h. das Signal PGM_FLPMAX auf einem niedrigen
Pegel liegt), behält
das Signal pf_fM1FAIL einen initialisierten Pegel (niedrigen Pegel)
bei. Dies liegt daran, daß ein Eingangssignal
SET des NICHT-UND-Gatters 515 einen hohen Pegel beibehält. Wenn
der Zyklus nicht der letzte ist, behält folglich das Signal pf_fM1FAIL ungeachtet
des Ausgangssignals pf_dM1FAIL der Datenzustands-Feststellungsschaltung 310 einen
initialisierten Pegel bei. Wenn der Zyklus der letzte ist, geht
das Signal PGM_FLPMAX von einem niedrigen Pegel auf einen hohen
Pegel über.
Daher wird das Signal pf_fM1FAIL durch das aus der entsprechenden Datenzustands-Feststellungsschaltung 310 ausgegebene
Signal pf_dM1FAIL beeinflußt.
Wenn das Ausgangssignal pf_dM1FAIL/pf_dM2FAIL der Datenzustands-Feststellungsschaltung 310/312 beispielsweise
auf einem niedrigen Pegel liegt (d.h. mindestens einer der Zellentransistoren,
die den angesteuerten Spalten entsprechen, unzureichend programmiert
ist), geht das Eingangssignal SET des NICHT-UND-Gatters 505 von
einem hohen Pegel auf einen niedrigen Pegel über. Dies bewirkt einen Übergang
des Ausgangssignals pf_fM1FAIL/pf_fM2FAIL des Registers 314/316 von
einem niedrigen auf einen hohen Pegel.
-
Es
ist selbstverständlich,
daß das
zweite Register 316, das der Datenzustands-Feststellungsschaltung 312 entspricht,
dieselbe Struktur wie in 11 gezeigt
aufweist. Folglich wird dessen Beschreibung hierin übergangen.
Wenn die 1K-Programmierung
ausgeführt
wird und der vorliegende Programmierzyklus der letzte ist, werden
das erste und das zweite Register 314 und 316 durch
die Ausgangssignale pf_dM1FAIL bzw. pf_dM2FAIL beeinflußt.
-
Mit
erneutem Bezug auf 9 besteht das Oszillatorsteuerelement 324 aus
einer Aktivierungsschaltung 318, einer Deaktivierungsschaltung 320 und
einem Schwingungssteuersignal-Generator 322. Der Schwingungssteuersignal-Generator 322 aktiviert
ein Schwingungssteuersignal pf_1SCNen als Reaktion auf ein Aktivierungssignal
PF_START, das aus der Aktivierungsschaltung 318 ausgegeben
wird, und deaktiviert das Signal pf_1SCNen als Reaktion auf ein
Deaktivierungssignal PF_PPFEND, das aus der Deaktivierungsschaltung 320 ausgegeben
wird.
-
Mit
Bezug auf 12, in der ein bevorzugtes Ausführungsbeispiel
des Schwingungssteuersignal-Generators 322 dargestellt
ist, besteht der Generator 322 aus fünf Invertern 517, 519, 522, 523 und 524,
einem NICHT-ODER-Gatter 518,
einem Flipflop 520 und einer Verzögerungsschaltung 521.
Der Flipflop 520 dient als Zwischenspeicher und wird bei
der Einschaltoperation initialisiert. Und der Flipflop 520 wird
mit einem Übergang
eines Taktsignals RD_PYSCNEN von einem hohen auf einen niedrigen Pegel
synchronisiert, um das Aktivierungssignal PF_START, das aus der
Aktivierungsschaltung 318 ausgegeben wird, zu halten. Wenn
das Aktivierungssignal PF_START auf einem hohen Pegel liegt, geht das
Schwingungssteuersignal pf_1SCNen von einem niedrigen Pegel auf
einen hohen Pegel über.
Somit erzeugt der Oszillator 326 ein Schwingungssignal PF_OSC
mit einer vorbestimmten Periode. Wenn das Aktivierungssignal PF_START
auf einem niedrigen Pegel liegt, behält das Schwingungssteuersignal pf_1SCNen
kontinuierlich einen Anfangszustand mit einem niedrigen Pegel bei.
Somit wird der Oszillator 326 nicht betätigt. Überdies wird der Flipflop 520 bei einem Übergang
des Deaktivierungssignals PF_PPFEND, das aus der Deaktivierungsschaltung 320 ausgegeben
wird, von einem niedrigen auf einen hohen Pegel initialisiert. Die
Verzögerungsschaltung 521 dient
als Inverter und verzögert den Übergang
eines Eingangssignals DI von einem niedrigen auf einen hohen Pegel
während
einer vorbestimmten Zeit. Im Gegensatz dazu verzögert die Verzögerungsschaltung 521 dessen Übergang
von einem hohen auf einen niedrigen Pegel nicht.
-
Mit
Bezug auf 13, in der ein bevorzugtes Ausführungsbeispiel
der Aktivierungsschaltung 318 dargestellt ist, besteht
die Schaltung 318 aus zwei NICHT-UND-Gattern 525 und 526,
zwei NICHT-ODER-Gattern 527 und 530, zwei UND-Gattern 528 und 529 und
einem Inverter 531. Wenn ein Programmierzyklus, der durchgeführt wird,
nicht der letzte ist (INT_S1KPGM="H",
PGM_FLPMAX="L"), erzeugt die Aktivierungsschaltung 318 ein
Aktivierungssignal PF_START mit einem niedrigen oder hohen Pegel
als Reaktion auf die Signale pf_dM1FAIL und pf_dM2FAIL, die aus
den Datenzustands-Feststellungsschaltungen 310 und 312 ausgegeben
werden. Wenn beispielsweise mindestens eines der Signale pf_dM1FAIL
und pf_dM2FAIL auf einem hohen Pegel liegt (Programmiermißerfolg
für die
angesteuerten Daten), schaltet das Aktivierungssignal PF_START auf
einen niedrigen Pegel um. Dies veranlaßt, daß ein Schwingungssteuersignal pf_1SCNen
einen niedrigen Pegel beibehält,
so daß kein
Schwingungssignal PF_OSC vom Oszillator 326 erzeugt wird
(die Y-ABTAST-Operation wird nicht ausgeführt). Wenn beide Signale pf_dM1FAIL
und pf_dM2FAIL auf einem niedrigen Pegel liegen, (Programmiererfolg
für die
angesteuerten Daten), schaltet das Aktivierungssignal PF_START auf
einen hohen Pegel um. Dies veranlaßt, daß das Schwingungssteuersignal
pf_1SCNen auf einen hohen Pegel umschaltet, so daß der Oszillator 326 ein
Schwingungssignal PF_OSC mit einer vorbestimmten Periode ausgibt.
-
Wenn
ein Programmierzyklus, der durchgeführt wird, der letzte ist, schaltet
das Aktivierungssignal PF_START auf einen hohen Pegel um, wenn mindestens
eines der Signale pf_dM1FAIL und pf_dM2FAIL auf einem niedrigen
Pegel liegt (Programmiererfolg für
die angesteuerten Daten oder die diesen entsprechende Speicherzellenmatrix).
Dies veranlaßt,
daß das
Schwingungssteuersignal pf_1SCNen auf einen hohen Pegel umschaltet,
so daß der
Oszillator 326 das Schwingungssignal PF_OSC mit einer vorbestimmten
Periode ausgibt. Wenn alle Signale pf_dM1FAIL und pf_dM2FAIL auf einem
hohen Pegel liegen, schaltet das Aktivierungssignal PF_START auf
einen niedrigen Pegel um. Dies veranlaßt, daß das Schwingungssteuersignal pf_1SCNen
einen niedrigen Pegel beibehält,
so daß der
Oszillator 326 kein Schwingungssignal PF_OSC erzeugt (die
Y-ABTAST-Operation wird nicht ausgeführt).
-
Mit
Bezug auf 14, in der ein bevorzugtes Ausführungsbeispiel
der Deaktivierungsschaltung 320 dargestellt ist, besteht
die Schaltung 320 aus NICHT-UND-Gattern 533, 534, 536, 542, NICHT-ODER-Gattern 538 und 545,
einem ODER-Gatter 532, einem UND-Gatter 544, Invertern 537, 539, 541, 545, 546 und 548,
Impulsgeneratoren 540, 547 und einem Flipflop 543.
Wenn ein Eingangssignal von einem niedrigen Pegel auf einen hohen
Pegel übergeht,
erzeugt jeder der Impulsgeneratoren 540 und 547 ein
Signal mit einem aktiv niedrigen Impuls.
-
Bei
der Einschaltoperation oder einem Übergang eines Deaktivierungssignals
PF_PPFEND von einem hohen auf einen niedrigen Pegel wird der Flipflop 543 initialisiert.
Als Reaktion auf ein Ausgangssignal des NICHT-ODER-Gatters 538,
welches ein Schwingungssignal PF_OSC über den Inverter 537 und
ein Signal RD_PYSCNEN empfängt
(d.h. wenn das Schwingungssignal PF_OSC von einem niedrigen Pegel
auf einen hohen Pegel übergeht),
hält der initialisierte
Flipflop 543 ein Ausgangssignal des NICHT-ODER-Gatters 536.
-
Wenn
ein Programmierzyklus, der durchgeführt wird, nicht der letzte
ist (alle Signale PGM_FLPMAX, pf_fM1FAIL und pf_fM2FAIL behalten
einen niedrigen Pegel bei), schaltet ein Ausgangssignal des NICHT-UND-Gatters 536 ungeachtet
eines Signals ACP_FFYADD auf einen hohen Pegel um, wenn mindestens
eines der Signale pf_dM1FAIL und pf_dM2FAIL, die aus den Datenzustands-Feststellungsschaltungen 310 und 312 ausgegeben
werden, auf einem hohen Pegel liegt (Programmiermißerfolg
für die
angesteuerten Daten). Dies erzeugt ein Deaktivierungssignal PF_PPFEND mit
einem aktiv hohen Impuls. Wie vorstehend erwähnt, wird folglich das Schwingungssteuersignal pf_1SCNen
durch das Deaktivierungssignal PF_PPFEND mit einem aktiv hohen Impuls
auf einen niedrigen Pegel deaktiviert. Wenn vom Adressenzähler 240 eine
letzte Spaltenadresse erzeugt wird, geht ein Signal ACP_FFYRDD von
einem niedrigen Pegel auf einen hohen Pegel über. Wenn der Programmierzyklus,
der durchgeführt
wird, der letzte ist (PGM_FLPMAX="1"),
wird ein Logikpegel eines aus dem NICHT-UND-Gatter 536 ausgegebenen
Signals ungeachtet der Ausgangssignale pf_dM1FAIL und pf_dM2FAIL
durch das Signal ACP_FFYADD festgelegt. Wenn das Signal ACP_FFYADD
auf einem niedrigen Pegel liegt (die letzte Spaltenadresse nicht
erzeugt wird), schaltet das Ausgangssignal des NICHT-UND-Gatters 536 auf
einen niedrigen Pegel um. Wenn alle Ausgangssignale pf_fM1FAIL und pf_fM2FAIL
auf einem niedrigen Pegel liegen (die über die Spaltengatterschaltungen 220a und 220b übertragenen
Daten DM1i und DM2i mit einem Programmierungszustand verbunden sind),
behält
das Deaktivierungssignal PF_PPFEND unter dieser Bedingung kontinuierlich
einen niedrigen Pegel bei. Dies veranlaßt, daß das Schwingungssteuersignal pf_1SCNen
kontinuierlich einen hohen Pegel beibehält. Wenn mindestens eines der
Ausgangssignale pf_fM1FAIL und pf_fM2FAIL auf einem hohen Pegel liegt,
wird ein Deaktivierungssignal PF_PPFEND mit einem aktiv hohen Impuls
erzeugt, um das Schwingungssteuersignal pf_1SCNen auf einen niedrigen Pegel
zu deaktivieren.
-
Unter
erneuter Bezugnahme auf 9 umfaßt die Programmierungszustands-Feststellungsschaltung 300 ferner
ein drittes Register 328 und gibt Hinweissignale PF_FSR1
und PF_FSR2 aus, die für jede
der Speicherzellenmatrizes 200a und 200b einen
Programmiererfolg/-mißerfolg
anzeigen. Jedes der Signale PF_FSR1 und PF_FSR2 wird durch ein Befehlssignal
PGM auf einen hohen Pegel gesetzt, der einen Programmiermißerfolg
anzeigt. Wenn nach dem Beginn der 1K-Programmierung ein Programmierzyklus,
der durchgeführt
wird, nicht der letzte ist, werden die Signale PF_FSR1 und PF_FSR2
durch das Signal ACP_FFYADD beeinflußt. Wenn es der letzte ist,
werden die Hinweissignale PF_FSR1 und PF_FSR2 durch die Signale
ACP_FFYADD und pf_fM1FAIL und pf_fM2FAIL beeinflußt. Dies
wird später
genauer beschrieben.
-
Wenn
für die
Speicherzellen der angesteuerten Spalten in einer der Speicherzellenmatrizes
vor dem letzten Programmierzyklus ein Programmiermißerfolg
erzeugt wird, wird gemäß dem vorstehend beschriebenen
Flash-Speicherbauelement
des zweiten Ausführungsbeispiels
die Y-ABTAST-Operation für die Speicherzellenmatrizes 200a und 200b gestoppt
und dann wird der nächste
Programmierzyklus ausgeführt.
Es ist denkbar, daß eine
Spaltenadresse (die unzureichend programmierte Zellen zuordnet), die
als letzte in der Y-ABTAST-Operation in einem früheren Programmierzyklus verwendet
wird, als Startspaltenadresse der Y-ABTAST-Operation im nächsten Programmierzyklus
verwendet wird. Obwohl in einer der Speicherzellenmatrizes 200a und 200b ein
Programmiermißerfolg
erzeugt wird, während
der letzte Programmierzyklus ausgeführt wird, wird die Y-ABTAST-Operation
nicht gestoppt, um den Programmiererfolg/-mißerfolg für die andere zu bestätigen. Das
heißt,
eine Spaltenadresse wird kontinuierlich erzeugt.
-
15 ist
ein Ablaufplan, der einen Programmieralgorithmus gemäß einem
zweiten Ausführungsbeispiel
der vorliegenden Erfindung darstellt.
-
Nun
wird der Betrieb des Flash-Speicherbauelements mit Bezug auf 15-16 nachstehend genauer beschrieben.
-
Wie
vorstehend beschrieben, wird vor dem Ausführen einer Programmierung eine
Löschoperation
durchgeführt,
um eine Schwellenspannung aller Zellentransistoren in eine negative
Spannung umzuwandeln. Und dann wird eine 1K-Programmierung (dies
bedeutet, daß die
Speicherzellenmatrizes 200a und 200b simultan
programmiert werden) gemäß einem
in 6 gezeigten Programmieralgorithmus durchgeführt. Wenn
die 1K-Programmierung
beginnt, wird ein drittes Register 328 der Programmierungszustands-Feststellungsschaltung 300 initialisiert.
Das heißt,
Hinweissignale PF_FSR1 bzw. PF_FSR2 werden auf einen hohen Pegel
initialisiert (Programmiermißerfolg).
Ein Deaktivierungssignal PF_PPFEND und ein Schwingungssteuersignal
pf_1SCNen werden ebenfalls auf einen niedrigen Pegel initialisiert.
-
Daten,
die programmiert werden, werden in die Seitenpufferschaltungen 210a bzw. 210b geladen.
In Schritt S210 wird der Adressenzähler 240 zurückgesetzt.
Anschließend
wird ein Programmierzyklus (Programmieroperation, Überprüfungsausleseoperation
und Y-ABTAST-Operation)
zum Speichern der geladenen Daten in den Speicherzellenmatrizes 200a und 200b wie
folgt ausgeführt.
-
In
Schritt S220 wird die 1K-Programmieroperation für die geladenen Daten mit demselben
Verfahren wie vorstehend erwähnt
ausgeführt.
Schritt S220 geht zu Schritt S230 über, in dem Seitenpufferschaltungen 210a und 210b Datenbits
erfassen und halten, die in Speicherzellen programmiert sind, welche einer
angesteuerten Seite der Speicherzellenmatrizes 200a und 200b entsprechen.
Das heißt,
eine Überprüfungsausleseoperation
wird ausgeführt.
Anschließend
wird eine Y-ABTAST-Operation wie folgt ausgeführt.
-
Wenn
die Y-ABTAST-Operation beginnt, wird, wie in 16A gezeigt,
ein impulsförmiges
Signal RD_PYSCNEN zum Melden des Starts der Y-ABTAST-Operation erzeugt.
Unter den Spalten von jeder der Speicherzellenmatrizes 200a und 200b werden
Byteeinheitsspalten (Seitenpuffer, die Bitleitungen oder Spalten
entsprechen) durch den Spaltendecodierer & die Redundanzschaltung 230 und die
Spalten-Durchgangsgatterschaltungen 220a und 220b gemäß einer
Spaltenadresse, die früher
initialisiert wurde, angesteuert. Wenn die angesteuerten Spalten,
die jeder der Speicherzellenmatrizes 200a und 200b entsprechen,
eine fehlerhafte Spalte enthalten, werden eine redundante Bitleitung
und sieben Bitleitungen pro Speicherzellenmatrix angesteuert (Schritt
S240). Die Daten (nachstehend werden DM1i und DM2i als erste Daten
bzw. zweite Daten bezeichnet), die in den Seitenpuffern der angesteuerten Spalten
gehalten werden, die jeder der Speicherzellenmatrizes 200a und 200b entsprechen,
werden zu den entsprechenden Datenzustands-Feststellungsschaltungen 310 bzw. 312 übertragen.
-
In
Schritt S250 wird geprüft,
ob alle Bits der ersten und zweiten Daten DM1i und DM2i mit einem Programmierungszustand
(logische "1") verbunden sind.
Wenn ja, schaltet jedes der Signale pf_dM1FAIL und pf_dM2FAIL auf
einen niedrigen Pegel um, der die Tatsache anzeigt, daß die angesteuerten
Daten korrekt programmiert sind. Wenn das Aktivierungssignal PF_START
auf einem hohen Pegel liegt, werden die Daten DM1i und DM2i in einem
Flipflop 520 des Schwingungssteuersignal-Generators 322 bei
einem Übergang
eines Signals RD_PYSCNEN von einem hohen auf einen niedrigen Pegel
gehalten. Somit geht das Schwingungssteuersignal pf_1SCNen von einem
niedrigen Pegel auf einen hohen Pegel über, um den Oszillator 326 zu
betätigen.
Beim Übergang eines
Schwingungssignals PF_OSC von einem hohen auf einen niedrigen Pegel
erhöht
der Adressenzähler 240 eine
Spaltenadresse um nicht weniger als "1",
um die nächsten
Spalten anzusteuern (Schritt S260).
-
In
Schritt S270 wird geprüft,
ob eine aus dem Adressenzähler 240 ausgegebene
Spaltenadresse die letzte ist. Wenn nicht, werden die vorangehenden Schritte
(S240, S250 und S260) wiederholt ausgeführt, bis alle Spalten angesteuert
sind (d.h. eine letzte Spalte erzeugt wird). Wenn ja, geht ein Signal ACP_FFYADD
von einem niedrigen Pegel auf einen hohen Pegel über. Folglich schalten alle
aus dem dritten Register 328 ausgegebenen Hinweissignale PF_FSR1
und PF_FSR2 auf einen niedrigen Pegel um (Programmiermißerfolg).
Wie in 16A gezeigt, werden anschließend das
Deaktivierungssignal PF_PPFEND und das Schwingungssteuersignal pf_1SCNen
gemäß einem Übergang
eines Signals ACP_FFYADD von einem niedrigen auf einen hohen Pegel
nacheinander deaktiviert.
-
Während mit
Bezug auf 16B die Y-ABTAST-Operation irgendeines
Programmierzyklus ausgeführt
wird (oder ein Signal PGM_FLPMAX einen niedrigen Pegel beibehält), werden
die ersten und zweiten Daten DM1i und DM2i zu den Datenzustands-Feststellungsschaltungen 310 bzw. 312 übertragen.
Wenn geprüft
wird, daß irgendwelche
der Daten DM1i und DM2i (z.B. die zweiten Daten DM2i) unzureichend
programmiert sind (Schritt S250), geht ein Ausgangssignal pf_dM2FAIL
der Datenzustands-Feststellungsschaltung 312, die den zweiten Daten
DM2i entspricht, von einem niedrigen Pegel auf einen hohen Pegel über. Da
ein Programmierzyklus, der durchgeführt wird, nicht der letzte
ist (d.h. das Signal PGM_FLPMAX einen niedrigen Pegel beibehält), geht
ein Eingangssignal ID des Flipflops 543 der Deaktivierungsschaltung 320 (d.h.
ein Ausgangssignal des NICHT-UND-Gatters 536) von einem
niedrigen Pegel auf einen hohen Pegel über. Wie in 16B gezeigt, erzeugt die Deaktivierungsschaltung 320 folglich
ein Deaktivierungssignal PF_PPFEND mit einem aktiv hohen Impuls.
Dies führt
zu einem Übergang
des Schwingungssteuersignals pf_1SCNen von einem hohen auf einen
niedrigen Pegel. Die Y-ABTAST-Operation des Programmierzyklus wird
durch die vorangehende Prozedur beendet.
-
Wenn
mit Bezug auf 16C geprüft wird, welche der ersten
und zweiten Daten DM1i und DM2i (z.B. die zweiten Daten DM2i) unzureichend
programmiert sind (Schritt S250), während ein Signal PGM_FLPMAX
einen hohen Pegel beibehält
(d.h. die Y-ABTAST-Operation des letzten Programmierzyklus ausgeführt wird),
schaltet ein Ausgangssignal pf_dM2FAIL der Datenzustands-Feststellungsschaltung 312 auf
einen hohen Pegel um. Da ein Programmierzyklus, der ausgeführt wird,
der letzte ist, wird das Signal pf_dM2FAIL mit hohem Pegel im zweiten Register 316 gespeichert.
Ebenso wird das Signal pf_dM1FAIL mit niedrigem Pegel im ersten
Register 314 gespeichert. Folglich behält ein Ausgangssignal pf_fM1FAIL
des ersten Registers 314 einen niedrigen Pegel bei, während ein
Ausgangssignal pf_fM2FAIL des zweiten Registers 316 von
einem niedrigen Pegel auf einen hohen Pegel übergeht. Obwohl ein Signal
pf_dM2FAIL auf einen hohen Pegel umschaltet, behält ein Deaktivierungssignal
PF_PPFEND kontinuierlich einen niedrigen Pegel bei. Dies liegt daran, daß der Programmierzyklus,
der durchgeführt
wird, der letzte ist und das Signal ACP_FFYADD auf einem niedrigen
Pegel liegt. Daher behält
das Deaktivierungssignal PF_PPFEND einen niedrigen Pegel bei, da
eines der Eingangssignale pf_fM1FAIL und pf_fM2FAIL auf einem hohen
Pegel liegt. Obwohl die Speicherzellenmatrix als Programmiermißerfolg
geprüft
wurde (Schritt S290), erhöht
der Adressenzähler 240 eine
Spaltenadresse um nicht weniger als "1" als
Reaktion auf den Übergang
eines Schwingungssignals PF_OSC von einem hohen auf einen niedrigen
Pegel, um die nächsten
Spalten der Speicherzellenmatrix 200a anzusteuern. Danach
werden die vorstehend beschriebenen Schritte wiederholt ausgeführt, bis
die letzte Spaltenadresse erzeugt wird. Wenn die letzte Spaltenadresse
erzeugt wird (d.h. das Signal ACP_PFFYADD von einem hohen Pegel auf
einen niedrigen Pegel übergeht),
erzeugt die Deaktivierungsschaltung 320 ein impulsförmiges Deaktivierungssignal
PF_PPFEND. Folglich wird das Schwingungssteuersignal pf_1SCNen auf
einen niedrigen Pegel deaktiviert, um den Oszillator 326 nicht
zu betätigen.
-
Wenn
das Signal ACP_FFYADD von einem niedrigen Pegel auf einen hohen
Pegel übergeht, schaltet
ein Ausgangssignal PF_FSR1 des dritten Registers 328 durch
ein aus dem ersten Register 314 ausgegebenes Signal pf_fM1FAIL
mit niedrigem Pegel auf einen niedrigen Pegel um, wie in 16C gezeigt. Dies bedeutet, daß die mit der Speicherzellenmatrix 200a in
Beziehung stehende Programmieroperation gelungen ist. Ein Ausgangssignal
PF_FSR2 des dritten Registers 328 behält durch ein aus dem zweiten
Register 316 ausgegebenes Signal pf_fM2FAIL mit einem hohen
Pegel kontinuierlich einen hohen Pegel bei, wie in 16C gezeigt. Dies bedeutet, daß die mit der Speicherzellenmatrix 200a in
Beziehung stehende Programmieroperation mißlungen ist.
-
Wenn
mit Bezug auf 16D beispielsweise die zweiten
Daten DM2i als unzureichend programmiert geprüft werden, während ein
Signal PGM_FLPMAX einen hohen Pegel beibehält (d.h. die Y-ABTAST-Operation
eines letzten Programmierzyklus ausgeführt wird) (Schritt S250), schaltet
ein Ausgangssignal pf_dM2FAIL der Datenzustands-Feststellungsschaltung 312 auf
einen hohen Pegel um. Da ein Programmierzyklus, der durchgeführt wird,
der letzte ist, wird ein Signal pf_dM2FAIL mit niedrigem Pegel im
zweiten Register 316 gespeichert. Ebenso wird ein Signal
pf_dM1FAIL mit niedrigem Pegel im ersten Register 314 gespeichert.
Folglich behält
das Ausgangssignal pf_fM1FAIL des ersten Registers 314 einen
niedrigen Pegel bei, während
das Ausgangssignal pf_fM2FAIL des zweiten Registers 316 von einem
niedrigen Pegel auf einen hohen Pegel übergeht. Obwohl das Signal pf_dM2FAIL
auf einen hohen Pegel umschaltet, behält das Deaktivierungssignal
PF_PPFEND kontinuierlich einen niedrigen Pegel bei. Dies liegt daran, daß der Programmierzyklus,
der durchgeführt
wird, der letzte ist und das Signal ACP_FFYADD auf einem niedrigen
Pegel liegt. Das Deaktivierungssignal PF_PPFEND behält kontinuierlich
einen niedrigen Pegel bei, da nur eines der Signale pf_fM1FAIL und pf_fM2FAIL,
die aus dem UND-Gatter 536 eingegeben werden, auf einem
hohen Pegel liegt. Obwohl die Speicherzellenmatrix 200b als
Programmiermißerfolg
geprüft
wird, erhöht
der Adressenzähler 240 folglich
eine Spaltenadresse um nicht weniger als "1" als Reaktion
auf einen Übergang
des Schwingungssignals PF_OSC von einem hohen auf einen niedrigen Pegel,
um die nächsten
Spalten der Speicherzellenmatrix 200a anzusteuern, wie
in 16C gezeigt. Dies bedeutet, daß die mit der Speicherzellenmatrix 200b in
Beziehung stehende Programmieroperation mißlungen ist.
-
Wenn
die ersten Daten DM1i vor der Erzeugung der letzten Spaltenadresse
im letzten Programmierzyklus als unzureichend programmiert geprüft werden,
schaltet das Signal pf_dM1FAIL auf einen hohen Pegel um. Da der
Programmierzyklus, der durchgeführt
wird, der letzte ist, wird ein Signal pf_dM1FAIL mit hohem Pegel
ebenfalls im ersten Register 314 gespeichert. Dies führt zu einem Übergang des
Ausgangssignals pf_fM1FAIL des ersten Registers 314 von
einem niedrigen auf einen hohen Pegel. Da alle Eingangssignale pf_fM1FAIL
und pf_fM2FAIL auf einem hohen Pegel liegen, wie in 16D gezeigt, geht das Deaktivierungssignal PF_PPFEND von
einem niedrigen Pegel auf einen hohen Pegel über. Folglich wird das Schwingungssteuersignal pf_1SCNen
auf einen niedrigen Pegel deaktiviert. Das heißt, der Oszillator 326 wird
nicht mehr betätigt. Da
jedes der Signale pf_fM1FAIL und pf_fM2FAIL, die aus dem ersten
und dem zweiten Register 314 und 316 ausgegeben
werden, einen hohen Pegel beibehält,
behalten die aus dem dritten Register 328 ausgegebenen
Hinweissignale PF_FSR1 und PF_FSR2 einen anfänglich festgelegten Zustand
bei. Dies bedeutet, daß alle
mit den Speicherzellenmatrizes 200a und 200b in
Beziehung stehenden Programmierungen mißlungen sind.
-
Da,
wie vorstehend erläutert,
eine Programmiererfolg/-mißerfolg-Prüfoperation
unter Verwendung von Datenbits, die durch eine Spaltengatterschaltung
gemäß einer
Spaltenadresse mit Redundanzinformation angesteuert werden, durchgeführt wird,
hat eine fehlerhafte Bitleitung (Bitleitungen) keinen Einfluß auf die
Operation. Daher wird ein nicht-flüchtiges Halbleiterspeicherbauelement
nicht als Ausfallbauelement betrachtet, so daß eine Ausbeuteverschlechterung
verhindert wird.