L'EEPROM est une «mémoire morte», alors pourquoi puis-je y écrire?


15

Programmable effaçable électriquement en lecture seule mémoire ( EEPROM ):

S'il utilise en lecture seule mémoire ( ROM ) alors comment suis - je capable d' écrire à elle?


13
Le mot "programmable" fait-il allusion à quelque chose?
Nick Alexeev

2
La ROM d'origine a été programmée par masque (ce qui est probablement là où vous êtes confus), mais nous devons avoir un moyen de mettre quelque chose dans d'autres ROM.
StainlessSteelRat

6
«Programmable» n'indiquera rien s'il est suivi par le non-indice «lecture seule».
TonyM

4
@TonyM, après avoir ajouté "effaçable", "programmable" n'est pas très utile à moins qu'il ne signifie en fait "reprogrammable". Mais les ROM programmables une fois sont également une chose utile car cela signifie que vous n'avez pas besoin de connaître le contenu avant même de placer un bon de commande pour la pièce.
The Photon

1
la réponse réelle est extrêmement simple: vous pouvez la programmer , mais vous ne pouvez / ne devez pas y écrire . Comme Nick l'a dit, les deux termes sont contextuels; "programmation" signifie généralement un seul cycle d'écritures séquentielles, visant à configurer la puce pour faire ce qu'elle est censée faire, généralement à très faible vitesse - en ce qui concerne l'architecture Harvard, vous ne pourrez pas écrire sur une telle mémoire pendant l'application exécution. Une "écriture" régulière signifie exactement cela - stocker des données pendant l'exécution du programme, généralement avec un accès rapide et / ou aléatoire.

Réponses:


27

L'acronyme EEPROM a une histoire qui suit le développement de la technologie.

ROM : mémoire morte . Écrit à l'usine.

PROM : Mémoire morte programmable mais programmable (une fois) par l'utilisateur. Vraiment une mémoire programmable et lisible pour toujours. Faites erreur et vous jetez la puce.

EPROM : Mémoire effaçable programmable en lecture seule. Généralement effacé à l'aide d'une lumière UV à travers une fenêtre en quartz au-dessus de la puce. Un peu de mal mais très utile.

EEPROM : mémoire morte programmable effaçable électriquement. Peut être effacé ou réécrit sous le contrôle du programme.

1

Figure 1. Une EPROM Intel 1702A, l'un des premiers types d'EPROM, 256 par 8 bits. La petite fenêtre en quartz admet la lumière UV pour l'effacement. Source: Wikipedia EPROM .

Donc, je vous entends dire, pourquoi l'appellent-ils eepROm alors qu'il est accessible en écriture? La réponse à cela est, je soupçonne, que, contrairement à la RAM (mémoire à accès aléatoire), il détient son contenu pendant le cycle d'alimentation et, par conséquent, se comporte plus comme une ROM .


1
Grande info! Votre réponse m'a incité à rechercher la possibilité de RAMconserver des données au-delà du cycle d'alimentation et j'ai trouvé ce petit bijou qui pourrait vous intéresser.
Jacksonkr

1
Ah, le 1702, la première EPROM que j'ai utilisée. Il avait l'étrange convention que vous deviez programmer l'inverse de ce que vous vouliez en sortir, car pour une raison quelconque, le processeur 4004 avec lequel il était conçu utilisait une convention de logique négative pour documenter son code d'assemblage. Donc, cette solution était de rendre les choses «plus faciles»!
Neil_UK

3
Et si vous passez à l'évolution ROM-> PROM-> EPROM-> EEPROM à l'étape suivante, vous avez une mémoire "flash". Largement utilisé dans les clés USB, les disques durs SSD, la mémoire persistante dans toutes sortes de gadgets grand public, etc. etc.
Richard Crowley

La conservation du contenu entre les cycles d'alimentation est loin d'être le seul endroit où la PROM tombe considérablement en deçà par rapport à la RAM à lecture équivalente, comme j'espère que ma réponse est claire.
underscore_d

