-
Die
vorliegende Erfindung bezieht sich auf ein Verfahren zum Programmieren
eines Flashspeicherbauelements, auf ein Flachspeicherbauelement
und auf ein Speichersystem.
-
Es
besteht ein steigender Bedarf an Halbleiterspeicherbauelementen,
die elektronisch programmiert und gelöscht werden können, ohne
dass die gespeicherten Daten aufgefrischt werden müssen. Der Trend
in der Industrie geht dahin, das Speichervolumen und den Integrationsgrad
von Halbleiterspeicherbauelementen zu erhöhen. Ein Flashspeicherbauelement
ist ein beispielhaftes nichtflüchtiges
Halbleiterspeicherbauelement, das eine großes Volumen und eine hohe Integrationsdichte
ohne Wiederauffrischung der gespeicherten Daten zur Verfügung stellt.
Da es Daten ohne Energie erhalten kann, wird das Flashspeicherbauelement
in elektronischen Geräten,
die anfällig
für Energieunterbrechungen sind,
wie in tragbaren Rechnern, PMP, MP3-Abspielgeräten, mobilen Telefonen usw.,
häufig
verwendet.
-
1 ist
ein Blockdiagramm eines herkömmlichen
Speichersystems mit einem Flashspeicherbauelement. Ein herkömmliches
Speichersystem umfasst ein Flashspeicherbauelement 100 und
eine Speichersteuereinheit 200. Das Flashspeicherbauelement 100 kann
Lese-, Programmier- und
Löschvorgänge unter
der Steuerung der Speichersteuereinheit 200 ausführen. Wenn
beispielsweise ein Programmiervorgang von einer externen Quelle,
z.B. einem Host, angefordert wird, können von der externen Quelle
zu programmierende Daten, z.B. Daten im Umfang einer Seite, in einen
Pufferspeicher 201 der Speichersteuereinheit 200 übertragen
werden. Wenn die Daten in den Pufferspeicher 201 übertragen
sind, kann die Speichersteuereinheit 200 einen Befehl,
eine Adresse und die Daten gemäß einem
vorgegebenen Timing, das in dem nachfolgenden Abschnitt unter Bezugnahme
auf 2 beschrieben wird, zum Flashspeicherbauelement 100 übertragen.
-
Während eines
ersten Intervalls P1 kann die Speichersteuereinheit 200 einen
Befehl und eine Adresse an das Flashspeicherbauelement 100 übertragen.
Während
eines zweiten Intervalls P2 kann die Speichersteuereinheit 200 die
im Pufferspeicher 201 gespeicherten Daten, z.B. Seitendaten,
zum Flashspeicherbauelement 100 übertragen, die vorhergehend
während
einer Datenladezeit abgerufen wurden. Wenn die im Pufferspeicher 201 gespeicherten Seitendaten
während
eines dritten Intervalls P3 vollständig zum Flashspeicherbauelement 100 übertragen
sind, kann das Flashspeicherbauelement 100 einen Programmiervorgang
entsprechend einem Industriestandard ausführen. Wenn der Programmiervorgang
in einem vierten Intervall P4 abgeschlossen ist, kann die Speichersteuereinheit 200 ein
Programmierergebnis des Flashspeicherbauelements 100 bestätigen.
-
Für den Fall,
dass das Programmierergebnis einen nicht erfolgreichen Programmiervorgang
anzeigt, kann die Speichersteuereinheit 200 den Befehl,
die Adresse und die Daten nochmals an das Flashspeicherbau element 100 für einen
Reprogrammiervorgang bzw. einen Umprogrammiervorgang übertragen,
wobei in diesem Fall die neu gesendete Adresse eine Seitenadresse
eines anderen Speicherplatzes sein kann. Dies liegt daran, dass
Speicherzellen des Flashspeicherbauelements 100 gemäß dem Standard
nicht überschrieben
werden. Mit anderen Worten, Speicherzellen können gelöscht und programmiert werden,
um neue zu programmierende Daten in den Speicherzellen zu speichern.
Aus diesem Grund können
falsch programmierte Daten über
eine Blockaustauschfunktion in einen anderen Speicherplatz oder
Speicherblock programmiert werden, wie es aus dem Stand der Technik
bekannt ist. Entsprechend kann in dem Fall, dass ein nicht erfolgreicher
Programmiervorgang auftritt, die Umprogrammierung der Daten die
Gesamtgeschwindigkeit des Speichersystems oder des Flashspeicherbauelements
absenken.
-
Um
die Programmiergeschwindigkeit zu verbessern, können als Nächstes zu programmierende Seitendaten
während
der Ausführung
eines Programmiervorgangs vom externen Host zum Pufferspeicher 201 gesendet
werden. Entsprechend dieser Datenübertragungsstruktur kann ein
zusätzlicher Pufferspeicher 201 zum
Speichern von Daten, die zum Flashspeicherbauelement 100 übertragen
werden, in der Speichersteuereinheit 200 enthalten sein, um
einen Reprogrammiervorgang zu unterstützen, wenn ein nicht erfolgreicher
Programmiervorgang auftritt. Dies erhöht häufig die Kosten der Speichersteuereinheit 200.
-
Der
Erfindung liegt das technische Problem zugrunde, ein Verfahren zum
Programmieren eines Flashspeicherbauelements, ein Flashspeicherbauelement
und ein Speichersystem bereitzustellen, welche eine Umprogrammierung
ohne externe Steuerung, ohne Daten neu zu laden und ohne Absenken der
Betriebsgeschwindigkeit automatisch ausführen, wenn eine nicht erfolgreiche
Programmierung auftritt.
-
Die
Erfindung löst
dieses Problem durch Bereitstellung eines Verfahrens zum Programmieren
eines Flashspeicherbauelements mit den Merkmalen des Patentanspruchs
1, eines Flashspeicherbauelements mit den Merkmalen des Patentanspruchs
8, und eines Speichersystems mit den Merkmalen des Patentanspruchs
17.
-
Vorteilhafte
Weiterbildungen der Erfindung sind in den Unteransprüchen angegeben,
deren Wortlaut hiermit durch Bezugnahme in die Beschreibung aufgenommen
wird, um unnötige
Textwiederholungen zu vermeiden.
-
Eine
beispielhafte Ausführungsform
der vorliegenden Erfindung ist ein Verfahren zum Programmieren eines
Flashspeicherbauelements, das ein Speicherzellenfeld aufweist, das
in Zeilen und Spalten angeordnet ist, wobei das Verfahren eine Programmierung
von Speicherzellen einer ausgewählten
Zeile mit geladenen Daten und eine Bestimmung umfasst, ob die Speicherzellen
der ausgewählten Zeile
erfolgreich programmiert sind. Wenn das Bestimmungsergebnis ein
nicht erfolgreicher Programmiervorgang ist, wird ein Reprogrammiervorgang entsprechend
einer im Flashspeicherbauelement gespeicherten Flaginformation ausgewählt, die
einen An-/Aus-Zustand des Reprogrammiervorgangs bzw. Umprogrammiervorgangs
anzeigt. Wenn die Flaginformation einen An-Zustand des Reprogrammiervorgangs
anzeigt, werden die geladenen Daten in Speicherzellen einer Zeile
reprogrammiert bzw. umprogrammiert, die sich von der ausgewählten Zeile
unterscheidet. Die logischen Zustände der Reprogrammierinformation
sind ohne Modifikation der Ausführungsform
umkehrbar, wenn die bereitgestellte Interpretation konsistent ist.
-
Vorteilhafte,
nachfolgend im Detail beschriebene Ausführungsformen der Erfindung
sowie die zu deren besserem Verständnis oben erläuterten,
herkömmlichen
Ausführungsbeispiele
sind in den Zeichnungen dargestellt. Es zeigen:
-
1 ein
Blockdiagramm eines herkömmlichen
Speichersystems mit einem Flashspeicherbauelement,
-
2 ein
Diagramm eines Programmierverfahrens für ein in 1 dargestelltes
Flashspeicherbauelement,
-
3 ein
Blockdiagramm eines erfindungsgemäßen Flashspeicherbauelements,
-
4 ein
Blockdiagramm eines Teils eines in 3 dargestellten
Registerblocks,
-
5 ein
Flussdiagramm zur Beschreibung eines Programmiervorgangs eines Flashspeicherbauelements
gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung,
-
6 ein
Diagramm eines Programmierverfahrens für ein in 3 dargestelltes
Flashspeicherbauelement und
-
7 ein
Blockdiagramm eines Systems mit einem erfindungsgemäßen Flashspeicherbauelement.
-
Ein
erfindungsgemäßes Flashspeicherbauelement
kann ausgebildet sein, um eine automatische Datenbackupfunktion
bereitzustellen, wobei die Datenbackupfunktion automatisch ohne
Neuladen der Daten und externe Steuerung ausgeführt wird, wenn eine Programmierung
nicht erfolgreich ist. Mit der automatischen Datenbackupfunktion
der vorliegenden Erfindung ist es möglich, Daten ohne Absenken
der effektiven Betriebsgeschwindigkeit eines Speichersystems, welches
das Flashspeicherbauelement umfasst, umzuprogrammieren.
-
3 ist
ein Blockdiagramm eines erfindungsgemäßen Flashspeicherbauelements.
Das Flashspeicherbauelement kann ein NAND-Flashspeicherbauelement oder ein anderes
Speicherbauelement, wie ein MROM, PROM, FRAM, NOR-Flashspeicherbauelement
usw., sein.
-
Bezugnehmend
auf 3 umfasst ein erfindungsgemäßes Flashspeicherbauelement
ein Speicherzellenfeld 110 zum Speichern von Dateninformation.
Das Speicherzellenfeld 110 kann Speicherzellen umfassen,
die an Kreuzungen von Zeilen oder Wortleitungen und Spalten oder
Bitleitungen angeordnet sind. Jede der Speicherzellen kann N-Bit-Daten
speichern, wobei N eine ganze Zahl größer gleich 1 ist. Ein Zeilendecoderschaltkreis 120 kann
durch einen Steuerblock 130 gesteuert werden und wählt mindestens
eine der Zeilen des Speicherzellenfelds 110 aus. Der Zeilendecoderschaltkreis
kann die ausgewählte Zeile
oder Wortleitung mit einer Wortleitungsspannung treiben, die durch
einen Hochspannungsgeneratorschaltkreis 140 erzeugt wird.
Ein Registerblock 150 kann in Reaktion auf die Steuerung
des Steuerblocks 130 arbeiten. Der Registerblock 150 kann dazu
konfiguriert sein, Daten zu speichern, die während eines Programmiervorgangs
in das Speicherzellenfeld 110 zu programmieren sind, und
Daten während
eines Lesevorgangs aus dem Speicherzellenfeld 110 zu lesen.
-
Der
Registerblock 150 kann eine Mehrzahl von Seitenpuffern
umfassen, die jeweils dazu konfiguriert sein können, mit einer Spalte oder
Bitleitung oder mit einer von zwei Spalten oder Bitleitungen verbunden
zu werden. Jeder der Seitenpuffer kann als Schreibtreiber oder als
Abtastverstärker
entsprechend eines Betriebsmodus betrieben werden. Jeder der Seitenpuffer
kann beispielsweise während
eines Programmiervorgangs als Schreibtreiber und während eines
Lesevorgangs als Abtastverstärker
arbeiten. Jeder der Seitenpuffer kann mindestens zwei Register REG1
und REG2 umfassen, wie in 4 dargestellt
ist. Eines der beiden Register REG1 und REG2 kann dazu verwendet
werden, geladene Daten bis zum Abschluss eines Programmiervorgangs zu
erhalten, und das andere kann dazu verwendet werden, eine Speicherzelle
entsprechend den gespeicherten Daten zu programmieren, oder um eine korrespondierende
Bitleitung entsprechend den geladenen Daten zu treiben. Es wird
beispielsweise angenommen, dass während eines Datenladeintervalls empfangene
Daten im Register REG2 gespeichert sind. Entsprechend dieser Annahme
werden die in das Register REG2 geladenen Daten vor der Ausführung eines
Programmiervorgangs gemäß der Steuerung
des Steuerblocks an das Register REG1 gesendet. Eine Speicherzelle
kann entsprechend den zum Register REG1 übertragenen Daten in herkömmlicher
Weise programmiert werden, z.B. durch eine F-N-Tunnelung. Während der Ausführung eines
Programmiervorgangs unter Verwendung des Registers REG1 können die
im Register REG2 gespeicherten Daten ohne Veränderung unter der Steuerung
des Steuerblocks 130 erhalten werden.
-
Alternativ
können
während
eines Datenladeintervalls die Daten von der externen Quelle gleichzeitig
dem Register REG1 und dem REG2 zur Verfügung gestellt werden. In diesem
Fall können
während der
Ausführung
eines Programmiervorgangs unter Verwendung des Registers REG1 die
im Register REG2 gespeicherten Daten ohne Änderung gesteuert durch den
Steuerblock 130 beibehalten werden. Die im Register REG2
gespeicherten Daten können während eines
Daten-Backup-Vorgangs,
der entsprechend einem Programmierergebnis ausgeführt wird,
verwendet werden.
-
Bezugnehmend
auf 3, wird ein Spaltendecoderschaltkreis 160 durch
den Steuerblock 130 gesteuert und wählt Spalten des Speicherzellenfelds 110 oder
Seitenpuffer des Registerblocks 150 in einer vorgegebenen
Einheit in Reaktion auf eine Spaltenadresse aus. Ein Eingabe-/Ausgabepufferblock 170 kann
während
eines Datenladeintervalls eines Programmiervorgangs Daten, die über Eingabe-/Ausgabepins
I/Oi des Registerblocks 150 eingegeben werden, über den
Spaltendecoderschaltkreis 160 übertragen. Der Eingabe-/Ausgabepufferblock 170 kann
während
eines Datenausgabeintervalls eines Lesevorgangs Daten, die vom Registerblock 150 über den
Spaltendecoderschaltkreis 160 gesendet werden, nach extern
ausgeben. Insbesondere können
während
eines Lesevorgangs, wie einem Verifizierungslesevorgang, Daten im
Registerblock 150 über
den Spaltendecoderschaltkreis 160 zum Steuerblock 130 übertragen
werden. Der Steuerblock 130 kann verifizieren, ob die empfangenen
Daten erfolgreich programmierte Daten oder nicht erfolgreich programmierte
Daten sind. Wenn die empfangenen Daten erfolgreich programmierte
Daten sind, kann der Steuerblock 130 einen Verifizierungsvorgang
in Bezug auf nachfolgende Daten ausführen. Dieser Verifizierungsvorgang
kann wiederholt werden, bis die Speicherzellen der ausgewählten Zeile/Seite
alle ausgewählt
sind. Wenn die erfolgreich programmierten Daten empfangen werden,
bis die Speicherzellen der ausgewählten Zeile/Seite alle ausgewählt sind, kann
der Steuerblock 130 in einem Standardindustriestatusregister
einen Statuswert speichern, der anzeigt, dass die Programmierung
erfolgreich ist. Andererseits kann, wenn die empfangenen Daten nicht
erfolgreich programmierte Daten sind, der Steuerblock 130 einen
Programmiervorgang abschließen
und einen Statuswert in einem Statusregister speichern, der anzeigt,
dass die Programmierung nicht erfolgreich ist. Ein Statuswert in
einem Statusregister kann der externen Quelle über einen aus dem Stand der Technik
bekannten Statuslesevorgang zur Verfügung gestellt werden.
-
Insbesondere
wenn ein Programmiervorgang als nicht erfolgreich abgeschlossen
wird, kann der Steuerblock 130 entsprechend einer Backup-Parameterinformation,
die in einer Backupparameterspeicherkomponente 180 gespeichert
ist, einen Reprogrammiervorgang bestimmen. Die Backup-Parameterinformation
in der Backupparameterspeicherkomponente 180 kann eine
Flaginformation, die einen Reprogrammiervorgang anzeigt, eine Zeilen-/Seitenadresseninformation
usw. umfassen. Wenn die Flaginformation einen An-Zustand des Reprogrammiervorgangs
anzeigt, kann der Reprogrammiervorgang ohne externe Steuerung und
ohne Neuladen der Programmierdaten gesteuert durch den Steuerblock 130 erfolgen.
Wenn die Flaginformation einen Aus-Zustand der Umprogrammierfunktion
anzeigt, kann der Steuerblock 130 einen Programmiervorgang
abschließen
und einen Statuswert in der oben beschriebenen Weise speichern.
Die Blockadresseninformation ist eine Adresse zur Bestimmung eines
freien Speicherblocks und die Zeilen-/Seitenadresseninformation ist eine
Adresse zur Bestimmung einer Seite, in der Daten einer nicht erfolgreich
programmierten Seite gespeichert sind. Wenn ein Reprogrammiervorgang
ausgeführt
wird, kann die Block- und
Seitenadresseninformation gesteuert durch den Steuerblock 130 zum
Zeilendecoderschaltkreis 120 übertragen werden.
-
In Übereinstimmung
mit einem erfindungsgemäßen Flashspeicherbauelement
kann die Backup-Parameterinformation auf verschiedene Arten in der
Backupparameterspeicherkomponente 180 gespeichert werden.
Die Backup-Parameterinformation kann beispielsweise in einem beliebigen
Bereich des Speicherzellenfelds 110 gespeichert werden.
Daher kann die zu speichernde Backup-Parameterinformation während eines
Einschaltvorgangs gesteuert durch den Steuerblock 130 zur
Backupparameterspeicherkomponente 180 übertragen werden. Alternativ
kann die Backup-Parameterinformation vor Ausführung eines normalen Betriebs
gesteuert durch die Speichersteuereinheit (200 gemäß 1)
in der Backupparameterspeicherkomponente 180 gespeichert
werden. Alternativ kann die Backup-Parameterinformation auf Anforderung
eines Benutzers in der Backupparameterspeicherkomponente 180 gespeichert
werden.
-
Bei
dieser Ausführungsform
können
ein Flashspeicherbauelement und eine Speichersteuereinheit ein Speichersystem
umfassen. Das Spei chersystem kann beispielsweise eine Speicherkarte
umfassen. Die vorliegende beispielhafte Ausführungsform ist nicht auf Speichersysteme
begrenzt, die eine Speicherkarte umfassen.
-
Wie
aus der obigen Beschreibung hervorgeht, führt eine erfindungsgemäße Ausführungsform des
Flashspeicherbauelements ohne externe Steuerung und Neuladung der
Programmierdaten einen Reprogrammiervorgang bzw. Umprogrammiervorgang
in Bezug auf eine fehlerhaft programmierte Seite aus, wenn ein Programmiervorgang
als fehlerhaft bestimmt wird. Entsprechend arbeitet das Flashspeicherbauelement
ohne Absenken der Betriebsleistungsfähigkeit des Speichersystems,
welches das Flashspeicherbauelement umfasst, zuverlässig.
-
5 zeigt
ein Flussdiagramm zur Beschreibung eines Programmiervorgangs eines
Flashspeicherbauelements gemäß einer
beispielhaften Ausführungsform
der vorliegenden Erfindung.
-
Wenn
ein Programmiervorgang von der externen Quelle, z.B. einem Host,
erforderlich ist, können
zu programmierende Daten in einem Pufferspeicher (201 gemäß 1)
einer Speichersteuereinheit (200 gemäß 1) gespeichert
werden. Wenn die zu programmierenden Daten im Pufferspeicher 201 gespeichert
sind, kann die Speichersteuereinheit 200 einen Befehl,
eine Adresse und die Daten gemäß einem
vorgegebenen Timing zum Flashspeicherbauelement 100 übertragen.
Anschließend
beginnt die Speichersteuereinheit 200 den Betrieb des Flashspeicherbauelements
nicht, bis eine Flaginformation, z.B. ein Signal R/nB, empfangen
wird, die einen Abschluss des Programmiervorgangs des Flashspeicherbauelements
anzeigt.
-
Im
Schritt S1000 können
ein Befehl und eine Adresse entsprechend einem vorgegebenen Timing von
der Speichersteuereinheit 200 an das Flashspeicherbauelement übertragen
werden. Der Befehl kann über
ei nen Eingabe-/Ausgabepufferblock 170 an den Steuerblock 130 übertragen
werden und die Adresse kann über
den Eingabe-/Ausgabepufferblock 170 zu
den Zeilen- und Spaltendecoderschaltkreisen 120 und 160 gesendet
werden. Im nächsten Schritt
S1100 können
im Pufferspeicher 201 gespeicherte Daten über den
Eingabe-/Ausgabepufferblock 170 und
den Spaltendecoderschaltkreis 160 im Registerblock 150 gespeichert
werden. Wie oben ausgeführt
ist, können
im Register REG2 eines jeden Seitenpuffers geladene Daten aufrechterhalten
werden. Während
eines Programmiervorgangs können im
Register REG2 gespeicherte Daten unter der Steuerung des Steuerblocks 130 ins
Register REG1 übertragen
werden. Wenn die zu programmierenden Daten alle an den Registerblock 150 gesendet
sind, kann der Steuerblock 130 eine Flaginformation eines Busy-Zustands
an die Speichersteuereinheit 200 ausgeben.
-
Anschließend können im
Schritt S1200 unter der Steuerung des Steuerblocks 130 die
in den Registerblock 150 geladenen Daten in Speicherzellen einer
ausgewählten
Seite programmiert werden. Wie oben ausgeführt ist, umfasst ein Programmiervorgang
ein Programmierausführungsintervall
und ein Verifizierungsintervall, die eine Programmierschleife bilden.
Die Speicherzellen einer ausgewählten
Seite werden während
des Programmierausführungsintervalls
programmiert und während
des Verifizierungsintervalls wird verifiziert, ob die Speicherzellen
der ausgewählten
Seite erfolgreich programmiert sind. Während des Verifizierungsintervalls
können
Daten über die
Register REG1 im Registerblock 150 aus den Speicherzellen
der ausgewählten
Seite gelesen werden. Hierbei können
in den Registern REG2 des Registerblocks 150 gespeicherte
Daten ohne Veränderung
aufrechterhalten werden. Die Lesedaten können über den Spaltendecoderschaltkreis 160 zum Steuerblock 130 übertragen
werden und der Steuerblock 130 kann verifizieren, ob die
eingegebenen Daten solche Daten sind, welche fehlerfrei programmiert
sind. Wenn bis zur Auswahl von allen Seitenpuffern im Registerblock 150 be stimmt
wird, dass die eingegebenen Daten fehlerfrei programmierte Daten sind,
kann der Steuerblock 130 einen Statuswert einer fehlerfreien
Programmierung im Statusregister speichern und den Programmiervorgang
abschließen
(S1400).
-
Alternativ
kann der Steuerblock 130 einen Programmiervorgang innerhalb
einer vorgegebenen Programmierschleifennummer wiederholen, wenn die
eingegebenen Daten als nicht fehlerfrei programmiert bestimmt werden.
Wenn der Programmiervorgang nach der vorgegebenen Programmierschleifennummer
als nicht erfolgreicher Programmiervorgang bestimmt wird, kann der
Steuerblock 130 überprüfen, ob
ein Reprogrammiervorgang basierend auf der Backup-Parameterinformation
in der Backupparameterspeicherkomponente 180 ausgeführt wird (S1400).
Wenn die Flaginformation der Backup-Parameterinformation einen Aus-Zustand des Reprogrammiervorgangs
anzeigt, kann der Steuerblock 130 im Schritt S1500 einen
Statuswert des nicht erfolgreichen Programmiervorgangs im Statusregister speichern
und den Programmiervorgang abschließen.
-
Wenn
die Flaginformation einen An-Zustand des Reprogrammiervorgangs anzeigt,
sorgt der Steuerblock 130 dafür, dass die Block- und Seitenadresseninformation
der Backupparameterspeicherkomponente 180 im Zeilendecoderschaltkreis 120 gesetzt
wird. Anschließend
fährt das
Verfahren mit Schritt S1200 fort. Nach dem Neusetzen des Zeilendecoderschaltkreises 120 mit
der Block- und Seitenadresseninformation kann ein Programmiervorgang nochmals
auf die gleiche, oben beschriebene Weise ausgeführt werden. Der Reprogrammiervorgang kann
unter Verwendung der in den Registern REG2 gespeicherten Daten ohne
externe Steuerung und Neuladung der Programmierdaten automatisch
ausgeführt
werden. Die in den Registern REG1 gespeicherten Daten unterscheiden
sich von den ursprünglichen
Daten, wenn ein Programmiervorgang abgeschlossen wird. Aus diesem
Grund kann ein Reprogram miervorgang unter Verwendung der in den
Registern REG2 gespeicherten ursprünglichen Daten ausgeführt werden.
Der Reprogrammiervorgang ist im Wesentlichen mit dem oben beschriebenen
Programmiervorgang identisch. Wenn der Reprogrammiervorgang abgeschlossen
ist, kann der Steuerblock 130 im Schritt S1500 das Statusregister
mit einem Statuswert einer fehlerfreien Programmierung aktualisieren
und den Programmiervorgang abschließen.
-
Wenn
ein in 6 dargestellter Programmiervorgang erforderlich
ist, ist ein erfindungsgemäßes Flashspeicherbauelement
dazu konfiguriert, einen Befehl und eine Adresse zu empfangen (P10),
zu programmierende Daten zu empfangen (P20), einen Programmiervorgang
auszuführen
(P30), einen Zeilendecoderschaltkreis mit der Adresseninformation für einen
Reprogrammiervorgang zu setzen, wenn ein Programmiervorgang fehlerhaft
ist (P40), einen Reprogrammiervorgang auszuführen (P50) und einen Statuslesevorgang
auszuführen
(P60). Die Intervalle P40 und P50 können übersprungen werden, wenn die
in der Backupparameterspeicherkomponente 180 gespeicherte
Flaginformation einen Aus-Zustand
des Reprogrammiervorgangs anzeigt.
-
Wenn
ein Programmiervorgang als nicht erfolgreich bestimmt wird, kann
ein erfindungsgemäßes Flashspeicherbauelement
einen Reprogrammiervorgang ohne externe Steuerung und Neuladen von
Programmierdaten ausführen.
Das bedeutet, dass die Zuverlässigkeit
des Flashspeicherbauelements ohne Beeinträchtigung der Leistungsfähigkeit des
Speichersystems, welches das Flashspeicherbauelement umfasst, verbessert
werden kann. Zudem sind, da ein Neuladevorgang zur Ausführung eines
Reprogrammiervorgangs nicht erforderlich ist, keine zusätzlichen
Pufferspeicher in der Speichersteuereinheit erforderlich, um Daten
für den
Reprogrammiervorgang zu speichern. Das bedeutet, dass ein Reprogrammiervorgang
ohne höhere
Kosten für die
Speichersteuereinheit ausgeführt
werden kann.
-
Flashspeicherbauelemente
gehören
zu Arten von nichtflüchtigen
Speichern, die in der Lage sind, gespeicherte Daten auch bei einer
nicht vorhandenen Energieversorgung zu erhalten. Mit der zunehmenden
Popularität
von mobilen Geräten,
wie zellularen Telefonen, persönlichen
digitalen Assistenten (PDAs), digitalen Kameras, tragbaren Spielekonsolen
und MP3s, werden die Flashspeicherbauelemente häufig als Codespeicher sowie
als Datenspeicher eingesetzt. Die Flashspeicherbauelemente können auch
in Heimanwendungen, wie hochauflösenden
TVs, DVDs (Digital Versatile Discs), Routern und Global-Positioning-Systemen
(GPS) verwendet werden. 7 ist ein schematisches Blockdiagramm
eines Rechnersystems mit einem erfindungsgemäßen Flashspeicherbauelement.
Das Rechnersystem umfasst gemäß dem vorliegenden
Ausführungsbeispiel eine
Verarbeitungseinheit 2100, wie einen Mikroprozessor oder
eine zentrale Verarbeitungseinheit, eine Benutzerschnittstelle 2200,
ein Modem 2300, wie einen Basisbandchipsatz, eine Speichersteuereinheit 2400 und
das Flashspeicherbauelement 2500. Das Flashspeicherbauelement 2500 kann
im Wesentlichen wie das in 3 dargestellte
Flashspeicherbauelement konfiguriert sein. N-Bit-Daten, wobei N eine positive Intergerzahl
ist, die von der Verarbeitungseinheit 2100 verarbeitet
werden, werden über die
Speichersteuereinheit 2400 im Flashspeicherbauelement 2500 gespeichert.
Wenn das in 7 dargestellte Rechnersystem
ein mobiles Gerät
ist, kann es weiter eine Batterie 2600 zur Energieversorgung
umfassen. Zudem kann das Rechnersystem mit einem Anwendungschipsatz,
einem Kameraabbildungsprozessor, z.B. einem CMOS-Abbildungssensor,
CIS, einem mobilen DRAM usw., ausgerüstet sein.