Hallo zusammen,
ich habe in meinem Projekt ein FLASH-Speicher an dem Counters
geschrieben werden und das ~ 2000 mal am Tag.
Schreiben in einem Flash passiert so dass der Page erst gelöscht werden
muss.
Die Frage ist es wie aussagekräftig sind den die Angaben dass ein Flash
Speicher nur bis 100 000 mal geschrieben werden kann ?
Bei meinem Projekt muss das Ding mindestens 10 Jahre lang halten.
Gibts eine nichtflüchtige Speicher der beliebeig geschrieben werden
kann??
Schreib doch den neuen counterwert an die nächste unbenutzte Stelle,
dann musst Du erst dann wieder eine page löschen wenn der komplette
Flash voll ist. Nutze den kompletten unbenutzten Flash dafür, je mehr
desto besser.
FRAM ist immer ne gute Wahl.
Aber die Frage ist - warum schreibst du ständig in einen flash? Es
reicht doch das im RAM zu halten, evtl. sogar gepuffert mit einer
Lithiumzelle oder Goldcap. Dann beizeiten den drohenden Ausfall der
Versorgung erkennen und mit der Restenergie in einen nichtflüchtigen
Speicher wegschreiben ist meist der bessere Weg.
Espig schrieb:> Die Frage ist es wie aussagekräftig sind den die Angaben dass ein Flash> Speicher nur bis 100 000 mal geschrieben werden kann ?
Wenig aussagekräftig ohne weitere Angaben zum Speicherlayout (Anzahl
Sektoren, Pages etc.) sowie zur gewählten Speicherstrategie
(Wear-leveling etc.).
Wenn der Speicher nur aus einer Page besteht dann ist nach 100.000
Werten die garantierte Lebensdauer erreicht.
Besteht der Sektor aus zwei Pages so kannst du bereits 200.000 Werte
speichern.
Hast du zwei Sektoren zu je zwei Pages sind es bereits 400.000 Werte.
Usw. usw.. Dann kann man noch weitere Strategien fahren, wie z.B. dass
man nur jeden x. Counterwert speichert oder den Counter nur speichert
wenn man einen Verlust der Eingangsspannung registriert.
Espig schrieb:> ich habe in meinem Projekt ein FLASH-Speicher an dem Counters> geschrieben werden und das ~ 2000 mal am Tag
Es gibt immer wieder mal schlecht geschriebene Programme, die besonders
teure Hardware erfordern.
Espig schrieb:> Gibts eine nichtflüchtige Speicher der beliebeig geschrieben werden> kann??
Ja, schon seit ewigen Zeiten: statisches RAM mit Pufferbatterie.
Georg
Espig schrieb:> Die Frage ist es wie aussagekräftig sind den die Angaben dass ein Flash> Speicher nur bis 100 000 mal geschrieben werden kann ?
Welches Flash ist das? Datenblatt?
> ich habe in meinem Projekt ein FLASH-Speicher an dem Counters> geschrieben werden und das ~ 2000 mal am Tag.
Warum so oft?
Andere überwachen den Powerfail und schreiben 1 mal pro Abschaltzyklus
den Zähler in ein EEPROM. Das ist in ein paar ms erledigt. Wie oft wird
dein Gerät ausgeschaltet?
> Gibts eine nichtflüchtige Speicher der beliebeig geschrieben werden> kann??
Nimm ein batteriegepuffertes RAM...
2000 mal am Tag, das sind im Jahr 730000.
Das sind in Jahren 7300000 - also ca 7 Millonen.
Ich habe mir letztens ein USB-Stick gekauft mit 64 GBytes. der hat also
125 Millionen Blöcke a 512 Bytes.
Nimm doch so einen Stick, und schreibe jeweils in einen neuen Block.
Dann ist in 10 Jahren der Stick nicht mal halb voll.
Wenn das Gerät 2000 mal am Tag aktiv ist, hat es offensichtlich eine
permanente Stromversorgung. Also nimmt man RAM.
Stromausfall kann man mit einer Batterie überbrücken. In dieser Zeit
kann das Gerät inaktiv sein, dann verbraucht es fast keinen Strom
(typisch weit unter 0,1mA).
Oder du sicherst die Daten wie gesagt erst bei Stromausfall in einen
nicht flüchtigen Speicher.
> Gibts eine nichtflüchtige Speicher der beliebeig> geschrieben werden kann??
SD Karten sind für solche Anwendungen vorteilhaft, da sie den Wear
Levelling Algorithmus bereits enthalten und aufgrund der hohen
Speicherkapazität sehr lange Haltbarkeit versprechen. Außerdem kann man
sie notfalls leicht auswechseln.
Das ist doch eh wieder so ein "ich will die Temperatur auf 0.01°C
genau"/"Wie kann ich mit dem 24Bit-ADC ein 7 1/2 Stelliges Multimeter
bauen" Mist.
Sicherlich gibt es Anwendungen für FRAM, sonst gäbe es ihn nicht... Aber
ob das hier der Fall ist, bezweifle ich.
Manche STM32 haben ein batterie gestütztes RAM integriert. Da braucht
man bloß eine Knopfzelle anschließen. Einmal aktiviert, lässt sich der
RAM genau wie der normale RAM nutzen, nur dass der Inhalt eben nicht
verloren geht.
42Bit ADC schrieb:> Sicherlich gibt es Anwendungen für FRAM, sonst gäbe es ihn nicht...
Na ja, eher umgekehrt:
Man hat lange geforscht und endlich FRAM hinbekommen,
nun sind die Verkaufszahlen aber bescheiden denn kaum jemand
hat Anwendungen die genau dafür passen würden.
Die technologie für das Produkt war zuerst da und sucht nun seinen
Markt.
Espig schrieb:> Die Frage ist es wie aussagekräftig sind den die Angaben dass ein Flash> Speicher nur bis 100 000 mal geschrieben werden kann ?
Zu meinem Flashbaustein von Samsung bezog sich diese Angabe auf die
Erasezyklen eines Blocks (Nand-Flash). Weiter stand dazu, dass es eine
Error Correction geben muß, sonst sind die Erase-Zyklen auch nicht
gerantiert (also es entstehen mehr Bit-Kipper). Ich kann das auch
bestätigen. Ohne Error-Correction gibt es durchaus mal Bit-Kipper.
Als Lösung würde ich das Design überdenken. Sind diese Anzahl
Schreibzyklen notwendig?
Falls ja sind die Lösungen wohl FRAM/MRAM oder SRAM mit
Batteriepufferung. Oder du mußt dir ein Wear-leveling überlegen, dann
kannst du auch Flash nehmen.
Michael B. schrieb:> 42Bit ADC schrieb:>> Sicherlich gibt es Anwendungen für FRAM, sonst gäbe es ihn nicht...>> Na ja, eher umgekehrt:>> Man hat lange geforscht und endlich FRAM hinbekommen,> nun sind die Verkaufszahlen aber bescheiden denn kaum jemand> hat Anwendungen die genau dafür passen würden.>> Die technologie für das Produkt war zuerst da und sucht nun seinen> Markt.
Na das eher nicht. EPROM und Flash wurden ja eigentlich nur erfunden,
weil man das Problem hatte, dass RAM seine Daten beim Ausschalten
vergisst. Ohne diesen Umstand hätte man die gar nicht gebraucht.
Bis dann mal RAM, der seinen Inhalt auch ohne Strom speichert, auf den
Markt kam, hat inzwischen jeder einen Work-Around für das Problem
gefunden und die ganze Architektur der Systeme war schon längst darauf
ausgerichtet worden.
Michael B. schrieb:> Man hat lange geforscht und endlich FRAM hinbekommen,> nun sind die Verkaufszahlen aber bescheiden denn kaum jemand> hat Anwendungen die genau dafür passen würden.
Die ersten FRAM Generationen von RAMTRON (heute Cypress) haben sich
daher gezielt den extern I2C/SPI Speichern gewidmet. Als Ersatz für die
üblichen externen seriellen EEPROMs sind die FRAMs super. Internes
Programm-Flash in dieser Rolle reduziert den Aufwand in Hardware, zu
Lasten höheren Aufwands in Software.
A. K. schrieb:> Als Ersatz für die üblichen externen seriellen EEPROMs sind die FRAMs> super. Internes Programm-Flash in dieser Rolle reduziert den Aufwand> in Hardware, zu Lasten höheren Aufwands in Software.
In TIs MSP430FRxx-Serie wurde der interne Flash komplett durch FRAM
ersetzt. Die verkaufen sich gar nicht so schlecht.
Unter "Applications" finden sich die üblichen Verdächtigen, wie Sensoren
und Monitoring: http://www.ti.com/fram
Ich habe letztens ein Teil ausgetauscht und musste zweimal hinschauen..
Ram im DIP Gehäuse mit integrierter Lithium Batterie und einer
Selbstüberwachung, die Lebenszeit der Daten wird durch die
Lithiumhaltbarkeit und Betriebstemperatur begrenzt.
Wie oben schon erwähnt gibt es dann die neueren Ersatztypen die den
Powerdown erkennen und den Ram in ein Paralleles internes EEprom
schreiben (Autosave).
Da gibt es schon einige möglichkeiten wenn man Google fragt.
Rolf Magnus schrieb:> EPROM und Flash wurden ja eigentlich nur erfunden,> weil man das Problem hatte, dass RAM seine Daten beim Ausschalten> vergisst. Ohne diesen Umstand hätte man die gar nicht gebraucht.
EPROM hat man bei Intel "erfunden", als man untersucht hat warum
dynamisch RAM-Bausteine manchmal ausfallen und dabei entdeckt, daß die
Gates von ein manchen 1-Transistor-Zellen keine elektrische Verbindung
zum Rest der Schaltung mehr hatten, aber trotzdem deren Ladung erhalten
blieb. Durch "energiereiche" Betrahlung mit UV-Licht verschwindet diese
Ladung aber.
Der Entdecker Dov Frohman hatte die Idee dies als UV-löschbaren Ersatz
für die längst vorhandenen (P)ROM's zu benutzen.
Also nicht suchen nach einer Lösung für ein Problem, sondern Effekt
entdecken und nach dem Problem suchen, für das dieser die Lösung sein
könnte.
Michael B. schrieb:> 42Bit ADC schrieb:>> Sicherlich gibt es Anwendungen für FRAM, sonst gäbe es ihn nicht...>> Na ja, eher umgekehrt:>> Man hat lange geforscht und endlich FRAM hinbekommen,> nun sind die Verkaufszahlen aber bescheiden denn kaum jemand> hat Anwendungen die genau dafür passen würden.
Das würde ich so nicht unterschreiben. Der Bedarf für nichtflüchtigen
Speicher war schon lange da, nur haben ihn EPROM, EEPROM und Flash
bisher nicht vollumfänglich gedeckt, weil jede dieser Technologien
irgendwo einen Pferdefuß hat. Sei es die Zugriffszeit oder die Anzahl
der Schreibvorgänge. Deswegen wurden Workarounds wie wear-leveling
implementiert und die funktionieren nun immerhin gut genug, daß man FRAM
nicht mehr zwingend braucht.
Ich gehe aber davon aus, daß sich das langsam, aber gründlich ändern
wird. Falls FRAM nicht doch noch irgendwelche Macken hat, dann wird es
Flash und EEPROM langsam aber sicher verdrängen. Embedded in µC geht ja
schon los (siehe MSP430FRxx weiter oben) und wenn der Preis pro Bit FRAM
vs. Flash konkurrenzfähig ist, dann sicher auch bald für Datenträger.
@Espig
Ich würde das Problem folgendermaßen angehen:
1. Den Mikroprozessor, aus Sicht der Stromversorgung, vom Rest
entkoppeln. Ein dicker Kondensator, nur für den Grübler, reicht.
2. Eine Spannungsüberwachung - gibt es fertig - die auch den Namen
verdient.
3. Eine Unterbrechung. Sollte bei den heutigen Prozessoren, bei denen
jeder Pin unterbrechen kann, kein Problem sein.
a. Im Normalbetrieb wird der Wunschwert einfach im RAM abgelegt.
b. Bricht die Spannungsversorgung zusammen, so wird durch die
Spannungsüberwachung eine Unterbrechung ausgelöst.
c. Die einzige Aufgabe der Unterbrechungsroutine ist es Deinen Liebling
ins trockene zu bringen. Z.B. EEPROM. Auf diese Weise sollte es kein
Problem sein, eine Speicherstelle, über längere Zeit, am Leben zu
halten.
d. In dieser Konfiguration kann es sinnvoll sein, bei einem Reset den
"letzten" Wert aus dem EEPROM zu lesen.
In vielen Fällen reicht es sogar aus, vor jedem Speichern zu überprüfen,
ob sich der aktuelle Wert überhaupt geändert hat. Das spart sehr viel
Überschreibarbeit. Ganz besonders, wenn es um Werte geht, die vom
Anwender gesetzt werden.
Ähnlich aktuelle Lautstärkeeinstellung beim Fernseher. Die verwenden
fast immer low cost Bauteile die sich nicht viel, bzw. häufig etwas
merken können. Selbst, wenn Du täglich die Lautstärke änderst, kommen so
nicht übermäßig viele Schreibzyklen zusammen.
Praktisch alle EEPROMs kann man beliebig oft befragen.
42Bit ADC schrieb:> Sicherlich gibt es Anwendungen für FRAM, sonst gäbe es ihn nicht... Aber> ob das hier der Fall ist, bezweifle ich.
Eigentlich immer, wenn man mehr als ein paar Bytes aus dem RAM beim
Abschalten sichern will. serielles EEPROM ist einfach zu langsam und man
bräuchte entsprechend gewaltige Pufferzeiten, und müsste auch noch alle
unnötige Peripherie von der Versorgung trennen können damit es nicht
noch schlimmer wird. Und wenn man dann noch von einer Batterie lebt,
ohne einen Spannungsregler vor dem man den Ausfall etwas früher erkennen
könnte, wirds endgültig ein Problem.
FRAM kann man halt so schnell füllen wie der Bus es macht, anstatt ms zu
warten bis ein paar Bytes durch sind.
SRAM+Batterie, am besten noich als vergossenes Modul, ist der letzte
MIST. Denkt bitte auch mal an die Leute, die eure Geräte nach
Supportende in Betrieb halten und weiterbenutzen wollen. Die Module sind
entweder obsolet oder überteuert, und wenn die Daten weg sind hat man ne
große Freude. Und Batterien egal welcher Sorte laufen immer wieder aus.
Wenn schon Batterie, dann austauschbar und UNTER der untersten Platine.
Axel S. schrieb:> Ich gehe aber davon aus, daß sich das langsam, aber gründlich ändern> wird. Falls FRAM nicht doch noch irgendwelche Macken hat, dann wird es> Flash und EEPROM langsam aber sicher verdrängen.
Zumindest bei NOR-Flash besteht die Chance, also beim
Programm/Data-Flash der Mikrocontroller. Wenn die Fertigungstechnik
ähnlich günstig ist/wird.
> vs. Flash konkurrenzfähig ist, dann sicher auch bald für Datenträger.
Nicht so bald. Man ist bei FRAM erst bei 4Mbit. Bis zu NAND-Flash sind
noch viele Zehnerpotenzen zu überwinden.
Axel S. schrieb:> Falls FRAM nicht doch noch irgendwelche Macken hat
Nach dem Lesen muss ein Bit neu geschrieben werden, aber das macht der
Controller automatisch und ist in der Praxis kein großes Problem.
Es braucht halt viel Platz (und ist deshalb teuer), sonst würde man auch
SSDs draus machen.
Michael B. schrieb:> Man hat lange geforscht und endlich FRAM hinbekommen,> nun sind die Verkaufszahlen aber bescheiden denn kaum jemand> hat Anwendungen die genau dafür passen würden.
Das Problem bei FRAM ist, dass in die Lebensdauer (10E12 bis 10E14
Schreibzyklen) die Lesevorgänge mit eingehen. Bei jedem Lesevorgang wird
die Ladung aus der Speicherzelle entfernt und hinterher wieder neu
geschrieben (wie beim DRAM). Der Vorteil der sehr hohen Anzahl möglicher
Schreibzyklen kommt daher nur zum Tragen, wenn das Verhältnis der Lese-
zu den Schreibzugriffen nicht zu groß wird. Für Massenspeicher ist das
ok, für Arbeitsspeicher nicht.
> Die technologie für das Produkt war zuerst da und sucht nun seinen> Markt.
Die Idee war mal, dass FRAM DRAM ersetzen sollte. Man schaltet seinen
Computer nach Benutzung einfach aus, und wenn man ihn wieder einschaltet
läuft er genau da weiter wo er vorher aufgehört hatte.
Seinerzeit ging man davon aus, dass die Speicherdichte für DRAM nicht
mehr ansteigen kann. Die Strukturgrößen waren mit 0,13 µm am
technologischen Limit angekommen und die Oxiddicke liess sich auch nicht
weiter reduzieren. Daher wollte man das Epsilon vergrößern, um so die
nötige Anzahl Elektronen (ca 500.000 Stück) in eine Speicherzelle zu
quetschen. So wurde an high-k Dielektika geforscht, z.B. (Ba, Sr)TiO3
oder (Ba, Pb)TiO3. Da diese Keramiken alle leicht ferroelektrische
Eigenschaften aufweisen entstand die Idee, diesen Effekt gezielt
auszunutzen.
Gescheitert ist das aus drei Gründen:
* die Halbleiterfritzen wollten das dreckige Keramikzeug nicht in ihren
Fabs haben
* man hat Fatigue und Imprint nicht soweit in den Griff bekommen, dass
man die für einen Arbeitsspeicher erforderliche Zyklenzahl erreichen
konnte.
* irgendwie ging es dann auch so, d.h. man hat man es dann doch wieder
geschafft, die Strukturen zu verkleinern (45 nm - 25 nm) und noch
dreidimensionaler zu gestalten
soul e. schrieb:> Das Problem bei FRAM ist, dass in die Lebensdauer (10E12 bis 10E14> Schreibzyklen) die Lesevorgänge mit eingehen. Bei jedem Lesevorgang wird> die Ladung aus der Speicherzelle entfernt und hinterher wieder neu> geschrieben (wie beim DRAM). Der Vorteil der sehr hohen Anzahl möglicher> Schreibzyklen kommt daher nur zum Tragen, wenn das Verhältnis der Lese-> zu den Schreibzugriffen nicht zu groß wird. Für Massenspeicher ist das> ok, für Arbeitsspeicher nicht.
Mmmh? D.h. der MPS mit FRAM verliert jedesmal seinen Code, wenn die
Firmware vor dem Ausschalten nicht runtergefahren wird?
Marcus H. schrieb:> Mmmh? D.h. der MPS mit FRAM verliert jedesmal seinen Code, wenn die> Firmware vor dem Ausschalten nicht runtergefahren wird?
Nein. Es heisst, dass der MSP in geeigneter Dauerschleife bei maximaler
Geschwindigkeit nach ein paar Jahrzehnten Alzheimer kriegt:
http://www.ti.com/lit/pdf/slaa526
Marcus H. schrieb:> Mmmh? D.h. der MPS mit FRAM verliert jedesmal seinen Code, wenn die> Firmware vor dem Ausschalten nicht runtergefahren wird?
Das nicht, aber der stirbt jedesmal ein bisschen, wenn der Code gelesen
wird.
A. K. schrieb:> Marcus H. schrieb:>> Mmmh? D.h. der MPS mit FRAM verliert jedesmal seinen Code, wenn die>> Firmware vor dem Ausschalten nicht runtergefahren wird?>> Nein. Es heisst, dass der MSP in geeigneter Dauerschleife bei maximaler> Geschwindigkeit nach ein paar Jahrzehnten Alzheimer kriegt:> http://www.ti.com/lit/pdf/slaa526
1.3 -> Krasses Pferd...
Reading from FRAM
Reading from FRAM requires applying an electric field across the crystal
similar to a write. Depending on
the state of the crystal, it may (or may not) need to be repolarized,
thereby emitting a large or small
induced charge. This charge is compared to a known reference to estimate
the state of the crystal.
In the process of reading the data, the crystal that is polarized in the
direction of the applied field loses its
current state [2]. Therefore, every read is accompanied by a write-back
to restore the state of the memory
location. With TI's MSP430 FRAM MCUs, this is inherent to the FRAM
implementation and is transparent
to the application. The write-back mechanism is also protected from
power loss and is ensured to
complete safely under all power conditions. The MSP430FRxx power
management system achieves this
by isolating the FRAM power rails from the device supply rails in the
event of a power loss. The FRAM
power circuitry also uses a built-in low-dropout regulator (LDO) and a
capacitor that store sufficient charge
to complete the current write-back in the event of a power failure [2].
Und das ist nur der Anfang - das Dokument lese ich mir bei Gelegenheit
mal in Ruhe durch.
Danke!