5.3 Memory Packaging
Memory
is available in various physical packaging. Roughly in order of their
appearance, the major types of DRAM packaging include the
following.
- Dual Inline Pin Package (DIP)
-
This package comprises a rectangular chip with a row of pins down
each long side, making it resemble an insect. DIP was the most common DRAM
package used in PCs through early 386 models. DIP chips were produced
in Page Mode and Fast Page Mode, and are long obsolete. DIP packaging
was also used for L2 cache memory on most 486 and some Pentium-class
motherboards. DIP DRAM is useless nowadays.
- Single Inline Pin Package (SIPP)
-
This package turns a DIP chip on its side and extends all leads
straight out one side parallel to the plane of the chip.
SIPPs were intended to allow
memory to be installed more densely, and were used in a few 386SX
systems, but never caught on. SIPPs were produced in Page Mode and
Fast Page Mode form, and are long obsolete.
- Single Inline Memory Module (SIMM)
-
This package mounts multiple individual DRAM DIP chips on a small
circuit board with a card edge connector designed to fit a socket on
the motherboard. Mainstream
SIMMs have been manufactured in two form
factors:
- 30-pin
-
These SIMMs were used in a few 286 systems, most 386 systems, and
some 486 systems, and were produced in Page Mode and Fast Page Mode
form. Although they are still available, 30-pin SIMMs are obsolete. If you tear
down an old system, any 30-pin SIMMs you salvage are too small and
too slow to be useful except that some laser
printers use them.
- 72-pin
-
These SIMMs
were used in some 386 systems, most 486 systems, and nearly all
Pentium-class systems built before the advent of DIMMs. 72-pin SIMMs
were produced in Fast Page Mode, EDO, and BEDO form. When tearing
down old systems, 72-pin SIMMs may be worth salvaging, as they can be
used to populate some current Socket 7 motherboards or to expand the
memory in some laser printers.
Figure 5-1 shows a 72-pin SIMM (top) and a 30-pin
SIMM. The 72-pin SIMM is keyed by the notch at the bottom right; the
30-pin SIMM by the notch at the bottom left. The holes on either side
immediately above the bottom row of contacts are used by the slot
retention mechanism to secure the SIMM in the slot. Although it may
not be visible in the reproduction, the top SIMM uses gold contacts
and the bottom SIMM tin contacts.
- Dual Inline Memory Module (DIMM)
-
DIMMs are dual-side
modules that use connectors on both sides of the circuit board.
SDR-SDRAM DIMMs have 168 pins, but SDR-SDRAM is also available in
100- and 144-pin DIMMs. DDR-SDRAM is packaged in 184-pin DIMMs, which
are physically similar to standard 168-pin SDR-SDRAM DIMMs, but have
additional pins and different keying notch positions to prevent them
from being interchanged. Only SDR-SDRAM, DDR-SDRAM, and EDO are
commonly packaged as DIMMs.
- Small Outline DIMM (SODIMM)
-
A special package used in notebook computers and
on some video adapters.
- RIMM
-
A Rambus RDRAM module.
RIMM is a trade-name
rather than an acronym. RIMMs are physically similar to standard
SDRAM DIMMs, except that the keying notches are in different
locations. RDRAM is available in 168-pin and 184-pin modules. Early
RDRAM motherboards used 168-pin RIMMs. Most current RDRAM
motherboards use 184-pin RIMMs.
Figure 5-2 shows the two most common physical
packages for memory used in current systems. The top module is a
168-pin PC133 SDRAM DIMM. The bottom module is a 184-pin PC2100
DDR-SDRAM DIMM. The physical dimensions of both are the same: 5.375"
(13.6525 cm) wide by 1.375" (3.4925 cm) tall. The width is
standardized for all memory modules to ensure they fit the standard
slot. The height may vary slightly, and is a factor only in that tall
modules may interfere with other components in a tightly packed
system. Both of these modules use nine chips, which indicates that
they are ECC modules. Non-parity modules use only eight chips.
The major difference between these DIMMs, other than the number of
pins, is the location of the keying notches. SDRAM DIMMs use two
notches, one centered and one offset. DDR-SDRAM DIMMs use only one
offset keying notch. The number and position of these keying notches
ensure that only the proper memory type can be installed in a slot
and that the module is oriented correctly. Rambus RIMMs use similar
physical packaging, but with the keying notches in different
locations. Rambus RIMMs also cover the individual chips with a metal
shroud designed to dissipate heat.
5.3.1 Banks Versus Rows
Memory
rows and banks
are easily confused. Rows are physical groups
and banks are logical groups. A bank comprises
one or more rows, the number depending on CPU address bus width and
the width of the memory, which is closely associated with its form
factor.
- DIP
-
These are 1
bit wide, and require eight chips per row (nine, if parity is used).
The number of rows per bank depends on the CPU. XT-class PCs, which
use an 8-bit memory bus, require one row per bank. 286s (16-bit bus),
require two rows per bank. 386s and 486s (32-bit bus) require four
rows per bank.
- 30-pin SIMM
-
These are 8 bits wide. 286s require two
modules (rows) per bank. 386s and 486s require four modules per bank.
Pentiums (64-bit bus) require eight modules per bank.
- 72-pin SIMMs
-
These are 32 bits wide. 486s require one module per bank. Pentium and
higher systems require two modules per bank.
- 168-pin and 184-pin DIMMs
-
These are 64 bits wide. One DIMM always forms one bank.
- 168-pin and 184-pin RIMMs
-
Older motherboards use 168-pin RIMMs. Most newer motherboards use
184-pin RIMMs. Although RIMMs technically use a 16- or 18-bit
communications channel, a single RIMM appears to the chipset as one
bank. Some motherboards have a single RDRAM channel, such as those
based on the Intel 820 chipset, and allow RIMMs to be installed
individually. Other motherboards, such as those based on the Intel
850 chipset, have dual RDRAM channels, and require that RIMMs be
installed in pairs, one per channel.
|
In a
RIMM-based system, all memory slots must
be populated, either with a RIMM module or with a
Continuity RIMM
(CRIMM), which
provides electrical continuity. If any RIMM slot is empty, the system
will not boot. For those who work primarily with DIMMs, as we do,
it's easy to forget this requirement. We spent an
hour one day trying to figure out why a system we'd
built just sat there beeping instead of booting. Turned out
we'd forgotten to install the CRIMM, which was
buried deep in the motherboard packaging. All RDRAM motherboards we
know of allow RIMMs and CRIMMs to be installed interchangeably. That
is, it doesn't matter which slots you populate with
RIMMs and which with CRIMMs.
|
|
You must install memory
at least one full bank at a time. If you install
more than one bank, you must install in full-bank increments. One
168-pin or 184-pin DIMM or RIMM always equals one bank, regardless of
the type of motherboard or processor. One 72-pin SIMM equals one bank
in 386s and 486s. Two SIMMs equal one bank in Pentiums. Older
systems, particularly 486s, may interleave banks to improve
performance, which requires installing two banks
at a time. In addition to banks, you may need to
consider rows or devices,
particularly if you install a large amount of memory. Each SDRAM
chipset supports at most a certain number of rows of memory, and this
limit does not necessarily correspond with the number of physical
memory slots on a motherboard that uses that chipset. A
single-sided SDRAM DIMM has chips physically
installed on only one side of the module, and appears to the chipset
as one row of memory. A double-sided SDRAM DIMM
has chips physically installed on both sides of the module, and
appears to the chipset as two rows of memory. So, for
example, if a motherboard has three physical DIMM slots and its
chipset supports only four rows of memory, you are restricted in
terms of which DIMMs you can install. You can install single-sided
DIMMs in all three memory slots, because those three DIMMs total only
three rows. You can install one double-sided DIMM and two
single-sided DIMMs, because that totals only four rows. But if you
install two double-sided DIMMs, you must leave the third slot empty,
because the two double-sided DIMMs total four rows, which is the
maximum the chipset supports. Two other factors may
have a bearing on how many SDRAM DIMMs you can install:
- Memory speed
-
Installing faster memory may reduce the number of DIMMs you can
install. For example, a motherboard may have four DIMM slots, all of
which can be populated with PC100 DIMMs. But that motherboard may
support at most three PC133 DIMMs, forcing you to leave the fourth
DIMM slot empty if you install PC133 memory.
- Unbuffered versus Registered DIMMs
-
Unbuffered SDRAM DIMMs require the chipset
memory controller to manage each chip on the DIMM individually. There
is an upper limit on how many memory chips the memory controller can
manage, which restricts the total number of unbuffered memory chips
that the motherboard can support. Registered SDRAM
DIMMs (sometimes called Buffered SDRAM
DIMMs) put an additional layer of circuitry between the
chipset memory controller and the actual memory chips, which in
effect reduces the number of memory chips visible to the chipset
memory controller to a manageable number. Registered DIMMs are
uncommon in desktop systems because they cost more and are slower
than unbuffered DIMMs. A CL2 registered DIMM has about the same
memory performance as a CL3 unbuffered DIMM. Some motherboards
support only unbuffered DIMMs, others only registered DIMMs, and some
support either. A motherboard that supports either type may allow
using one or the other, but not both at once.
RDRAM systems also limit the number of memory chips that can be
installed at one time. Each RIMM comprises multiple RDRAM memory
chips, each of which is called an RDRAM device.
A typical RDRAM chipset might support at most 32 RDRAM devices per
channel. If a RIMM uses 16 RDRAM chips (devices), you could install
two of those RIMMs on the channel and still be within the upper limit
on RDRAM devices. Attempting to install a third RIMM on that system
would cause the system to fail to boot. Conversely, if you were
installing RIMMs that use eight devices, three RIMMs would total only
24 devices, and so would be within the device limitation of that
channel.
5.3.2 Chip Density
Memory modules are constructed from individual memory chips, which
vary in their capacity. Chip capacities are specified in megabits (Mb
or Mbit) rather than megabytes (MB). Because there are eight bits per
byte, a memory module that uses eight chips can store the number of
megabytes specified by the megabit size of the chip. For example, a
memory module that uses eight 128-Mbit chips is a 128 MB memory
module.
Recent memory modules may use 16-, 64-, 128-, 256-, or 512-Mbit
chips. A memory module of a specified capacity may use fewer
high-capacity chips or more low-capacity chips. For example, a 256 MB
DIMM might use eight 256-Mbit chips or sixteen 128-Mbit chips.
Although both DIMMs have the same 256 MB capacity, the 8-chip DIMM is
a single-sided DIMM and the 16-chip DIMM is a double-sided DIMM. For
a given capacity, it's generally better to install a
single-sided DIMM when possible, because chipsets support only so
many rows of memory, and a double-sided DIMM "uses
up" two rows.
However, you must not install memory that uses higher capacity chips
than your chipset supports. For example, the Intel 815 chipset
supports 16-, 64-, 128-, and 256-Mbit chips, so an 815-based
motherboard could use either the 8-chip or the 16-chip 256 MB DIMM.
The Intel 440BX chipset, however, supports only 16-, 64-, and
128-Mbit chips, so a 440BX-based motherboard could use only the
16-chip 256 MB DIMM. Attempting to install a DIMM that uses higher
capacity chips than the chipset supports has unpredictable
consequences. Sometimes, the system will simply refuse to recognize
the DIMM. Other times, the system will recognize the DIMM, but at
some fraction (typically half or a quarter) of its actual capacity.
You must also avoid using chips of too low a capacity. For example,
the Intel 845 chipset supports 64-, 128-, 256-, and 512-Mbit chips,
but not 16-Mbit chips. Installing an older DIMM that uses 16-Mbit
chips in an Intel 845-based motherboard results in the DIMM not being
recognized.
|
If you use Crucial memory, which we recommend, the best way to make
sure that the module you choose is compatible with your system is to
use the Crucial Memory Selector on the Crucial home page (http://www.crucial.com/). That tool allows
you to specify your system or motherboard model, and displays only
memory modules that are compatible with your system.
|
|
5.3.3 Parity and ECC Memory
Parity and Error
Checking and Correction (ECC) memory use extra bits to store checksum
information that can detect and sometimes correct memory errors.
- Parity memory
-
Uses nine bits per byte to provide simple error detection, so simple
as to be useless on modern PCs. Most early DIP-based PCs required
parity memory, and so used nine chips per row. SIMMs, which are much
more reliable than DIPs, made parity unnecessary. The Intel Triton
Pentium-class chipset and competing chipsets removed support for
parity memory. Recent chipsets again support parity memory, but there
is no good reason to use it.
Although parity memory is still sold, buy it only if your computer
requires it. Some computers do not allow mixing parity and non-parity
modules. Before buying parity memory, verify which type is already
installed and whether your chipset can mix parity with non-parity
memory. Identify parity modules by counting the chips on the module.
If that number is evenly divisible by three, it's a
parity module. If non-parity memory is installed, or if parity memory
is installed but your chipset allows mixing types, buy non-parity
memory. Buy parity memory only if parity memory is already present
and your chipset does not allow mixing types.
- ECC memory
-
An enhanced form of error checking memory that can detect single- and
multi-bit errors and correct all single- and some multi-bit errors.
ECC originated on mainframes, migrated to mini-computers, and is now
common on PC servers.
ECC memory requires five extra bits to protect an 8-bit byte, six to
protect a 16-bit word, seven to protect a 32-bit word, and eight to
protect a 64-bit word. A 72-bit wide DIMM supports either parity or
ECC interchangeably. Chipsets that support 168-pin DIMMs usually also
support ECC, although ECC is not always implemented in BIOS. If your
BIOS supports it, you can use ECC by installing 72-bit DIMMs and
enabling ECC in Chipset Setup. The downside is that 72-bit DIMMs cost
about 12.5% more than standard 64-bit DIMMs, and enabling ECC reduces
memory performance, typically about 3%. Use ECC memory on servers
when constant uptime is critical. Do not use ECC memory in standard desktop
PCs except those that have a large amount of memory installed.
|
One common cause of "flipped bit"
memory errors is, believe it or not, cosmic rays. The more memory you
have installed, the more likely it is that a random cosmic ray will
impact one of the memory cells in a chip on your system, causing the
contents of that cell to flip from a binary zero to a one or vice
versa. We don't pretend to understand this issue,
but we've been told by memory experts that for
systems with 512 MB of RAM, using ECC versus non-parity memory is
about an even trade-off in terms of extra cost and lost performance
versus the likelihood of memory errors. For systems with 768 MB+, we
use ECC memory exclusively.
|
|
|