EEPROM to „pamięć tylko do odczytu”, więc dlaczego mogę do niej pisać?


15

Elektrycznie kasowalna programowalna pamięć tylko do odczytu ( EEPROM ):

Jeśli korzysta z pamięci tylko do odczytu ( ROM ), to w jaki sposób mogę do niej pisać ?


13
Czy słowo „programowalne” coś sugeruje?
Nick Alexeev

2
Oryginalna pamięć ROM została zaprogramowana na maskę (co jest prawdopodobnie miejscem, w którym się mylisz), ale musimy mieć sposób na umieszczenie czegoś w innych pamięciach ROM.
StainlessSteelRat

6
„Programowalny” niczego nie podpowie, jeśli po nim pojawi się „tylko do odczytu”.
TonyM

4
@TonyM, po dodaniu „kasowalnego”, „programowalny” nie jest zbyt użyteczny, chyba że w rzeczywistości oznacza „reprogramowalny”. Ale jednorazowe programowalne ROM-y są również przydatne, ponieważ oznacza to, że nie musisz znać ich zawartości, zanim nawet umieścisz zamówienie na część.
Photon

1
faktyczna odpowiedź jest niezwykle prosta: możesz ją zaprogramować , ale nie możesz / nie powinnaś do niej pisać . Jak powiedział Nick, oba terminy są kontekstowe; „programowanie” zwykle oznacza pojedynczy cykl sekwencyjnych zapisów, mających na celu skonfigurowanie układu do robienia tego, co jest zamierzone, zwykle z bardzo małą prędkością - w odniesieniu do architektury Harvarda, nie będziesz mógł pisać do takiej pamięci podczas aplikacji wykonanie. Regularne „pisanie” oznacza właśnie to - przechowywanie danych podczas wykonywania programu, zwykle z szybkim i / lub losowym dostępem.

Odpowiedzi:


27

Akronim pamięci EEPROM ma pewną historię, która wynika z rozwoju technologii.

ROM : pamięć tylko do odczytu. Napisane w fabryce.

PROM : Programowalna pamięć tylko do odczytu, ale programowalna (raz) przez użytkownika. Naprawdę jednorazowa, programowalna, zawsze czytelna pamięć. Źle to zrobisz i zrzucisz chip.

EPROM : kasowalna programowalna pamięć tylko do odczytu. Zwykle usuwany za pomocą światła UV przez okienko kwarcowe nad mikroukładem. Trochę kłopotów, ale bardzo przydatne.

EEPROM : Elektrycznie kasowalna programowalna pamięć tylko do odczytu. Można usunąć lub ponownie napisać pod kontrolą programu.

1

Rysunek 1. Intel 1702A EPROM, jeden z najwcześniejszych typów EPROM, 256 na 8 bitów. Małe okno kwarcowe przepuszcza światło UV w celu skasowania. Źródło: Wikipedia EPROM .

Więc słyszę, jak mówisz, dlaczego nazywają to eepROm, gdy można to zapisać? Podejrzewam, że odpowiedź na to pytanie jest taka, że ​​w przeciwieństwie do RAM ( pamięci o dostępie swobodnym) zachowuje swoją zawartość podczas cyklu zasilania i dlatego zachowuje się bardziej jak ROM .


1
Świetna informacja! Twoja odpowiedź zachęciła mnie do sprawdzenia możliwości RAMprzechowywania danych poza cyklem zasilania i znalazłem ten mały klejnot , który może Cię zainteresować.
Jacksonkr

1
Ach, 1702, pierwsza używana pamięć EPROM. Miał dziwną konwencję, że trzeba było zaprogramować odwrotność tego, co chcesz z niego wyjść, ponieważ z jakiegoś powodu procesor 4004, z którym został zaprojektowany, używał konwencji logiki negatywnej do udokumentowania swojego kodu asemblera. Ta poprawka miała sprawić, że wszystko stanie się „łatwiejsze”!
Neil_UK

3
A jeśli przeniesiesz ewolucję ROM-> PROM-> EPROM-> EEPROM do następnego kroku, masz pamięć „flash”. Szeroko stosowany w napędach USB, „twardych” dyskach półprzewodnikowych, trwałej pamięci we wszelkiego rodzaju gadżetach konsumenckich itp.
Richard Crowley

