Is there a historical reason? Since it is rewritable it isn't read only by definition, so why call it so?
-
7The naming is about the default usage type. EEPROMs are usually meant as ROM like long term storage, or as direct ROM replacement for low volume applications. Writing is as well often way slower than reading. Beside that it's naming by adding attributes. Isn't that rather a generic EE question? EEPROM aren't any more specific to retro computing than transistors or CPUs. – Raffzahn Jan 31 '21 at 17:47
-
18Now try to wrap your head around the stupid term OTP-EEPROM – pipe Feb 01 '21 at 12:12
-
4About a year ago, a similar question was asked on [softwareengineering.se], wondering why a USB stick using Flash-EEPROM has "Read-Only" in its name, when you can use it exactly like an external USB hard disk: Why is FLASH memory considered “Read Only” by definition? I wonder what an answer on [electronics.se] would look like. – Jörg W Mittag Feb 01 '21 at 17:03
-
1This takes me back... In the 80s I worked in Motorola and we made an EEPROM with 32 words of 32-bits so 1kB of storage, in an 8-pin device. You could read it with 5V TTL, but to erase and re-program, you needed to power up a 32V pin. – Oscar Bravo Feb 01 '21 at 18:04
-
3This question has been discussed at electronics.SE: https://electronics.stackexchange.com/questions/505401/eeprom-being-both-programmable-and-read-only/505421#505421 – Horror Vacui Feb 01 '21 at 23:46
-
9Actually we were originally going to call it "write-sometimes but read-mostly memory" but nobody could pronounce "WSBRMM" without blowing spit bubbles. – A. I. Breveleri Feb 02 '21 at 02:32
-
1Expecting names to make sense is unhelpful. – philipxy Feb 02 '21 at 06:37
-
I have seen a developer make the mistake of treating Flash memory just like RAM. EEPROM has similar constraints. This developer was setting a variable based on a volume control switch (hold it down to fade up / down the volume). In code, its easy to loop on a timer while that button is held down, adjusting the value of the variable in RAM with each loop. To preserve the setting after shutdown, you need to write it to flash. However in flash you have to erase and rewrite and entire block of memory, not just one variables value. So in RAM we have to preserve all the different non volatile settin – Ben Matthews Feb 02 '21 at 15:52
-
1Sometimes constants are variable. Parameters are on he fence – Hagen von Eitzen Feb 03 '21 at 02:58
8 Answers
Look at the development:
ROM = read-only memory = can only be read when on the board, programmed in the chip factory.
PROM = programmable read-only memory = can be programmed with a special programmer, but read-only when on the board.
EPROM = erasable programmable read-only memory = can be repeatedly programmed with a special programmer, after erasing it with UV light, but read-only when on the board.
EEPROM = electrically erasable programmable read-only memory = can be electrically erased with higher voltages (no UV light needed) in the programmer, but read-only when on the board (because erasing and re-programming mostly isn't done on the board).
So they all serve the same function: read-only memory on the board. Just the means of programming and erasing is different.
Also, erasing an EEPROM takes on the order of minutes, and could originally only done completely - much too slow and too impractical for actual storage.
"Flash ROM" was given this name because it was very fast to erase, so it made sense for the first time to do this during actual usage.
- 27,321
- 3
- 72
- 113
-
3Good answer. Short answer is, you can't change the contents without popping the cover off the computer. – Walter Mitty Jan 31 '21 at 17:21
-
4There are as well EEPROM that can be clearing in smaller units, even down to byte level, as well as some that allow rewriting without clearing. Next to any combination can be found by now. The important point is that it's a naming convention grown out of history. – Raffzahn Jan 31 '21 at 17:42
-
12It's more historic than anything else, yes. Some microcontrollers (such as Atmel AVR) have internal "EEPROM" storage that can be read/rewritten at the byte level like RAM, but are effectively non-volatile. – scruss Jan 31 '21 at 17:58
-
3And these days flash ROM tends to be called flash memory, to reflect the relative ease of reprogramming it. – Frog Feb 01 '21 at 02:38
-
The EPROMs are sometimes called UVEPROMs. Not sure how strong the UV needs to be - I have had one by the window in whatever sunshine we get in the UK for almost a year and it hasn't dropped any bits yet. – cup Feb 01 '21 at 07:55
-
-
@dirkt There is also EA[P]ROM - Electrically Alterable [Programmable] ROM, which allows partial reprogramming without having to clear and blow the entire ROM from scratch. – Eight-Bit Guru Feb 01 '21 at 14:20
-
3EEPROM: "erasing and re-programming isn't done on the board" sorry, but this is completely wrong. Basically every modern chip design, with maybe very rare exceptions, can self-program its own EEPROM without any external programmer tool. – vsz Feb 01 '21 at 18:31
-
3@vsz we are talking retrocomputing here, not modern computing. Yes, modern "EEPROMS" (or rather, Flash ROMs) can be programmed on the board through an I2C interface. Which is very very different from the original EEPROMS, when they were named "EEPROM", and had lots of pins for parallel data and address buses, and did need the highter voltages externally, because they couldn't be generated internally. You are comparing apples and oranges. – dirkt Feb 01 '21 at 19:53
-
2@dirkt : How retro are we going? The very first commercially successful EEPROM afaik was the Intel-2816, from 1978 and it indeed required high voltage to erase, but its successor, the 2816A didn't. You can check the datasheet. It's from 1983. Isn't 1983 retro enough? – vsz Feb 01 '21 at 20:14
-
1@dirkt : Also, even the original 2816 was often used in a way that it was programmed on the board, with a small circuitry providing the erasing impulse, which could then be controlled by the microcontroller on the board, without requiring any external programmer. – vsz Feb 01 '21 at 20:25
-
1@vsz: And it was also often used not in that way: You'd take a 2816, program it with the external programmer, and substitute your Apple character generator ROM with it. And so on. And if you know all that, you shouldn't be complaining... Just because it can be programmed on-board (after all, it the programmer is just a board...) doesn't mean that this was the major use case. And even the 2816A required 9V for chip erase, IIRC, if not the 21V as for the 2816. So if you didn't want to bother with the 9V and the timing, because all these extra components cost money, you just didn't. – dirkt Feb 01 '21 at 21:31
-
1@dirkt : still "erasing and re-programming isn't done on the board" isn't generally true. Yes, you were not forced to so it on the board, but the 2816A was specifically marketed as "you can write it even in a 5V only operation", so it indicates that the demand was there, and it was fulfilled as far back as in 1983. – vsz Feb 01 '21 at 21:42
-
1@vsz: I added "mostly". Happy? And would you take back the "completely wrong"? Thank you. – dirkt Feb 01 '21 at 21:49
-
1@cup My first job out of college some 40 years ago consisted of programming EPROMs with machine code. I had a PROM programmer which consisted of a device that could write specific codes into specific locations in the memory of that device (Lynx? can't remember) on which, when I had finished, I would press the button to "burn" the program to the chip. If I had got it wrong, I would then put the EPROM into another specialised tool with a strong UV light that deleted the program. You could only do this so many times before rendering the EPROM useless, IIRC. – Prime Mover Feb 01 '21 at 23:30
-
-
1I have fond memories of removing sticky labels from the top of windowed EEPROM devices, then putting them under a UV light for 30mins to erase them. – spikey_richie Feb 03 '21 at 15:10
EEPROM can't be "written to." It can be programmed. Programming is different.
When there's EEPROM in a CPU's physical address space, ordinary write cycles will not affect it. Something out of the ordinary has to happen in order to change the EEPROM's contents. The oldest PROMs and EEPROMs had to be physically removed from the system and programmed in a special device that used special voltages and special signaling to change the device content.
More modern parts can be programmed in-circuit, and using normal voltages, but the programming still uses different signaling and maybe different pins from the normal memory bus interface.
- 2,101
- 12
- 21
-
4Modern EEPROM devices don't generally require any special voltages or signalling beyond the use of special sequences of write operations to enable programming mode, but the key distinction compared to RAM is the fact that in nearly all forms of RAM, read and write times are within a factor of two of each other, but EEPROM write times are often at least three orders of magnitude longer than read times. – supercat Feb 01 '21 at 19:14
-
1@supercat, Re, "...special sequences of write operations..." Like many things in the world of computers, it depends on the level of abstraction from which you choose to view it. Viewed from one level, those write operations might be seen as ordinary writes. But from a different level, a software geek like myself could call the whole "special sequence of write operations" a form of "signalling." – Solomon Slow Feb 01 '21 at 19:21
-
2Were I not familiar with modern EEPROM devices, I would have assumed that the special signaling required for EEPROMs would require hardware different from what would otherwise be used to access RAM. – supercat Feb 01 '21 at 19:47
-
1@supercat: Isn't it a misnomer to call something "EEPROM" if it can be written in basically the same way as it's read, (like Flash can, other than erasing in large blocks)? Or is that simply how modern usage has evolved, to include almost any non-volatile storage? AVR seems to use it this way, for storage you can modify with normal store instructions I think. What makes it EEPROM instead of just NV-RAM (like 3DXpoint)? Perhaps the fact that it normally needs erasing in large blocks? – Peter Cordes Feb 02 '21 at 06:06
-
@PeterCordes: NVRAM can be written at the same speed as ordinary RAM. EEPROM write speeds are typically orders of magnitude slower than RAM. – supercat Feb 02 '21 at 07:10
-
@supercat: 3DXpoint write speeds are lower than read speeds by about a factor of 5x. They're in the same ballpark, though, unlike Flash, so if you mean "same order of magnitude" then sure. A while ago I was looking at an Intel whitepaper about Optane being more sensitive to locality, as well as to write bandwidth, but I can't find it again now. https://software.intel.com/content/www/us/en/develop/articles/speeding-up-io-workloads-with-intel-optane-dc-persistent-memory-modules.html has some graphs for libpmem performance on top of Optane DC PM for filesystem-like stuff, not for using it as RAM – Peter Cordes Feb 02 '21 at 07:24
-
@PeterCordes: Memory buses that are designed to communicate with multiple cores can introduce delays when reading and writing storage, but the actual memory cells in a RAM handle reading and writing at the same speed, whereas in EEPROM or flash the speeds are very differnet. – supercat Feb 02 '21 at 07:28
-
@supercat: You're talking about standard DRAM (using a capacitor for every bit) where writing is easy once you've addressed a bit. I'm not, I'm talking about 3D-XPoint memory which is used to build NV-DIMMs that go on the memory bus. (I think controllers need some special support, though; they don't just work with any DDR4 controller). 3D-XPoint apparently is based on some kind of a phase-change or other resistance change in bulk material. It apparently takes time to write. – Peter Cordes Feb 02 '21 at 07:36
-
Is this programming not just the normal way of writing an EEPROM? The fact that the CPU can't address it for writes doesn't mean it's ROM. Disconnecting the WR pin on a RAM chip doesn't make it ROM either. – user253751 Feb 02 '21 at 09:12
-
@user253751, You are free to use the words any way you like, but I'd guess that the majority of professionals who actually need to talk about getting bits into an EEPROM in order to perform their jobs will lean toward the word "programming" rather than "writing" in order to denominate that act. – Solomon Slow Feb 03 '21 at 01:04
-
@user253751: When storing data to a RAM, writing a pattern of ones and zeroes to a certain address will cause all of the bits there to assume the written pattern, regardless of their previous content. While some EEPROM devices may work that way, most require that ones and zeroes be stored using different operations. – supercat Feb 03 '21 at 19:44
-
There are at28c16 and at28c64 EEPROMs that have bus interface essentially the same as SRAM like 6264 and are written byte-wise simply by issuing a write cycle, same way as one writes to SRAM. Thus generally the statement in this answer is not true. – lvd Apr 23 '21 at 13:23
It can't be 'written to' in the sense of storing useful information written by a running program in the computer.
It can be erased and re-programmed, which generally requires a special ROM programmer (rather than erasing and rewriting in place).
So, the readonly-ness is from the viewpoint of the computer in which it's used.
These days the line between that and something like flash memory had grown blurred, but things get named when they're first invented.
- 35,301
- 3
- 80
- 160
-
4Some EEPROMs can be byte-addressed and written at normal voltages in-circuit, just like RAM. if you add wait states for writes (which are sloooow) you can actually treat them like nonvolatile RAM with a limited write durability. It's a blurry line, for sure. – RETRAC Jan 31 '21 at 17:15
-
3If it wasn't possible to store "useful information" in an EEPROM, then it wouldn't be useful. The difference between EEPROM and SRAM is that information is "stored" into an EEPROM by special means that typically are not available to the CPU during normal operation. – Solomon Slow Jan 31 '21 at 23:21
-
RAM is designed to be quickly written many trillions of times without wearing out. Flash and EEPROM devices, by contrast, are designed to be quickly read many trillions of times without degradation, but writing will be orders of magnitude slower and impose significant wear; an EEPROM device that can reliably endure 10,000,000 write operations without wearing out would be regarded as having unusually high endurance; 10,000 writes would be more typical.
On the original ENIAC computer, RAM was implemented with vacuum tubes, and "ROM" was implemented with many rows of manually-operated rotary switches. The computer could instantly change the contents of any RAM location automatically, but the only way ROM would change would be if somebody physically went up to the knobs and rotated them. Converting from ROM to EEPROM would have been equivalent to adding a bunch of solenoid-operated mechanisms that could rotate the knobs under program control.
In terms of evolution, once computers started having enough RAM that they could receive input from a punched-card reader and copy it into RAM, ROM was used for things that would need to be changed less often, and thus often took forms like boards a grid of junctions where diodes or transistors could be installed or omitted, or groups of magnetic cores through which wires could either be threaded through or around. The former approach evolved into semiconductor programmable ROMS which would behave like a fully populated grid of transistors, but each transistor had a small fuse in series with it. Turning on a transistor and then applying a suitable power pulse to the output would blow the fuse.
Later semiconductor programmable memories replaced the fuse with a second transistor which was switched on and off by implanting charges in its gate. This allowed the memories to be smaller (there was a limit as to how weak fuses could reliably be made without spontaneous failures, and the transistors and other wiring had to be made much stronger than the fuses). The gates effectively had diodes in series with them, so charges could be implanted but not removed; exposure to ionizing radiation such as UV light, however, would dislodge the charges.
Still later advancements made it possible to electrically drain off the charges from the gates, but the devices still needed unusual voltages to be applied in order to do this. Modern devices have internal circuitry that will connect the internal memory bus to an external memory bus when not performing write operations, but which can disconnect from the external bus and apply unusual voltages to the internal bus when necessary to store or erase information. Although such devices no longer require the exotic external hardware that was necessary to store information into older devices, their essential nature is much as it always had been: reads are processed using ordinary transistor switching, while writes require a much slower and more stressful process.
- 35,993
- 3
- 63
- 159
-
1I can't say this really answers the question, but it is a very interesting read nonetheless. – Beefster Feb 02 '21 at 23:12
-
As a historical note, ENIAC didn't have any RAM until core was added in 1953. It had 20 accumulators, but these were registers, not RAM. You couldn't access a location by address for instance. – Ken Shirriff Feb 03 '21 at 00:41
-
@KenShirriff: If the choice of accumulator was set by a set of bits in the instruction, I would call that RAM, whether or not there was any programmatic way of selecting an address. The fact that the CPU had no means of choosing an address other than by examining part of an instruction would be a limitation of the CPU, not the storage system. – supercat Feb 03 '21 at 15:29
-
Latest QLC (or whatever) NAND flashes are now having destructive reads (that would degrade written information after a number of read passes), so again this is not a general true about flash/eeproms that they always could be read indefinite number of times without affecting their contents. – lvd Apr 23 '21 at 13:25
I will give you an answer from a programmer's point of view:
An EEPROM is called a ROM despite being writable because its INTERFACE is that of a ROM.
In other words, from the point of view of your board, and from the point of view of software running on the board, it is memory that cannot be written to, therefore it is ROM.
The fact that we can actually power off, plug it out, reprogram it, plug it back in, and power back up, is an implementation detail, and it is hidden from the concerned parties: neither the board, nor the software, are alive to witness this happening.
- 161
- 2
-
1I think this is the best perspective to explain it intuitively. You still have two different processes for writing into writable memory and writing into ROM. The fact that writing into ROM has evolved from being possible only in the chip factory with special devices, to being possible with any modern computer, is the consequence of technological evolution. But it helps to notice the evolution behind it and think of it in such a perspective, when you know the history and how the name developed. – Snackoverflow Apr 22 '21 at 11:42
-
@Snackoverflow Kudos for the nickname. This is the best stack overflow nickname ever. – Mike Nakis Apr 23 '21 at 17:58
The answer lies in the contrast between ROM and RAM. When you turn a computer off, the RAM(random access memory) looses all it's contents. All variants of ROM do not. Some are programmable more than once. "pure" ROM is programmed once at the factory and and can never change.
- 31
- 1
-
Except, an MRAM is named RAM, works like a RAM and still keeps it's content - and so do the grand-daddies of all things RAM, the Drum and Core memory. – Raffzahn Jun 22 '22 at 16:16
I agree with what people are saying here, but the answer is not perfectly clear. To say that you cannot write to an EEPROM but only program it, is a bit odd. The datasheets for the EEPROM list how many write/erase cycles the EEPROM is rated for. They call it write.
A good example that comes to mind is an Arduino UNO. The EEPROM is not set by the factory and you write to it to as needed. It's common to use it to maintain state between power cycles, set things like ip address, urls, etc. that you want to maintain as data and not hardcode it. However, it's only rated at 100K write/erase cycles. So it is not intended to be used for short-term data storage.
I think the point is that ROM is designed to be written to rarely and RAM is designed to be written to often. Plus, EEPROM will degrade over time. I think between 100K to 250K write/erase cycles most EEPROMs are rated for. So you should use it as long-term storage.
- 21
- 2
-
1The most fundamental characteristics of RAM and ROM are that a RAM is a device that supports random access writes (and rewrites) as well as reads, while a ROM is a device which supports random access reads but does not generally support random access writes/rewrites. While some byte-erasable EEPROMS might be viewed as a form of RAM, their internal design and common usages resemble those of a non-byte-erasable EEPROM more than those of a bona fide RAM. – supercat Apr 22 '21 at 18:29
My idea here is that the naming follows schematic and physical principles regarding information storage and its evolution over the time.
Original static IC RAMs had a latch (two invertors feeding each other) that stored a single bit, counted at least 4 transistors for storage and at least 2 transistors to read and write the bit.
Original IC ROMs (mask ROMs that have their contents fixed at manufacturing time) consisted single transistor (or an absence of it), and the data was probed by an attempt to open that transistor by feeding its gate with a 'ON' voltage. Depending on its presense and ability to turn on (=pull the wire to GND), a stored data bit was retrieved.
PROMs and EPROMs had two-gate transistor per each addressable bit: one gate was isolated and carried a charge, other worked the same way as in ROM. By changing a charge on an isolated (or floating) gate, one can make it open or not when a voltage applied to the other, control gate, thus (E)PROMs worked exactly the save way as ROMs, but with the ability to electrically program (and maybe UV erase) data.
Later, EEPROMs and FLASHes added the ability to electrically erase those two-gate transistors.
Thus, the naming of something-ROMs depends mostly on a tradition of calling them so.
- 10,382
- 24
- 62