39

Is there a historical reason? Since it is rewritable it isn't read only by definition, so why call it so?

9
  • 7
    The 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 at 17:47
  • 16
    Now try to wrap your head around the stupid term OTP-EEPROM
    – pipe
    Feb 1 at 12:12
  • 4
    About a year ago, a similar question was asked on Software Engineering, 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 Electrical Engineering would look like. Feb 1 at 17:03
  • 3
    This question has been discussed at electronics.SE: electronics.stackexchange.com/questions/505401/… Feb 1 at 23:46
  • 9
    Actually we were originally going to call it "write-sometimes but read-mostly memory" but nobody could pronounce "WSBRMM" without blowing spit bubbles. Feb 2 at 2:32
97

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.

17
  • 3
    Good answer. Short answer is, you can't change the contents without popping the cover off the computer. Jan 31 at 17:21
  • 4
    There 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 at 17:42
  • 12
    It'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 at 17:58
  • 3
    And these days flash ROM tends to be called flash memory, to reflect the relative ease of reprogramming it.
    – Frog
    Feb 1 at 2:38
  • 3
    EEPROM: "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 1 at 18:31
31

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.

12
  • 4
    Modern 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 1 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." Feb 1 at 19:21
  • 2
    Were 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 1 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? Feb 2 at 6: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 2 at 7:10
16

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.

3
  • 4
    Some 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 at 17:15
  • 3
    If 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. Jan 31 at 23:21
  • You're right, poor wording. I'll clean it up. Feb 1 at 0:05
11

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.

4
  • 1
    I can't say this really answers the question, but it is a very interesting read nonetheless.
    – Beefster
    Feb 2 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. Feb 3 at 0: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 3 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 at 13:25
6

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.

2
  • 1
    I 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. Apr 22 at 11:42
  • @Snackoverflow Kudos for the nickname. This is the best stack overflow nickname ever.
    – Mike Nakis
    Apr 23 at 17:58
2

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.

2

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.

1
  • 1
    The 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 at 18:29
2

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.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.