Is there any reason why people are still using (and implementing in new systems) normal EEPROMs instead of flash memory, nowadays?

From the Flash memory wikipedia:

Flash memory was developed from EEPROM (electrically erasable programmable read-only memory).

Would there be any disadvantages (power consumption, space, speed, etc.) on using flash instead of normal EEPROM?

  • \$\begingroup\$ I think you might be confused between EPROM (only erasable under UV, mostly obsolete) and EEPROM (electrically eraseable). \$\endgroup\$
    – pjc50
    Commented Apr 13, 2013 at 11:51
  • \$\begingroup\$ @pjc50 I'm not - I quoted the wrong part of the wiki, fixed now - thanks :) \$\endgroup\$
    – user17592
    Commented Apr 13, 2013 at 11:53
  • 3
    \$\begingroup\$ Flash is erased in large chunks, whereas EEPROM can be erased per byte. \$\endgroup\$
    – jippie
    Commented Apr 13, 2013 at 13:48
  • 2
    \$\begingroup\$ You'd never know they're the same from reading PIC datasheets...they even have different endurances. But I guess it may be marketing. After all, they've also got "Enhanced Flash". BTW the EEPROM is gone on the PIC 32, and the minimum flash page write is 4k bytes. \$\endgroup\$
    – gbarry
    Commented Apr 14, 2013 at 7:27
  • 2
    \$\begingroup\$ @gbarry: They are not the same. Flash is EEPROM, but not all EEPROM is flash. Remember what EEPROM means, which is electrically erasable programmable read-only memory. \$\endgroup\$ Commented Apr 14, 2013 at 12:42

2 Answers 2


To be pedantic, FLASH memory is merely a form of EEPROM: There is a marketing / branding aspect here. Typically, the distinction used today is that EEPROMS are single-byte (or storage word) erasable / rewritable, while FLASH is block-based for erase/write operations.

Relevant to the question:

  • EEPROMs continue to be popular due to maximum erase/write cycle ratings being an order of magnitude or two better than FLASH
  • Due to investments in design typically having been amortized over time, as with any mature technology, the cost of production and testing reduces compared to a newer technology.
  • 2
    \$\begingroup\$ Everybody talking about erasing a single byte or block-based but what is the theory behind that ?? i can erase any number of bytes for the flash memory as well !!! \$\endgroup\$
    – The Beast
    Commented Apr 25, 2016 at 0:51
  • 1
    \$\begingroup\$ @Frankenstein how is that done? \$\endgroup\$ Commented May 13, 2016 at 14:26
  • \$\begingroup\$ Although "flash" is as much a marketing term as a technical one, semiconductor memories calling themselves EEPROM are often designed in such a way that memory cells can be erased without an intervening programming step. If power is lost while erasing a blank memory cell, it will still be blank. Devices calling themselves flash often use a design which can only erase a block if all cells have similar charges, meaning all cells must be programmed prior to erasure. An interrupted erase operation may thus cause cells that were previously blank cells to be programmed. \$\endgroup\$
    – supercat
    Commented Jul 30, 2021 at 19:51

The number of write cycles most EEPROMs can handle generally far exceeds the number of write cycles most flash memory can handle.

EEPROMS can generally handle ~100,000-1,000,000 writes per cell.
Flash is generally rated to ~1,000-100,000 writes (it varies heavily depending on the type of flash).

Another advantage EEPROM has over flash is that flash generally has to be erased in blocks, so if your write patterns involve sequential single-byte writes, you will use many more write cycles on the flash memory then you would with the equivalent EEPROM, as EEPROM memory can generally be erased on a per-byte basis, rather then the per-block erase cycle flash uses.

Basically, flash generally is erased in blocks of ~64-512 kilobytes. Therefore, for every write anywhere within that block, the controller has to erase the entire block, using a write cycle for the entire block. You can see, if you sequentially performed single-byte writes to each address in a block, you would wind up performing anywhere between 64K to 512K writes to the entire block, which could easily use the entire write endurance of the flash.

As such, EEPROMs are generally used in situations where the local processor is small does not have the ability to buffer writes to each flash page.

A lot of this is becoming less true as flash technology advances. There are flash memory ICs that include the facilities for local write-buffering, as well as the write-endurance on flash memory increasing dramatically.

  • \$\begingroup\$ The size of an erasing block and a write block are usually not the same. Also for older single-bit-per-cell flash, one could reliably overwrite blocks at least once as long as the write did not require changing a bit value back to the erased state. E.g., if 1 is the erased state, with 16-bit blocks one could write 0bxxxxxxxx11111111 and later write 0bxxxxxxxxyyyyyyyy (or even 0b1010101011111111 and later 0b00000000xxxxxxxx). \$\endgroup\$
    – user15426
    Commented Apr 13, 2013 at 15:39
  • \$\begingroup\$ @PaulA.Clayton - Good point. \$\endgroup\$ Commented Apr 13, 2013 at 23:27
  • \$\begingroup\$ @PaulA.Clayton: One thing I wish flash vendors would document is whether one may legitimately zero out some large portion of an already-written flash block without having to erase it first. Being able to expressly invalidate a page directly without having to keep track elsewhere of the fact that the page was invalidated would be very useful. \$\endgroup\$
    – supercat
    Commented Jun 11, 2013 at 19:46