EEPROM - jaký je počet zápisů ?

Jirka
Příspěvky: 55
Registrován: 18 lis 2015, 12:06

EEPROM - jaký je počet zápisů ?

Příspěvek od Jirka »

Zdravím,
do EEPROM uvádějí min. 100000 zápisů. Je to celkový počet zápisů na všechny adresy dohormady nebo na každou z adres?
Odpověď jsem si nějak odvodil ale chci si ověřit. Díky.
Uživatelský avatar
fulda
Příspěvky: 1072
Registrován: 04 led 2016, 17:18

Re: EEPROM - jaký je počet zápisů ?

Příspěvek od fulda »

U slušných výrobců je to počet smazání každé řádky (nebo každého bloku, nebo jak chceš říkat nejmenší mazatelné jednotce).
Pak je ještě otázka, jaký je zvolený mazací algoritmus, jestli pro zápis každého prdu provádí mazání a nebo ne.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Jirka
Příspěvky: 55
Registrován: 18 lis 2015, 12:06

Re: EEPROM - jaký je počet zápisů ?

Příspěvek od Jirka »

Uvažuji přepisovat po Bytu, max. dvou.
Uživatelský avatar
fulda
Příspěvky: 1072
Registrován: 04 led 2016, 17:18

Re: EEPROM - jaký je počet zápisů ?

Příspěvek od fulda »

To je informace, která nemá žádnou hodnotu.
Je potřeba rozlyšovat, kolik se toho pro daný zápis bude mazat.
pokud chceš té eeprom co nejvíce ulehčit, tak se používají metody tohoto typu:
na začátku si dáš bitmapu, která vyjadřuje, kde máš data. Řekněme, že tvoje eeprom má ve smazaném stavu hodnotu 0xFF a zapisují se "0". Pak v té bitmapě hodnota FF znamená, že aktuální data jsou v prvním bloku. Pak místo smazání toho bloku a zapsání nových dat, tak zapíšeš data do druhého bloku a v bitmapě zapíšeš (bez mazání) bitmapu 0xFE. další zápis pak do třetího bloku a na začátek zapíšeš FC a tak dále.
Tím zajistíš, že se v paměti maže o něco méně a o něco rovnoměrněji.

Ale celé tohle divadlo platí pouze tehdy, když jsi schopný oddělit mazání a zápis. Celá řada pamětí má nějakou vlastní logiku, kterou používá pro jednoduchý přístup, a ta logika jim velí kdy mazat a kdy ne.
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Jirka
Příspěvky: 55
Registrován: 18 lis 2015, 12:06

Re: EEPROM - jaký je počet zápisů ?

Příspěvek od Jirka »

No tohle chápu. Proto můj dotaz byl tak jak byl na začátku. Asi jsem to špatně popsal. Přiblížím o co mi jde.
Mám časy (celkem klidně jen několik Byte = 1 blok). To uložit, vypnout napájení všeho. Po zapnutí napájení tyto časy chci přečíst a reagovat. Když to budu psát postupně (po blocích do eeprom) tak musím uchovat nějak číslo posledního použitého bloku (a toto číslo musím pokaždé přepsat (nebo smazat a přepsat)). Nebo jak jinak?
Uživatelský avatar
fulda
Příspěvky: 1072
Registrován: 04 led 2016, 17:18

Re: EEPROM - jaký je počet zápisů ?

Příspěvek od fulda »

OK, máš vybraný typ paměti, kterou chceš používat?
Dnes jsou běžné paměti typu NAND, ty mají ve smazaném stavu hodnotu 1 a zápisem se přepíše na hodnotu 0.
Tedy, pokud té paměti řeknu, že má na adresu 5 zapsat hodnotu 0 a ta paměť má velikost bloku dejme tomu 20, tak to stejně znamená zápis právě jednoho bitu z původní 1 na 0 (pokud se neprobudí nějaký samomazací algoritmus a tak). A pro paměť to neznamená opotřebení.

