Forum: Mikrocontroller und Digitale Elektronik Daten über die Zuverlässigkeit von NAND und NOR Flashbausteinen


von Georg (Gast)


Lesenswert?

Hallo,

Ich schreibe gerade meine Bachelorarbeit über Dateisysteme im embedded 
Bereich und darin geht es unter Anderem auch um die Unterschiede 
zwischen NAND und NOR Flashbausteinen.

Nun ist NAND Flash ja dafür bekannt, eine er eine relativ hohe 
Fehlerhäufigkeit zu besitzen, deshalb werden die Bausteine häufig auch 
mit Hardware-ECC verkauft oder ECC wird zumindest softwareseitig im 
Treiber vom Dateisystem implementiert.
Allerdings habe ich während meiner Suche kein einziges Dateisystem 
gefunden was ECC für NOR Flash implementiert und nur einen Hersteller 
(ISSI) gefunden der Bausteine mit Hardware-ECC anbietet, wobei diese 
auch noch recht neu sind (Release erst dieses Quartal).

Meine Frage ist nun ob irgendjemand tatsächliche Daten über die 
Unterschiede in der Bit-Error-Rate zwischen NAND und NOR Flashbausteinen 
hat oder weiß wo ich sie finden kann. Es muss ja einen Grund geben warum 
sich alle auf NOR Flash verlassen.

Vor allem würde mich dann interessieren ob die Fehlerhäufigkeit von 
einem NAND Flash mit ECC nicht vielleicht sogar niedriger ist als von 
einem NOR Flash ohne ECC.

Ich habe an alle großen Chiphersteller bereits Anfragen geschickt aber 
seit Wochen keine Antwort bekommen. Auch habe ich deren Webseiten nach 
Papers durchsucht aber auch dort keine Zahlen gefunden immer nur die 
Aussage, dass sie zuverlässiger sind.

Vielen Dank im Voraus.

von Johnny B. (johnnyb)


Lesenswert?

Georg schrieb:
> Vor allem würde mich dann interessieren ob die Fehlerhäufigkeit von
> einem NAND Flash mit ECC nicht vielleicht sogar niedriger ist als von
> einem NOR Flash ohne ECC.

ECC dient nicht unbedingt dazu, die Fehlerrate zu verringern, sondern um 
Fehler überhaupt zu erkennen, damit z.B. die Software nicht Amok läuft 
und der Roboter jemanden zu tode prügelt.

von Michael A. (micha54)


Lesenswert?

Johnny B. schrieb:
> ECC dient nicht unbedingt dazu, die Fehlerrate zu verringern, sondern um
> Fehler überhaupt zu erkennen, damit z.B. die Software nicht Amok läuft
> und der Roboter jemanden zu tode prügelt.

Hallo,

was könnte denn ECC sein, etwa ein Error Recognition Code ?

Gruß,
Michael

von Clemens L. (c_l)


Lesenswert?

Der wesentlich Unterschied zwischen NAND und NOR ist, dass man NAND in 
großen Blöcken ansprechen muss, währen man bei NOR einzelne Bytes lesen 
kann. Das bedeutet, dass das Flash, in dem ausführbarer Code in 
Mikrocontrollern gespeichert wird, NOR sein muss.

Der selbe Transistor hat ungefähr die selbe Fehlerhäufigkeit, egal, ob 
er in NAND- oder NOR-Flash benutzt wird. Aber in Mikrocontrollern will 
man zuverlässigen Speicher ohne ECC-Aufwand und macht deshalb die 
Transistoren groß und robust, während es sich bei Massenspeichern lohnt, 
möglichst viele Transistoren auf den gleichen Raum zu quetschen und die 
daraus resultierenden Fehler mit ECC (und komplexer Software) 
auszubügeln.

von Nosnibor (Gast)


Lesenswert?

Der wesentliche Unterschied ist, daß bei NOR die "Verkabelung" der 
einzelnen Speicherzellen so umständlich und sperrig ist, daß man sie 
nicht beliebig verkleinern kann. Bei NAND geht das, also machen es die 
Hersteller auch. Damit bekommt man mehr Speicherkapazität auf den Chip, 
aber je kleiner die Speicherzellen sind, desto größer ist die 
Fehlerwahrscheinlichkeit. Deshalb ist bei NAND-Flash aufwendige 
Fehlerkorrektur nötig, damit man seine Daten hinterher noch 
wiedererkennt. Zu der Fehlerkorrektur gehört dann auch, daß man nur noch 
blockweise schreiben kann, weil zu jedem Block entprechende Prüfsummen 
gespeichert werden müssen. Bei NOR ist keine Fehlerkorrektur nötig, weil 
praktisch keine Fehler auftreten.

