Typesofmemory Updated
Typesofmemory Updated
Many types of memory devices are available for use in modern computer systems. As an
embedded software engineer, you must be aware of the differences between them and
understand how to use each type effectively. In our discussion, we will approach these
devices from the software developer's perspective. Keep in mind that the development of
these devices took several decades and that their underlying hardware differs
significantly. The names of the memory types frequently reflect the historical nature of
the development process and are often more confusing than insightful. Figure 1 classifies
the memory devices we'll discuss as RAM, ROM, or a hybrid of the two.
Types of RAM
The RAM family includes two important memory devices: static RAM (SRAM) and
dynamic RAM (DRAM). The primary difference between them is the lifetime of the data
they store. SRAM retains its contents as long as electrical power is applied to the chip. If
the power is turned off or lost temporarily, its contents will be lost forever. DRAM, on the
other hand, has an extremely short data lifetime-typically about four milliseconds. This is
true even when power is applied constantly.
In short, SRAM has all the properties of the memory you think of when you hear the
word RAM. Compared to that, DRAM seems kind of useless. By itself, it is. However, a
simple piece of hardware called a DRAM controller can be used to make DRAM behave
more like SRAM. The job of the DRAM controller is to periodically refresh the data stored
in the DRAM. By refreshing the data before it expires, the contents of memory can be
kept alive for as long as they are needed. So DRAM is as useful as SRAM after all.
When deciding which type of RAM to use, a system designer must consider access time
and cost. SRAM devices offer extremely fast access times (approximately four times
faster than DRAM) but are much more expensive to produce. Generally, SRAM is used
only where access speed is extremely important. A lower cost-per-byte makes DRAM
attractive whenever large amounts of RAM are required. Many embedded systems
include both types: a small block of SRAM (a few kilobytes) along a critical data path and
a much larger block of DRAM for everything else.
Types of ROM
Memories in the ROM family are distinguished by the methods used to write new data to
them (usually called programming), and the number of times they can be rewritten. This
classification reflects the evolution of ROM devices from hardwired to programmable to
erasable-and-programmable. A common feature of all these devices is their ability to
retain data and programs forever, even during a power failure.
The very first ROMs were hardwired devices that contained a preprogrammed set of data
or instructions. The contents of the ROM had to be specified before chip production, so
the actual data could be used to arrange the transistors inside the chip. Hardwired
memories are still used, though they are now called "masked ROMs" to distinguish them
from other types of ROM. The primary advantage of a masked ROM is its low production
cost. Unfortunately, the cost is low only when large quantities of the same ROM are
required.
One step up from the masked ROM is the PROM (programmable ROM), which is
purchased in an unprogrammed state. If you were to look at the contents of an
unprogrammed PROM, you would see that the data is made up entirely of 1's. The
process of writing your data to the PROM involves a special piece of equipment called a
device programmer. The device programmer writes data to the device one word at a
time by applying an electrical charge to the input pins of the chip. Once a PROM has
been programmed in this way, its contents can never be changed. If the code or data
stored in the PROM must be changed, the current device must be discarded. As a result,
PROMs are also known as one-time programmable (OTP) devices.
Hybrid types
As memory technology has matured in recent years, the line between RAM and ROM has
blurred. Now, several types of memory combine features of both. These devices do not
belong to either group and can be collectively referred to as hybrid memory devices.
Hybrid memories can be read and written as desired, like RAM, but maintain their
contents without electrical power, just like ROM. Two of the hybrid devices, EEPROM and
flash, are descendants of ROM devices. These are typically used to store code. The third
hybrid, NVRAM, is a modified version of SRAM. NVRAM usually holds persistent data.
Flash memory combines the best features of the memory devices described thus far.
Flash memory devices are high density, low cost, nonvolatile, fast (to read, but not to
write), and electrically reprogrammable. These advantages are overwhelming and, as a
direct result, the use of flash memory has increased dramatically in embedded systems.
From a software viewpoint, flash and EEPROM technologies are very similar. The major
difference is that flash devices can only be erased one sector at a time, not byte-by-
byte. Typical sector sizes are in the range 256 bytes to 16KB. Despite this disadvantage,
flash is much more popular than EEPROM and is rapidly displacing many of the ROM
devices as well.
The third member of the hybrid memory class is NVRAM (non-volatile RAM). Nonvolatility
is also a characteristic of the ROM and hybrid memories discussed previously. However,
an NVRAM is physically very different from those devices. An NVRAM is usually just an
SRAM with a battery backup. When the power is turned on, the NVRAM operates just like
any other SRAM. When the power is turned off, the NVRAM draws just enough power
from the battery to retain its data. NVRAM is fairly common in embedded systems.
However, it is expensive-even more expensive than SRAM, because of the battery-so its
applications are typically limited to the storage of a few hundred bytes of system-critical
information that can't be stored in any better way.
Table 1 summarizes the features of each type of memory discussed here, but keep in
mind that different memory types serve different purposes. Each memory type has its
strengths and weaknesses. Side-by-side comparisons are not always effective.
COMPUTER MEMORY
Read Only Memory (ROM): There is another memory in computer, which is called
Read Only Memory (ROM). Again it is the ICs inside the PC that form the ROM. The
storage of program and data in the ROM is permanent. The ROM stores some
standard processing programs supplied by the manufacturers to operate the personal
computer. The ROM can only be read by the CPU but it cannot be changed. The basic
input/output program is stored in the ROM that examines and initializes various
equipment attached to the PC when the power switch is ON. The memories, which do
not lose their content on failure of power supply, are known as non-volatile memories.
ROM is non-volatile memory.
EPROM: This stands for Erasable Programmable Read Only Memory, which
overcome the problem of PROM & ROM. EPROM chip can be programmed time and
again by erasing the information stored earlier in it. Information stored in EPROM
exposing the chip for some time ultraviolet light and it erases chip is reprogrammed
using a special programming facility. When the EPROM is in use information can
only be read.
Cache Memory: The speed of CPU is extremely high compared to the access time of
main memory. Therefore the performance of CPU decreases due to the slow speed of
main memory. To decrease the mismatch in operating speed, a small memory chip is
attached between CPU and Main memory whose access time is very close to the
processing speed of CPU. It is called CACHE memory. CACHE memories are
accessed much faster than conventional RAM. It is used to store programs or data
currently being executed or temporary data frequently used by the CPU. So each
memory makes main memory to be faster and larger than it really is. It is also very
expensive to have bigger size of cache memory and its size is normally kept small.
Registers: The CPU processes data and instructions with high speed; there is also
movement of data between various units of computer. It is necessary to transfer the
processed data with high speed. So the computer uses a number of special memory
units called registers. They are not part of the main memory but they store data or
information temporarily and pass it on as directed by the control unit.
Magnetic Tape: Magnetic tapes are used for large computers like mainframe
computers where large volume of data is stored for a longer time. In PC also you can
use tapes in the form of cassettes. The cost of storing data in tapes is inexpensive.
Tapes consist of magnetic materials that store data permanently. It can be 12.5 mm to
25 mm wide plastic film-type and 500 meter to 1200 meter long which is coated with
magnetic material. The deck is connected to the central processor and information is
fed into or read from the tape through the processor. It’s similar to cassette tape
recorder.
Magnetic Disk: You might have seen the gramophone record, which is circular like a
disk and coated with magnetic material. Magnetic disks used in computer are made on
the same principle. It rotates with very high speed inside the computer drive. Data is
stored on both the surface of the disk. Magnetic disks are most popular for direct
access storage device. Each disk consists of a number of invisible concentric circles
called tracks. Information is recorded on tracks of a disk surface in the form of tiny
magnetic spots. The presence of a magnetic spot represents one bit and its absence
represents zero bit. The information stored in a disk can be read many times without
affecting the stored data. So the reading operation is non-destructive. But if you want
to write a new data, then the existing data is erased from the disk and new data is
recorded. For Example-Floppy Disk.
Optical Disk: With every new application and software there is greater demand for
memory capacity. It is the necessity to store large volume of data that has led to the
development of optical disk storage medium. Optical disks can be divided into the
following categories:
A memory is just like a human brain. It is used to store data and instruction. Computer
memory is the storage space in computer where data is to be processed and instructions
required for processing are stored.
The memory is divided into large number of small parts. Each part is called cell. Each
location or cell has a unique address which varies from zero to memory size minus one.
For example if computer has 64k words, then this memory unit has 64 * 1024=65536
memory location. The address of these locations varies from 0 to 65535.
RAM
A RAM constitutes the internal memory of the CPU for storing data, program and program
result. It is read/write memory. It is called random access memory (RAM).
Since access time in RAM is independent of the address to the word that is, each storage
location inside the memory is as easy to reach as other location & takes the same amount of
time. We can reach into the memory at random & extremely fast but can also be quite
expensive.
RAM is volatile, i.e. data stored in it is lost when we switch off the computer or if there is a
power failure. Hence a backup uninterruptible power system(UPS) is often used with
computers. RAM is small , both in terms of its physical size and in the amount of data it can
hold.
The word static indicates that the memory retains its contents as long as power remains
applied. However, data is lost when the power gets down due to volatile nature. SRAM chips
use a matrix of 6-transistors and no capacitors. Transistors do not require power to prevent
leakage, so SRAM need not have to be refreshed on a regular basis.
Because of the extra space in the matrix, SRAM uses more chips than DRAM for the same
amount of storage space, thus making the manufacturing costs higher.
Static RAM is used as cache memory needs to be very fast and small.
DRAM, unlike SRAM, must be continually refreshed in order for it to maintain the data.
This is done by placing the memory on a refresh circuit that rewrites the data several hundred
times per second. DRAM is used for most system memory because it is cheap and small. All
DRAMs are made up of memory cells. These cells are composed of one capacitor and one
transistor.
ROM
ROM stands for Read Only Memory. The memory from which we can only read but cannot
write on it. This type of memory is non-volatile. The information is stored permanently in
such memories during manufacture.
A ROM, stores such instruction as are required to start computer when electricity is first
turned on, this operation is referred to as bootstrap. ROM chip are not only used in the
computer but also in other electronic items like washing machine and microwave oven.
The very first ROMs were hard-wired devices that contained a pre-programmed set of data or
instructions. These kind of ROMs are known as masked ROMs. It is inexpensive ROM.
PROM (Programmable Read only Memory)
PROM is read-only memory that can be modified only once by a user. The user buys a blank
PROM and enters the desired contents using a PROM programmer.Inside the PROM chip
there are small fuses which are burnt open during programming. It can be programmed only
once and is not erasable.
The EPROM can be erased by exposing it to ultra-violet light for a duration of upto 40
minutes. Usually, a EPROM eraser achieves this function. During programming an electrical
charge is trapped in an insulated gate region. The charge is retained for more than ten years
because the charge has no leakage path. For erasing this charge, ultra-violet light is passed
through a quartz crystal window(lid). This exposure to ultra-violet light dissipates the charge.
During normal use the quartz lid is sealed with a sticker.
The EEPROM is programmed and erased electrically. It can be erased and reprogrammed
about ten thousand times. Both erasing and programming take about 4 to 10 ms (milli
second). In EEPROM, any location can be selectively erased and programmed. EEPROMs
can be erased one byte at a time, rather than erasing the entire chip. Hence, the process of re-
programming is flexible but slow.
Cache Memory
Cache memory is a very high speed semiconductor memory which can speed up CPU. It acts
as a buffer between the CPU and main memory. It is used to hold those parts of data and
program which are most frequently used by CPU. The parts of data and programs are
transferred from disk to cache memory by operating system, from where CPU can access
them.
Advantages
Disadvantages
Cache memory has limited capacity.
It is very expensive.
Virtual memory is a technique that allows the execution of processes which are not
completely available in memory. The main visible advantage of this scheme is that programs
can be larger than physical memory. Virtual memory is the separation of user logical memory
from physical memory.
This separation allows an extremely large virtual memory to be provided for programmers
when only a smaller physical memory is available. Following are the situations, when entire
program is not required to be loaded fully in main memory.
User written error handling routines are used only when an error occured in the data
or computation.
Certain options and features of a program may be used rarely.
Many tables are assigned a fixed amount of address space even though only a small
amount of the table is actually used.
The ability to execute a program that is only partially in memory would counter many
benefits.
Less number of I/O would be needed to load or swap each user program into memory.
A program would no longer be constrained by the amount of physical memory that is
available.
Each user program could take less physical memory, more programs could be run the
same time, with a corresponding increase in CPU utilization and throughput.
Auxiliary Memory
Auxiliary memory is much larger in size than main memory but is slower. It normally stores
system programs, instruction and data files. It is also known as secondary memory. It can also
be used as an overflow/virtual memory in case the main memory capacity has been exceeded.
Secondary memories can not be accessed directly by a processor. First the data / information
of auxillary memory is transferred to the main memory and then that information can be
accessed by the CPU. Characteristics of Auxiliary Memory are following