RAM est volatile, eeprom est non volatile, il se souvient après un cycle d'alimentation. rom n'est pas volatile. eeprom vous lisez surtout et surtout n'écrivez pas, rom vous lisez et n'écrivez pas. Donc, eeprom ressemble beaucoup à une rom et comme le transistor l'a décrit, il faisait partie d'une évolution des solutions non volatiles.
old_timer

7

Je suis déconcerté par le nombre de commentateurs ici qui pensent que le terme ROM est uniquement un stratagème de marketing ou ne fait référence qu'à la perte de données à la mise hors tension.

La PROM est en grande partie «en lecture seule», dans le sens qualifié où il est impossible d'y écrire de la même manière et dans les mêmes contextes que vous le feriez avec une RAM «équivalente». En effet, E / EPROM nécessite:

  • effacement par UV (EPROM) ou par cycle 0xFF (EEPROM),
  • passer à un autre mode de programmation («écriture») des données,
  • qui, dans certains cas, nécessite des conditions d'alimentation, des temps d'attente, etc. différents.
  • Les limitations des cycles d'écriture rendraient toutes les PROM existantes inutiles pour le type de transfert / manipulation de données à volume élevé requis par de nombreux programmes.

... tout cela signifie que l'acte d'écrire dans une telle mémoire est lent, ne peut pas être efficacement entrelacé avec les opérations de lecture, use activement la puce, etc.

PROM est sur une ligue totalement différente de la RAM avec des spécifications de lecture équivalentes. D'où la raison pour laquelle il n'a pas été commercialisé sous forme de RAM. Le jeu aurait été colossal!

Donc, nous pourrions peut-être l'appeler Read Mostly Memory ou, pour les pédants, EWRPROM: éventuellement inscriptible, Runtime pratiquement en lecture seule ... mais en termes pratiques, la ROM est en plein dans le mille.


5
" ... y écrire de la même manière et dans les mêmes contextes que vous le feriez avec une RAM" équivalente "est impossible. " Mais ce n'était pas la question de l'OP et pour de nombreuses applications telles que l'enregistrement des paramètres de configuration, les pages imprimées, etc., L'EEPROM est idéale, malgré sa vitesse lente. Quelle que soit sa vitesse d'écriture, il est toujours accessible en écriture.
Transistor

@transistor Eh bien, tout comme la question est sujette à la sémantique, les réponses le sont aussi ... donc je ne suis pas sûr qu'une «vraie» réponse soit possible. Mon point était qu'il n'est pas «inscriptible» par un sens communément supposé de ce terme. C'est pourquoi, comme l'a souligné vaxquis, le terme alternatif programmable a été introduit. J'ai ajouté mon point de vue car je pense que ce détail important avait été négligé dans ce fil avant cela. Mais bien sûr, vous avez raison de dire que l'EEPROM suffit dans les cas appropriés, alors merci pour les détails.
underscore_d

3