Przechowywanie zawartości między cyklami zasilania jest dalekie od jedynego miejsca, w którym PROM jest dramatycznie krótki w porównaniu do pamięci RAM o równorzędnej specyfikacji, co mam nadzieję, że moja odpowiedź jest jasna.
underscore_d

taran jest lotny, eeprom jest nielotny, pamięta po cyklu zasilania. rom jest nielotny. eeprom głównie czytasz i przeważnie nie piszesz, rom czytasz i nie piszesz. Więc eeprom jest podobny do romu i jak opisał tranzystor, był on częścią ewolucji nielotnych rozwiązań.
old_timer

7

Zaskakuje mnie, ilu komentatorów uważa, że ​​termin ROM jest wyłącznie chwytem marketingowym lub odnosi się tylko do utraty danych po wyłączeniu zasilania.

PROM jest bardzo „tylko do odczytu”, w kwalifikowanym sensie, że pisanie do niego w taki sam sposób i kontekst, jak w przypadku „równoważnej” pamięci RAM jest niemożliwe. Wynika to z faktu, że E / EPROM wymaga:

  • skasowanie przez UV (EPROM) lub cykl 0xFF (EEPROM),
  • przejście do innego trybu programowania („zapisywania”) danych,
  • co w niektórych przypadkach wymaga innych warunków zasilania, czasów oczekiwania itp.
  • Ograniczenia cykli zapisu sprawiłyby, że wszystkie istniejące moduły PROM byłyby bezużyteczne w przypadku przesyłania / manipulacji danych o dużej objętości, potrzebnych wielu programom.

... wszystko to oznacza, że ​​zapis w takiej pamięci jest powolny, nie można go skutecznie przeplatać operacjami odczytu, aktywnie zużywa układ itp.

PROM należy do zupełnie innej ligi niż pamięć RAM z równoważnymi specyfikacjami odczytu. Dlatego nie był sprzedawany jako jakakolwiek forma pamięci RAM. Luz byłby kolosalny!

Moglibyśmy więc nazwać to pamięcią głównie do odczytu lub, dla pedałów, EWRPROM: w końcu zapisywalna, pamięć wykonawcza praktycznie tylko do odczytu ... ale w praktyce ROM jest strzałem w dziesiątkę.


5
... pisanie do niego w taki sam sposób i kontekst jak w przypadku„ równoważnej ”pamięci RAM jest niemożliwe. ” Ale to nie było pytanie OP i dla wielu aplikacji, takich jak zapisywanie ustawień konfiguracji, wydrukowanych stron itp., EEPROM jest idealny pomimo niskiej prędkości. Niezależnie od prędkości zapisu, nadal można zapisywać.
Tranzystor

@transistor Cóż, podobnie jak pytanie podlega semantyce, tak samo są odpowiedzi ... więc nie jestem pewien, czy jakakolwiek „prawdziwa” odpowiedź jest możliwa. Chodziło mi o to, że nie jest to „zapisywalne” według jednego powszechnie przyjętego znaczenia tego terminu. Dlatego, jak zauważył vaxquis, wprowadzono alternatywny termin programowalny . Dodałem swoje zdanie, ponieważ uważam, że ten ważny szczegół został przeoczony w tym wątku przed tym. Ale pewnie masz rację, że EEPROM wystarcza w odpowiednich przypadkach, więc dziękuję za szczegóły.
underscore_d

3

Wcześniej programowalne urządzenia pamięci miały być zapisywane po podłączeniu do jednego urządzenia, a następnie czytane po podłączeniu do innego. Podczas gdy urządzenia można ogólnie odczytać w urządzeniu do programowania (więc urządzenie do programowania może potwierdzić, że zostały poprawnie zapisane), programowanie urządzeń często wymagałoby zastosowania nietypowych napięć, które nie byłyby dostępne w większości urządzeń, które musiały je odczytać. Ponadto operacje zapisu były o rząd wielkości wolniejsze niż operacje odczytu. Późniejsze urządzenia zostały ulepszone w celu wyeliminowania takich wymagań, umożliwiając ich programowanie w urządzeniu, w którym będzie używane po programowaniu, ale różnica między prędkościami odczytu i zapisu pozostaje.


