5.4 Memory Packaging

Memory is available in various physical packaging. Roughly in order of their appearance, the major types of DRAM packaging include:

DIP (Dual Inline Pin Package)

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.

SIPP (Single Inline Pin Package)

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 they never caught on. SIPPs were produced in Page Mode and Fast Page Mode form, and are long obsolete.

SIMM (Single Inline Memory Module)

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:


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. However, some laser printers do use them.


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 form, and BEDO form. When tearing down old systems, 72-pin SIMMs may be worth salvaging, as they can be used to expand the memory on a late-model Pentium or Pentium Pro system 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.

Figure 5-1. 72-pin SIMM (top) and 30-pin SIMM
DIMM (Dual Inline Memory Module)

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. DDR-II DIMMs are similar to DDR DIMMs, but use a 232-pin connector. Only SDR-SDRAM, DDR-SDRAM, and EDO are commonly packaged as DIMMs.

SODIMM (Small Outline DIMM)

A special package used in notebook computers and on some video adapters.


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 recent systems. The top module is a 168-pin PC133 SDRAM DIMM. The bottom module is a 184-pin PC2100 DDR-SDRAM DIMM (faster DDR-SDRAM modules use the same package). The physical dimensions of both are the same: 5.375 inches (13.6525 cm) wide by 1.375 inches (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 Error Checking and Correction (ECC) modules. Nonparity modules use only eight chips.

Figure 5-2. PC133 SDRAM DIMM (top) and PC2100 DDR-SDRAM DIMM

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.4.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.


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 most 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. Note, however, that a 32/36-bit RIMM is physically packaged as one module, but is logically two RIMMs. That means you can populate a dual-channel Rambus motherboard with just one 32/36-bit RIMM.

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 that 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 16/18-bit 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.

Motherboards with dual-channel DDR-SDRAM memory controllers, such as the Intel D875PBZ or the ASUS A7N8X Deluxe, require adding DIMMs in pairs to enable dual-channel operation. Most such motherboards can operate with only one DIMM installed, but that disables dual-channel memory operation, which may incur a significant performance penalty. When installing DIMMs in pairs, the best practice is to use only identical DIMMs, but some motherboards allow using DIMMs with mixed speeds. See the motherboard manual for complete details.

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 given 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 three DIMM slots, all of which can be populated with PC2700 DIMMs. But that motherboard may support at most two PC3200 DIMMs, forcing you to leave the third DIMM slot empty if you install PC3200 memory.

Using too much fast memory can cause subtle memory problems. Motherboard, system, and memory manufacturers often do not publicize this problem. As a rule of thumb when installing fast memory, choose fewer high-capacity modules in preference to more lower-capacity modules. This problem is particularly likely to arise when you "push the envelope"?for example, by installing PC3200 or PC3500 memory, overclocking your system, or running dual processors.

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 sort. 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.4.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 eight-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 eight-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 one-half or one-quarter) of its actual capacity.

You must also avoid using chips of too low a capacity. For example, the Intel 875P chipset supports 128-, 256-, and 512-Mbit chips, but not 64-Mbit chips. Installing an older DIMM that uses 64-Mbit chips in an Intel 875P-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.4.3 Parity and ECC Memory

Two types of memory use extra bits to store checksum information that can detect and sometimes correct memory errors. They are as follows:

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 nonparity modules. Before buying parity memory, verify which type is already installed and whether your chipset can mix parity with nonparity 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 nonparity memory is installed, or if parity memory is installed but your chipset allows mixing types, buy nonparity 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 multibit errors and correct all single- and some multibit errors. ECC originated on mainframes, migrated to minicomputers, 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 may 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, however, is that 72-bit DIMMs cost about 12.5% more than standard 64-bit DIMMs, and enabling ECC reduces memory performance, typically by 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 nonparity 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, if the motherboard supports it.