Dlaczego nadal należy używać zwykłej pamięci EEPROM zamiast pamięci flash?


34

Czy istnieje jakiś powód, dla którego ludzie nadal używają (i wdrażają w nowych systemach) normalnych EEPROM zamiast pamięci flash?

Z wikipedii z pamięcią Flash :

Pamięć flash została opracowana z EEPROM (elektrycznie kasowalna programowalna pamięć tylko do odczytu).

Czy byłyby jakieś wady (zużycie energii, miejsce, prędkość itp.) W korzystaniu z pamięci flash zamiast normalnej pamięci EEPROM?


Myślę, że możesz się mylić między EPROM (usuwalny tylko w UV, głównie przestarzały) i EEPROM (usuwalny elektrycznie).
— pjc50

@ pjc50 Nie jestem - zacytowałem niewłaściwą część wiki, naprawiłem teraz - dzięki :)

2
Flash jest usuwany w dużych porcjach, natomiast pamięć EEPROM może być usuwana w bajcie.
— jippie

2
Nigdy nie dowiesz się, że są takie same, czytając arkusze danych PIC ... mają nawet inne cechy. Ale chyba to może być marketing. W końcu mają też „Enhanced Flash”. BTW, EEPROM zniknął na PIC 32, a minimalny zapis strony flash to 4k bajtów.
— gbarry

2
@gbarry: Nie są takie same. Flash to EEPROM, ale nie wszystkie EEPROM to flash. Zapamiętaj, co oznacza EEPROM, czyli elektronicznie kasowalna programowalna pamięć tylko do odczytu .
— Olin Lathrop

Odpowiedzi:


26

Mówiąc pedantycznie, pamięć FLASH jest jedynie formą pamięci EEPROM: tutaj jest aspekt marketingowy / brandingowy. Zazwyczaj stosuje się obecnie rozróżnienie między tym, że EEPROMS są jednobajtowe (lub słowo pamięci) kasowalne / wielokrotnego zapisu, podczas gdy FLASH jest oparty na blokach dla operacji kasowania / zapisu.

Odpowiedni do pytania:

  • EEPROM są nadal popularne ze względu na maksymalne oceny cyklu kasowania / zapisu o rząd wielkości lub dwa razy lepsze niż FLASH
  • Z uwagi na to, że inwestycje w projektowanie zwykle amortyzowane były w miarę upływu czasu, jak w przypadku każdej dojrzałej technologii, koszt produkcji i testowania zmniejsza się w porównaniu z nowszą technologią.

2
Wszyscy mówią o skasowaniu jednego bajtu lub bloku, ale jaka jest teoria? mogę również usunąć dowolną liczbę bajtów z pamięci flash !!!
— Bestia

1
@Frankenstein, jak to się robi?
— abdullah kahraman

19

Liczba cykli zapisu, które może obsłużyć większość pamięci EEPROM, znacznie przewyższa liczbę cykli zapisu, które może obsłużyć większość pamięci flash.

EEPROMS może ogólnie obsługiwać ~ 100 000-1 000 000 zapisów na komórkę.
Flash jest ogólnie oceniany na ~ 1 000-100 000 zapisów (różni się znacznie w zależności od rodzaju flasha).

Kolejną zaletą pamięci EEPROM w porównaniu z pamięcią flash jest to, że pamięć flash musi być zazwyczaj usuwana w blokach, więc jeśli twoje wzorce zapisu obejmują sekwencyjne jednobajtowe zapisywanie, będziesz używał o wiele więcej cykli zapisu w pamięci flash, niż zrobiłbyś to z równoważnym EEPROM, tak jak EEPROM pamięć może być zasadniczo usuwana na podstawie bajtu, a nie na podstawie cyklu flashowania dla bloku.

Zasadniczo flash jest zwykle usuwany w blokach o wielkości ~ 64-512 kilobajtów. Dlatego dla każdego zapisu w dowolnym miejscu tego bloku sterownik musi skasować cały blok, używając cyklu zapisu dla całego bloku. Możesz zobaczyć, że jeśli sekwencyjnie wykonywałeś jednobajtowe zapisy na każdym adresie w bloku, skończyłbyś wykonywanie w dowolnym miejscu od 64K do 512K zapisów w całym bloku, co mogłoby z łatwością wykorzystać całą wytrzymałość zapisu flasha.

Jako takie, pamięci EEPROM są zwykle używane w sytuacjach, gdy lokalny procesor jest mały i nie ma możliwości buforowania zapisów na każdej stronie flash.


Wiele z tego staje się coraz mniej prawdziwe w miarę postępu technologii flash. Istnieją układy scalone pamięci flash, które obejmują funkcje lokalnego buforowania zapisu, a także dramatycznie zwiększają wytrzymałość zapisu w pamięci flash.


Rozmiar bloku kasującego i bloku zapisu zwykle nie jest taki sam. Również w przypadku starszej pamięci flash typu „jeden bit na komórkę” można niezawodnie nadpisywać bloki przynajmniej raz, o ile zapis nie wymagał zmiany wartości bitu z powrotem do stanu skasowanego. Na przykład, jeśli 1 jest stanem wymazanym, przy 16-bitowych blokach można zapisać 0bxxxxxxxx11111111, a później napisać 0bxxxxxxxxyyyyyyyyy (lub nawet 0b1010101011111111, a później 0b00000000xxxxxxxx).
— Paul A. Clayton,

@ PaulA.Clayton - Dobra uwaga.
— Connor Wolf,

@ PaulA.Clayton: Jedną rzeczą, którą chciałbym, aby dostawcy Flash udokumentowali, jest to, czy można zgodnie z prawem wyzerować dużą część już napisanego bloku flash, bez konieczności jego wcześniejszego usunięcia. Bardzo przydatna byłaby możliwość bezpośredniego unieważnienia strony bez konieczności śledzenia w innym miejscu faktu, że strona została unieważniona.
— supercat
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.