1

Można go wymazywać elektrycznie, więc możesz do niego pisać.

Nie ma sensu rozszerzanie pamięci ROM na słowa. Ale rozumiem, że EPROM został tak nazwany przez jego wynalazcę, Intela, jako zachęta marketingowa, która oznaczała „Tak jak ROM - ale możesz to zmienić samodzielnie”. Działo się to w świecie z 1972 roku, w którym ROM oznaczał kilka tysięcy za zmianę maski.

EEPROM wynika z tego precedensu.


4
PROM: Programowalna pamięć tylko do odczytu (nie tylko ustawiona fabrycznie). EPROM: kasowalna programowalna pamięć tylko do odczytu. Zazwyczaj wymaga naświetlania UV w celu usunięcia. EEPROM: kasowalna elektrycznie programowalna pamięć tylko do odczytu, oszczędzająca dużo czasu, nie umieszczając urządzenia w solarium za każdym razem, gdy chcesz go przeprogramować.
Photon

1
EPROMy UV, które widziałem, mają małe okna w plastiku. Zasłaniasz je, gdy nie wymazujesz.
mkeith

1
Oznaczenie ROM ma wiele sensu, gdy zastanawiasz się nad praktycznymi aspektami, przedstawionymi w mojej odpowiedzi, próbowania użycia PROM tak, jakby to była pamięć RAM. Wypróbuj i przekonaj się. Poczekam!
underscore_d

@underscore_d, tak naprawdę miałem problem z myśleniem i nie jestem pewien, jak twój komentarz ma się do twojego nieco późniejszego biegu wstecznego „Cóż, podobnie jak pytanie podlega semantyce, podobnie jak odpowiedzi… więc” Nie jestem pewien, czy jakakolwiek „prawdziwa” odpowiedź jest możliwa ”. W każdym razie w 1972 r. Było bardzo mało typów pamięci, a ROM był odrębnym typem. Jako samodzielny akronim, EEPROM jest rzeczywiście mylący, jak na pytanie PO.
TonyM

1

Podczas pisania pytania odkryłem potencjalną odpowiedź

Patrząc na ten artykuł ROM na Wikipedii , wygląda na to, że niektóre ROM pozwolą na pisanie, ale jeśli tak, to prędkość zapisu będzie wolna lub pisanie ogólnie będzie trudne, jeśli to możliwe.

Kolejną fascynującą ciekawostką jest to, że pamięć EEPROM ma ograniczoną liczbę przypadków, w których można ją zapisać. W artykule wspomniano, że pamięć EEPROM można czyścić i zapisywać tysiące razy, ale nadal!


1
Jest to zbyt uproszczone wytłumaczenie i nie rozpoznaje kluczowych różnic między różnymi typami pamięci ROM (np. Maskowanie pamięci ROM vs. OTP PROM vs. EPROM, EEPROM i pamięć flash).
duskwuff -inactive-

@duskwuff Wygląda na to, że masz doskonałe informacje na ten temat. Proszę, udostępnij.
Jacksonkr

2
Cytat w Wikipedii, do którego się odwołujesz, jest ukłonem w stronę wszystkich różnych typów, ale @Jacksonkr ma rację; nadmiernie upraszcza. W ogóle nie można zapisać ROM. PROM można zapisać raz. EPROM można przepisać, ale tylko po ekspozycji na lampę UV. (tzn. powoli i z trudem. ) EEPROM można przepisać, ale dopiero po wydaniu polecenia usunięcia (tj. powoli ).
Robert Harvey

2
@RobertHarvey Myślę, że miałeś na myśli „@duskwuff ma rację”?
Jacksonkr,

1
[westchnienie] A teraz wszystkie komentarze są pomieszane.
Robert Harvey

1

EEPROM, a nawet pamięci Flash wykorzystują ewolucję tej samej technologii (pływająca brama), z której korzystają EPROMy, a nie technologii, która byłaby używana w urządzeniach SRAM lub DRAM.

