EEPROM is a "Read Only Memory," so why can I write to it?

The EEPROM acronym has some history which follows the development of the technology.

ROM: Read-Only Memory. Written at the factory.

PROM: Programmable Read-Only Memory but programmable (once) by the user. Really a one-time programmable, forever readable memory. Get it wrong and you dump the chip.

EPROM: Eraseable Programmable Read-Only Memory. Usually erased using UV light through a quartz window above the chip. A bit of trouble but very useful.

EEPROM: Electrically Erasable Programmable Read-Only Memory. Can be erased or re-written under program control.

1

Figure 1. An Intel 1702A EPROM, one of the earliest EPROM types, 256 by 8 bit. The small quartz window admits UV light for erasure. Source: Wikipedia EPROM.

So, I hear you say, why do they call it eepROm when it is writeable? The answer to this is, I suspect, that, unlike RAM (random access memory) it holds its contents during power cycle and, therefore, behaved more like a ROM.


I'm baffled by how many commentators here think that the term ROM is solely a marketing ploy or referring only to loss of data on power-off.

PROM is very much 'read only', in the qualified sense that writing to it in the same manner and contexts as you would with an 'equivalent' RAM is impossible. This is because E/EPROM requires:

  • erasure by UV (EPROM) or an 0xFF cycle (EEPROM),
  • switching into a different mode for programming ('writing') data,
  • which in some cases requires different power conditions, wait times, etc.
  • Limitations on write cycles would make all extant PROMs useless for the kind of high-volume data transfer/manipulation needed by many programs.

...all of which mean that the act of writing to such memory is slow, can't be efficiently interleaved with read operations, actively wears out the chip, etc.

PROM is on a totally different league than RAM with equivalent read specs. Hence why it wasn't marketed as any form of RAM. The backlash would've been colossal!

So, we could perhaps call it Read Mostly Memory or, for the pedants, EWRPROM: Eventually Writable, Runtime Practically Read Only Memory... but in practical terms, ROM is bang on the mark.


Early programmable memory devices were intended to be written while plugged into one device, and then read while plugged into another. While the devices could generally be read while in the programming fixture (so the programming fixture could confirm that they were written correctly), programming the devices would often require applying unusual voltages that would not be available in most devices that needed to read them. Further, write operations were orders of magnitude slower than read operations. Later devices have been enhanced to eliminate such requirements, allowing them to be programmed in the device where it will be used after programming, but the difference between read and write speeds remains.

Tags:

Eeprom