Ale pokud takové paměti řeknu, že má na adresu 5 zapsat hodnotu 1 (a původní byla 0), tak musí paměť přečíst všech prvních 20 adres, někam si je poznamenat, pak provede smazání všech těch 20 adres a pak zapíše zpět obsah těch ostatních 19 a pak už je ta tvá v hodnotě 1, kterou jsi požadoval. Takže jsi tuto část paměti (těchto 20 adres) takzvaně "ohobloval" o jeden mazací cyklus (a máš jich místo 100000 už jen 99999).

Proto pokud máš potřebu "šetřit" paměť, tak si uděláš na začátku evidenci takovou, aby jsi k tomu potřeboval pouze ty "neopotřebovávající" operace (v mém příkladu přepis FF --> FE znamenal jen přepis jednoho bitu ve směru 1 --> 0, to bývá levná operace). Pochopitelně nemůžeš očekávat, že budeš zapisovat binární číslo. Musíš zapisovat číslo v takovém kódu, který nepotřebuje mazání. například:

Kód: Vybrat vše

hodnota	| binární zápis
0	| 1111 1111
1	| 1111 1110
2	| 1111 1100
3	| 1111 1000
4	| 1111 0000
5	| 1110 0000
6	| 1100 0000
7	| 1000 0000
8	| 0000 0000
Za pravopisné chyby v této zprávě může moje učitelka češtiny.
Jirka
Příspěvky: 55
Registrován: 18 lis 2015, 12:06

Re: EEPROM - jaký je počet zápisů ?

Příspěvek od Jirka »

Díky, tak nějak jsem odhadl, že by to šlo. To je takový "binární" "čítač". Tedy i binární i čítač je nadnesené.
No nevadí. To co teď řeším tak myslím vystačí s tím 100000 až 1000000 zápisů jak uvádějí.
Jen mě napadlo zda není nějaká finta kdyby bylo třeba do budoucna.
Napadlo mě ještě jedno řešení ale hrozně krkolomné. Raděj ani zatím neuvádím nebo mě někdo natře.
Díky za pomoc.
Pirx
Příspěvky: 163
Registrován: 24 úno 2013, 16:29
Kontaktovat uživatele:

Re: EEPROM - jaký je počet zápisů ?

Příspěvek od Pirx »

Nevim, jakou potrebujes kapacitu, ale co tam dat FRAM a je po problemu?
Ceny uz jsou celkem v pohode.

http://cz.farnell.com/c/polovodice-io/p ... hlookahead
Solder fumes makes you stronger!
Jirka
Příspěvky: 55
Registrován: 18 lis 2015, 12:06

Re: EEPROM - jaký je počet zápisů ?

Příspěvek od Jirka »

Už jsem se na ni díval (upozornění z jiného pramene-nepochybně přínos o ní vědět). Teď jde více či méně o teoretickou úvahu. Na to co teď zamýšlím mě stačí běžná eeprom. Jen když už jsem na to zabrousil v myšlence tak mě řešení začalo zajímat.
Uživatelský avatar
gilhad
Příspěvky: 215
Registrován: 29 kvě 2015, 00:36
Kontaktovat uživatele:

Re: EEPROM - jaký je počet zápisů ?

Příspěvek od gilhad »

V zavislosti na charakteru dat jde jeste vyuzit dalsi trik: Pokud VIM (jako ze urcite a fakt), ze se
  • resetuje na FF (FF ..)a
  • budou se zapisovat vzdy 1,(2,3,4,5,6,8) byte
  • nemuze se vyskytnout hodnota FF v datech (protoze to tak proste je - napriklad zapisuju BCD kodovana data)
tak muzu cist v cyklu data, dokud nenarazim na FF (FF FF).. a ta hodnota predtim je ta spravna, nova data se naopak zapisou na prvni volnou adresu, kde prepisou FF (FF FF)

(Varianta, pokud vim, ze data jsou nenulove delky - (napriklad anglicke retezce) a nemohou obsahovat FF, tak ctu dokud nenarazim na prazdny retezec a ten pred nim je aktualni hodnota. FF pouzivam jako oddelovac misto terminatoru \00)

(Varianta, pokud zapisuju obecne, ale kratke retezce, do 254 znaku, zapisu delku retezce a pak retezec, opet je FF zarazka)

Pokud pri hledani mista pro zapis narazim na konec pameti (nebo nepouzitelne maly zbytek), smazu vse a zacinam od zacatku.
Odpovědět