All of the components in your computer, such as the CPU, the hard
drive and the operating system, work together as a team, and memory
is one of the most essential parts of this team. From the moment you
turn your computer on until the time you shut it down, your CPU is
constantly using memory. Let's take a look at a typical scenario:
In the list above, every time something is loaded or opened, it
is placed into RAM. This simply means that it has been put in the
computer's temporary storage area so that the CPU can access that
information more easily. The CPU requests the data it needs from
RAM, processes it and writes new data back to RAM in a continuous
cycle. In most computers, this shuffling of data between the CPU and
RAM happens millions of times every second. When an application is
closed, it and any accompanying files are usually purged (deleted)
from RAM to make room for new data. If the changed files are not
saved to a permanent storage device before being purged, they are
lost.
Fast powerful CPUs need quick and easy access to large amounts of
data in order to maximize their performance. If the CPU cannot get
to the data it needs, it literally stops and waits for it. Modern
CPUs running at speeds like 1 gigahertz can consume massive amounts
of data -- potentially billions of bytes per second. The problem
that computer designers face is that memory that can keep up with a
1 gigahertz CPU is extremely expensive -- much more expensive than
anyone can afford in large quantities. Computer designers have
solved the cost problem by "tiering" memory, using expensive memory
in small quantities and then backing it up with larger quantities of
less expensive memory.
The cheapest form of read/write memory in wide use today is the
hard disk. Hard disks provide large quantities of inexpensive,
permanent storage. You can buy hard disk space for pennies per
megabyte, but it can take a good bit of time (approaching a second)
to read a megabyte off a hard disk. Because storage space on a hard
disk is so cheap and plentiful, it forms the final stage of a CPUs
memory hierarchy, called
virtual memory.
The next level of the hierarchy is RAM. We discuss RAM in detail
in another article in this series, but several points about RAM are
important here.
The bit size of a CPU tells you how many bytes of information it
can access from RAM at the same time. For example, a 16-bit CPU can
process 2 bytes at a time (1 byte = 8 bits, so 16 bits divided by 8
= 2), and a 64-bit CPU can process 8 bytes at a time.
Megahertz (MHz) is a measure of a CPU's processing speed,
or
clock cycle, in millions per second. So, a 32-bit 800 MHz
Pentium III can potentially process 4 bytes simultaneously, 800
million times per second (possibly more based on pipelining)! The
goal of the memory system is to meet those requirements.
A computer's system RAM alone is not fast enough to match the
speed of the CPU. That is why you need a cache (see the next
section). However, the faster RAM is, the better. Most chips today
operate with a cycle rate of 50 to 70 nanoseconds. The read/write
speed is typically a function of the type of RAM used, such as DRAM,
SDRAM, RAMBUS. We will talk about these various types of memory
later.
System RAM speed is controlled by Bus width and bus
speed. Bus width refers to the number of bits that can be sent
to the CPU simultaneously, and bus speed refers to the number of
times a group of bits can be sent each second. A
bus cycle occurs every time data travels from memory to the
CPU. For example, a 100 MHz 32-bit bus is theoretically capable of
sending 4 bytes (32 bits divided by 8 = 4) of data to the CPU one
hundred million times per second while a 66 MHz 16-bit bus can send
2 bytes of data sixty-six million times per second. If you do the
math, you'll find that simply changing the bus width from 16-bit to
32-bit and the speed from 66 MHz to 100 MHz in our example allows
for three times as much data (400 million bytes versus 132 million
bytes) to pass through to the CPU every second.
In reality, RAM doesn't usually operate at optimum speed;
latency changes the equation radically. Latency refers to the
number of clock cycles needed to read a bit of information. For
example, RAM rated at 100 MHz is capable of sending a bit in
.00000001/second but may take .00000005/second to start the read
process for the first bit. To compensate for latency, CPUs uses a
special technique called
burst mode.
Burst mode depends on the expectation that data requested by the
CPU will be stored in sequential memory cells. The memory controller
anticipates that whatever the CPU is working on will continue to
come from this same series of memory addresses, so it reads several
consecutive bits of data together. This means that only the first
bit is subject to the full effect of latency; reading successive
bits takes significantly less time. The
rated burst mode of memory is normally expressed as four
numbers separated by dashes. The first number tells you the number
of clock cycles needed to begin a read operation, the second, third
and fourth numbers tell you how many cycles are needed to read each
consecutive bit in the row, also known as the
wordline. For example: 5-1-1-1 tells you that it takes five
cycles to read the first bit and one cycle for each bit after that.
Obviously, the lower these numbers are, the better the performance
of the memory.
Burst mode is often used in conjunction with pipelining,
another means of minimizing the effects of latency. Pipelining
organizes data retrieval into a sort of assembly line process. The
memory controller simultaneously reads one or more words from
memory, sends the current word or words to the CPU and writes one or
more words to memory cells. Used together, burst mode and pipelining
can dramatically reduce the lag caused by latency.
So why wouldn't you buy the fastest, widest memory you can get?
The speed and width of the memory's bus must match the system's bus.
You can't use memory designed to work at 100 MHz in a 66 MHz system
or 32-bit memory with a 16-bit CPU.
Memory Info and FAQ
Memory
Info and FAQ 2