Les premiers dispositifs de mémoire programmables étaient destinés à être écrits lorsqu'ils étaient branchés sur un appareil, puis à lire lorsqu'ils étaient branchés sur un autre. Bien que les appareils puissent généralement être lus dans le dispositif de programmation (afin que le dispositif de programmation puisse confirmer qu'ils ont été écrits correctement), la programmation des dispositifs nécessiterait souvent l'application de tensions inhabituelles qui ne seraient pas disponibles dans la plupart des dispositifs qui devaient les lire. En outre, les opérations d'écriture étaient plus lentes que les opérations de lecture. Les appareils ultérieurs ont été améliorés pour éliminer ces exigences, ce qui permet de les programmer dans l'appareil où il sera utilisé après la programmation, mais la différence entre les vitesses de lecture et d'écriture demeure.


1

Il est électriquement effaçable, vous pouvez donc y écrire.

Cela n'a aucun sens lorsque vous développez la ROM en mots. Mais je crois comprendre que l'EPROM a été ainsi nommé par son inventeur, Intel, comme une incitation marketing qui signifiait "Tout comme la ROM - mais vous pouvez la changer vous-même". C'était dans un monde de 1972 où le ROM signifiait énormément de mille pour un changement de masque.

L'EEPROM fait suite à ce précédent.


4
PROM: Mémoire morte programmable (non seulement réglée en usine). EPROM: mémoire morte programmable effaçable. Exige généralement une exposition aux UV pour effacer. EEPROM: mémoire morte programmable effaçable électriquement, permettant de gagner beaucoup de temps en évitant de placer votre appareil dans un lit de bronzage chaque fois que vous souhaitez le reprogrammer.
Le Photon

1
Les EPROM UV que j'ai vues ont de petites fenêtres en plastique. Vous les couvrez lorsque vous n'effacez pas.
mkeith

1
La désignation de ROM a beaucoup de sens lorsque vous prenez la peine de réfléchir aux aspects pratiques, présentés dans ma réponse, d'essayer d'utiliser une PROM comme s'il s'agissait de RAM. Essayez-le et voyez. J'attendrai!
underscore_d

@underscore_d, en fait, j'avais pris la peine de réfléchir et je ne suis pas sûr de la façon dont votre commentaire se compare à votre rapport inversé un peu plus tard "Eh bien, tout comme la question est sujette à la sémantique, les réponses aussi ... donc je ' Je ne suis pas sûr qu'une réponse "une seule vraie" soit possible " Quoi qu'il en soit, il y avait très peu de types de mémoire en 1972 et la ROM était un type distinct. En tant qu'acronyme autonome, l'EEPROM est en effet déroutant, selon la question des PO.
TonyM

1

J'ai découvert une réponse potentielle en écrivant la question

En regardant cet article ROM sur Wikipedia il semble que certaines ROM permettront l'écriture, mais si c'est le cas, la vitesse d'écriture sera lente ou l'écriture en général sera difficile, si possible.

Une autre friandise fascinante est que l'EEPROM a un nombre limité de fois où elle peut être écrite. L'article mentionne que l'EEPROM peut être effacé et écrit des milliers de fois, mais quand même!


1
Il s'agit d'une explication trop simpliste, et ne parvient pas à reconnaître les principales différences entre les différents types de ROM (par exemple, masque ROM vs OTP PROM vs EPROM, EEPROM et mémoire flash).
duskwuff -inactive-

@duskwuff Il semble que vous ayez d'excellentes informations sur le sujet. S'il vous plaît, partagez.
Jacksonkr

2
La citation de Wikipédia à laquelle vous faites référence est un clin d'œil à tous les différents types, mais @Jacksonkr a raison; cela simplifie trop. La ROM ne peut pas être écrite du tout. PROM peut être écrit une seule fois. L'EPROM peut être réécrite, mais seulement après une exposition à une lampe UV. (c'est-à-dire lentement et avec difficulté. ) L'EEPROM peut être réécrite, mais seulement après que vous lui ayez donné une commande d'effacement (c'est- à- dire lentement ).
Robert Harvey

2
@RobertHarvey Je pense que vous vouliez dire "@duskwuff a raison"?
Jacksonkr

1
[soupir] Et maintenant, tous les commentaires sont foirés.
Robert Harvey

1

Les EEPROM et même les mémoires Flash utilisent une évolution de la même technologie (grille flottante) que les EPROM, et non une technologie qui serait utilisée pour les dispositifs SRAM ou DRAM.

Les EEPROM sont fortement asymétriques en lecture et en écriture: les cycles de lecture sont pratiquement illimités, rapides (des dizaines ou des centaines de nanosecondes), et toujours possibles avec seulement les tensions de fonctionnement principales appliquées. Les cycles d'écriture sont beaucoup plus lents et nécessitent parfois des tensions supplémentaires appliquées (une EEPROM parallèle 2816 aura besoin d'une alimentation supplémentaire de 12 V pour certaines opérations de programmation, et aura un temps d'écriture en centaines de microsecondes ou même plus lent en fonction de la marque et du modèle exacts, et ont des cycles d'écriture limités).

