EPROMs were made obsolete by EEPROMs, due to the ability to
field upgrade (Electrically Erase) them. The existence of EEPROMs,
also made it possible to store several types of info in the BIOS chip.
Some of the contents of a BIOS chip are shown in the following table.
The middle three, require erasing the chip on a moment's notice.
Boot block (useful, if main BIOS block is "bricked")
Main BIOS code (upgradeable by end user)
DMI (potentially updated during POST)
ESCD (potentially updated during POST)
Microcode cache segment (updated when new processor detected)
http://en.wikipedia.org/wiki/Desktop_Management_Interface
http://en.wikipedia.org/wiki/ESCD
Modern EEPROMs are segmented, so you can erase only a portion of
it and reprogram it.
The main BIOS code, may even include a subroutine which knows how
to re-program the chip. To flash the entire chip safely, they can
"shadow" the BIOS in RAM, while the various parts of the chip are
updated. But since the chip is split into segments, just particular
segments can be programmed as well.
I programmed the microcode on my 440BX based motherboard, about
ten years ago, so I've actually done one of those. The microcode
cache concept, doesn't exist on all brands of BIOS designs.
Another change, is the package they come in. My most recent
motherboard, uses a "serial EEPROM" in an 8 pin DIP. This
is quite a bit smaller than the previous generations of parallel
interface devices. Example of the package type, here.
http://www.c-stamp.com/images/CS450000.jpg
At one time, serial EEPROMs had a tiny capacity, but now they have
large enough internal capacities, to take the place of the
bigger packaged parts. A nuisance aspect of them, is the manufacturers
have taken to soldering them to the motherboard, which makes buying a
replacement, a nuisance. The generations before the present time,
had a socket for the chip, so it could be removed for maintenance.
(Maintenance being, buying a programmed chip from an Internet vendor,
if the current BIOS chip is "bricked" or accidentally erased without
being properly re-programmed).
Paul