DE102004036888B4 - Flashspeichersystem und zugehöriges Datenschreibverfahren - Google Patents
Flashspeichersystem und zugehöriges Datenschreibverfahren Download PDFInfo
- Publication number
- DE102004036888B4 DE102004036888B4 DE102004036888A DE102004036888A DE102004036888B4 DE 102004036888 B4 DE102004036888 B4 DE 102004036888B4 DE 102004036888 A DE102004036888 A DE 102004036888A DE 102004036888 A DE102004036888 A DE 102004036888A DE 102004036888 B4 DE102004036888 B4 DE 102004036888B4
- Authority
- DE
- Germany
- Prior art keywords
- data
- flash memory
- page buffer
- memory system
- cell array
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
- G11C7/1087—Data input latches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1032—Simple parity
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C16/00—Erasable programmable read-only memories
- G11C16/02—Erasable programmable read-only memories electrically programmable
- G11C16/06—Auxiliary circuits, e.g. for writing into memory
- G11C16/10—Programming or data input circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1078—Data input circuits, e.g. write amplifiers, data input buffers, data input registers, data input level conversion circuits
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C2207/00—Indexing scheme relating to arrangements for writing information into, or reading information out from, a digital store
- G11C2207/22—Control and timing of internal memory operations
- G11C2207/2245—Memory devices with an internal cache buffer
Abstract
Flashspeichersystem
mit
– einem Flashspeicherbaustein (120), der ein Speicherzellenfeld (122) und einen Seitenpuffer (124) umfasst, der Daten in das Speicherzellenfeld (122) schreibt und/oder aus diesem liest,
gekennzeichnet durch
– eine Steuerschaltung (110), die Daten in wenigstens zwei Datengruppen aufteilt, die jeweils eine kleinere Größe als die Größe des Seitenpuffers (124) haben, und jede Datengruppe seriell mit einem Paritätscode für die Datengruppe zum oder vom Flashspeicherbaustein (120) überträgt.
– einem Flashspeicherbaustein (120), der ein Speicherzellenfeld (122) und einen Seitenpuffer (124) umfasst, der Daten in das Speicherzellenfeld (122) schreibt und/oder aus diesem liest,
gekennzeichnet durch
– eine Steuerschaltung (110), die Daten in wenigstens zwei Datengruppen aufteilt, die jeweils eine kleinere Größe als die Größe des Seitenpuffers (124) haben, und jede Datengruppe seriell mit einem Paritätscode für die Datengruppe zum oder vom Flashspeicherbaustein (120) überträgt.
Description
- Die Erfindung betrifft ein Flashspeichersystem mit einem Speicherzellenfeld und einem damit gekoppelten Seitenpuffer und ein Verfahren zum Schreiben von Daten in ein solches Flashspeichersystem.
- Allgemein ist ein Flashspeicherbaustein ein Typ eines nichtflüchtigen, elektrisch löschbaren und programmierbaren Nur-Lese-Speichers (EEPROM), der nicht aufgefrischt werden muss. Der Flashspeicherbaustein kann vom NOR-Typ oder NAND-Typ sein. Während ein NOR-Flashspeicherbaustein kleine Datenmengen mit einer großen Geschwindigkeit akzeptiert, akzeptiert ein NAND-Flashspeicherbaustein eine große Datenmenge.
- Programmieren und Löschen eines typischen NAND-Flashspeicherbausteins umfasst das Steuern einer Schwellwertspannung einer Speicherzelle durch Injizieren und Emittieren von Elektronen in ein floatendes Gate bzw. aus dem floatenden Gate.
- Der NAND-Flashspeicher umfasst ein Register, das typischerweise als ein "Seitenpuffer" bezeichnet wird, um eine große Datenmenge in einer kurzen Zeitspanne zu schreiben.
- Daten, die von extern eingegeben werden, werden in ein Speicherzellenfeld über den Seitenpuffer geschrieben, und Daten, die aus dem Speicherzellenfeld gelesen werden, werden über den Seitenpuffer nach extern ausgegeben. Entsprechend werden Daten typischerweise in Einheiten von der Größe des Seitenpuffers in den Flashspeicher geschrieben oder aus dem Flashspeicher gelesen.
- In einem System mit einem NAND-Flashspeicherbaustein werden Daten zusammen mit einem Paritätscode für die Daten geschrieben, um Daten auf Fehler zu überprüfen und/oder Datenfehler zu korrigieren.
- Eine Steuerschaltung erzeugt einen Paritätscode für eine bestimmte Datenmenge und schreibt die Daten mit dem Paritätscode in den Flashspeicherbaustein. Danach liest die Steuerschaltung den Paritätscode aus dem Flashspeicherbaustein und überprüft, ob die Daten einen Fehler haben oder nicht.
- Mit dem Trend einer ansteigenden Größe des Seitenpuffers des Flashspeichers nimmt auch eine Einheit zum Verarbeiten der Paritätscodes zu. Normalerweise wird ein Paritätscode für Daten erzeugt, die eine Größe haben, die der Größe des Seitenpuffers entspricht.
- Das bedeutet, dass die Einheit zum Verarbeiten der Paritätscodes mit Daten von der Größe des Seitenpuffers korrespondiert. Daher wird mit der zunehmenden Größe des Seitenpuffers auch die Hardware zum Erzeugen der Paritätscodes komplizierter und/oder die Gesamtverarbeitungszeit nimmt zu.
- In der Offenlegungsschrift 2003/0101405 A1 ist ein Flashspeichersystem mit einem Flashspeicherbaustein, der ein Speicherzellenfeld und einen Seitenpuffer umfasst, offenbart, bei dem entsprechend den vorstehenden Erläuterungen Daten seitenweise in den Seitenspeicher geladen werden. Gleichzeitig wird aus diesen Daten ein Fehlerkorrekturcode (ECC) berechnet und in einen zugehörigen ECC-Speicherbereich geladen.
- Die Patentschrift
US 6.256.762 B1 offenbart ein Speichersystem mit Flashspeichern, bei dem Daten in Sektoreinheiten von z. B. 512 Byte in das System eingegeben und dann in z. B. vier Gruppen von Daten und zugehörigen Fehlerkorrekturcodes aufgeteilt und seriell an die Flashspeicher übertragen werden. - Es ist daher Aufgabe der Erfindung, ein Flashspeichersystem zur Verfügung zu stellen, das eine vergleichsweise hohe Effizienz zum Schreiben und/oder Lesen von Daten mit Paritätscodes in einen bzw. aus einem Flashspeicherbaustein besitzt und die Gesamtverarbeitungszeit relativ gering hält, und ein zugehöriges Datenschreibverfahren anzugeben.
- Die Erfindung löst diese Aufgabe durch ein Flashspeichersystem mit den Merkmalen des Patentanspruchs 1, 4 oder 6 und durch ein Datenschreibverfahren mit den Merkmalen des Patentanspruchs 17.
- Vorteilhafte Weiterbildungen der Erfindung sind in den abhängigen Ansprüchen angegeben.
- Vorteilhafte Ausführungsformen der Erfindung sind in den Zeichnungen dargestellt und werden nachfolgend beschrieben. Es zeigen:
-
1 ein Blockschaltbild eines Flashspeichersystems, -
2 ein schematisches Blockschaltbild eines Speicherzellenfeldes und eines Seitenpuffers des Flashspeichersystems aus1 , -
3 eine schematische Darstellung zur Veranschaulichung eines Verfahrens zum Schreiben von Daten in das Flashspeichersystem von1 und -
4A und4B jeweils eine schematische Darstellung zur Veranschaulichung weiterer Verfahren zum Schreiben von Daten in ein Flashspeichersystem. -
1 zeigt ein Flashspeichersystem100 mit einer Steuereinheit bzw. Steuerschaltung110 und einem Flashspeicherbaustein120 . Die Steuerschaltung110 umfasst einen Prozessor112 , einen Speichersteuerteil114 und eine Fehlerkorrektur-/Korrekturcodeschaltung (ECC-Schaltung)118 . Der Prozessor112 steuert den Betrieb der Steuerschaltung110 und der Speichersteuerteil114 dient als Schnittstelle der Steuerschaltung110 zu dem Flashspeicherbaustein120 . - Die ECC-Schaltung
118 erzeugt Paritätscodes, um Fehler in den Daten zu erkennen und/oder zu korrigieren, die in den Flashspeicherbaustein120 geschrieben werden. Die ECC-Schaltung118 ist in diesem Beispiel als Hardware ausgeführt. Wie aus1 ersichtlich ist, kann die Steuerschaltung110 außerdem einen statischen Direktzugriffsspeicher (SRAM)116 zum Schreiben von Daten umfassen. - Der Flashspeicherbaustein
120 umfasst ein Speicherzellenfeld122 und einen Seitenpuffer124 . Obwohl in1 nicht im Detail dargestellt, umfasst das Speicherzellenfeld122 eine Mehrzahl von Wortleitungen, eine Mehrzahl von Bitleitungen und eine Mehrzahl von Speicherzellen, die an entsprechenden Kreuzungspunkten zwischen den Wortleitungen und den Bitleitungen angeordnet sind. - Die Speicherzellen des Speicherzellenfeldes
122 sind über die Bitleitungen mit dem Seitenpuffer124 verbunden. Daten, die von extern eingegeben werden, werden über den Seitenpuffer124 in das Speicherzellenfeld122 geschrieben, und Daten, die aus dem Speicherzellenfeld122 gelesen werden, werden über den Seitenpuffer124 nach extern ausgegeben. -
2 zeigt ein detailliertes Blockschaltbild des Speicherzellenfeldes122 und des Seitenpuffers124 des Flashspeicherbausteins120 . Innerhalb des Speicherzellenfeldes122 ist schraffiert eine Seite131 markiert, die sich auf eine Mehrzahl von Speicherzellen bezieht, die mit einer einzigen Wortleitung verbunden sind. - Das Speicherzellenfeld
122 umfasst eine Mehrzahl solcher Seiten131 . Der Seitenpuffer124 umfasst ein Datenfeld und ein Ersatzfeld. In einem typischen Flashspeicherbaustein beziehen sich das Datenfeld und das Ersatzfeld jeweils auf Bereiche zum Schreiben von Daten bzw. Paritätscodes. Jede Seite des Speicherzellenfeldes122 umfasst ein Datenfeld und ein Paritätsfeld. - Die Steuerschaltung
110 ist, wie in1 angegeben, über einen Eingabe-/Ausgabebus IO und einen Steuerbus CON mit dem Flashspeicherbaustein120 verbunden. Der Eingabe-/Ausgabebus IO umfasst eine Mehrzahl von Signalleitungen, beispielsweise acht oder sechzehn Signalleitungen. Befehle CMD, Adressen ADDR und Daten DATA werden über den Eingabe-/Ausgabebus IO übertragen. Steuersignale werden über den Steuerbus CON übertragen, um zu informieren, ob ein Signal, das über den Eingabe-/Ausgabebus IO übertragen wird, ein Befehl CMD, eine Adresse ADDR oder ein Datensignal DATA ist. -
3 zeigt ein Verfahren300 zum Schreiben von Daten in das Flashspeichersystem, speziell einen Schreibvorgang für Daten und Paritätscodes in den Flashspeicherbaustein120 . Wie aus3 ersichtlich ist, werden ein erster Befehl CMD1, eine Adresse ADDR, Daten DATA1 bis DATAn und Paritätscodes PARITY1 bis PARITYn und ein zweiter Befehl CMD2 seriell zum Flashspeicherbaustein120 übertragen. Der erste Befehl CMD1 kann z. B. ein Datenladebefehl sein. Die Adresse ADDR bezieht sich auf eine Adresse des Speicherzellenfeldes, in welches Daten eingegeben werden. - Die Daten und die Paritätscodes PARITY1 bis PARITYn beziehen sich auf eine Mehrzahl von Datengruppen DATA1 bis DATAn. Genauer gesagt überträgt die Steuerschaltung
110 im Flashspeichersystem100 einen Teil, beispielsweise eine Gruppe, der Daten DATA1 bis DATAn, der eine Größe hat, die von der ECC-Schaltung118 verarbeitet werden kann, an den Flashspeicherbaustein120 . Danach überträgt die Steuerschaltung110 den Teil der Paritätscodes PARITY1 bis PARITYn für den betreffenden Teil, z. B. eine Gruppe, der Daten DATA1 bis DATAn an den Flashspeicherbaustein120 . - In anderen Worten ausgedrückt, es werden nicht zuerst alle Daten, die mit der Größe des Datenfeldes des Seitenpuffers
124 korrespondieren, und dann die Paritätscodes für alle Daten übertragen, sondern die Daten werden in zwei oder mehr kleinere Gruppen aufgeteilt, und es wird jeweils nur eine solche Gruppe gefolgt von dem Paritätscode für die entsprechende Gruppe übertragen, so dass entsprechende Datengruppen und Paritätscodes abwechselnd zum Flashspeicherbaustein120 übertragen werden. - Somit werden seriell eine erste Datengruppe DATA1, ein erster Paritätscode PARITY1 für die erste Datengruppe DATA1, eine zweite Datengruppe DATA2, ein zweiter Paritätscode PARITY2 für die zweite Datengruppe DATA2, ..., eine n-te Datengruppe DATAn und ein n-ter Paritätscode PARITYn von der Steuerschaltung
110 erzeugt und in den Flashspeicherbaustein120 eingegeben. - Die ersten bis n-ten Paritätscodes PARITY1 bis PARITYn korrespondieren mit je einer der ersten bis n-ten Datengruppen DATA1 bis DATAn. Der Seitenpuffer
124 akzeptiert die übertragenen Daten oder Paritätscodes seriell, unabhängig vom Datenfeld und dem Ersatzfeld. Alle Datengruppen DATA1 bis DATAn können die gleiche Größe haben. - Wenn das Datenfeld des Seitenpuffers
124 eine Größe von N Bytes hat, wobei N eine natürliche Zahl größer als eins ist, kann z. B. jede Datengruppe eine Größe von N Bytes geteilt durch die Anzahl der Gruppen haben. Hierbei ist die Gruppenanzahl eine natürliche Zahl größer als zwei. - Wenn beispielsweise das Datenfeld des Seitenpuffers
124 eine Größe von 2 K Bytes hat und das Ersatzfeld eine Größe von 64 Bytes hat, d. h. der Seitenpuffer124 hat eine Gesamtgröße von (2 K + 64) Bytes, und Paritätscodes in Einheiten von 512 Bytes verarbeitet werden, werden die Daten und die Paritätscodes in der Reihenfolge von 512 Bytes erster Daten, einem ersten Paritätscode mit 16 Byte, 512 Bytes zweiter Daten, einem zweiten Paritätscode mit 16 Byte, 512 Bytes dritter Daten, einem dritten Paritätscode mit 16 Byte, 512 Byte vierter Daten und einem vierten Paritätscode mit 16 Byte in den Seitenpuffer124 geschrieben. Anschließend wird der zweite Befehl CMD2 an den Flashspeicherbaustein120 übertragen. - Ein Datenlesevorgang wird auf die gleiche Weise wie ein Datenschreibvorgang ausgeführt. Im vorherigen Beispiel, in dem die Paritätscodes in Einheiten von 512 Bytes verarbeitet werden, wird das Lesen der 512 Bytes erster Daten DATA1 direkt vom Lesevorgang des korrespondierenden Paritätscodes PARITY1 gefolgt, wenn Daten aus dem Flashspeicherbaustein
120 gelesen werden. Daher ist es möglich, während des Lesevorgangs der 512 Bytes zweiter Daten DATA2 die ersten Daten DATA1 durch Benutzen des ersten Paritätscodes PARITY1 auf Fehler zu überprüfen. - Entsprechend kann der augenblickliche Lesevorgang angehalten werden, wenn bei der Überprüfung festgestellt wird, dass die ersten Daten DATA1 fehlerbehaftet sind, um den oder die Fehler sofort zu beheben.
- Wie oben ausgeführt, wird, wenn der Seitenpuffer
124 größer als die Verarbeitungseinheit für Paritätscodes ist, eine Datengruppe, die mit der Verarbeitungseinheit der Paritätscodes korrespondiert, in den Seitenpuffer124 geschrieben und dann kann der korrespondierende Paritätscode, der von der ECC-Schaltung118 erzeugt wird, in den Seitenpuffer124 geschrieben werden. Danach können die nächste Datengruppe, die mit der Verarbeitungseinheit der Paritätscodes korrespondiert, und der korrespondierende Paritätscode seriell in den Seitenpuffer124 geschrieben werden. Durch Wiederholen dieses Schreibvorgangs ist es nicht erforderlich, die Paritätscodes alle im Seitenpuffer zu sammeln. - Während des Datenlesevorgangs werden eine Datengruppe, die mit der Verarbeitungseinheit der Paritätscodes korrespondiert, und der korrespondierende Paritätscode seriell vom Seitenpuffer
124 gelesen, wobei die Fehlerüberprüfungszeit abgekürzt und der Fehlerüberprüfungsprozess unterstützt werden. Der Effekt der Erfindung wird durch den folgenden Vergleich mit kontrastierenden Beispielen deutlich. - Dazu zeigen die
4A und4B jeweils ein Verfahren400 und450 zum Schreiben von Daten in ein Flashspeichersystem gemäß solchen kontrastierenden Beispielen. - Wie aus
4A ersichtlich ist, werden beim dort illustrierten Verfahren nach der Übertragung des ersten Befehls CMD1 und der Adresse ADDR1 von der Steuerschaltung110 an den Flashspeicherbaustein120 aufeinander folgende Daten DATA1 bis DATAn seriell in den Seitenpuffer124 geschrieben. Danach werden aufeinander folgende Paritätscodes PARITY1 bis PARITYn seriell übertragen und schließlich wird der zweite Befehl CMD2 an den Flashspeicherbaustein120 übertragen. - Das bedeutet, dass die Steuerschaltung
110 zunächst alle Daten DATA1 bis DATAn, die mit der Größe eines Datenfelds korrespondieren, an den Flashspeicherbaustein120 überträgt, so dass die Daten DATA1 bis DATAn in das Datenfeld geschrieben werden, und dass erst dann alle Paritätscodes PARITY1 bis PARITYn in ein Ersatzfeld übertragen und geschrieben werden. - Wie aus
4B ersichtlich ist, überträgt beim dort gezeigten Verfahren die Steuerschaltung110 die aufeinander folgenden Daten DATA1 bis DATAn durch Benutzen des ersten Befehls CMD1 und einer ersten Adresse ADDR1, die zuvor übertragen werden, und eines zweiten Befehls CMD2, der danach übertragen wird, so dass die Daten DATA1 bis DATAn über den Seitenpuffer124 seriell in eine Seite des Speicherzellenfeldes122 geschrieben werden. Danach überträgt die Steuerschaltung110 aufeinander folgende Paritätscodes PARITY1 bis PARITYn, die mit den Daten DATA1 bis DATAn korrespondieren, durch Benutzen des ersten Befehls CMD1, einer zweiten Adresse ADDR2 und des zweiten Befehls CMD2, so dass die Paritätscodes PARITY1 bis PARITYn über den Seitenpuffer124 in eine andere Seite des Speicherzellenfeldes122 geschrieben werden. - In den alternativen, in den
4A und4B dargestellten Verfahren sollte, wenn der Seitenpuffer124 größer als die Verarbeitungseinheit der Paritätscodes ist, zum Schreiben der Paritätscodes in das Ersatzfeld oder eine andere Seite des Speicherzellenfeldes der jeweilige Paritätscode, der für jede Verarbeitungseinheit der Paritätscodes erzeugt wird, in einem zusätzlichen Speicherbaustein der Steuerschaltung110 gespeichert und dann in den Flashspeicherbaustein120 übertragen werden. Dies kann allerdings die Datenverarbeitungsbelastung erhöhen. - Zudem kann während des Datenlesevorgangs das Lesen eines Datenteils, der mit der Seitengröße korrespondiert, vom Lesen des Paritätscodes für diesen Datenteil gefolgt werden, oder Daten und Paritätscodes werden nicht seriell gelesen. Dadurch steigt eventuell die Zeit zur Fehlerüberprüfung an.
- Bei der Erfindung verschachtelt das Flashspeichersystem den Datenschreibvorgang mit dem Schreibvorgang für Paritätscodes für die Daten, unabhängig von einem Datenfeld und einem Ersatzfeld eines Seitenpuf fers, wodurch die Gesamtschreibzeit reduziert wird. Außerdem wird vorzugsweise jeder Paritätscode nur für eine relativ kleine Datenmenge erzeugt, um die Belastung der ECC-Schaltung zu reduzieren. In gleicher Weise kann mit Datenlesevorgängen verfahren werden.
Claims (19)
- Flashspeichersystem mit – einem Flashspeicherbaustein (
120 ), der ein Speicherzellenfeld (122 ) und einen Seitenpuffer (124 ) umfasst, der Daten in das Speicherzellenfeld (122 ) schreibt und/oder aus diesem liest, gekennzeichnet durch – eine Steuerschaltung (110 ), die Daten in wenigstens zwei Datengruppen aufteilt, die jeweils eine kleinere Größe als die Größe des Seitenpuffers (124 ) haben, und jede Datengruppe seriell mit einem Paritätscode für die Datengruppe zum oder vom Flashspeicherbaustein (120 ) überträgt. - Flashspeichersystem nach Anspruch 1, dadurch gekennzeichnet, dass der Seitenpuffer (
124 ) ein Datenfeld mit N-Byte und ein Ersatzfeld mit M-Byte umfasst, wobei N und M jeweils natürliche Zahlen größer als eins sind. - Flashspeichersystem nach Anspruch 2, dadurch gekennzeichnet, dass die jeweilige Datengruppe und der Paritätscode für die Datengruppe unabhängig vom Datenfeld und dem Ersatzfeld seriell in den Seitenpuffer (
124 ) geschrieben werden. - Flashspeichersystem mit – einem Flashspeicherbaustein (
120 ), der ein Speicherzellenfeld (122 ) und einen Seitenpuffer (124 ) umfasst, der Daten in das Speicherzellenfeld (122 ) schreibt und/oder aus diesem liest, gekennzeichnet durch – eine Steuerschaltung (110 ), die wenigstens zwei aufeinander folgende Daten-/Paritätscodegruppen zum Flashspeicherbaustein (120 ) seriell überträgt, wobei die jeweilige Daten-/Paritätscodegruppe einen bestimmten Datenanteil und einen Paritäts code für die Daten umfasst, und eine kleinere Größe als die Größe des Seitenpuffers (124 ) hat. - Flashspeichersystem nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass die Steuerschaltung (
110 ) folgende Komponenten umfasst: – einen Speichersteuerteil (114 ), welcher einen vorbestimmten Befehl (CMD), die Daten (DATA), eine Adresse (ADDR) für die Daten (DATA) und ein Steuersignal (CON) an den Flashspeicherbaustein (120 ) überträgt, und – eine Fehlerkorrektur-/Korrekturcodeschaltung (118 ) zum Erzeugen des Paritätscodes. - Flashspeichersystem mit – einem Speicherzellenfeld (
122 ) und – einem Seitenpuffer (124 ) in Signalkommunikation mit dem Speicherzellenfeld (122 ), gekennzeichnet durch – eine Steuerschaltung (110 ), die mit dem Seitenpuffer (124 ) zur Übertragung von Daten in einer Mehrzahl von Gruppen und korrespondierenden Paritätscodes in Signalkommunikation steht, wobei die kombinierte Größe der Mehrzahl von Gruppen mit korrespondierenden Paritätscodes nicht größer als die Größe des Seitenpuffers (124 ) ist. - Flashspeichersystem nach Anspruch 6, dadurch gekennzeichnet, dass die Steuerschaltung (
110 ) folgende Komponenten umfasst: – einen Speichersteuerteil (114 ), welcher einen Befehl (CMD), Daten (DATA) und eine Adresse (ADDR) für die Daten (DATA) an den Seitenpuffer (124 ) überträgt, und – eine Fehlerkorrektur-/Korrekturcodeschaltung (118 ) zum Erzeugen des korrespondierenden Paritätscodes für jede der mehreren Datengruppen. - Flashspeichersystem nach Anspruch 7, dadurch gekennzeichnet, dass der Speichersteuerteil (
114 ) so ausgeführt ist, dass er ein Steuersignal (CON) an das Speicherzellenfeld (122 ) und/oder den Seitenpuffer (124 ) überträgt. - Flashspeichersystem nach einem der Ansprüche 6 bis 8, dadurch gekennzeichnet, dass der Seitenpuffer (
124 ) ein Datenfeld mit N-Byte und ein Ersatzfeld mit M-Byte umfasst, wobei N und M jeweils natürliche Zahlen sind und die Summe N + M nicht größer als die Größe des Seitenpuffers (124 ) ist. - Flashspeichersystem nach Anspruch 9, dadurch gekennzeichnet, dass die jeweilige Datengruppe und ihr korrespondierender Paritätscode seriell in den Seitenpuffer (
124 ) geschrieben werden. - Flashspeichersystem nach einem der Ansprüche 6 bis 10, dadurch gekennzeichnet, dass – die Steuerschaltung (
110 ) und der Seitenpuffer (124 ) so ausgeführt sind, dass Daten in das Speicherzellenfeld (122 ) geschrieben oder aus dem Speicherzellenfeld (122 ) gelesen werden, und – die Mehrzahl von Gruppen als Mehrzahl von aufeinander folgenden Daten-Paritätscodegruppen angeordnet sind, die jeweils eine variable Datenmenge und einen korrespondierenden Paritätscode für die Daten umfassen. - Flashspeichersystem nach einem der Ansprüche 6 bis 11, gekennzeichnet durch – Befehlsmittel zum Übertragen eines Befehls (CMD) an den Seitenpuffer (
124 ) und/oder das Speicherzellenfeld (122 ), – Adressierungsmittel zum Übertragen einer Mehrzahl von Adressen (ADDR) für die Daten (DATA) an den Seitenpuffer (124 ) und/oder das Speicherzellenfeld (122 ) und – Fehlerkorrekturmittel zum Erzeugen einer Mehrzahl von Paritätscodes für die Daten. - Flashspeichersystem nach einem der Ansprüche 6 bis 12, gekennzeichnet durch Datenübertragungsmittel zum Schreiben einer Mehrzahl von Dateneinheiten und einer korrespondierenden Mehrzahl von Paritätscodes in den Seitenpuffer (
124 ). - Flashspeichersystem nach Anspruch 13, dadurch gekennzeichnet, dass die Datenübertragungsmittel die Mehrzahl von Dateneinheiten und die korrespondierende Mehrzahl von Paritätscodes seriell in den Seitenpuffer (
124 ) schreiben. - Flashspeichersystem nach Anspruch 13 oder 14, dadurch gekennzeichnet, dass die kombinierte Größe der Mehrzahl von Dateneinheiten und der korrespondierenden Mehrzahl von Paritätscodes nicht größer als eine maximale Größe des Seitenpuffers (
124 ) ist. - Flashspeichersystem nach einem der Ansprüche 6 bis 15, dadurch gekennzeichnet, dass der Seitenpuffer (
124 ) folgende Komponenten umfasst: – ein erstes Feld zum Empfangen von aufeinander folgend abwechselnden Gruppen von Daten und Paritäten und – ein zweites Feld zum Empfangen einer Fortsetzung der aufeinander folgend abwechselnden Gruppen und Paritäten. - Verfahren zum Schreiben von Daten in ein Flashspeichersystem mit einem Flashspeicherbaustein, bei dem (a) ein vorbestimmter Befehl (CMD) und ein Adressensignal (ADDR) an den Flashspeicherbaustein (
120 ) übertragen werden und (b) Daten (DATA) an den Flashspeicherbaustein (120 ) übertragen werden, dadurch gekennzeichnet, dass (c) ein Paritätscode für die Daten (DATA) erzeugt und an den Flashspeicherbaustein (120 ) übertragen wird, und die Schritte (b) und (c) einmal oder mehrmals wiederholt werden. - Verfahren nach Anspruch 17, dadurch gekennzeichnet, dass in den Schritten (b) und (c) die Daten und der korrespondierende Paritätscode seriell in einen Seitenpuffer (
124 ) des Flashspeicherbausteins (120 ) geschrieben werden. - Verfahren nach Anspruch 17 oder 18, dadurch gekennzeichnet, dass die Daten und der korrespondierende Paritätscode eine kleinere Größe als die Größe des Seitenpuffers (
124 ) haben.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2003-0050502 | 2003-07-23 | ||
KR1020030050502A KR100546348B1 (ko) | 2003-07-23 | 2003-07-23 | 플래시 메모리 시스템 및 그 데이터 저장 방법 |
KR10/2003-50502 | 2003-07-23 |
Publications (2)
Publication Number | Publication Date |
---|---|
DE102004036888A1 DE102004036888A1 (de) | 2005-02-24 |
DE102004036888B4 true DE102004036888B4 (de) | 2008-07-31 |
Family
ID=33563021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
DE102004036888A Active DE102004036888B4 (de) | 2003-07-23 | 2004-07-21 | Flashspeichersystem und zugehöriges Datenschreibverfahren |
Country Status (4)
Country | Link |
---|---|
US (4) | US7290082B2 (de) |
KR (1) | KR100546348B1 (de) |
DE (1) | DE102004036888B4 (de) |
FR (1) | FR2858101B1 (de) |
Families Citing this family (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4818812B2 (ja) * | 2006-05-31 | 2011-11-16 | 株式会社日立製作所 | フラッシュメモリストレージシステム |
US20050132128A1 (en) * | 2003-12-15 | 2005-06-16 | Jin-Yub Lee | Flash memory device and flash memory system including buffer memory |
JP2007257791A (ja) * | 2006-03-24 | 2007-10-04 | Fujitsu Ltd | 半導体記憶装置 |
TW200828328A (en) * | 2006-12-28 | 2008-07-01 | Genesys Logic Inc | Method of improving accessing reliability of flash memory |
KR100799688B1 (ko) * | 2007-01-03 | 2008-02-01 | 삼성전자주식회사 | 백업 회로를 갖는 메모리 시스템 및 그것의 프로그램 방법 |
TW200832436A (en) * | 2007-01-26 | 2008-08-01 | Holtek Semiconductor Inc | Data securing method and structure for non-volatile storage device |
KR100877609B1 (ko) * | 2007-01-29 | 2009-01-09 | 삼성전자주식회사 | 버퍼 메모리의 플래그 셀 어레이를 이용하여 데이터 오류 정정을 수행하는 반도체 메모리 시스템 및 그 구동 방법 |
US8560760B2 (en) * | 2007-01-31 | 2013-10-15 | Microsoft Corporation | Extending flash drive lifespan |
US7657572B2 (en) | 2007-03-06 | 2010-02-02 | Microsoft Corporation | Selectively utilizing a plurality of disparate solid state storage locations |
KR100919556B1 (ko) | 2007-08-10 | 2009-10-01 | 주식회사 하이닉스반도체 | 상 변화 메모리 장치 |
IL187041A0 (en) * | 2007-10-30 | 2008-02-09 | Sandisk Il Ltd | Optimized hierarchical integrity protection for stored data |
KR101368694B1 (ko) | 2008-01-22 | 2014-03-03 | 삼성전자주식회사 | 메모리 프로그래밍 장치 및 방법 |
US20090199043A1 (en) * | 2008-01-31 | 2009-08-06 | Peter Schrogmeier | Error correction in an integrated circuit with an array of memory cells |
KR101515122B1 (ko) | 2008-02-15 | 2015-04-27 | 삼성전자주식회사 | 저장된 데이터의 오류에 기반하여 기준 전압을 제어하는 방법과 메모리 데이터 검출 장치 |
JP2010009141A (ja) * | 2008-06-24 | 2010-01-14 | Toshiba Corp | データ転送方法 |
KR101431760B1 (ko) * | 2008-06-25 | 2014-08-20 | 삼성전자주식회사 | Ecc 알고리즘을 이용한 플래시 메모리 장치 및 그구동방법 |
KR101030146B1 (ko) * | 2008-08-29 | 2011-04-18 | 서울대학교산학협력단 | 페이지 버퍼를 쓰기 캐시로 이용하는 플래시 기반 저장 장치 및 이용 방법 |
US8438455B2 (en) * | 2008-12-31 | 2013-05-07 | Intel Corporation | Error correction in a solid state disk |
JP2010277352A (ja) * | 2009-05-28 | 2010-12-09 | Toshiba Corp | メモリシステム |
US8225052B2 (en) * | 2009-06-03 | 2012-07-17 | Micron Technology, Inc. | Methods for controlling host memory access with memory devices and systems |
US8370702B2 (en) * | 2009-06-10 | 2013-02-05 | Micron Technology, Inc. | Error correcting codes for increased storage capacity in multilevel memory devices |
JP5668279B2 (ja) * | 2009-08-06 | 2015-02-12 | ソニー株式会社 | 不揮発性ランダムアクセスメモリおよび不揮発性メモリシステム |
JP5464066B2 (ja) * | 2010-06-10 | 2014-04-09 | ソニー株式会社 | 通信装置、及び、通信方法 |
US9135168B2 (en) | 2010-07-07 | 2015-09-15 | Marvell World Trade Ltd. | Apparatus and method for generating descriptors to reaccess a non-volatile semiconductor memory of a storage drive due to an error |
US8868852B2 (en) | 2010-07-07 | 2014-10-21 | Marvell World Trade Ltd. | Interface management control systems and methods for non-volatile semiconductor memory |
US9141538B2 (en) | 2010-07-07 | 2015-09-22 | Marvell World Trade Ltd. | Apparatus and method for generating descriptors to transfer data to and from non-volatile semiconductor memory of a storage drive |
KR102004928B1 (ko) * | 2012-12-04 | 2019-07-29 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그것의 에러 정정 코드 처리 방법 |
US10335146B2 (en) * | 2014-04-02 | 2019-07-02 | Coviden Lp | Surgical fastener applying apparatus, kits and methods for endoscopic procedures |
JP2016028319A (ja) * | 2014-07-08 | 2016-02-25 | 富士通株式会社 | アクセス制御プログラム、アクセス制御装置及びアクセス制御方法 |
KR102249810B1 (ko) * | 2014-07-23 | 2021-05-11 | 삼성전자주식회사 | 스토리지 장치 및 스토리지 장치의 동작 방법 |
US10002043B2 (en) * | 2014-08-19 | 2018-06-19 | Samsung Electronics Co., Ltd. | Memory devices and modules |
US10002044B2 (en) | 2014-08-19 | 2018-06-19 | Samsung Electronics Co., Ltd. | Memory devices and modules |
CN107427380B (zh) * | 2014-11-04 | 2019-08-13 | 雅培心血管系统有限公司 | 用于使用行星齿轮致动组件传送植入物的方法和系统 |
KR102245822B1 (ko) | 2014-11-26 | 2021-04-30 | 삼성전자주식회사 | 불휘발성 메모리 장치를 포함하는 저장 장치 및 그것의 프로그램 방법 |
US11090097B2 (en) * | 2015-03-17 | 2021-08-17 | Covidien Lp | Connecting end effectors to surgical devices |
US9916091B2 (en) | 2015-07-13 | 2018-03-13 | Samsung Electronics Co., Ltd. | Memory system architecture |
US10177785B2 (en) * | 2016-08-23 | 2019-01-08 | Western Digital Technologies, Inc. | Error detecting code with partial update |
KR20220113146A (ko) * | 2021-02-05 | 2022-08-12 | 에스케이하이닉스 주식회사 | 호스트 및 이에 연결되는 메모리 시스템의 동작 방법 |
KR20220143450A (ko) * | 2021-04-16 | 2022-10-25 | 에스케이하이닉스 주식회사 | 시스템 버퍼를 포함하는 메모리 시스템 및 이의 동작 방법 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6256762B1 (en) * | 1997-01-23 | 2001-07-03 | Oki Electric Industry Co., Ltd. | Semiconductor disk device |
US20030101405A1 (en) * | 2001-11-21 | 2003-05-29 | Noboru Shibata | Semiconductor memory device |
Family Cites Families (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US123287A (en) * | 1872-01-30 | Improvement in step-ladders | ||
US5514862A (en) * | 1994-05-20 | 1996-05-07 | At&T Corp. | Portable data carrier |
US5475693A (en) * | 1994-12-27 | 1995-12-12 | Intel Corporation | Error management processes for flash EEPROM memory arrays |
US5999451A (en) * | 1998-07-13 | 1999-12-07 | Macronix International Co., Ltd. | Byte-wide write scheme for a page flash device |
GB9903490D0 (en) | 1999-02-17 | 1999-04-07 | Memory Corp Plc | Memory system |
JP3940544B2 (ja) * | 2000-04-27 | 2007-07-04 | 株式会社東芝 | 不揮発性半導体メモリのベリファイ方法 |
TW539950B (en) * | 2000-12-28 | 2003-07-01 | Sony Corp | Data recording device and data write method for flash memory |
US20020174397A1 (en) * | 2001-05-16 | 2002-11-21 | Fujitsu Limited | Method for error detection/correction of multilevel cell memory and multilevel cell memory having error detection/correction function |
US6990623B2 (en) * | 2001-05-16 | 2006-01-24 | Fujitsu Limited | Method for error detection/correction of multilevel cell memory and multilevel cell memory having error detection/correction function |
JP4437519B2 (ja) | 2001-08-23 | 2010-03-24 | スパンション エルエルシー | 多値セルメモリ用のメモリコントローラ |
GB0123416D0 (en) | 2001-09-28 | 2001-11-21 | Memquest Ltd | Non-volatile memory control |
US6766952B2 (en) | 2001-11-06 | 2004-07-27 | Quadnovation, Inc. | SIM card carrier |
JP4034971B2 (ja) * | 2002-01-21 | 2008-01-16 | 富士通株式会社 | メモリコントローラおよびメモリシステム装置 |
-
2003
- 2003-07-23 KR KR1020030050502A patent/KR100546348B1/ko active IP Right Grant
-
2004
- 2004-06-16 US US10/869,022 patent/US7290082B2/en active Active
- 2004-07-20 FR FR0408024A patent/FR2858101B1/fr active Active
- 2004-07-21 DE DE102004036888A patent/DE102004036888B4/de active Active
-
2007
- 2007-09-19 US US11/857,900 patent/US7562183B2/en active Active
-
2009
- 2009-07-14 US US12/502,700 patent/US7899980B2/en active Active
-
2011
- 2011-01-26 US US13/013,948 patent/US20110119436A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6256762B1 (en) * | 1997-01-23 | 2001-07-03 | Oki Electric Industry Co., Ltd. | Semiconductor disk device |
US20030101405A1 (en) * | 2001-11-21 | 2003-05-29 | Noboru Shibata | Semiconductor memory device |
Also Published As
Publication number | Publication date |
---|---|
KR100546348B1 (ko) | 2006-01-26 |
US7290082B2 (en) | 2007-10-30 |
US7562183B2 (en) | 2009-07-14 |
US20110119436A1 (en) | 2011-05-19 |
KR20050011409A (ko) | 2005-01-29 |
DE102004036888A1 (de) | 2005-02-24 |
FR2858101A1 (fr) | 2005-01-28 |
US20050021905A1 (en) | 2005-01-27 |
US7899980B2 (en) | 2011-03-01 |
US20090271568A1 (en) | 2009-10-29 |
FR2858101B1 (fr) | 2006-07-07 |
US20080028133A1 (en) | 2008-01-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
DE102004036888B4 (de) | Flashspeichersystem und zugehöriges Datenschreibverfahren | |
DE19782077B4 (de) | Verfahren und Vorrichtung zum Korrigieren eines Mehrpegelzellenspeichers durch Verwendung fehlerlokalisierender Codes | |
DE102005033165B4 (de) | Nichtflüchtiges Speicherbauelement, Programmier- und Schreibverfahren | |
DE10255872B4 (de) | Speichermodul und Verfahren zum Betrieb eines Speichermoduls in einem Datenspeichersystem | |
DE3111447C2 (de) | ||
DE3032630C2 (de) | Halbleiterspeicher aus Speicherbausteinen mit redundanten Speicherbereichen und Verfahren zu dessen Betrieb | |
DE19937101A1 (de) | Halbleiterspeicherbauelement mit Chipinterner Fehlerkorrekturschaltung und ein Verfahren zum Korrigieren eines Datenfehlers darin | |
DE102005053625A1 (de) | Speichermodul mit einer Mehrzahl von Speicherbausteinen | |
DE102005048255A1 (de) | Integriertes Schaltungsbauelement und Betriebsverfahren | |
DE3209679C2 (de) | ||
DE112008002553T5 (de) | Einsatz eines MLC-Flash als SLC durch Schreiben von Dummy-Daten | |
DE2132565A1 (de) | Umsetzer | |
DE3618136C2 (de) | ||
EP2100308B1 (de) | Verfahren und halbleiterspeicher mit einer einrichtung zur erkennung von adressierungsfehlern | |
DE3128729A1 (de) | Halbleiter-speichersystem | |
DE3412677C2 (de) | ||
DE19930169B4 (de) | Testeinrichtung und Verfahren zum Prüfen eines Speichers | |
DE10147138B4 (de) | Verfahren zur Integration von imperfekten Halbleiterspeichereinrichtungen in Datenverarbeitungsvorrichtungen | |
DE10058030A1 (de) | Integrierte Schaltung mit Datenprüfmitteln auf einem Chip | |
DE3827174A1 (de) | Halbleiter-speichervorrichtung | |
EP2063432B1 (de) | Verfahren zum Prüfen eines Arbeitsspeichers | |
DE19922786B4 (de) | Halbleiterspeicher mit Testeinrichtung | |
EP0990236A1 (de) | Anordnung mit speicherzellen und verfahren zur funktionsüberprüfung von speicherzellen | |
DE10252059B3 (de) | Verfahren zum Betreiben einer Speicheranordnung | |
DE102006019426A1 (de) | Speichermodulsteuerung, Speichersteuerung und entsprechende Speicheranordnung sowie Verfahren zur Fehlerkorrektur |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
OP8 | Request for examination as to paragraph 44 patent law | ||
8364 | No opposition during term of opposition |