-
Hintergrund der Erfindung
-
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft im Allgemeinen Halbleiterbauelemente und betrifft insbesondere ein Halbleiterbauelement, das einen nicht-flüchtigen Speicher enthält. Insbesondere betrifft die vorliegende Erfindung eine Technik zum Steuern des Betriebs eines Halbleiterbauelements unter Anwendung von CAM-(inhaltsadressierbaren Speicher)Daten.
-
Beschreibung des Stands der Technik
-
Üblicherweise sind zwei Arten an Halbleiterbauelementen gut bekannt:
Eine Art besitzt eine Struktur, die bestimmt, ob die Daten, die in einem nicht-flüchtigen Speicher gespeichert sind, äquivalent sind zu den erwarteten Datenwerten, um damit in automatischer Weise eine Datenprüfung zum Zeitpunkt des Programmierens oder Löschens des nicht-flüchtigen Speichers durchzuführen; die andere Art ist eine Struktur, die reguläre nicht-flüchtige Speicherzellen aufweist, die von Anwendern zu verwenden sind, und die CAM-Zellen aufweist, um die Funktionsweise des Halbleiterbauelements zu steuern. In der jüngeren Vergangenheit wurde zur Reduzierung der Bauteilgröße eine Struktur vorgeschlagen, die CAM-Zellen aufweist, die aus regulären nicht-flüchtigen Speicherzellen gebildet sind. Wenn die CAM-Zellen den gleichen Aufbau aufweisen wie die regulären Speicherzellen, sollten die Wortleitungen und die Bitleitungen, die mit den CAM-Zellen zu verbinden sind, vorzugsweise den gleichen Aufbau aufweisen wie jene, die mit den regulären Speicherzellen zu verbinden sind.
-
Die CAM-Daten, die in die CAM-Zellen mit dem gleichen Aufbau wie die regulären Speicherzellen geschrieben werden, werden vorzugsweise ausgelesen und zu einer flüchtigen Speichereinheit (einer Zwischenspeicherschaltung), etwa einem SRAM (statischer Speicher mit wahlfreiem Zugriff) zum Zeitpunkt des Einschaltens oder des Zurücksetzens der Hardware übertragen. Mit dieser Maßnahme wird die Arbeitsgeschwindigkeit zum Zeitpunkt eines Lesezugriffs auf die regulären nicht-flüchtigen Speicherzellen nicht durch das Auslesen der CAM-Daten verringert.
-
Wenn die CAM-Zellen den gleichen Aufbau wie die regulären Speicherzellen besitzen, sollte die Verifizieroperation der CAM-Zellen vorzugsweise in dem Halbleiterbauelement zum Zeitpunkt des Neubeschreibens der CAM-Daten abgeschlossen sein, ähnlich wie der Verifiziervorgang der regulären Speicherzellen. Die ungeprüfte
japanische Patentoffenlegungsschrift 6-76586 offenbart eine Verifizierschaltung zum Programmieren regulärer Speicherzellen.
-
Wenn reguläre Speicherzellen zu programmieren sind, wird die Information „1” oder „0” durch I/O-Einrichtungen bzw. Eingabe/Ausgabe-Einrichtungen durch einen Anwender eingespeist. Eine Speicherzelle mit der eingespeisten Information „0” ist eine Speicherzelle, die zu programmieren ist, und eine Speicherzelle mit der eingespeisten Information „1” ist eine zu löschende Speicherzelle. Die Information jeder I/O-Einheit wird als ein erwarteter Wert zum Zeitpunkt des Verifizierens verwendet.
-
In einem Halbleiterbauelement werden vor dem tatsächlichen Programmieren die Daten aus der Speicherzelle, die mit den programmierenden Wortleitungen verbunden ist, ausgelesen. Dieser Prozess wird als „vorgeordnetes Auslesen bzw. Vor-auslesen” bezeichnet. Die vor-ausgelesenen Daten werden mit den durch die I/O-Einheiten eingespeisten Daten verglichen. Entsprechend den Vergleichsergebnissen wird das Programmieren lediglich an den Speicherzellen ausgeführt, die in dem gelöschten Zustand sind (die die Information „1” enthalten) und die über die I/O-Einheiten (mit der eingespeisten Information „0”) zu programmieren sind.
-
Eine Programmierung wird an den bereits programmierten Speicherzellen (die die Information „0” enthalten) nicht ausgeführt, da das zusätzliche Programmieren zu einer Belastung führen würde. Wenn die Information, die in die bereits programmierten Speicherzellen (die die Information „0” enthalten) durch die I/O-Einheiten eingespeist wird, eine „1” ist, wird ein Fehlersignal zu der Steuerung zurückgegeben. Dies geschieht auf Grund dessen, dass die Speicherzellen nicht-flüchtige Speicher sind, die physikalisch Schreiboperationen ausführen und eine Irreversibilität besitzen. Daher ist eine Löschoperation unabhängig von einem Programmiervorgang und das Löschen wird kollektiv an einem Sektor ausgeführt. Wenn die Information, die über die I/O-Einheiten an die bereits gelöschten Speicherzellen (die die Information „1” enthalten) eingespeist wird, „1” beträgt, werden keine Operationen ausgeführt.
-
Das Programmieren von CAM-Zellen sollte vorzugsweise in der gleichen Weise wie das Programmieren regulärer Speicherzellen ausgeführt werden. Zum Programmieren von CAM-Zellen gibt es ein Verfahren, das zwei unterschiedliche Schnittstellen in Bezug auf die Programmierschnittstelle für reguläre Speicherzellen beinhaltet. Es wird eine Einspeisefestlegung gemäß der Information „1” und der Information „0”, die über die I/O-Einheiten eingespeist werden, ausgeführt, um damit zu bestimmen, welche CAM-Zellen zu programmieren sind und welche nicht zu programmieren sind (siehe die
japanische ungeprüfte Patentoffenlegungsschrift Nr. 10-106275 ). Die Programmierschnittstelle für die Eingabefestlegung wird als „Schnittstelle 1” bezeichnet. Im Falle der Schnittstelle 1 gibt ein Anwender die Information „1” und die Information „0” über die entsprechenden I/O-Einheiten ein. Die Information „1” bezeichnet eine Speicherzelle, die zu programmieren ist, während die Information „0” eine Speicherzelle bezeichnet, für die keine Operation ausgeführt wird (die nicht zu programmieren ist).
-
Zum Programmieren von CAM-Zellen gibt es nicht nur das Verfahren mit der Schnittstelle 1, sondern es gibt ein Verfahren zum Kennzeichnen lediglich der zu programmierenden CAM-Zellen mittels Befehlseingabe. Die in diesem Verfahren verwendete programmierende Schnittstelle wird als „Schnittstelle 2” bezeichnet. Im Falle der Schnittstelle 2 werden die Adressen von CAM-Zellen gekennzeichnet und die CAM-Zellen mit den gekennzeichneten Adressen werden programmiert.
-
Jede CAM-Zelle sollte vorzugsweise einen Anwenderblock, in welchem Anwender wiederholt Informationen schreiben können, und einen Fabrikblock aufweisen, in welchem der Auslieferer im Voraus Informationen speichern kann. Wenn die CAM-Daten in dem Anwenderblock in diesem Aufbau erneut beschrieben werden, ist es notwendig, die Speicherzellen in dem Fabrikblock vor einer Störung, die durch die Zelleninformation hervorgerufen wird, zu schützen. Die „Störung” ist ein Phänomen, in welchem ein Ladungsverlust oder ein Ladungszugewinn in den Speicherzellen auf Grund des elektrischen Einflusses der Wortleitungen und der Bitleitungen hervorgerufen wird, mit denen die Speicherzellen zum Zeitpunkt des Programmierens der gekennzeichneten Speicherzellen verbunden sind.
-
Wenn die CAM-Daten in dem Anwenderblock neu zu beschreiben sind, ist es notwendig, die Speicherzellen in dem Fabrikblock vor einer Störung zu schützen, die durch die Zelleninformation hervorgerufen wird. Jedoch gibt es kein Verfahren, um dieser Forderung zu entsprechen, was ein erstes Problem des Stands der Technik ist.
-
Das zweite Problem liegt in der Tatsache begründet, dass eine geeignete Verifizierung nach dem Programmieren von CAM-Zellen nicht ausgeführt werden kann. Im Folgenden wird dieses Problem beschrieben.
-
Das Problem wird hervorgerufen, wenn ein Verifiziervorgang gleichzeitig an den CAM-Zellen ausgeführt wird, die an der gleichen Wortleitung in einer Arraystruktur angeordnet sind, die mehr als eine CAM-Zelle aufweist, die mit einer einzelnen Wortleitung verbunden ist.
-
1a zeigt CAM-Zellen, die mit einer einzelnen Wortleitung verbunden sind und nicht in einem programmierten Zustand sind. Die CAM-Zellen mit „1” in 1a sind gelöschte Zellen und sind nicht programmiert. Die CAM-Zellen mit „0” sind programmierte Zellen und sind bereits programmiert.
-
In 1b wird eine I/O-Eingabe über die Schnittstelle 1 an den CAM-Zellen an der Wortleitung, die in 1a gezeigt ist, ausgeführt. Dabei sind die CAM-Zellen mit „1” zu programmieren, und die Zellen mit „0” sind nicht zu programmieren und verbleiben in dem aktuellen Zustand.
-
In dem Halbleiterbauelement werden die Daten, die aus den CAM-Zellen an der gleichen Wortleitung im Voraus ausgelesen werden, mit den Daten verglichen, die über die I/O-Einheiten eingespeist werden. Entsprechend den Vergleichsergebnissen wird ein Programmieren lediglich an der Speicherzelle durchgeführt, die in dem gelöschten Zustand (in der die Information „1” gespeichert ist) ist und die durch I/O zu programmieren ist (mit der einzuspeisenden Information „1”). In diesem Beispiel wird das Programmieren an der äußersten rechten CAM-Zelle an der Wortleitung ausgeführt, wie dies in 1c gezeigt ist.
-
Die Verifizierung wird nach dem Programmieren ausgeführt. Die Daten, die nach dem Auslesen aus den CAM-Zellen nach dem Programmieren ausgelesen werden, werden mit den I/O-Eingangsdaten als erwartete Werte verglichen (siehe 1d). Wenn zu diesem Zeitpunkt ein durch den I/O eingespeister erwarteter Wert ein „Nichtprogrammieren” für eine bereits programmierte CAM-Zelle angibt, ist das Ergebnis des Vergleichs „falsch” und der Verifiziervorgang endet mit einem Fehler.
-
Wenn das zuvor beschriebene Kennzeichnungsverfahren mit der Schnittstelle 2 durchgeführt wird, werden nur die CAM-Zellen, die zu programmieren sind, mittels der Befehlseingabe ausgewählt. Daher werden die erwarteten Werte, die den CAM-Zellen entsprechen, die nicht an der gleichen Wortleitung programmiert sind, nicht bereitgestellt werden und es kann keine Verifizieroperation verwirklicht werden.
-
Aus Dokument
US 2003/0 035 322 A1 ist ein Flash-Speicher bekannt, der Daten, Code und Parameter speichert und parallele Operationen ausführt, die gleichmäßig große Blöcke in Array Ebenen verwenden. Der Flash-Speicher umfasst separate interne Lese- und Schreib-Pfade, die mit mehreren Array-Ebenen verbunden sind, um ein Lesen in einer Array-Ebene zu erlauben, während ein Schreib in einer anderen Array-Ebene zu ermöglichen. Weiterhin kann eine dritte Array-Ebene einen Block während der Lese- und Schreib-Operationen löschen. Die einheitliche Größe, die ein symmetrisches Layout ermöglicht, wird für eine effiziente Speicherung von Parametern ausgewählt, um eine maximale Flexibilität bei der Zuordnung von Speicher bereitzustellen. Ein Redundanzsystem für den Flash-Speicher verwendet einen CAM und einen RAM zum Adressvergleich und -austausch, wenn Adressen entsprechend defekter Speicherelemente zu ersetzen sind. Die einheitliche Blockgröße ermöglicht, einen Block zu ersetzen, wo Ersatzblöcke in den Array-Ebenen defekte Blöcke ersetzen. Ein Teil der Eingangsadresse, wie die Zeilenadresse, geht direkt an die Decoder, während ein anderer Teil der Eingangsadresse, wie die Blockadresse, um Vergleich direkt an das CAM-Array geht.
-
Überblick über die Erfindung
-
Es ist daher eine Aufgabe der vorliegenden Erfindung, ein Halbleiterbauelement, ein Adressenzuordnungsverfahren und ein Verifizierverfahren bereitzustellen, in welchem die obigen Nachteile vermieden werden.
-
Insbesondere ist es eine Aufgabe der vorliegenden Erfindung, ein Halbleiterbauelement mit CAM-Zellen bereitzustellen, in diese Daten neu geschrieben und eine Verifizierung in geeigneter Weise ausgeführt werden können, wobei ein Adressenzuordnungsverfahren bzw. ein Adressenkennzeichnungsverfahren und ein Verifizierverfahren bereitgestellt werden.
-
Die obige Aufgabe wird gelöst durch ein Halbleiterbauelement gemäß einem jeden der unabhängigen Ansprüche 1, 14 und 17, wobei weitere anschauliche Ausgestaltungen davon in den abhängigen Ansprüchen 2 bis 9, 15 und 16 und 18 bis 25 definiert sind. Weiterhin wird die obige Aufgabe gelöst durch ein Verfahren gemäß einem jeden der unabhängigen Ansprüche 10, 27 und 28, wobei weitere anschauliche Ausgestaltungen des Verfahrens nach Anspruch 10 in den abhängigen Ansprüchen 11 bis 13 definiert sind.
-
Um die obige Aufgabe der vorliegenden Erfindung zu erfüllen, umfasst ein Halbleiterbauelement der vorliegenden Erfindung: ein Zellenarray, das die Betriebseinstellinformation für das Halbleiterbauelement speichert; und eine Steuereinheit, die Lese- und Schreiboperationen, die an dem Zellenarray auszuführen sind, steuert. Die Steuereinheit ordnet unterschiedliche Zeilenadressen den entsprechenden Funktionen für die Betriebseinstellinformation zu. Da die unterschiedlichen Zeilenadressen den jeweiligen Funktionen der Betriebseinstellinformation zugeordnet werden, wird eine Belastung (Gate-Störung) in dem Zellenarray von nicht ausgewählten Funktionen zum Zeitpunkt des Programmierens nicht hervorgerufen.
-
In dem obigen Halbleiterbauelement weist die Steuereinheit unterschiedliche Spaltenadressen den jeweiligen Funktionen der Betriebseinstellinformation zu. Da die unterschiedlichen Spaltenadressen den jeweiligen Funktionen der Betriebseinstellinformation zugeordnet werden, wird eine Belastung (Drain-Störung) in dem Zellenarray der nicht ausgewählten Funktionen zum Zeitpunkt des Programmierens nicht hervorgerufen.
-
In dem zuvor genannten Halbleiterbauelement weist die Steuereinheit zusammenhängende Spaltenadressen für die jeweiligen Funktionen der Betriebseinstellinformation zu. Da die zusammenhängenden Spaltenadressen für die jeweiligen Funktionen zugeordnet werden, können die Daten nacheinander ausgelesen werden, und die Auslesezeit kann verringert werden.
-
In dem zuvor genannten Halbleiterbauelement ordnet die Steuereinheit die Betriebseinstellinformation den Spaltenadressen zu, die von einer einzelnen der Reihenadressen ausgewählt ist. Alternativ weist die Steuereinheit die Betriebseinstellinformation allen I/O-Einheiten einer beliebigen Spalte zu, die durch die Reihenadresse ausgewählt ist. Auf diese Weise kann die Anzahl der Auslesezyklen minimiert werden, und die Auslesezeit kann verringert werden.
-
In dem zuvor genannten Halbleiterbauelement sind Speicherzellen, auf die durch unterschiedliche Reihenadressen zugegriffen wird, voneinander getrennt. Da das Leitungsmuster der lokalen Bitleitungen zwischen den Speicherzellen mit unterschiedlicher Reihenadresse unterbrochen ist, können die Daten einfach durch Umschalten der Spaltenadressen ausgelesen werden, wobei eine Wortleitung zwischen den Speicherzellen der entsprechenden Funktionen ausgewählt wird.
-
In dem zuvor genannten Halbleiterbauelement sind Speicherzellen mit Schalter für das selektive Verbinden der Speicherzellen mit Bitleitungen, die in einer den Spalten entsprechenden Weise angeordnet sind, verbunden. Mit diesem Aufbau können die Daten einfach durch Umschalten der Spaltenadresse ausgelesen werden, wobei die Wortleitung zwischen Speicherzellen entsprechender Funktionen ausgewählt wird.
-
In dem zuvor genannten Halbleiterbauelement enthält das Zellenarray Zellen für jede Spalte, und Speicherzellen, die nicht die Betriebseinstellinformation enthalten, sind von Bitleitungen getrennt, die entsprechend den Spalten angeordnet sind. Folglich wird keine Belastung in dem Zellenarray für nicht ausgewählte Funktionen zum Zeitpunkt des Programmierens hervorgerufen.
-
In dem erfindungsgemäßen Halbleiterbauelement wählt die Steuereinheit alle Wortleitungen in dem Zellenarray aus und liest die Betriebseinstellinformation aus dem Zellenarray aus, wobei die Spaltenadressen nacheinander geändert werden. Mit diesem Aufbau können die Daten in einfacher Weise ausgelesen werden, indem die Spaltenadressen umgeschaltet werden, ohne dass die Wortleitungen geschaltet werden, und die Auslesezeit kann verkürzt werden.
-
In dem erfindungsgemäßen Halbleiterbauelement enthält die Steuereinheit eine Tabelle, die die Nummer einer zugeordneten bzw. gekennzeichneten Speicherzelle in eine Adresse einer entsprechenden Speicherzelle umwandelt. Da eine zugeordnete Speicherzellennummer in die Adresse der zugeordneten Zelle umgewandelt werden kann, kann das Programmieren an der gewünschten Zelle ausgeführt werden.
-
Die vorliegende Erfindung stellt ferner ein Verfahren zum Zuordnen von Adressen für ein Zellenarray bereit, das Betriebseinstellinformation für ein Halbleiterbauelement enthält. Das Verfahren umfasst das Zuordnen unterschiedlicher Reihenadressen zu entsprechenden Funktionen der Betriebseinstellinformation. Da die unterschiedlichen Reihenadressen den jeweiligen Funktionen der Betriebseinstellinformation zugewiesen werden, wird keine Belastung bzw. Störung in dem Zellenarray für nicht ausgewählte Funktionen zum Zeitpunkt des Programmierens hervorgerufen. Ferner kann auch eine Löschung für jede Funktion ausgeführt werden.
-
Das Verfahren umfasst ferner das Zuordnen unterschiedlicher Spaltenadressen für die jeweiligen Funktionen der Betriebseinstellinformation. Durch dieses Verfahren können die Daten mit unterschiedlichen Spaltenadressen für die jeweiligen Funktionen der Betriebseinstellinformation ausgelesen werden.
-
Das Verfahren umfasst ferner den Schritt des Zuordnens zusammenhängender Spaltenadressen für die jeweiligen Funktionen der Betriebseinstellinformation. Durch diese Maßnahme kann die Betriebseinstellinformation von jeweiligen Funktionen in einfacher Weise ausgelesen werden.
-
Das Verfahren umfasst ferner den Schritt des Auswählens aller Wortleitungen in dem Zellenarray und das aufeinanderfolgende Ändern der Spaltenadressen, um Daten aus dem Zellenarray auszulesen. Folglich kann die Betriebseinstellinformation einfach ausgelesen werden, indem die Spaltenadressen umgeschaltet werden, ohne dass die Wortleitungen geschaltet werden.
-
Die vorliegende Erfindung stellt ferner ein Halbleiterbauelement bereit, das umfasst: ein Zellenarray, das die Betriebseinstellinformation für das Halbleiterbauelement speichert; eine Schreibschaltung, die gleichzeitig Speicherzellen in dem Zellenarray programmieren kann; und eine Verifizierschaltung, die ausgebildet ist, ein Programmierergebnis lediglich einer Speicherzelle zu verifizieren, die tatsächlich programmiert ist. Auf diese Weise werden lediglich die Programmierergebnisse der tatsächlich programmierten Zelle verifiziert.
-
In dem erfindungsgemäßen Halbleiterbauelement umfasst die Verifizierschaltung: Komparatorschaltungen, die erwartete Datenwerte, die durch ein normales Programmieren erhalten werden, mit Daten, die aus den Speicherzellen ausgelesen werden, nach dem Programmieren vergleichen; und eine Steuereinheit, die ein fingiertes positives Ergebnis bzw. ein Pseudopositivergebnis für Komparatorausgänge erzeugt, die mit Programmierergebnissen von Speicherzellen verknüpft sind, die nicht programmiert werden. Auf diese Weise wird eine Steueroperation ausgeführt, die zu einem fingierten positiven Ergebnis für die Programmierergebnisse von den Komparatorschaltungen, die unprogrammierten Zellen zugeordnet sind, erzeugt. Folglich kann das Programmierergebnis der programmierten Zelle bei der Verifizierung wiedergegeben werden.
-
In dem erfindungsgemäßen Halbleiterbauelement erkennt die Steuereinheit eine Speicherzelle in einem gelöschten Zustand vor dem Programmieren, wobei die Speicherzelle durch eine externe Eingabe als eine zu programmierende Zelle bezeichnet ist, und das Halbleiterbauelement umfasst ferner eine Schaltung, die einen erwarteten Datenwert erzeugt, der durch ein normales Programmieren erhalten wird, in Reaktion auf einen Befehl von der Steuereinheit, und gibt den erwarteten Datenwert zu einer der Komparatorschaltungen aus, die der zugeordneten Speicherzelle entspricht. Auf diese Weise kann die tatsächlich programmierte Zelle erkannt werden, und der erwartete Datenwert wird an die der Zelle zugewiesenen Komparatorschaltung ausgegeben. Somit kann das Programmierergebnis der programmierten Zelle in genauer Weise bestimmt werden.
-
Die vorliegende Erfindung stellt ferner ein Halbeiterbauelement bereit, das umfasst: ein Zellenarray, das die Betriebseinstellinformation für das Halbleiterbauelement speichert; eine Schreibschaltung, die gleichzeitig Speicherzellen in dem Zellenarray programmieren kann; eine flüchtige Speicherschaltung, die Daten speichert, die in den Speicherzellen vor dem Programmieren gespeichert sind; und eine Verifizierschaltung, die mittels den in der flüchtigen Speicherschaltung gespeicherten Daten eine Speicherzelle verifiziert, die nicht programmiert ist, und eine weitere Speicherzelle, die tatsächlich programmiert ist, mit erwarteten Datenwerten verifiziert, die durch ein normales Programmieren gewonnen wurden. Auf diese Weise kann die Verifizierung von nicht-programmierten Zellen unter Anwendung der gespeicherten Daten ausgeführt werden. Für eine tatsächlich programmierte Zelle wird das Programmierergebnis unter Anwendung des erwarteten Datenwerts verifiziert, der erhalten wird, wenn die Programmierung in korrekter Weise ausgeführt wird. Somit kann das Programmierergebnis der programmierten Zelle in genauer Weise verifiziert werden.
-
In dem erfindungsgemäßen Halbleiterbauelement umfasst die Verifizierschaltung: Komparatorschaltungen, die erwartete Datenwerte, die durch das normale Programmieren erhalten werden, mit Daten vergleicht, die aus den Speicherzellen oder einem Fühlerverstärker nach dem Programmieren ausgelesen werden; und eine Steuereinheit, die die Speicherzelle erkennt, die tatsächlich programmiert ist und die eine der Komparatorschaltungen, die mit der tatsächlich programmierten Speicherzelle verknüpft ist, veranlasst, ein Programmierergebnis davon entsprechend den erwarteten Datenwerten, die durch normales Programmieren gewonnen werden, zu verifizieren. Mit diesem Aufbau wird die tatsächlich programmierte Zelle erkannt und das Programmierergebnis der programmierten Zelle kann in genauer Weise verifiziert werden.
-
In den erfindungsgemäßen Halbleiterbauelement erkennt die Steuereinheit eine Speicherzelle in einem gelöschten Zustand vor dem Programmieren, wobei die Speicherzelle durch ein externes Eingangssignal als zu programmierend gekennzeichnet ist, und das Halbleiterbauelement umfasst ferner eine Schaltung, die die erwarteten Datenwerte, die in der flüchtigen Speicherschaltung gespeichert und mit einer Speicherzelle in einem gelöschten Zustand in Beziehung stehen, vor dem Programmieren auf erwartete Datenwerte ändert, die durch ein normales Programmieren gewonnen werden, und die die erwarteten Datenwerte, die auf diese Weise geändert wurden, an eine der Komparatorschaltungen ausgibt. Mit diesem Aufbau wird die tatsächlich programmierte Zelle erkannt und das Programmierergebnis der programmierten Zelle kann in genauer Weise verifiziert werden.
-
In dem erfindungsgemäßen Halbleiterbauelement empfängt die Steuereinheit extern ein Befehlssignal, das angibt, ob jede Speicherzelle zu programmieren ist, und erkennt eine Speicherzelle, die tatsächlich zu programmieren ist, indem bestimmt wird, ob die zu programmierende Speicherzelle in einem gelöschten Zustand ist. Mit dieser Vorgehensweise wird eine zu programmierende Zelle durch ein externen Befehlssignal gekennzeichnet und das Programmieren wird an der erkannten Zelle ausgeführt.
-
In dem erfindungsgemäßen Halbleiterbauelement dekodiert die Steuereinheit Adresseninformationen, die extern zugeführt werden, um eine zu programmierende Speicherzelle zu erkennen, wobei die Steuereinheit eine Speicherzelle, die tatsächlich zu programmieren ist, erkennt, indem bestimmt wird, ob die zu programmierende Speicherzelle in einem gelöschten Zustand ist. Mit diesem Aufbau wird eine zu programmierende Zelle mittels einer externen eingespeisten Adresseninformation erkannt und das Programmieren wird an der erkannten Zelle ausgeführt.
-
In dem erfindungsgemäßen Halbleiterbauelement ändert die Steuerschaltung eine Schnittstelle, die eine zu programmierende Speicherzelle bezeichnet, in Reaktion auf ein Modusumschaltsignal, das extern zugeführt wird. Mit diesem Aufbau wird eine zu programmierende Zelle entsprechend den Schnittstellen zugewiesen.
-
In dem erfindungsgemäßen Halbleiterbauelement wird die Verifizierschaltung gemeinsam beim Verifizieren nach dem Programmieren des Zellenarrays, das die Betriebseinstellinformation speichert, und dem Verifizieren nach dem Programmieren eines regulären Zellenarrays, das reguläre Daten enthält, verwendet. Mit diesem Aufbau kann die Verifizierschaltung gemeinsam verwendet werden. Folglich kann die Größe der Schaltung verringert werden.
-
In dem erfindungsgemäßen Halbleiterbauelement vergleichen die Komparatorschaltungen die erwarteten Datenwerte, die durch das normale Programmieren gewonnen werden, mit Daten, die aus den Speicherzellen nach dem Programmieren ausgelesen werden, in Reaktion auf ein Modussignal zum Umschalten eines Betriebsmodus zum Programmieren des Zellenarrays, das die Betriebseinstellinformation speichert. Mit diesem Aufbau sind die Komparatorschaltungen lediglich zum Zeitpunkt des Verifizierens aktiv.
-
In dem erfindungsgemäßen Halbleiterbauelement verwenden die Komparatorschaltungen Ausgangssignale der flüchtigen Speicherschaltung zum Zeitpunkt des Programmierens des Zellenarrays, das die Betriebseinstellinformation enthält, und die Komparatorschaltungen verwenden Ausgangssignale einer Schaltung, die die erwarteten Datenwerte bewahrt, die durch das normale Programmieren der Speicherzelle während des Programmierens einer regulären Zelle gewonnen wurden. Mit diesem Aufbau können unterschiedliche Steueroperationen für das Verifizieren beim Programmieren des Zellenarrays, das die Betriebseinstellinformation speichert, und beim Programmieren des regulären Zellenarrays ausgeführt werden.
-
Die vorliegende Erfindung stellt ferner ein Verfahren zum Verifizieren eines Zellenarrays bereit, das die Betriebsinformation für ein Halbleiterbauelement enthält. Das Verfahren umfasst den Schritt des Verifizierens eines Programmierergebnisses lediglich einer Speicherzelle, die unter den Speicherzellen in dem Zellenarray tatsächlich programmiert wurde. Durch dieses Verfahren wird nur das Programmierergebnis der tatsächlich programmierten Zelle verifiziert.
-
Die vorliegende Erfindung stellt ferner ein Verfahren zum Verifizieren eines Zellenarrays bereit, das die Betriebseinstellinformation für ein Halbleiterbauelement speichert. Das Verfahren umfasst die Schritte: Verifizieren einer Speicherzelle, die nicht programmiert ist, mit Daten, die in der Speicherzelle vor dem Programmieren gespeichert sind, und Verifizieren einer weiteren Speicherzelle, die tatsächlich programmiert ist, mit erwarteten Datenwerten, die durch das normale Programmieren gewonnen werden. Durch dieses Verfahren wird die Verifizierung an nicht programmierten Zellen ausgeführt, wobei gespeicherte Daten verwendet werden. Für eine tatsächlich programmierte Zelle wird das Programmierergebnis unter Anwendung des erwarteten Datenwertes verifiziert, der erhalten wird, wenn die Programmierung in korrekter Weise ausgeführt wird. Somit kann das Programmierergebnis der programmierten Zelle in genauer Weise verifiziert werden.
-
Mit jedem der vorher genannten Halbleiterbauelemente, die jeweils ein Zellenarray aufweisen, das die Betriebseinstellinformation speichert, kann eine Datenneubeschreibung und eine Verifizierung in korrekter Weise ausgeführt werden.
-
Kurze Beschreibung der Zeichnungen
-
Weitere Aufgaben, Merkmale und Vorteile der vorliegenden Erfindung gehen deutlicher aus der folgenden detaillierten Beschreibung hervor, wenn diese in Verbindung mit den begleitenden Zeichnungen studiert wird, in denen:
-
1a bis 1d die Probleme des Stands der Technik zeigen;
-
2 den Aufbau eines Halbleiterbauelements gemäß der vorliegenden Erfindung zeigt;
-
3 eine beispielhafte Bitmap bzw. ein beispielhaftes Bitfeld eines CAM-Zellenarrays zeigt;
-
4 ein Beispiel eines Bitfeldes eines CAM-Zellenarrays zeigt;
-
5 den Zusammenhang zwischen den WP-Bitnummern und den Adressen zeigt;
-
6 die Umwandlung der WP-Adressen in die Adressen des CAM-Zellenarrays zeigt;
-
7a und 7b die Speicherzellenstrukturen eines CAM-Zellenarrays und eines regulären Zellenarrays zeigen;
-
8a und 8b die Speicherzellenstrukturen eines CAM-Zellenarrays und eines regulären Zellenarrays zeigen;
-
9 die Strukturen von Logikschaltungen zeigt, die WP-Adressen in CAM-Spaltenadressen umwandeln;
-
10 die Strukturen von Logikschaltungen zeigt, die WP-Adressen in DQ's umwandeln;
-
11 die Strukturen eines Zellenarrays und einer Verifizierschaltung zeigt;
-
12 die Struktur einer WP-Bitauswahlschaltung zeigt;
-
13 ein Flussdiagramm der Funktionsweise der Verifizierschaltung in dem I/O-Modus ist;
-
14a bis 14d die Verfahren zeigen, die von der Verifizierschaltung in den I/O-Modus auszuführen sind;
-
15 ein Flussdiagramm der Funktionsweise der Verifizierschaltung in dem Adressiermodus ist;
-
16 die Verfahren zeigt, die von der Verifizierschaltung in dem Adressiermodus auszuführen sind;
-
17 den Aufbau der Verifizierschaltung in detaillierterer Form zeigt;
-
18 die Strukturen eines Zellenarrays und einer Verifizierschaltung zeigt;
-
19 den Aufbau einer WP-Auswahlschaltung zeigt;
-
20 ein Flussdiagramm der Funktionsweise der Verifizierschaltung in dem I/O-Modus ist;
-
21 die Verfahren zeigt, die von der Verifizierschaltung in dem I/O-Modus auszuführen sind;
-
22 ein Flussdiagramm der Funktionsweise der Verifizierschaltung in dem Adressiermodus ist;
-
23 die Verfahren zeigt, die vor der Verifizierschaltung in dem Adressiermodus auszuführen sind; und
-
24 den Aufbau der Verifizierschaltung in detaillierter Form zeigt.
-
Beschreibung der bevorzugten Ausführungsformen
-
Das Folgende ist eine Beschreibung bevorzugter Ausführungsformen der vorliegenden Erfindung, wobei auf die begleitenden Zeichnungen Bezug genommen wird.
-
(erste Ausführungsform)
-
In 2 ist der Aufbau dieser Ausführungsform beschrieben. Ein Halbleiterbauelement 1 dieser Ausführungsform umfasst ein reguläres Zellenarray 3, das reguläre Daten speichert, und umfasst ein CAM-Zellenarray 4, das CAM-Daten enthält. Das reguläre Zellenarray 3 und das CAM-Zellenarray 4 bilden eine Zellenarrayeinheit 2. Das CAM-Zellenarray 4 ist aus Speicherzellen aufgebaut, die in mehreren Reihen und Spalten wie beim regulären Zellenarray 3 angeordnet sind. Das CAM-Zellenarray 4 speichert die Betriebseinstellinformation (sogenannte CAM-Daten) für das Halbleiterbauelement 1. Z. B. sind die Schreibschutzinformation für das reguläre Zellenarray 3, die interne Spannungssteuerinformation für das Halbleiterbauelement 1, die interne Zeitsteuerinformation, die Betriebsmodusumschaltinformation und die Speicherzellenredundanzbitinformation darin gespeichert. Das Halbleiterbauelement 1 umfasst ferner eine periphere Schaltung, die Datenschreib-, Lese- und Löschoperationen an den Zellenarrays durchführt. Wie in 1 gezeigt ist, umfasst die periphere Schaltung einen Reihendekodierer 5, einen Spaltendekodierer 6, ein Befehlsregister 7, eine Steuerung 8, eine Programmierspannungserzeugungsschaltung 9, einen Fühlerverstärker 10, eine flüchtige Speichereinheit 11, eine Bestimmungseinheit 12 und eine Verifizierschaltung 13 und eine Dateneingabe/Ausgabe-Schaltung 14. Der Reihendekodierer 5 steuert selektiv Wortleitungen WL auf der Grundlage der jeweiligen Adressen zum Zeitpunkt des Schreibens, des Löschens und des Auslesens von Daten an. Es wird eine vorbestimmte Spannung an den Wortleitungstreiber (nicht gezeigt) von der Programmierspannungserzeugungsschaltung 9 angelegt. Der Spaltendekodierer 6 wählt eine Spalte aus dem Zellenarray aus, d. h. eine globale Bitleitung oder eine lokale Bitleitung, auf der Grundlage einer extern eingespeisten Adresse.
-
Das Befehlregister 7 dekodiert einen externen Befehl in ein internes Steuersignal. Die Steuerung 8 steuert den inneren Betrieb in Reaktion auf das interne Steuersignal, das von dem Befehlsregister 7 dekodiert wird. Die Steuerung 8 ist mittels eines Mikroprozessors aufgebaut und steuert die Programmierspannungserzeugungsschaltung 9, eine Bestimmungsschaltung 12 und eine Verifizierschaltung 13.
-
Die in dem CAM-Zellenarray 4 gespeicherten CAM-Daten werden zu der flüchtigen Speichereinheit 11 zum Zeitpunkt des Einschaltens des Bauelements 1 oder beim Rücksetzen der Hardware übertragen und dort gespeichert. Durch das Einlesen der CAM-Daten in die flüchtige Speichereinheit 11 wird eine Verzögerung einer Leseoperation verhindert, wenn die CAM-Daten zum Zeitpunkt eines Lesezugriffs auf das reguläre Zellenarray 3 ausgelesen werden. Die Dauer der Leseoperation sollte vorzugsweise kurz sein, da die Aktivierungsphase länger wird, sofern die CAM-Daten nicht in einer kürzen Zeitdauer übertragen werden.
-
Die Dateneingabe/Ausgabe-Schaltung 14 umfasst einen I/O-Anschluss, der einen Programmierbefehl von außen einspeist und ausgelesene Daten ausgibt. Die Dateneingabe/Ausgabe-Schaltung 14 führt Datenschreiboperationen (Programmier- und Leseoperationen) an dem CAM-Array 4 durch.
-
Als nächstes wird der Aufbau des CAM-Zellenarrays 4 beschrieben. 3 zeigt eine Bitmap bzw. ein Bitfeld, das die Zuordnung der CAM-Daten zu dem CAM-Zellenarray 4 zeigt. Das CAM-Zellenarray 4 ist in Funktionsblöcke, d. h einen Anwenderblock und einen Fabrikblock unterteilt. Eine Datenlöschung findet in jedem Funktionsblock statt.
-
Ein „Anwenderblock” ist ein Schreibgebiet, in welchen ein Anwender ein Schreibschutzbit (im Weiteren als „WP-Bit” bezeichnet) schreibt. Ein „Schreibschutz” Bit ist ein Bit zum Steuern des Programmierens oder Löschens von Speicherzellen, und ein Einheitenschreibschutzbit repräsentiert eine beliebige Anzahl an Sektoren (im Weiteren wird die Einheit als die „Sektorgruppe” bezeichnet). In dem in 3 gezeigten Beispiel sind WP-Bits vorzugsweise allen I/O-Einheiten DQ0 bis DQ15 zugeordnet. Eine Wortleitung (eine Reihenadresse) und vier lokale Bitleitungen (LBL), d. h. vier Spaltenadressen (LBL0 bis LBL3) sind jeder einzelnen I/O-Einheit zugeordnet, und eine globale Bitleitung (GBL) (GBL0) ist einer einzelnen I/O-Einheit zugeordnet. Hierbei besteht die Zuweisung der WP-Bits zu allen I/O-Einheiten DQ0 bis DQ15 darin, allen Speicherzellen einer durch eine Reihenadresse ausgewählten Spalte Daten zuzuordnen. Wenn die Anzahl der WP-Bits nicht eine Ganzzahl ist, die durch die Anzahl der I/O-Einheiten teilbar ist, wird der Vorrang der I/O-Zuordnung in der Spaltenzuordnung gegeben, oder der Vorrang kann der Spaltenzuordnung in der I/O-Zuordnung eingeräumt werden. Wenn beispielsweise die Anzahl der WP-Bits 60 beträgt und die Anzahl der I/O-Einheiten 16 ist, werden I/O-Einheiten (DQ), die den WP-Bits 60, 61, 62 der letzten Spaltenadresse (000011) entsprechen, nicht zugewiesen, oder die I/O-Einheiten (DQ), die den WP-Bits 1, 2, 3, und 4 der obersten Spaltenadresse (000000) entsprechen, werden verschoben und durch das Spaltenzuordnungsverfahren zugeordnet, wobei der Vorrang der I/O-Zuordnung gegeben wird. Durch das I/O-Zuweisungsverfahren, bei dem der Spaltenzuordnung der Vorrang eingeräumt wird, werden die I/O-Einheiten (DQ), die den WP-Bits 15, 31, 47 und 63 entsprechen, weggelassen.
-
Der Anwenderblock ist aus 64-Bits 0 bis 63 aufgebaut, und die Bitzuordnung erfolgt entsprechend der Zuordnungsrelation (eine Umwandlungstabelle), die in 5 gezeigt ist, und gemäß der Umwandlungstabelle, die in 6 gezeigt ist. Wie in den 5 und 6 gezeigt ist, entsprechen die WP-Bits 0 bis 63 den Adressen A17 bis A20 der DQ-Anschlüsse als I/O-Einheiten, und den Adressen A21 und A22 als Spaltenadressen.
-
Der Fabrikblock ist ein Funktionsblock, in dem der Hersteller eine Speicherung durchführt, wobei allerdings die Anwender ein erneutes Beschreiben nicht durchführen können. In diesem Funktionsblock sind Redundanzdaten, interne Spannungsabstimmdaten und interne Zeitsteuerdaten zu schreiben.
-
Der in 3 gezeigte Fabrikblock ist durch die 16 Bits TR0 bis TR15 für die Feineinstellung, die 32 Bits REDSECA bis REDSECD für die Sektorredundanz und die 128 Bits der REDCOL (0-0) bis REDCOL (7-1) für die Spaltenredundanz gebildet. Jeweils 8 Sektorredundanzbits REDSECA bis REDSECD speichern eine einzelne Defektaustauschadresse. Jeweils 8 Spaltenredundanzbits der REDCOL (0-0) bis REDCOL (7-1) speichern eine einzelne Defektaustauschadresse.
-
Der Fabrikblock ist auch den DQ0 bis DQ15 zugeordnet, wie in 3 gezeigt ist. Eine einzelne Wortleitung und 11 lokale Bitleitungen (LBL), d. h. 11 Spaltenadressen (LBL4 bis LBL14) sind jeder I/O-Einrichtung zugeordnet, und drei globale Bitleitungen (GBL) (GBL1 bis GBL3) sind jeder I/O-Einrichtung zugeordnet. Wie in 4 gezeigt ist, wird der Fabrikblock ebenfalls aus 64 Bits gebildet, genauso wie der Anwenderblock, und die 64 Bits sind den DQ0 bis DQ15 zugewiesen.
-
7a zeigt den Aufbau des CAM-Zellenarrays 4 im Detail, und 7b zeigt den Aufbau des regulären Zellenarrays 3 im Detail. In dem CAM-Zellenarray 4, das in 7a gezeigt ist, besitzen der Fabrikblock und der Anwenderblock Wortleitungen, die voneinander unabhängig sind, so dass der Fabrikblock durch die Gatestörung bei der Speicherinformation auf Grund des Beschreibens des Anwenderblocks nicht negativ beeinflusst wird. Anders ausgedrückt, dem Fabrikblock und dem Anwenderblock sind unterschiedliche Reihenadressen zugewiesen. Der Reihendekodierer 5, der in 2 gezeigt ist, weist die CAM-Daten der jeweiligen Funktionsblöcke den unterschiedlichen Reihenadressen auf der Grundlage extern eingespeister Adressen zu. In 7a sind die Wortleitung WL0, die den WP-Bits, die in dem Anwenderblock enthalten sind, zugeordnet ist, und die Wortleitung WL1, die den in dem Fabrikblock enthaltenen Fabrikbits zugeordnet ist, dargestellt. Ferner ist in einem einzelnen Block (der Anwenderblock oder der Fabrikblock) die Anzahl an Wortleitungen, die zuzuweisen ist, auf die kleinstmögliche Anzahl beschränkt. Dies erfolgt aus dem Grund, dass der Aufbau so gestaltet ist, dass er in der Lage ist, in kollektiver Weise die Daten in einem einzelnen Funktionsblock zu löschen. Hierbei ist die „Gatestörung” ein Phänomen, in welchem die Bitleitungen mit der gleichen Wortleitung verbunden werden, mit der die zu programmierenden Speicherzellen verbunden sind, und ein Ladungszugewinn wird auf Grund einer hohen Spannung hervorgerufen, die an die Gates nicht ausgewählter Speicherzellen zum Zeitpunkt des Programmierens angelegt wird. Auf Grund dieses Effekts gehen die Daten der nicht ausgewählten Speicherzellen von „1” (wobei der Schwellwert gering ist) auf „0” (wobei der Schwellwert hoch ist) auf Grund des Ladungszugewinns über.
-
In ähnlicher Weise weist der Spaltendekodierer 6 die CAM-Daten der jeweiligen Funktionsblöcke den unterschiedlichen Spaltenadressen auf der Grundlage extern eingespeisten Adressen zu. Ferner wird die Adressenzuordnung so ausgeführt, dass die zugewiesenen Spaltenadressen zwischen dem Fabrikblock und dem Anwenderblock zusammenhängend sind.
-
Um den Fabrikblock vor einer Drain-Störung bei der Speicherinformation auf Grund des Beschreibens oder dergleichen, das in dem Anwenderblock ausgeführt wird, zu schützen, sind die Bitleitungen des Fabrikblocks und des Anwenderblocks voneinander getrennt, wie in 7a gezeigt wird. Anders ausgedrückt, der Spaltendekodierer 6 weist dem Anwenderblock und dem Fabrikblock Spaltenadressen zu, die voneinander unabhängig sind. Ferner weist der Spaltendekodierer 6 Adressen derart zu, dass die Spaltenadressen zwischen den unterschiedlichen Funktionsblöcken zusammenhängend sind. Dabei bezeichnet die „Bitleitungstrennung” sowohl eine physikalische Trennung als auch eine elektrische Isolierung der lokalen Bitleitungen und der globalen Bitleitungen. Die „Drain-Störung” ist ein Effekt, in welchem die Wortleitung mit den gleichen Bitleitungen verbunden wird, mit denen die zu programmierenden Speicherzellen verbunden sind, und es wird ein Ladungsverlust hervorgerufen auf Grund der hohen Spannung, die an die Drains von nicht ausgewählten Speicherzellen beim Programmieren angelegt ist. Auf Grund dieses Effekts werden die Daten nicht ausgewählter Speicherzellen von „0” (der Schwellwert ist hoch) auf „1” (der Schwellwert ist niedrig) auf Grund des Ladungsverlusts geändert.
-
Wenn ferner alle Wortleitungen (WL1 und WL2, beispielsweise) ausgewählt sind, werden in den Funktionsblöcken nicht die gleichen Spaltenadressen gemeinsam benutzt, und die Spaltenadressen werden zusammenhängend zwischen den Funktionsblöcken gewählt, so dass alle CAM-Daten in einfacher Weise ausgelesen werden können, indem die Spaltenadressen umgeschaltet werden. Auf diese Weise kann die Zeit zum Umschalten der Wortleitungen eingespart werden und die CAM-Daten können von dem CAM-Zellenarray 4 zu der flüchtigen Speichereinheit 11 in kurzer Zeit übertragen werden. Wenn in diesem Falle mehr als eine Wortleitung gleichzeitig ausgewählt wird, werden die Bitleitungen, die mit den unnötigen Zellendaten verbunden sind, ausgenommen, so dass die erforderlichen Zellendaten und die nicht erforderlichen Zellendaten nicht durch die gleiche Bitleitung ausgewählt werden können.
-
Unter Ausnutzung der Tatsache, dass der Anwenderblock und der Fabrikblock nicht die gleichen Spaltenadressen aufweisen, ist das Leitungsmuster der lokalen Bitleitungen (LBL) zwischen dem Anwenderblock und dem Fabrikblock physikalisch unterbrochen, und die abgeschnittenen lokalen Bitleitungen (LBL) sind nicht mit den globalen Bitleitungen verbunden (es ist beispielsweise keine Kontaktdurchführung vorgesehen). Alternativ können der Anwenderblock und der Fabrikblock voneinander als Sektoren getrennt sein, und es werden Spaltenschalter zum Verbinden der globalen Bitleitungen für den Anwenderblock und den Fabrikblock vorgesehen, wodurch der Anwenderblock und der Fabrikblock voneinander elektrisch getrennt werden.
-
Wenn bei einem derartigen Aufbau die Daten aus dem CAM-Zellenarray 4 in die flüchtige Speichereinheit L zum Zeitpunkt des Einschaltens oder dergleichen auszulesen sind, können die CAM-Daten in einfacher Weise durch Umschalten der Spaltenadresse ausgelesen werden, wobei die Wortleitung des Anwenderblocks und die Wortleitung des Fabrikblocks gleichzeitig ausgewählt sind. Da die Wortleitungen nicht geschaltet werden müssen, ist die Gesamtzeit, die zum Auslesen aller Bits der CAM-Daten erforderlich ist, verkürzt.
-
9 zeigt die Strukturen von Umwandlungsschaltungen, die die Adressensignale für das Programmieren/Löschen in die Spaltenadressensignale für die jeweiligen Bänke umwandeln. Die Umwandlungsschaltungen werden in dem Spaltendekodierer 6 vorgesehen. CAM-Programmiermodussignale (CAMPGM) werden zwischen einem aktivierten Zustand und einem inaktiven Zustand umgeschaltet, so dass das Umschalten zwischen einer Spaltenadresse des regulären Zellenarrays 3 und einer Spaltenadresse des CAM-Zellenarrays 4 ausgeführt werden kann.
-
Die Umwandlungsschaltungen enthalten: Oder-Gatter 121, in die die Adressensignale WA(0) oder WA(1) für eine Programmier/Löschoperation und ein CAMPGM-Signal eingespeist werden; Oder-Gatter 123, in die das invertierte CAMPGM-Signal und Adressensignale WA(21) und WA(22) eingespeist werden; Nand-Gatter 124, in die die Ausgangssignale der Oder-Gatter 121 und 123 eingespeist werden, und Inverter 125, die die Ausgangssignale der Nand-Gatter 124 invertieren. Die Ausgänge der Inverter 125 sind Spaltenadressen AA(0) und AA(1). Wenn das CAMPGM-Signal in dem nicht aktiven Zustand ist, dienen die Adressensignale WA(1) und WA(0) als die Spaltenadressen AA(1) und AA(0).
-
Die Umwandlungsschaltungen umfassen ferner: Oder-Gatter 131, in die die Adressensignale WA(2), WA(3), WA(4) und WA(5) eingespeist werden; und Oder-Gatter 123, in die die invertierten CAMPGM-Signale und eine Spannungsversorgungsspannung VCC eingespeist werden; Nand-Gatter 134, in die die Ausgangssignale der Oder-Gatter 131 und 133 eingespeist werden; und Inverter 135, die die Ausgangssignale der Nand-Gatter 134 invertieren. Die Ausgänge der Inverter 135 dienen als Spaltenadressen AA(2), AA(3), AA(4) und AA(5).
-
10 zeigt die Umwandlungsschaltungen, die die Adressensignale für die Programmier/Löschoperationen in DQ's umsetzen. Diese Umwandlungsschaltungen werden als Schalter in der Dateneingabe/Ausgabe-Schaltung 14 vorgesehen. Die Umwandlungsschaltung, die DQ0 erzeugt, umfasst: ein Nor-Gatter 142, in das die Adressensignale WA(20), WA(19), WA(18) und WA(17) eingespeist werden; ein Nand-Gatter 143, in das ein CAMPGM-Signal und das Ausgangssignal des Nor-Gatters 142 eingespeist werden; und einen Inverter 144, der das Ausgangssignal des Nand-Gatters 143 invertiert. Die Umwandlungsschaltungen, die DQ1 bis DQ15 erzeugen, besitzen ebenfalls den gleichen Schaltungsaufbau wie oben.
-
Wenn das CAMPGM-Signal in dem aktivierten Zustand ist, werden die Adressensignale WA(0) bis WA(17) den CAM_DQ15 bis CAM_DQ0 zugeordnet. Wenn das reguläre Zellenarray 3 in einem ausgewählten Zustand ist (d. h. das CAMPGM-Signal ist in dem inaktiven Zustand) werden CAM_DQ15 bis CAM_DQ0 in einen inaktiven Zustand versetzt.
-
Zum Zeitpunkt des Programmierens eines Schreibschutzbits ist nur der zu programmierende DQ aktiviert und die angelegte Spannung, die erwarteten Werte und die Identifizierungssignale werden durch die Umwandlungsschaltungen, die in 10 gezeigt sind, gesteuert, so dass die nicht zu programmierenden DQ ignoriert werden.
-
Obwohl die zuvor beschriebene Ausführungsform eine bevorzugte Ausführungsform ist, ist die vorliegende Erfindung nicht darauf beschränkt. Beispielsweise kann der Fabrikblock einen nur einmal programmierbaren ROM (OTP ROM) enthalten. Ein OTP ROM ist ein Funktionsspeicher, den ein Anwender nur ein einziges mal programmieren kann. Der OTP ROM unterscheidet sich von dem Fabrikblock im Hinblick auf die Funktion, die für den Anwender möglich ist, ist aber von dem Anwenderblock, in welchem die Anwender wiederholt ein Programmieren und ein Löschen ausführen können, im Hinblick auf die Funktion separiert, die kein erneutes Programmieren zulässt. Kurz gesagt, es ist erforderlich, eine Gatestörung und eine Drainstörung zu vermeiden.
-
Es ist auch möglich, den Anwenderblock mit einem Lesebitblock anstelle eines Schreibbitblocks zu bilden. In einem derartigen Falle wird die Lesesteuerung für jeden gewünschten Sektor ausgeführt.
-
In der zuvor beschriebenen Ausführungsform findet eine physikalische Trennung zwischen den lokalen Bitleitungen und eine elektrische Trennung der globalen Bittleitungen zwischen dem Fabrikblock und dem Anwenderblock statt. Jedoch ist die vorliegende Erfindung nicht auf diesen Aufbau eingeschränkt, und es ist auch möglich, die globalen Bitleitungen zwischen dem Fabrikblock und dem Anwenderblock physikalisch oder elektrisch zu trennen.
-
Das reguläre Zellenarray und das CAM-Zellenarray können so verbunden sein, dass sie einen Datenbus gemeinsam verwenden, oder diese können verbunden sein, um damit die globalen Bitleitungen des Anwenderblocks und des Fabrikblocks gemeinsam zu benutzen.
-
Ferner können auch Wannengebiete im Anwenderblock und in dem Fabrikblock separat sein oder können gemeinsam benutzt werden. Bei einer gemeinsamen Nutzung kann die Chipgröße verringert werden. In einem derartigen Fall wird ein schwebender bzw. potentialfreier Zustand der Wortleitung des Fabrikblocks zum Zeitpunkt des Durchführens einer Löschoperation in dem Anwenderblock ausgeführt.
-
(zweite Ausführungsform)
-
Mit Bezug zu 11 wird der Aufbau dieser Ausführungsform beschrieben. 11 zeigt eine Zellenarrayeinheit 2 (ein reguläres Zellenarray 3 und ein CAM-Zellenarray 4), die die Daten in Bezug auf ein Halbleiterbauelement 1 speichert, eine Verifizierschaltung 13, die einen beschriebenen Datenzustand oder einen gelöschten Zustand des Zellenarrays 2 bestätigt, und Erwartungswertspeicherschaltungen 32, die in einer Dateneingabe/Ausgabe-Schaltung 14 vorgesehen sind. In dieser Ausführungsform wird ein simultaner 16-Bit-Schreibmodus eingesetzt, so dass das Programmieren durch gleichzeitiges Zugreifen auf die 16 Speicherzellen des regulären Zellenarrays 3 oder des CAM-Zellenarrays 4 erfolgt.
-
Eine Verifizierschaltung 13 umfasst eine WP-Bitauswahlschaltung 33 und Datenkomparatorschaltungen 34. Die Anzahl der Erwartungswertspeicherschaltungen 32 und die Anzahl der Datenkomparatorschaltungen 34, die in der Dateneingabe/Ausgabe-Schaltung 14 enthalten sind, ist 16, was gleich ist zu der Anzahl der I/O-Einheiten.
-
Es werden ein Schnittstellenfestlegungssignal, ein Signal, das von jeder entsprechenden I/O-Einheit eingespeist wird und ein Adressensignal (WP-CAM-Adressenzuordnungssignal), das einen Schreibschutz (CP-CAM) bezeichnet, in die WP-Auswahlschaltung 33 eingespeist. Es gibt zwei Verfahren zum Festlegen bzw. Kennzeichnen einer zu programmieren CAM-Zelle. In einem der Verfahren wird die Information „1” der I/O-Einheit eingespeist, die der zu programmierenden CAM-Zelle entspricht, während die Information „0” den I/O-Einheiten eingespeist wird, die nicht zu programmieren sind („I/O-Modus”). In dem anderen Verfahren wird die entsprechende Adresse der zu programmierenden CAM-Zelle eingespeist („Adressiermodus”). Das Schnittstellenmodusfestlegungssignal ist ein Signal, um das Signal zum Festlegen einer zu programmierenden CAM-Zelle aus den beiden oben genannten Verfahren auszuwählen.
-
12 zeigt den Aufbau der WP-Auswahlschaltung 33 im Detail. Wie in 12 gezeigt ist, umfasst die WP-Auswahlschaltung 33 einen Dekodierer 55, Und-Gatter 53 und Schalter 54. Die Anzahl der Und-Gatter 53 und die Anzahl der Schalter 54 beträgt jeweils 16 wie die Anzahl der I/O-Einheiten. Mit diesem Aufbau wird die Komparatorschaltung 34 ausgewählt, über die mittels einer Pseudoverifizierung ein positives Ergebnis erhalten wird.
-
Wenn der Adressiermodus durch das Schnittstellenmodusfestlegungssignal ausgewählt wird, werden die Schalter 54-(0) bis 54-(15) ausgeschaltet und das WP-CAM-Adressenzuweisungssignal wird von dem Dekodierer 51 dekodiert, um eine Verifiziersteuersignal zu erzeugen. Wenn der I/O-Modus durch das Schnittstellenfestlegungssignal eingestellt wird, wird der Dekodierer 51 durch das Schnittstellenmodusfestlegungssignal, das dem Dekodierer 51 über den Inverter 52 zugeführt wird, ausgeschaltet, und die Schalter 54-(0) und 54-(15) werden eingeschaltet.
-
Die Signale I/O-(0) bis I/O-(15) von den jeweiligen I/O-Einheiten und die Vorauslesedaten (DAV), die aus den CAM-Zellen im Voraus ausgelesen werden, werden den Und-Gattern 53-(0) bis 53-(15) eingespeist, die die logischen Produkte dieser Signale bilden. Genauer gesagt, wenn die Daten vor dem Programmieren der CAM-Zelle und die Daten, die von dem I/O eingespeist werden, jeweils „1” sind, wird ein hochpegeliges Signal als ein Verifizierungssteuersignal ausgegeben. In anderen Fällen wird ein tiefpegeliges Signal als ein Verifizierungssteuersignal 2 ausgegeben.
-
Die Erwartungswertspeicherschaltungen 32-(0) bis 32-(15) sind für die jeweiligen I/O-Einheiten vorgesehen, wie in 11 gezeigt ist, und speichern die I/O-Eingabeinformation. Die gespeicherte Information wird als erwartete Datenwerte an die Datenkomparatorschaltungen 34 nach dem Programmieren des regulären Zellenarrays 3 ausgegeben. Die Erwartungswertspeicherschaltungen 32-(0) bis 32-(15) erhalten ebenfalls Informationen, die zum Zeitpunkt des Programmierens des CAM-Zellenarrays 4 in dem I/O-Modus eingespeist wird. Die gespeicherte Information wird als erwartete Datenwerte an die Datenkomparatorschaltungen 34 nach dem Programmieren des CAM-Zellenarrays 4 ausgegeben. Des weiteren erzeugen die Erwartungswertspeicherschaltungen 32 erwartete Werte, die zu einem Ausgeben des Verifizierungssteuersignals von der WP-Auswahlschaltung 33 führen, wenn die Schalter 35 durch das Schnittstellenmodusfestlegungssignals zum Zeitpunkt des Programmierens des CAM-Zellenarrays 4 in dem Adressiermodus eingeschaltet sind. Die Daten werden dann als erwartete Datenwerte an die Datenkomparatorschaltungen 34 nach dem Programmieren des CAM-Zellenarrays 4 ausgegeben.
-
Die Datenkomparatorschaltungen 34-(0) bis 34-(15) sind auch für die jeweiligen I/O-Einheiten vorgesehen und vergleichen die aus dem regulären Zellenarray 3 oder dem CAM-Zellenarray 4 ausgelesenen Daten mit denjenigen Daten (den erwarteten Werten), die in den Erwartungswertspeicherschaltungen 32-(0) bis 32-(15) gespeichert sind. Wenn das CAM-Zellenarray 4 programmiert wird, führen die Datenkomparatorschaltungen 34 eine Pseudoverifizierung mit positivem Ergebnis an den nicht zu programmierenden Zellen durch, wobei das Verifiziersteuersignal aus der WP-Auswahlschaltung 33 verwendet wird.
-
Es sei nun auf das Flussdiagramm der 13 und 14 verwiesen, wobei die Funktionsweise beim Programmieren des CAM-Zellenarrays 4, das in den I/O-Modus gesetzt ist, gemäß dieser Ausführungsform beschrieben ist. In dieser Ausführungsform kann das Festlegungen von „schreibgeschützt” an jeder Sektorgruppe, die aus Sektoren aufgebaut ist, ausgeführt werden, und es werden I/O-Einheiten jedem Sektor zugewiesen. Wenn eine Sektorgruppe, in der der „Schreibschutz” festzulegen ist, ausgewählt wird, werden Schutzdaten in die WP-CAM-Zelle in der ausgewählten Sektorgruppe programmiert.
-
Zunächst werden CAM-Programmiereinstellsignale (I/O-0, 1, ..., 15) zum Festlegen einer WP-CAM-Zelle, die zu programmieren ist, von den jeweiligen I/O-Einheiten eingespeist (Schritt S10). Die Information „1” zum Befehlen einer Programmierung wird der I/O-Einheit eingespeist, die der zu programmierenden WP-CAM-Zelle entspricht, und die Information „0” zum Verhindern des Programmierens wird den anderen I/O-Einheiten eingespeist (siehe 14b).
-
Die Daten, die bereits in den WP-CAM-Zellen gespeichert sind, werden im Voraus ausgelesen (Vor-Auslesen) (Schritt S11). Auf Grundlage der vor-ausgelesenen Daten wird jede WP-CAM-Zelle dahingehend bewertet, ob diese in einem beschriebenen Datenzustand ist. Wenn Daten bereits gespeichert sind und das Programmieren bereits durchgeführt wird, wird die Information „0” gespeichert. Wenn eine WP-CAM-Zelle in einem gelöschten Zustand ist, ohne dass Daten darin geschrieben sind, wird die Information „0” in der I/O-Einheit gespeichert (siehe 14a).
-
Als nächstes wird eine WP-CAM-Zelle, die aktuell in einem gelöschten Zustand ist und für die ein Schreiben durch das I/O-Eingangssignal zulässig ist, ermittelt (Schritt S12). Genauer gesagt, es wird eine WP-CAM-Zelle mit vor-ausgelesenen Daten „1”, die einen gelöschten Zustand angeben, und die auch einen I/O-Eingang mit „1” besitzt, ermittelt. In dieser Ermittlung können die Erwartungswertspeicherschaltungen 32 und die Datenkomparatorschaltungen, die in 11 gezeigt sind, verwendet werden.
-
An der ermittelten WP-CAM-Zelle wird nun ein Programmiervorgang durchgeführt (Schritt S13) (siehe auch beispielsweise 14c). Wenn die Programmierung ausgeführt wird, bestimmt die Verifizierschaltung 13, ob die Daten mit Gewissheit in die WP-CAM-Zelle geschrieben wurden. Zu diesem Zeitpunkt werden Schalter 35-(0) bis 35-(15), die für die jeweiligen I/O-Einheiten vorgesehen sind, durch die Schnittstellenmodusfestlegungssignale zum Festlegen des I/O-Modus ausgeschaltet. Das Festlegungssignal wird auch der WP-Bit-Auswahlschaltung 33 eingespeist, um damit die Schalter 54-(0) bis 54-(15) einzuschalten.
-
Die WP-Auswahlschaltung 33 bildet die logischen Produkte der vor-ausgelesenen Daten, die aus den WP-CAM-Zellen ausgelesen wurden, mit den I/O-Eingangssignalen (I/O-0, 1, ..., 15) über die Und-Gatter 53-(0) bis 53-(15), um Verifiziersteuersignale zu erzeugen. Wenn das I/O-Eingangssignal „1” ist, wodurch ein Programmieren angefordert wird, und wenn die vor-ausgelesenen Daten „1” sind, wodurch eine gelöschte Zelle angegeben wird, wird ein hochpegeliges Verifiziersteuersignal an die entsprechende Datenkomparatorschaltung 34 ausgegeben. Im anderen Fall wird ein tiefpegeliges Verifiziersteuersignal an die jeweilige Datenkomparatorschaltung 34 ausgegeben.
-
Die Erwartungswertspeicherschaltungen 32-(0) bis 32-(15) speichern die Eingangssignale I/O-(0, 1, ..., 15) in unveränderter Form und geben die zwischengespeicherten Daten als DIN0 bis DIN15 an die Datenkomparatorschaltungen 34-(0) bis 34-(15) in einer vorbestimmten Zeitabfolge aus. Die Daten werden als die erwarteten Datenwerte bezeichnet. Das Verifiziersteuersignal wird von der WP-Bitauswahlschaltung 33 an jede der Datenkomparatorschaltungen 34-(0) bis 34(15) ausgegeben.
-
Die Datenkomparatorschaltungen 34-(0) bis 34-(15) vergleichen die von den WP-CAM-Zellen ausgelesenen Daten, d. h. die Daten, die nach dem Programmieren ausgelesen wurden, mit den erwarteten Werten, die aus den Erwartungswertspeicherschaltungen 31-(0) bis 32-(15) ausgelesen werden. Zu diesem Zeitpunkt wird in jeder Datenkomparatorschaltung 34, an die ein tiefpegeliges Verifiziersteuersignal von der WP-Auswahlschaltung 33 ausgegeben wird, kein Vergleich ausgeführt, sondern das hochpegelige Übereinstimmungssignal wird ausgegeben, um damit ein fingiertes positives Ergebnis für die Verifizierung zu erzeugen (siehe 14d). In jeder Datenkomparatorschaltung 34, an die ein hochpegeliges Verifiziersteuersignal von der WP-Bit-Auswahlschaltung 33 ausgegeben wird, werden die erwarteten Datenwerte, die aus der entsprechenden Erwartungswertspeicherschaltung 32 eingespeist werden, mit den Daten nach dem Programmieren der WP-CAM-Zelle verglichen. Wenn das I/O-Eingangssignal „1” ist, das eine Programmierung anfordert, und wenn die aus der WP-CAM-Zelle nach dem Programmieren ausgelesenen Daten eine „1” repräsentieren, wodurch ein gelöschter Zustand angegeben wird, wird ein tiefpegeliges Signal an die Bestimmungsschaltung 12 ausgegeben, wodurch ein „Fehler bzw. negatives Ergebnis” angegeben wird. Wie in 14 gezeigt ist, wird ein hochpegeliges Signal, das eine positive Verifizierung angibt, an die Bestimmungsschaltung 12 ausgegeben, wenn der I/O-Eingang auf „1” ist und die aus der WP-CAM-Zelle nach dem Programmieren ausgelesenen Daten „0” sind, wodurch ein programmierter Zustand angegeben wird.
-
Wenn alle übereinstimmenden Signale, die von den Datenkomparatorschaltungen 34-(0) bis 34-(15) ausgegeben werden, dem hohen Pegel bzw. „H” entsprechen, gibt die Bestimmungsschaltung 12 ein Verifiziersignal an die Steuerung aus, das einen erfolgreichen Schreibvorgang für die Daten angibt.
-
Wie zuvor beschrieben ist, wird ein fingiertes positives Ergebnis bzw. ein Pseudoergebnis für die Vergleichsergebnisse der Datenkomparatorschaltungen, die den nicht programmierten CAM-Zellen zugewiesen sind, in dieser Ausführungsform verwendet. Folglich können die Programmierergebnisse der programmierten CAM-Zelle in der Verifizierung wiedergeben werden.
-
Es sei nun auf das Flussdiagramm der 15 und 16 verwiesen, wobei die Funktionsweise beschrieben ist, die in einem Falle anzuwenden ist, wenn eine Sektorgruppenadresse (SGA) von außen festgelegt wird. Wie in 16 gezeigt ist, werden gemäß der Sequenz zum Ausführen des Programmierbefehls für eine WP-CAM-Zelle die Prozeduren für die Befehlserkennung in 5 Zyklen ausgeführt, und Information wird im 6 Zyklus gespeichert. Kurz gesagt, es wird eine zu programmierende SGA festgelegt, und das Programmieren der SGA wird insgesamt in 6 Zyklen ausgeführt.
-
Zuerst wird ein WP-CAM-Adressenbenennungssignal zum Programmieren der WP-CAM-Zelle eingespeist. Das WP-CAM-Adressenbenennungssignal wird durch den Dekodierer analysiert (Schritt S20) um eine Adresse zu erzeugen, die der tatsächlich zu programmierenden WP-CAM-Zelle entspricht. In der Verifizierschaltung 13 wird das WP-CAM-Adressenbenennungssignal ebenfalls durch den Dekodierer 51 dekodiert, und es wird ein hochpegeliges Verifiziersteuersignal an die Erwartungswertspeicherschaltung 32 und die Datenkomparatorschaltung 34, die der zu programmierenden WP-CAM-Zelle entspricht, ausgegeben. An die anderen Erwartungswertspeicherschaltungen 32 und die anderen Datenkomparatorschaltungen 34 wird ein tiefpegeliges Verfiziersteuersignal ausgegeben.
-
Als nächstes werden die Daten, die bereits in der durch das Dekodierergebnis benannten WP-CAM-Zelle gespeichert sind, im Voraus ausgelesen (Schritt S21). Die vor-ausgelesenen Daten werden analysiert, um den Datenschreibzustand der WP-CAM-Zelle zu bestimmen.
-
Wenn die WP-CAM-Zelle als in einem gelöschten Zustand befindlich bestimmt wird („Ja” im Schritt S22), werden Daten in die WP-CAM-Zelle geschrieben und diese wird in einen programmierten Zustand versetzt (Schritt S23). Wenn die WP-CAM-Zelle als in einem programmierten Zustand befindlich bestimmt wird („Nein” im Schritt S22), ist der Vorgang zu Ende.
-
Wenn das Programmieren der WP-CAM-Zelle beendet ist, wird durch die Verifizierschaltung 13 eine Verifizierung vorgenommen, um zu bestimmen, ob die Daten zuverlässig in die WP-CAM-Zelle geschrieben sind.
-
Die WP-Bitauswahlschaltung 33 und die Datenkomparatorschaltungen 34-(0) bis 34-(15), die für die jeweiligen I/O-Einheiten vorgesehen sind, werden mit Leitungen verbunden, und es wird ein Verifiziersteuersignal von der WP-CAM-Auswahlschaltung 33 ausgegeben. In dem Adressiermodus werden die Schalter 35-(0) bis 35-(15) durch das Schnittstellenmodusfestlegungssignal eingeschaltet. Folglich wir das Verfiziersteuersignal lediglich derjenigen Erwartungswertspeicherschaltung 32 eingespeist, die mit der Leitung verbunden, über die ein hochpegeliges Verifiziersteuersignal bzw. ein „H”-Pegelverifiziersteuersignal ausgegeben wird. Die Erwartungswertspeicherschaltung 32, die das hochpegelige Verifiziersteuersignal erhält, erzeugt den erwarteten Wert „0”, der angibt, dass die betreffende WP-Zelle programmiert ist, und gibt den Erwartungswert „0” an die Datenkomparatorschaltung 34 aus (Schritt S24) (siehe 16). Die anderen Erwartungswertspeicherschaltungen 32, denen ein niedrigpegeliges bzw. ein „L”-Pegelverifiziersteuersignal eingespeist wird, erzeugen keinen erwarteten Wert (Schritt S24). Folglich wird ein erwarteter Wert nicht an die Datenkomparatorschaltungen 34 ausgegeben.
-
Die Datenkomparatorschaltung 34, die den Erwartungswert „0” von der Erwartungswertspeicherschaltung 32 erhält, liest die Daten aus der entsprechenden WP-CAM-Zelle aus und vergleicht die Daten DAVi mit dem erwarteten Wert „0” (der durch /DINi in 16) bezeichnet ist. Auf Grund des Erhaltens des tiefpegeligen Verifiziersteuersignals geben die anderen Datenkomparatorschaltungen 34 zwangsweise ein hochpegeliges bzw. ein Übereinstimmungssignal mit „H”-Pegel aus. Kurz gesagt, es wird eine Pseudoverifizierung mit positivem Ergebnis ausgeführt (siehe 16).
-
Wenn alle Übereinstimmungssignale, die von den Datenkomparatorschaltungen ausgegeben werden, auf „H”-Pegel oder hochpegelig sind, gibt die Bestimmungsschaltung 12 ein Verifiziersignal an die Steuerung aus, das einen erfolgreichen Datenschreibvorgang kennzeichnet (Schritt S25). Das Datenvergleichsergebnis der tatsächlich programmierten WP-CAM-Zelle kann als das Verifizierungsergebnis ausgegeben werden.
-
17 zeigt die Strukturen von jeder Erwartungswertspeicherschaltung 32 und jeder Datenkomparatorschaltung 34, die in 11 gezeigt sind, und zeigt auch den Aufbau der Bestimmungsschaltung 12. Wie zuvor beschrieben ist, wird der Ausgang jeder Datenkomparatorschaltung 34 durch das Verifiziersteuersignal aus der WP-Bitauswahlschaltung 33 gesteuert, und wird an die Bestimmungsschaltung 12 ausgegeben. Ferner wird auch jede Datenkomparatorschaltung 34 durch ein CAM-Modussignal zum erneuten Beschreiben einer CAM-Zelle gesteuert. Ferner wird jede Erwartungswertspeicherschaltung 32 durch das Schnittstellenmodusfestlegungssignal gesteuert.
-
(dritte Ausführungsform)
-
Mit Bezug zu 18 wird eine dritte Ausführungsform der vorliegenden Erfindung nun beschrieben. Die CAM-Daten, die in ein CAM-Zellenarray 4 geschrieben sind, werden ausgelesen, indem ein Schalter 61 zum Zeitpunkt des Einschaltens oder des Zurücksetzens der Hardware eingeschaltet wird. Die CAM-Daten werden dann an einen flüchtigen Speicher 11, etwa einen SRAM übertragen, der in 18 gezeigt ist. Die CAM-Daten werden aus dem flüchtigen Speicher 11 ausgelesen, so dass ein Lesezugriff auf ein reguläres Zellenarray 3 nicht verzögert wird. Wenn in dieser Ausführungsform eine Programmierung an den CAM's durchgeführt wird, werden die in dem flüchtigen Speicher 11 gespeicherten Daten als ein erwarteter Datenwert verwendet, und Datenkomparatorschaltungen 34 vergleichen den erwarteten Datenwert mit den Daten, die aus der CAM-Zelle ausgelesen werden.
-
Zu einem anderen Zeitpunkt als denjenigen, an dem eine Verifizierung an den Daten durchgeführt wird, die in dem CAM-Zellen-Array 4 programmiert sind, wird ein Schalter 64 von einem CAM-Modussignal aktiviert, um damit die Erwartungswertspeicherschaltungen 32 mit den Datenkomparatorschaltungen zu verbinden. Wenn dies erfolgt, kann eine Verifizierung unter Anwendung der Erwartungswertspeicherschaltungen 32 zum Zeitpunkt des Verifizierens des regulären Zellenarrays 3 ausgeführt werden.
-
19 zeigt den Aufbau der WP-Bit-Auswahlschaltung 33. In dieser Ausführungsform werden die Und-Gatter 53 der zweiten Ausführungsform nicht verwendet. Wenn der I/O-Modus durch das Schnittstellenmodusfestlegungssignal eingestellt ist, werden die I/O-Eingangssignale I/O (0), (1), ..., (15) als Verifiziersteuersignale in unveränderter Form ausgegeben. In dem Adressiermodus sind die Schalter 54-(0) bis 54-(15) ausgeschaltet, und es wird ein dekodiertes Signal von dem Dekodierer 51 ausgegeben. Wenn der Adressiermodus festgelegt wird, wird ein WP-CAM-Adressenbenennungssignal dem Dekodierer 51 zugeleitet, der dann das Signal analysiert, um die für das Programmieren bestimmte CAM-Zelle zu bestimmen. Es wird ein hochpegeliges Verifiziersteuersignal, das angibt, dass die WP-CAM-Zelle von dem Programm ausgewählt ist, an den nicht-flüchtigen Speicher 11 ausgegeben. Die Verifiziersteuersignale, die von den anderen WP-CAM-Zellen ausgegeben werden (die WP-CAM-Zellen), die nicht durch das Programmieren benannt sind, sind auf tiefem Pegel.
-
In den flüchtigen Speicher 11 gibt es zwei Speichergebiete, die die von den CAM-Zellen ausgelesenen Daten enthalten. Ein erstes Speichergebiet ist ein Gebiet, das die Daten bewahrt, die mittels Verifizierung als zuverlässig in den CAM-Zellen gespeicherte Daten ermittelt wurden. Anders ausgedrückt, das erste Speichergebiet enthält die Daten, die äquivalent sind zu den nicht flüchtigen Speicherinformationen in dem CAM-Zellen-Array 4 nach dem Programmieren (einschließlich der Verifizierung) in den CAM-Zellen. Wenn daher eine Anforderung für die Daten der CAM-Zellen von einer Schaltung vorhanden ist, die für die Funktionen für den Zeitpunkt einer regulären Betriebsweise des regulären Zellenarrays 3 erforderlich ist, werden die in dem ersten Speichergebiet gespeicherten Daten ausgegeben. Ein zweites Speichergebiet ist ein Gebiet, das als ein temporärer Speicherbereich bzw. ein Zwischenspeicherbereich verwendet wird, und Daten der CAM-Zellen enthält, die zum Zeitpunkt des Programmierens im Voraus ausgelesen werden.
-
Beim Empfang eines Verifiziersteuersignals von der WP-Bit-Auswahlschaltung 33 gibt der flüchtige Speicher 11 eine „0” als den erwarteten Wert der WP-CAM-Zelle aus, die durch das Verifiziersteuersignal benannt ist, wie in 18 gezeigt ist, anstatt, dass Daten ausgegeben werden, die zum Zeitpunkt des Vor-Auslesens ermittelt werden. Der flüchtige Speicher 11 gibt ferner (anfänglicher Durchlauf) die Daten, die in dem zweiten Speichergebiet gespeichert sind, zum Zeitpunkt des Vor-Auslesens der Daten der anderen WP-CAM-Zellen entsprechend den niederpegeligen Verifiziersteuersignalen aus.
-
Es sei nun auf das Flussdiagramm der 20 und 21 verwiesen, worin die Funktionsweise des Programmierens des CAM-Zellenarrays 4, das in den I/O-Modus gesetzt ist, entsprechend dieser Ausführungsform beschrieben ist. Zunächst werden CAM-Programmiereinstellsignale (I/O-0 bis I/O-15) zum Bezeichnen einer WP-CAM-Zelle, die zu verwenden ist, von den jeweiligen I/O-Einheiten eingespeist (Schritt S30). Es wird die Information „1” zum Anweisen einer Programmierung der I/O-Einheit eingespeist, die der zu programmierenden WP-CAM-Zelle entspricht, und die Information „0” wird den anderen I/O-Einheiten zugewiesen.
-
Die Daten werden dann im vorab aus den WP-CAM-Zellen ausgelesen, und es wird für jede WP-CAM-Zelle der Datenschreibzustand bestimmt (Schritt S31). Wenn eine WP-CAM-Zelle in einem programmierten Zustand mit geschriebenen Daten ist, sollte die Information „0” in der WP-CAM-Zelle gespeichert sein. Wenn eine WP-CAM-Zelle in einem gelöschten Zustand ohne geschriebene Daten ist, sollte die Information „1” in der WP-CAM-Zelle gespeichert sein.
-
Als nächstes wird die WP-CAM-Zelle, die aktuell in einem gelöschten Zustand ist und für die ein Schreibzugriff durch ein I/O-Eingangssignal zulässig ist, ermittelt (Schritt S32). Genauer gesagt, diejenige WP-CAM-Zelle mit den vor-ausgelesenen Daten „1”, die einen gelöschten Zustand angeben und mit dem I/O-Eingang von „1” wird ausgewählt. Wenn die WP-CAM-Zelle, die für die Programmierung vorgesehen ist, bereits programmiert ist, ist die Operation beendet und es wird ein Fehlersignal ausgegeben. Die bislang beschriebenen Prozeduren werden von der Steuerung 8 ausgeführt.
-
Nun wird das Programmieren an der erkannten WP-CAM-Zelle ausgeführt (Schritt S33). Wenn das Programmieren ausgeführt wird, bestimmt die Verifizierschaltung 13, ob die Daten mit Gewissheit in die WP-CAM-Zelle geschrieben sind. Zu diesen Zeitpunkt sind die Schalter 54-(0) bis 54-(15), die für die I/O-Einheiten vorgesehen sind, durch das Schnittstelleneinstellmoduseinstellsignal eingeschaltet. Der Dekodierer 51 beendet seine Arbeit beim Empfang des Schnittstellenmodusfeststellungssignals, das über den Inverter 52 eingespeist wird.
-
Die WP-Bit-Auswahlschaltung 33 gibt die Eingangssignal I/O-(0) bis I/O-(15) als Verifiziersteuersignale an den flüchtigen Speicher 11 in unveränderter Weise aus. Genauer gesagt, wenn eine „1” als I/O-Eingangssignal für die WP-CAM-Zelle vorgesehen ist, die durch das Programmieren benannt ist, gibt die WP-Bit-Auswahlschaltung 33 ein hochpegeliges Signal als das Verifiziersteuersignal aus. Die Verifiziersteuersignale, die den anderen WP-CAM-Zellen entsprechen, sind auf niedrigem Pegel.
-
Der flüchtige Speicher 11 gibt den erwarteten Wert „0” als Daten für die WP-CAM-Zelle, die durch das hochpegelige Verifiziersignal benannt ist, an die Datenkomparatorschaltung 34 aus (siehe 21). Die in dem zweiten Speicherbereich gespeicherten vor-ausgelesenen Daten werden als die erwarteten Datenwerte an die anderen WP-CAM-Zellen ausgegeben (siehe 21).
-
Die Datenkomparatorschaltungen 34-(0) bis 34-(15) vergleichen die aus der WP-CAM-Zelle ausgelesenen Daten nach dem Programmieren mit den erwarteten Werten, die aus dem flüchtigen Speicher 11 ausgelesen wurden (Schritt S34). Da die aus einer nicht programmierten WP-CAM-Zelle ausgelesenen Daten stets gleich sind zu dem erwarteten Wert der WP-CAM-Zelle, wird eine Verifizierung ausgeführt, indem bestimmt wird, ob die Daten jeder programmierten WP-CAM-Zelle gleich dem erwarteten Wert sind. Wenn die aus der WP-CAM-Zelle ausgelesenen Daten nicht gleich dem erwarteten Wert sind („Nein” im Schritt S35), kehrt der Funktionsablauf zur Programmierprozedur zurück (Schritt S33). Wenn die aus der WP-CAM-Zelle ausgelesenen Daten gleich dem erwarteten Wert sind („Ja” im Schritt S35), wird ein Übereinstimmungssignal von der Datenkomparatorschaltung 34 an die Bestimmungsschaltung 12 ausgegeben, das die Übereinstimmung zwischen den Daten und dem erwarteten Wert angibt. Wenn alle Übereinstimmungssignale aus den Datenkomparatorschaltungen 34 eine Übereinstimmung anzeigen, gibt die Bestimmungsschaltung 12 ein Signal über die erfolgreiche Verifizierung an die Steuerung aus (Schritt S36). Wenn die Verifizierung erfolgreich ist, werden die Daten aus der WP-CAM-Zelle oder den Fühlerverstärker ausgelesen und werden als die autorisierten Daten der WP-CAM-Zelle in dem ersten Speichergebiet des flüchtigen Speichers 11 gespeichert (Schritt S37).
-
In dieser Ausführungsform wird eine Steuerung so ausgeführt, dass ein positives Pseudoergebnis bei den Vergleichsergebnissen der Datenkomparatorschaltungen, die den nicht programmierten CAM-Zellen zugewiesen sind, erhalten wird. Folglich kann das Programmierergebnis der programmierten CAM-Zelle bei der Verifizierung angegeben werden.
-
Es sei nun auf das Flussdiagramm der 22 und 23 verwiesen, worin die Funktionsweise im Adressiermodus beschrieben ist. Zunächst wird ein WP-CAM-Adressierbenennungssignal zum Kennzeichnen einer zu programmierenden WP-CAM-Zelle eingespeist. Das WP-CAM-Adressierbenennungssignal wird von einem Dekodierer analysiert (Schritt S40), um eine Adresse zu erzeugen, die die tatsächlich zu programmierende WP-CAM-Zelle repräsentiert. In der Verifizierschaltung 13 wird das WP-CAM-Adressenbenennungssignal von dem Dekodierer 51 dekodiert. Es wird ein Verifiziersteuersignal zum Benennen der zu programmierenden WP-CAM-Zelle sodann an den flüchtigen Speicher 11 ausgegeben.
-
Als nächstes werden die Daten, die bereits in der durch das Dekodierergebnis ausgewählten WP-CAM-Zelle gespeichert sind, durch einen Vor-Ausleseschritt ausgelesen (Schritt S41). Unter Anwendung der vor-ausgelesenen Daten wird der Datenschreibzustand der WP-CAM-Zelle bestimmt.
-
Wenn die WP-CAM-Zelle als in einem gelöschten Zustand befindlich bestimmt wird („Ja” im Schritt S42), werden Daten in die WP-CAM-Zelle geschrieben, die somit in einen programmierten Zustand versetzt wird (Schritt S43). Wenn die WP-CAM-Zelle als in einem programmierten Zustand befindlich bestimmt wird („Nein” im Schritt S42), ist die Operation beendet.
-
Danach wird eine Programmierung und Verifizierung an der erkannten WP-CAM-Zelle in der gleichen Weise durchgeführt, wie dies in dem in 20 gezeigten Flussdiagramm der Fall ist. Zum Zeitpunkt des Verifizierens gibt der flüchtige Speicher 11 den erwarteten Wert „0” als die Daten der WP-CAM-Zelle, die durch das hochpegelige Verifiziersteuersignal bezeichnet ist, an die Datenkomparatorschaltung 34 aus (siehe 23). Die vor-ausgelesenen Daten, die in dem zweiten Speichergebiet gespeichert sind, werden als die erwarteten Datenwerte für die anderen WP-CAM-Zellen ausgegeben (siehe 23). Die Datenkomparatorschaltungen 34-(0) bis 34-(15) vergleichen die von den WP-CAM-Zellen nach dem Programmieren ausgelesenen Daten mit den erwarteten Datenwerten, die aus dem flüchtigen Speicher 11 ausgelesen werden. Wenn die von einer WP-CAM-Zelle nach dem Programmieren ausgelesenen Daten gleich sind zu dem erwarteten Wert der WP-CAM-Zelle, wird ein Signal für die erfolgreiche Verifizierung an die Steuerung 8 ausgegeben. Wenn die Verifizierung erfolgreich ist, werden die Daten aus der WP-CAM-Zelle oder dem Fühlerverstärker ausgelesen und werden als die korrekten Daten der WP-CAM-Zelle in dem ersten Speichergebiet des flüchtigen Speichers 11 abgelegt.
-
24 zeigt den Aufbau des Halbleiterbauelements in detaillierter Form. Wie in dem in 24 gezeigten Halbleiterbauelement sind die Eingänge jeder Datenkomparatorschaltungen 34 entsprechend einem CAM-Modussignal geschaltet. Genauer gesagt, in einem CAM-Modus wird die Ausgabe des flüchtigen Speichers 11 jeder Datenkomparatorschaltung 34 eingespeist. In einem regulären Betrieb werden die Ausgangssignale der Erwartungswertspeicherschaltungen 32 den Datenkomparatorschaltungen 34 eingespeist.
-
Die zuvor beschriebenen Ausführungsformen sind bevorzugte Ausführungsformen der vorliegenden Erfindung. Die vorliegende Erfindung ist jedoch nicht auf diese Ausführungsformen eingeschränkt und es können diverse Änderungen und Modifizierungen durchgeführt werden, ohne von dem Schutzbereich der vorliegenden Erfindung abzuweichen.
-
Beispielsweise kann der flüchtige Speicher 11 mit nur lediglich einem Speichergebiet (das erste Speichergebiet) aufgebaut sein. Die CAM-Daten, die in das CAM-Zellenarray 4 geschrieben werden, werden ausgelesen, indem der Schalter 61 zum Zeitpunkt des Einschaltens oder des Zurücksetzens der Hardware aktiviert wird. Durch das Vor-Auslesen wird die WP-CAM-Zelle, die die Daten „1” aufweist, die einen gelöschten Zustand angeben, und die das I/O-Eingangssignal mit „1” besitzt, erkannt, indem die Information aus dem flüchtigen Speicher 11 ausgelesen wird. Das Programmieren wird dann an der erkannten WP-CAM-Zelle ausgeführt. Wenn das Programmieren ausgeführt wird, führt die Verifizierschaltung 13 eine Verifizierung durch, um zu bestimmen, ob die Daten auch mit Gewissheit in die WP-CAM-Zelle geschrieben sind. Die WP-Bitauswahlschaltung 33 gibt ein hochpegeliges Signal als ein Verifiziersteuersignal an die WP-CAM-Zelle, die durch das Programmieren ausgewählt ist, aus und gibt ferner tiefpegelige Signale als die Verifiziersteuersignale an die anderen WP-CAM-Zellen aus. Der flüchtige Speicher 11 gibt den erwarteten Wert „0” an die Datenkomparatorschaltungen 34 aus, unabhängig von der Information, die als die Daten der WP-CAM-Zelle gespeichert sind, die durch das hochpegelige Verifiziersteuersignal in dem Auslesebereich (nicht gezeigt) des ersten Speichergebiets ausgewählt ist. In einfacherer Weise ist eine Klemmschaltung, die ein Verifiziersteuersignal verwendet, mit dem Auslesebereich des ersten Speichergebiets verbunden, um damit die Ausgänge („0”) zu klemmen. Die in dem ersten Speichergebiet gespeicherte Information wird als die erwarteten Datenwerte der anderen WP-CAM-Zellen ohne Aktivierung der Klemmschaltung ausgegeben. Die Datenkomparatorschaltungen vergleichen die aus einer WP-CAM-Zelle nach dem Programmieren ausgelesenen Daten mit dem erwarteten Datenwert, der aus dem flüchtigen Speicher 11 ausgelesen wird. Wenn das Verifizierergebnis eine „Übereinstimmung” anzeigt, werden die Daten aus der WP-CAM-Zelle oder dem Fühlerverstärker durch Aktivieren des Schalters 61 ausgelesen und werden als die korrekten Daten der WP-CAM-Zelle gespeichert.
-
Die Bauteilkomponenten des flüchtigen Speichers 11 können eine sogenannte statische Speicherzelle enthalten, oder können eine Signalspeicherschaltung bzw. Latch-Schaltung sein, die mit Logikelementen gebildet ist, die für die peripheren Schaltungen vorgesehen sind.