DE102007036548A1 - Verfahren zum Programmieren eines Flashspeicherbauelements, Flashspeicherbauelement und Speichersystem - Google Patents

Verfahren zum Programmieren eines Flashspeicherbauelements, Flashspeicherbauelement und Speichersystem Download PDF

Info

Publication number
DE102007036548A1
DE102007036548A1 DE102007036548A DE102007036548A DE102007036548A1 DE 102007036548 A1 DE102007036548 A1 DE 102007036548A1 DE 102007036548 A DE102007036548 A DE 102007036548A DE 102007036548 A DE102007036548 A DE 102007036548A DE 102007036548 A1 DE102007036548 A1 DE 102007036548A1
Authority
DE
Germany
Prior art keywords
memory device
flash memory
data
flag information
register
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE102007036548A
Other languages
English (en)
Inventor
Se-Jin Ahn
Tae-Keun Jeon
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of DE102007036548A1 publication Critical patent/DE102007036548A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C16/00Erasable programmable read-only memories
    • G11C16/02Erasable programmable read-only memories electrically programmable
    • G11C16/06Auxiliary circuits, e.g. for writing into memory
    • G11C16/10Programming or data input circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Read Only Memory (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Ein Flashspeicherbauelement umfasst ein Speicherzellenfeld (110), welches in Zeilen und Spalten angeordnet ist, einen Zeilendecoderschaltkreis (120), der dazu konfiguriert ist, eine der Zeilen auszuwählen, einen Registerblock (150), der dazu konfiguriert ist, Daten zu speichern, die in Speicherzellen der ausgewählten Zeile zu programmieren sind, eine Backupparameterspeicherkomponente (180), die dazu konfiguriert ist, eine Flaginformation zu speichern, die einen An-/Aus-Zustand eines Reprogrammiervorgangs anzeigt, und eine Adresseninformation zu speichern, und einen Steuerblock (130), der dazu konfiguriert ist, während eines Programmiervorgangs den Registerblock und den Zeilendecoderschaltkreis zu steuern, wobei, wenn der Programmiervorgang als nicht erfolgreich bestimmt ist, der Steuerblock dazu konfiguriert ist, einen Reprogrammiervorgang gemäß der in der Backupparameterspeicherkomponente gespeicherten Flaginformation zu bestimmen, wobei, wenn die Flaginformation einen An-Zustand des Reprogrammiervorgangs anzeigt, der Steuerblock den Registerblock und den Zeilendecoderschaltkreis derart steuert, dass im Registerblock gespeicherte Daten ohne Steuerung durch eine externe Quelle im Speicherzellenfeld reprogrammiert werden.

Description

  • 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.

Claims (18)

  1. Verfahren zum Programmieren eines Flashspeicherbauelements (2500), das ein Speicherzellenfeld (110) umfasst, welches in Zeilen und Spalten angeordnet ist, umfassend: – Programmieren von Speicherzellen einer ausgewählten Zeile mit geladenen Daten, – Bestimmen, ob die Speicherzellen der ausgewählten Zeile erfolgreich programmiert sind, – wenn das Ergebnis als ein nicht erfolgreicher Programmiervorgang bestimmt wird, Bestimmen eines Reprogrammiervorgangs gemäß einer im Flashspeicherbauelement gespeicherten Flaginformation, die einen An-/Aus-Zustand des Reprogrammiervorgangs anzeigt, und – wenn die Flaginformation einen An-Zustand des Reprogrammiervorgangs anzeigt, Reprogrammieren der geladenen Daten in Speicherzellen einer anderen als der ausgewählten Zeile.
  2. Verfahren nach Anspruch 1, wobei die Speicherzellen der anderen Zeile durch eine Adresseninformation ausgewählt werden, die im Flashspeicherbauelement gespeichert wird.
  3. Verfahren nach Anspruch 2, wobei die Adresseninformation und die Flaginformation in einer Backupparameterspeicherkomponente des Flashspeicherbauelements gespeichert werden.
  4. Verfahren nach Anspruch 3, wobei die Adresseninformation und die Flaginformation aus dem Speicherzellenfeld während eines Einschaltvorgangs in die Backupparameterspeicherkomponente geladen werden.
  5. Verfahren nach Anspruch 3, wobei die Adresseninformation und die Flaginformation vor einem normalen Betrieb von einer externen Quelle in die Backupparameterspeicherkomponente geladen werden.
  6. Verfahren nach Anspruch 3, wobei die Adresseninformation und die Flaginformation während eines Einschaltvorgangs von der externen Quelle in die Backupparameterspeicherkomponente geladen werden.
  7. Verfahren nach einem der Ansprüche 1 bis 6, weiter umfassend: – Abschließen des Programmiervorgangs ohne Reprogrammiervorgang, wenn die Flaginformation einen An-Zustand des Reprogrammiervorgangs anzeigt.
  8. Flashspeicherbauelement, umfassend: – ein Speicherzellenfeld (110), welches in Zeilen und Spalten angeordnet ist, – einen Zeilendecoderschaltkreis (120), der dazu konfiguriert ist, eine der Zeilen auszuwählen, – einen Registerblock (150), der dazu konfiguriert ist, Daten zu speichern, die in Speicherzellen der ausgewählten Zeile zu programmieren sind, – eine Backupparameterspeicherkomponente (180), die dazu konfiguriert ist, eine Flaginformationen zu speichern, die einen An-/Aus-Zustand eines Reprogrammiervorgangs anzeigt, und eine Adresseninformation zu speichern, und – einen Steuerblock (130), der dazu konfiguriert ist, während eines Programmiervorgangs den Registerblock und den Zeilendecoderschaltkreis zu steuern, – wobei, wenn der Programmiervorgang als nicht erfolgreich bestimmt ist, der Steuerblock dazu konfiguriert ist, einen Reprogrammiervorgang gemäß der in der Backupparameterspeicherkomponente gespeicherten Flaginformation zu bestimmen, wobei, wenn die Flaginformation einen An-Zustand des Reprogrammiervorgangs anzeigt, der Steuerblock den Registerblock und den Zeilendecoderschaltkreis derart steuert, dass im Registerblock gespeicherte Daten ohne Steuerung durch eine externe Quelle im Speicherzellenfeld reprogrammiert werden.
  9. Flashspeicherbauelement nach Anspruch 8, wobei die Adresseninformation und die Flaginformation aus dem Speicherzellenfeld während eines Einschaltvorgangs in die Backupparameterspeicherkomponente geladen werden.
  10. Flashspeicherbauelement nach Anspruch 8, wobei die Adresseninformation und die Flaginformation vor einem normalen Betrieb von der externen Quelle in die Backupparameterspeicherkomponente geladen werden.
  11. Flashspeicherbauelement nach Anspruch 8, wobei die Adresseninformation und die Flaginformation während eines Einschaltvorgangs von der externen Quelle in die Backupparameterspeicherkomponente geladen werden.
  12. Flashspeicherbauelement nach einem der Ansprüche 8 bis 11, wobei, wenn die Flaginformation einen An-Zustand des Reprogrammiervorgangs anzeigt, der Steuerblock den Zeilendecoderschaltkreis mit der Adresseninformation in der Backupparameterspeicherkomponente setzt, um Speicherzellen einer anderen als der ausgewählten Zeile auszuwählen.
  13. Flashspeicherbauelement nach einem der Ansprüche 8 bis 12, wobei der Registerblock Seitenpuffer aufweist, die mit den Spalten korrespondieren.
  14. Flashspeicherbauelement nach Anspruch 13, wobei jeder Seitenpuffer ein erstes und ein zweites Register umfasst, die vom Steuerblock gesteuert sind, wobei das erste Register dazu konfiguriert ist, die zu programmierenden Daten als ursprüngliche Daten zu erhalten, und das zweite Register dazu konfiguriert ist, eine korrespondierende Bitleitung gemäß den zu programmierenden Daten zu treiben.
  15. Flashspeicherbauelement nach Anspruch 14, wobei der Steuerblock den Registerblock derart steuert, dass die ursprünglichen Daten des ersten Registers während des Reprogrammiervorgangs in das Speicherzellenfeld reprogrammiert werden.
  16. Flashspeicherbauelement nach einem der Ansprüche 8 bis 15, wobei der Steuerblock den Programmiervorgang ohne den Reprogrammiervorgang abschließt, wenn die Flaginformation einen An-Zustand des Reprogrammiervorgangs anzeigt.
  17. Speichersystem umfassend: – eine Speichersteuereinheit (2400) und – ein Flashspeicherbauelement (2500) nach einem der Ansprüche 8 bis 16, das in Abhängigkeit von der Speichersteuereinheit arbeitet.
  18. Speichersystem nach Anspruch 17, wobei das Speichersystem eine Speicherkarte umfasst.
DE102007036548A 2006-07-26 2007-07-26 Verfahren zum Programmieren eines Flashspeicherbauelements, Flashspeicherbauelement und Speichersystem Withdrawn DE102007036548A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2006-0070386 2006-07-26
KR1020060070386A KR100758300B1 (ko) 2006-07-26 2006-07-26 플래시 메모리 장치 및 그것의 프로그램 방법

Publications (1)

Publication Number Publication Date
DE102007036548A1 true DE102007036548A1 (de) 2008-02-21

Family

ID=38737644

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102007036548A Withdrawn DE102007036548A1 (de) 2006-07-26 2007-07-26 Verfahren zum Programmieren eines Flashspeicherbauelements, Flashspeicherbauelement und Speichersystem

Country Status (5)

Country Link
US (1) US20080025095A1 (de)
JP (1) JP2008034089A (de)
KR (1) KR100758300B1 (de)
CN (1) CN101145395A (de)
DE (1) DE102007036548A1 (de)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7835203B2 (en) * 2008-03-12 2010-11-16 Macronix International Co., Ltd Programming method and memory device using the same
KR101532754B1 (ko) * 2008-09-22 2015-07-02 삼성전자주식회사 비휘발성 메모리 장치의 프로그램 방법
US8456926B2 (en) * 2010-11-18 2013-06-04 Grandis, Inc. Memory write error correction circuit
JP2011129192A (ja) * 2009-12-16 2011-06-30 Samsung Electronics Co Ltd 半導体記憶装置
KR101847976B1 (ko) 2011-11-03 2018-04-12 에스케이하이닉스 주식회사 반도체 시스템
KR101970712B1 (ko) * 2012-08-23 2019-04-22 삼성전자주식회사 단말기의 데이터 이동장치 및 방법
WO2023033637A1 (en) 2021-09-03 2023-03-09 Latvijas Universitāte A device for non-contact induction of flow in electrically conductive liquids

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5561632A (en) * 1994-01-26 1996-10-01 Sony Corporation Nonvolatile semiconductor flash memory
US5749088A (en) * 1994-09-15 1998-05-05 Intel Corporation Memory card with erasure blocks and circuitry for selectively protecting the blocks from memory operations
KR0172366B1 (ko) * 1995-11-10 1999-03-30 김광호 불휘발성 반도체 메모리 장치의 독출 및 프로그램 방법과 그 회로
KR100305821B1 (ko) * 1997-12-31 2001-12-17 이계안 플래쉬메모리재프로그램방법
JPH11213691A (ja) * 1998-01-20 1999-08-06 Toshiba Corp 不揮発性半導体記憶装置
US6266202B1 (en) * 1998-06-05 2001-07-24 Seagate Technology Llc Closed loop write verification in a disc drive
KR100572302B1 (ko) * 1998-06-25 2006-07-12 삼성전자주식회사 플래시 메모리 장치와 그의 프로그램 방법
US6553510B1 (en) * 1999-09-02 2003-04-22 Micron Technology, Inc. Memory device including redundancy routine for correcting random errors
US7219271B2 (en) * 2001-12-14 2007-05-15 Sandisk 3D Llc Memory device and method for redundancy/self-repair
KR100536613B1 (ko) * 2004-04-09 2005-12-14 삼성전자주식회사 프로그램 시간을 단축할 수 있는 노어형 플래시 메모리장치 및 그것의 프로그램 방법
EP1607984B1 (de) * 2004-06-14 2007-08-15 STMicroelectronics S.r.l. Verfahren zum Verwalten von defekten Speicherblöcken in einem nicht-flüchtigen Speicher und nicht-flüchtiger Speicher zur Ausführung des Verfahrens
KR100632947B1 (ko) * 2004-07-20 2006-10-12 삼성전자주식회사 불 휘발성 메모리 장치 및 그것의 프로그램 방법
JP4261461B2 (ja) * 2004-11-05 2009-04-30 株式会社東芝 半導体集積回路装置、及びそれを用いた不揮発性メモリシステム
KR100672984B1 (ko) * 2004-12-14 2007-01-24 삼성전자주식회사 프로그램 시간을 줄일 수 있는 플래시 메모리 장치

Also Published As

Publication number Publication date
JP2008034089A (ja) 2008-02-14
CN101145395A (zh) 2008-03-19
KR100758300B1 (ko) 2007-09-12
US20080025095A1 (en) 2008-01-31

Similar Documents

Publication Publication Date Title
DE102008003944B4 (de) Speichersystem und Programmierverfahren für ein Speichersystem
DE102005040226B4 (de) Nichtflüchtiges Speicherbauelement und Testverfahren
DE60030765T2 (de) Mobiles kommunikationsgerät mit integriertem eingebettetem flash und sram speicher
DE102005035084B4 (de) Speicherbauelemente und Programmierverfahren
DE102006034495B4 (de) Verfahren zum Durchführen einer Programmieroperation eines nicht-flüchtigen Speicherbauelements und nicht-flüchtiges Speicherbauelement
DE102011055714B4 (de) Verfahren zum Programmieren einer nicht-flüchtigen Speichervorrichtung
DE102005033165B4 (de) Nichtflüchtiges Speicherbauelement, Programmier- und Schreibverfahren
DE102007039844A1 (de) Flashspeicherelement und Speichersystem
DE4446998C2 (de) Halbleiterspeichereinrichtung
DE102018123194A1 (de) Nichtflüchtige Speichervorrichtungen, Speichersysteme und Verfahren zum Betreiben nichtflüchtiger Speichervorrichtungen
DE19615956C2 (de) Ein nicht-flüchtiger, an einen DRAM-Bus anschließbarer Halbleiterspeicher und Verfahren zu dessen Betrieb
DE112008001151B4 (de) Mehrbitprogrammiervorrichtung und Verfahren zum Mehrbitprogrammieren
DE102007036548A1 (de) Verfahren zum Programmieren eines Flashspeicherbauelements, Flashspeicherbauelement und Speichersystem
DE102005063166B4 (de) Nicht-flüchtiges Speicherelement und Verfahren zur Programmierüberprüfung in einem nicht-flüchtigen Speicherelement
DE102006016247A1 (de) Speicher, Datenverarbeitungssystem, Steuereinheit und Steuerverfahren
DE102008009235A1 (de) Speichersystem
DE102013108491A1 (de) Nichtflüchtige Speichervorrichtung und Betriebsverfahren mit variablen Speicherzellenzustandsdefinitionen
DE102012112354A1 (de) Speichervorrichtung und nichtflüchtige Speichervorrichtung sowie Betriebsverfahren davon
DE102011087102A1 (de) Verfahren zum Lesen von Speicherzellen, nichtflüchtiges Speicherelement, elektronisches Gerät, Speicherkarte und Datenspeichervorrichtung
DE102013104196A1 (de) System und Verfahren mit dreidimensionaler nichtflüchtiger Speichervorrichtung und Direktzugriffsspeicher
DE102009035340A1 (de) Verfahren zum Programmieren eines nichtflüchtigen Speicherelements, Halbleiterbauelement, Karte und System
DE102010037064A1 (de) Nichtflüchtige Speichervorrichtung und -system sowie Verfahren des Programmierens einer nichtflüchtigen Speichervorrichtung
DE102005052213A1 (de) Programmierverfahren und nichtflüchtiges Speicherbauelement
CN103971724A (zh) 存储器、存储控制器、存储系统、及其操作方法
DE102020211544A1 (de) Steuerung, betriebsverfahren der steuerung und speichergerät mit derselben

Legal Events

Date Code Title Description
8139 Disposal/non-payment of the annual fee
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20110201