-
sDie
vorliegende Erfindung bezieht sich auf ein Hybridflashspeicherbauelement,
ein Speichersystem und ein Verfahren zum Steuern von Fehlern in
einem Hybridflashspeicherbauelement.
-
Ein
Flashspeicher ist eine nichtflüchtige Speicherart, die
in der Lage ist, Daten zu erhalten, wenn die angelegte Energieversorgung
unterbrochen wird. Während die Datenzugriffsgeschwindigkeiten
für Flashspeicher langsamer als die für flüchtige
Speicherbauelemente, wie beispielsweise einem dynamischen Speicher
mit direktem Zugriff (DRAM), assoziierte Datenzugriffsgeschwindigkeiten
sind, sind sie merklich schneller als die Datenzugriffsgeschwindigkeiten
für Festplattenlaufwerke (HDDs). Wenn Flashspeicher allgemein
als Ersatz für HHDs verwendet werden, ermöglichen
sie verbesserte Energieverbraucheigenschaften und eine verbesserte Langlebigkeit
im Bezug auf mechanische Einflüsse. Daher werden Flashspeicher
extensiv in Applikationen und verschiedenen elektronischen Geräten
verwendet, die mit Batterien betrieben werden.
-
Flashspeicher
sind allgemein dafür geeignet, dass Daten elektrisch in
sie geschrieben, d. h. programmiert, und gelöscht werden.
Im Gegensatz zu EEPROMs können Flashspeicher auf blockweise programmiert
und gelöscht werden. Des Weiteren weisen Flashspeicher
generell eine hohe Kapazität auf und erlauben, dass Daten
mit niedrigeren Kosten je Bit als in EEPROMs gespeichert werden
können. Typische Applikationen, die von der Anwendung von Flashspeichern
profitieren sind digitale Musikabspielgeräte, digitale
Kameras, Mobiltelefone usw. Über Flashspeicher umgesetzte
USB-Treiber oder Flashspeicherkarten sind zum Speichern von Daten
und zur Übertragung von Daten zwischen Computern weit verbreitet.
-
Flashspeicher
speichern Daten typischerweise in Feldern von Speicherzellen, die
Floating-Gate-Transistoren aufweisen. Neuere Flashspeicher sind
in der Lage, Mehrfachdatenbits bzw. mehrere Datenbits je Speicherzelle
zu speichern. Zur Vereinfachung der Beschreibung wird eine Speicherzelle
in einem Flashspeicherbauelement, die ein Datenbit speichert, als
Einzelbitzelle (SBC) bezeichnet. Eine Speicherzelle in einem Flashspeicherbauelement,
die Mehrfachdatenbits speichert, wird als Mehrfachbitzelle (MBC)
bezeichnet.
-
In
einem SBC-Flashspeicherbauelement können Daten, die in
einer der Speicherzellen gespeichert sind, unter Verwendung einer
entsprechenden Lesespannung identifiziert werden, die zwischen der
Schwellspannungsverteilung für Daten mit einem definierten
Wert von „1" und der Schwellspannungsverteilung für
Daten mit einem definierten Wert von „0" liegt. Wenn die
Lesespannung beispielsweise an ein Steuergate der Speicherzelle
angelegt wird, ist es durch Detektieren eines korrespondierenden
Stromflusses, der durch die Speicherzelle fließt, möglich
zu bestimmen, ob ein Datenwert von 0 oder 1 gespeichert ist.
-
Spannungsspielräume
zwischen der Lesespannung und der entsprechenden Schwellspannungsverteilung
in einem SBC-Flashspeicherbauelement sind allgemein größer
als solche in einem MBC-Flashspeicherbauelement. Lesefehler treten aber
unabhängig davon in beiden Bauelementtypen auf. Daher kann
eine Fehlerdetektierungs- und/oder Fehlerkorrektur(ECC)-Struktur
verwendet werden, um Bitfehler zu detektieren und/oder zu korrigieren. Eine
ECC-Struktur wird beispielsweise im
US-Patent 6,651,212 offenbart,
dessen Gegenstand hiermit durch Bezugnahme in die Beschreibung aufgenommen
wird.
-
Mit
der Zunahme der Anzahl von Datenbits, die per Speicherzelle in einem
MBC-Flashspeicherbauelement gespeichert werden kann, werden mehr Schwellspannungsverteilungen
verwendet und müssen berücksichtigt werden. Es
ist auf dem Gebiet der Flashspeicher allgemein bekannt, dass bestimmte Schwierigkeiten
im Zusammenhang mit der Anhebung der Schwellspannungsverteilungen
in einem Flashspeicher, der MBCs verwendet, auftreten können.
Das bedeutet, dass sich die Schwellspannung einer Speicherzelle
innerhalb eines vorbestimmten Spannungsbereichs bewegt. Entsprechend
sollten die für eine bestimmte MBC verwendeten Schwellspannungsverteilungen
unabhängig von der Anzahl von in der MBC zu speichernden
Datenbits gleichmäßig über ihren Spannungsbereich
verteilt werden. Für eine bestimmte Anzahl von gespeicherten
Datenbits je Speicherzelle bewirkt dieses Entwurfsziel jedoch, dass
sich benachbarte Schwellspannungsverteilungen überlappen.
Diese Folge wird zu einem ernsten Hindernis für eine weitere
Erhöhung der Anzahl von Datenbits, die in einer MBC gespeichert
werden können. Des Weiteren stellt diese Folge ein ernstes
Problem für verschiedene Entwurfsfaktoren wie beispielsweise
Ladungsverlust, Lese-/Programmiervorgangszeitperioden, Bauelementerwärmung,
Ladungskopplung zwischen benachbarten Speicherzellen während
Lese-/Programmiervorgängen, Zellendefekte usw. dar.
-
Zusammenfassend
werden, wenn die mit MBC-Flashspeicherbauelementen assoziierten
Entwurfs- und Herstellungsschwierigkeiten zunehmen, die Vorteile
einer leistungsfähigen ECC-Funktionalität immer
wichtiger.
-
Der
Erfindung liegt das technische Problem zugrunde, ein Hybridflashspeicherbauelement,
ein Speichersystem und ein Verfahren zum Steuern von Fehlern in
einem Hybridflashspeicherbauelement bereitzustellen, welche eine
optimierte ECC-Leistungsfähigkeit aufweisen.
-
Die
Erfindung löst dieses Problem durch Bereitstellung eines
Hybridflashspeicherbauelements mit den Merkmalen des Patentanspruchs
1, eines Speichersystems mit den Merkmalen des Patentanspruchs 8
und eines Verfahrens zum Steuern von Fehlern in einem Hybridflashspeicherbauelement
mit den Merkmalen des Patentanspruchs 18.
-
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.
-
Vorteilhafte,
nachfolgend im Detail beschriebene Ausführungsformen der
Erfindung sind in den Zeichnungen dargestellt. Es zeigt/zeigen:
-
1 ein
Blockdiagramm eines Flashspeicherbauelements gemäß einer
Ausführungsform der Erfindung,
-
2 ein
Blockdiagramm eines Speichersystems gemäß einer
Ausführungsform der Erfindung,
-
3 ein
Blockdiagramm eines Flashspeicherbauelements gemäß einer
anderen Ausführungsform der Erfindung,
-
4 einen
Fehlersteuerblock aus 3,
-
5 ein
Blockdiagramm eines Speichersystems gemäß einer
anderen Ausführungsform der Erfindung,
-
6 ein
Blockdiagramm eines Flashspeicherbauelements gemäß einer
weiteren Ausführungsform der Erfindung,
-
7 ein
Blockdiagramm eines Speichersystems gemäß einer
weiteren Ausführungsform der Erfindung,
-
8 ein
Blockdiagramm eines Flashspeicherbauelements gemäß einer
weiteren Ausführungsform der Erfindung,
-
9 ein
Blockdiagramm eines Speichersystems gemäß einer
weiteren Ausführungsform der Erfindung und
-
10 ein
Blockdiagramm einer Smart-Card.
-
1 ist
ein Blockdiagramm eines Flashspeicherbauelements gemäß einer
Ausführungsform der Erfindung.
-
Bezugnehmend
auf 1 umfasst ein Flashspeicherbauelement einen Datenspeicherblock 100,
einen Fehlersteuerblock 200 und einen Steuerblock 300.
In diesem Kontext wird der Begriff „Block" verwendet, um
allgemein einen Schaltkreis, Firmware oder eine Kombination aus
Schaltkreis, Steuerlogik und zugehöriger Software zu beschreiben,
welche geeignet sind, eine gewünschte Funktionalität
zu implementieren.
-
Der
Datenspeicherblock 100 umfasst einen Bereich 110,
der nachfolgend als SBC-Bereich bezeichnet wird, der SBCs aufweist,
die ein Ein zeldatenbit je Speicherzelle speichern, und einen Bereich 120,
der nachfolgend als MBC-Bereich bezeichnet ist, der MBCs aufweist,
die Mehrfachdatenbits je Speicherzelle speichern, d. h. es werden „M-Bit-Daten"
bzw. M Datenbits gespeichert, wobei M eine ganze Zahl größer
oder gleich 1 ist. Der SBC-Bereich 110 kann unter anderem
Datencodeinformationen oder ECC-Daten speichern. Der MBC-Bereich 120 speichert
typischerweise Volumen- oder Nutzdaten.
-
In
bestimmten Ausführungsformen der Erfindung können
die im SBC-Bereich 110 und im MBC-Bereich 120 bereitgestellten
Speicherzellen Flashspeicherzellen sein, die einen Floating-Gate-Transistor
aufweisen. Dem Fachmann ist jedoch klar, dass die Flashspeicherzellen
nicht auf solche begrenzt sind, die einen Floating-Gate-Transistor
aufweisen. Die Flashspeicherzellen können beispielsweise
unter Verwendung von Ladungseinfangtransistoren usw. implementiert
werden. Des Weiteren können die Flashspeicherzellen PRAM, MRAM
oder andere Arten von nichtflüchtigen Speicherzellen sein.
-
Bezugnehmend
auf 1 erzeugt der Fehlersteuerblock 200 einen
Fehlersteuercode (ECC) im Bezug auf Daten, die im Datenspeicherblock 100 zu speichern
sind. Der Fehlersteuerblock 200 kann verwendet werden,
um Fehler in Daten zu detektieren und zu korrigieren, die aus dem
Datenspeicherblock 100 gelesen werden.
-
In
diesem Zusammenhang umfasst der Fehlersteuerblock 200 einen
ersten ECC-Block 210 und einen zweiten ECC-Block 220.
Der erste ECC-Block 210 umfasst einen Schaltkreis mit einem
herkömmlichen Design, der in der Lage ist, ECC-Vorgänge
in Bezug auf die im SBC-Bereich 110 gespeicherten Daten
vorzunehmen. Der zweite ECC-Block 220 umfasst einen Schaltkreis
mit einem herkömmlichen Design, der in der Lage ist, ECC-Vorgänge
in Bezug auf die im MBC-Bereich 120 gespeicherten Daten
vorzunehmen.
-
Das
bedeutet, dass der erste ECC-Block 210 ECC-Daten, die auf
im SBC-Bereich 110 gespeicherte Daten bezogen sind, gemäß einem
ersten Fehlersteuerschema erzeugt und manipuliert. Daher ist der erste
ECC-Block 210 in der Lage, Fehler in den aus dem SBC-Bereich 110 gelesenen
Daten gemäß dem ersten Fehlersteuerschema zu detektieren
und zu korrigieren. Der zweite ECC-Block 220 erzeugt und manipuliert
ECC-Daten, die auf im MBC-Bereich 120 gespeicherte Daten
bezogen sind gemäß einem zweiten Fehlersteuerschema.
Daher ist der zweite ECC-Block 220 in der Lage, Fehler
in den aus dem MBC-Bereich 120 gelesenen Daten gemäß dem zweiten
Fehlersteuerschema zu detektieren und zu korrigieren.
-
Entsprechend
verschiedener Ausführungsformen der Erfindung kann das
erste Fehlersteuerschema einen Bose-, Ray-Chaudhuri-, Hocquenghem(BCH)-Code
oder einen Reed-Solomon(RS)-Code verwenden, wie es im
US-Patent 6,651,212 offenbart wird.
Das zweite Fehlersteuerschema kann ein fraktioniertes Leseverfahren
verwenden, das manchmal auch als Weichentscheidungs(SD)-Verfahren bezeichnet
wird. Dieses fraktionierte Leseverfahren wird beispielsweise im
US-Patent 7,023,735 offenbart,
dessen Gegenstand hiermit durch Bezugnahme in die Beschreibung aufgenommen
wird. Dem Fachmann ist jedoch klar, dass das erste und zweite Fehlersteuerschema
durch andere existierende und/oder entstehende ECC-Schemata, wie
z. B. solche, die Wiederholungscodes, Paritätscodes, zyklische
Codes, Hamming-Codes, Golay-Codes, Reed-Muller-Codes, Maximal-Wahrscheinlichkeiten
usw. verwenden, implementiert werden können.
-
Der
Steuerblock 300 wählt den ersten ECC-Block 210 oder
den zweiten ECC-Block 220 in Abhängigkeit davon
aus, ob ein aktueller Datenzugriffsvorgang auf die im SBC-Bereich 110 oder
die im MBC-Bereich 120 gespeicherten Daten gerichtet ist. Fordert
der Datenzugriffsvorgang beispielsweise Daten vom SBC-Bereich 110 an,
dann wählt der Steuerblock 300 den ersten ECC-Block 210 aus
und der Fehlersteuerblock 200 arbeitet gemäß dem
ersten Fehlersteuerschema. Fordert der Datenzugriffsvorgang Daten
vom MBC-Bereich 120 an, dann wählt der Steuerblock 300 den
zweiten ECC-Block 220 aus und der Fehlersteuerblock 200 arbeitet
gemäß dem zweiten Fehlersteuerschema. Ein Zugriffsvorgang auf
Daten, die entweder im SBC-Bereich 110 oder im MBC-Bereich 120 gespeichert
sind, kann in Übereinstimmung mit korrespondierenden Adresseninformationen,
Befehlsinformationen usw. bestimmt werden.
-
Auf
diese Weise kann unter Verwendung von verschiedenen ECC-Schemata
eine optimierte ECC-Leistungsfähigkeit in Bezug auf Einzelbitdaten und
Mehrfachbitdaten erzielt werden.
-
2 ist
ein Blockdiagramm eines Speichersystems gemäß einer
anderen Ausführungsform der Erfindung.
-
Bezugnehmend
auf 2 umfasst das Speichersystem ein Flashspeicherbauelement 400 und eine
Speichersteuereinheit 500. Das Flashspeicherbauelement 400 umfasst
einen SBC-Bereich 410 und einen MBC-Bereich 420.
Der SBC-Bereich 410 und der MBC-Bereich 420 korrespondieren
mit den Bereichen 110 bzw. 120 aus 1.
Der Fachmann erkennt, dass der SBC-Bereich 410 und der
MBC-Bereich 420 auf einem einzelnen integrierten Schaltungschip
ausgeführt werden können.
-
Die
Speichersteuereinheit 500 steuert gemäß Befehlen,
die vom Hostgerät 600 empfangen werden, Datenzugriffsvorgänge,
d. h. Programmier- und Lesevorgänge, die auf das Flashspeicherbauelement 400 gerichtet
sind. Die Speichersteuereinheit 500 umfasst einen Fehlersteuerblock 510,
der einen ersten ECC-Block 511 und einen zweiten ECC-Block 512 aufweist.
Der erste ECC-Block 511 und der zweite ECC-Block 512 kor respondieren
mit dem ersten ECC-Block 210 bzw. dem zweiten ECC-Block 220 gemäß 1.
Die Speichersteuereinheit 500 wählt den ersten
ECC-Block 511 oder den zweiten ECC-Block 512 in Übereinstimmung
mit einem Datenzugriffsvorgang aus, der durch einen vom Hostgerät 600 empfangenen
Befehl angezeigt wird, der auf Daten gerichtet ist, die im SBC-Bereich 410 oder
im MBC-Bereich 420 gespeichert sind.
-
Fordert
der Datenzugriffsvorgang beispielsweise Daten an, die im SBC-Bereich 410 gespeichert oder
zu speichern sind, dann wählt die Speichersteuereinheit 500 den
ersten ECC-Block 511 aus, und der Fehlersteuerblock 510 arbeitet
gemäß dem ersten Fehlersteuerschema. Fordert der
Datenzugriffsvorgang Daten an, die im MBC-Bereich 420 gespeichert oder
zu speichern sind, dann wählt die Speichersteuereinheit 500 den
zweiten ECC-Block 512 aus, und der Fehlersteuerblock 510 arbeitet
gemäß dem zweiten Fehlersteuerschema.
-
Bei
der in 2 dargestellten Ausführungsform können
das Flashspeicherbauelement 400 und die Speichersteuereinheit 500 auf
einer Flashspeicherkarte implementiert werden. Alternativ kann die Speichersteuereinheit 500 in
einem Computer installiert werden und das Flashspeicherbauelement 400 kann
separat bereitgestellt werden. In dem Fall, in dem die Speicherkarte 500 und
das Flashspeicherbauelement 400 getrennt bereitgestellt
werden, verwenden die Speichersteuereinheit 500 und das
verbundene Flashspeicherbauelement 400 einen drahtlosen,
einen HF-, einen magnetischen und/oder einen direkten elektrischen
Kontakt unter Verwendung einer beliebigen aus einer Mehrzahl von
standardisierten Schnittstellen, wie beispielsweise eine ATA-, SATA-,
USB-, SCSI-, ESDI-, ISO-, PCI-, IDE-Schnittstelle.
-
Wie
vorher kann unter Verwendung eines ausgewählten Fehlersteuerschemas
eine optimierte ECC-Leistungsfähigkeit in Bezug auf Einzelbitdaten und
Mehrfachbitdaten erzielt werden.
-
3 ist
ein Blockdiagramm eines Flashspeicherbauelements gemäß einer
weiteren Ausführungsform der vorliegenden Erfindung. 4 zeigt eine
weitere Darstellung des Fehlersteuerblocks 800 aus 3.
-
Das
allgemein in 3 dargestellte Flashspeicherbauelement
umfasst einen Datenspeicherblock 700, einen Fehlersteuerblock 800 und
einen Steuerblock 900. Der Datenspeicherblock 700 umfasst
einen SBC-Bereich 710, der Einzelbitdaten speichert, und
einen MBC-Bereich 720, der M-Bit-Daten speichert, wie oben
beschrieben ist.
-
Bezugnehmend
auf 3 erzeugt der Fehlersteuerblock 800 jedoch
variable ECC-Daten in Bezug auf verschiedene Datentypen, die möglicherweise
im Datenspeicherblock 700 gespeichert sind. Der Fehlersteuerblock 800 detektiert
und korrigiert Fehler in Daten, die unter Verwendung von korrespondierenden
Fehlersteuerschemata, wie beispielsweise eine der oben angegebenen
Fehlersteuerschemata, aus einem beliebigen Bereich des Datenspeicherblocks 700 gelesen
werden. Bei einer in 4 dargestellten Ausführungsform
umfasst der Fehlersteuerblock 800 eine Mehrzahl von Fehlersteuerschemata, die
verschieden in Form von Hardware und/oder Software implementiert
sind und innerhalb des Fehlersteuerblocks 800 als Optionsblock 810 und
eine Mehrzahl von ECC-Blöcken 80 bis 8m bezeichnet sind.
Das bedeutet, dass die entsprechenden ECC-Blöcke 80 bis 8m arbeiten,
um entsprechend verschiedene Fehlersteuerschemata zu implementieren.
Ein erster ECC-Block kann beispielsweise durch Mittel des Optionsblocks 810 ausgewählt
werden, um in Verbindung mit im SBC-Bereich 710 gespeicherten
oder zu speichernden Daten verwendet zu werden. Alternativ kann
ein zweiter ECC-Block durch Mittel des Optionsblocks 810 ausgewählt
werden, um in Verbindung mit im MBC-Bereich 720 gespeicherten
oder zu speichernden Daten verwendet zu werden.
-
Bei
bestimmten Ausführungsformen der Erfindung kann der Optionsblock 810 unter
Verwendung von herkömmlichen Schaltkreisen und Techniken
wie Fuse- und Bondingoptionen implementiert werden. Dem Fachmann
ist klar, dass der Optionsschaltkreis 810 programmierbar
oder als Software implementiert werden kann. Der Fehlersteuerblock 800 gemäß Ausführungsformen
der Erfindung kann verwendet werden, um selektiv und variabel einen Bereich
von Fehlersteuerschemata zu implementieren.
-
Der
Steuerblock 900 aus 3 kann beispielsweise
in Überstimmung damit, ob die zu lesenden oder zu programmierenden
Daten den SBC-Bereich 710 oder dem MBC-Bereich 720 betreffen,
einen ersten ECC-Block 80 oder einen zweiten ECC-Block 8m auswählen.
-
5 ist
ein Blockdiagramm eines Speichersystems gemäß einer
weiteren Ausführungsform der Erfindung.
-
Bezugnehmend
auf 5 umfasst das Speichersystem ein Flashspeicherbauelement 1000 und eine
Speichersteuereinheit 1100. Das Flashspeicherbauelement 1000 umfasst
einen SBC-Bereich 1010 und einen MBC-Bereich 1020.
Der SBC-Bereich 1010 und der MBC-Bereich 1020 korrespondieren mit
den Bereichen 710 bzw. 720, die unter Bezugnahme
auf 3 beschrieben sind. Der Fachmann erkennt, dass
der SBC-Bereich 1010 und der MBC-Bereich 1020 auf
einem einzelnen integrierten Schaltungschip ausgeführt
werden können.
-
Die
Speichersteuereinheit 1100 steuert gemäß Befehlen,
die vom Hostgerät 1200 empfangen werden, Datenzugriffsvorgänge,
die auf das Flashspeicherbauelement 1000 gerichtet sind.
Die Speichersteuereinheit 1100 umfasst einen Fehlersteuerblock 1110,
der im Wesentlichen identisch mit dem Fehlersteuerblock 800 ist,
der in Bezugnahme auf 4 beschrieben ist. Daher kann
der in der Speichersteuereinheit 1100 aus
-
5 enthaltene
Fehlersteuerblock 1110 Schaltkreise und Software umfassen,
welche in der Lage sind, eine Anzahl verschiedener Fehlersteuerschemata
zu implementieren.
-
Die
Speichersteuereinheit 1100 ist beispielsweise in der Lage,
entweder einen ersten ECC-Block oder eine zweiten ECC-Block innerhalb
des Fehlersteuerblocks 1110 in Übereinstimmung
damit auszuwählen, ob der Datenzugriffsvorgang, der durch
das Hostgerät 1200 angezeigt wird, auf Daten gerichtet ist,
die im SBC-Bereich 1010 oder im MBC-Bereich 1020 gespeichert
oder zu speichern sind.
-
In
diesem besonderen Ausführungsbeispiel können das
Flashspeicherbauelement 1000 und die Speichersteuereinheit 1100 auf
einer Flashspeicherkarte implementiert werden. Alternativ kann die
Speichersteuereinheit 1100 in einem Endgerät oder
einem Computer installiert werden und das Flashspeicherbauelement
kann separat bereitgestellt werden. Im letzteren Fall kann die Speichersteuereinheit 1100 über
eine standardisierte Schnittstelle, wie beispielsweise eine ATA-,
SATA-, USB-, SCSI-, ESDI-, ISO-, PCI- und IDE-Schnittstelle, unter
Verwendung von herkömmlich bekannten Quellen mit dem Flashspeicherbauelement 1000 verbunden
werden.
-
6 ist
ein Blockdiagramm eines Speichersystems oder eines Flashspeicherbauelements
gemäß einer weiteren Ausführungsform
der vorliegenden Erfindung.
-
Bezugnehmend
auf 6 umfasst das Speichersystem einen Datenspeicherblock 1300,
der einen ersten MBC-Bereich 1310 und einen zweiten MBC-Bereich 1320 aufweist.
Der erste MBC-Bereich 1310 umfasst Speicherzellen, die
i-Bit-Daten speichern, und der zweite MBC-Bereich 1320 umfasst Speicherzellen,
die j-Bit-Daten speichern, wobei i eine positive ganze Zahl kleiner
als j ist.
-
Zudem
umfasst das Speichersystem gemäß 6 einen
Fehlersteuerblock 1400, der in Bezug auf Daten, die im
Datenspeicherblock 1300 gespeichert oder zu speichern sind,
ECC-Daten erzeugt. Der Fehlersteuerblock 1400, der einen
ersten FCC-Block 1410 und einen zweiten ECC-Block 1420 umfasst,
kann in Bezug auf den Datenspeicherblock 1330 und insbesondere
in Bezug auf den ersten MBC-Bereich 1310 und den zweiten
MBC-Bereich 1320 innerhalb des Datenspeicherblocks 1300,
auf die oben beschriebene Weise ähnlich wie der Fehlersteuerblock 200 in
Bezug auf den Datenspeicherblock 100 arbeiten, der den
ersten SBC-Bereich 110 und den MBC-Bereich 120 aufweist.
-
In
der in 6 dargestellten Ausführungsform kann
ein durch den ersten ECC-Block 1410 implementiertes erstes
Fehlersteuerschema einen BCG-Code oder einen RS-Code verwenden.
Das zweite Fehlersteuerschema, das durch den zweiten ECC-Block 1410 implementiert
wird, kann ein fraktioniertes Leseverfahren verwenden. Wie die vorher
beschriebenen Ausführungsformen ist die Erfindung nicht
nur auf diese Fehlersteuerschemata begrenzt, sondern kann andere
Schemata, wie z. B. Wiederholungscodes, Paritätscodes,
zyklische Codes, Hamming-Codes, Golay-Codes, Reed-Muller-Codes,
Maximal-Wahrscheinlichkeiten usw. verwenden.
-
Der
Steuerblock 1500 kann verwendet werden, um zwischen dem
ersten ECC-Block 1410 und dem zweiten ECC-Block 1420 danach
auszuwählen, ob ein Datenzugriffsvorgang auf die im ersten MBC-Bereich 1310 oder
im zweiten MBC-Bereich 1320 gespeicherten oder zu speichernden
Daten gerichtet ist. Ist der Datenzugriffsvorgang beispielsweise
auf im MBC-Bereich 1310 gespeicherte Daten gerichtet, wählt
der Steuerblock 1500 den Betrieb des ersten ECC-Blocks 1410 aus
und der Fehlersteuerblock 1400 arbeitet gemäß dem
ersten Fehlersteuerschema. Ist ein Datenzugriff jedoch auf im zweiten MBC-Bereich 1320 gespeicherte
Da ten gerichtet, wählt der Steuerblock 1500 den
Betrieb des zweiten ECC-Blocks 1420 aus und der Fehlersteuerblock 1400 arbeitet
gemäß dem zweiten Fehlersteuerschema.
-
7 ist
ein Blockdiagramm eines Flashspeichersystems gemäß einer
weiteren Ausführungsform der Erfindung. In dem in 7 dargestellten
System ist der Datenspeicherblock 1600 dem in 2 dargestellten
Datenspeicherblock 200 ähnlich, außer,
dass der Datenspeicherblock 1600 einen ersten MBC1-Bereich 1610 und
einen zweiten MBC2-Bereich 1620 anstelle des SBC-Bereichs 110 und
des MBC-Bereichs 120 aufweist. Die Auswahl und Bereitstellung
eines geeigneten Fehlersteuerschemas in Bezug auf Daten, die im
ersten MBC1-Bereich 1610 oder im zweiten MBC2-Bereich 1620 gespeichert
oder zu speichern sind, können ähnlich zu dem
unter Bezugnahme auf 6 beschriebenen Ansatz ausgeführt
werden.
-
8 ist
ein Blockdiagramm eines Flashspeichersystems gemäß einer
weiteren Ausführungsform der Erfindung. Das Flashspeichersystem gemäß 8 ist
dem in 3 dargestellten ähnlich, außer,
dass ein Datenspeicherbereich erste und zweite MBC-Bereiche MBC1
und MBC2 aufweist. Die Auswahl und Bereitstellung eines geeigneten
Fehlersteuerschemas in Bezug auf Daten, die im ersten MBC1-Bereich 1910 oder
im zweiten MBC2-Bereich 1920 gespeichert oder zu speichern
sind, können ähnlich zu dem unter Bezugnahme auf 6 beschriebenen
Ansatz ausgeführt werden.
-
9 ist
ein Blockdiagramm eines Flashspeichersystems gemäß einer
weiteren Ausführungsform der Erfindung. Das Flashspeichersystem gemäß 9 ist
dem in 5 dargestellten ähnlich, außer,
dass ein Datenspeicherbereich erste und zweite MBC-Bereiche MBC1
und MBC2 aufweist. Die Auswahl und Bereitstellung eines geeigneten
Fehlersteuerschemas in Bezug auf Daten, die im ersten MBC1-Bereich 2210 oder im
zweiten MBC2-Bereich 2220 gespeichert oder zu speichern
sind, können ähnlich zu dem unter Bezugnahme auf 6 beschriebenen
Ansatz ausgeführt werden.
-
10 ist
ein allgemeines Blockdiagramm einer Smart-Card, in der eine beliebige
der vorherigen Ausführungsformen verwendet werden kann.
-
Bezugnehmend
auf 10 umfasst die Smart-Card eine Verarbeitungseinheit 3000,
eine Schnittstelle 3100, ein ROM 3200, ein RAM 3300,
ein Flashspeicherbauelement 3400 und eine Fehlersteuereinheit 3500.
Obwohl es in den Zeichnungen nicht dargestellt ist, ist es für
einen Fachmann offensichtlich, dass die Smart-Card weiter einen
Codier-/Decodierblock, einen Sicherheitsblock usw. umfasst. Das Flashspeicherbauelement 3400 und
die Fehlersteuereinheit 3500 der 10 können
gemäß einer beliebigen, oben in Bezug auf 1 bis 9 beschriebenen
Ausführungsform implementiert werden.
-
Wie
oben ausgeführt, kann eine optimierte ECC-Leistungsfähigkeit
durch die Verwendung von verschiedenen ECC-Schemata in Bezug auf
Daten erzielt werden, die in verschiedenen Bereichen eines Flashspeicherbauelements
gespeichert sind, wie beispielsweise in einem SBC-Speicherfeld und
in einem MBC-Speicherfeld oder in verschiedenen MBC-Feldern.
-
ZITATE ENTHALTEN IN DER BESCHREIBUNG
-
Diese Liste
der vom Anmelder aufgeführten Dokumente wurde automatisiert
erzeugt und ist ausschließlich zur besseren Information
des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen
Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt
keinerlei Haftung für etwaige Fehler oder Auslassungen.
-
Zitierte Patentliteratur
-
- - US 6651212 [0006, 0030]
- - US 7023735 [0030]