Before getting into each type of memory, we should also clarify the difference between a RAM and a ROM. RAM stands for random-access memory.
It has an x-y address for each cell, which distinguishes it from other serial memories such as magnetic-type memories. Strictly speaking, a ROM (read-only memory) also has random-access capability since the architecture is similar. In fact, the read process of the RAM and ROM is almost identical. More appropriately, a RAM is sometimes called a read-write memory. The main difference between a RAM and a ROM is the ease and frequency of writing. A RAM has almost equal opportunity of write and read. A ROM in general has much more frequent read than write. It itself has a spectrum of writing capability, ranging from a pure ROM without any writing capability, to an EEPROM that has a lifetime endurance (write/erase) of more than 104 cycles. Because a ROM is smaller in size, and more cost effective compared to a RAM, it is used whenever frequent writing is not required. Typical examples are table look-up such as code conversion, character generation, trigonometry functions, etc. A ROM is also used to store logic functions (as programmable logic devices) and routine programs.
A semiconductor memory can be realized by either an MOS technology or a bipolar technology, and each has its own merits. An MOS memory has higher density, lower power, higher input impedance, and is less expensive. A bipolar memory is capable of higher speed. The MOS versions, which are much more popular, will be shown as examples in the following types of memories.
SRAM: The static RAM implies stability of data as long as the power supply is not interrupted. Each cell contains two inverters connected in anti-parallel. It is basically a flip-flop and has two stable states. The two p-channel devices are loads and since their current drive is not critical, they can be made of TFTs in order to save area. These loads can also be replaced with two-terminal devices such as depletion-mode transistors or resistors.
DRAM: The dynamic RAM relies on the charge stored in capacitors. It is dynamic in the sense that the stored charge dissipates gradually through unavoidable leakage, and needs to be refreshed periodically. The time interval between refresh depends on the capacitance size as well as the leakage, and typically it is between 2 and 4 Ms. Due to the smaller number of components in each cell, the DRAM has a larger cell count than the SRAM for the same technology, usually by a factor of four. The penalty is the requirement for refresh.
Mask-programmed ROM: Each cell is represented by a single transistor, and its state is determined by the connectivity (open or close) of the drain to the bit line. The memory content is fixed by the manufacturer and is not programmable once it is fabricated. Sometimes the mask-programmed ROM is simply referred to as ROM.
PROM: The programmable ROM is sometimes called field-programmable PROM or fusible-link ROM. The connectivity of the array is custom programmed by the customer, using the technique of fusing or anti-fusing.
EPROM: The electrically programmable ROM is generally referred to a memory with a FAMOS transistor array. Programming is performed by hot-electron injection or tunneling to the floating gate and it requires high bias on both the drain (bit line) and the control gate (word line). Global erase is by exposure to a UV light or X-ray, but the chip usually has to be removed from the system. Selective erase is not possible.
EEPROM: In an electrically erasable/programmable ROM (also called electrically alterable ROM, EAROM), not only can it be erase electrically, but also selectively by byte address. In order to erase selectively, a select transistor is needed for each cell, leading to a two-transistor cell.
Flash EEPROM: A flash EEPROM (also called flash EPROM), as opposed to a full-featured EEPROM, can only be erased globally. It looses byte selectivity but maintains a one-transistor cell. It is thus a compromise between an EPROM and an EEPROM.
Nonvolatile RAM: This futuristic, ideal memory can be viewed as a nonvolatile SRAM, or an EEPROM with short programming time as well as high endurance.