-
Die Erfindung betrifft ein nichtflüchtiges Speicherbauelement und ein Verfahren zum Verifizieren von Daten in einem nichtflüchtigen Speicherbauelement.
-
Unter nichtflüchtigen Halbleiterspeicherbauelementen, welche elektrisch programmiert, gelöscht und gelesen werden können, weisen NOR-Flashspeicherbauelemente den besonderen Vorteil auf, dass sie typischerweise für Hochfrequenzvorgänge zum Programmieren und Lesen von Daten geeignet sind.
-
1 zeigt eine schematische Schnittdarstellung einer herkömmlichen Flashspeicherzelle. Die Flashspeicherzelle ist aus einem Sourcebereich 3 und einem Drainbereich 4, welche aus n+-leitenden Störstellen in einem p-leitenden Halbleitersubstrat 2 mit einem dazwischen angeordneten Kanalbereich gebildet sind, und einem über dem Kanalbereich angeordneten floatenden Gate 6 mit einer dünnen Isolationsschicht aufgebaut, die zwischen dem floatenden Gate 6 und dem Kanalbereich angeordnet und üblicherweise dünner als 10 nm ist. Ein Steuergate 8 ist durch eine zwischenliegende Isolationsschicht 9 vom floatenden Gate 6 isoliert. Spannungsanschlüsse Vs, Vg, Vd und Vb werden zum Anlegen von Spannungen während der Programmierung, des Löschens oder des Lesens bereitgestellt und sind mit dem Sourcebereich 3, dem Drainbereich 4, dem Steuergate 8 bzw. dem Halbleitersubstrat 2 verbunden.
-
Die Flashspeicherzelle wird durch den Effekt der Injektion „heißer” Elektronen vom Kanalbereich neben dem Drainbereich 4 in das floatende Gate programmiert. Die Elektroneninjektion wird durch Vorspannungsbedingungen ausgeführt, bei welchen der Sourcebereich 3 und das p-leitende Halbleitersubstrat 2 geerdet sind, eine hohe Spannung, z. B. 10 V, an das Steuergate 8 angelegt ist und eine Spannung von 5 bis 6 V an den Drainbereich angelegt ist, um heiße Elektronen zu induzieren. Wird die Flashspeicherzelle durch Anlegen dieser Spannungen programmiert, dann werden negative Ladungen, d. h. Elektronen, im floatenden Gate 6 akkumuliert. Die akkumulierte negative Ladung im floatenden Gate erhöht eine Schwellwertspannung der programmierten Flashspeicherzelle während eines Lesevorgangs.
-
Während eines Löschvorgangs wird die Flashspeicherzelle durch Fowler-Nordheim-Tunneln (F-N-Tunneln) zwischen dem Steuergate 6 und dem Halbleitersubstrat 2, d. h. dem Bulkbereich, gelöscht. Das F-N-Tunneln wird durch eine negative hohe Spannung von –10 V, welche an das Steuergate 8 angelegt wird, und eine positive Spannung von 5 V erzielt, welche zwischen dem Bulkbereich und dem Steuergate 8 aufgebaut wird, um das F-N-Tunneln zu induzieren. Unter diesen Bedingungen ist der Drainbereich 4 in einem Zustand hoher Impedanz, z. B. einem floatenden Zustand, um die Effektivität des Löschvorgangs zu maximieren. Werden die Vorspannungen für einen Löschvorgang an die korrespondierenden Spannungsanschlüsse Vg, Vd, Vs und Vb angelegt, dann wird ein elektrisches Feld zwischen dem Steuergate 8 und dem Bulkbereich, d. h. dem Substrat 2, verstärkt, wodurch das F-N-Tunneln zur Entladung der negativen Ladungen vom floatenden Gate 6 zum Sourcebereich 3 ermöglicht wird. Das F-N-Tunneln kann durch ein elektrisches Feld von ca. 6 MV/cm bis 7 MV/cm induziert werden, welches durch die geringe Dicke der Isolationsschicht von unter 10 nm ermöglicht wird, die zwischen dem floatenden Gate 6 und dem Bulkbereich 2 angeordnet ist.
-
Bei einer herkömmlichen Flashspeicherbauelementstruktur umfasst jeder Bulkbereich eine Mehrzahl von Speicherzellen. Die Speicherzellen in jedem Bulkbereich werden als Gruppe gelöscht. Die Größe der zu löschenden Gruppen wird typischerweise durch eine Aufteilung des Halbleiterbulkmaterials in Bereiche bestimmt. Die Gruppe oder Einheit von Speicherzellen, welche zusammen während eines Löschvorgangs gelöscht werden, kann als Sektor von beispielsweise 64 Kb bezeichnet werden.
-
Die Flashspeicherzelle weist nach dem Löschvorgang eine niedrige Schwellwertspannung auf und bildet während eines Lesevorgangs in Reaktion auf eine an das Steuergate 8 angelegte Spannung einen Strompfad zwischen dem Drainbereich 3 und dem Sourcebereich 4 aus. Daher wird die Flashspeicherzelle als „An”-Zelle detektiert, wenn ihre Schwellwertspannung im Bereich von ca. 1 V bis 3 V liegt.
-
Nach Abschluss der Programmier- und Löschvorgänge kann es erforderlich sein, zu detektieren, ob die Vorgänge erfolgreich abgeschlossen wurden, d. h. es wird eine Programmier- und/oder Löschverifizierung durchgeführt.
-
2 zeigt Variationen von Zellenschwellwertspannungen im Zusammenhang mit Programmier- und Löschvorgängen in einem Flashspeicherbauelement. Wie aus 2 ersichtlich ist, ist das NOR-Flashspeicherbauelement auf eine Schwellwertspannung von 6 V bis 8 V im programmierten und auf eine Schwellwertspannung von 1 V bis 3 V im gelöschten Zustand eingestellt. Der Löschvorgang wird so lange ausgeführt, bis die Schwellwertspannung im Bereich von 1 V bis 3 V liegt. Weist eine gelöschte Speicherzelle nach einem ersten Löschvorgang jedoch eine Schwellwertspannung von z. B. 4 V auf und nimmt die Schwellwertspannung mit jedem Löschvorgang um einen vorgegebenen Wert ab, dann kann ein nachfolgender Löschvorgang dazu führen, dass die Speicherzelle eine Schwellwertspannung aufweist, welche niedriger als 1 V ist. In einem solchen Fall wird die Schwellwertspannung daher wieder erhöht. Der Fall, bei welchem die Flashspeicherzelle gelöscht worden ist und eine Schwellwertspannung von weniger als 1 V aufweist, wird als Überlöschzustand bezeichnet und die abgesenkte Schwellwertspannung wird durch einen Löschrepariervorgang wieder erhöht.
-
Die Patentschrift
US 6,122,197 offenbart ein nichtflüchtiges Speicherbauelement mit Mitteln zum Detektieren von Daten einer ausgewählten Speicherzelle nach einem Programmieren oder Löschen derselben und zum Verifizieren eines programmierten oder gelöschten Zustands von zuvor detektierten Daten, wobei der Verifikationsvorgang gleichzeitig mit einem Programmier- oder Löschvorgang für eine andere Speicherzelle erfolgen kann.
-
Es ist Aufgabe der Erfindung, ein nichtflüchtiges Speicherbauelement und ein Verfahren zum Verifizieren von Daten anzugeben, welche eine vorteilhafte Verifizierung eines Programmiervorgangs und/oder eines Löschvorgangs derart ermöglichen, dass ein Unterprogrammierzustand, ein Überlöschzustand oder ein Unterlöschzustand der Speicherzellen vermieden bzw. korrigiert werden kann.
-
Die Erfindung löst diese Aufgabe durch ein nichtflüchtiges Speicherbauelement mit den Merkmalen des Patentanspruchs 1 und durch ein Verfahren zum Verifizieren von Daten mit den Merkmalen des Patentanspruchs 10.
-
Vorteilhafte Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Vorteilhafte, nachfolgend beschriebene Ausführungsformen der Erfindung sowie das zu deren besserem Verständnis oben erläuterte, herkömmliche Ausführungsbeispiel sind in den Zeichnungen dargestellt. Es zeigen:
-
1 eine schematische Schnittdarstellung einer herkömmlichen Flashspeicherzelle,
-
2 ein Diagramm zur Darstellung von Variationsbreiten einer Zellenschwellwertspannung im Zusammenhang mit Programmier- und Löschvorgängen in einem Flashspeicherbauelement,
-
3 ein Blockdiagramm eines erfindungsgemäßen Flashspeicherbauelements,
-
4 ein Flussdiagramm eines erfindungsgemäßen Verfahrens zum Verifizieren von programmierten oder gelöschten Daten und
-
5 ein Zeitablaufdiagramm zur Darstellung einer erfindungsgemäßen Verifizierungssequenz von programmierten oder gelöschten Daten.
-
Nichtflüchtige Speicherbauelemente gemäß entsprechenden Ausführungsformen der Erfindung ermöglichen eine Detektion von programmierten oder gelöschten Daten und eine Verifizierung des Detektionsergebnisses in einer Pipeline-Sequenz. Dadurch kann eine Zeitdauer zur Verifizierung von programmierten oder gelöschten Daten gegenüber einer Nicht-Pipelinetechnik reduziert werden.
-
3 zeigt ein Blockdiagramm eines erfindungsgemäßen Flashspeicherbauelements 100 z. B. vom NOR-Typ, das einen Zellenfeldbereich 10 beinhaltet, der Speicherzellen und periphere Schaltungen zum Auswählen von Zeilen und Spalten des Zellenfeldbereichs umfasst. Ist der Zellenfeldbereich in eine Mehrzahl von Blöcken oder Sektoren aufgeteilt, dann können die peripheren Schaltungen, wie allgemein bekannt ist, ebenfalls in Segmente entsprechend der Aufteilung des Zellenfeldbereichs aufgeteilt sein. Aus Gründen der Klarheit werden Ausführungsformen der Erfindung vorliegend unter Bezugnahme auf einen einzigen Block oder Sektor des aufgeteilten Zellenfeldbereichs und der korrespondierenden peripheren Schaltungen beschrieben. Selbstverständlich können zusätzliche periphere Schaltungen vorgesehen sein, wenn zusätzliche Speicherblöcke vorhanden sind.
-
Wie aus 3 ersichtlich ist, umfasst das NOR-Flashspeicherbauelement 100 zudem einen Eingabe-/Ausgabepuffer 20, einen Schreibtreiber 30, eine Spaltenauswahlschaltung 40, einen Abtastverstärker 60, einen Abtastzwischenspeicher 70 und eine Programmier-/Löschverifizierungsschaltung 80. Das Speicherzellenfeld 10 kann Flashspeicherzellen umfassen, welche jeweils die in 1 dargestellte Struktur aufweisen. Der Eingabe-/Ausgabepuffer 20 speichert Daten, die in das Speicherzellenfeld 10 geschrieben werden sollen, und Daten, die im Speicherzellenfeld 10 detektiert worden sind. Der Schreibtreiber 30 führt einen Programmier- oder Löschvorgang für das Speicherzellenfeld 10 mit Daten aus, die über den Eingabe-/Ausgabepuffer 20 eingegeben werden. Der Schreibtreiber 30 umfasst einen nicht dargestellten Zwischenspeicher, um die zu programmierenden oder zu löschenden Daten zu speichern, wobei die Daten über den Eingabe-/Ausgabepuffer 20 angelegt werden.
-
Der Abtastverstärker 60 detektiert und verstärkt Daten, die in einer ausgewählten Speicherzelle des Speicherzellenfelds 10 gespeichert sind, und kann eine Datendetektionsschaltung beinhalten. Die vom Abtastverstärker 60 detektierten und verstärkten Daten werden über den Abtastzwischenspeicher 70 zu einer korrespondierenden Adresse des Eingabe-/Ausgabepuffers 20 übertragen. Der Abtastzwischenspeicher 70 und der Eingabe-/Ausgabepuffer 20 können eine Datenspeichereinheit bilden. Der Abtastzwischenspeicher 70 speichert die vom Abtastverstärker 60 detektierten und verstärkten Daten, die nachfolgend auch als detektierte Daten bezeichnet werden. Aus Gründen der Vereinfachung der Schaltungsarchitektur kann der Abtastzwischenspeicher 70 kleiner als der Eingabe-/Ausgabepuffer 20 ausgeführt sein. So kann der Eingabe-/Ausgabepuffer 20 beispielsweise eine Speicherkapazität von 32 Worten umfassen, um alle zu programmierenden oder zu löschenden Daten zu speichern, während der Abtastzwischenspeicher 70 so ausgeführt ist, dass 8 Worte speicherbar sind.
-
Die Programmier-/Löschverifizierungsschaltung 80 empfängt während der Detektion der i-ten programmierten oder gelöschten Daten die vorher detektierten programmierten oder gelöschten Daten, d. h. die (i – 1)-ten Daten, vom Eingabe-/Ausgabepuffer 20 und verifiziert einen Bestanden-Zustand oder einen Nichtbestanden-Zustand für die vorher detektierten Daten. In anderen Worten ausgedrückt, die Programmier-/Löschverifizierungsschaltung 80 steuert die Schaltung zur Detektion der Daten aus dem Speicherzellenfeld 10 unter Benutzung des Abtastverstärkers 60 und verifiziert die vorher detektierten Daten in einer Pipelinetechnik. Daraus resultiert, dass der Zeitbedarf zur Verifizierung der programmierten oder gelöschten Daten reduziert werden kann und/oder der Bedarf für getrennte Einheiten zur Verifizierung der programmierten Daten einerseits und zur Verifizierung der gelöschten Daten andererseits vermieden werden kann.
-
Nachdem der Schreibtreiber 30 einen Programmier- oder Löschvorgang für das Speicherzellenfeld 10 abgeschlossen hat, detektiert und verstärkt der Abtastverstärker 60 die programmierten oder gelöschten Daten. Dann speichert der Abtastverstärker 60 die detektierten und verstärkten Daten gesteuert von der Programmier-/Löschverifizierungsschaltung 80 im Abtastzwischenspeicher 70. Der Abtastzwischenspeicher 70 überträgt die Daten vom Abtastverstärker 60 gesteuert von der Programmier-/Löschverifizierungsschaltung 80 an die korrespondierende Adresse im Eingabe-/Ausgabepuffer 20. Der Abtastzwischenspeicher 70 speichert ein neues, vom Abtastverstärker 60 bereitgestelltes Detektionsergebnis. Der Eingabe-/Ausgabepuffer 20 stellt die Daten vom Abtastzwischenspeicher 70 gesteuert von der Programmier-/Löschverifizierungsschaltung 80 letzterer zur Verfügung. Die Programmier-/Löschverifizierungsschaltung 80 empfängt während der Detektion der i-ten programmierten oder gelöschten Daten die vorher detektierten oder gelöschten Daten, d. h. die (i – 1)-ten Daten, vom Eingabe-/Ausgabepuffer 20 und verifiziert einen Bestanden-Zustand oder einen Nichtbestanden-Zustand für die vorher detektierten Daten. Während des Verifizierungsvorgangs kann die Programmier-/Löschverifizierungsschaltung 80 den Programmier- oder Löschzustand für jedes einzelne Bit individuell oder für mehrere Bits gemeinsam verifizieren, z. B. durch Verwendung eines verdrahteten ODER-Verknüpfungsmusters für die Mehrzahl von Bits.
-
Daher führt das NOR-Flashspeicherbauelement 100 eine Detektion von programmierten oder gelöschten Daten und eine Verifizierung vorheriger Detektionsergebnisse überlappend durch, so dass die Detektion der Ergebnisse und die Verifizierung der Ergebnisse gleichzeitig in einer Pipeline-Sequenz erfolgen. Der erfindungsgemäße Verifizierungsvorgang der programmierten oder gelöschten Daten wird nachfolgend anhand der 4 und 5 beschrieben. Die 4 und 5 zeigen den Fall, dass der Eingabe-/Ausgabepuffer 20 32 Worte umfasst und der Abtastzwischenspeicher 70 8 Worte umfasst. Alternativ kann die Speicherkapazität dieser Komponenten auch anders gewählt sein. Die erfindungsgemäße Ausführungsform gemäß den 4 und 5 zeigt vier Detektions- und Verifizierungsvorgänge, um 32 Worte im Eingabe-/Ausgabepuffer 20 zu detektieren und zu verifizieren. Eine andere Anzahl von Detektions- und Verifizierungsvorgängen kann abhängig von den strukturellen Eigenschalten des Eingabe-/Ausgabepuffers 20 und des Abtastzwischenspeichers 70 vorgesehen sein.
-
Unter Bezugnahme auf die 4 und 5 führt der Abtastverstärker 60 während einer Verifizierungsleseperiode in Reaktion auf die Steuerung der Programmier-/Löschverifzierungsschaltung 80 im Block 610 einen ersten Abtastvorgang aus, um programmierte oder gelöschte Daten zu detektieren. Ein erstes Abtastergebnis des ersten Abtastvorgangs wird im Abtastzwischenspeicher 70 in Reaktion auf die Steuerung der Programmier-/Löschverifzierungsschaltung 80 gespeichert und dann zur korrespondierenden Adresse im Eingabe-/Ausgabepuffer 20 übertragen. Der funktionale Zeitablauf der Abtastung und Übertragung der abgetasteten Daten zum Eingabe-/Ausgabepuffer 20 ist in 5 als erster Verifizierungsabtastvorgang dargestellt.
-
Anschließend führt der Abtastverstärker 60 einen zweiten Abtastvorgang aus, um gemäß Block 620 die nächsten programmierten oder gelöschten Daten in Reaktion auf die Steuerung der Programmier-/Löschverifizierungsschaltung 80 zu detektieren. Gleichzeitig mit dem Abtastvorgang empfängt die Programmier-/Löschverifizierungsschaltung 80 das erste abgetastete Ergebnis vom Eingabe-/Ausgabepuffer 20 und verifiziert selbiges im Block 810. Wie aus 5 ersichtlich ist, wird während des zweiten Verifizierungsabtastvorgangs gleichzeitig ein erster Überprüfungsvorgang für das erste Abtastergebnis in einer Pipeline-Sequenz ausgeführt. Dadurch werden die vorher detektierten Daten unverzüglich während der Detektion der aktuellen Daten verifiziert. Während des zweiten Verifzierungsabtastvorgangs wird das zweite Abtastergebnis in Reaktion auf die Steuerung der Programmier-/Löschverifizierungsschaltung 80 im Abtastzwischenspeicher 70 gespeichert und dann an die korrespondierende Adresse im Eingabe-/Ausgabepuffer 20 übertragen. Wie oben ausgeführt, kann die Programmier-/Löschverifzierungsschaltung 80 den programmierten oder gelöschten Zustand bitweise oder für mehrere Bits gleichzeitig verifizieren, z. B. durch Verwendung einer verdrahteten ODER-Verknüpfung, um zu bestimmen, ob jedes der Bits auf einen bestimmten Zustand gesetzt ist.
-
Anschließend führt der Abtastverstärker 60 einen dritten Abtastvorgang aus, um im Block 630 die programmierten oder gelöschten Daten in Reaktion auf die Steuerung der Programmier-/Löschverifizierungsschaltung 80 zu detektieren. Gleichzeitig mit dem dritten Abtastvorgang empfängt die Programmier-/Löschverifizierungsschaltung 80 das zweite abgetastete Ergebnis vom Eingabe-/Ausgabepuffer 20 und verifiziert selbiges im Block 820. Wie aus 5 ersichtlich ist, wird während des dritten Verifizierungsabtastvorgangs gleichzeitig ein zweiter Überprüfungsvorgang für das zweite Abtastergebnis in einer Pipeline-Sequenz ausgeführt. Während des dritten Abtastvorgangs wird das dritte Abtastergebnis in Reaktion auf die Steuerung der Programmier-/Löschverifizierungsschaltung 80 im Abtastzwischenspeicher 70 gespeichert und dann an die korrespondierende Adresse im Eingabe-/Ausgabepuffer 20 übertragen.
-
In gleicher Weise werden gemäß Block 640 ein vierter Abtastvorgang, um ein viertes Abtastergebnis bereitzustellen, und gleichzeitig gemäß Block 830 ein dritter Verifizierungsvorgang für das dritte abgetastete Ergebnis ausgeführt. Anschließend wird im Block 840 ein vierter Verifizierungsvorgang für das vierte Abtastergebnis ausgeführt.
-
Vorliegend bedeutet der Begriff „gleichzeitig ausgeführt”, dass eine vollständige oder wenigstens teilweise zeitliche Überlappung zwischen dem Abtastvorgang und dem Verifizierungsvorgang auftritt. Daher ermöglichen erfindungsgemäße Ausführungsformen eine zeitliche Überlappung der Abtast- und Verifizierungsvorgänge. Dabei können bei entsprechenden Ausführungsbeispielen, welche eine Pipeline-Sequenz für die Abtast- und Verifizierungsvorgänge benutzen, einige Abtast- und Verifizierungsvorgänge ohne einen gleichzeitigen korrespondierenden anderen Verifizierungs- und Abtastvorgang ausgeführt werden, z. B. weil die Pipeline neu festgelegt oder zurückgesetzt werden muss. Daher beziehen sich überlappende Abtast- und Verifizierungsvorgänge im Pipelinebetrieb auf Vorgänge, bei welchen wenigstens ein Abtastvorgang gleichzeitig mit wenigstens einem Verifizierungsvorgang ausgeführt wird, ohne dass sich zwingend alle Abtast- und Verifizierungsvorgänge überlappen müssen.