[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