-
Hintergrund der Erfindung
-
1. Sachgebiet der Erfindung
-
Die vorliegende Erfindung betrifft eine Halbleitervorrichtung, bei der mehrere Bits an Daten programmiert werden können, und ein Programmierverfahren hierfür.
-
2. Beschreibung des Standes der Technik
-
Eine Halbleitervorrichtung, beispielsweise eine nichtflüchtige Halbleitervorrichtung, ist entsprechend dem Fortschritt der Verarbeitungstechnologie mit einer großen Kapazität ausgelegt. Entsprechend der großen Kapazität der Halbleitervorrichtungen besteht ein zunehmender Bedarf an schnellerem Programmieren und Löschen.
-
Bei einem Flash-Speicher müssen sämtliche Bits vor dem Löschen programmiert sein, so dass eine Steigerung der Programmiergeschwindigkeit die Löschgeschwindigkeit erhöht. Der Grund dafür ist, dass mehrere Daten gleichzeitig durch ein Byte (acht Bits) oder ein Wort (16 Bits) programmiert werden.
-
Jedoch teilen sich benachbarte Speicherzellen an der gleichen Wortleitung die Bitleitung in einer nichtflüchtigen Halbleitervorrichtung vom virtuellen Massetyp. Wenn der Abstand zwischen den Speicherzellen, in denen mehrere Bits gleichzeitig programmiert werden, zu gering ist, ergibt sich das Problem, dass die durch das Programmieren bewirkte Belastung auf andere Speicherzellen übertragen wird, in denen keine Programmierung zu erfolgen hat.
-
1 zeigt Speicherzellen 0 bis 4 vom virtuellen Massetyp, die mit einer Wortleitung WL verbunden sind und Bitleitungen gemeinsam nutzen. 1 zeigt ferner metallische Bitleitungen MBL 0 bis MBL 5, die mit Drainbereichen und Sourcebereichen der Speicherzellen 0 bis 4 verbunden sind, Wählschalter Ssel 0 bis 5, die jeweils die metallischen Bitleitungen MBL0 bis MBL5 mit einer Masseleitung verbinden, und Wählschalter Dsel 0 bis Dsel 5, die jeweils die metallischen Bitleitungen MBL 0 bis MBL 5 mit einer Datenleitung verbinden. 1 zeigt lediglich den Teil der nichtflüchtigen Halbleitervorrichtung, der für die Beschreibung erforderlich ist.
-
Es sei beispielsweise angenommen, dass die metallische Bitleitung MBL 0 niederpegelig und die metallische Bitleitung MBL 1 hochpegelig ist, um Daten in die Speicherzelle 0 zu schreiben. Gleichzeitig sei angenommen, dass die metallische Bitleitung MBL 2 niederpegelig und die metallische Bitleitung MBL 3 hochpegelig ist, um Daten in die Speicherzelle 2 zu schreiben. Hierbei ist der-Gate-Anschluss der zwischen der Speicherzelle 0 und der Speicherzelle 2 liegenden Speicherzelle 1 mit der Wortleitung WL verbunden, welche auch von der Speicherzelle 0 und der Speicherzelle 2 genutzt wird. Die metallische Bitleitung MBL1 ist hochpegelig und die metallische Bitleitung MBL 2 ist niederpegelig und die Daten werden ebenfalls in die Speicherzelle 1 geschrieben. Das heißt, die durch das Schreiben bewirkte Belastung wird auf die Speicherzelle übertragen, in welche die Daten nicht geschrieben werden sollen.
-
Nichtflüchtige Speicherzellen sowie ein Verfahren zum Programmieren von nichtflüchtigen Speicherzellen sind in JP 2004-1 10 900 A offenbart.
-
Überblick über die Erfindung
-
Die vorliegende Erfindung wurde in Anbetracht der genannten Umstände gemacht und hat die Aufgabe, eine Halbleitervorrichtung und ein Programmierverfahren zu schaffen, mittels welcher mehrere Bits gleichzeitig und stabil programmiert werden können.
-
Nach einem Aspekt der vorliegenden Erfindung ist vorzugsweise eine Halbleitervorrichtung vorgesehen, die mit den Merkmalen des Anspruchs 1 versehen ist.
-
Die Halbleitervorrichtung kann die geradzahligen und die ungeradzahligen Seiten umfassen, welche einer der Wortleitungen zugeordnet sind; und die Wähl- und Schreibschaltung programmiert die nichtflüchtigen Speicherzellen der geradzahligen oder der ungeradzahligen Seiten zuerst und programmiert die nichtflüchtigen Speicherzellen der geradzahligen oder der ungeradzahligen Seiten als zweites. Die gerad- oder ungeradzahligen Seiten werden abwechselnd programmiert, so dass es möglich ist, die mehreren Bits zu programmieren, ohne die Konfiguration der Speicherzellenanordnung zu verändern oder für eine Bitleitungswahl zu decodieren.
-
Bei der genannten Halbleitervorrichtung kann die Wähl- und Schreibschaltung Bitleitungen, die mit Speicherzellen von nicht zu programmierenden Seiten verbunden sind, in einen floatenden Zustand versetzen. Die Bitleitungen der Speicherzellen, in welche die Daten nicht programmiert werden, werden in den floatenden Zustand versetzt. Dies verhindert, dass der Zellenstrom über die Bitleitung in Speicherzellen fließt, die nicht mit den Daten programmiert werden sollen. Somit ergibt sich nicht das Problem, dass unnötige Daten programmiert werden oder die Belastung an die Speicherzelle weitergegeben wird.
-
Die Halbleitervorrichtung kann einer der Wortleitungen zugeordnete Blöcke aufweisen, und jeder der Blöcke hat eine bestimmte Anzahl von Seiten. Die Halbleitervorrichtung hat einen ersten Modus, in welchem eine aus der bestimmten Anzahl von Seiten in jedem der Blöcke gleichzeitig programmiert wird, und einen zweiten Modus, in dem gerad- oder ungeradzahlige Seiten in jedem der Blöcke gleichzeitig programmiert werden; und die Halbleitervorrichtung eine Steuerschaltung aufweist, welche die Wähl- und Schreibschaltung veranlasst, entsprechend einem an die Halbleitervorrichtung gegebenen externen Befehl in dem ersten oder dem zweiten Modus zu arbeiten. Die Daten können in den mehreren Modi programmiert werden, und die Programmiergeschwindigkeit kann derart angepasst werden, dass die Daten entsprechend der Wahl des Bedieners programmiert werden.
-
Die Halbleitervorrichtung kann ferner eine Hochspannungserzeugungsschaltung aufweisen, die eine Hochspannung zum Programmieren der nichtflüchtigen Speicherzellen erzeugt, wobei die Wähl- und Schreibschaltung unter Verwendung der von der Hochspannungserzeugungsschaltung erzeugten Hochspannung gewählte Bitleitungen aktiviert. Die Energie wird nicht von einer externen Vorrichtung geliefert, und die Daten können nur durch die Halbleitervorrichtung programmiert werden.
-
Die Halbleitervorrichtung kann ferner aufweisen: eine Hochspannungserzeugungsschaltung, die eine Hochspannung zum Programmieren der nichtflüchtigen Speicherzellen erzeugt; und eine Wählschaltung, welche in einem ersten Modus die von der Hochspannungserzeugungsschaltung erzeugte Hochspannung wählt und in einem zweiten Modus eine andere, von außerhalb der Halbleitervorrichtung angelegte Hochspannung wählt, wobei die gewählte Hochspannung der Wähl- und Schreibschaltung zugeführt wird. Der Programmiermodus ändert die Quelle der Hochspannung und ein Programmiermodus, der nicht mit einer internen Hochspannungsschaltung erreichbar ist, ist verfügbar. Somit kann die Anzahl der gleichzeitig programmierbaren Bits erhöht werden.
-
Der Spannungsabfall kann beim Programmieren der Daten konstant gehalten werden. Der Programmierpegel der in die Speicherzelle zu programmierenden Daten kann konstant gehalten werden.
-
In der Halbleiterschaltung kann die Programmierpegelvergleichmäßigungsschaltung Programmierpegelvergleichmäßigungsunterschaltungen aufweisen; und jede der Programmierpegelvergleichmäßigungsunterschaltungen ist einem jeweiligen Paar benachbarter Seiten zugeordnet, die nicht gleichzeitig programmiert werden. Während des Programmierens der Daten kann der Spannungsabfall konstant gehalten werden, indem der Strom, der im Wesentlichen gleich dem Zellenstrom ist, durch die Programmierpegelvergleichmäßigungsschaltung geleitet wird. Der Zellenstrom fließt von der gewählten Bitleitung zu der Speicherzelle. Somit kann der Datenprogrammierpegel, mit dem die Speicherzelle zu programmieren ist, konstant gehalten werden. Die Programmierpegelvergleichmäßigungsschaltung kann von den beiden benachbarten Seiten gemeinsam genutzt werden, in welche die Daten nicht gleichzeitig programmiert werden. Die Anzahl der Seiten kann somit verringert und die Konfiguration der Vorrichtung verkleinert werden.
-
In der Halbleitervorrichtung kann jede der Programmierpegelvergleichmäßigungsschaltungen in der Lage sein, einen Strom zu erzeugen, der ungefähr gleich einem Programmierstrom ist, der während des Programmierens in einer Speicherzelle fließt.
-
In der Halbleitervorrichtung können die nichtflüchtigen Speicherzellen vom virtuellen Massetyp sein, bei dem benachbarte Speicherzellen sich eine Bitleitung teilen. Wenn die Daten gleichzeitig in mehrere Speicherzellen des virtuellen Massetyps programmiert werden, wird die Belastung auf diejenige Speicherzelle übertragen, in welche die Daten nicht programmiert werden, wenn der Abstand zwischen den Speicherzellen zu gering ist. Bei der vorgenannten Halbleitervorrichtung können mehrere Bits gleichzeitig und stabil programmiert werden.
-
Nach einem Aspekt der Erfindung ist vorzugsweise ein Verfahren zum Programmieren nichtflüchtiger Speicherzellen vorgesehen, das mit den Merkmalen des Anspruchs 10 versehen ist. Unnötige Belastungen durch das Programmieren werden nicht an die Speicherzelle übertragen, in welcher kein Programmieren erfolgt, indem der Abstand zwischen den gleichzeitig zu programmierenden Speicherzellen vergrößert wird.
-
Bei dem Verfahren umfassen die Seiten geradzahlige Seiten und ungeradzahlige Seiten; und der Schritt des Programmierens umfasst den Schritt des Programmierens zuerst der nichtflüchtigen Speicherzellen der geradzahligen oder der ungeradzahligen Seiten und das anschließende Programmieren der ungeradzahligen oder der geradzahligen Seiten. Mehrere Bits können gleichzeitig programmiert werden, ohne die Konfiguration der Zellenanordnung zu verändern oder zum Wählen der Bitleitung zu decodieren, indem die Daten abwechselnd in die geradzahligen und die ungeradzahligen Seiten programmiert werden.
-
Das Verfahren kann ferner den Schritt des Versetzens von Bitleitungen, die mit Speicherzellen von nicht programmierten Seiten verbunden sind, in einen floatenden Zustand aufweisen. Der floatende Zustand wird für diejenige Bitleitung der Speicherzelle der Seite eingestellt, in welche die Daten nicht programmiert werden. Dies kann verhindern, dass der Zellenstrom über die Bitleitung durch die Speicherzelle fließt, in welche die Daten nicht programmiert werden. Daher ergibt sich nicht das Problem, dass unnötige Daten in die Speicherzelle programmiert werden oder die Belastung auf die Speicherzelle übertragen wird.
-
In dem Verfahren können die Schritte des Wählens und des Programmierens mit einem ersten Modus verbunden sein, und das Verfahren umfasst die folgenden Schritte: Programmieren der nichtflüchtigen Speicherzellen in einem zweiten Modus, in dem eine aus einer bestimmten Anzahl von Seiten in jedem Block von Blöcken, die einer Wortleitung zugeordnet sind, gleichzeitig programmiert wird; und Wählen des ersten oder des zweiten Modus entsprechend einem externen Befehl. Die Programmiergeschwindigkeit kann durch Programmieren der Daten in mehreren Programmiermodi eingestellt werden.
-
Figurenliste
-
- 1 ist eine Darstellung der Art des Programmierens einer herkömmlichen Halbleitervorrichtung;
- 2 ist ein Blockschaltbild einer Konfiguration einer erfindungsgemäßen Halbleitervorrichtung;
- 3 zeigt eine Konfiguration einer Dateneingabe-/-ausgabeschaltung (E/A);
- 4 stellt die Beziehung zwischen einer Zellenanordnung und einem Spaltengatter und einer Dateneingabe-/-ausgabeschaltung (E/A) dar;
- 5 ist ein Zeitdiagramm des 64-Bit-Simultan-Programmiermodus;
- 6 ist ein Zeitdiagramm des 16-Bit-Simultan-Programmiermodus;
- 7 zeigt ein Logikgatter zum Erzeugen eines GEL-Signals;
- 8 zeigt eine Konfiguration der Zellenanordnung 5 und des Spaltengatters;
- 9 zeigt eine Konfiguration einer Programmierpegelvergleichmäßigungsschaltung; und
- 10 zeigt eine Konfiguration einer Stromkompensationsschaltung.
-
Beschreibung der bevorzugten Ausführungsbeispiele
-
Im folgenden werden Ausführungsbeispiele der vorliegenden Erfindung unter Bezugnahme auf die zugehörigen Zeichnungen beschrieben.
-
2 zeigt eine Konfiguration eines Halbleiters gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Die Halbleitervorrichtung von 2 ist ein Ausführungsbeispiel einer nichtflüchtigen Halbleiterspeichervorrichtung 1, welche eine Steuerschaltung 2, eine Chipfreigabe-/Ausgangsfreigabeschaltung 3, einen Eingabe-/Ausgabepuffer 4, eine Zellenanordnung 5, einen Zeilendecoder 6, einen Spaltendecoder (Wähl- und Schreibeinrichtung) 7, einen Adressenhaltespeicher 8, ein Spaltengatter 9, eine Dateneingabe-/-ausgabeschaltung (E/A) 10, eine Schreibschaltung 11, eine Leseschaltung 12, eine Löschschaltung 13 und eine Energieversorgung 20 umfasst. Die Energieversorgung 20 weist einen Drain-Hochspannungsgenerator 21, eine Wähleinrichtung 22, einen Reguliereinrichtung 23 und einen Gate-Hochspannungsgenerator 24.
-
Die Steuerschaltung 2 empfängt Steuersignale, wie beispielsweise ein Schreibfreigabe- (/WE) und ein Chipfreigabesignal (/CE), ein Adressensignal und ein Datensignal von außen, und dient, basierend auf diesen Signalen, als Zustandsmaschine zum Steuern jedes Teils der nichtflüchtigen Halbleiterspeichervorrichtung 1.
-
Der Eingabe-/Ausgabepuffer 4 empfängt Daten von außerhalb und liefert Daten an die Steuerschaltung 2 und die Dateneingabe-/-ausgabeschaltung (E/A) 10.
-
Die Chipfreigabe-/Ausgangsfreigabeschaltung 3 empfängt ein Chipfreigabesignal (/CE) und ein Ausgangsfreigabesignal (/OE) als Steuersignale von außerhalb der Vorrichtung, und steuert den Betrieb/Nicht-Betrieb des Eingabe-/ Ausgabepuffers 4 und der Zellenanordnung 5.
-
Die Leseschaltung 12 arbeitet unter Steuerung durch die Steuerschaltung 2 und steuert die Zellenanordnung 5, den Zeilendecoder 6 und den Spaltendecoder (Wähl- und Schreibeinrichtung) 7, um die Daten von einer ersten Ausleseadresse der Zellenanordnung 5 auszulesen. Die Schreibschaltung 11 arbeitet unter Steuerung durch die Steuerschaltung 2 und steuert die Zellenanordnung 5, den Zeilendecoder 6 und den Spaltendecoder (Wähl- und Schreibeinrichtung) 7 zum Programmieren der Daten in eine Schreibadresse der Zellenanordnung 5. Die Löschschaltung 13 arbeitet unter Steuerung durch die Steuerschaltung 2 und steuert die Zellenanordnung 5, den Zeilendecoder 6 und den Spaltendecoder (Wähl- und Schreibeinrichtung) 7, um einen bestimmten Bereich der Zellenanordnung 5 um eine bestimmte Einheit auf einmal zu löschen.
-
Die Zellenanordnung 5 ist ein Speicher des virtuellen Massetyps, und weist eine Anordnung aus Speicherzellen, die Wortleitungen und die Bitleitungen auf, und speichert Zwei-Bit-Daten in jeder Speicherzelle. Ein Oxidfilm, ein Nitridfilm und ein weiterer Oxidfilm sind zwischen einem Steuergatter und einem Substrat aufeinander gestapelt. Eine Ladung ist in dem Nitridfilm gefangen, um den Schwellenwert zu verändern und zwischen „0“ und „1“ zu unterscheiden. Eine aus dem Nitridfilm bestehende Fangschicht ist ein Isolierfilm, und die Ladung bewegt sich nicht. Es können durch Speichern der Ladungen an beiden Rändern der Fangschicht zwei Bits gespeichert werden. Das Verfahren zum Speichern von zwei Bits in einer Zelle kann als Spiegel-Bit-Verfahren bezeichnet werden. Die Zellenanordnung 5 kann eine Speicherzelle mit einem floatenden Gate aus Polysilizium sein, die als Schicht zum Speichern der Ladung dient.
-
Wenn die Daten gelesen werden, werden sie an die Bitleitung von der durch die aktivierte Wortleitung bestimmten Speicherzelle ausgelesen. Beim Schreiben (im folgenden als Programmieren bezeichnet) oder Löschen der Daten, werden an die Wortleitung und die Bitleitung geeignete elektrische Potentiale angelegt, um der Speicherzelle Ladung hinzuzufügen oder von dieser abzuziehen.
-
Die Dateneingabe-/-ausgabeschaltung (E/A) 10 arbeitet unter Steuerung durch die Steuerschaltung 2, um Daten in die Zellenanordnung 5 zu programmieren und aus derselben zu löschen. Die Dateneingabe-/-ausgabeschaltung (E/A) 10 wird anhand von 3 näher beschrieben. Die Dateneingabe-/-ausgabeschaltung (E/A) 10 weist eine Masseschaltung 31, einen Programmiertreiber 32, einen Datenhaltespeicher 33 und einen Leseverstärker (Verifizierungsschaltung) 34 auf, wie in 3 dargestellt.
-
Die Masseschaltung 31 dient dem Einstellen der von dem Spaltendecoder (Wähl- und Schreibeinrichtung) 7 gewählten Bitleitung durch das Spaltengatter 9 auf einen Massepegel. Der Datenhaltespeicher 33 empfängt das Ausgangssignal von dem Spaltendecoder (Wähl- und Schreibeinrichtung) 7 und hält den von dem Eingabe-/Ausgabepuffer 4 kommenden Dateneingang. Der Programmiertreiber 32 überträgt die in den Datenhaltespeicher 33 programmierten Daten an die Bitleitung der Zellenanordnung 5 über das Spaltengatter 9.
-
Der Leseverstärker (Verifizierungsschaltung) 34 verstärkt die in die Bitleitung gelesenen Daten auf einen Pegel, der als digitaler Pegel gehandhabt werden kann. Beim Programmieren der Daten nimmt der Programmiertreiber 32 einen Programmierzustand ein und ist mit der Bitleitung verbunden. Beim Lesen der Daten ist der Leseverstärker (Verifizierungsschaltung) 34 mit der Bitleitung verbunden und die Daten auf der Bitleitung werden verstärkt. Wenn die Seite gewählt ist und das Programmieren beendet ist, geht die Bitleitung der dieser Seite benachbarten Seite in den floatenden Zustand über.
-
Der Leseverstärker (Verifizierungsschaltung) 34 beurteilt ebenfalls die gelesenen Daten. Der Leseverstärker (Verifizierungsschaltung) 34 stellt fest, ob die Daten 0 oder 1 sind, indem er den Strom der Daten mit dem Referenzstrom vergleicht. Der Strom der Daten wird von der Zellenanordnung 5 entsprechend der von dem Zeilendecoder 6 und dem Spaltendecoder (Wähl- und Schreibeinrichtung) 7 getroffenen Bestimmung geliefert. Der Referenzstrom wird von einer nicht dargestellten Referenzzelle geliefert. Das festgestellte Ergebnis wird an den Eingabe-/Ausgabepuffer 4 geliefert.
-
Der dem Programmier- und dem Löschvorgang entsprechende Verifizierungsvorgang erfolgt durch Vergleichen des von der Zellenanordnung 5 gelieferten Stroms der Daten mit den Referenzströmen für die Programmverifizierung und die Löschverifizierung entsprechend der Bestimmung durch den Zeilendecoder 6 und den Spaltendecoder (Wähl- und Schreibeinrichtung) 7. Der Referenzstrom wird von der Referenzzelle zugeführt, die der Programmverifizierung und der Löschverifizierung dient.
-
Der Zeilendecoder 6 treibt selektiv mehrere Wortleitungen WL auf der Basis der jeweiligen Adressen, wenn die Daten programmiert, gelöscht und gelesen werden. Eine bestimmte Hochspannung wird von dem Gate-Hochspannungsgenerator 24 nach 2 an einen (nicht dargestellten) Wortleitungstreiber geliefert.
-
Der Spaltendecoder (Wähl- und Schreibeinrichtung) 7 steuert das Spaltengatter 9 basierend auf der von dem Adressenhaltespeicher 8 gehaltenen Adresse. Das Spaltengatter 9 wird von dem Spaltendecoder 7 gewählt, und der entsprechende Leseverstärker (Verifizierungsschaltung) 34 wird in der Dateneingabe-/ -ausgabeschaltung (E/A) 10 gewählt.
-
Wenn beispielsweise Daten aus einer gewünschten Speicherzelle in der Zellenanordnung 5 ausgelesen werden, verbindet das Spaltengatter die mit dieser Speicherzelle verbundene Bitleitung mit dem entsprechenden Leseverstärker (Verifizierungsschaltung) 34.
-
Wenn die Daten in die gewünschte Speicherzelle in der Zellenanordnung 5 programmiert werden, wird die gewünschte Speicherzelle durch die von außen eingegebenen Adressendaten aktiviert, die eingegebenen Programmierdaten werden aus dem Haltespeicher 33 über das Spaltengatter 9 an die Bitleitung ausgegeben und in die gewünschte Speicherzelle in der Zellenanordnung 5 programmiert.
-
Die Energieversorgung 20 liefert eine Hochspannung an die Dateneingabe-/- ausgabeschaltung (E/A) 10. Die Hochspannung wird von dem Drain-Hochspannungsgenerator 21 erzeugt, die in der nichtflüchtigen Halbleiterspeichervorrichtung 1 vorgesehen ist. Die Energieversorgung 20 liefert die von dem Gate-Hochspannungsgenerator 24 erzeugte Hochspannung an den Zeilendecoder 6 und den Spaltendecoder (Wähl- und Schreibeinrichtung) 7. die von der Energieversorgung 20 gelieferte Energie dient als Energie für das Decodieren, das für den Programmier- und den Löschvorgang erforderlich ist. Bei dem vorliegenden Ausführungsbeispiel wird die Hochspannung in dem Hochspannungsgenerator 21 der nichtflüchtigen Halbleiterspeichervorrichtung 1 erzeugt, um die Dateneingabe-/-ausgabeschaltung (E/A) 10 zu versorgen, und darüber hinaus kann die von außen eingegebene Hochspannung als Decodierenergie verwendet werden. Die Energieversorgung, die eine große Stromversorgungsfähigkeit hat, ist zum Programmieren einer größeren Menge von Daten mit einer hohen Geschwindigkeit erforderlich. In diesen Jahren, weist die Hochspannungserzeugungsschaltung 21 in der nichtflüchtigen Halbleiterspeichervorrichtung 1 entsprechend der niedrigeren Spannung der Energieversorgungsspannung Grenzen hinsichtlich der Zahl von Bits auf, die gleichzeitig programmierbar sind. Wenn die Anzahl der gleichzeitig zu programmierenden Bits groß ist (64-Bit-Simultan-Programmiermodus, wie im Folgenden beschrieben), wird daher die Hochspannung von außen geliefert, um die Decodierenergie bereitzustellen. Die von außen gelieferte Spannung wird über einen in 2 dargestellten Beschleunigungspin (ACC-Pin) eingegeben. Die Wähleinrichtung 22 gibt die von außen eingegebene Spannung an die Reguliereinrichtung 23 aus, wenn der Programmiermodus der 64-Bit-Simultan-Programmiermodus ist. Handelt es sich bei dem Programmiermodus um einen 16-Bit-Simultan-Programmiermodus, wird die in dem Hochspannungsgenerator 21 erzeugte Spannung an die Reguliereinrichtung 23 ausgegeben. Der Befehl des Programmiermodus wird durch ein Programmiermodusbefehlssignal von der Schreibschaltung 11 in 2 angezeigt. Die Reguliereinrichtung 23 glättet die gelieferte Hochspannung zu einer konstanten Spannung und gibt die konstante Spannung an eine Energieversorgungsleitung (VPROG) aus. Wenn die Energieversorgung 20 eine hohe Stromversorgungsfähigkeit hat, wird die Energie nicht von außen geliefert, und die Daten können lediglich mit der von der Energieversorgung 20 gelieferten Hochspannung programmiert werden.
-
Unter Bezugnahme auf 4 werden die Beziehungen zwischen der Zellenanordnung 5 und der Dateneingabe-/-ausgabeschaltung (E/A) 10 sowie dem Spaltengatter 9 beschrieben. Eine Zellenanordnung 5 ist zusammen mit der Bitleitung in mehrere Blöcke unterteilt. Bei dem vorliegenden Ausführungsbeispiel ist jede Zellenanordnung 5 in 16 Blöcke unterteilt. Jeder Block weist die Dateneingabe-/-ausgabeschaltung (E/A) 10 und den Spaltendecoder (Wähl- und Schreibeinrichtung) 7 auf, so dass eine Anzahl von Daten, die gleich der Anzahl der Blöcke ist, parallel ein- und ausgegeben werden kann. In 4 ist die Dateneingabe-/-ausgabeschaltung (E/A) 10 als I/O angegeben. Ein Block ist in acht Seiten unterteilt. Die Dateneingabe-/-ausgabeschaltung (E/A) 10 wählt die Speicherzelle anhand der Seite aus, um so die Daten zu programmieren und zu lesen.
-
Die nichtflüchtige Halbleiterspeichervorrichtung 1 gemäß dem vorliegenden Ausführungsbeispiel umfasst den 64-Bit-Simultan-Programmiermodus und den 16-Bit-Simultan-Programmiermodus. Im 64-Bit-Simultan-Programmiermodus werden 64 Bits gleichzeitig programmiert, und im 16-Bit-Simultan-Programmiermodus werden gleichzeitig 16 Bits programmiert. Im 64-Bit-Simultan-Programmiermodus ist die Zellenanordnung 5 in geradzahlige Seiten und ungeradzahlige Seiten unterteilt. 64-Bit-Daten werden in geradzahligen Seiten oder die ungeradzahligen Seiten gleichzeitig programmiert. 5 zeigt aus dem Spaltendecoder (Wähl- und Schreibeinrichtung) 7 im 64-Bit-Simultan-Programmiermodus ausgegebene Signale. Wie in 5 dargestellt, gibt der Spaltendecoder (Wähl- und Schreibeinrichtung) 7 ein Signal (PGM_E), das eine geradzahlige Seite wählt, und ein Signal (PGM_O) aus, das eine ungeradzahlige Seite wählt, während das die Programmiererlaubnis angebende Programmsignal (PGM) hochpegelig ist. Das Signal (PGM_E), das eine geradzahlige Seite wählt, gibt an, dass die geradzahlige Seite gewählt wurde, und das Signal (PGM_O), das eine ungeradzahlige Seite wählt, gibt an, dass die ungeradzahlige Seite gewählt wurde. Das Signal (PGM_E), das eine geradzahlige Seite wählt, ist hochpegelig, und geradzahlige Seiten 0, 2, 4, und 6 werden von dem Spaltengatter 9 gewählt. Gleichzeitig weist das Signal (PGM_O), das eine ungeradzahlige Seite wählt, einen hohen Pegel auf, und das Spaltengatter 9 wählt ungeradzahlige Seiten 1, 3, 5 und 7.
-
GSEL Signale (GSEL 0 bis GSEL 7) dienen zum Verbinden der gewählten Bitleitung mit der Masseleitung. Während die Signale von GSEL 0, 2, 4 und 6 hochpegelig sind, sind die Signale von GSEL 1, 3, 5, und 7 niederpegelig.
-
Wenn die Signale von GSEL 1, 3, 5 und 7 hochpegelig sind, sind im Gegensatz dazu die Signale von GSEL 0, 2, 4 und 6 niederpegelig. Beispielsweise wird die gewählte Bitleitung der geradzahligen Seite, in welche die Daten programmiert werden sollen, mit der Masseleitung verbunden, und die Bitleitung wird auf einen niedrigen Pegel gesetzt. Zu diesem Zeitpunkt wird die ungeradzahlige Seite nicht programmiert und das GSEL Signal ist niederpegelig, was dazu führt, dass die Bitleitung sich im floatenden Zustand befindet. Wenn die Daten in die geradzahligen Seiten programmiert werden, werdend die Bitleitungen der ungeradzahligen Seiten in den floatenden Zustand versetzt. Dies kann das Fließen von Zellenstrom über die Bitleitungen in die Speicherzellen, die nicht programmiert werden, verhindern. Das heißt, die Speicherzellen, die nicht programmiert werden sollen, bestehen zwischen den zu programmierenden Speicherzellen. Somit werden keine unnötigen Daten in die Speicherzelle programmiert, in welche nichts programmiert werden soll, und die Belastung wird nicht übertragen. Darüber hinaus werden die geradzahligen und die ungeradzahligen Seiten nicht gleichzeitig programmiert, und die Abstände zwischen den gleichzeitig zu programmierenden Speicherzellen werden vergrößert. Dies vermeidet unnötige Belastungen der Speicherzelle. Ferner werden die Daten abwechselnd in die geradzahligen und die ungeradzahligen Seiten programmiert. Es ist somit möglich, die mehreren Bits gleichzeitig zu programmieren, ohne die Konfiguration der Speicherzellenanordnung zu ändern oder die Bitleitungswahl zu decodieren.
-
Bei dem 16-Bit-Simultan-Programmiermodus werden jeweils die 16 Blöcke von 4 gewählt und die Daten werden in eine der Seiten des gewählten Blocks programmiert. 6 zeigt ein Zeitdiagramm. Der Spaltendecoder (Wähl- und Schreibeinrichtung) 7 erzeugt die Zellensignale (WSEL 0 bis WSEL 7), um die Speicherzelle zu wählen, welche an das Spaltengatter 9 ausgeben soll, während das in 6 dargestellte Programmsignal (PGM), das die Programmiererlaubnis angibt, hochpegelig ist. Die Zellensignale WSEL 0 bis WSEL 7 entsprechen den Seiten jedes Blocks. Das heißt, wenn WSEL 0 hochpegelig ist, wird die Seite 0 gewählt und die Daten werden in die Seite 0 programmiert.
-
Gleichermaßen weist WSEL 1 einen hohen Pegel auf, eine Seite 1 wird gewählt und die Daten werden in die Speicherzelle der Seite 1 programmiert.
-
Auf die gleiche Weise wie bei dem 64-Bit-Simultan-Programmiermodus werden die GSEL Signale (GSEL 0 bis GSEL 7) ausgegeben und die Bitleitung, welche eine Source der zu programmierenden Seite ist, wird mit der Masseleitung verbunden. Die Bitleitungen, die nicht programmiert werden, werden in den floatenden Zustand versetzt.
-
7 zeigt Logikgatter, welche die GSEL Signale erzeugen. Diese Logikgatter sind in dem Spaltendecoder 7 enthalten. Die GSEL Signale (GSEL 0, 2, 4 und 6) für die geradzahligen Seiten geben ein Signal (PGM_E), das eine geradzahlige Seite wählt, und jedes der Zellensignale (WSEL 0, 2, 4, und 6) in ein NOR-Gatter 40 ein. Der Ausgang des NOR-Gatters 40 wird durch Invertieren mittels eines Inverters 41 erzeugt. Auf die gleiche Weise geben die GSEL Signale (GSEL 1, 3, 5 und 7) für die ungeradzahligen Seiten ein Signal (PGM_O), das eine ungeradzahlige Seite wählt, und jedes der Zellensignale (WSEL 1, 3, 5, und 7) in das NOR-Gatter 40 ein. Der Ausgang des NOR-Gatters 40 wird durch Invertieren mittels des Inverters 41 erzeugt.
-
8 zeigt eine detaillierte Konfiguration der Zellenanordnung 5 und des Spaltengatters 9. 8 zeigt mehrere Wortleitungen WL (nur eine WL ist zur Vereinfachung in 8 dargestellt), mehrere metallische Bitleitungen MBL sowie Speicherzellen MC, die nahe Kreuzungspunkten der Wortleitung WL und der metallischen Bitleitungen MBL angeordnet sind. Zwei Speicherzellen MC sind zwischen zwei metallischen Bitleitungen MBL gebildet. Acht Speicherzellen MC (MC 0 bis MC 7 in 8) sind in einer Seite vorgesehen, bei der es sich um eine Einheit für das Programmieren und das Lesen handelt. Zwei Bits können in einer Speicherzelle MC gespeichert werden. Die beiden Speicherzellen MC sind zwischen den beiden metallischen Bitleitungen vorgesehen, und eine Unter-Bitleitung (SBL) ist zum Verbinden der Speicherzellen MC mit den beiden Bitleitungen vorgesehen. Die Unter-Bitleitung SBL ist in einer Diffusionsschicht ausgebildet und parallel mit der metallischen Bitleitung MBL angeordnet. Die Unter-Bitleitung SBL ist mit der metallischen Bitleitung MBL über einen Wähltransistor (STr in 8) verbunden, der einen Decodiersignalausgang von dem Spaltendecoder 7 als Gate-Eingang empfängt.
-
Jede der metallischen Bitleitungen MBL weist einen ersten Transistor (GTr in 8) und einen zweiten Transistor (DTr in 8) auf. Der erste Transistor ändert selektiv, ob die metallische Bitleitung MBL mit einer Masseleitung (ARVSS) verbunden ist oder nicht. Der zweite Transistor ändert selektiv, ob die metallische Bitleitung MBL mit einer Drain-Signalleitung (DATAB) verbunden ist oder nicht. Der erste Transistor GTr und der zweite Transistor DTr wechseln entsprechend dem von dem Spaltendecoder (Wähl- und Schreibeinrichtung) 7 gelieferten Decodiersignal zwischen dem offenen und dem geschlossenen Zustand für die Verbindung mit den metallischen Bitleitungen MBL. Die in dem Spaltendecoder (Wähl- und Schreibeinrichtung) 7 erzeugten Signale sind die Signale BSD und BSG von 8. Wenn das Signal BSD hochpegelig wird, wird der zweite Transistor DTr geschlossen, um die entsprechende Bitleitung und die Drain-Signalleitung (DATAB) zu verbinden. Wenn das Signal BSG hochpegelig wird, wird der erste Transistor GTr geschlossen, um die entsprechende Bitleitung und die Massesignalleitung (ARVSS) zu verbinden. Eine Masseleitung ARVSSn ist in jeder Seite unabhängig vorgesehen.
-
Bei dem vorgenannten 64-Bit-Simultan-Programmiermodus nehmen die GSEL Signale 0, 2, 4 und 6 einen niedrigen Pegel an, wenn die GSEL Signale 1, 3, 5, und 7 hochpegelig werden. Wenn die Seite 1 von 8 für das Programmieren gewählt wird, wird die Masseleitung einer benachbarten Seite 2 durch das in 8 gezeigte GSEL (2) in den floatenden Zustand versetzt.
-
Im folgenden wird eine mit einer Energieversorgungsleitung VPROG verbundene Programmierpegelvergleichmäßigungsschaltung 25 gemäß 2 beschrieben. Die Programmierpegelvergleichmäßigungsschaltung 25 besteht aus mehreren Stromkompensationsschaltungen 26 gemäß 9. die Stromkompensationsschaltung 26 dient als Programmierpegelvergleichmäßigungsunterschaltung, liefert einen Blindprogrammierstrom, bei dem es sich um eine bestimmte Strommenge aus der Energieversorgungsleitung VPROG handelt, und stellt einen konstanten Spannungsabfall zum Zeitpunkt des Programmierens der Daten ein. Der Spannungsabfallpegel, der von der Energieversorgung 20 geliefert wird, muss während des Programmierens konstant gehalten werden, um den in die Speicherzelle zu programmierenden Datenprogrammierpegel aufrecht zu halten. Bei der erfindungsgemäßen nichtflüchtigen Halbleiterspeichervorrichtung 1 wird die Hochspannung nur an die Datenleitung geliefert und die Bitleitung für das Leiten des Zellenstroms in die Speicherzelle gewählt, wenn die Daten „0“ programmiert werden. Daher sind so viele Stromkompensationsschaltungen 26 vorgesehen wie mehrere Datenbits gleichzeitig geschrieben werden können, und so viele Zellenströme von Speicherzellen wie Speicherzellen vorhanden sind, in welche die Daten „0“ nicht geschrieben werden, werden durch die Stromkompensationsschaltungen 26 geleitet, um den Spannungsabfallpegel konstant zu halten, wenn die mehreren Datenbits gleichzeitig programmiert werden. Wenn beispielsweise 16 Bits gleichzeitig programmiert werden und drei Seiten vorhanden sind, in welche „0“ programmiert wird, wird die Programmierpegelvergleichmäßigungsschaltung 25 derart eingestellt, dass sie einen Programmierstrom leitet, der 13 Bits entspricht. Auf die gleiche Weise wird die Programmierpegelvergleichmäßigungsschaltung 25, wenn 64 Bits gleichzeitig programmiert werden und drei Seiten vorhanden sind, in welche „0“ programmiert wird, so eingestellt, dass sie einen Programmierstrom leitet, der gleich 61 Bits ist.
-
Jedoch erfordert die in 4 dargestellte Zellenanordnung 5 mit 16-E/A und acht Seiten 128 Stromkompensationsschaltungen 26, was zu einer Erhöhung der Schaltungszahl führt und die Schaltung vergrößert. Bei der vorliegenden Erfindung ist daher eine Stromkompensationsschaltung 26 für Speicherzellen in zwei benachbarten Seiten vorgesehen, die nicht gleichzeitig programmiert werden, so dass die Schaltungsgröße nicht zunimmt.
-
10 zeigt eine Konfiguration der Stromkompensationsschaltung 26. Die Stromkompensationsschaltung 26 entspricht der Seite 0 und der Seite 1. Widerstände R1, R2 und R3 sowie Schalttransistoren 55 und 56 sind in Reihe mit der Energieversorgungsleitung VPROG verbunden. Ein Inverter 51 und ein NAND-Gatter 52 sind mit einem Gate des Schalttransistors 56 verbunden. Auf die gleiche Weise sind ein Inverter 53 und ein NAND-Gatter 54 mit einem Gate des Schalttransistors 55 verbunden.
-
Ein Signal P0PGMD, das Programmierdaten der Seite 0 darstellt, wird in den Inverter 51 eingegeben. Der Ausgang des Inverters 51 wird in das NAND-Gatter 52 eingegeben. Das Ausgangssignal des Inverters 51 und das Signal GSEL 0 werden in das NAND-Gatter 52 eingegeben. Das Signal GSEL 0 verbindet die durch die Daten gewählte Bitleitung mit der Masseleitung, wenn die Seite 0 zum Programmieren gewählt wird. Der Ausgang des NAND-Gatters 52 ist ein Gate-Eingang des Schalttransistors 56. In der gleichen Weise wird ein Signal P1PGMD, bei dem es sich um Programmierdaten der Seite 1 handelt, in den Inverter 53 eingegeben. Der Ausgang des Inverters 53 wird in das NAND-Gatter 54 eingegeben. Der Ausgang des Inverters 53 und das Signal GSEL 1 werden in das NAND-Gatter 54 eingegeben. Das Signal GSEL 1 verbindet die gemäß den Daten gewählte Bitleitung mit der Masseleitung, wenn die Seite 1 zum Programmieren gewählt wird. Der Ausgang des NAND-Gatters 54 ist der Gate-Eingang des Schalttransistors 55.
-
Außer wenn die Daten „0“ programmiert werden, schalten sich die Schalttransistoren 55 und 56 ein, um eine bestimmte Strommenge von der Energieversorgungsleitung VPROG zu leiten. Diese bestimmte Strommenge ist im Wesentlichen gleich dem Programmierstrom, der fließt, wenn die Daten „0“ in die Speicherzelle programmiert werden. Wenn beispielsweise „0“ in die Seite 1 programmiert wird, wird das Signal P1PGMD niederpegelig. Die zum Programmieren gewählte Seite hat den hohen Pegel des GSEL Signals (GSEL 1 in diesem Fall) und das von dem NAND-Gatter 54 entsprechend dem Pegel des Signals PAPGMD ausgegebene Signal wird in das Gate des Schalttransistor 55 eingegeben. Wenn die Seite nicht für das Programmieren gewählt ist, weist das GSEL Signal (GSEL 1) den niedrigen Pegel auf, und das hochpegelige Signal wird stets an den Schalttransistor 55 ausgegeben. Anschließend schaltet sich der Schalttransistor 55 ein, und der Strom fließt von der Energieversorgungsleitung VPROG durch die Widerstände R1, R2 und R3.