Dateisysteme haben damit normalerweise nichts zu tun, weil die auf einer 
höheren Schicht ansetzen und davon ausgehen, daß sie ein zuverlässiges 
Speichermedium für Datenblöcke zur Verfügung haben. Für das korrekte 
Betüddeln des NAND-Flashs steckt dann ein eigener Prozessor im 
Speichermedium (USB-Stick, SD-Karte, SSD, eMMC,...).

von Timmo H. (masterfx)


Lesenswert?

Naja, solange man sich im Bereich von "embedded Flash" bewegt, sind sie 
100k P/E Cycles fast gleich. Nachteil von NAND ist halt dass man immer 
nur größere Blöcke löschen kann als bei NOR. Das heißt ohne 
entsprechende Logik (wear Leveling) hält NAND weniger lang wenn kleine 
Datenblöcke geschrieben werden.

Sobald es in den Bereich von SSDs geht (welche fast ausschließlich NAND 
in Form von MLC/TLC/QLC mit recht kleinen Fertigungsprozessen 
verwendenden) reden wir von P/E Cycles von ~1000-3000 Cycles.
Bei einer Samsung EVO 860 mit 1TB sind es lediglich 600 TBW (Terabytes 
Written) garantiert. Bedeutet 600 mal voll geschrieben und das Ding ist 
kaputt (wir alle wissen ja dank diverser Tests dass diese angaben recht 
konversativ sind). Bei Konsumer ist es meist 0.3 DWPD bei Server etc. 
geht es auch gerne auf 3 DWPD hinaus.

von Neverever (Gast)


Lesenswert?

Nosnibor schrieb:
> Dateisysteme haben damit normalerweise nichts zu tun, weil die auf einer
> höheren Schicht ansetzen und davon ausgehen, daß sie ein zuverlässiges
> Speichermedium für Datenblöcke zur Verfügung haben.


Das ist so nicht richtig. Dafür machen ja Dateisystem wie ZFS oder BTRFS 
Scrubbing, eben weil sie Speichermedien als fehlerbehaftet und 
unzuverlässig ansehen.

von (prx) A. K. (prx)


Lesenswert?

Neverever schrieb:
> Dafür machen ja Dateisystem wie ZFS oder BTRFS
> Scrubbing, eben weil sie Speichermedien als fehlerbehaftet und
> unzuverlässig ansehen.

Überdies verwenden sie auch eigene Checksums.

von A. B. (Gast)


Lesenswert?

Georg schrieb:

> Allerdings habe ich während meiner Suche kein einziges Dateisystem
> gefunden was ECC für NOR Flash implementiert und nur einen Hersteller
> (ISSI) gefunden der Bausteine mit Hardware-ECC anbietet, wobei diese
> auch noch recht neu sind (Release erst dieses Quartal).

Da war die Suche aber ziemlich oberflächlich. Auf Anhieb fallen mir dazu 
Cypress' S25FL128S, S25FL256S, S25FL512S ein, steht ausdrücklich auf der 
ersten Seite im Datenblatt. Oder Macronix MX25LM51245G.

Auch bei einigen neueren STM32-Derivaten mit größerem Flash findet sich 
ECC. Dabei dürfte es sich wohl auch um NOR-Flash handeln?!

Der Grund wurde ja schon beschrieben: In Integrationsdichte ist bei NOR 
der bei NAND deutlich hinterher, und die Fehlerwahrscheinlichkeit wächst 
mit Verkleinerung der Strukturen.

von (prx) A. K. (prx)


Lesenswert?

A. B. schrieb:
> Der Grund wurde ja schon beschrieben: In Integrationsdichte ist bei NOR
> der bei NAND deutlich hinterher, und die Fehlerwahrscheinlichkeit wächst
> mit Verkleinerung der Strukturen.

Und mit der Anzahl Bits pro Speicherzelle, bei NAND mittlerweile bis zu 
4.

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.