[elektro] E2PROM ill FLASH adattárolás érvényesség kezelése
Móczik Gábor
pm_levlista at progzmaster.hu
Fri Sep 5 09:24:58 CEST 2014
2014.09.04. 23:12 keltezéssel, hg12345 írta:
> folyamatos üzemű berendezésnél kikapcsoló gomb nincs :-), csak áramtalanítás :-(, mire észleled már nincs szufla.
Hát azért meg lehet rendesen is csinálni. :-)
Ne a puffer fesz csökkenést érzékeld, hanem a betáp szinuszból ha
kimarad 1-2-3 periódus, akkor dönts úgy, hogy áramszünet van. Ekkor kéne
a CPU panelen átkapcsolni mentés üzemmódba, csak ami ehhez szükséges, az
kapjon tápot. Nem hiszem, hogy mai technika mellett nem lehet akár
percekig is elműködtetni egy procit meg egy flash-t.
> A FLASH a probléma a következő, írási lap 256 byte vagyis a CRC miatt az adat elérés nem lesz folytonos, ezért a kezelésnél egyes beolvasásnál kell kélt blokkot kell felolvasnom,
> A egy törlési blokk 4K vagyis 16 írási blokk, tehát 16x10000 vagyis egy kevesebb mint 1/10 egy EEPROM-nak és még ezt rontja 1/16 résszel a törlések száma. Ugyan két blokkot kell kezelni, vagyis kb 300e endurence adódik. A memória 512 blokk*8K 4Mbyte felel meg egy 128K EEPROMnak 1/10 endurance-al.
Hogy a kérdésedre válaszoljak, mindegy milyen megoldást használsz, ezt
leginkább a feladat igénye dönti el. Ha csak azt kell tudni, hogy rossz
az adat, de mindegy hogy mennyi adat rossz, akkor akár az egész chip-re
is tehetsz CRC-t. Ha fontos, hogy minél kevesebb adatvesztést kelljen
pótolni, akkor tegyél blokkonként CRC-t, célszerűen a törölhető/írható
lapméretű blokkonként.
A felette lévő alkalmazást ígyis-úgyis fel kell készíteni a problémára.
Ha ezt nem akarod vagy nincs lehetőséged, és az alkalmazás egy
címfolyamatos tárhelyet vár, akkor az egyetlen lehetőséget, hogy
közbeiktatsz egy transzparens réteget, ami az alkalmazásnak egy
folyamatos címteret emulál és belül elvégzi a blokkokra bontást, a CRC
(re)kalkulációkat, újraírásokat, miegyebeket. Ezt teljesen általánosra
megcsinálni wear-leveling, page-cache meg miegyébbel együtt, azért nem
egy hétvégi munka.
More information about the Elektro
mailing list