41

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?

  • I think you might be confused between EPROM (only erasable under UV, mostly obsolete) and EEPROM (electrically eraseable). – pjc50 Apr 13 '13 at 11:51
  • @pjc50 I'm not - I quoted the wrong part of the wiki, fixed now - thanks :) –  Apr 13 '13 at 11:53
  • 3
    Flash is erased in large chunks, whereas EEPROM can be erased per byte. – jippie Apr 13 '13 at 13:48
  • Flash may also only be written in large chunks. Can you write a single byte to an SD card? – Kaz Apr 13 '13 at 17:00
  • This question makes no sense since flash *is* EEPROM. – Olin Lathrop Apr 13 '13 at 22:18
  • @OlinLathrop from what I understand, flash is a specific type of EEPROM. I'll change the title for you. –  Apr 14 '13 at 06:08
  • 2
    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. – gbarry Apr 14 '13 at 07:27
  • 2
    @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*. – Olin Lathrop Apr 14 '13 at 12:42

2 Answers2

29

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.
Anindo Ghosh
  • 50,188
  • 8
  • 103
  • 200
  • 2
    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 !!! – The Beast Apr 25 '16 at 00:51
  • 1
    @Frankenstein how is that done? – abdullah kahraman May 13 '16 at 14:26
  • 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. – supercat Jul 30 '21 at 19:51
20

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.

Connor Wolf
  • 31,938
  • 6
  • 77
  • 137
  • 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). –  Apr 13 '13 at 15:39
  • @PaulA.Clayton - Good point. – Connor Wolf Apr 13 '13 at 23:27
  • @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. – supercat Jun 11 '13 at 19:46