The CPU and motherboard
architecture (chipset) dictates a particular computer's physical memory
capacity and the types and forms of memory that can be installed. Over the
years, two main changes have occurred in computer memory—it has gradually
become faster and wider. The CPU and the memory controller circuitry indicate
the speed and width requirements. The memory controller in a modern PC resides
in the motherboard chipset. Even though a system might physically support a
given amount of memory, the type of software you run could dictate whether all
the memory can be used.
The 8088 and 8086 CPUs, with
20 address lines, can use as much as 1MB (1,024KB) of RAM. The 286 and 386SX
CPUs have 24 address lines and can keep track of as much as 16MB of memory. The
386DX, 486, Pentium, and Pentium-MMX CPUs have a full set of 32 address lines,
so they can keep track of 4GB of memory; the Pentium Pro, Pentium II/III, and
4, as well as the AMD Athlon and Duron, have 36 address lines and can manage an
impressive 64GB. The Itanium processor, on the other hand, has 44-bit
addressing, which allows for up to 16TB (terabytes) of physical RAM!
When the 286 and higher chips
emulate the 8088 chip (as they do when running 16-bit software, such as DOS or
Windows 3.x), they implement a hardware operating mode called real mode. Real mode is the only mode available on the
8086 and 8088 chips used in PC and XT systems. In real mode, all Intel
processors—even the mighty Pentium family—are restricted to using only 1MB of
memory, just as their 8086 and 8088 ancestors were, and the system design
reserves 384KB of that amount. Only in protected mode can the 286 or better
chips use their maximum potentials for memory addressing.
P5 class systems can address
as much as 4GB of memory, and P6/P7 class systems can address up to 64GB. To
put these memory-addressing capabilities into perspective, 64GB (65,536MB) of
memory would cost nearly $20,000! Even if you could afford all this memory,
some of the largest memory modules available today are 1GB DIMMs. Installing
64GB of RAM would require 64 of the largest 1GB DIMMs available, and most
systems today support up to only four DIMM sockets.
Most motherboards have a
maximum of only three to six DIMM sockets, which allows a maximum of 1.5GB–3GB
if all the sockets are filled. These limitations are from the chipset, not the
processor. Although some processors can address 64GB, there isn't a chipset on
the market that will allow that! Most of the chipsets today are limited to 2GB
of memory, although some handle up to 4GB or more.
Some systems have even more
limitations. P5 class systems have been available since 1993, but only those
built in 1997 or later use a motherboard chipset that supports SDRAM DIMMs.
Even those using the most recent P5 class chipset from Intel, such as the
430TX, do not support more than 256MB of total memory and should not have more
than 64MB actually installed because of memory-caching limitations. Don't
install more than 64MB of RAM in one of these older systems unless you are sure
the motherboard and chipset will allow the L2 cache to function with the
additional memory.
Originally, systems had memory
installed via individual chips. They are often referred to as dual inline package (DIP) chips because of their
designs. The original IBM XT and AT had 36 sockets on the motherboard for these
individual chips; then more of them were installed on the memory cards plugged
into the bus slots. I remember spending hours populating boards with these
chips, which was a tedious job.
Besides being a time-consuming
and labor-intensive way to deal with memory, DIP chips had one notorious
problem—they crept out of their sockets over time as the system went through
thermal cycles. Every day, when you powered the system on and off, the system
heated and cooled, and the chips gradually walked their way out of the sockets.
Eventually, good contact was lost and memory errors resulted. Fortunately,
reseating all the chips back in their sockets usually rectified the problem,
but that method was labor intensive if you had a lot of systems to support.
The alternative to this at the
time was to have the memory soldered into either the motherboard or an
expansion card. This prevented the chips from creeping and made the connections
more permanent, but it caused another problem. If a chip did go bad, you had to
attempt desoldering the old one and resoldering a new one or resort to
scrapping the motherboard or memory card on which the chip was installed. This
was expensive and made memory troubleshooting difficult.
A chip was needed that was
both soldered and removable, and that is exactly what was found in the module
called a SIMM. For memory storage, most modern
systems have adopted the single inline memory module (SIMM), DIMM, or RIMM as
an alternative to individual memory chips. These small boards plug into special
connectors on a motherboard or memory card. The individual memory chips are
soldered to the module, so removing and replacing them is impossible. Instead,
you must replace the entire module if any part of it fails. The module is
treated as though it were one large memory chip.
Two main types of SIMMs, three
main types of DIMMs, and so far one type of RIMM are used in desktop systems.
The various types are often described by their pin count, memory row width, or
memory type.
SIMMs, for example, are
available in two main physical types—30-pin (8 bits plus an option for 1
additional parity bit) and 72-pin (32 bits plus an option for 4 additional
parity bits)—with various capacities and other specifications. The 30-pin SIMMs
are physically smaller than the 72-pin versions, and either version can have
chips on one or both sides. SIMMs were widely used from the late 1980s to the
late 1990s but have become obsolete.
DIMMs are also available in
three main types. DIMMs usually hold standard SDRAM or DDR SDRAM chips and are
distinguished by different physical characteristics. Standard DIMMs have 168
pins, one notch on either side, and two notches along the contact area. DDR
DIMMs, on the other hand, have 184 pins, two notches on each side, and only one
offset notch along the contact area. DDR2 DIMMs have 240 pins, two notches on
each side, and one in the center of the contact area. All DIMMs are either
64-bits (non-ECC/parity) or 72-bits (parity or error correcting code [ECC])
wide (data paths). The main physical difference between SIMMs and DIMMs is that
DIMMs have different signal pins on each side of the module. That is why they
are called dual inline memory modules, and why
with only 1'' of additional length, they have many more pins than a SIMM.
RIMMs also have different
signal pins on each side. Three different physical types of RIMMs are
available: a 16/18-bit version with 184 pins, a 32/36-bit version with 232
pins, and a 64/72-bit version with 326 pins. Each of these plugs into the same
sized connector, but the notches in the connectors and RIMMs are different to
prevent a mismatch. A given board will accept only one type. By far the most
common type is the 16/18-bit version. The 32-bit version was introduced in late
2002, and the 64-bit version won't be introduced until 2004.
The standard 16/18-bit RIMM
has 184 pins, one notch on either side, and two notches centrally located in
the contact area. 16-bit versions are used for non-ECC applications, whereas
the 18-bit versions incorporate the additional bits necessary for ECC.
Figures
6.2–6.7
show a typical 30-pin (8-bit) SIMM, 72-pin (32-bit) SIMM, 168-pin SDRAM DIMM,
184-pin DDR SDRAM (64-bit) DIMM, 240-pin DDR2 DIMM, and 184-pin RIMM,
respectively. The pins are numbered from left to right and are connected
through to both sides of the module on the SIMMs. The pins on the DIMM are different
on each side, but on a SIMM, each side is the same as the other and the
connections carry through. Note that all dimensions are in both inches and
millimeters (in parentheses), and modules are generally available in error
correcting code (ECC) versions with 1 extra ECC (or parity) bit for every 8
data bits (multiples of 9 in data width) or versions that do not include ECC
support (multiples of 8 in data width).
All these memory modules are
fairly compact considering the amount of memory they hold and are available in
several capacities and speeds.
SIMMs, DIMMs, DDR DIMMs, and
RIMMs of each type and capacity are available in various speed ratings. Consult
your motherboard documentation for the correct memory speed and type for your
system. It is usually best for the memory speed (also called throughput or bandwidth)
to match the speed of the processor data bus (also called the front side bus or
FSB).
If a system requires a
specific speed, you can almost always substitute faster speeds if the one
specified is not available. Generally, no problems occur in mixing module
speeds, as long as you use modules equal to or faster than what the system
requires. Because there's little price difference between the various speed
versions, I often buy faster modules than are necessary for a particular
application. This might make them more usable in a future system that could
require the faster speed.
Because DIMMs and RIMMs have
an onboard ROM that reports their speed and timing parameters to the system,
most systems run the memory controller and memory bus at the speed matching the
slowest DIMM/RIMM installed. Most DIMMs are SDRAM memory, which means they
deliver data in very high-speed bursts using a clocked interface. DDR DIMMs are
also SDRAM, but they transfer data two times per clock cycle and thus are twice
as fast.
You can't always replace a module
with a higher-capacity unit and expect it to work. Systems might have specific
design limitations for the maximum capacity of module they can take. A
larger-capacity module works only if the motherboard is designed to accept it
in the first place. Consult your system documentation to determine the correct
capacity and speed to use.