EEPROM są silnie asymetryczne w zachowaniu odczytu względem zapisu: cykle odczytu są praktycznie nieograniczone, szybkie (dziesiątki lub setki nanosekund) i zawsze możliwe tylko przy zastosowaniu głównych napięć roboczych. Cykle zapisu są znacznie wolniejsze i czasami wymagają zastosowania dodatkowych napięć (EEPROM równoległy 2816 będzie wymagał dodatkowego zasilania 12V dla niektórych operacji programowania i będzie miał czas zapisu w setkach mikrosekund lub nawet wolniejszy, w zależności od dokładnej marki i modelu, oraz mają ograniczone cykle zapisu).

Pamięci flash nie mają losowego dostępu do pisania (nadpisanie słowa wymaga usunięcia więcej niż słowa), niektóre typy (NAND) nie mają nawet losowego dostępu do czytania.

Zauważ, że niektóre (nie wszystkie!) Urządzenia sprzedawane jako PROM lub ROM były wewnętrznie OTP (bez okien) EPROM.


0

To tylko ROM w porównaniu do Volatile RAM (pamięć o dostępie swobodnym, która straci swój stan po utracie zasilania). Dawne nazewnictwo, które nie ma już sensu po dziesięcioleciach.


2
Nie zgodziłbym się, Passerby; nazwa faktycznie ma doskonały sens w kontekście. Mamy NVRAM i EEPROM. Oba terminy podkreślają różne oczekiwane tryby użycia pamięci, różne prędkości odczytu / zapisu, różne czasy przechowywania danych itp.

-1

EPROM / PROM ODCZYTA SIĘ TYLKO w RUNTIME. Po uruchomieniu zamierzonej aplikacji (komputer, wbudowany kontroler itp.) Nie można jej zapisać w uruchomionym programie. Musisz go wyjąć i wprowadzić do specjalnego aparatu do pisania, w którym zapisujesz całą zawartość na raz.

Jak wskazano mi w komentarzach, pamięć EEPROM może być skonfigurowana do zapisywania w czasie wykonywania, ponieważ jest zapisywalna elektronicznie. Ale w codziennym użyciu nie można go zapisać, architektura zwykle temu uniemożliwia. Zwykle używasz specjalnego narzędzia „flash” dostarczonego przez producenta, aby uzyskać do niego dostęp i pisać, i zwykle jest zapisywane naraz, a nie w trybie losowego dostępu. Ktoś w powyższej odpowiedzi wymyślił duży akronim, który miałby zastosowanie.

Pamięć RAM, w tym NVRAM, może być zapisywana w czasie wykonywania przez urządzenie hosta.

Chociaż cała pamięć ROM jest nieulotna, a MOST RAM jest lotna, NVRAM jest nieulotny, więc nie jest to jedyna dostrzegalna różnica między nimi.


ROM jest tylko do odczytu. „ Musisz go wyjąć i wprowadzić do specjalnego aparatu do pisania, w którym zapisujesz całą zawartość naraz. ” To programuje, więc z definicji jest to urządzenie PROM (programowalna pamięć tylko do odczytu). „ Środowisko wykonawcze ” nie ma zastosowania. To nie jest kompilator. Witamy w EE.SE.
Tranzystor

Miałem na myśli EEPROM lub PROM i błędnie napisałem tylko ROM
Trashman

2
Nadal nie tak. EEPROM jest zapisywalny przez urządzenie hosta. Jest powszechnie używany do zapisywania ustawień konfiguracji. Zobacz inne odpowiedzi na stronie.
Tranzystor

/ agree tranzystor - iff EEPROM jest oznaczony jako obszar kodu w (zmodyfikowanej) architekturze Harvarda, do którego nie można go zapisać (jako prosty wynik projektu magistrali).

Nie, to też jest wstecz. W „zmodyfikowanej” architekturze Harvarda zwykle można pisać w przestrzeni kodu, zwykle mniej wydajnie, tylko w czystej nie można tego zrobić. A jeśli chodzi o samą odpowiedź, podstawa 8052AH obsługiwana była za pomocą EPROM (UV) EPROM jako pamięci do zapisu w czasie wykonywania - potrzebowałeś zasilania o napięciu 12 V i tranzystora, aby to umożliwić. Oczywiście nie mógł wymazać go z obwodu, ale mógł dodawać zapisane programy, aż zabraknie miejsca.
Chris Stratton,
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.