TOP
SSV SOFTWARE SYSTEMS REGISTER  REGISTER
Log in to check your private messages  Log in to check your private messages
START FAQ SEARCH MITGLIEDER PROFILE  Log in 
SSV-Forum
Schreibzyklen des Flash

 
Post new topic   Reply to topic    SSV-Forum Forum Index >>> DNP/9200
<<< Previous topic - Next topic >>>  
Display posts from previous:   
Author Message
Maria Müller



Joined: 24 Aug 2006
Posts: 4

PostPosted: 25.08.2006, 10:55    Post subject: Schreibzyklen des Flash Reply with quote

Hallo,

kann mir jemand sagen wieviel Schreibzyklen der Flash in Bezug auf seine Lebensdauer hat?

Gruß Maria Müller
Back to top
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 25.08.2006, 20:27    Post subject: Flash-Schreibzyklen … Reply with quote

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
View user's profile Send private message
sTm



Joined: 17 Jul 2006
Posts: 26

PostPosted: 30.08.2006, 08:17    Post subject: Reply with quote

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
View user's profile Send private message
sTm



Joined: 17 Jul 2006
Posts: 26

PostPosted: 08.09.2006, 08:36    Post subject: Reply with quote

*push* Razz
Back to top
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 11.09.2006, 09:47    Post subject: Sektor löschen ... Reply with quote

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
View user's profile Send private message
sTm



Joined: 17 Jul 2006
Posts: 26

PostPosted: 11.09.2006, 15:55    Post subject: Reply with quote

hmm das is schlecht Razz
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
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 12.09.2006, 07:27    Post subject: In den Flash schreiben ... Reply with quote

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
View user's profile Send private message
sTm



Joined: 17 Jul 2006
Posts: 26

PostPosted: 12.09.2006, 07:44    Post subject: Reply with quote

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
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 12.09.2006, 08:29    Post subject: Flash ... Reply with quote

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 Wink

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
View user's profile Send private message
sTm



Joined: 17 Jul 2006
Posts: 26

PostPosted: 12.09.2006, 08:53    Post subject: Reply with quote

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 Rolling Eyes
Back to top
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 13.09.2006, 07:38    Post subject: Flash-Verschleiß… Reply with quote

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
View user's profile Send private message
kdw



Joined: 05 May 2006
Posts: 1460

PostPosted: 20.09.2006, 15:04    Post subject: Sichtweise zum "Verschleiß" des Flash... Reply with quote

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
View user's profile Send private message
sTm



Joined: 17 Jul 2006
Posts: 26

PostPosted: 09.10.2006, 09:23    Post subject: Reply with quote

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
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    SSV-Forum Forum Index >>> DNP/9200 All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

SSV SOFTWARE SYSTEMS

Dünenweg 5
30419 Hannover

Fon: +49(0)511  ·  40 000-0
Fax: +49(0)511  ·  40 000-40

sales@ssv-embedded.de


Impressum    ·    Datenschutz    ·    AGB

© 2024 SSV SOFTWARE SYSTEMS GmbH. Alle Rechte vorbehalten.

ISO 9001:2015