-
HINTERGRUND
DER ERFINDUNG
-
Die vorliegende Erfindung bezieht
sich auf eine nichtflüchtige
Speichermatrix in Form einer integrierten Schaltung wie etwa auf
eine löschbare,
elektrisch programmierbare Flash-Festwertspeichermatrix (Flash-EPROM-Matrix
oder Flash-EEPROM-Matrix).
Insbesondere bezieht sich die Erfindung auf zwei On-Chip-Steuerungsvorgänge: (a)
Lebensdauertest dieser Speicher für die Programmierung, die Löschung und/oder
die Verdichtung und (b) Finden der maximalen und/oder minimalen
Leistungsversorgungsspannung zum Betrieb dieser Speicher.
-
Flash-EPROMs vom hier erörterten
Typ sind beschrieben in: (a) "A
Single Transistor EEPROM cell and its implementation in a 512K CMOS
EEPROM", S. Mukherjee
u. a., IEDM 1985 (S. 616–619),
und außerdem
erörtert
im US-Patent Nr. 4.698.787 und in (b) "A 90ns 100K Erase/Program Cycle Megabit
Flash Memory", V.
Kynett u. a., ISSCC 1989 (S. 140–141).
-
Frühe Flashspeicher erforderten
komplexe Befehle von einem Mikroprozessor und/oder -Prüfgerät auf einem
separaten Chip beim Ausführen
von Schreib- und Löschoperationen
einschließlich
der Schreib- und Löschoperationen,
die während
der Anfangsprüfverfahren
ausgeführt
werden. Statt eines einfachen Löschbefehls
vom Mikroprozessor lieferte der Mikroprozessor z. B. solche Informationen
wie die Länge
des Löschimpulses,
wobei er eine Prüfroutine
zum Prüfen
auf korrekte Löschung
lieferte. Statt eines einfachen Prüfzyklusbefehls vom Prüfgerät gab das
Prüfgerät wiederholt
Schreib- und Löschoperationen
an den Speicher aus. Das Prüfgerät zeichnete
außerdem
die Anzahl der Zyklen auf, die ein Flash-Speicher überstand.
Während
die Befehle für
Schreib/Lösch-
und Prüfoperationen
geändert
werden konnten, um Herstellungsänderungen
unter Chips desselben Typs auszugleichen, mussten diese Änderungen
von Systemanwendern oder Prüfingenieuren
programmiert werden und erforderten zusätzliche Prüfzeit während der Herstellung.
-
Da sich die Flash-Speichertechnologie
entwickelt und da sich die Speicherkapazität erhöht, hat die Nachfrage von Prüfingenieuren
nach zunehmender Erleichterung des Prüfens, verringerter Testzeit
und verringerter Testhardware zur Entwicklung von automatisierten
Testbefehlen für
Programmier/Löschoperaionen und
für das
Finden von parametrischen Daten von Flash-Speichern geführt. Autoatisierte
Programmier-/Lösch- und
Prüfsteuer-Befehle
sind in die Schreibzustandsmaschinen- (WSM-) Architektur dieser
Flash-EPROMs eingebettet. Die Codes für diese Steuerbefehle sind
in einem Kontroll-Festwertspeicher (CROM) in der WSM gespeichert.
Mit automatisierten in die WSM eingebetteten Programmier/Lösch- und
Testbefehlen müssen
die chipexternen Prüfgeräte nur einen
einfachen Befehl liefern. Das heißt, das chipexterne Prüfgerät muss keine Impulsängenanweisungen
und andere Informationen liefern, die notwendig sind, um die Schreib/Lösch- oder Prüfoperationen
auszuführen.
Die eingebetteten Schreib/Lösch-
und Prüfsteuer-Befehle
ermöglichen
einem Speicherhersteller, On-Chip-Schreib/Lösch- und Prüfsteuer-Befehle zum Ausgleichen
von Herstellungsänderungen
zu erzielen.
-
Die Gestaltung eines Mikroprozessors,
der alle Merkmale eines chipexternen Mikroprozessors oder Prüfgeräts aufweist,
auf einem Speicherchip ist nicht praktisch, weil Speicherchips im
Allgemeinen begrenzten Raum außerhalb
der Speichermatrix aufweisen. Eine Mikrocode-ROM-basierte Ausführung, die
maximale Flexibilität
mit Hilfe einer relativ kleinen Chip-Fläche erzielt, um mehrere Prüfoperationen
oder -verfahren auszuführen,
ist jedoch eine Ausführung
des Standes der Technik von eingebetteten Steueranweisungen. Die ROM-basierte
Ausführung
des Standes der Technik enthält
einen Kontroll-Festwertspeicher (CROM), der Mikrobefehle und Steuerdaten
enthält,
einen Programmzähler-Multiplexer
(PCM), um Befehle aus dem Kontroll-Festwertspeicher (CROM) auszuwählen, einen
Mikrobefehlsdecodierer (MID), einen Eingangsprüf-Eingangsmultiplexer (TIM),
um Steuersignale zu prüfen,
ein optionales Zustandsausgaberegister (SOR), um Steuersignale zu
erzeugen, und einen optionalen Unterroutinen-Stapel (SS), um Funktionsaufrufe
zu ermöglichen.
Eine Mikrocode-ROM-basierte Ausführung
des vorangehenden Typs ist in dem US-Patent Nr. 5.359.570 und in
dem US-Patent Nr. 5.491.660 beschrieben, wobei das Letztere die
Basis für
den Oberbegriff der Ansprüche
1 und 6 bildet.
-
ZUSAMMENFASSUNG
DER ERFINDUNG
-
Gemäß der vorliegenden Erfindung
werden ein Verfahren, wie es in Anspruch 1 definiert ist, und eine Schaltung,
wie sie in Anspruch 6 definiert ist, geschaffen.
-
Der On-Chip-gesteuerte Lebensdauertest
und der parametrische Eigenschaftsprüfungstest, die in dieser Erfindung
beschrieben sind, sparen Testzeit und in vielen Fällen Hardware.
Beide Tests werden nach der Übertragung
eines einzelnen Befehls vom Prüfgerät an den
Chip automatisch auf dem Speicherchip ausgeführt. Dies verringert die Belastung
des Prüfgeräts einschließlich der
Verringerung der Zeit, die dafür
benötigt wird,
das Prüfgerät einzurichten,
um den Ablauf auszuführen,
und der benötigten
Zeit, um den Test zu überwachen.
Das heißt,
die automatisierten Prüfverfahren
dieser Erfindung laufen schneller, weil das On-Chip-Prüfgerät weniger extern erteilte Befehle
und weniger externe Zustandsprüfungen
erfordert. Die Verfahren dieser Erfindung ermöglichen, dass das externe Prüfgerät eine kleinere
Anzahl von Eingabe/Ausgabe-Anschlussstiften aufweist. Weil die Testdaten
intern eingerichtet werden, ohne durch eine große Anzahl von Eingabe-/Ausgabedaten-Anschlussstiften
zu gehen, sind die Kosten der externen Testhardware verringert. Genauer
durchläuft
der Lebensdauertest, der außerdem "Autocycle"-Test genannt wird,
automatisch mittels irgendeiner Kombination aus Programmierungs-,
Löschungs-
und/oder Verdichtungsoperationen zyklisch den Speicherchip, bis
entweder ein Fehler ermittelt ist oder bis die erforderliche Anzahl
der Prüfzyklen
beendet ist. Der parametrische Eigenschaftsprüfungstest, der außerdem "AutoVccMax/Min"-Testbetriebsart
genannt wird, bestimmt automatisch den VccMax-Wert oder den VccMin-Wert
für eine
Operation, welche die im Speicherchip gespeicherten Daten verwendet.
-
Der Lebensdauertest verwendet eine
Mikroablaufsteuerung, die ein On-Chip-Beobachtungsregister für eingebaute
Logikblöcke
(BILBO) enthält,
um Informationen in einem Kontroll-Festwertspeicher (CROM) zu prüfen. Die
Ausgabedaten aus dem Kontroll-Festwertspeicher werden in einem BILBO-Register,
das für
die Verwendung als ein Zähler
für einen
großen
Zählwert
verbessert ist, zwischengespeichert. Die Mikroablaufsteuerung empfängt einen
Lebensdauertest-Befehl und überwacht
mit Hilfe des verbesserten Zählers
die Anzahl der On-Chip-gesteuerten Lebensdauertest-Zyklen. Während des
parametrischen Tests bewirkt ein On-Chip-Digital-Analog-Umsetzer schrittweise Änderungen
in der Versorgungsspannung sowohl für die Datenzellen als auch
für die
Referenzzellen des Speichers. Die Mikroablaufsteuerung empfängt einen
Parameterdatentest-Befehl und führt
den Parameterdatentest aus.
-
KURZBESCHREIBUNG
DER ZEICHNUNG
-
Die vorliegende Erfindung wird nun
beispielhaft mit Bezug auf die beigefügte Zeichnung weiter beschrieben
in der:
-
1 ein
Stromlaufplan einer Speicherzellenmatrix in Teilblockform ist;
-
2 eine
Schaltung in Blockform ist, die eine Ausführungsform eines Steuerverfahrens
des Standes der Technik für
die Programmierung, die Löschung
oder die Verdichtung der Speicherzellenmatrix zeigt;
-
3 eine
Schaltung in Blockform ist, die eine Ausführungsform eines typischen
Aufbaus für
die parametrische Eigenschaftsprüfung
eines Speicherchips zeigt;
-
4 ein
Ablaufplan in Blockform ist, der einen beispielhaften automatisierten
Lebensdauertest-Ablauf zeigt, der außerdem als die "Autocycle"-Betriebsart des Tests bekannt ist;
-
5 eine
Schaltung in Blockform ist, die eine Ausführungsform zeigt, die einen
zusätzlichen
Zähler durch
das Modifizieren eines vorhandenen Zählers erzeugt;
-
6 eine
Schaltung in Blockform ist, die ein On-Chip-Steuerverfahren zum
Finden des VccMax oder des VccMin für eine Operation, welche die
in der Speicherzellenmatrix gespeicherten Daten verwendet, zeigt; und
-
7 ein
Ablaufplan in Blockform ist, der einen beispielhaften automatisierten
parametrischen Eigenschaftsprüfungstest-Ablauf
zeigt, der außerdem
als die "AutoVccMax/Min"-Betriebsart des
Tests bekannt ist.
-
AUSFÜHRLICHE
BESCHREIBUNG DER ERFINDUNG
-
In 1 ist
eine Beispielmatrix von Speicherzellen, die ein wesentlicher Bestandteil
eines Speicherchips ist, zur Veranschaulichung der Verwendung der
Verfahren dieser Erfindung gezeigt.
-
Jede Zelle ist ein Transistor 10 mit
schwebendem Gate, mit einer Source 11, einem Drain 12,
einem schwebenden Gate 13, einem Steuergate 14.
Jedes der Steuergates 14 in einer Zeile von Zellen 10 ist
mit einer Wortleitung 15 verbunden, und jede der Wortleitungen 15 ist
mit einem Wortleitungsdecodierer 16 verbunden. Jede der
Sources 11 in einer Reihe von Zellen 10 ist mit
einer Source-Leitung 17 verbunden.
Jeder der Drains 12 in einer Spalte von Zellen 10 ist
mit einer Drainspalten-Leitung 18 verbunden. Jede der Source-Leitungen 17 ist über eine
gemeinsame Spalten-Leitung 17a mit einem Spaltendecodierer 19 verbunden,
und jede der Drainspalten-Leitungen 18 ist mit dem Spaltendecodierer 19 verbunden.
-
In der Lesebetriebsart dient der
Wortleitungsdecodierer 16 dazu, in Reaktion auf Wortleitungs-Adressensignale
auf den Leitungen 20R und auf Signale von der Lese/Schreib/Lösch-Steuerschaltung 21 (oder
von dem Mikroprozessor 21) eine im Voraus gewählte positive
Spannung Vcc (ca. +5 V) an die ausgewählte Wortleitung 15 anzulegen
und eine niedrige Spannung (Erde oder Vss) an die inaktivierten
Wortleitungen 15 anzulegen. Der Spaltendecodierer 19 dient
dazu, eine im Voraus gewählte
positive Spannung Vsen (ca. +1 V) wenigstens an die ausgewählte Drainspalten-Leitung 18 anzulegen
und eine niedrige Spannung (0 V) an die Source-Leitung 17 anzulegen.
Der Spaltendecodierer 19 dient außerdem dazu, die ausgewählte Drainspalten-Leitung 18 der
ausgewählten
Zelle 10 in Reaktion auf Signale auf den Adressenleitungen 20R mit
dem DATEN-EINGANGS/AUS-GANGS-Anschluss 22 zu
verbinden. Der leitende oder nicht leitende Zustand der Zelle 10,
die mit der ausgewählten
Drainspalten-Leitung 18 und mit der ausgewählten Wortleitung 15 verbunden
ist, wird von einem (nicht gezeigten) Leseverstärker ermittelt, der mit dem
DATEN-EINGANGS/AUSGANGS-Anschluss 22 verbunden ist.
-
Während
einer Flash-Löschbetriebsart
dient der Spaltendecodierer 19 dazu, alle Drainspalten-Leitungen 18 schwebend
zu lassen (verbunden mit einer hohen Impedanz wie etwa mit einem
Feldeffekttransistor, der im "AUS"-Zustand vorgespannt
ist). Der Wortleitungsdecodierer 16 dient dazu, alle Wortleitungen 15 mit Vss
zu verbinden, die Erde oder 0 V sein kann. Der Spaltendecodierer 19 dient
außerdem
dazu, eine positive Spannung Vee (ca. +10 V bis +15 V) an alle Source-Leitungen 17 anzulegen.
Diese Löschspannungen
erzeugen eine ausreichende Feldstärke über der Gate-Oxid-Zone, um
einen Fowler-Nordheim-Tunnelstrom zu erzeugen, der Ladung aus dem
schwebenden Gate 13 überträgt und die
Speicherzelle 10 löscht.
Da das Potential an der Wortleitung 15 bei der Vergleichsspannung
Vss liegt, bleibt die Zelle 10 während des Löschens im nicht leitenden Zustand. Übermäßig gelöschte Zellen
werden von einem mehrerer Verdichtungsverfahren korrigiert.
-
In einer Schreib- oder Programmierbetriebsart
kann der Wortleitungsdecodierer 16 dazu dienen, in Reaktion
auf Wortleitungs-Adressensignalen in den Befehlszeilen 20R und
auf Signale von der Lese/Schreib/Lösch-Steuerschaltung 21 (oder
vom Mikroprozessor 21) eine im Voraus gewählte erste
Programmierspannung Vpp (ca. +12 V) an die ausgewählte Wortleitung 15 zu
leiten, die ein ausgewähltes
Steuergate 14 enthält.
Der Spaltendecodierer 19 dient außerdem dazu, eine zweite Programmierspannung
Vb1 (ca. +5 bis +10 V) an eine ausgewählte Drainspalten-Leitung 18 und
folglich an den Drain 12 der ausgewählten Zelle 10 zu
leiten. Die Source-Leitungen 17 sind mit dem Referenzpotential
Vss, das Erde sein kann, verbunden. Alle nicht ausgewählten Drainspalten-Leitungen 18 sind
mit dem Referenzpotential Vss verbunden oder schwebend. Diese Programmierspannungen
erzeugen einen Hochstrom- (Drain 12 bis Source 11)
Zustand in dem Kanal der ausgewählten
Speicherzelle 10, was nahe dem Drainkanalübergang
zu der Erzeugung von heißen
Kanalelektronen und Lawinendurchbruchelektronen führt, die über das
Kanaloxid in das schwebende Gate 13 der ausgewählten Zelle 10 eingespeist
werden. Die Programmierzeit wird ausreichend lang ausgewählt, um
das schwebende Gate 13 mit einer negativen Programmierladung
von etwa –2
V bis –6
V in Bezug auf den Kanalbereich (mit dem Steuergate 14 bei
0 V) zu programmieren. Bei den in Übereinstimmung mit der Beispielausführungsform
hergestellten Speicherzellen 10 ist der Kopplungskoeffizient
zwischen einem Steuergate 14/einer Wortleitung 15 und
einem schwebenden Gate 13 etwa 0,6. Deshalb ordnet eine
Programmierspannung Vpp von 12 V, z. B. an einer ausgewählten Wortleitung 15,
die das ausgewählte
Steuergates 14 enthält,
eine Spannung etwa +7,2 V auf dem ausgewählten schwebenden Gate 13 an.
Die Spannungsdifferenz zwischen dem schwebenden Gate 13 (bei
ca. +7,2 V) und der geerdeten (ca. 0 V) Source-Leitung 17 ist
ungenügend,
einen Fowler-Nordheim-Tunnelstrom über das
Gate-Oxid zwischen der Source 11 und dem schwebendem Gate 13 zu
bewirken, um das schwebende Gate 13 einer ausgewählten oder
nicht ausgewählten
Zelle 10 zu laden. Das schwebende Gate 13 der
ausgewählten
Zelle 10 wird mit während
des Programmierens eingespeisten heißen Elektronen geladen, und
die Elektronen wiederum machen den Source-Drain-Weg unter dem schwebenden
Gate 13 der ausgewählten
Zelle 10 mit +5 V an seinem Steuergate nicht leitend, ein
Zustand, der als ein "Null"-Bit gelesen wird.
Die nicht programmierten Zellen 10 weisen unter dem schwebenden Gate 13 Source-Drain-Wege, die mit +5
V an ihren Steuergates leitend sind, auf, wobei diese Zellen 10 als "Eins"-Bits gelesen werden.
-
Zweckmäßigkeitshalber ist unten in
der TABELLE I eine Tabelle von Lese-, Schreib- und Löschspannungen
angegeben:
-
-
2 zeigt
eine Ausführungsform
des Standes der Technik der Schaltungsanordnung, die in dem US-Patent
Nr. 5.491.660 für
die Steuerung der Programmierung, der Löschung oder der Verdichtung
der in 1 gezeigten Speicherzellenmatrix
beschrieben ist, in Blockschaltbildform. Die Schaltung der 2 enthält Folgendes:
- a) Einen Mikroprogramm-Festwertspeicher oder Kontroll-Festwertspeicher
CROM. Der Mikroprogramm-ROM CROM kann eine nichtflüchtige Matrix
aus löschbaren
Zellen 10 oder eine andere Art einer nichtflüchtigen
Matrix sein. Die Ausgänge
des CROM, die durch die Beobachtungsregister für eingebaute Logikblöcke gehen,
die nachfolgend beschrieben werden, werden für die Mikrosteuerung und für das Steuern
des internen Schaltungsbetriebs des Flash-EPROMs aus 1 verwendet.
- b) Beobachtungsregister für
eingebaute Logikblöcke
(BILBO). Die BILBO-Register werden verwendet, um zu prüfen, ob
die Informationen im Mikroprogrammspeicher richtig sind, und um
Ausgabedaten aus dem CROM zwischenzuspeichern. Die BILBO-Register
sind als ein Zähler
und/oder als eine Schiebeeinrichtung verwendbar. Die zwischengespeicherten
Ausgabedaten enthalten z. B. Ausgaben, welche die Aktivierung oder
Deaktivierung der Hochspannungsschaltungen auf dem Chip, den Befehl
des Adressenzählers
und die Decodierschaltungsanordnung sowie die Aktivierung der Datenvergleichsschaltungsanordnung
angeben.
- c) Eine Mikroablaufsteuerungs-Schaltung (MC). Die Mikroablaufsteuerungs-
(MC) Schaltung enthält
einen Programmzähler
PC; einen Inkrementierer INC; einen Programmzähler-Multiplexer PCM; einen
Mikrobefehlsdecodierer MID; einen Testeingangs-Multiplexer TIM;
einen Unterroutinen-Stapel SS, der einen ersten Stapelmultiplexer
SMUX1, ein erstes Stapelregister SREG1, einen zweiten Stapelmultiplexer
SMUX0 und ein zweites Stapelregisters SREG0 enthält; und ein Zustandsausgaberegister
(SOR).
-
Der Programmzähler PC enthält die Adresse
des momentan adressierten Mikrocodeworts.
-
Der Inkrementierer INC nimmt den
momentanen Wert des Programmzählers
PC und erzeugt aus ihm die nächste
Mikrocode-Adresse.
-
Der Programmzähler-Multiplexer PCM dieses
Beispiels ist ein Drei-zu-Eins-Multiplexer.
Unter der Steuerung des (im nächsten
Absatz beschriebenen) Mikrobefehlsdecodierers (MID) wählt der
Programmzähler-Multiplexer
PCM den Mikroprogrammspeicher CROM, entweder ein Feld aus dem momentanen
Mikrocodewort (dem momentanen Wert des zweiten Stapelregisters SREG0)
oder aus dem Inkrementierer INC, als die Adresseingabe aus.
-
Der Mikrobefehlsdecodierer (MID)
decodiert das Operationscodefeld des Mikrocodeworts aus dem Testeingangs-Multiplexer
TIM und andere Eingaben. Der MID steuert den Eingangszustand des
Programmzähler-Multiplexers
PCM, des ersten Stapelmultiplexers SMUX1, des zweiten Stapelmultiplexers
SMUX0 und des Zustandsausgaberegisters SOR.
-
Der Testeingangs-Multiplexer TIM
wählt eine
von n Eingaben (z. B. 32 Eingaben) aus, um auf bedingte Verzweigungsbefehle
zu testen.
-
Der Unterroutinen-Stapel SS enthält einen
ersten Stapelmultiplexer SMUX1, ein erstes Stapelregister SREG1,
einen zweiten Stapelmultiplexer SMUX0 und ein zweites Stapelregister
SREG0. Der Unterroutinen-Stapel SS ermöglicht die Verschachtelung
von Unterroutinen-Aufrufen der Tiefe zwei.
-
Das Zustandsausgaberegister SOR ist
z. B. ein Dreizehn-Bit-Register, dessen Bits gesetzt oder gelöscht werden
können.
-
Die Eingaben T1–Tn in den Testeingangs-Multiplexer
TIM sind Prüfbedingungseingaben
von einer weiteren Logikschaltungsanordnung auf dem Chip, wobei
die weitere Logikschaltungsanordnung durch die Eingabe von einem
Off-Chip-Mikroprozessor
ausgelöst
wird.
-
Die Ausgaben aus dem Zustandsausgaberegister
SOR enthalten z. B. Ausgaben zum Mikroablaufsteuerungs-Zustand (durchgeführt oder
nicht), für
einen Überlagerungsblock,
für einen
Programmier/Lösch-Fehler,
für den
Haltetakt, für
die Spaltenwahl, für
den Sektorinkrementierungszähler,
für die
Zeitgeberüberschreibung,
für den
Inkrementzähler,
für die
Signatureinstell-Testbetriebsart, für die Überschreibung des Impulszeitgebers
durch einen externen Takt, für
das Erzwingen einer zeilenredundanten Anpassung, für das Erzwingen
einer spaltenredundanten Anpassung, für die Bit- oder Byteauswahl-Korrektur
und für
den Zugriff auf den Überlagerungsblock.
-
Wenn der Kontroll-Festwertspeicher-CROM,
die Beobachtungsregister für
eingebaute Logikblöcke (BILBO)
und die Mikroablaufsteuerungs-Schaltung (MC) in einen Flash-Speicherchip
integriert worden sind, werden, wie in 1 beschrieben ist, die Programmier-,
Lösch-
und/oder Verdichtungsoperationen an der Matrix der Speicherzellen 10 durch
das Programmieren eines Satzes von Mikrocodes in den Kontroll-Festwertspeicher-CROM
realisiert. Im Stand der Technik gibt es jedoch keine spezielle
realisierte Operation, die mit Hilfe einer Mikrocode-Vorgehensweise die
Testzeit oder die Hardware verringert für: (a) den Lebens dauertest
für die
Programmierung, die Löschung
und/oder die Verdichtung von diesen Speichern und (b) das automatische Finden
des VccMax- oder VccMin-Wertes
für Operationen,
die in diesen Speichern gespeicherte Daten verwenden.
-
Herkömmlich wird der Lebensdauertest
durch die Ausgabe eines "Vollchip"-Löschbefehls
oder einer Folge von Blocklöschbefehlen
an den Flash-Speicher von dem Prüfgerät bei jedem
Zyklus der Programmier-, Lösch-
und/oder Verdichtungsoperationen durchgeführt. Am Ende jedes Zyklus wird
das Zustandsregister auf dem Flash-Speicher von dem Prüfgerät gelesen
und aufgezeichnet. Wenn der Zyklus vorbeigeht, inkrementiert das
Prüfgerät einen
Zähler
in dem Prüfgerät und erteilt
einen weiteren "Vollchip"-Löschbefehl,
um den Lebensdauertest fortzusetzen. Andernfalls, wenn der Chip
versagt, stoppt das Prüfgerät und zeichnet
aus dem Zähler die
Anzahl der Operationszyklen auf, die der Flash-Speicher vor dem
Fehler durchlaufen hat.
-
Ebenso wird die parametrische Eigenschaftsprüfung (das
Finden) des Standes der Technik der VccMax- (der programmierten)
oder der VccMin- (der gelöschten)
Daten, die in den Speicherzellen 10 gespeichert sind, mit
Hilfe des Prüfgeräts, das
alle Adressen der Speicherzellen 10 durchläuft, vollständig "extern" gegenüber dem
Chip durchgeführt. 3 zeigt einen typischen
Aufbau für
die parametrische Eigenschaftsprüfung
eines Speicherchips. Das externe Prüfgerät EXTEST liefert die Versorgungsspannungsquelle
Vcc mit 0,1 V-Schritten, z. B. entweder "nach oben" für
das Finden von VccMax (z. B. 5,0 V, 5,1 V, 5,2 V ...) für die programmierten
Daten, oder "nach
unten" für das Finden
von VccMin (z. B. 5,0 V, 4,9 V, 4,8 V, ...) für die gelöschten Daten, wobei die Daten
in dem Flash-Speicherchip
FMCUT im Test gespeichert werden. Bei jedem Vcc-Spannungsschritt
wird der Adressraum der Speicherzellen 10 durchschritten,
um die Daten zu lesen. Der Test hält an, wenn irgendwelche gelesenen
Daten "nicht bestehen". Ein "nicht bestandenes" Lesen gibt an, dass
der momentane Vcc-Spannungspegel entweder tatsächlich der VccMax für alle in
der Speichermatrix gespeicherten programmierten Daten oder der VccMin
für alle
in der Speichermatrix gespeicherten gelöschten Daten ist.
-
Diese Erfindung "automatisiert" sowohl den vorhergehenden Lebensdauertest
als auch den vorhergehenden parametrischen Eigenschaftsprüfungstest
durch das Integrieren dieser Tests in ein On-Chip-Steuerverfahren,
das die Belastung des Prüfgeräts verringert
und die zum Programmieren des Prüfgeräts, um den Ablauf
auszuführen
und um den Test zu überwachen,
benötigte
Zeit spart. Außerdem
laufen die automatisierten Tests schneller wegen der Ausschaltung
der Notwendigkeit, dass der Tester zwischen den Zyklen extern Befehle
ausgibt und extern den Zustand prüft. In Fällen, wo das Prüfgerät eine begrenzte
Anzahl von Eingabe/Ausgabe-Anschlussstiften aufweist, ist dieser
Ansatz äußerst entscheidend,
weil alle Daten intern eingerichtet werden, was die Notwendigkeit
beseitigt, über
die Eingabe/Ausgabe-Anschlussstifte zu leiten. Die Kosten des Bereitstellens
von zusätzlichen
Eingabe/Ausgabe-Anschlussstiften und der an sie angeschlossenen Schaltungsanordnung
werden beseitigt.
-
4 zeigt
den automatisierten Lebensdauertest-Ablauf, der außerdem "Autocycle"-Testbetriebsart genannt
wird, der in dem Kontroll-Festwertspeicher-CROM aus 2 codiert
ist. Sobald der On-Chip-Controller den Befehl der "Autocycle"-Betriebsart (der
entweder ein normaler Betriebsartbefehl oder ein spezieller Test-Betriebsartbefehl
sein kann) empfängt,
beginnt der Lebensdauertest-Ablauf zuerst mit dem Rücksetzen des
Schleifenzählers
RSCYCL. Die Implementierung des Zählers RSCYCL wird später beschrieben.
Danach wird die Vollchip- (oder Alle-Blöcke-) Betriebsart des Tests
(ENDURE), der irgendeine Kombination von Vorbedingungs-, Löschungs-
und/oder Verdichtungsoperationen ist, der einen Zyklus des Lebensdauertests
für die Speicherzellenmatrix
darstellt, ausgeführt.
Wenn der Lebensdauertest nicht bestanden wird, werden die Bereit/Belegt-Statusbits
gesetzt, um damit zu bezeichnen, dass der Test erfolglos ist, und
der Testablauf wird angehalten. Wenn der Lebensdauertest bestanden
wird, wird der Schleifenzähler
auf das Ende der Zählung (EOC)
geprüft.
Wenn der Zähler
das Ende der Zählung
(z. B. M, das vom Entwurf des Zählers
vorherbestimmt ist) nicht erreicht hat, wird der Schleifenzähler um
eins inkrementiert (INCYCL) und der Testablauf in die Vollchip-
(oder Alle-Blöcke-)
Betriebsart (ENDURE) zurückgeschleift,
um mit einem weiteren Zyklus des Lebensdauertests der Speicherzellen 10 der
Matrix zu beginnen. Wenn der Zähler
das Ende der Zählung
M erreicht, geht der Ablauf an eine Routine oder Unterroutine, welche
die Anzahl der abgeschlossenen Lebensdauerzyklen aufzeichnet. Diese
Unterroutine wird später,
nach der Erläuterung
der Auslegungs-Datenspalten und der Erklärung des Entwurfs des Schleifenzählers, beschrieben.
-
Um das automatisierte Prüfverfahren
zu implementieren, ohne die Logikschaltungsanordnung auf dem Chip
zu erweitern, nutzt diese Erfindung die schon verfügbaren Adressenzähler und
die verfügbaren
Auslegungs-Datenspalten für
das Speichern der Anzahl der Zykluszahlen aus. Die Adressenzähler werden
für den Zugriff
auf jedes Speicherwort in den Hauptspeicherzellen 10 oder
in den Auslegungs-Datenspalten verwendet. Die Auslegungs-Datenspalten,
die nichtlöschbare
nichtflüchtige
Speicherzellen 10 sind, werden gewöhnlich für das Speichern der Auslegungs-Testdaten
verwendet, die sich auf den Speicherchip beziehen. Sowohl die Verfahren
für die
Konstruktion von Adressenzählern
und Auslegungs-Datenspalten als auch ihr Betrieb sind in diesem
Gebiet wohlbekannt. Die Größe der Auslegungs-Datenspalten
ist im Allgemeinen und praktisch relativ klein und ist von der Anzahl
der Zeilen abhängig,
welche die Hauptspeicherzellenmatrix aufweist. In dem Verfahren
dieser Erfindung wird jedes Bit oder Wort der Auslegungs-Datenspalten
verwendet, um eine Zählung des
Lebensdauerzyklus darzustellen. Da es jedoch eine begrenzte Anzahl
von Auslegungs-Datenspalten gibt, wird eine Addition des Schleiferzählers notwendigerweise
verwendet, um die Anzahl (bis zu Millionen) der Lebensdauerzyklen
aufzuzeichnen.
-
Diese Erfindung nutzt außerdem die
schon verfügbaren
Zähler
aus, die normalerweise verwendet werden, um die Impulszählung zu
betreiben, und die allgemein in Flash-Speichermatrizen, die eine
On-Chip-Steuerschaltungsanordnung aufweisen, zu finden sind. Ein
Beispiel einer derartigen Schaltungsanordnung ist das Schieberegister
LFSR mit linearer Rückkopplung,
das in den Beobachtungsregistern für eingebaute Logikblöcke (BILBO)
zu finden ist.
-
5 zeigt
den Entwurf eines zusätzlichen
Zählers
durch Modifizieren eines von Strichlinien eingeschlossenen vorhandenen
Zählers.
Wie in 5 gezeigt ist, wird
der Multiplexer MUX verwendet, um die Daten des Anfangszählstandswerts
(Lm ... L1) oder des zuvor gespeicherten Werts des zusätzlichen
Zählers
dieser Erfindung (Pm ... P1) an den Zähler CTR zu übermitteln.
Wenn der zusätzliche
Zähler
verwendet wird, wird entweder der Anfangszählstandswert oder der zuvor
gespeicherte Wert zuerst in den Zähler geladen. Danach beginnt
der Zähler
mit seiner Zählfunktion.
Nachdem die Zählung
abgeschlossen ist, führt
das Register REG eine Zwischenspeicherung des entstehenden Zählwerts
für die
Speicherung aus. Der gespeicherte entstehende Zählwert wird später entweder
für das
Nachladen in den Zähler
zur ununterbrochenen Zählung
oder zum Prüfen
auf das Ende der Zählung
verwendet. Im Allgemeinen wird ein zusätzlicher m-Bit-Zähler durch
das Hinzufügen
eines Satzes von m Multiplexern und Registern oder Zwischenspeichern,
m Rückkopplungswegen und
einem m-Bit-Zählende-Detektor
erhalten, was die Steuersignale modifiziert und das Steuerungsverfahren (z.
B. den Kontroll-Festwertspeicher-CROM-Code, wie zuvor erwähnt) ändert. Der
Maximalzählwert
des Zählers
ist offensichtlich 2 hoch m (2m) oder M,
das zuvor als ein Beispiel verwendet wurde.
-
Durch das Ausnutzen der Verwendung
der Auslegungs-Datenspalten und der Hinzufügung eines m-Bit-Zählers sind
die maximalen Lebensdauerzyklen, die aufgezeichnet werden können, das
Produkt der Anzahl C der Bits oder Wörter, die in den Auslegungs-Datenspalten
gespeichert sind, und des Maximalzählwerts in der Zykluszahl M.
Wenn M = 1024 ist (ein 10-Bit-Zähler),
sind nur 1024 (1 K) Bits oder Wörter
ausreichend für
eine Zykluszahl von einer Million.
-
Jetzt wird die Routine oder Unterroutine,
die in 4 gezeigt ist,
für das
Aufzeichnen der Anzahl der Zählungen
aller M-Lebensdauerzyklen, welche die Adressenzähler und die Auslegungs-Datenspalten
verwenden, erläutert.
Jedes Mal, wenn der Schleifenzähler
das Ende der Zählung
(EOC) erreicht, werden die Adressenzähler, die für das Adressieren der Auslegungs-Datenspalten
verwendet werden, auf Null zurückgesetzt (RESNGR).
Der Zustand der Auslegungs-Datenspaltenzelle oder -zellen 10 der
momentanen Adresse wird geprüft
(BITCK). Wenn die Zelle 10 programmiert ist, prüfen die
Adressenzähler
auf das Ende der Zählung
(AEOC). Wenn das Ende der Adresszählung erreicht worden ist,
wird das Bereit-Statusbit gesetzt, um damit zu bezeichnen, dass
der Testablauf erfolgreich abgeschlossen worden ist, und anschließend wird
der Test angehalten. Wenn das Ende der Adresszählung nicht erreicht worden
ist, werden die Adressenzähler
inkrementiert (INCADR), wobei der Zustand der Auslegungs-Datenspaltenzelle
oder -zellen 10 der momentanen Adresse erneut geprüft wird.
Wenn die Auslegungs-Datenspaltenzelle 10 der mamentanen
Adresse in einem gelöschten
(nicht programmierten) Zustand ist, wird sie programmiert (PGMENG),
wobei der Testablauf zum Rücksetzen
der Zykluszahl RSCYCL zurückkehrt
und weitergeht. Es wird angemerkt, dass in allen Flash-Speicherentwürfen, die
eine On-Chip-Steuerung aufweisen, genau die gleichen Adressenzähler für den Zugriff
der Auslegungs-Datenspalten und der Hauptspeicherzellen 10 verwendet
werden, um Chip-Fläche zu sparen.
Die gerade beschriebene Routine ist notwendig, da die Adressenzähler bei
jedem Lebensdauerzyklus der Hauptspeicherzellen 10 zurückgesetzt
werden. Sonst ist diese Routine einfach: (a) Inkrementieren der
Adressenzähler, die
für den
Zugriff der Auslegungs-Spalten vorgesehen sind, (b) Programmieren
der Auslegungs-Spaltenzellen 10 unter der momentanen Adresse,
(c) Rückkehr
zum Rücksetzen
der Zykluszahl RSCYCL und (d) Fortsetzen des Testablaufs.
-
In dem üblichen Flash-Entwurf bestimmt
die Abfrage des Statusbits (außerdem
als das Bereit/Belegt-Bit bekannt) des Chips im Test, ob der Test
abgeschlossen ist. Gleichfalls ist in der Autozyklus-Betriebsart die
Abfrage des Bereit/Belegt-Statusbits eine Prüfung auf Fertigstellung. Nach
der Fertigstellung wird das Versagen-Statusbit gelesen, um das Testergebnis
zu bestimmen. Wenn das Versagen-Statusbit gesetzt ist, werden seine
entsprechenden Auslegungs-Datenspalten gelesen, um die Minimalanzahl
der Sätze
der M Lebensdauerzyklen zu bestimmen, die vor dem Fehler abgeschlossen
wurden. Wenn außerdem
ein Abtasttest auf dem Chip verfügbar
ist, wird der Wert des Schleifenzählers abgetastet, um die genaue
Anzahl der vor dem Chipfehler abgeschlossenen Zyklen zu bestimmen.
Wenn das Versagen-Statusbit nicht gesetzt ist, ist die Gesamtanzahl
der abgeschlossenen Zyklen einfach die Anzahl C der Auslegungs-Datenspaltenzellen 10 für das Aufzeichnen
des Tests, multipliziert mit dem Maximalzählwert M des Schleiferzählers, oder
C × M.
Im Fall eines Entwurfs, der keine Auslegungs-Datenspalten aufweist,
wird die Konstruktion einer zusätzlichen
Matrix von nichtflüchtigen
Zellen 10 und der zugeordneten Logikschaltung benötigt, um
die Autozyklus-Betriebsart anzupassen.
-
6 zeigt
bei dem automatischen VccMax- oder VccMin-Test, der ein parametrischer
Eigenschaftsprüfungstest
ist, eine On-Chip-Ausführungsform
der Erfindung in einem Blockschaltplan. Dieser Test soll, wie zuvor
beschrieben wurde, entweder den VccMax-Spannungspegel der programmierten
Daten oder den VccMin-Spannungspegel der gelöschten Daten bestimmen, die
in einem Flash-Speicherchip
gespeichert sind. Wie in 6 gezeigt
ist, ist der Digital-Analog-Umsetzer
DAC einfach ein digital durch den On-Chip-Controller gesteuerter
Generator für
eine veränderliche
Spannungsquelle, der auf dem Flash-Speicherchip gebaut ist. Die
Konstruktion und der Betrieb dieses digital gesteuerten Generators
für eine
variable Spannung ist im Gebiet wohlbekannt.
-
Die in 6 gezeigte
ausgegebene veränderliche
Stufenspannung Vstep ist die Spannung, die an die Wortleitungen
der Flash-Speicherzellen 10 und an ihre entsprechende Lese-Referenzzelle 10 angelegt
wird. Anhand des Zustands einer Speicherzelle 10 und des
Werts der Spannung Vstep erzeugt der Strom-Leseverstärker SENAMP
das Leseergebnis entweder als "0" oder als "1". Bei dem normalen Wert von Vstep, welcher der
in der TABELLE I als "Lesen" "auswählte
Wortleitung" gezeigte
5-V-Wert sein kann, ist das Leseergebnis "0",
wenn die Zelle 10 zuvor programmiert wird, oder ist es "1", wenn die Zelle 10 zuvor gelöscht wird.
Die Lesedaten werden mit einer "0" (beim Finden von
VccMax aller programmierten Zellen 10) oder mit einer "1" (beim Finden von VccMin aller gelöschten Zellen 10)
in einem Komparator COMP verglichen (d. h. durch eine einfache Exklusiv-ODER-Funktion,
XOR). Da Vstep, digital durch die On-Chip-Steuereinrichtung gesteuert, verschiedene
Spannungspegel durchschreitet, setzt der Komparator seinen Ausgang
auf "1", was angibt, dass entweder
das VccMax oder das VccMin gefunden worden ist, wenn irgendein Leseergebnis
gefunden wird, das von seinem Normalwert eins verschieden ist. Anschließend wird
der Test angehalten und der Code, der den momentanen Vstep-Pegel
(DAC-Code) darstellt, auf Wunsch durch eine Abtasttechnik oder durch
Zustandsregister gelesen. Es wird angemerkt, dass der Spannungsbereich
von Vstep vorher vorgegeben werden muss; andernfalls ist dieser
Test bedeutungslos, wenn VccMax oder VccMin nicht in den Bereich
von Vstep fällt.
Die Konstruktion und der Betrieb dieses Strom-Leseverstärkers und
dieses Komparators sind im Gebiet wohlbekannt.
-
7 zeigt
den Testablauf, der die in 6 gezeigten
Schaltungsblöcke
steuert, der die "AutoVccMax/Min"-Testbetriebsart
genannt wird und der in den in 2 gezeigten
Kontroll-Festwertspeicher-CROM auf dieselbe Art wie die zuvor beschriebene "Autocycle"-Testbetriebsart
codiert ist. Wie in 7 gezeigt
ist, beginnt der Testablauf mit dem Rücksetzen oder der Initialisierung
des DAC-Codes (INITDAC), der den Spannungspegel, der an die Wortleitungen
sowohl der Speicher- als auch der Referenzzellen 10 geschickt
wird, steuert. Der Adressenzähler,
der die Speichermatrix adressiert, wird zurückgesetzt (SETADDR), bevor
aus der Speicherzelle 10 gelesen und verglichen wird (READCMP).
Wenn der Vergleichsausgang auf "1" gesetzt ist, was
das Finden von entweder VccMax oder VccMin angibt, hält der Testablauf
an, nachdem der DAC-Code an das Zustandsregister ausgegeben ist
oder im momentanen Register bleibt und auf eine spätere Abtastung (OUTDAC)
wartet. Andernfalls wird der Adressenzähler geprüft, um zu sehen, ob die letzte
Speicherzelle 10 gelesen wird. Wenn nicht die letzte Zelle
gelesen wird, wird der Adressenzähler
(INCADR) inkrementiert und die nächste
Speicherzelle 10 gelesen und verglichen. Wenn die letzte
Zelle 10 gelesen wird, wird der DAC-Code geprüft. Wenn
der DAC-Code entweder den Maximal- oder den Minimalpegel erreicht
hat, wird der Ablauf angehalten, was angibt, dass der VccMax- oder
VccMin-Wert außerhalb
des vorgegebenen Bereichs liegt oder dass ein Lesefehler (OUTERR)
vorliegt. Wenn der DAC den Maximal- oder Minimalpegel nicht erreicht
hat, wird der DAC-Code inkrementiert oder dekrementiert, um den
Vstep-Pegel zu ändern
(CHGDAC), und der Adressenzähler
wird zurückgesetzt.
Alle Speicherzellen 10 werden mit dem neuen Vstep-Pegel
erneut gelesen und verglichen, wobei dies fortgesetzt wird, bis
VccMax oder VccMin gefunden ist oder bis ein Fehler auftritt.
-
Beide in dieser Erfindung erwähnten Testverfahren
sind für
jede Vorrichtung nützlich,
die eingebettete Steueranweisungen zum Betrieb aufweist und die
ununterbrochene Lebensdauertests und parametrische Tests erfordert.
-
Während
diese Erfindung in Bezug auf eine veranschaulichende Ausführungsform
beschrieben wurde, soll diese Beschreibung nicht als einschränkend ausgelegt
werden. Insbesondere ist diese Erfindung bei der Verwendung mit
Spannungsversorgungen anwendbar, die Spannungsausgänge aufweisen,
die von den hierin verwendeten Beispielen verschieden sind. Anhand
dieser Beschreibung sind für
den Fachmann auf dem Gebiet sowohl verschiedene Änderungen der veranschaulichenden
Ausführungsform
als auch weitere Ausführungsformen
der Erfindung offensichtlich.