[go: up one dir, main page]

DE69629315T2 - Flashspeicheranordnung mit löschungsunterbrechungslogik unter verwendung von mehreren prüfpunkten - Google Patents

Flashspeicheranordnung mit löschungsunterbrechungslogik unter verwendung von mehreren prüfpunkten Download PDF

Info

Publication number
DE69629315T2
DE69629315T2 DE69629315T DE69629315T DE69629315T2 DE 69629315 T2 DE69629315 T2 DE 69629315T2 DE 69629315 T DE69629315 T DE 69629315T DE 69629315 T DE69629315 T DE 69629315T DE 69629315 T2 DE69629315 T2 DE 69629315T2
Authority
DE
Germany
Prior art keywords
block
erase
deletion
logic
blocks
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
DE69629315T
Other languages
English (en)
Other versions
DE69629315D1 (de
Inventor
Tzeng-Huei Shiau
Lin Ray WAN
Weitong Taichung CHUANG
Yu-Sui Kaoshiung LEE
Mou Kong LIOU
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Macronix International Co Ltd
Original Assignee
Macronix International Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Macronix International Co Ltd filed Critical Macronix International Co Ltd
Publication of DE69629315D1 publication Critical patent/DE69629315D1/de
Application granted granted Critical
Publication of DE69629315T2 publication Critical patent/DE69629315T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • G11C16/14Circuits for erasing electrically, e.g. erase voltage switching circuits
    • G11C16/16Circuits for erasing electrically, e.g. erase voltage switching circuits for erasing blocks, e.g. arrays, words, groups
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C2216/00Indexing scheme relating to G11C16/00 and subgroups, for features not directly covered by these groups
    • G11C2216/12Reading and writing aspects of erasable programmable read-only memories
    • G11C2216/20Suspension of programming or erasing cells in an array in order to read other cells in it

Landscapes

  • Read Only Memory (AREA)

Description

  • HINTERGRUND DER ERFINDUNG Bereich der Erfindung
  • Die vorliegenden Erfindung bezieht sich auf das Gebiet von nicht-flüchtigen Halbleiterspeichern und genauer gesagt auf Prozesse zum Aufheben bzw. Aussetzen einer automatischen Löschsequenz einer Flashspeicher-Einrichtung.
  • Beschreibung der relevanten Technik
  • Eine Flashspeicher-Einrichtung basiert auf einem Speicherarray von Floating-Gatter-Transistoren, die in vielen aktuellen Architekturen in einer Mehrzahl von Blöcken von Speicherzellen organisiert sind, um Block für Block Programmierung und Löschen des Arrays von Zellen zu unterstützen. Siehe US-Patent Nr. 5.414.664; mit dem Titel FLASH EPROM WITH BLOCK ERASE FLAGS FOR OVER-ERASE PROTECTION; mit den Erfindern Lin et al. Bei einer typischen Flashspeicherzelle entspricht eine logische "1" einem gelöschten Zustand, in dem weniger Elektronen in dem Floating-Gatter der Zelle gespeichert sind, und daher hat die gelöschte Zelle einen niedrigen Schwellwert. Wenn eine Lesespannung an das Steuergatter der Zelle, die gelöscht wurde, angelegt wird, dann ist die Zelle leitfähig. Andererseits entspricht eine logische "0" einem programmierten Zustand, in dem das Floating-Gatter mehr Elektronen darin gespeichert hat. In dem programmierten Zustand hat die Zelle einen hohen Schwellwert, so daß beim Anlegen eines Lesepotentials an die Wort-Leitung die Zelle nicht leitfähig ist. (Natürlich können die logischen Werte des programmierten und des gelöschten Zustandes zugewiesen werden, wie es am besten für eine gegebene Implementierung paßt). Flashspeicherzellen sind durch die Tatsache charakterisiert, daß eine einzelne Speicherzelle nicht aus der logischen 0 oder dem programmierten Zustand Bit für Bit in die logische 1 oder den gelöschten Zustand umgeschrieben werden kann. Somit muß, um eine Zelle in einen gewünschten Zustand zu versetzen, der gesamte Block zuerst gelöscht werden und danach müssen diejenigen Zellen, die die logische 0 in sich gespeichert haben sollen, individuell programmiert werden.
  • Der Löschvorgang wird typischerweise durch einen internen Zustandsautomaten auf der Einrichtung automatisch gesteuert. Dieser Vorgang benötigt eine relativ lange Zeit. Zum Beispiel bestehen Löschvorgänge nach dem Stand der Technik aus einer Anzahl von Schritten einschließlich der Vorprogrammierung und der Überprüfung bzw. Verifizierung der Vorprogrammierung aller Bytes in dem Block und des Löschens des gesamten Blocks gefolgt von der Überprüfung der Löschung aller Bytes in dem Block.
  • Es kann vorkommen, daß ein Benutzer während eines Löschvorgangs Daten zu lesen wünscht, die in einem anderen Block als demjenigen, der gelöscht wird, gespeichert sind. Um ein Lesen durchzuführen, ist es wünschenswert, den im Gang befindlichen Löschvorgang auszusetzen, zu ermöglichen, daß der Lesezugriff fortgesetzt wird und danach den Löschvorgang wieder aufzunehmen, nachdem der Lesezugriff abgeschlossen ist.
  • Ein Aussetzprozeß des Löschens nach dem Stand der Technik ist in dem U.S. Patent Nr. 5.355.464 nach dem Stand der Technik mit dem Titel CIRCUITRY AND METHOD FOR SUSPENDING THE AUTOMATED ERASURE OF A NON-VOLATILE SEMICONDUCTOR MEMORY, mit den Erfindern Fandrich et al. beschrieben. Wie in dem Patent von Fandrich et al. beschrieben, kann das Kommando zum Aussetzen des Löschens von einem Benutzer zu jeder beliebigen Zeit gegeben werden. Jedoch kann der Löschvorgang gemäß Fandrich et al. nur an bestimmten Stellen des Löschvorgangs ausgesetzt werden (siehe 5 von Fandrich et al.). Zum Beispiel reagiert der Zustandsautomat während der Präkonditionierungsphase des Löschvorgangs (während der die Vorprogrammierung vorgenommen wird) auf das Kommando zum Aussetzen des Löschens erst nach erfolgreicher Vorprogrammierung eines aktuellen Bytes, das gerade vorprogrammiert wird. Um ein Byte vorzuprogrammieren, wird ein Programmimpuls auf das Byte angewandt, und danach wird ein Überprüfungstest ausgeführt. Wenn die Überprüfung fehlschlägt, dann wird ein weiterer Programmimpuls angewandt und die Überprüfung noch einmal versucht. Diese Impuls- und Überprüfungsschleife kann sich eine Anzahl von Zyklen lang fortsetzen, bis das Byte erfolgreich programmiert ist oder der Algorithmus fehlschlägt. Dadurch, daß von einem Benutzer verlangt wird zu warten, bis eine erfolgreiche Vorprogrammierung für das aktuelle Byte, das Gegenstand des Vorprogrammierungsvorgangs ist, erreicht wurde, kann der Benutzer bei dem Versuch, während des Löschprozesses auf einen anderen Block in dem Array zuzugreifen, auf beträchtliche Verzögerungen stoßen.
  • Bei Fandrich et al. liegt ein zweiter Punkt, an dem der Löschvorgang auf ein Aussetzkommando reagiert, während der Löschphase des Prozesses vor. Bei Fandrich et al. ist die Löschphase mit einem relativ langen Löschimpuls verbunden (in der Größenordnung von Millisekunden), der angewandt wird. Nach dem Löschimpuls wird der Block Byte für Byte einem Löschüberprüfungsprozeß unterzogen. Gemäß Fandrich et al. kann der Löschvorgang nicht ausgesetzt werden, bis der gesamte Löschimpuls vorüber ist. Dieser Ansatz ist offensichtlich ungünstig, weil es ab dem Zeitpunkt, an dem das Kommando zum Aussetzen des Löschens gegeben wurde, bis zum tatsächlichen Aussetzen des Zustandsautomaten beträchtliche Zeit dauern kann, es dem Benutzer zu ermöglichen, einen Zugrift auf einen anderen Block vorzunehmen.
  • Die US-A-5.509.134 lehrt die Verwendung eines Vielzweckprozessors, um als ein Arraycontroller zum Verwalten des Flashspeicher-Array zu fungieren. Ein Programmspeicher ist vorgesehen, um einen oder mehrere Algorithmen zu speichern, die von dem Arraycontroller ausgeführt werden können.
  • In Hochleistungsverarbeitungssystemen kann die Verzögerung beim Zugriff auf in Flashspeicher-Einrichtungen bzw. -Geräten gespeicherte Daten kritisch sein. Daher ist es wünschenswert, den Aussetzprozeß während eines Löschvorgangs so weit wie möglich zu beschleunigen.
  • ZUSAMMENFASSUNG DER ERFINDUNG
  • Unter einem ersten Aspekt betrachtet sieht die vorliegende Erfindung einen Speicher aus einem integrierten Schaltkreis vor, der beinhaltet: ein Speicherarray, wobei das Speicherarray eine Mehrzahl von Blöcken von Floating-Gate-Speicherzellen (Speicherzellen mit erdfreiem Gate) enthält; eine Blocklöschlogik, die mit dem Speicherarray verbunden ist und dafür ausgelegt ist, einen Blocklöschvorgang auszuführen, um ausgewählte Blöcke von Speicherzellen als Reaktion auf ein Blocklöschkommando zu löschen, wobei die Blocklöschlogik eine Vorprogrammierlogik umfaßt, die dafür ausgelegt ist, eine Präkonditionierungsphase des Blocklöschvorgangs auszuführen, in der ein ausgewählter Block durch Anlegen eines Programmierpotentials vorprogrammiert wird und danach die Vorprogrammierung des Blocks überprüft wird, und eine Löschlogik, die dafür ausgelegt ist, eine Löschphase des Blocklöschvorgangs auszuführen, in der der ausgewählte Block durch Anlegen eines Löschpotential gelöscht wird und danach das Löschen des Blocks überprüft wird; und eine Löschaussetzlogik, die mit der Blocklöschlogik verbunden ist und dafür ausgelegt ist, einen Löschaussetzvorgang auszuführen, um den Blocklöschvorgang als Reaktion auf ein Kommando zum Aussetzen des Löschens auszusetzen, wobei die Löschaussetzlogik eine Aussetzlogik umfaßt, die dafür ausgelegt ist, den Blocklöschvorgang zu unterbrechen, nachdem das Kommando zum Aussetzen des Löschens während eines Prüfpunktes in einer Menge von Prüfpunkten in dem Blocklöschvorgang empfangen wurde, wobei die Menge einen ersten Prüfpunkt beinhaltet, der das Unterbrechen während der Präkonditionierungsphase ermöglicht, und einen dritten Prüfpunkt beinhaltet, der das Unterbrechen während der Überprüfung des Löschens ermöglicht, und eine Wiederaufnahmelogik, die dafür ausgelegt ist, zum Blocklöschvorgang zurückzukehren; wobei der Speicher aus einem integrierten Schaltkreis dadurch gekennzeichnet ist, daß: die Menge von Prüfpunkten in dem Blocklöschvorgang einen zweiten Prüfpunkt enthält, der die Aussetzlogik in die Lage versetzt, den Blocklöschvorgang während des Anlegens des Löschpotentials zu unterbrechen; die Blocklöschlogik eine Mehrzahl von Blocklöschflags beinhaltet, die zu löschende Blöcke in der Mehrzahl von Blöcken anzeigen, und einen Löschwiederholzähler aufweist, der eine Anzahl von Löschversuchen angibt, die ausgeführt wurden, wobei der von der Blocklöschlogik ausgeführte Blocklöschvorgang dafür ausgelegt ist, ausgewählte Blöcke von Speicherzellen, wie durch die Mehrzahl der Blocklöschflags angezeigt, als Reaktion auf ein Blocklöschkommando zu löschen, wobei in der Löschphase die Blöcke mit gesetzten Blocklöschflags durch Anlegen eines Löschpotentials gelöscht werden und danach das Löschen der Blöcke mit gesetzten Blocklöschflags in einer Reihenfolge bzw. Sequenz überprüft wird, und, wenn ein aktueller Block in der Sequenz erfolgreich gelöscht wurde, das Blocklöschflag für den aktuellen Block zurückgesetzt wird und danach der Löschschritt erneut versucht wird, wenn irgendein Flag gesetzt bleibt, nachdem die Sequenz abgeschlossen ist; wobei die Aussetzlogik dafür ausgelegt ist zu veranlassen, daß das Blocklöschflag des aktuellen Blocks und aller folgender Blöcke in der Sequenz nicht zurückgesetzt werden, wenn das Unterbrechen während der Überprüfung des Löschens oder während des Anlegens des Löschpotentials auftritt, und wobei die Wiederaufnahmelogik dafür ausgelegt ist, zum Blocklöschvorgang zurückzukehren, ohne den Löschwiederholzähler zurückzusetzen.
  • Die vorliegende Erfindung sieht ein Flashspeichergerät bzw. eine Flashspeichereinrichtung vor, das bzw. die einen Löschaussetzalgorithmus mit mehrfachen Prüfpunkten beinhaltet. Ein Benutzer kann ein Kommando zum Aussetzen des Löschens zu jedem Zeitpunkt während eines Löschvorgangs geben. Gemäß der vorliegenden Erfindung wird der Löschvorgang so schnell wie möglich ausgesetzt, indem es ermöglicht wird, daß der Löschvorgang an dem ersten daraufhin auftretenden Prüfpunkt aus der Mehrzahl von Prüfpunkten ausgesetzt wird. Die Prüfpunkte werden gewählt, um die Zeitdauer zu minimieren, die ein Benutzer zwischen dem Absetzen des Kommandos zum Aussetzen des Löschens und dem Ausführen eines Zugriffs auf das Speicherarray während der Aussetzung des Löschens warten muß.
  • Die Blocklöschlogik beinhaltet eine Mehrzahl von Blocklöschflags, ein Flag für jeden Block in der Mehrzahl von Blöcken. Der Blocklöschvorgang umfaßt das Setzen der Blocklöschflags für die zum Löschen ausgewählten Blöcke. Wenn ein Block erfolgreich gelöscht ist, dann wird das Blocklöschflag für den Block während des Löschüberprüfungsstadiums zurückgesetzt. Auf diese Weise werden nur Blöcke, welche die Löschüberprüfung nicht bestehen, einer erneuten Anwendung des Löschimpulses unterzogen. (Siehe oben zitiertes U.S. Patent Nr. 5.414.664). Wenn des Kommando zum Aussetzen des Löschens während der Löschüberprüfung empfangen wird, wird die Löschüberprüfung zwangsweise zum Scheitern gebracht, und das Löschflag des aktuellen Blocks wird nicht zurückgesetzt. Die Steuerungslogik springt dann zu einem nächsten Block. Wenn das Löschflag des nächsten Blocks nicht gesetzt ist, dann wird er übersprungen. Wenn andererseits das Löschflag gesetzt ist, dann wird die Löschüberprüfung wiederum zwangsweise zum Scheitern gebracht. Die verhindert das Zurücksetzen des Flags und der Zustandsautomat schreitet durch die Mehrzahl der Blocklöschflags fort, bis alle restlichen Flags abgearbeitet wurden. Wenn das Wiederaufnahmekommando gegeben wird, wird der Löschüberprüfungsvorgang am Anfang des ersten Bytes im ersten Block durch das Überwachen der Blocklöschflags für den Block wieder aufgenommen. Andererseits wird der Löschwiederholzähler während des Löschaussetzablaufes weder zurückgesetzt noch hochgezählt. Auf diese Weise kann die Anzahl von Wiederholungen richtig beibehalten werden, auch wenn der Löschaussetzprozeß mitten in dem Blocklöschvorgang ausgeführt wird.
  • Dementsprechend wird eine Flashspeichereinrichtung mit einer Löschaussetzlogik vorgesehen, die in der Lage ist, den Löschvorgang so schnell wie möglich nach dem Ausgeben des Kommando zum Aussetzen des Löschens durch den Benutzer auszusetzen. Dies ermöglicht einen viel effizienteren Gebrauch von Flashspeichereinrichtungen, als es nach dem Stand der Technik möglich ist.
  • Bevorzugte Ausführungsformen der vorliegenden Erfindung sehen einen Speicher aus einem integrierten Schaltkreis wie einen integrierten Schaltkreis mit einem Flashspeicher vor, der ein Speicherarray enthält, das aus einer Mehrzahl von Blöcken von Speicherzellen zusammengesetzt ist. Eine Blocklöschlogik ist mit dem Speicherarray verbunden, die einen Blocklöschvorgang ausführt, um ausgewählte Blöcke von Speicherzellen als Reaktion auf ein Blocklöschkommando zu löschen. Der Blocklöschvorgang beinhaltet eine Präkonditionierungsphase (auch Vorprogrammierungsphase genannt), in der ein ausgewählter Block durch das Anlegen eines Programmierungspo tentials vorprogrammiert und danach die Vorprogrammierung des Blocks überprüft wird. Typischerweise werden die Vorprogrammierung und die Überprüfung der Vorprogrammierung auf der Basis von aus mehreren Bits bestehenden Segmenten Segment für Segment (wie zum Beispiel Byte für Byte) ausgeführt. Nach der Präkonditionierungsphase wird eine Löschphase ausgeführt, in der der ausgewählte Block durch das Anlegen eines Löschpotentials an den Block gelöscht und danach der ausgewählte Block getestet wird, um das Löschen des Blocks zu überprüfen. Gemäß der vorliegenden Erfindung ist die Löschaussetzlogik mit der Löschlogik verbunden und führt einen Löschaussetzvorgang aus, um den Blocklöschvorgang als Reaktion auf ein Kommando zum Aussetzen des Löschens auszusetzen. Der Löschaussetzvorgang beinhaltet das Unterbrechen des Blocklöschvorgangs nach dem Empfang des Kommandos zum Aussetzen des Löschens während eines Prüfpunktes, üblicherweise des ersten, der auftritt, von einer Menge von Prüfpunkten in dem Blocklöschvorgang, wobei ein Prüfpunkt ein Zeitintervall in dem Vorgang ist, das zwischen Ereignissen in dem Vorgang fallen kann oder ein oder mehrere Ereignisse in dem Vorgang umfassen kann. Die Menge von Prüfpunkten enthält einen ersten Prüfpunkt, der das Unterbrechen während der Präkonditionierungsphase ermöglicht, einen zweiten Prüfpunkt, der das Unterbrechen während des Löschimpulses ermöglicht, das heißt während des Anlegens des Löschpotentials an den Block, und einen dritten Prüfpunkt, der das Unterbrechen während des Überprüfens des Löschschrittes ermöglicht. Nach dem Unterbrechen des Blocklöschvorgangs umfaßt der Löschaussetzvorgang das Zurückkehren zum Blocklöschvorgang, um das Blocklöschen abzuschließen.
  • Wie oben erwähnt enthalten Blöcke in der Mehrzahl von Blöcken eine Mehrzahl von Datenbytes. Die Präkonditionierungsphase beinhaltet vorzugsweise eine Logik, um einen ausgewählten Block Byte für Byte vorzuprogrammieren. Diese Logik legt sequentiell ein Programmierungspotential an ein Byte an und überprüft dann die Vorprogrammierung des Bytes, bevor es fortfährt, das Programmierungspotential an das nächste Byte in dem Block anzulegen. Dieser sequentielle Prozeß wird ausgeführt, bis der Block vorprogrammiert ist oder ein Fehler auftritt. Gemäß einer Ausführungsform der Erfindung liegt der erste Prüfpunkt zwischen der Vorprogrammierung der Bytes in dem Block. Genauer gesagt ermöglicht der erste Prüfpunkt gemäß einer bevorzugten Ausführungsform der vorliegenden Erfindung das Unterbrechen des Blocklöschvorgangs nach dem Anlegen eines Programmierungspotentials an ein Byte in dem Block und vor der Überprüfung der Programmierung desselben Bytes. Somit ermöglicht der Algorithmus, daß der Löschvorgang am Ende eines Vorprogrammierungsimpulses unterbrochen wird, nachdem das Aussetzkommando abgesetzt wurde unabhängig davon, ob das Byte, das Gegenstand des Vorprogrammierungsimpulses war, erfolgreich vorprogrammiert wurde.
  • Gemäß einer Ausführungsform der Erfindung liegt der zweite Prüfpunkt in dem Löschaussetzvorgang während des Anlegens eines Löschimpulses. Wenn ein Aussetzkommando während der Zeitspanne, in der ein Löschimpuls auf Flashspeicherzellen angewandt wird, oder bevor der Löschimpuls aktiviert wird, gegeben wird, wird der Löschvorgang sofort unterbrochen. Im allgemeinen ist ein Löschimpuls relativ lange und ist viel länger als ein Vorprogrammierungsimpuls. Zum Beispiel kann ein Löschimpuls in der Größenordnung von 10 Millisekunden für das Löschen eines Blocks von Speicherzellen liegen, gegenüber der Größenordnung von 10 Mikrosekunden für den Vorprogrammierungsimpuls. Daher ist es für den Zustandsautomaten nützlich, in der Lage zu sein, während des Anlegens eines Löschpotentials eines Löschimpulses die Reaktionszeit zu reduzieren und die Effizienz des Aussetzalgorithmus' zu steigern.
  • Gemäß einer Ausführungsform der Erfindung tritt der dritte Prüfpunkt während des Löschüberprüfungsstadiums auf. Wenn das Aussetzkommando während der Löschüberprüfung gegeben wird, führt der Zustandsautomat zwangsweise das Scheitern der Löschüberprüfung und das schnelle Verlassen dieses Stadiums herbei.
  • Gemäß einer Ausführungsform der Erfindung ist die Löschaussetzlogik der vorliegenden Erfindung mit einer segmentierbaren Flasharchitektur basierend auf lokalen Bitleitungen und lokalen Quelleitungen verbunden, die miteinander an globale Bitleitungen durch Blockauswahltransistoren angeschlossen sind. Die Kombination der eindeutigen Architektur mit dem Löschaussetzvorgang stellt eine effiziente Speichereinrichtung mit einem integrierten Hochgeschwindigkeitsschaltkreis bereit, die in der Lage ist, auf ein Löschaussetz-Kommando sehr effizient zu reagieren.
  • Andere Aspekte und Vorteile der vorliegenden Erfindung kann man bei Betrachtung der Figuren, der detaillierten Beschreibung und der anhängenden Ansprüche erkennen.
  • KURZBESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein vereinfachtes Blockdiagramm einer Flashspeichereinrichtung, die die Löschaussetzlogik mit mehreren Prüfpunkten der vorliegenden Erfindung beinhaltet.
  • 2 ist ein Schaltkreisdiagramm, das eine bevorzugte Speicherarchitektur mit einem integrierten Schaltkreis zur Verwendung in dem System nach 1 darstellt.
  • 3 ist ein Schaltkreisdiagramm, das eine andere bevorzugte Speicherarchitektur mit einem integrierten Schaltkreis zur Verwendung in dem System nach 1 darstellt.
  • 4 ist ein vereinfachtes Blockdiagramm einer Flashspeichereinrichtung mit einem integrierten Schaltkreis, die die Löschaussetzlogik der vorliegenden Erfindung beinhaltet.
  • 5 ist ein Flußdiagramm einer Präkonditionierungsphase eines Blocklöschvorgangs, der die Prüfpunkte für das Löschaussetzen der vorliegenden Erfindung beinhaltet.
  • 6 ist ein Flußdiagramm einer Löschphase eines Blocklöschvorgangs, der die Prüfpunkte für das Löschaussetzen der vorliegenden Erfindung beinhaltet.
  • 7 ist ein Flußdiagramm eines Löschaussetzprozesses, der in den Vorgängen der 5 und 6 ausgeführt wird.
  • 8 ist ein Flußdiagramm, das den Blocklöschvorgang einschließlich der Blocklöschflags gemäß einer anderen Ausführungsform der vorliegenden Erfindung darstellt.
  • Die 9, 10 und 11A11B sind vereinfachte Logikdiagramme und ein Zeitdiagramm, die die zu Block 504 in 5 gehörige Löschaussetzoperation darstellen.
  • Die 12, 13, 14, 15 und 16A16B stellen die Logik und den Zeitablauf für das Erzeugen des ERASE SUSPEND READY Signals während des Prüfpunktes bei Block 601 von 6 dar.
  • Die 17 und 18 stellen die Logik für den Löschaussetzprozeß beim Prüfpunkt bei Block 606 in 6 dar.
  • DETAILLIERTE BESCHREIBUNG
  • Eine detaillierte Beschreibung von bevorzugten Ausführungsformen der vorliegenden Erfindung wird unter Bezug auf die Figuren gegeben.
  • 1 zeigt die Grundstruktur eines Flashspeichers aus einem integrierten Schaltkreis, der die vorliegende Erfindung umfaßt. Der Schaltkreis beinhaltet ein Flashspeicherarray, generell mit 10 bezeichnet, das in eine Mehrzahl von Blöcken (32 Blöcke in der Figur) unterteilt ist. Das Flashspeicherarray hat eine segmentierbare Architektur wie die in 2 oder 3 unten gezeigte.
  • Verbunden mit dem Array 10 sind ein Steuerschaltkreis 11 zum Lesen und Programmieren und ein Steuerschaltkreis 12 zum Blocklöschen und Überprüfen der Löschung. Der Steuerschaltkreis 12 zum Blocklöschen und Überprüfen der Löschung enthält eine Mehrzahl von Blocklöschflags 13 und einen Adreßzähler 14, um für die Sequenz zum Überprüfen der Löschung durch die Speicherzellen hochzuzählen.
  • Der Chip beinhaltet eine Befehlslogik 15, die mit den Adreß-, Daten- und anderen Steuerleitungen wie das Ausgangsfreigabe- und das Chip-Freigabe-Signal verbunden ist. Die Befehlslogik 15 interpretiert Eingaben, um einen Betriebsmodus für die Steuerlogik 11 zum Lesen und Programmieren und die Steuerlogik 12 zum Blocklöschen und Überprüfen der Löschung einzustellen. Die Befehlslogik 15 gemäß der vorliegenden Erfindung umfaßt Logik zum Erkennen und Ausführen eines Löschaussetzprozesses mit mehreren Prüfpunkten.
  • Die Befehlslogik 15 kann, wie es in standardmäßigen integrierten Flashspeicher-Schaltkreisen wie dem Am28F020 Flashspeicher-Chip erfolgt, der von Advanced Micro Devices, Inc. in Sunnyvale, Kalifornien hergestellt wird, mit den zusätzlichen Befehlen gemäß der vorliegenden Erfindung zum Blocklöschen und Aussetzen des Löschens implementiert werden. Als Reaktion auf Befehle, die von der Kommandologik 15 gegeben werden, wird eine eingebettete Blocklöschoperation von Zustandsautomaten in der Steuerlogik 12 zum Blocklöschen und Überprüfen der Löschung ausgeführt. Der Benutzer liefert durch eine Host-CPU oder auf andere Weise Adreß- und Datensignale an die Kommandologik 15, um einen bevorzugten Betriebsmodus anzugeben. Die Modi, die für die vorliegende Erfindung relevant sind, umfassen einen Chiplösch-Modus, bei dem alle Blöcke in dem Array 10 zu löschen sind, und einen Blocklösch-Modus, bei dem ausgewählte Blöcke in dem Array 10 zu löschen sind. Zu löschende Blöcke werden durch die Blocklöschflags 13 angegeben. Die Chip- und Blocklösch-Modi enthalten mehrere Prüfpunkte, an denen das Aussetzen des Löschens wirksam ist, wie unten genauer beschrieben.
  • Wegen der Architektur des Flashspeicherarray 10 sind die Blöcke innerhalb des Array für die Löschoperation segmentierbar. Ein Verständnis des Arrays, wie in 2 dargestellt, zeigt, wie die Blocklöschoperation von der Steuerlogik ausgeführt werden kann.
  • 2 stellt eine segmentierbare Arrayarchitektur unter Verwendung einer Drain-Source-Drain-Konfiguration des Flashspeicherschaltkreises dar, wie in U.S. Patent Nr. 5.399.891 beschrieben, mit den Erfindern Yiu et al.
  • Der Schaltkreis enthält segmentierbare Abschnitte (z. B. Abschnitt 77) des Arrays einschließlich einer ersten lokalen Bitleitung 79 und einer zweiten lokalen Bitleitung 80. Die erste und die zweite lokale Bitleitung 79, 80 sind mittels eingegrabener Diffusionsleiterbahnen implementiert. Ebenso enthalten ist eine lokale virtuelle Erd- bzw. Masseleitung 78, die durch eingegrabene Diffusion implementiert ist. Eine Mehrzahl von Floating-Gate-Transistoren mit Gates, Drains und Sources sind mit den lokalen Bitleitungen 79, 80 und der lokalen virtuellen Masseleitung 78 verbunden. Die Sources der Mehrzahl von Transistoren sind mit der lokalen virtuellen Masseleitung 78 verbunden. Die Drains einer ersten Spalte von Transistoren, 75-1 bis 75-N, sind mit der ersten lokalen Bitleitung 79 verbunden, und die Drains einer zweiten Spalte von Transistoren, 76-1 bis 76-N, sind mit der zweiten lokalen Bitleitung 80 verbunden. Die Gates der Floating-Gate-Transistoren sind mit den Wortleitungen WL0 bis WLN verbunden. wobei jede Wortleitung (z. B. WL1) mit dem Gate eines Transistors (z. B. Transistor 75-2) in der ersten lokalen Bitleitung 79 und einem Transistor (z. B. Transistor 76-2) in der zweiten lokalen Bitleitung 80 verbunden ist. Daher können die Transistoren 75-2 und 76-2 als eine Zwei-Transistor-Zelle mit einer gemeinsam genutzten Sourcediffusion betrachtet werden.
  • Der Vorgang des Ladens des erdfreien Gates (Floating-Gate) wird der Programmierungsschritt für die Speicherzelle genannt. Dies wird Byte für Byte durch Injektion heißer Elektronen durch das Anlegen einer großen positiven Spannung wie zum Beispiel 12 Volt zwischen dem Gate und der Source und einer positiven Spannung wie zum Beispiel sechs Volt zwischen der Drain und der Source erreicht.
  • Der Vorgang des Entladens des erdfreien Gates wird der Löschschritt für die Speicherzelle genannt. Dies wird durch einen F-N (Fowler-Nordheim) Tunnelmechanismus zwischen dem Floating-Gate und der Source (Sourcelöschen) oder zwischen dem Floating-Gate und dem Substrat (Kanallöschen) erreicht. Das Sourcelöschen wird durchgeführt, indem eine positive Vorspannung wie zum Beispiel zwölf Volt oder sieben Volt an die Source angelegt wird, während das Gate geerdet ist oder unter einer negativen Vorspannung wie zum Beispiel minus sieben Volt steht. Die Kanallöschung auf Basis eines Blocks wird durchgeführt, indem eine negative Vorspannung an das Gate und/oder eine positive Vorspannung an das Substrat angelegt wird. F-N-Tunneln kann ebenso für den Programmierungsschritt verwendet werden.
  • Eine erste globale Bitleitung 83 und eine zweite globale Bitleitung 84 sind jedem Drain-Source-Drain-Block zugeordnet. Die erste globale Bitleitung 83 ist mit der Source des oberen Block-Auswahltransistors 81 über einen Metall-zu-Diffusionskontakt 57 verbunden. In ähnlicher Weise ist die zweite globale Bitleitung 84 mit der Source des oberen Block-Auswahltransistors 82 über einen Metall-zu-Diffusionskontakt 58 verbunden. Die Drains der oberen Block-Auswahltransistoren 81, 82 sind mit der ersten und zweiten lokalen Bitleitung 83 bzw. 84 verbunden. Die Gates der oberen Block-Auswahltransistoren 81, 82 werden durch ein oberes Block-Auswahlsignal TBSELA gesteuert.
  • Die lokale virtuelle Masseleitung 78 ist mit einer virtuellen Masseanschluß-Metalleitung 59 über die Leiterbahn 54A durch den unteren Block-Auswahltransistor 85 verbunden. Die Drain des unteren Block-Auswahltransistors 85 ist mit der lokalen virtuellen Masseleitung 78 verbunden. Die Source des unteren Block-Auswahltransistors 85 ist mit der Leiterbahn 54A verbunden. Das Gatter des unteren Block-Auswahltransistors 85 wird durch ein unteres Block-Auswahlsignal BBSELA gesteuert. In dem bevorzugten System ist die Leiterbahn 54A eine eingegrabene Diffusionsleiterbahn, die sich bis zu einem Metall-zu-Diffusionskontakt 60A, der für Kontakt mit einem vertikalen virtuellen Massebus 59 aus Metall sorgt, an einer Stelle erstreckt, die horizontal durch das Array versetzt ist.
  • Die globalen Bitleitungen (83, 84) erstrecken sich vertikal durch das Array bis zu den entsprechenden Spaltenauswahltransistoren 70, 71, über die eine ausgewählte globale Bitleitung mit Abtast-Verstärkern und Programmierungs-Datenschaltungen (nicht abgebildet) verbunden ist. Daher ist die Source des Spaltenauswahltransistors 70 mit der globalen Bitleitung 83, das Gate des Spaltenauswahltransistors 70 mit einem Spaltendekodiersignal Yn( M_1), und die Drain des Spaltenauswahltransistors 70 mit der Leiterbahn 90 verbunden.
  • 2 stellt zwei Unterarrays innerhalb eines größeren integrierten Schaltkreises dar. Die Unterarrays sind generell entlang der gestrichelten Linie 50 unterteilt und enthalten das Unterarray 51A, das im wesentlichen oberhalb der Linie 50 liegt, und das Unterarray 51B, das im wesentlichen unterhalb der Linie 50 liegt. Eine erste Gruppe 52 von Zellen ist in einem Spiegelbild entlang eines gegebenen Bitleitungspaars (z. B. Bitleitungen 91, 92) zu einer zweiten Gruppe 53 von Zellen ausgelegt. Wenn man entlang des Bitleitungspaars nach oben voranschreitet, sind die Speicherunterarrays umgedreht bzw. umgeklappt, um die virtuellen Masseleiterbahnen 54A, 54B (eingegrabene Diffusionen) und die Metall-zu-Diffusionskontakte 55, 56, 57, 58 gemeinsam zu nutzen. Die virtuellen Masseleiterbahnen 54A, 54B erstrecken sich horizontal über das Array bis zu einer vertikalen virtuellen Masseleitung 59 aus Metall durch Metall-zu-Diffusionskontakte 60A, 60B. Die Unterarrays wiederholen sich auf entgegengesetzten Seiten der virtuellen Masseleitung 59 aus Metall, so daß benachbarte Unterarrays eine virtuelle Masseleitung 59 aus Metall gemeinsam nutzen. Die virtuelle Masseleitung 59 aus Metall ist mit der Erdschaltung des Array und Lösch-Hochspannungsschaltung verbunden. Somit erfordert das Unterarray-Layout zwei Kontaktstifte bzw. -spitzen aus Metall pro Spalte von zwei Transistorzellen für die globale Bitleitung und einen Kontaktstift aus Metall pro Unterarray für die virtuelle Masseleitung 59.
  • Darüber hinaus können zwei oder mehrere Unterarrays wie in 2 abgebildet Wortleitungssignale wie dargestellt gemeinsam nutzen, da eine zusätzliche Dekodierung durch die oberen und unteren Block-Auswahlsignale TBSELA, TBSELB, BBSELA und BBSELB zur Verfügung gestellt wird. In einem bevorzugten System ist jeder Block dafür eingerichtet, vier Unterarrays in einer Spalte zu enthalten, eine Zeile in jedem Unterarray, die gemeinsame Wortleitungstreiber mit Zeilen in den anderen drei Unterarrays gemeinsam nutzen. Die Dekodierung zwischen den vier Unterarrays wird unter Verwendung der oberen Block-Auswahltransistoren als Reaktion auf TBSELA und TBSELB ausgeführt. Jedes Unterarray enthält 32 Wortleitungen und 1 K (1.024) Bitleitungen. Somit wird mit vier Unterarrays, 32 Wortleitungen tief, und 1 K Bitleitungen breit, ein Block von 128 K Zellen bereitgestellt. Zweiunddreißig Blöcke ergeben einen 4 Megabyte großen Speicher.
  • Wie man sehen kann, stellt die Architektur von 2 ein in Sektoren eingeteiltes Flashspeicher-Array zur Verfügung. Dies ist vorteilhaft, weil die Source und die Drain der Transistoren in nicht ausgewählten Unterarrays während eines Lese-, Programmierungs- oder Löschungszyklus' von den Strömen und Spannungen auf den Bitleitungen und virtuellen Masseleitungen isoliert werden können. Daher wird während einer Leseoperation das Abtasten verbessert, weil Leckstrom von nicht ausgewählten Unterarrays nicht zum Strom auf den Bitleitungen beiträgt. Während der Löschoperation werden die hohen Spannungen der virtuellen Masseleitungen von den nicht ausgewählten Blöcken durch die BBSEL-Transistoren isoliert. BBSEL wird mit hoher Spannung getrieben, um hohe Spannung für das Array zu übergeben, wenn das Blocklöschflag gesetzt ist, und mit Null Volt, wenn das Blocklöschflag zurückgesetzt ist. Dies ermöglicht eine Blocklöschoperation.
  • 3 stellt eine alternative Architektur des Flashspeicher-Array gemäß der vorliegenden Erfindung dar, in der zwei Spalten von Flashspeicher-Zellen eine einzige Bitleitung aus Metall gemeinsam nutzen. 3 zeigt vier Segmente des Arrays, wobei jedes Segment ein Spaltenpaar von Flashspeicher-Zellen in einer Drain-Source-Drain-Konfiguration enthält.
  • Daher enthält das erste Segment 120 eine erste Draindiffusionsleitung 121, eine Sourcediffusionsleitung 122 und eine zweite Draindiffusionsleitung 123. Wortleitungen WL0 bis WL63 überlagern jeweils die Floating-Gates einer Zelle in einem ersten Paar von Spaltenpaaren und eine Zelle in dem zweiten Paar von Spaltenpaaren. Wie in der Figur abgebildet enthält ein erstes Paar von Spaltenpaaren Zelle 124, Zelle 125, Zelle 126 und Zelle 127. Nicht abgebildet sind Zellen, die mit den Wortleitungen WL2 bis WL61 verbunden sind. Das zweite Paar von den Spaltenpaaren enthält Zelle 128, Zelle 129, Zelle 130 und Zelle 131. Entlang derselben Spalte des Array ist ein zweites Segment 135 dargestellt. Es hat eine ähnliche Architektur wie das Segment 120, außer daß es spiegelbildlich ausgelegt ist.
  • Daher enthält, wie man erkennen kann, der Transistor im ersten der Spaltenpaare wie die Zelle 125 eine Drain in der Draindiffusionsleitung 121 und eine Source in der Sourcediffusionsleitung 122. Ein Floating-Gate (erdfreies Gate) überlagert die Kanalregion zwischen der ersten Draindiffusionsleitung 121 und der Sourcediffusionsleitung 122. Die Wortleitung WL1 überlagert das Floating-Gate der Zelle 125, um eine Flashzelle aufzubauen.
  • Das Segment 120 und das Segment 135 nutzen eine virtuelle Array-Masse-Diffusion 136 gemeinsam. Daher ist die Sourcediffusionsleitung 122 von Segment 120 mit der Diffusionsleitung 136 verbunden. In ähnlicher Weise ist die Sourcediffusionsleitung 137 von Segment 135 mit der Sourcediffusionsleitung 136 verbunden.
  • Wie oben erwähnt nutzt jedes Spaltenpaar von Zellen in einem gegebenen Segment (z. B. Segment 120) eine einzige Metalleitung gemeinsam. Daher ist ein Auswahltransistor 138 für den rechten Block und ein Auswahltransistor 139 für den linken Block enthalten. Der Transistor 139 enthält eine Source in der Draindiffusionsleitung 121, eine mit einem Metallkontakt 140 verbundene Drain und ein Gate, das mit dem Steuersignal BLTR1 auf Leitung 141 verbunden ist. In ähnlicher Weise enthält der rechte Auswahltransistor 138 eine Source in der Draindiffusionsleitung 123, eine mit einem Metallkontakt 140 verbundene Drain und ein Gate, das mit dem Steuersignal BLTR0 auf Leitung 142 verbunden ist. Daher sorgt die Auswahlschaltung einschließlich der Transistoren 138 und 139 für eine selektive Verbindung der ersten Draindiffusionsleitung 121 und einer zweiten Draindiffusionsleitung 123 mit der Metalleitung 143 durch den Metallkontakt 140. Wie man sehen kann, enthält das Segment 135 den linken Auswahltransistor 144 und den rechten Auswahltransistor 145, die in ähnlicher Weise mit einem Metallkontakt 146 verbunden sind. Der Kontakt 146 ist an dieselbe Metalleitung 143 wie der Kontakt 140, der mit Segment 120 verbunden ist, angeschlossen.
  • Die Segmente sind horizontal und vertikal ausgelegt, um ein Array von Flashzellen zur Verfügung zu stellen, das M Wortleitungen und 2N Spalten umfaßt. Das Array benötigt nur N Bitleitungen aus Metall, von denen jede mit einem Spaltenpaar von Flashzellen über Auswahlschaltungen wie oben beschrieben verbunden ist.
  • Obwohl die Figur nur die vier Segmente 120, 135, 150 und 151 zeigt, die an zwei Bitleitungen 143 und 152 aus Metall angeschlossen sind, werden die Arrays horizontal und vertikal wie benötigt wiederholt, um ein Flashspeicher-Array großen Ausmaßes aufzubauen. Das Layout des Array ist kompakt aufgrund der virtuellen Massekonfiguration, des reduzierten Metallstiftbedarfs für das Layout und ferner durch die Fähigkeit, Wortleitungstreiber unter einer Mehrzahl von Zeilen in verschiedenen Segmenten gemeinsam zu nutzen. Daher kann die Wortleitung WL63' einen Wortleitungstreiber gemeinsam mit der Wortleitung WL63 nutzen. In einem Beispielsystem teilen sich acht Wortleitungen einen einzigen Wortleitungstreiber. Daher wird für jeden Satz von acht Zellreihen nur der Stift einer Wortleitungstreiberschaltung benötigt. Die zusätzliche Dekodierung, die durch die linken und rechten Auswahltransistoren (139, 138 für Segment 120) zur Verfügung gestellt wird, ermöglicht die gemeinsam genutzte Wortleitungskonfiguration. Die gemeinsam genutzte Wortleitungskonfiguration hat den Nachteil, daß während einer Blocklöschoperation acht Zellreihen sämtlich dieselbe Wortleitungsspannung empfangen, was zu einer Wortleitungsstörung in Zellen führt, die nicht zu löschen gewünscht werden. Wenn es für ein gegebenes Array ein Problem darstellt, kann dieses Störungsproblem eliminiert werden, indem sichergestellt wird, daß alle Blocklöschoperationen für Segmente dekodieren, die alle Zellreihen enthalten, die an die gemeinsam genutzten Wortleitungstreiber angeschlossen sind. Für acht Wortleitungen, die einen einzigen Treiber gemeinsam nutzen, erfordert dies eine minimale Blocklöschung von acht Reihen.
  • 4 ist ein vereinfachtes Diagramm eines integrierten Flashspeicherschaltkreises, der die Löschaussetzlogik der vorliegenden Erfindung enthält. Der integrierte Schaltkreis beinhaltet ein Flashspeicher-Array 400 mit einer Architektur wie oben in den 2 oder 3 dargestellt. Verbunden mit dem Flashspeicher-Array 400 sind ein X-Dekodierer 401 und ein Y-Dekodierer 402 zum Treiben der Wortleitungs- und Bitleitungsauswähler in dem Flashspeicher-Array 400. In dem bevorzugten System ist auch ein Blockdekodierer 403 zur Auswahl von Blöcken für Zwecke des Löschvorgangs mit dem Flashspeicher-Array 400 verbunden.
  • Der X-Dekodierer 401, der Y-Dekodierer 402 und der Blockdekodierer 403 sind mit einem Adreßpuffer- und -auffangregister-Schaltkreis 404 verbunden. Der Adreßpuffer- und -auffangregister-Schaltkreis 404 ist vorzugsweise sowohl mit den Adreßanschlußfeldern auf dem Chip (nicht abgebildet) als auch mit einem Adreßzähler 405 verbunden.
  • Mit dem Flashspeicher-Array 400 ist auch ein Satz von Abtastverstärkern 406 verbunden. Die Abtastverstärker sind mit einem Datenausgabe-Signalspeicher bzw. -Auffangregister 407 und mit den Datenanschlußfeldern 408 verbunden.
  • Die Datenanschlußfelder 408 sind in einem bevorzugten System an ein Dateneingabe-Auffangregister 409 angeschlossen, das seinerseits mit einem Datendekodierer 410 verbunden ist. Der Datendekodierer 410 ist an ein Befehlsregister 411 angeschlossen und interpretiert die Dateneingabesequenzen, um Befehle zu erkennen und an das Befehlsregister 411 zu liefern. Die Chip-Freigabe- und Ausgangs-Freigabe-Steuerungsanschlußfelder 412 sind mit der Chip-Freigabe- und Ausgabe-Freigabe-Steuerungslogik 413 verbunden. Die Chip-Freigabe- und Ausgangs-Freigabe-Steuerungslogik 413 ist auch an das Befehlsregister 411 angeschlossen, das bei der Dekodierung von Befehlen verwendet wird.
  • Das Dateneingabe-Auffangregister 409 ist auch an die Lese- und Schreib-Steuerungslogik 415 angeschlossen. Die Lese- und Schreib-Steuerungslogik 415 reagiert auf Lese- und Schreibkommandos in dem Befehlsregister 411 zu Zwecken der Verwaltung des Lesens und Schreibens aus dem bzw. in das Flashspeicher-Array 400. Der Lese- und Schreib-Steuerungsschaltkreis ist an eine Anzahl von Elementen in dem integrierten Schaltkreis angeschlossen, wie durch den Pfeil 416 dargestellt.
  • Wie in 4 abgebildet enthält der integrierte Schaltkreis der vorliegenden Erfindung eine Löschaussetz-Steuerungslogik 420. Die Löschaussetz-Steuerungslogik ist an die Löschwiederaufnahme-Steuerungslogik 421 angeschlossen. Ebenso ist die Lösch-Steuerungslogik 422 auf dem Chip enthalten. Die Lösch-Steuerungslogik 422, die Löschwiederaufnahme-Steuenangslogik 421 und die Löschaussetz-Steuerungslogik 420 sind mit dem Befehlsregister 411 auf der Leitung 423 verbunden. Die Lösch-Steuerungslogik 422 in dem bevorzugten System enthält eine Mehrzahl von Blocklöschflags wie unter Bezug auf 1 erwähnt. Die Blocklöschflags sind der Einfachheit halber in 4 nicht abgebildet.
  • Die Lösch-Steuerungslogik 422 reagiert auf ein Löschkommando auf Leitung 423, um einen Blocklöschvorgang zu beginnen. Der Blocklöschvorgang beinhaltet eine Präkonditionierungsphase, die von dem Vorprogrammierungs-Steuerungslogikblock 424 ausgeführt wird, der mit der Lösch-Steuerungslogik 422 verbunden ist. Der Vorprogrammierungs-Steuerungslogikblock 424 ist mit einem Programmierungs-Überprüfungs-Steuerungslogikblock 425 verbunden. Als Teil des Programmierungs-Überprüfungsprozesses der Präkonditionierungsphase wird ein Datenvergleichsschritt in der Datenvergleichslogik 426 ausgeführt. Die Datenvergleichslogik 426 ist mit den Abtastverstärkem 406 für Zwecke der Byte-für-Byte-Überprüfung der erfolgreichen Vorprogrammierung der Daten in dem Flashspeicher-Array 400 verbunden. Sobald das Array erfolgreich vorprogrammiert wurde, wendet die Löschsteuerung einen Löschimpuls auf ausgewählte Blöcke in dem Flashspeicher-Array an. Nach Anwendung des Löschimpulses unter Steuerung des Lösch-Steuerungsblocks 422 wird ein Löschüberprüfungs-Steuerungslogikblock 427 freigegeben. Der Löschüberprüfungs- Steuerungslogikblock 427 ist für Zwecke der Byte-für-Byte-Überprüfung der erfolgreichen Löschung von Blöcken in dem Flashspeicher-Array an die Datenvergleichslogik 426 angeschlossen.
  • Ein Programmierungs- und Lösch-Wiedefiolzähler 428 ist mit den Löschüberprüfungs- und Vorprogrammierungs-Steuerungsblöcken 422 und 424 verbunden. Der Programmierungs- und Lösch-Wiederholzähler 428 verfolgt die Anzahl von Löschversuchen eines Blocks und die Anzahl von Vorprogrammierungsversuchen eines Bytes in dem Block. Wenn die Anzahl von ausgeführten Versuchen einen Grenzwert überschreitet, dann wird ein Fehler angezeigt.
  • Die Löschaussetz-Steuerungslogik 422 ist mit der Lese- und Schreib-Steuerungslogik 415, den Löschüberprüfungs-Steuerungs-, Löschsteuerungs- und Vorprogrammierungsüberprüfungs-Steuerungs-Blöcken verbunden, um die Aussetzung des Löschvorgangs nach der Ausgabe des Löschaussetz-Befehls so effizient und schnell wie möglich zu Stande zu bringen.
  • Die Löschwiederaufnahme-Steuerungslogik 421 reagiert auf Befehle auf der Leitung 423, um die Wiederaufnahme des Löschvorgangs an einem geeigneten Punkt, abhängig von der Stelle, an der der Löschaussetzprozeß ausgeführt wurde, zu veranlassen.
  • Genauere Einzelheiten bezüglich der in der Blocklöschlogik gemäß der vorliegenden Erfindung einbezogenen Vorgänge kann man unter Bezugnahme auf die 58 unten verstehen. Die 57 stellen die Präkonditionierungs-, Lösch- und Aussetzvorgänge dar, die an einem Blocklöschvorgang gemäß der vorliegenden Erfindung beteiligt sind. In 5 wartet die Logik, wie man sehen kann, in einem Bereitschafts- bzw. Standby-Modus (Schritt 500). Wenn der Benutzer ein Löschkommando ausgibt, wird es von der Logik in Schritt 501 erkannt. An diesem Punkt beginnt der Zustandsautomat einen Löschablauf auszuführen. Am Beginn des Löschablaufs wird der Adreßzähler auf Null gesetzt (Schritt 502). Als nächstes wird ein Vorprogrammierungsimpuls auf das Byte an Adresse 0 angelegt (Schritt 503). Ein Löschaussetz-Prüfpunkt tritt nach dem Anlegen des Vorprogrammierungsimpulses in Schritt 503 auf. Daher prüft der Algorithmus, um zu erkennen, ob ein Löschaussetz-Befehl von der Steuerungslogik empfangen wurde (Schritt 504). Wenn der Befehl empfangen wurde, dann wird ein Löschaussetzablauf ausgeführt (Schritt 505). Wenn der Löschaussetzprozeß vollzogen ist oder wenn kein Löschaussetz-Befehl in Schritt 504 empfangen wurde, dann wird ein Vorprogrammierungs-Überprüfungsprozeß für das Byte, das den Impuls erhalten hat, ausgeführt (Schritt 506). Als nächstes stellt der Algorithmus fest, ob das Byte den Vorprogrammierungs-Überprüfungsschritt (Schritt 507) bestanden hat. Wenn es nicht bestanden hat, dann wird festgestellt, ob der Programmierungszähler eine Zahl kleiner oder gleich dem Programmierungs-Wiederholungs-Grenzwert speichert. Wenn der Programmierungszähler kleiner als der Programmierungs-Wiederholungs-Grenzwert ist, dann geht der Algorithmus in einer Schleife zurück zu Schritt 503, um die Vorprogrammierung des Bytes erneut zu versuchen. Wenn der Programmierungszähler-Grenzwert überschritten ist, dann tritt eine Löschfehlschlag-Bedingung ein.
  • Wenn das Byte in Schritt 507 die Vorprogrammierung bestanden hat, dann wird der Adreßzähler inkrementiert (Schritt 509). Als nächstes stellt der Algorithmus fest, ob dies die letzte Adresse in dem Block ist, der Gegenstand des Löschvorgangs ist. Wenn es nicht die letzte Adresse ist, dann geht der Algorithmus in einer Schleife zurück zu Schritt 503, um das nächste Byte vorzuprogrammie ren. Wenn es die letzte Adresse ist, dann schreitet der Algorithmus zu Punkt 100 weiter, um den Prozeß von 6 zu beginnen, der der Löschphase des Blocklöschvorgangs entspricht. Gemäß einer Ausführungsform der vorliegenden Erfindung entspricht der Punkt 100 auch einem Löschaussetz-Prüfpunkt.
  • In technischeren Begriffen ausgedrückt gibt es vier Perioden bzw. Zeitabschnitte in der Vorprogrammierungsphase, nämlich die Programmierung, die Wiederherstellung bzw. Erholung nach der Programmierung, die Überprüfung der Programmierung und die Wiederherstellung bzw. Erholung nach der Überprüfung der Programmierung. Sowohl die Programmierungsperiode als auch die Periode der Überprüfung der Programmierung haben einige Hochspannungsoperationen. Daher ist es notwendig, gewisse Erholungsintervalle nach der Programmierungsoperation und der Operation zur Überprüfung der Programmierung vorzusehen, so daß sich die Schaltkreise von den Hochspannungsbetriebsarten erholen können, um interne Knoten zu entladen, etc. In dem bevorzugten System geschieht die Aussetzung des Zustandsautomaten nach den Erholungsintervallen, so daß sich die Schaltkreise von den Hochspannungsoperationen erholt haben. Auf diese Weise ist sichergestellt, daß der Chip nach dem Löschwiederaufnahme-Prozeß richtig funktioniert.
  • Punkt 100 von 5 ist in 6 dargestellt und ist der Beginn der Löschphase des Blocklöschvorgangs. Der erste Schritt in der Löschphase ist, das Anlegen des Löschimpulses an den zu löschenden Block zu beginnen (Schritt 600). Ein Löschaussetz-Prüfpunkt tritt während der Anwendung des Löschimpulses auf, wie durch Schritt 601 angezeigt. Wenn kein Löschaussetz-Befehl nach dem Beginn des Löschimpulses und vor dem Überschreiten der Zeitüberwachung am Ende eines Löschimpulses wie bei Schritt 602 angegeben empfangen wurde, dann setzt der Algorithmus die Schleife bis zum Ende des Löschimpulses fort. Wenn ein Löschaussetz-Befehl in Schritt 601 empfangen wird, dann wird ein Löschaussetzablauf ausgeführt (Schritt 603). Nach dem Löschaussetzablauf von Schritt 603 oder nach dem Ende des Löschimpulses in Schritt 602, tritt der Algorithmus in das Löschüberprüfungsstadium ein, indem er den Adreßzähler auf 0 zurücksetzt (Schritt 604). Ein Löschüberprüfungsprozeß wird Byte für Byte ausgeführt (Schritt 605). Der Löschaussetz-Prüfpunkt von Schritt 601 erstreckt sich vorzugsweise zusätzlich von dem Zeitpunkt nach dem Ende des Löschimpulses bis vor das Testen des ersten Bytes in dem Löschüberprüfungsprozeß in Schritt 607. Der Zeitpunkt, zu dem der Adreßzähler in Schritt 604 auf 0 zurückgesetzt wird, kann irgendwo in dem Prozeß vor der Löschüberprüfung liegen. Ebenso kann dieses Zurücksetzen des Zählers parallel zu der Überwachung auf dem Löschaussetz-Befehl vollzogen werden.
  • Ein Löschaussetz-Prüfpunkt tritt während des Löschverifizierungsstadiums auf, das wie in Schritt 606 angegeben Byte für Byte abläuft. Wenn kein Löschaussetz-Kommando in Schritt 606 empfangen wird, dann stellt der Algorithmus fest, ob das aktuelle Byte den Löschüberprüfungsprozeß bestanden hat (Schritt 607). Falls nicht, dann wird der Löschwiederholzähler in Schritt 608 überprüft. Wenn der Löschwiederholzähler einen Wert speichert, der kleiner oder gleich dem Löschwiederholgrenzwert ist, dann kehrt der Algorithmus in einer Schleife zu Schritt 600 zurück, um den Löschimpuls erneut anzulegen (wenn nur ein Block beteiligt ist, sonst geht der Algorithmus zu einem nächsten Block weiter). Wenn der Löschwiederholgrenzwert überschritten ist, dann liegt eine Löschfehlschlag-Bedingung vor.
  • Wenn das aktuelle Byte bei Schritt 607 den Löschüberprüfungstest besteht, dann wird der Adreßzähler inkrementiert (Schritt 609). Als nächstes stellt der Algorithmus fest, ob die letzte Adresse in dem Block übergeben wurde (Schritt 610). Falls nicht, dann geht der Algorithmus in einer Schleife zu Schritt 605 zurück, um mit der Löschüberprüfung, die Byte für Byte erfolgt, fortzufahren. Wenn die letzte Adresse übergeben wurde, dann kehrt die Logik zu dem Bereitschafts- bzw. Standby-Zustand am Ende des Löschvorgangs zurück (Schritt 611).
  • Wenn der Löschaussetz-Prüfpunkt in Schritt 606 ein Löschaussetz-Kommando erkennt, dann geht der Algorithmus in einer Schleife zu Schritt 612, um die Löschüberprüfung für den aktuellen Block zwangsweise zum Scheitern zu bringen. Als nächstes wird der Block-Adreßzähler in Schritt 613 inkrementiert. Der Algorithmus prüft dann in Schritt 614, ob dies der letzte Block ist. Falls nicht, dann geht der Algorithmus in einer Schleife zu Schritt 612 zurück, um die Löschüberprüfung für alle Blöcke zwangsweise zum Scheitern zu bringen. Nach dem letzten Block wird dann der Löschunterbrechungsablauf ausgeführt (Schritt 615). Nach dem Löschunterbrechungsablauf von Schritt 615 kehrt der Algorithmus zu Punkt 604 zurück, um den Löschüberprüfungsvorgang erneut zu versuchen.
  • Der Löschunterbrechungsablauf ist in 7 dargestellt. Nach dem Eintritt in den Löschunterbrechungsablauf initialisiert sich die Logik und gibt ein Unterbrechung-Bereit-Signal aus (Schritt 700). Nach Unterbrechung-Bereit gibt der Benutzer einen Array-Lesen-Befehl oder einen Befehl für eine andere Art des Zugriffs auf einen anderen Block als den Block oder die Blöcke, der bzw. die Gegenstand des Löschvorgangs ist bzw. sind (Schritt 701). In Schritt 702 stellt der Vorgang fest, ob der Zugriff von Schritt 701 auf einen sicheren Block geschehen soll (Schritt 702). Falls nicht, dann wird ein Fehler angezeigt (Schritt 703). Wenn der Zugriff auf einen sicheren Block geschehen soll, dann wird der Lesezugriff oder der anderweitige Zugriff ausgeführt (Schritt 704). Der Löschaussetzprozeß ist vollzogen, wenn der Benutzer einen Löschwiederaufnahme-Befehl, wie in Schritt 705 angezeigt, gibt.
  • 8 stellt den Algorithmus für das eingebettete Löschen dar, das von der Steuerungslogik 12 unter Verwendung der Flags 13 und des Adreßzählers 14 von 1 ausgeführt wird, um die Wirkungsweise bzw. den Betrieb der Blocklöschflags zu veranschaulichen. Nähere Einzelheiten der Blocklöschoperation sind in dem oben zitierten U.S.-Patent Nr. 5.414.664 dargelegt.
  • Gemäß dieser bevorzugten Version des eingebetteten Löschalgorithmus beginnt eine Löschoperation mit dem Setzen eines oder mehrerer Flags. Für ein Chiplöschen werden alle Flags gesetzt und die Adreßzähler werden auf Adresse 0 initialisiert. Wenn eine Blocklöschoperation ausgeführt werden soll, werden nur die Flags für ausgewählte Blöcke gesetzt. Um den Löschvorgang zu starten, wird, wie oben mit Bezug auf 5 beschrieben, mit ausgewählten Blöcken eine Vorprogrammierungsphase mit der Fähigkeit bzw. Möglichkeit zur Löschaussetzung an Bytegrenzen ausgeführt (Schritt 800).
  • Im nächsten Schritt werden alle Blöcke mit einem gesetzten Flag durch Anlegen eines Löschimpulses gelöscht (Schritt 801). Dann wird die gesamte Menge von ausgewählten Blöcken durch Anlegen von Erregerspannungen gelöscht, wie oben beschrieben, und zwar segmentweise unter der Steuerung des unteren Blockauswahltransistors. Solange der Löschimpuls anliegt, überwacht die Logik die Befehlsschnittstelle bezüglich eines Löschaussetz-Befehls (Schritt 802). Wenn kein Befehl auftritt, bevor der Impuls die Zeitüberwachung überschreitet (Schritt 803), dann fährt der Algorithmus mit dem Löschüberprüfungsprozeß fort, indem er Löschüberprüfungsspannungen aufbaut (Schritt 804).
  • Wenn der Löschaussetz-Befehl in Schritt 802 erkannt wird, dann führt der Algorithmus einen Löschaussetzvorgang aus, der in 8 durch Schritt 805 repräsentiert ist, der nach einem Löschwiederaufnahme-Befehl Ausschau hält und beim Empfang des Befehls zu Schritt 801 zurückkehrt.
  • Der Löschnachprüfungsvorgang, der bei Schritt 804 beginnt, setzt aus beim Aufbauen der Löschnachprüfungsspannungen (Schritt 808). Nach dem Aufbauen der Löschnachprüfungsspannungen überwacht die Logik die Befehlsschnittstelle bezüglich des Löschaussetz-Befehls (Schritt 809). Wenn der Befehl empfangen wird, dann führt der Algorithmus einen Löschaussetzvorgang durch, der in 8 durch Schritt 810 repräsentiert ist. In Schritt 810 wird auf der Befehlsschnittstelle nach einem Löschwiederaufnahme-Befehl Ausschau gehalten. Wenn der Befehl empfangen wird, dann kehrt der Algorithmus zu Schritt 804 zurück.
  • Wenn in Schritt 809 kein Löschaussetz-Befehl empfangen wird, dann wird das Flag für einen aktuellen Block getestet (Schritt 813). Wenn das Flag nicht gesetzt ist, dann verzweigt der Algorithmus zu Schritt 814, um zu testen, ob es der letzte Block in dem Chip ist. Wenn es nicht der letzte Block ist, dann wird die höchstwertige Bitadresse vergrößert und die niedrigstwertige Bitadresse zurückgesetzt, um zum nächsten Block weiterzugehen (Schritt 815). Nach Schritt 815 geht der Algorithmus in einer Schleife zu Schritt 809 zurück, um zu überprüfen, ob ein Aussetzbefehl vorliegt.
  • Wenn das Flag in Block 813 gesetzt ist, dann stellt der Algorithmus fest, ob das aktuelle Byte die Löschüberprüfung bestanden hat (Schritt 816) und ob das aktuelle Byte das letzte Byte in dem Block ist. Wenn es besteht und es nicht das letzte Byte ist, dann wird die niedrigerwertige Bitadresse inkrementiert, um zum nächsten Byte weiterzugehen (Schritt 817) und der Algorithmus geht in einer Schleife zu Schritt 809 zurück, um erneut zu prüfen ob ein Aussetzbefehl vorliegt.
  • Wenn in Schritt 816 das letzte Byte in dem Block vorliegt oder es die Überprüfung nicht bestanden hat, dann geht der Algorithmus in einer Schleife zu Schritt 818 über, in dem er erneut feststellt, ob das Byte die Löschüberprüfung bestanden hat und ob es das letzte Byte in dem Block ist. Wenn es bestanden hat und es das letzte Byte war, dann wird das Blocklöschflag zurückgesetzt (Schritt 819) und der Algorithmus geht zu Schritt 814 über, um festzustellen, ob der letzte Block getestet wurde. Wenn das Byte die Überprüfung in Block 818 nicht bestanden hat, dann geht der Algorithmus zu Schritt 814 über, um festzustellen, ob der letzte Block getestet wurde, und setzt die Schleife durch die Schritte 815 und 809 fort, bis alle Blöcke getestet wurden.
  • Wenn in Schritt 814 der letzte Block erkannt wird, dann testet der Algorithmus in Schritt 820, ob alle Flags zurückgesetzt wurden. Wenn sie alle zurückgesetzt sind, dann wurde der Löschvor gang überprüft (Schritt 821). Wenn an dieser Stelle bzw. zu diesem Zeitpunkt nicht alle Flags zurückgesetzt sind, dann geht der Algorithmus in einer Schleife zu Schritt 801 zurück, um die Blöcke zu löschen, die immer noch ein gesetztes Flag haben.
  • Die 9, 10 und 11A11B sind vereinfachte Logikdiagramme und ein Zeitdiagramm, welche die Löschaussetzoperation darstellen, die dem Block 504 in 5 entspricht. Die 12, 13, 14, 15 und 16A16B stellen eine vereinfachte Logik und einen vereinfachten Zeitablauf für die Löschaussetzoperation, die dem Block 601 von 6 entspricht, zur Verfügung. Die 17 und 18 liefern eine vereinfachte Logik, die dem Löschaussetzprozeß in Block 606 von 6 entspricht. Die Logik und der Zeitablauf, die in diesen 918 bereitgestellt werden, liefern ein Beispiel für den Zeitablauf des Löschaussetzprozesses, und für einfache Logik, die bei dem Zustandsautomaten verwendet wird, um den Zeitablauf zu steuern. Andere Techniken und Zeitabläufe können je nach der speziellen Implementierung des Löschaussetz-Algorithmus' der vorliegenden Erfindung verwendet werden.
  • 9 ist ein Logikdiagramm, das die Operation bzw. Wirkungsweise des Löschaussetz-Signals beim Erzeugen der Steuersignale zur Programmierungserholung PGMREC und zur Programmierungsüberprüfung PGMVFY zeigt. Die Logik umfaßt einen Setz-/Rücksetz-Signal- bzw. -Zustandsspeicher 900 (SR-Latch), der eine Ausgabe PGMREC auf der Leitung 901 erzeugt. Die Ausgabe PGMREC auf der Leitung 901 errichtet ein Zeitfenster für das Erholen von den hohen Spannungen, die während des Programmierimpulses verwendet werden. Die Eingaben zum SR-Latch 900 beinhalten das TPGMREC1-Signal auf der Leitung 902 und das TPRCEND-Signal auf der Leitung 903. Das TPGMREC1-Signal ist ein Steuersignal, das von dem Zustandsautomaten erzeugt wird, um die Programmierungserholung auszulösen. Das TPRCEND-Signal auf der Leitung 903 ist ein Triggersignal, das von dem Zustandsautomaten erzeugt wird, um zu veranlassen, daß das Programmierungserholungintervall endet.
  • Die Logik in 9 beinhaltet auch das SR-Latch 910, das das PGMVFY-Signal auf der Leitung 911 erzeugt, das ein Programmierungsüberprüfungsintervall anzeigt. Die gesetzte Eingangsgröße zum SR-Latch 910 ist die Ausgangsgröße des NOR-Gates 912. Die Rücksetzeingabe ist das TPGMREC2-Signal auf der Leitung 913. Die Eingaben bzw. Eingangsgrößen des NOR-Gatters 912 beinhalten die Ausgangsgrößen des Invertierers 914, dessen Eingangsgröße das TPRCEND-Signal auf der Leitung 903 ist, und das ERSPEND-Signal auf der Leitung 915. Das ERSPEND-Signal auf der Leitung 915 ist das Löschaussetzsignal, das von dem Zustandsautomaten erzeugt wird, um die Programmierungsüberprüfungssequenz während eines Löschaussetzintervalls zu sperren bzw. zu blockieren. Das TPGMREC2-Signal auf der Leitung 913 ist ein Steuersignal, das verwendet wird, um das SR-Latch 910 zur Programmierungsüberprüfung zurückzusetzen, um das Programmierungsüberprüfungintervall zu beenden.
  • 10 stellt die Logik dar, die verwendet wird, um das Signal ERASE SUSPEND READY zu erzeugen, das einem Signal an den Benutzer der Speichereinrichtung entspricht, daß die Löschaussetzung erfolgreich erreicht wurde und eine Leseoperation ausgeführt werden kann. Diese Logik enthält das SR-Latch 1000 und erzeugt das Signal ERASE SUSPEND READY auf der Leitung 1001. Die Eingaben zum SR-Latch 1000 beinhalten die Ausgabe des NOR-Gatters 1002 bei der Setzeingabe und das Signal ERASE RESUME auf der Leitung 1003 bei der Rücksetzeingabe. Die Eingaben an das NOR-Gatter 1002 umfassen das PGMVFY-Signal auf der Leitung 1004 und die Ausgabe des NAND-Gatters 1005. Die Eingaben an das NAND-Gatter 1005 umfassen das TPRCEND-Signal auf der Leitung 1006 und das ERSPEND-Signal auf der Leitung 1007.
  • Die Wirkungsweise der Logik der 9 und 10 kann man unter Bezug auf die Zeitdiagramme in den 11A und 11B verstehen. Unter Bezug auf die 11A kann man die Zeitablaufsequenz der Programmierung verstehen. Zuerst beginnt ein Programmierungsintervall bei Punkt 1100. Der Programmierungsimpulszyklus dauert bis zum Ende des Programmierungssignals bei Punkt 1101. Bei Punkt 1101 beginnt das Programmierungserholungsintervall als Reaktion auf den TPGMREC1-Impuls bei Punkt 1102. Während des Programmierungserholungsintervalls klingen die hohen Spannungen ab, die während des Programmierungsimpulszyklus' erzeugt wurden. Das Ende des Programmierungserholungsintervalls wird durch den TPRCEND-Impuls bei Punkt 1103 signalisiert. Nach der Programmierungserholungssequenz wird die Programmierungsüberprüfung eingeleitet. Wiederum wird dieses Intervall durch den TPRCEND-Impuls bei Punkt 1103 eingeleitet. Das Ende des Überprüfungsintervalls wird durch den TPGMREC2-Impuls bei Punkt 1104 signalisiert. Nach einem Erholungsintervall nach der Programmierungsüberprüfung, das durch den Impuls 1105 repräsentiert wird, beginnt eine weitere Programmierungssequenz.
  • In 11B wird die Löschaussetzung an dem Prüfpunkt in Block 504 von 5 dargestellt. Die ersten vier Aufzeichnungen in 11B entsprechen denselben vier Aufzeichnungen in 11A und haben gleiche Bezugszahlen. Ein Löschaussetzsignal wird jedoch bei Punkt 1110 in dem Zeitdiagramm von 11B ausgegeben. Wenn das Löschaussetzsignal auf einem hohen Zustand ist, wird das Signal ERASE SUSPEND READY auf der Leitung 1101 als Reaktion auf das TPRCEND-Signal bei Punkt 1103 erzeugt. Die Sequenzen der Programmierungsüberprüfung und der Erholung von der Programmierungsüberprüfung treten nicht auf. Daher kann man in 11B sehen, daß der Löschaussetz-Befehl zu einer Unterbrechung des Vorprogrammierungsprozesses zwischen dem Anlegen des Programmierungsimpulses nach der Erholung bei Punkt 1103 und dem Beginn der Programmierungsüberprüfungsoperation führt, wenn der Aussetzbefehl während des Programmierungsimpulses zwischen den Punkten 1100 und 1101 gegeben wird. Derselbe Effekt tritt auch ein, wenn der Aussetz-Befehl während des Intervalls zur Erholung von der Programmierung zwischen den Punkten 1101 und 1103 empfangen wird. Wenn sich der Löschaussetz-Befehl nach dem TPRCEND-Signal auf der Leitung 1106 ereignet, dann wird ERASE SUSPEND READY in dieser Beispiel-Implementierung bis zum nächsten Programmierungszyklus nicht ausgegeben.
  • Unter normalen Bedingungen wird ein elektrischer Impuls TPGMREC1 nach dem Programmierungsimpuls in dem Vorprogrammierungsintervall von einer Zeitüberwachung ausgesendet, um den Zustandsautomaten in eine Periode zur Erholung von der Programmierung zu versetzen, in der sich die zugeordneten Schaltkreise und die programmierten Zellen von dem Belastungszustand mit hoher Spannung hin zu einem normalen Spannungszustand erholen. Nach der Periode zur Erholung von der Programmierung sendet die Zeitüberwachung einen elektrischen Impuls TPRCEND aus, um das Programmierungserholungssignal auf einen niedrigen Zustand zurückzusetzen und das PGMVFY-Signal auf einen hohen Zustand zu setzen, um die Programmierungsüberprüfung zu starten. Wenn der Benutzer während des Selbstlöschprozesses im Vorprogrammierungsschritt einen Löschaussetz-Befehl ausgibt, wird dieser Aussetzbefehl den Übergang vom Zustand der Programmierungserholung in den Zustand der Programmierungsüberprüfung verhindern. Wenn der Löschaussetz-Befehl gegeben wird, nachdem das PGMVFY-Signal auf einem hohen Zustand ist, wird die Sequenz der Programmierungsüberprüfung nicht angehalten, bis das nächste Intervall zur Erholung von der Programmierung abgeschlossen ist.
  • Während des Vorprogrammierungsschrittes ist das Signal ERASE SUSPEND READY nur gültig, wenn sowohl ein Löschaussetz-Befehl gegeben wurde und ein Intervall zur Erholung von der Programmierung abgelaufen ist, das der Schaltung ermöglicht, den normalen Spannungszustand zu erreichen. Der Löschwiederaufnahme-Befehl setzt das Signal ERASE SUSPEND READY auf einen niedrigen Zustand zurück. Sobald eine Löschwiederaufnahme ausgegeben wird, bringt der Zustandsautomat das TPRCEND-Signal auf einen hohen Zustand und löst das PGMVFY-Siganl aus, um den Ablauf von der Programmierungsüberprüfung an wieder aufzunehmen.
  • Die 12, 13, 14, 15 und 16A16B stellen die Logik und den Zeitablauf für das Erzeugen des Signals ERASE SUSPEND READY während des Prüfpunktes in Block 601 von 6 dar. Mit 12 kann man die Erzeugung des ERASE-Befehls auf der Leitung 1200 verstehen. Der ERASE-Befehl auf der Leitung 1200 ist die vom SR-Latch 1201 erzeugte Ausgabe. Die gesetzte Eingabe des SR-Latch 1201 ist die Ausgabe des ODER-Gatters 1202. Die Rücksetzeingabe des SR-Latch 1201 ist das Signal ERASE INTERRUPT auf der Leitung 1203. Die Eingaben des ODER-Gatters 1202 umfassen das Signal PRE-PROGRAM COMPLETED und das Signal ERASE RETRY START. 13 veranschaulicht die Erzeugung der Signale ENABLE ERASE TIMER und RESET ERASE TIMER auf den Leitungen 1300 bzw. 1305. Diese Signale werden unter Verwendung des SR-Latch 1301 erzeugt. Die gesetzte Eingabe für das SR-Latch 1301 ist das ERASE-Signal, das wie in 12 gezeigt erzeugt wird. Die Rücksetzeingabe des SR-Latch 1301 ist die Ausgabe des ODER-Gatters 1303. Die Eingaben für das ODER-Gatter 1303 umfassen die Signale ERASE IN-TERRUPT und ERASE RECOVERY.
  • Das Löschintervall endet unter der Steuerung des Signals ERASE INTERRUPT, das wie in 14 gezeigt erzeugt wird. Das UND-Gatter 1400 erzeugt das Signal ERASE INTERRUPT auf der Leitung 1402 und das Signal ERASE RECOVERY START für den Löschaussetzprozeß auf der Leitung 1402. Die Eingaben für das UND-Gatter 1400 umfassen das ERASE-Signal, das wie in 12 gezeigt erzeugt wird, und das vom Benutzer erzeugte Signal ERASE SUSPEND.
  • 15 stellt die Erzeugung des Signals ERASE SUSPEND READY auf der Leitung 1500 dar. Das Signal auf der Leitung 1500 wird am Ausgang des SR-Latch 1501 erzeugt. Die gesetzte Eingabe von SR-Latch 1501 ist die Ausgabe des UND-Gatters 1502. Die Eingaben für das UND-Gatter 1502 umfassen das Signal ERASE RECOVERY DONE und das Signal ERASE SUSPEND. Der Rücksetzeingang für das SR-Latch 1501 empfängt das Signal ERASE RESUME.
  • Die 16A und 16B stellen den Zeitablauf für den Löschaussetzprozeß bei Prüfpunkt 601 von 6 dar. Wie man in 16A sieht, beginnt das Löschintervall bei Punkt 1600. Am Ende des Löschintervalls 1600 wird ein Signal ERASE RECOVERY STATE bei Punkt 1601 erzeugt. Dieses leitet das Löscherholungsintervall ein. Ein Signal ERASE RECOVERY DONE wird bei Punkt 1602 als Reaktion auf die Zeitüberwachung ausgegeben. Dies führt zum Beginnen des Löschüberprüfungsintervalls und zum Beenden des Löscherholungsintervalls. Nach dem Ende einer Löschüberprüfungssequenz beginnt ein Intervall zur Erholung von der Löschüberprüfung bei Punkt 1603. Ein Impuls ERASE VERIFY COMPLETED wird vom Zustandsautomaten bei Punkt 1604 erzeugt, was den Beginn einer anderen Löschsequenz markiert.
  • Wenn der Löschaussetzprozeß bei Punkt 601 von 6 auftritt, wird der Zeitablauf wie in 16B gezeigt geändert. Insbesondere wird dann, wenn ein Löschaussetzsignal bei Punkt 1610 während eines Löschimpulses gegeben wird, das Signal ERASE INTERRUPT bei Punkt 1611 erzeugt. Dies veranlaßt, daß das Löschintervall beendet wird und ein Prozeß zum Starten einer Erholung vom Löschen beginnt. Das Signal ERASE RECOVERY START veranlaßt das Einleiten eines Intervalls zur Erholung vom Löschen wie in der Figur angegeben. Am Ende des Intervalls zur Erholung vom Löschen wird ein Impuls ERASE RECOVERY DONE bei Punkt 1612 erzeugt. Dies bewirkt, daß das Signal ERASE SUSPEND READY aktiviert wird, vorausgesetzt, daß das Löschaussetzsignal aktiv bleibt. Das Signal bleibt im hohen Zustand, bis das Löschwiederaufnahmesignal das Latch 1501 von 15 zurücksetzt.
  • In diesem Beispiel setzt das Löschsignal einen Löschsteuerungszeitgeber, um 10 Millisekunden für einen Löschimpulszyklus zu zählen. Nach diesem Impulszyklus setzt das Signal ERASE RECOVERY, das vom Zustandsautomaten erzeugt wird, die Löschperiode zurück und löst die Periode zur Erholung vom Löschen ein. Der Zweck der Periode zur Erholung vom Löschen ist, die hohen Spannungen, die während des Löschimpulszyklus' verwendet werden, abzubauen. Sobald die Periode zur Erholung vom Löschen abgeschlossen ist, tritt die Löschsequenz in die Löschüberprüfungssequenz ein. Wenn der Benutzer während des Löschimpulses einen Löschaussetz-Befehl ausgibt, wird der Löschzeitgeber sofort durch das Signal ERASE INTERRUPT deaktiviert, wie man in 13 sehen kann. Die Länge bzw. Dauer des Löschimpulses wird ebenso durch das Signal ERASE INTERRUPT verkürzt. Diese Bedingung löst auch eine Erholung vom Löschen aus. Das ERASE SUSPEND READY folgt auf den Abschluß des Intervalls zur Erholung vom Löschen bei Punkt 1612.
  • Die 17 und 18 stellen die Logik für den Löschaussetzprozeß beim Prüfpunkt-Block 606 von 6 dar. Wie man in 17 sehen kann, wird ein Signal ERASE SUSPEND INITIATION am Ausgang des SR-Latch 1700 erzeugt. Die gesetzte Eingabe des SR-Latch 1700 ist die Ausgabe des UND-Gatters 1701. Die Eingaben für das UND-Gatter 1701 umfassen das Signal ERASE VERIFY und das Signal ERASE SUSPEND. Die Rücksetzeingabe des SR-Latch 1700 ist das Signal ERASE RESUME. Die Ausgabe des SR-Latch 1700 ist das Signal ERASE SUSPEND INITIATION. Das SR-Latch 1702 wird verwendet, um das Signal ERASE SUSPEND READY zu erzeugen. Die Rücksetzeingabe für das SR-Latch 1702 ist das Signal ERASE RESUME. Die gesetzte Eingabe für das SR-Latch 1702 ist die Ausgabe des UND-Gatters 1703. Die Eingaben für das UND-Gatter 1703 umfassen das Signal ERASE VERIFY COMPLETED und das Signal ERASE SUSPEND.
  • In 18 wird das Übereinstimmungssignal erzeugt, das zum Rücksetzen der Blocklöschflags für den Prozeß von 8 verwendet wird. Das Übereinstimmungssignal wird am Ausgang des NOR-Gatters 1800 erzeugt. Die Eingaben des NOR-Gatters 1800 sind das Signal ERASE SUSPEND INITIATION und die Ausgabe des Invertierers 1802. Die Eingangsgröße des Invertierers 1802 ist das Signal DATA COMPARE MATCH, das von dem Überprüfungsvergleicher erzeugt wird.
  • Normalerweise überprüft der Zustandsautomat während des Löschüberprüfungsschrittes mittels einer Operation DATA COMPARE MATCH die gelöschte Zelle, um festzustellen, ob sie erfolgreich gelöscht wurde. Dieser Vorgang wird ausgeführt, bis eine Zelle die Überprüfung verfehlt oder die letzte gelöschte Zelle überprüft ist. Die Ergebnisse des Vergleichs der gelöschten Zellen legen fest, ob eine weitere Löschwiederholsequenz, die einen Löschimpuls und eine Löschüberprüfungssequenz nach sich zieht, für den aktuellen Block erforderlich ist.
  • Während des Löschüberprüfungsschrittes wird das Signal ERASE SUSPEND INITIATION auf den hohen Zustand gesetzt, wenn der Benutzer ein Löschaussetz-Kommando ausgibt, um das Signal DATA COMPARE MATCH auf einen niedrigen Zustand zu zwingen, wie man in 18 sehen kann. Diese Bedingung repräsentiert, daß die letzten der Löschzellen, direkt nachdem die Löschaussetzung ausgegeben wurde, zwangsweise in einen Zustand "nicht übereinstimmend" versetzt werden. Dies veranlaßt den Zustandsautomaten, den nächsten Block mit einem gesetzten Flag zu überspringen und so weiter zu verfahren, bis der letzte Block erreicht ist. Danach wird das Signal ERASE VERIFY COMPLETED auf einen hohen Zustand gesetzt, und das Signal ERASE SUSPEND READY wird aktiviert.
  • Die Logikdiagramme in den 918 sind vereinfachte Diagramme, die darauf ausgerichtet sind, den groben Zeitablauf der Löschaussetz- und -wiederaufnahme-Operation zu zeigen. In tatsächlichen Implementierungen werden synchrone, nicht überlappende Takte verwendet, um Wettlaufsituationen bzw. Konkurrenz zu vermeiden. Offenbar können viele Variationen bzw. Veränderungen bei der Logik verwendet bzw. angewendet werden, abhängig von einem speziellen System, in dem die Erfindung implementiert wird.
  • Dementsprechend sieht die vorliegende Erfindung mehrere Prüfpunkte in dem Löschvorgang für eine Löschaussetz-Operation vor. Um den Löschvorgang so schnell wie möglich auszusetzen, erlaubt es der Algorithmus der vorliegenden Erfindung, daß der Löschvorgang am Ende des ersten Vorprogrammierungs-Impulses und, nachdem das Aussetz-Kommando gegeben wurde, unabhängig davon unterbrochen wird, ob das Byte, das Gegenstand der Vorprogrammierung ist, erfolgreich programmiert wurde. Dies verhindert, daß mehrere Wiederholungen der Vorprogrammierung eines gegebenen Bytes zu einem langen Warten vor der Ausführung des Aussetz-Algorithmus' führen. Darüber hinaus ermöglicht die vorliegende Erfindung, daß der Löschvorgang während des Löschimpulszyklus' unterbrochen wird. Dies sorgt für eine wesentliche Verbesserung bei der Effizienz und Ausführung des Löschaussetz-Kommandos, insbesondere in Systemen, die einen langen Löschimpuls bedingen bzw. mit sich bringen. Schließlich wird der Löschaussetz-Prüfpunkt während der Löschüberprüfung der vorliegenden Erfindung angepaßt, um effizient mit den Blocklöschvorgängen zu arbeiten, die Blocklöschen von mehr als einem Block in einer Menge von Blöcken ermöglichen.
  • Die vorstehende Beschreibung einer bevorzugten Ausführungsform der Erfindung wurde zu Zwecken der Veranschaulichung und der Beschreibung präsentiert. Sie soll nicht erschöpfend sein oder die Erfindung auf die genaue, offenbarte Form beschränken. Offensichtlich liegen für Praktiker auf diesem Gebiet viele Abwandlungen und Änderungen auf der Hand. Der Schutzbereich der Erfindung soll durch die folgenden Ansprüche und ihre Äquivalenzen definiert werden.

Claims (26)

  1. Integrierter Speicherschaltkreis mit: einem Speicherarray (400), wobei das Speicherarray eine Mehrzahl von Blöcken aus Speicherzellen mit erdfreiem Gate aufweist, einer Blocklöschlogik (422), die mit dem Speicherarray verbunden und so ausgestaltet ist, daß sie einen Löschvorgang ausführt, um ausgewählte Blöcke von Speicherzellen in Reaktion auf einen Blocklöschbefehl zu löschen, wobei die Blocklöschlogik aufweist: eine Vorprogrammierlogik (424, 425), welche so ausgelegt ist, daß sie eine Vorkonditionierungsphase des Blocklöschvorganges ausführt, in welcher ein ausgewählter Block vorprogrammiert wird, indem ein Programmierpotential angelegt und dann das Vorprogrammieren des Blockes verifiziert wird, und eine Löschlogik (422, 427), welche so ausgewählt ist, daß sie eine Löschphase des Blocklöschvorganges ausführt, in welcher der ausgewählte Block durch Anlegen eines Löschpotentials gelöscht und dann das Löschen des Blockes verifiziert wird, und eine Löschaussetzlogik (420, 421), die mit der Blocklöschlogik (422) verbunden und so ausgelegt ist, daß sie einen Aussetzvorgang des Löschens ausführt, um den Blocklöschvorgang in Reaktion auf einen Löschaussetzbefehl auszusetzen, wobei die Löschaussetzlogik aufweist eine Aussetzlogik (420), welche so ausgelegt ist, daß sie den Blocklöschvorgang unterbricht, nachdem sie den Löschaussetzbefehl an einen Prüfpunkt in einem Satz von Prüfpunkten in dem Blocklöschvorgang empfangen hat, wobei der Satz einen ersten Prüfpunkt aufweist, welcher die Unterbrechung während der Vorkonditionierungsphase ermöglicht, und einen dritten Prüfpunkt aufweist, welcher die Unterbrechung während der Verifizierung des Löschens ermöglicht, und eine Wiederaufnahmelogik (421), die so ausgelegt ist, daß sie zu dem Blocklöschvorgang zurückkehrt, wobei der integrierte Speicherschaltkreis dadurch gekennzeichnet ist, daß der Satz von Prüfpunkten in dem Blocklöschvorgang einen zweiten Prüfpunkt aufweist, welcher die Aussetzlogik (420) in die Lage versetzt, den Blocklöschvorgang während des Anlegens des Löschpotentials zu unterbrechen, die Blocklöschlogik eine Mehrzahl von Blocklöschanzeigen bzw. -flaggen (13) aufweist, welche die in der Mehrzahl von Blöcken zu löschenden Blöcke kennzeichnen, und einen Zähler (428) für wiederholte Löschversuche aufweist, der eine Anzahl von Löschversuchen anzeigt, die ausgeführt worden sind, wobei der durch die Blocklöschlogik ausgeführte Blocklöschvorgang so ausgelegt ist, daß er ausgewählte Blöcke von Speicherzellen löscht, wie sie durch die Mehrzahl von Blocklöschflaggen bzw. -anzeigen in Reaktion auf einen Blocklöschbefehl der Löschphase angezeigt werden, wobei Blöcke, welche gesetzte Blocklöschanzeigen haben, durch Anlegen eines Löschpotentials gelöscht werden, und dann das Löschen der Blöcke, die gesetzte Blocklöschflaggen haben, in einer Sequenz verifiziert wird, und, falls ein aktueller Block in der Sequenz erfolgreich gelöscht ist, die Blocklöschflagge bzw. -anzeige für den aktuellen Block zurückgesetzt wird und dann die Löschstufe erneut durchlaufen wird, wenn irgendwelche Flaggen bzw. Anzeigen weiterhin gesetzt sind, nachdem die Sequenz vollendet ist, wobei die Aussetzlogik (420) so ausgelegt ist, daß sie, wenn die Unterbrechung während des Verifizierens des Löschens und während des Anlegens des Löschpotentials erfolgt, bewirkt, daß die Blocklöschanzeige des aktuellen Blocks und aller nachfolgenden Blöcke in der Sequenz nicht zurückgesetzt werden, und die Wiederaufnahmelogik (421) so ausgelegt ist, daß sie zu dem Blocklöschvorgang zurückkehrt, ohne den Zähler (428) für wiederholte Löschversuche zurückzusetzen.
  2. Integrierter Speicherschaltkreis nach Anspruch 1, wobei der erste Prüfpunkt das Unterbrechen nach Anlegen eines Programmierpotentials und vor dem Verifizieren des Vorprogrammierens ermöglicht.
  3. Integrierter Speicherschaltkreis nach Anspruch 1 oder 2, wobei Blöcke in der Mehrzahl von Blöcken eine Mehrzahl von Datensegmenten mit mehreren Bits aufweisen und wobei die Vorkonditionierungsphase eine Logik zum Vorprogrammieren eines ausgewählten Blockes anhand von Mehrbitsegmenten aufweist, indem der Reihe nach ein Programmierpotential an ein Multibitsegment angelegt wird, das Vorprogrammieren des Multibitsegmentes verifiziert wird, und zu einem Multiplexsegment in dem Block fortgeschritten wird, bis der Block vorprogrammiert ist, und wobei der erste Prüfpunkt zwischen den Vorprogrammierungen von Multibitsegmenten liegt.
  4. Integrierter Speicherschaltkreis nach Anspruch 1 oder 2, wobei Blöcke in der Mehrzahl von Blöcken eine Mehrzahl von Datensegmenten mit mehreren Bits (Multibitsegmente) aufweisen, und wobei die Vorkonditionierungsphase eine Logik aufweist, um einen ausgewählten Block multibitsegmentweise vorzuprogrammieren, indem der Reihe nach ein Programmierpotential an einem Multibitsegment angelegt wird, die Programmierung des Multibitsegmentes verifiziert wird und zu einem nächsten Multibitsegment in dem Block fortgeschritten wird, bis der Block vorprogrammiert ist, und wobei der erste Prüfpunkt die Unterbrechung nach Anlegen eines Programmierpotentials in einem Multibitsegment und vor der Verifizierung des Programmierens des Multibitsegmentes ermöglicht.
  5. Integrierter Speicherschaltkreis nach Anspruch 1, wobei Blöcke in der Mehrzahl von Blöcken eine Mehrzahl von Datensegmenten mit mehreren Bits (Multibitsegmente) aufweisen, und wobei die Löschphase eine Logik für das Anlegen eines Löschpotentials an der Mehrzahl von Multibitsegmenten aufweist, und wobei der zweite Prüfpunkt das Unterbrechen während des Anlegens des Löschpotentials ermöglicht.
  6. Integrierter Speicherschaltkreis nach Anspruch 1, wobei Blöcke in der Mehrzahl von Blöcken eine Mehrzahl von Daten in Form von Multibitsegmenten aufweisen, und wobei die Löschstufe eine Logik umfaßt, um das Löschen zu verifizieren, indem sequentiell ein Multibitsegment überprüft wird und zu dem nächsten Multibitsegment fortgeschritten wird, bis das Löschen des Blockes verifiziert worden ist, und wobei der dritte Prüfpunkt das Unterbrechen zwischen dem Prüfen bzw. Testen von Multibitsegmenten ermöglicht.
  7. Integrierter Speicherschaltkreis nach Anspruch 1, wobei Blöcke in der Mehrzahl von Daten eine Mehrzahl von Datenmultibitsegmenten aufweisen, und wobei die Löschphase eine Logik umfaßt, um das Löschen zu verifizieren, indem der Reihe nach ein Multibitsegment getestet und zu dem nächsten Multibitsegment fortgeschritten wird, bis das Löschen des Blockes verifiziert worden ist, und wobei der dritte Prüfpunkt das Unterbrechen nach dem Testen eines Multibitsegmentes und vor dem Fortschreiten zu einem nächsten Multibitsegment ermöglicht.
  8. Integrierter Speicherschaltkreis nach Anspruch 1, einschließlich einer Steuerlogik, um einen Lesezugriff auf einen Block in der Mehrzahl von Blöcken auszuführen, der ein anderer ist als der ausgewählte Block, und zwar zwischen dem Unterbrechen des Löschvorganges und dem Zurückkehren zu dem Löschvorgang.
  9. Integrierter Speicherschaltkreis nach Anspruch 1, wobei das Speicherarray aufweist: eine Mehrzahl globaler Bitleitungen (83, 84), eine Mehrzahl von Sätzen von Blockauswahltransistoren (81, 82), wobei jeder Satz von Blockauswahltransistoren mit einer entsprechenden globalen Bitleitung in der Mehrzahl von globalen Bitleitungen verbunden ist, eine Mehrzahl von Sätzen von lokalen Bitleitungen (79, 80), wobei jeder Satz von lokalen Bitleitungen über einen entsprechenden Satz von Blockauswahltransistoren mit einer entsprechenden globalen Bitleitung verbunden ist, wobei Speicherzellen in dem Array Ringanschlüsse haben, die mit einer lokalen Bitleitung in der Mehrzahl von Sätzen von lokalen Bitleitungen verbunden sind, eine Mehrzahl von Sätzen von lokalen Sourceleitungen (78), wobei jeder Satz einer lokalen Sourceleitung durch Speicherzellen in dem Array mit einem entsprechenden Satz lokaler Bitleitungen verbunden und an einen Versorgungsschaltkreis für ein Sourcepotential angeschlossen ist, und eine Mehrzahl von Wortleitungen (WL0, WL1 ... WLN), die mit Speicherzellen in dem Array verbunden sind, wobei ein Block in der Mehrzahl von Blöcken von Zellen mit erdfreiem Gate in dem Array eine Mehrzahl von Spalten aus Speicherzellen aufweist, wobei Spalten in der Mehrzahl von Spalten mit einem Teilsatz verbunden sind, der aus weniger als allen lokalen Bitleitungen in einem speziellen Satz von lokalen Bitleitungen besteht, die mit einer bestimmten globalen Bitleitung verbunden sind.
  10. Integrierter Speicherschaltkreis nach Anspruch 9, wobei es zwei Sätze lokaler Bitleitungen gibt, die mit jeder globalen Bitleitung in der Mehrzahl von lokalen Bitleitungen verbunden sind.
  11. Integrierter Speicherschaltkreis nach Anspruch 9 oder 10, wobei es zwei lokale Bitleitungen in der Mehrzahl von Sätzen lokaler Bitleitungen gibt, die mit jeder lokalen Sourceleitung in der Mehrzahl von Sätzen lokaler Sourceleitungen verbunden sind.
  12. Integrierter Speicherschaltkreis nach Anspruch 1, einschließlich eines weiteren Prüfpunktes, welcher das Unterbrechen zwischen der Vorkonditionierungsphase und der Löschphase des Blocklöschvorganges ermöglicht.
  13. Integrierter Speicherschaltkreis nach Anspruch 1, welcher einen weiteren Prüfpunkt aufweist, der das Unterbrechen nach dem Anlegen des Löschpulses und vor dem Verifizieren des Blockes in der Löschphase des Blocklöschvorganges ermöglicht.
  14. Integrierter Speicherschaltkreis nach Anspruch 1, einschließlich eines vierten Prüfpunktes, welcher die Unterbrechung zwischen der Vorkonditionierungsphase und der Löschphase des Blocklöschvorganges ermöglicht, und einschließlich eines fünften Prüfpunktes, welcher die Unterbrechung nach dem Anlegen des Löschpulses und vor dem Verifizieren des Blockes in der Löschphase des Blocklöschvorganges ermöglicht.
  15. Integrierter Speicherschaltkreis nach Anspruch 1, einschließlich eines weiteren Prüfpunktes zwischen der Vorkonditionierungsphase und der Löschphase des Blocklöschvorganges.
  16. Integrierter Speicherschaltkreis nach Anspruch 1, einschließlich eines weiteren Prüfpunktes nach dem Anlegen des Löschimpulses und vor dem Anlegen und Verifizieren des Blockes in der Löschphase des Blocklöschvorganges.
  17. Integrierter Speicherschaltkreis nach Anspruch 1, einschließlich eines vierten Prüfpunktes zwischen der Vorkonditionierungsphase und der Löschphase des Blocklöschvorganges, und einschließlich eines fünften Prüfpunktes nach dem Anlegen des Löschimpulses und dem Verifizieren des Blockes in der Löschphase des Blocklöschvorganges.
  18. Integrierter Speicherschaltkreis nach Anspruch 1, wobei: das Speicherarray eine Mehrzahl von Bitleitungen umfaßt, wobei die Mehrzahl von Blöcken von Speicherzellen mit erdfreiem Gate mit der Mehrzahl von Bitleitungen verbunden ist, wobei die Blöcke in der Mehrzahl von Blöcken eine Mehrzahl von Segmenten mit mehreren Bits (Multibitsegmente) aufweist, und zumindest zwei Blöcke in der Mehrzahl von Blöcken mit einem einzelnen Satz von Bitleitungen in der Mehrzahl von Bitleitungen verbunden sind, die Vorprogrammierlogik so ausgelegt ist, daß sie in der Vorkonditionierungsphase einen ausgewählten Block vorprogrammiert, indem sie der Reihe nach ein Programmierpotential an einem Multibitsegment anlegt, die Vorprogrammierung des Multibitsegmentes verifiziert und zu einem nächsten Multibitsegment in dem Block fortschreitet, bis der Block vorprogrammiert ist, die Löschlogik so ausgelegt ist, daß sie in der Löschphase den ausgewählten Block löscht, indem sie ein Löschpotential an den Block anlegt und dann das Löschen des Blockes verifiziert, indem sie der Reihe nach die Multibitsegmente in dem Block testet, der erste Prüfpunkt in dem Satz von Prüfpunkten die Aussetzlogik in die Lage versetzt, den Blocklöschvorgang nach dem Anlegen eines Programmierpotentials an einem Multibitsegment und vor der Verifizierung der Vorprogrammierung des Multibitsegmentes zu unterbrechen, und die Wiederaufnahmelogik so ausgelegt ist, daß sie in Reaktion auf einen Wiederaufnahmebefehl den Blocklöschvorgang wieder aufnimmt.
  19. Integrierter Speicherschaltkreis nach Anspruch 18, wobei der dritte Prüfpunkt das Unterbrechen nach dem Testen eines Multibitsegmentes und vor dem Fortschreiten zu einem nächsten Multibitsegment ermöglicht.
  20. Integrierter Speicherschaltkreis nach Anspruch 18, einschließlich einer Steuerlogik, um einen Lesezugriff auf einen Block in der Mehrzahl von Blöcken, der nicht der ausgewählte Block ist, auszuführen, und zwar zwischen dem Unterbrechen des Blocklöschvorgangs und der Rückkehr zu dem Blocklöschvorgang.
  21. Integrierter Speicherschaltkreis nach Anspruch 18, wobei das Speicherarray aufweist: eine Mehrzahl von Sätzen von Blockauswahltransistoren, wobei jeder Satz von Blockauswahltransistoren mit einer entsprechenden globalen Bitleitung in der Mehrzahl globaler Bitleitungen verbunden ist, eine Mehrzahl von Sätzen lokaler Bitleitungen, wobei jeder Satz lokaler Bitleitungen durch einen entsprechenden Satz von Blockauswahltransistoren mit einer entsprechenden globalen Bitleitung verbunden ist, wobei Speicherzellen in dem Array Drainanschlüsse haben, die mit einer lokalen Bitleitung in der Mehrzahl von Sätzen lokaler Bitleitungen verbunden sind, eine Mehrzahl von Sätzen von lokalen Sourceleitungen, wobei jeder Satz lokaler Sourceleitungen Speicherzellen in dem Array mit einem entsprechenden Satz lokaler Bitleitungen verbunden ist, und mit einem Versorgungsschaltkreis für ein Sourcepotential verbunden ist, und eine Mehrzahl von Wortleitungen, die mit den Speicherzellen in dem Array verbunden sind, wobei ein Block in der Mehrzahl von Blöcken von Zellen mit erdfreiem Gate in dem Array eine Mehrzahl von Spalten aus Speicherzellen aufweist und Spalten in der Mehrzahl von Spalten mit einem Teilsatz verbunden sind, der weniger als alle lokalen Bitleitungen in einem bestimmten Satz lokaler Bitleitungen umfaßt, die mit einer bestimmten globalen Bitleitung verbunden sind.
  22. Integrierter Speicherschaltkreis nach Anspruch 21, wobei es zwei Sätze lokaler Bitleitungen gibt, die mit jeder globalen Bitleitung in der Mehrzahl lokaler Bitleitungen verbunden sind.
  23. Integrierter Speicherschaltkreis nach Anspruch 21 oder 22, wobei es zwei lokale Bitleitungen in der Mehrzahl von Sätzen lokaler Bitleitungen gibt, die mit jeder lokalen Sourceleitung in der Mehrzahl von Sätzen von lokalen Sourceleitungen verbunden sind.
  24. Integrierter Speicherschaltkreis nach Anspruch 18, einschließlich eines weiteren Prüfpunktes zwischen der Vorkonditionierungsphase und der Löschphase des Blocklöschvorganges.
  25. Integrierter Speicherschaltkreis nach Anspruch 18, einschließlich eines weiteren Prüfpunktes nach dem Anlegen des Löschimpulses und vor dem Verifizieren des Blockes in der Löschphase des Blocklöschvorganges.
  26. Integrierter Speicherschaltkreis nach Anspruch 18, einschließlich eines vierten Prüfpunktes zwischen der Vorkonditionierungsphase und der Löschphase des Blocklöschvorganges, und einschließlich eines fünften Prüfpunktes nach dem Anlegen des Löschimpulses und dem Verifizieren des Blockes in der Löschphase des Blocklöschvorganges.
DE69629315T 1996-05-22 1996-05-22 Flashspeicheranordnung mit löschungsunterbrechungslogik unter verwendung von mehreren prüfpunkten Expired - Lifetime DE69629315T2 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US1996/007491 WO1997044792A1 (en) 1996-05-22 1996-05-22 Flash memory device with multiple checkpoint erase suspend logic

Publications (2)

Publication Number Publication Date
DE69629315D1 DE69629315D1 (de) 2003-09-04
DE69629315T2 true DE69629315T2 (de) 2004-04-22

Family

ID=22255146

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69629315T Expired - Lifetime DE69629315T2 (de) 1996-05-22 1996-05-22 Flashspeicheranordnung mit löschungsunterbrechungslogik unter verwendung von mehreren prüfpunkten

Country Status (4)

Country Link
EP (1) EP0900440B1 (de)
JP (1) JP4015701B2 (de)
DE (1) DE69629315T2 (de)
WO (1) WO1997044792A1 (de)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5378326B2 (ja) 2010-08-17 2013-12-25 株式会社東芝 不揮発性半導体記憶装置とその制御方法
US8482987B2 (en) 2010-09-02 2013-07-09 Macronix International Co., Ltd. Method and apparatus for the erase suspend operation
US20120167100A1 (en) * 2010-12-23 2012-06-28 Yan Li Manual suspend and resume for non-volatile memory
WO2015108995A1 (en) * 2014-01-17 2015-07-23 California Institute Of Technology Asymmetric error correction and flash-memory rewriting using polar codes
US9286160B2 (en) 2014-02-07 2016-03-15 Stmicroelectronics S.R.L. System and method for phase change memory with erase flag cells
US10825529B2 (en) 2014-08-08 2020-11-03 Macronix International Co., Ltd. Low latency memory erase suspend operation
US9214045B1 (en) 2014-08-29 2015-12-15 Freescale Semiconductor, Inc. Flash memory express erase and program
KR102671402B1 (ko) 2019-04-16 2024-05-31 삼성전자주식회사 문턱전압 산포 특성을 향상한 메모리 컨트롤러, 메모리 시스템 및 그 동작방법
US11315649B2 (en) 2019-04-16 2022-04-26 Samsung Electronics Co., Ltd. Memory controller, memory device and memory system having improved threshold voltage distribution characteristics and related operating methods
TWI822596B (zh) * 2023-02-23 2023-11-11 華邦電子股份有限公司 記憶體裝置及其擦除方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5034922A (en) * 1987-12-21 1991-07-23 Motorola, Inc. Intelligent electrically erasable, programmable read-only memory with improved read latency
EP0376285B1 (de) * 1988-12-27 1994-03-09 Nec Corporation Mikrorechner mit einem elektrisch löschbaren und programmierbaren nichtflüchtigen Speicher
JPH04221496A (ja) * 1990-03-29 1992-08-11 Intel Corp 単一基板上に設けられるコンピュータメモリ回路およびコンピュータメモリを消去するためのシーケンスを終らせる方法
US5355464A (en) * 1991-02-11 1994-10-11 Intel Corporation Circuitry and method for suspending the automated erasure of a non-volatile semiconductor memory
JP3104319B2 (ja) * 1991-08-29 2000-10-30 ソニー株式会社 不揮発性記憶装置
DE69231356T2 (de) * 1992-01-22 2000-12-28 Macronix International Co. Ltd., Hsinchu Nichtflüchtige Speicherzelle und Anordnungsarchitektur
US5509134A (en) * 1993-06-30 1996-04-16 Intel Corporation Method and apparatus for execution of operations in a flash memory array

Also Published As

Publication number Publication date
EP0900440A1 (de) 1999-03-10
DE69629315D1 (de) 2003-09-04
EP0900440B1 (de) 2003-07-30
WO1997044792A1 (en) 1997-11-27
JP4015701B2 (ja) 2007-11-28
EP0900440A4 (de) 1999-04-07
JP2000510990A (ja) 2000-08-22

Similar Documents

Publication Publication Date Title
DE69533429T2 (de) Automatischer progammier-algorithmus für flash-speicher im seitenmodus mit variabler programmierimpulshöhe und -breite
DE69330434T2 (de) Flash-eprom mit block-löschmarkierungen für überlöschschutz.
DE69603742T2 (de) Überlöschungskorrektur für flash-speicher mit überlöschungsbegrenzung und vermeidung von löschprüffehlern
DE69524913T2 (de) Nichtflüchtige Halbleiter-Speicherzelle mit Korrekturmöglichkeit einer überschriebenen Zelle, und Korrekturverfahren
DE69514450T2 (de) Prüfung eines nichtflüchtigen Speichers
DE3900798C2 (de) Verfahren zum Programmieren eines elektrisch löschbaren und programmierbaren Nur-Lese-Speichers
DE69623977T2 (de) Speichersystem mit programmierbaren steuerparametern
DE68913695T2 (de) Mikrorechner mit einem elektrisch löschbaren und programmierbaren nichtflüchtigen Speicher.
DE602004005211T2 (de) Detektieren von überprogrammierter speicherzellen nach einer programmierung benachbarter speicherzellen
DE69707502T2 (de) Bankarchitektur für nichtflüchtigen speicher mit der möglichkeit zum gleichzeitigen auslesen und einschreiben
DE69726219T2 (de) Verfahren und Vorrichtung zur Prüfung einer Speicher-integrierten Schaltung
DE69417712T2 (de) Nichtflüchtige Halbleiter-Speichereinrichtung
DE69615568T2 (de) Verfahren und vorrichtung zur verifikation einer speicherzelle von einer nichtflüssigen speicherschaltung
DE4207934A1 (de) Elektrisch loesch- und programmierbares, nichtfluechtiges speichersystem mit schreib-pruef-einsteller unter verwendung zweier bezugspegel
DE10158849A1 (de) Nichtflüchtiges Speicherbauelement und zugehöriges Datenabtastverfahren
DE102018117357A1 (de) Speichervorrichtung mit einer Schaltung zum Erfassen eines Wortleitungsdefektes und Betriebsverfahren derselben
DE69908340T2 (de) Seitenmoduslöschverfahren in flash-speichermatrize
DE69930439T2 (de) Elektrische Vorrichtung mit integriertem Flashspeicher
DE69629315T2 (de) Flashspeicheranordnung mit löschungsunterbrechungslogik unter verwendung von mehreren prüfpunkten
DE102004059411A1 (de) Flash-Speichervorrichtung und Verfahren zur Steuerung derselben
DE69319162T2 (de) Flash-Speicher
DE60222891T2 (de) Nichtflüchtige Speichervorrichtung und Selbstreparatur-Verfahren
DE102010053557A1 (de) NAND-Programmiertechnik
DE102020115698A1 (de) Betriebsverfahren für nichtflüchtige Speichervorrichtung, nichtflüchtige Speichervorrichtung, welche dieses durchführt und Betriebsverfahren für ein Speichersystem, das dieses verwendet
DE102006023065A1 (de) Flashspeicherbauelement und Programmierverfahren

Legal Events

Date Code Title Description
8364 No opposition during term of opposition