<<< Previous topic - Next topic >>> |
|
Author |
Message |
Maria Müller
Joined: 24 Aug 2006 Posts: 4
|
Posted: 25.08.2006, 10:55 Post subject: Schreibzyklen des Flash |
|
|
Hallo,
kann mir jemand sagen wieviel Schreibzyklen der Flash in Bezug auf seine Lebensdauer hat?
Gruß Maria Müller |
|
Back to top |
|
|
kdw
Joined: 05 May 2006 Posts: 1460
|
Posted: 25.08.2006, 20:27 Post subject: Flash-Schreibzyklen … |
|
|
Hallo Maria.
Der Flash ist Sektorweise organisiert. Jeder Sektor kann laut dem Datenblatt des Chip-Herstellers min. 100.000-mal gelöscht werden. Mit anderen Worten: die Alterung eines Flash-Chips bezieht sich zunächst einmal auf die Anzahl der Löschvorgänge. Nach einem Löschvorgang kann ein Sektor neu beschrieben werden.
Ist ein Sektor nicht mehr löschbar, bleibt der zuletzt geschriebene Inhalt immer noch lesbar.
Etwas schwieriger wird es allerdings, wenn man das Flash File System des DNP/9200 einbezieht. Hier ist zu berücksichtigen, dass eine einzige Dateischreiboperation mehrere Löschvorgänge nach sich ziehen kann. Ein Umrechungsfaktor ist allerdings in den JFFS-Beschreibungen aus meiner Sicht nicht zu finden.
Wenn man ein System entwickeln will, auf dem sehr viele Schreibzugriffe zu erwarten sind, würde ich das SD/MMC-Interface des DNP/9200 nutzen. Die entsprechende Karte könnte man dann im Rahmen von Wartungsintervallen alle paar Jahre austauschen, da sie nur gesteckt ist. Der Flash des DNP/9200 ist aufgelötet und nur mit erheblichem Kostenaufwand austauschbar.
Gruß
Klaus |
|
Back to top |
|
|
sTm
Joined: 17 Jul 2006 Posts: 26
|
Posted: 30.08.2006, 08:17 Post subject: |
|
|
Hallo Maria, Hallo Klaus,
das ein Flash nur eine relativ begrenzte Anzahl an Löschzyklen verträgt ist oft ein Problem.
Die Frage ist nur ob man die Schreibzugriffe optimieren kann (bzw ob jffs das auch tut da man ja darüber nicht mehr direkt auf das Flash zugreift).
Angenommen ich habe eine Datei die nur einen halben Sektor benötigt, dann wird beim ersten anlegen der Sektor gelöscht und die Datei da rein geschrieben. Die zweite Hälfte dieses Sektors ist jetzt aber leer und kann beschrieben werden (mit 0xff gefüllt).
Was tut jffs nun wenn ich an diese Datei noch ein paar Bytes anhänge (append) ? Wird dann der Sektor wieder gelöscht und neu beschrieben oder kennt jffs das die zweite Hälfte leer ist und fügt die Datenbytes einfach an ohne löschen ?
Werden eventuell bei diesem Vorgang andere Sektoren (Dateizuordnungstabelle z.B.) immer gelöscht wenn ich an eine Datei etwas anhänge ?
Wenn ein einfaches Anhängen von Daten keine Löschoperationen macht (ausser wenn diese nötig sind weil ein neuer Sektor gebraucht wird) dann wäre das ein Ansatzpunkt die Schreiboperationen zu optimieren.
lg Stefan |
|
Back to top |
|
|
sTm
Joined: 17 Jul 2006 Posts: 26
|
Posted: 08.09.2006, 08:36 Post subject: |
|
|
*push* |
|
Back to top |
|
|
kdw
Joined: 05 May 2006 Posts: 1460
|
Posted: 11.09.2006, 09:47 Post subject: Sektor löschen ... |
|
|
Hallo Stefan.
Also ich sehe das so, dass der Sektor immer gelöscht wird. Sicher bin ich mir aber nicht.
Gruß
Klaus |
|
Back to top |
|
|
sTm
Joined: 17 Jul 2006 Posts: 26
|
Posted: 11.09.2006, 15:55 Post subject: |
|
|
hmm das is schlecht
ich hab auch nochmal zu dem Thema ein wenig nachgeforscht und es ist so das sich JFFS2 um einiges besser verhält, aber eine genaue Antwort hab ich leider auch nicht gefunden. |
|
Back to top |
|
|
kdw
Joined: 05 May 2006 Posts: 1460
|
Posted: 12.09.2006, 07:27 Post subject: In den Flash schreiben ... |
|
|
Hallo Stefan.
Was genau hast du mit dem Flash vor? Geht es um reine Software-Updates oder sollen zyklisch Prozessdaten geschrieben werden?
Gruß
Klaus |
|
Back to top |
|
|
sTm
Joined: 17 Jul 2006 Posts: 26
|
Posted: 12.09.2006, 07:44 Post subject: |
|
|
Hallo Klaus,
es geht um ein Datenlogging im Netzwerk. Die Daten werden alle 5-30 Minuten abgefragt (einstellbar) und müssen dann ins Flash gespeichert werden.
Die Datenmenge kann sich stark ändern, je nach dem wie viele Geräte abgefragt werden müssen.
Ein Messpunkt besteht aus ca. 30 Bytes pro Gerät, wobei max. 110 Geräte geloggt werden können.
Bisher haben wir das mit einem Mikrocontroller so gelöst das wir das Flash einfach als Ringspeicher benutzen. Unter Linux möchte ich es mir sofern möglich ersparen das Flash selber zu beschreiben und stattdessen das Filesystem nutzen, da es auch die Auswertung dann einfacher macht.
JFFS v1 ist dafür nach meinen Erkenntnissen schon ungeeignet. JFFS2 könnte funktionieren, hängt aber eben davon ab wie es sich bei "halbleeren" Sektoren verhält.
lg Stefan |
|
Back to top |
|
|
kdw
Joined: 05 May 2006 Posts: 1460
|
Posted: 12.09.2006, 08:29 Post subject: Flash ... |
|
|
Hallo Stefan.
Eine solche Aufgabe würde ich nur mit einem austauschbaren Flash-Speicher, also zum Beispiel einer CompactFlash- oder SD/MMC-Karte lösen.
Im ungünstigsten Fall werden alle 5 Minuten Daten geschrieben. Gehen wir mal als „Worst Case“ davon aus, dass alle 5 Minuten ein Sektor gelöscht werden muss. Das wären gemäß meiner Überschlagsrechnung 288 Löschvorgänge je Tag und 105.120 Löschvorgänge im Jahr (bei Embedded Systemen rechne ich immer mit einem 24/7-Betrieb). Bei einer Gerätelebensdauer von zum Beispiel 6 Jahren ergeben sich im ungünstigsten Fall somit über 630.000 Löschvorgänge. Das kann man aus meiner Sicht nicht machen
Auch wenn innerhalb der Gerätelebensdauer nur ein Drittel der Löschvorgänge eintritt (also ca. 210.000), wäre das immer noch im unsicheren Bereich.
Wenn ich so ein Gerät bauen müsste, würde ich einen CompactFlash- oder SD/MMC-Steckplatz vorsehen und in die Wartungsanweisung schreiben, dass die Karte alle ein bis zwei Jahre ausgetauscht werden muss. Das wäre aus meiner Sicht der sicherste Weg zu einem zuverlässigen Produkt ohne verdeckte „Schwachstellen“.
Gruß
Klaus |
|
Back to top |
|
|
sTm
Joined: 17 Jul 2006 Posts: 26
|
Posted: 12.09.2006, 08:53 Post subject: |
|
|
Hi Klaus,
das ist so nicht realisierbar wenn pro Schreibvorgang auch ein Löschvorgang folgt.
Daher war eben mein erster Ansatz zu prüfen ob das Anhängen von Daten jedesmal zu einem Löschvorgang führt oder nicht. Wenn da nicht jedesmal ein Sektor gelöscht wird dann könnte man das durchaus Nutzen wenn man die Files auf intelligente Art und Weise anlegt und beschreibt.
Sollte das nicht möglich sein dann werde ich wohl das Flash direkt beschreiben müssen und darin einen Ringspeicher realisieren. Damit kann ich dann min. 100.000 mal den kompletten Flash beschreiben.
Damit könnte ich insgesamt 100.000*8MB an Logdaten sicher schreiben. Wenn ich z.B. 3500 Byte pro Messpunkt mit einem 5 Minuten Interval habe dann könnte ich insgesamt >2000 Stunden loggen bevor der erste Sektor beschädigt wäre.
Allerdings basiert diese Rechnung darauf das für den "Verschleiß" des Flash nur die Anzahl der Löschvorgänge wichtig ist und man beliebig oft ohne Nachteile in einem Sektor schreiben kann. Stimmt diese Annahme ?
Die Verwendung einer Speicherkarte ist schon überlegt (und im Prototypen auch schon vorgesehen gewesen) aber leider aus anderen Gründen nicht möglich. Daher muss ich das Ganze in jedem Fall im internen Flash speichern.
Grüsse,
Stefan
EDIT: Die Logdauer wäre theoretisch >2000 Jahre, nicht Stunden. Hab mich vertippt |
|
Back to top |
|
|
kdw
Joined: 05 May 2006 Posts: 1460
|
Posted: 13.09.2006, 07:38 Post subject: Flash-Verschleiß… |
|
|
Hallo Stefan.
Das mit dem „Flash-Verschleiß“ beziehe ich zunächst einmal nur auf die Löschvorgänge.
Die mehrfachen Schreibzugriffe in einem einmal gelöschten Sektor zählen aus meiner Sicht nicht. Ich werden mich da aber noch mal „schlau fragen“ …
Gruß
Klaus |
|
Back to top |
|
|
kdw
Joined: 05 May 2006 Posts: 1460
|
Posted: 20.09.2006, 15:04 Post subject: Sichtweise zum "Verschleiß" des Flash... |
|
|
Hallo Stefan.
Es zählen tatsächlich nur die Löschzyklen je Sektor. Die Anzahl der Schreibvorgänge hat keinen Einfluss auf den "Verschleiß" des Flash. Die Sichtweise ist also richtig ..
JFFS1 würde es weiterhin zulassen, den einzelnen Sektor nach und nach vollzuschreiben, bevor der nächste Löschvorgang in die Wege geleitet wird.
Bei JFFS2 ist das allerdings wegen der zusätzlichen Datenkomprimierung aus meiner Sicht nicht klar.
Unter Umständen ist die Idee mit dem selbstverwalteten Ringpuffer dann der beste Weg.
Gruß
Klaus |
|
Back to top |
|
|
sTm
Joined: 17 Jul 2006 Posts: 26
|
Posted: 09.10.2006, 09:23 Post subject: |
|
|
Hi Klaus,
Danke für deine Bemühungen !
Ich werde nun definitiv den Ringpuffer selbst implemetieren, das scheint mir doch die sicherste Variante zu sein.
Danke & lg
Stefan |
|
Back to top |
|
|
|