-
Die
Erfindung betrifft ein Speichersystem mit einem Flashspeicherbauelement,
welches einen einmalig programmierbaren Block umfasst, der nachfolgend
auch als OTP-Block bezeichnet wird.
-
Elektrisch
löschbare
und programmierbare Flashspeicherbauelemente werden in verschiedenen Applikationen
benutzt. Die Flashspeicherbauelemente speichern Daten, welche keine
Sicherheit benötigen
und nachfolgend auch als öffentliche
Daten bezeichnet werden, und umfassen ein Speicherzellenfeld mit
EEPROM-Zellen. Mit der Zunahme der Komplexität von Informationsverarbeitungssystemen möchten die
Benutzer in jüngerer
Zeit Bauelementidentifikationsdaten, wie eine Seriennummer des Herstellers,
ein Herstellungsdatum, Sicherheitsdaten usw., gemeinsam mit öffentlichen
Daten im Flashspeicherbauelement speichern. Für diesen Zweck ist ein Speicherbereich
zum Speichern von Sicherheitsdaten im Flashspeicherbauelement konfiguriert
worden, welcher den besagten OTP-Block darstellt. Wie der Speicherbereich
zum Speichern von öffentlichen Daten
umfasst der OTP-Block elektrisch löschbare und programmierbare
Zellen. Um eine Zerstörung oder
einen Überlauf
der Sicherheitsdaten zu verhindern, möchte der Benutzer die Sicherheitsdaten
nur einmal in den OTP-Block programmieren. Ein Flashspeicher bauelement
mit einem OTP-Block und ein Speichersystem mit einem solchen Flashspeicherbauelement
weisen jedoch herkömmlich
einige Probleme auf.
-
Erstens
können
für den
Fall, dass ein Programmiervorgang für den OTP-Block erlaubt ist,
im OTP-Block gespeicherte Daten von einem unbefugten Benutzer beschädigt werden,
wenn der Programmierbefehl bekannt ist. Aufgrund der Eigenschaften des
Flashspeicherbauelements kann es beispielsweise sein, dass eine
Speicherzelle in einem programmierten Zustand nicht programmiert
ist, während
eine Speicherzelle in einem gelöschten
Zustand programmiert ist. Daher können die wichtigen, im OTP-Block
gespeicherten Sicherheitsdaten beschädigt werden. Ist der OTP-Block
programmiert, sollte jeglicher Programmiervorgang für den OTP-Block ausgeschlossen
sein.
-
Zweitens
weist die Identifizierung, ob der OTP-Block programmiert ist, die
Schwierigkeit auf, dass immer auf den OTP-Block zugegriffen bzw.
dieser gelesen werden muss.
-
Drittens
werden, wie allgemein bekannt, EEPROM-Zellen gelöscht, um eine Programmierung von
neuen Daten in die programmierten EEPROM-Zellen zu ermöglichen.
Daher ist es möglich, die
Umprogrammierung des OTP-Blocks zu verhindern, indem für ihn der
Löschbetrieb
begrenzt wird. Eine Technik zum Ausschließen eines Löschvorganges im OTP-Block ist
in der Offenlegungsschrift JP 2001-035176 beschrieben. Dort wird
ein Löschvorgang
für den
OTP-Block durch Einfügen
und selektives Auftrennen einer Schmelzsicherung in einen Zeilendecoder
verhindert, welcher den OTP-Block auswählt. Diese Technik erfordert
jedoch zusätzliche Schmelzsicherungen
und einen Prozess zum Auftrennen der Schmelzsicherungen.
-
Es
ist Aufgabe der Erfindung, ein Speichersystem der eingangs genannten
Art anzugeben, welches in der Lage ist, Löschvorgänge und Umprogrammiervorgänge für OTP-Blöcke mit
relativ geringem Aufwand zuverlässig
auszuschließen.
-
Die
Erfindung löst
diese Aufgabe durch ein Speichersystem mit den Merkmalen des Patentanspruchs
1, 6, 8 oder 18.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
-
Ein
erfindungsgemäßes Speichersystem umfasst
typischerweise ein Flashspeicherbauelement mit einem OTP-Block und
ein OTP-Sperrstatusregister zum Speichern von OTP-Sperrstatusinformation.
Wird nach dem Speichern von Sicherheitsdaten im OTP-Block ein externer
Befehl zum Programmieren des OTP-Blocks empfangen, dann blockiert das
erfindungsgemäße Speichersystem
die Programmierung des OTP-Blocks
in Reaktion auf Schutzdateninformationen, welche im OTP-Sperrstatusregister
gespeichert sind. Zusätzlich
blockiert das erfindungsgemäße Speichersystem
einen Löschvorgang
des OTP-Blocks in Reaktion auf die im OTP-Sperrstatusregister gespeicherten
Schutzdateninformationen, wenn nach dem Speichern von Sicherheitsdaten
im OTP-Block ein externer Befehl zum Löschen des OTP-Blocks empfangen
wird. Dies wird nachfolgend detailliert beschrieben. Daher werden
die Sicherheitsdaten nur einmal für einen originären Zweck
im OTP-Block gespeichert
und sie können unabhängig von
externen Vorgängen
sicher geschützt
werden.
-
Vorteilhafte
Ausführungsformen
der Erfindung sind in den Zeichnungen dargestellt und werden nachfolgend
beschrieben. Es zeigen:
-
1 ein
schematisches Blockdiagramm eines ersten erfindungsgemäßen Speichersystems,
-
2 ein
schematisches Blockdiagramm eines Flashspeicherbauelements aus 1,
-
3 ein
schematisches Blockdiagramm eines OTP-Blocks aus 2,
-
4 ein
Flussdiagramm zur Darstellung der Funktionsweise eines erfindungsgemäßen Speichersystems,
-
5 ein
schematisches Blockdiagramm eines zweiten erfindungsgemäßen Speichersystems,
-
6 ein
schematisches Blockdiagramm einer Realisierung einer Schaltung zur
Erzeugung eines Lesefreigabesignals aus 5 und
-
7 ein
schematisches Blockdiagramm einer weiteren Realisierung der Schaltung
zur Erzeugung eines Lesefreigabesignals aus 5.
-
1 zeigt
ein schematisches Blockdiagramm eines ersten Ausführungsbeispiels
eines erfindungsgemäßen Speichersystems 100.
Wie aus 1 ersichtlich ist, umfasst das
Speichersystem 100 ein Flashspeicherbauelement 120,
ein Schnittstellenbauelement 140 und einen Host-Rechner 160. Das
Flashspeicherbauelement 120 umfasst einen Speicherbereich
zum Speichern von Daten, welcher aus einer Mehrzahl von Speicherblöcken BLK0
bis BLKi und wenigstens einem OTP-Block OTPBLK aufgebaut ist. Bei
der vorliegenden Erfindung sind Lösch-/Programmier-/Lesevorgänge für die Speicherblöcke BLK0
bis BLKi und Lesevorgänge
für den
OTP-Block OTPBLK nicht begrenzt. Im Gegensatz dazu sind Lösch-/Programmiervorgänge für den OTP-Block
OTPBLK begrenzt, was nachfolgend näher erläutert wird. Jeder der Speicherblöcke BLK0
bis BLKi und der OTP-Block OTPBLK umfassen elektrisch löschbare
und programmierbare ROM-Zellen (EEPROM-Zellen), welche alle einen Transistor
mit floatendem Gate umfassen.
-
Das
Schnittstellenbauelement 140 wirkt als Schnittstelle zwischen
dem Flashspeicherbauelement 120 und dem Host-Rechner 160.
Das Schnittstellenbauelement 140 umfasst eine Host-Schnittstelle 141 und
eine Flashschnittstelle 142. Die Host-Schnittstelle 141 empfängt verschiedene
Anweisungen, z.B. einen Programmierbefehl, einen Löschbefehl,
einen Lesebefehl, einen OTP-Befehl usw., vom Host-Rechner 160,
um diese an die Flashschnittstelle 142 weiterzuleiten.
Die Host-Schnittstelle 141 empfängt beispielsweise einen Befehl
zum Signalisieren eines OTP-Modus,
welcher nachfolgend auch als OTP-Befehl bezeichnet wird, um einen OTP-Zugriffsbefehl
OTP_Access_CMD für
die Flashschnittstelle 142 zu erzeugen. Wird der Programmierbefehl
während
eines OTP-Modus
eingegeben, dann gibt die Host-Schnittstelle 141 den OTP-Programmierbefehl
OTP_Program_CMD an die Flashschnittstelle 142 aus. Erscheint
ein Lesebefehl während
des OTP-Modus, dann gibt die Host-Schnittstelle 141 einen
OTP-Lesebefehl OTP_Read_CMD an die Flashschnittstelle 142 aus.
Wird ein Befehl zum Verlassen des OTP-Modus eingegeben, dann gibt die Host-Schnittstelle 141 einen
Rücksetzbefehl Reset_CMD
an die Flashschnittstelle 142 aus.
-
Wie
weiter aus 1 ersichtlich ist, umfasst die
Flashschnittstelle 142 ein OTP-Sperrstatusregister 142a,
welches OTP-Sperrstatusinformationen speichert, die anzeigen, ob
der OTP-Block OTPBLK programmiert ist. Die OTP-Sperrstatusinformation mit
dem Wert „1" zeigt beispielsweise
an, dass der OTP-Block OTPBLK des Flashspeicherbauelements 120 programmiert
ist, und die OTP-Sperrstatusinformation mit dem Wert „0" zeigt beispielsweise
an, dass der OTP-Block OTPBLK des Flashspeicherbauelements 120 nicht
programmiert ist. Wie dem Fachmann klar ist, kann die Flashschnittstelle 142 durch Benutzen
einer Zustandsmaschine ausgeführt
sein, wie sie als Steuerlogik allgemein bekannt ist, wenngleich
in den Zeichnungen nicht dargestellt. Die Flashschnittstelle 142 erzeugt
Steuersignale für
das Flashspeicherbauelement 120 gemäß den Befehlen, welche von
der Host-Schnittstelle 141 zur Verfügung gestellt werden. Das Flashspeicherbauelement 120 empfängt Befehle,
Adressen und/oder Daten, welche von der Flashschnittstelle 142 gemäß einem
vorbestimmten Timing zur Verfügung
gestellt werden, wie sich für
den Fachmann versteht.
-
Wird
der Programmierbefehl vom Host-Rechner 160 zum Schnittstellenbauelement 140 übertragen,
dann bestimmt die Flashschnittstelle 142 im Schnittstellenbauelement 140,
ob die im OTP-Sperrstatusregister 142a gespeicherte OTP-Sperrstatusinformation
den Wert „1" anzeigt. Ist dies
der Fall, dann wird der Programmierbefehl nicht zum Flashspeicherbauelement 120 übertragen.
Das bedeutet, dass der OTP-Block OTPBLK des Flashspeicherbauelements 120 nicht
programmiert wird. Weist die im OTP-Sperrstatusregister 142a gespeicherte
OTP-Sperrstatusinformation den Wert „0" auf, dann überträgt die Flashschnittstelle 142 den
Programmierbefehl, die Adresse und die Daten zum Flashspeicherbauelement 120 mit
einem vorbestimmten Timing. Das bedeutet, dass die gewünschten
Sicherheitsdaten im OTP-Block OTPBLK des Flashspeicherbauelements 120 auf
bekannte Weise programmiert werden können.
-
Zusätzlich bestimmt
die Flashschnittstelle 142, wenn im OTP-Modus ein Löschbefehl
zum Schnittstellenbauelement 140 übertragen wird, ob die im OTP-Sperrstatusregister 142a gespeicherte OTP-Sperrstatusinformation
den Wert „1" hat. Wenn dies der
Fall ist, wird der Löschbefehl
nicht zum Flashspeicherbauelement 120 übertragen. Das bedeutet, dass
der OTP-Block OTPBLK des Flashspeicherbauelements 120 nicht
gelöscht
wird. Weist die im OTP-Sperrstatusregister 142a gespeicherte OTP-Sperrstatusinformation
den Wert „0" auf, dann überträgt die Flashschnittstelle 142 den
Löschbefehl und
die Adresse zum Flashspeicherbauelement 120. Das bedeutet,
dass der OTP-Block OTPBLK des Flashspeicherbauelements 120 auf
die bekannte Weise gelöscht
wird.
-
Fordert
der Host-Rechner 160 die im OTP-Sperrstatusregister 142a gespeicherte OTP-Sperrstatusinformation
vom Schnittstellenbauelement 140 an, dann kann das Schnittstellenbauelement 140 die
OTP-Sperrstatusinformation des OTP-Sperrstatusregisters 142a als
Schutzdateninformation gemäß der Anforderung
des Host-Rechners 160 erzeugen.
-
2 zeigt
ein schematisches Blockdiagramm des Flashspeicherbauelements 120 aus 1.
Das Flashspeicherbauelement 120 ist in diesem Beispiel
ein NAND-Flashspeicherbauelement. Selbstverständlich ist das Flashspeicherbauelement 120 nicht
auf die Ausführung
als NAND-Flashspeicherbauelement
eingeschränkt.
-
Wie
aus 2 ersichtlich ist, umfasst das Flashspeicherbauelement 120 der
Erfindung ein Speicherzellenfeld zum Speichern von Informationen.
Das Speicherzellenfeld umfasst eine Mehrzahl von Speicherblöcken BLK0
bis BLKi und wenigstens einen OTP-Block OTPBLK. Jeder der Speicherblöcke BLK0
bis BLKi und der OTP-Block OTPBLK umfassen eine Mehrzahl von nicht
dargestellten Ketten, welche jeweils einen Kettenauswahltransistor,
einen Masseauswahltransistor und Speicherzellentransistoren umfassen,
welche in Reihe zwischen den Auswahltransistoren eingeschleift sind.
Jeder der Speicherzellentransistoren umfasst einen Transistor mit einem
floatenden Gate, welcher elektrisch löschbar und programmierbar ist.
Schutzdateninformation ist im OTP-Block OTPBLK gespeichert und die
Schutzdateninformation zeigt an, ob der OTP-Block OTPBLK programmiert
ist oder nicht. Dies wird nachfolgend detaillierter beschrieben.
-
Wie
aus 3 ersichtlich ist, welche schematisch einen OTP-Block
darstellt, umfasst der OTP-Block OTPBLK einen Hauptbereich und einen Reservebereich.
Sicherheitsdaten werden im Hauptbereich gespeichert, welcher aus
einer Mehrzahl von Seiten bzw. Wortleitungen P0 bis Pn aufgebaut
ist. Informationen bezüglich
jeder der Seiten, z.B. ECC-Informationen,
werden im Reservebereich gespeichert. Hierbei wird auch die Schutzdateninformation
zur Anzeige, ob der OTP-Block OTPBLK programmiert ist, gespeichert.
Die Schutzdateninformation wird in einem speziellen Bereich 121 einer
ersten Seite gespeichert, was in 3 durch
die schraffierte Darstellung angezeigt ist. Die Schutzdateninformation
kann jedoch auch in einem Reservebereich von jeder Seite oder einer
zusätzlichen
Seite gespeichert werden. Ein Datenwort kann in dem speziellen Bereich 121 des
Reservebereichs gespeichert werden und zwei untere Datenbits IO0
und IO1 des Datenworts können
als die Schutzdateninformation verwendet werden, wie in 3 dargestellt
ist. Das bedeutet, dass ein Datenwert „00" oder „1X/X1" in den zwei unteren Datenbits IO0 und
IO1 als Schutzdateninformation gespeichert werden. Die Schutzdateninformation
kann gespeichert werden, während
Daten in eine ausgewählte
Seite des Hauptbereichs gespeichert werden.
-
Wie
aus 2 weiter ersichtlich ist, umfasst das Flashspeicherbauelement 120 der
vorliegenden Erfindung eine Zeilenpufferschaltung 201,
eine Spaltenpufferschaltung 202, eine Zeilendecoderschaltung 203,
eine Spaltendecoderschaltung 204, eine Datenzwischenspeicher-
und Abtastverstärkerschaltung 205,
eine Spaltengatterschaltung 206, eine Datenausgabepufferschaltung 207 und
eine Befehlsregister- und Steuerlogikschaltung 208.
-
Die
Zeilenpufferschaltung
201 empfängt gesteuert von der Befehlsregister-
und Steuerlogikschaltung
208 eine Zeilenadresse, welche über Eingabe-/Ausgabeanschlüsse IO0
bis IO15 empfangen wird, und die Spaltenpufferschaltung
202 empfängt gesteuert
von der Befehlsregister- und Steuerlogikschaltung
208 eine
Spaltenadresse über
die Eingabe-/Ausgabeanschlüsse
IO0 bis IO15. Die Zeilendecoderschaltung
203 wählt einen
der Speicherblöcke BLK0
bis BLKi in Reaktion auf eine Blockadresse BA aus, welche von der
Zeilenpufferschaltung
201 ausgegeben wird, und wählt eine
der Wortleitungen/Seiten des ausgewählten Blocks in Reaktion auf
die Zeilenadresse RA aus. Die Zeilendecoderschaltung
203 umfasst
Zeilendecoder RD0 bis RDi und OTPRD, welche jeweils mit den Speicherblöcken BLK0
bis BLKi bzw. dem OTP-Block OTPBLK korrespondieren. Die Datenzwischenspeicher-
und Abtastverstärkerschaltung
205 tastet
die im ausgewählten Speicherblock/OTP-Block
gespeicherten Daten während
eines Lesevorgangs ab und verstärkt
sie und puffert die im ausgewählten
Speicherblock/OTP-Block zu speichernden Daten. Die Datenzwischenspeicher-
und Abtastverstärkerschaltung
205 umfasst
eine Mehrzahl von Seitenpuffern, welche jeweils mit den Ketten von
jedem Speicherblock/OTP-Block verbunden sind, was in der Zeichnung
nicht dargestellt ist. Ein Ausführungsbeispiel
eines solchen Seitenpuffers ist in der Patentschrift
US 5.936.890 offenbart, deren Inhalt
hiermit durch Verweis hierin aufgenommen wird.
-
Die
Spaltendecoderschaltung 204 erzeugt Spaltenauswahlsignale
in Reaktion auf von der Spaltenpufterschaltung 202 erzeugte
Spaltenadressen. Die Spaltengatterschaltung 206 wählt Spalten
oder Seitenpuffer des ausgewählten
Speicherblocks/OTP-Blocks seriell in Reaktion auf die Spaltenauswahlsignale
von der Spaltendecoderschaltung 204 aus. Die in den ausgewählten Seitenpuffern
zwischengespeicherten Daten werden über die Eingabe-/Ausgabeanschlüsse IO0
bis IO15 gesteuert von der Befehlsregister- und Steuerlogikschaltung 208 nach
außen
ausgegeben. Die Befehlsregister- und Steuerlogikschaltung 208 empfängt ei nen
Befehl über
die Eingabe-/Ausgabeanschlüsse
IO0 bis IO15 und steuert den internen Betrieb gemäß dem eingegebenen
Befehl.
-
Im
Fall der vorliegenden Erfindung aktiviert die Befehlsregister- und
Steuerlogikschaltung 208 das OTP-Freigabesignal OTP_EN,
wenn ein Befehl eingegeben wird, der den OTP-Modus oder einen Eintritt
in den OTP-Modus anzeigt. Das OTP-Freigabesignal OTP_EN wird an
die Zeilendecoder RD0 bis RDi, welche mit den Speicherblöcken BLK0
bis BLKi korrespondieren, und an den Zeilendecoder OTPRD angelegt,
welcher mit dem OTP-Block OTPBLK korrespondiert. Wird das OTP-Freigabesignal OTP_EN aktiviert,
dann werden die Decoder RD0 bis RDi unabhängig von den Block- und Zeilenadressen
BA und RA von der Zeilenpufferschaltung 201 deaktiviert. Das
bedeutet, dass die Speicherblöcke
BLK0 bis BLKi nicht durch die korrespondierenden Zeilendecoder RD0
bis RDi ausgewählt
werden, wenn das OTP-Freigabesignal OTP_EN aktiviert ist. Im Gegensatz
dazu wählt,
wenn das OTP-Freigabesignal OTP_EN
aktiviert ist, der Zeilendecoder OTPRD in Reaktion auf die Zeilenadresse
RA von der Zeilenpufferschaltung 201 eine der Seiten/Zeilen
des OTP-Blocks OTPBLK aus. Ist das OTP-Freigabesignal OTP_EN aktiviert und
wird dann ein Programmier-/Lösch-/Lesebefehl
eingegeben, dann kann der Programmier-/Lösch-/Lesevorgang des OTP-Blocks OTPBLK gemäß dem allgemein
bekannten Verfahren für
NAND-Flashspeicherbauelemente ausgeführt werden. Als Ergebnis sind
im OTP-Modus die Speicherblöcke
BLK0 bis BLKi nicht ausgewählt, aber
der OTP-Block OTPBLK ist ausgewählt.
-
4 zeigt
ein Flussdiagramm zur Darstellung von Vorgängen zum Schutz der Programmierung
und Neuprogrammierung des OTP-Blocks im erfindungsgemäßen Speichersystem.
-
Daten
können
nur einmal in den OTP-Block OTPBLK des Flashspeicherbauelements 120 programmiert
werden. Um die Daten in den OTP- Block OTPBLK
des Flashspeicherbauelements 120 zu programmieren, gibt
der Host-Rechner 160 im Schritt S100 einen Befehl an das
Schnittstellenbauelement 140 aus, der für den Eintritt in den OTP-Modus
erforderlich ist und der vorliegend auch als OTP-Befehl bezeichnet
wird. Die Hostschnittstelle 141 des Schnittstellenbauelements 140 erzeugt
einen OTP-Zugriffsbefehl in Reaktion auf den OTP-Befehl und die
Flashschnittstelle 142 gibt den Befehl zur Anzeige des
Eintritts in den OTP-Modus
an das Flashspeicherbauelement 120 aus. Die Befehlsregister- und Steuerlogikschaltung 208 des
Flashspeicherbauelements 120 aktiviert das OTP-Freigabesignal OTP_EN
in Reaktion auf den Ankündungsbefehl
des Eintritts in den OTP-Modus. Dies macht die Speicherblöcke BLK0
bis BLKi nicht mehr gemäß der eingegebenen
Blockadresse auswählbar.
Das bedeutet, dass nicht die Speicherblöcke BLK0 bis BLKi ausgewählt werden,
sondern der OTP-Block OTPBLK, wenn das OTP-Freigabesignal OTP_EN
im OTP-Modus aktiviert ist.
-
Wird
der OTP-Modus durch den oben beschriebenen Prozess gesetzt, dann
gibt der Host-Rechner 160 den Programmierbefehl an das Schnittstellenbauelement 140 aus
und die Hostschnittstelle 141 des Schnittstellenbauelements 140 gibt
den OTP-Programmierbefehl an die Flashschnittstelle 142 in
Reaktion auf den Programmierbefehl aus. Die Flashschnittstelle 142 bestimmt
im Schritt S110, ob ein Wert im OTP-Sperrstatusregister 142a „0" ist, was anzeigt,
dass der OTP-Block OTPBLK nicht programmiert ist. Ist der Wert im OTP-Sperrstatusregister 142a „1 ", dann wird das Verfahren
mit dem Schritt S130 fortgesetzt. Ist der Wert im OTP-Sperrstatusregister 142a „0", dann werden im
Schritt S120 Sicherheitsdaten und Schutzdaten in den OTP-Block OTPBLK
programmiert. Zusätzlich
erzeugt die Flashschnittstelle 142 in Reaktion auf den
OTP-Programmierbefehl den Programmierbefehl, die Adresse und die
Daten für
das Speicherbauelement 120 gemäß einem vorbestimmten Zeitablauf,
wenn der Wert im OTP-Sperrstatusregister 142a „0" ist. Die Befehlsregister-
und Steuerlogikschaltung 208 des Flash speicherbauelements 120 steuert
eine nicht dargestellte Generatorschaltung für hohe Spannung, um in Reaktion
auf den Programmierbefehl hohe Spannungen zu erzeugen, welche für den Programmiervorgang
erforderlich sind. Die Zeilen- und Spaltenpufferschaltungen 201 und 202 puffern
jeweils Adressen, welche gesteuert von der Befehlsregister- und
Steuerlogikschaltung 208 über die Eingabe-/Ausgabeanschlüsse IO0
bis IO15 eingegeben werden.
-
Der
Zeilendecoder OTPRD, welcher mit dem OTP-Block OTPBLK korrespondiert,
wählt eine
der Seiten des OTP-Blocks OTPBLK in Reaktion auf die Zeilenadresse
RA der in die Zeilenpufferschaltung 201 eingegebenen Adressen
aus. In diesem Fall werden die Speicherblöcke BLK0 bis BLKi nicht ausgewählt, da
die Zeilendecoder BLK0 bis BLKi durch das OTP-Freigabesignal OTP_EN
deaktiviert sind. Die Daten, welche seriell in Worteinheiten über die
Eingabe-/Ausgabeanschlüsse
IO0 bis IO15 eingegeben werden, werden über die Spaltengatterschaltung 206 in
die Datenzwischenspeicher- und Abtastverstärkerschaltung 205 geladen.
Die zu programmierenden Daten, welche in die Datenzwischenspeicher-
und Abtastverstärkerschaltung 205 geladen
sind, werden auf die allgemein bekannte Weise in den Hauptbereich
des OTP-Blocks OTPBLK geladen. Gleichzeitig kann die Schutzdateninformation
mit einem Wert „00" im Reservebereich
des OTP-Blocks OTPBLK gespeichert werden. Im Gegensatz dazu kann
die Schutzdateninformation mit dem Wert „00" zum Identifizieren, dass der OTP-Block
OTPBLK programmiert ist, nach der Programmierung des Hauptbereichs
des OTP-Blocks OTPBLK in den Reservebereich programmiert werden.
-
Ist
der Programmiervorgang der Sicherheitsdaten- und Schutzdateninformation
in den OTP-Block OTPBLK beendet, dann gibt der Host-Rechner 160 im
Schritt S130 einen Rücksetzbefehl
an das Schnittstellenbauelement 140 aus, um den OTP-Modus
zu verlassen. Die Flashschnittstelle 142 bestimmt im Schritt
S140, ob der Wert im OTP- Sperrstatusregister 142a „0" ist, was anzeigt, dass
der OTP-Block OTPBLK nicht programmiert ist, wenn ein Rücksetzbefehl
von der Hostschnittstelle 141 eingegeben wird. Ist der
Wert im OTP-Sperrstatusregister 142a „1 ", dann wird das Verfahren
mit dem Schritt S160 fortgesetzt. Ist der Wert im OTP-Sperrstatusregister 142a „0", dann wird das OTP-Sperrstatusregister 142a im
Schritt S150 aktualisiert. Insbesondere gibt die Flashschnittstelle 142 einen
Lesebefehl an das Flashspeicherbauelement 120 aus, um die
im Reservebereich des OTP-Blocks OTPBLK gespeicherte Schutzdateninformation
zu lesen. Die Flashschnittstelle 142 speichert die OTP-Sperrstatusinformation
mit dem Wert „1" im OTP-Sperrstatusregister 142a,
wenn die gelesene Schutzdateninformation den Wert „00" hat. Das bedeutet,
dass das OTP-Sperrstatusregister 142a aktualisiert wird.
Danach gibt die Flashschnittstelle 142 einen Rücksetzbefehl
an das Flashspeicherbauelement 120 aus und der OTP-Modus
wird im Schritt S160 beendet. Das bedeutet, dass das OTP-Freigabesignal
OTP_EN deaktiviert wird.
-
Die
im OTP-Sperrstatusregister 142a der Flashschnittstelle 142 gespeicherte
OTP-Sperrstatusinformation geht verloren, wenn die Versorgung unterbrochen
wird, so dass die Statusinformation im OTP-Sperrstatusregister 142a aktualisiert
werden sollte, wann immer Energie angelegt wird. Insbesondere setzt
die Flashschnittstelle 142 das Flashspeicherbauelement 120 auf
gleiche Weise wie oben beschrieben in den OTP-Modus, wenn die Energie eingeschaltet
wird, und gibt einen Lesebefehl an das Flashspeicherbauelement 120 aus,
so dass die im Reservebereich des OTP-Blocks OTPBLK gespeicherte
Schutzdateninformation gelesen wird. Die Flashschnittstelle 142 speichert
die OTP-Sperrstatusinformation
mit dem Wert „1" im OTP-Sperrstatusregister 142a,
wenn die gelesene Schutzdateninformation den Wert „00" hat. Das bedeutet,
dass das OTP-Sperrstatusregister 142a aktualisiert wird.
-
Ist
der OTP-Block OTPBLK einmal programmiert, dann ist es unmöglich, ihn
im OTP-Modus umzuprogrammieren. Genauer gesagt gibt die Hostschnittstelle 141 den
OTP-Programmierbefehl an die Flashschnittstelle 142 aus,
wenn der Programmierbefehl im OTP-Modus vom Host-Rechner 160 an das Schnittstellenbauelement 140 angelegt
wird. Wird der OTP-Programmierbefehl an die Flashschnittstelle 142 angelegt,
dann bestimmt die Flashschnittstelle 142, ob die im OTP-Sperrstatusregister 142a gespeicherte
OTP-Sperrstatusinformation den Wert „1" hat. Hat die im OTP-Sperrstatusregister 142a gespeicherte
OTP-Sperrstatusinformation den Wert „1 ", dann wird der OTP-Programmiermodus nicht festgestellt.
Dadurch wird der OTP-Block OTPBLK nicht neu programmiert. In diesem
Fall kann das Schnittstellenbauelement 140 dem Host-Rechner 160 mitteilen,
dass ein Eintritt in den OTP-Programmiermodus fehlgeschlagen ist.
-
Wird
der OTP-Block OTPBLK einmal programmiert, dann ist ein Löschen des
programmierten OTP-Blocks analog zur Neuprogrammierung des OTP-Blocks
ebenfalls unmöglich.
Speziell erzeugt die Hostschnittstelle 141 den OTP-Löschbefehl
für die
Flashschnittstelle 142, wenn der Löschbefehl vom Host-Rechner 160 an
das Schnittstellenbauelement 140 angelegt wird. Wird der
OTP-Löschbefehl an
die Flashschnittstelle 142 angelegt, dann bestimmt die
Flashschnittstelle 142, ob die im OTP-Sperrstatusregister 142a gespeicherte OTP-Sperrstatusinformation
den Wert „1" hat. Ist dies der
Fall, dann wird der OTP-Löschmodus
nicht gesetzt. Dadurch wird der OTP-Block OTPBLK nicht gelöscht. In
diesem Fall kann das Schnittstellenbauelement 140 dem Host-Rechner 160 mitteilen,
dass ein Eintritt in den OTP-Modus fehlgeschlagen ist. Wie im Stand
der Technik beschrieben ist, kann dort eine Ausführung mit Schmelzsicherungsoption
im Zeilendecoder benutzt werden, um einen Löschvorgang des OTP-Blocks OTPBLK
zu verhindern. Die Erfindung kann hingegen einen Löschvorgang
des OTP-Blocks OTPBLK ohne zu sätzliche,
nicht angezeigte Schmelzsicherungsoption im Zeilendecoder OTPRD
verhindern.
-
Im
erfindungsgemäßen Speichersystem kann
die Bestimmung, ob der OTP-Block OTPBLK programmiert ist, ohne einen
Lesevorgang der im Reservebereich des OTP-Blocks OTPBLK gespeicherten
Schutzdateninformation durchgeführt
werden. Beispielsweise wird die im OTP-Sperrstatusregister 142a gespeicherte
OTP-Sperrstatusinformation an den Host-Rechner 160 ausgegeben,
wenn der Host-Rechner 160 die Schutzdateninformation des OTP-Blocks
OTPBLK des Schnittstellenbauelements 140 anfordert. Daher
kann die Bestimmung, ob der OTP-Block
OTPBLK programmiert ist, ohne einen Lesevorgang der im Reservebereich
des OTP-Blocks OTPBLK gespeicherten Schutzdateninformation erfolgen.
-
Wie
oben vollständig
ausgeführt
ist, kann durch Steuern eines Eintritts in den OTP-Modus gemäß der in
einem Register gespeicherten OTP-Sperrstatusinformation
ein Umprogrammierungs-/Löschvorgang
des programmierten OTP-Blocks von vornherein verhindert werden.
Das bedeutet, dass die im OTP-Block gespeicherten Daten sicher bewahrt
werden. Es kann ohne lästigen Zugriff
auf den OTP-Block identifiziert werden, ob der OTP-Block programmiert
ist. Zusätzlich
kann ein Löschvorgang
des OTP-Blocks auch ohne zusätzliche,
auftrennende Schmelzsicherungsoption verhindert werden.
-
5 zeigt
ein schematisches Blockdiagramm eines zweiten Ausführungsbeispiels
eines erfindungsgemäßen Speichersystems.
In 5 sind Elemente, die gleich aufgebaut sind wie
in 1, mit gleichen Bezugszeichen versehen, und es
kann insoweit auf eine wiederholte Beschreibung verzichtet werden.
-
Im
Fall des ersten Ausführungsbeispiels
des erfindungsgemäßen Speichersystems
werden, wie oben ausgeführt
ist, Schutzdaten, welche anzeigen, ob ein OTP-Block programmiert
ist, zusammen mit Sicherheitsdaten im OTP-Block gespeichert. Im
Fall des zweiten Ausführungsbeispiels
des erfindungsgemäßen Speichersystems
werden Testinformationen, z.B. eine Betriebsfrequenz des Flashspeicherbauelements,
welche auf einem Packungslevel erhalten werden, im OTP-Block OTPBLK
gespeichert. Die Testinformation wird in irgendeinem Adressenbereich des
OTP-Blocks, z.B. im Hauptbereich oder im Reservebereich des OTP-Blocks,
auf einem Packungstestlevel gespeichert, bevor Sicherheits- und
Schutzdaten darin gespeichert werden.
-
Wie
aus 5 ersichtlich ist, umfasst in diesem Beispiel
das Schnittstellenbauelement 140 eine Host-Schnittstelle 141,
eine Flashschnittstelle 142 und eine Schaltung 143 zum
Erzeugen eines Einschaltrücksetzlesefreigabesignals
(POR-Lesefreigabesignals). Die Host-Schnittstelle 141 und
die Flashschnittstelle 142 arbeiten in einem OTP-Modus
auf die gleiche Weise wie die Komponenten aus 1, so
dass hier auf eine erneute Beschreibung verzichtet wird. Die POR-Lesefreigabesignalgeneratorschaltung 143 erzeugt
ein POR-Lesefreigabesignal POR_READ beim Einschalten und die Flashschnittstelle 142 gibt
in Reaktion auf das POR-Lesefreigabesignal POR_READ einen Befehl
an das Flashspeicherbauelement 120 aus, welcher einen POR-Lesemodus
signalisiert. Anschließend
gibt die Flashschnittstelle 142 einen POR-Lesebefehl und Adressen
an den Flashspeicher 120 aus. Die mit dem POR-Lesebefehl
an den Flashspeicher 120 übertragenen Adressen bestimmen
einen Bereich, in welchem Testinformationen gespeichert sind. Der
Flashspeicher 120 liest die Testinformation in Reaktion
auf den POR-Lesebefehl aus dem OTP-Block OTPBLK aus und gibt die
ausgelesene Testinformation an das Schnittstellenbauelement 140 aus.
Die Flashschnittstelle 142 des Schnittstellenbauelements 140 speichert
die Testinformation des Flashspeicherbauelements 120 in
einem Register 142b. Fordert der Host-Rechner 160 die
Testinformation im Register 142b vom Schnittstellenbauelement 140 an,
dann gibt das Schnittstellenbauelement 140 die Testinformation
aus dem Register 142b über
die Hostschnittstelle 141 gemäß der Anforderung des Host-Rechners 160 an
den Host-Rechner 160 aus.
-
Gemäß der obigen
Beschreibung wird beim zweiten Ausführungsbeispiel des erfindungsgemäßen Speichersystems
beim Einschalten ein automatischer Lesevorgang der Testinformationen
gesteuert vom Schnittstellenbauelement 140 ausgeführt.
-
In 5 können die
individuellen Register 142a und 142b in der Flashschnittstelle 142 durch
ein bekanntes Register ersetzt werden, welches die OTP-Sperrstatusinformation
und die Testinformation speichert, wie für den Fachmann klar.
-
Die 6 und 7 zeigen
jeweils ein schematisches Blockdiagramm von möglichen Ausführungsformen
der POR-Lesefreigabesignalgeneratorschaltung aus 5.
-
Wie
aus 6 ersichtlich ist, umfasst die POR-Lesefreigabesignalgeneratorschaltung 143 in diesem
Beispiel eine Einschaltrücksetzschaltung 143a und
einen Signalgenerator 143b. Die Einschaltrücksetzschaltung 143a detektiert,
ob eine Versorgungsspannung beim Einschalten einen vorgegebenen
Spannungspegel erreicht, und erzeugt ein Einschaltrücksetzsignal
POR als Detektionsergebnis. Der Signalgenerator 143b erzeugt
das POR-Lesefreigabesignal POR_READ in Reaktion auf das Einschaltrücksetzsignal
POR. Das POR-Lesefreigabesignal POR_READ wird nach der Aktivierung
des Einschaltrücksetzsignals
POR und dem Ablauf einer vorgegebenen Zeitspanne erzeugt. Hierbei
entspricht die vorgegebene Zeitspanne einem Zeitbedarf, der von
einer Versorgungsspannung Vcc benötigt wird, um vom vorgegebenen
Span nungspegel auf eine Sollspannung anzusteigen, z.B. auf einen vollen
Spannungspegel Vcc. Der Signalgenerator 143b kann beispielsweise
durch einen aus dem Stand der Technik bekannten Oszillator realisiert sein.
-
Ausführungsbeispiele
für Einschaltrücksetzschaltungen
sind in den Patentschriften
US 6.346.834 und
6.204.703 offenbart, deren Inhalt hiermit durch Verweis vollständig hierin
aufgenommen wird.
-
Die
POR-Lesefreigabesignalgeneratorschaltung 143 kann auch
wie im Beispiel von 7 allein durch eine Einschaltrücksetzschaltung
ausgeführt sein.
-
Die
Funktionsweise des zweiten Ausführungsbeispiels
des erfindungsgemäßen Speichersystems
wird nachfolgend unter Bezugnahme auf die 1, 2, 5 und 7 beschrieben.
Wird Energie an das Speichersystem 100 angelegt, dann erzeugt
die POR-Lesefreigabesignalgeneratorschaltung 143 des Schnittstellenbauelements 140 das POR-Lesefreigabesignal
POR_READ. Die Flashschnittstelle 142 gibt in Reaktion auf
das POR-Lesefreigabesignal
POR_READ einen Befehl an das Flashspeicherbauelement 120 aus,
welcher den POR-Lesemodus anzeigt. Die Befehlsregister- und Steuerlogikschaltung 208 aus 2 aktiviert
das OTP-Freigabesignal
OTP_EN, wenn der POR-Lesebefehl vom Flashspeicherbauelement 120 empfangen
wird. Das OTP-Freigabesignal OTP_EN wird gemeinsam an die Zeilendecoder
RD0 bis RDi, welche jeweils mit den Speicherblöcken BLK0 bis BLKi korrespondieren,
und an den Zeilendecoder OTPRD angelegt, welcher mit dem OTP-Block
OTPBLK korrespondiert. Wird das OTP-Freigabesignal OTP_EN aktiviert,
dann werden die Decoder RD0 bis RDi unabhängig von den Block- und Zeilenadressen
BA und RA deaktiviert, welche als nächstes empfangen werden. Das
bedeutet, dass die Speicherblöcke
BLK0 bis BLKi nicht durch die korrespondierenden Zeilendecoder RD0
bis RDi ausge wählt
werden, wenn das OTP-Freigabesignal OTP_EN aktiviert ist. Andererseits
wählt der
Zeilendecoder OTPRD in Reaktion auf die Zeilenadresse RA von der
Zeilenpufferschaltung 201 eine der Seiten/Wortleitungen
des OTP-Blocks OTPBLK aus, wenn das OTP-Freigabesignal OTP_EN aktiviert
ist.
-
Die
Flashschnittstelle 142 gibt Adressen mit dem POR-Lesebefehl
an das Flashspeicherbauelement 120 nachfolgend auf den
Befehl aus, welcher den POR-Lesemodus anzeigt. Wird der POR-Lesebefehl
nach der Aktivierung des OTP-Freigabesignals OTP_EN an das Flashspeicherbauelement 120 angelegt,
dann wird auf die bekannte Weise ein Lesevorgang des OTP-Blocks
OTPBLK im Flashspeicherbauelement 120 durchgeführt, was
nachfolgend im Detail beschrieben wird.
-
Die
Zeilenpufferschaltung 201 aus 2 empfängt gesteuert
von der Befehlsregister- und Steuerlogikschaltung 208 über die
Eingabe-/Ausgabeanschlüsse IO0
bis IO15 eine Zeilenadresse, und die Spaltenpufferschaltung 202 empfängt gesteuert von
der Befehlsregister- und Steuerlogikschaltung 208 über die
Eingabe-/Ausgabeanschlüsse
IO0 bis IO15 eine Spaltenadresse. Der Zeilendecoder OTPRD wählt eine
der Wortleitungen/Seiten des OTP-Blocks OTPBLK in Reaktion auf eine
Adresse von der Zeilenpufferschaltung 201 aus. Die Datenzwischenspeicher-
und Abtastverstärkerschaltung 205 tastet
die im ausgewählten
OTP-Block gespeicherten Daten ab und puffert sie. Die Spaltendecoderschaltung 204 erzeugt
Spaltenauswahlsignale in Reaktion auf die von der Spaltenpufferschaltung 202 erzeugte
Spaltenadresse und die Spaltengatterschaltung 206 wählt Spalten
oder Seitenpuffer des ausgewählten
OTP-Blocks seriell in Worteinheiten in Reaktion auf die Spaltenauswahlsignale
von der Spaltendecoderschaltung 204 aus. Die in den ausgewählten Seitenpuffern
zwischengespeicherten Daten werden über die Eingabe-/Ausgabeanschlüsse IO0 bis
IO15 gesteuert von der Befehlsregister- und Steuerlogikschaltung 208 nach
außen
ausgegeben. Dar aus resultiert, dass die Testinformation im Register 142b der
Flashschnittstelle 142 gespeichert wird. Fordert der Host-Rechner 160 die
Testinformation aus dem Register 142b von dem Schnittstellenbauelement 140 an,
dann gibt das Schnittstellenbauelement 140 die Testinformation
gemäß der Anforderung
vom Host-Rechner 160 aus dem Register 142b über die
Hostschnittstelle 141 aus.
-
Daraus
resultiert, dass im Falle des zweiten Ausführungsbeispiels des erfindungsgemäßen Speichersystems
ein Lesevorgang der Testinformationen aus dem OTP-Block automatisch
beim Einschalten gesteuert vom Schnittstellenbauelement 140 ohne einen
Befehl vom Host-Rechner 160 durchgeführt wird.
-
Beim
zweiten Ausführungsbeispiel
des erfindungsgemäßen Speichersystems
ist es möglich,
die Ausbeute durch Speichern der Testinformationen im OTP-Block
zu erhöhen,
wie beispielsweise einer Betriebsfrequenz des Flashspeicherbauelements 120. Obwohl
eine Anzahl von Chips auf einem Wafer unter den gleichen Bedingungen
hergestellt wird, ist es beispielsweise möglich, dass Chips existieren,
welche nicht in einen gewünschten
Betriebsfrequenzbereich fallen. Allgemein werden Testvorgänge für die Chips, z.B.
ein Testvorgang der Betriebsfrequenz von jedem Chip, auf einem Packungslevel
ausgeführt.
Ist eine gemessene Betriebsfrequenz von irgendeinem Chip nicht innerhalb
eines gewünschten
Betriebsfrequenzbereichs oder ist eine Betriebsfrequenz des hergestellten
Chips nicht innerhalb des gewünschten
Betriebsfrequenzbereichs, dann werden solche Chips ausgesondert.
Im Fall der vorliegenden Erfindung werden Testinformationen der
gemessenen Betriebsfrequenz im OTP-Block gespeichert. Liegt die
Betriebsfrequenz des hergestellten Chips nicht innerhalb des gewünschten
Frequenzbereichs, dann braucht ein solcher Chip nicht ausgesondert
werden, sondern kann basierend auf der oben beschriebenen Testinformation
einem anderen Betriebsfrequenzbereich zugeordnet werden. Dadurch
wird die Ausbeute bei der Chipherstellung verbessert.
-
Im
Fall des zweiten Ausführungsbeispiels des
erfindungsgemäßen Speichersystems
wird die Testinformation nach dem Setzen des POR-Lesemodus ausgelesen. Andererseits kann
der POR-Lesevorgang direkt nach der Aktivierung des POR-Lesefreigabesignals
ausgeführt
werden. Die Flashschnittstelle 142 gibt beispielsweise
in Reaktion auf die Aktivierung des POR-Lesefreigabesignals POR_READ mit
dem POR-Lesebefehl
eine Adresse an das Flashspeicherbauelement 120 aus, welche
einen Bereich bestimmt, in welchem die Testinformationen gespeichert
ist. Dann aktiviert das Flashspeicherbauelement 120 das
OTP-Freigabesignal
OTP_EN in Reaktion auf den POR-Lesebefehl. Das bedeutet, dass der
Zeilendecoder OTPRD aktiviert wird. Danach wird, wie oben beschrieben
ist, ein Lesevorgang ausgeführt,
um die Testinformationen aus dem OTP-Block OTPBLK auszulesen, und
die so ausgelesenen Testdaten werden im Register 142b der Flashschnittstelle 142 gespeichert.
-
Mit
Ausführungsmodifikationen
können Schutzdateninformationen
und Testinformationen aus dem OTP-Block sequentiell in einem OTP-Modus
bzw. einem POR-Lesemodus ausgelesen werden. Alternativ können die
Schutzdateninformation und die Testinformation im POR-Lesemodus
gleichzeitig oder individuell oder im OTP-Modus gleichzeitig oder
individuell ausgelesen werden.