Forum: Mikrocontroller und Digitale Elektronik NAND-Flash Bit-Kipper, hat jemand Erfahrung


von 900ss (900ss)


Lesenswert?

Hallo,

ich habe hier ein Board (hausgemacht) mit 32GByte NAND-Flash drauf.
Es ist noch kein ECC-Machanismus (weder in Hardware noch in Software) 
implementiert, das soll noch passieren.

Jetzt meine Frage, ich lasse einen Test laufen, der das gesamte Flash 
Page für Page mit inkrementellen Daten beschreibt. Nach dem Schreiben 
jeder Page wird diese zurückgelesen und der Inhalt verifiziert.
Ich bekomme hin und wieder (eher selten) falsche Werte. Bei diesen 
Werten ist ein einziges Bit falsch. Es wird mit 0 gelesen, sollte aber 1 
sein.
Das Board ist per PCI-Bus angebunden. Der PCI-Anaylzer sagt mir, dass 
der richtige Wert schreibend ins Board getragen wird. Mehrmaliges Lesen 
fördert immer das gekippte Bit (0 statt 1) zustande. Es sieht also so 
aus, als wenn der Lesezugriff zumindest korrekt abläuft, da der 
konstante Werte liefert.

Jetzt meine Frage, hat jemand Erfahrung mit NAND-Flash Speichern? Ist es 
evtl. normal, dass bei dieser Speichergröße hin und wieder ein Bit 
umkippt und man zwingend auf einen ECC Mechanismus angewiesen ist?

Das Datenblatt gibt keine Hinweise darauf. Dort steht nur, dass 100000 
Erase-Zyklen garantiert werden, aber nur wenn eine ECC genutzt wird.
Mehr finde ich im Datenblatt dazu nicht.
von Reinhard Kern (Gast)


Lesenswert?

900ss D. schrieb:
> und man zwingend auf einen ECC Mechanismus angewiesen ist?

Hallo,

ja, das ist bekannt, man geht bewusst an die Grenze des Zuverlässigkeit 
bei den Zellen - üblich ist eine Multilevel-Technologie, also mehrere 
Bit pro Zelle durch unterschiedliche Ladungslevel, wodurch nicht mehr so 
zuverlässig zwischen den Bits unterschieden werden kann. Das wird durch 
Fehlerkorrektur abgefangen, der Gewinn an Kapazität ist weit grösser. In 
deinem Fall etwa würde der fehler wahrscheinlich verschwinden, wenn man 
die Anzahl der Levels verkleinern würde, aber dann wäre die Kapazität 
nur mehr die Hälfte, ein Viertel usw.

Gruss Reinhard
von 900ss (900ss)


Lesenswert?

Reinhard Kern schrieb:
> üblich ist eine Multilevel-Technologie,

Danke für die Antwort.
Das klingt ja schonmal danach, dass die Bit-Kipper, die ich sehe, 
"normal" sind.

Wie ist das denn bei Single Level Cell (SLC) Flashes? Unser Flash hat 
SLC Technologie. Ist das dort auch so?
von Heinz (Gast)


Lesenswert?

> Das klingt ja schonmal danach, dass die Bit-Kipper, die ich sehe,
> "normal" sind.

Wer sagt das? Wo steht das?
von 900ss (900ss)


Lesenswert?

Heinz schrieb:
>> Das klingt ja schonmal danach, dass die Bit-Kipper, die ich sehe,
>> "normal" sind.
>
> Wer sagt das? Wo steht das?

Reinhard Kern schrieb:
> ja, das ist bekannt

Oder wie verstehst du das?
Hast du anderes Wissen bzw. Erfahrungen?
von Heinz (Gast)


Lesenswert?

900ss D. schrieb:
> Heinz schrieb:
>>> Das klingt ja schonmal danach, dass die Bit-Kipper, die ich sehe,
>>> "normal" sind.
>>
>> Wer sagt das? Wo steht das?
>
> Reinhard Kern schrieb:
>> ja, das ist bekannt
>
> Oder wie verstehst du das?
> Hast du anderes Wissen bzw. Erfahrungen?

Nein, habe ich nicht. Es erstaunt mich nur, dass schon zu Beginn die 
Bits nicht korrekt sind. Deshalb bin ich begierig eine entsprechende 
Quelle (Datenblattm Paper, etc.) zu sehen, die diesen Sachverhalt 
bestätigt.
von mio (Gast)


Lesenswert?

Der ECC soll diese Bitkipper auffangen.
SLC sind "zuverlässiger" als MLC, da MLC mehrere Bits pro Zelle 
kodieren.

Bei den NAND-Bausteinen die ich programmiert habe war es so (iirc), dass 
die SLC-NANDs mindestens einen 1-Bit-ECC vorausgesetzt haben und die MLC 
4-Bit.

Es gibt NANDs bei denen die Hersteller für die 1. Page (oder den 1. 
Block - weiss nicht mehr genau) ein fehlerfreies Lesen garantieren. aber 
auch nur die ersten xxxx Operationen. Der Rest des NANDS muss 
ECC-geschützt sein.

Btw. auch reines Lesen kann Bits kippen lassen, da auch hier Spannung 
angelegt wird.
von Arc N. (arc)


Lesenswert?

Heinz schrieb:
> 900ss D. schrieb:
>> Heinz schrieb:
>>>> Das klingt ja schonmal danach, dass die Bit-Kipper, die ich sehe,
>>>> "normal" sind.
>>>
>>> Wer sagt das? Wo steht das?
>>
>> Reinhard Kern schrieb:
>>> ja, das ist bekannt
>>
>> Oder wie verstehst du das?
>> Hast du anderes Wissen bzw. Erfahrungen?
>
> Nein, habe ich nicht. Es erstaunt mich nur, dass schon zu Beginn die
> Bits nicht korrekt sind. Deshalb bin ich begierig eine entsprechende
> Quelle (Datenblattm Paper, etc.) zu sehen, die diesen Sachverhalt
> bestätigt.

Z.B.
"The devices are supplied with all the locations inside valid blocks 
erased (FFh). The bad block information is written prior to shipping. 
Any block where the 6th byte (x8 devices)/1st word (x16 devices), in the 
spare area of the 1st page, does not contain FFh is a bad block.
The bad block information must be read before any erase is attempted as 
the bad block information may be erased. For the system to be able to 
recognize the bad blocks based on the original information it is 
recommended to create a bad block table following the flowchart shown 
in"
http://media.digikey.com/pdf/Data%20Sheets/Numonyx,Intel/NAND128-A,%20NAND256-A.pdf
oder
"The Bad Block Information is written prior to shipping. Any block where 
the 1st Byte in the spare area of the 1st or 2nd page(if the 1st page is 
Bad) does not contain FFh is a Bad Block"
HY27UK08BGFM
von 900ss (900ss)


Lesenswert?

Heinz schrieb:
>> Nein, habe ich nicht. Es erstaunt mich nur, dass schon zu Beginn die


Arc Net schrieb:
> The bad block information

Heinz redet glaube ich nicht von den Bad Blocks, die zu Beginn (ab Werk) 
schon da sind, sondern davon, dass bei mir schon Bitfehler auftreten 
obwohl ich das Flash noch nicht sonderlich gestresst habe.

@mio: Danke für deine Erfahrungen.
von Beta (Gast)


Lesenswert?

>> eine entsprechende Quelle (Datenblattm Paper, etc.)
Datenblatt Micron MT29F16G08ABABA, Kapitel Error Management
 " Minimum required ECC 4-bit ECC per 540 bytes of data "
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.