Les mémoires flash ne sont pas un accès aléatoire pour l'écriture (écraser un mot nécessite que vous effaciez plus qu'un mot), certains types (NAND) ne sont même pas un accès aléatoire pour la lecture.

Notez que certains (pas tous!) Des périphériques commercialisés en tant que PROM ou ROM étaient des EPROM OTP (sans fenêtre) internes.


0

Ce n'est qu'une ROM par rapport à la RAM volatile (la mémoire à accès aléatoire qui perdra son état une fois l'alimentation coupée). Un nom hérité qui n'a plus de sens après des décennies.


2
Je ne serais pas d'accord, Passerby; le nom est en fait parfaitement logique dans le contexte. Nous avons NVRAM, et nous avons EEPROM. Les deux termes mettent en évidence différents modes d'utilisation attendus des mémoires, différentes vitesses de lecture / écriture, différents temps de rétention de données, etc.

-1

L'EPROM / PROM est LUE UNIQUEMENT au RUNTIME. Lorsque vous exécutez l'application prévue (PC, contrôleur intégré, etc.), elle ne peut pas être écrite par le programme en cours d'exécution. Vous devez le retirer et le saisir dans un appareil d'écriture spécial, où vous écrivez tout le contenu à la fois.

Comme cela m'a été signalé dans les commentaires, l'EEPROM peut être configurée pour être accessible en écriture au moment de l'exécution car elle est accessible en écriture par voie électronique. Mais dans l'utilisation quotidienne, il n'est pas accessible en écriture, l'architecture l'empêche généralement. Habituellement, vous utilisez un utilitaire "flash" spécial fourni par le fabricant pour y accéder et l'écrire, et il est généralement écrit en une seule fois plutôt que dans un mode d'accès aléatoire. Quelqu'un dans une réponse ci-dessus a fait un grand acronyme pour cela qui s'appliquerait.

La RAM, y compris la NVRAM, peut être écrite au moment de l'exécution par le périphérique hôte.

Bien que toute la ROM soit non volatile et MOST RAM soit volatile, la NVRAM est non volatile, ce qui n'est pas la seule différence discernable entre eux.


La ROM est en lecture seule. " Vous devez le retirer et le saisir dans un appareil d'écriture spécial, où vous écrivez tout le contenu en même temps. " C'est la programmation donc par définition c'est un périphérique PROM (Programmable Read-Only Memory). " Runtime " ne s'applique pas. Ce n'est pas un compilateur. Bienvenue à EE.SE.
Transistor

Je voulais dire EEPROM ou PROM et, par erreur, j'ai seulement écrit ROM
Trashman

2
Toujours pas bien. L'EEPROM est accessible en écriture par le périphérique hôte. Il est couramment utilisé pour enregistrer les paramètres de configuration. Voir d'autres réponses sur la page.
Transistor

/ Accepter le transistor - si l'EEPROM est désignée comme zone de code dans l'architecture Harvard (modifiée) sur laquelle elle ne peut pas être écrite (comme un simple résultat de la conception du bus).

Non, c'est aussi à l'envers. Dans une architecture Harvard "modifiée", vous pouvez généralement écrire dans l'espace de code, généralement moins efficacement, ce n'est que dans un espace pur où vous ne pouvez pas. Et en ce qui concerne la réponse elle-même, le 8052AH de base prend en charge l'utilisation d'une EPROM (UV) comme stockage inscriptible au moment de l'exécution - vous aviez besoin d'une alimentation 12v ou plus et d'un transistor pour l'activer. Bien sûr, il ne pouvait pas l'effacer dans le circuit, mais il pouvait continuer à ajouter des programmes enregistrés jusqu'à manquer d'espace.
Chris Stratton
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.