What is ROM? or eeprom as this article will discuss
ROM stands for Read-Only Memory and is a form of storing data or information on a device like a CD or an IC which is what I’ll be talking about here. Now ROM’s where very popular back in the day with most devices it is more common place for manufactures to use other forms of storing data for systems like EEPROM that stands for Electrically Erasable Programmable Read-Only Memory. These IC’s can be programed and electically erased and programed again. This is very use full as a Bug or error in a devices firmware can be easly rectified with out having to throw away the chip as ROM’s can only be programed once. This is usually done by fusing a matrix of addressed gates this physically destroys the gate storing a singlr bit in that address. Back in the late 70’s and 80’s most computers where designed with ROM firmware that was squeezed into the limited ROM IC’s of the day like 4K Basic by Bill Gates and Paul Allen which was just shy of 4K as it needed to fit into a 4K ROM on the early 1980 computers like the Altair and the Commodore 64.
All computers have some form of ROM weather in an EEPROM or even flash based IC’s that is boots into prior to starting the OS this is more commonly known as Bios or basic input output operating system. Its not only Computers that have these chips you can find them in everyday things like dish washers and mp3 players. They are the easiest form of storing a simple set of operations that a micro-processor will run. the basic EEPROM has an address bus and a 8-bit data bus for example:
here is a SST29EE010 it’s 1 Mbit (128K x8) Page-Mode EEPROM
It has a 17 bit address bus (A0-A16) that is divided into 2 addresses one for columns and one for rows,
(A0-A6) are for the Columns addresses,
(A7-A16) are for the Rows. This will give you a memory location in a 7×10 memory grid that stores 8-bit values that will be output on the Data bus (D0-D7) there are a few control pins as well CE#(chip Enable) Active Low, OE# to activate the output pins and WE# to write to a memory location on the EEPROM. This eeprom uses a parallel interface but there are serial EEPROM’s as well that communicate over a i2c or spi protocol.