|The Unix Hardware Buyer HOWTO|
The last-generation memory package was a SIMM (Single In-Line Memory Module). We include some information on these here for people upgrading old systems.
SIMMs have 9 bits wide (8 bits of data, one for parity) and either 1, 4, or 16 megabytes in size. The 16s are slightly cheaper per megabyte.
There are two physical SIMM sizes; 30-pin and 72-pin. The 30-pin size is long obsolete; most SIMM-using motherboards have exclusively 72-pin sockets.
Also, your memory may or may not have on-board parity check bits. Memory with parity is specified as ``x36'' (4 check bits per word); memory without is ``x32''. Some motherboards require parity memory; some (including those based on the Neptune chipset) can use parity if present; some (including those based on the Triton chipset) cannot use it. Parity memory is a good idea for Unix machines, which stress the hardware more than other OSs.
You'll hear a lot about ``EDO'' (Extended Data Out) RAM. This stuff is 5%-10% more expensive, but that pays for a significant performance boost in ``burst mode'' (that is, when fetching large contiguous sections of memory into the cache). Most current motherboards (including those based on the Triton chipset) can use EDO but don't require it.
You do not want to buy 1MB SIMMs any more, unless you're filling out memory in an existing system configured with 1MB SIMMs. The trouble with these (besides the fact that four of them are more expensive than a 4MB chip) is that, due to interleaving constraints, you'll probably have to throw them away if you ever add more memory.
These interleaving constraints differ from motherboard to motherboard. Typically, memory sockets are set up in banks of either 2 or 4, with a requirement that you fill all sockets of each bank with the same size of chip. Also, if you mix chip sizes in the banks, the sizes have to decrease smoothly (so there won't be gaps in the memory address space).
So your possible configurations look like the following table. All of these are possible on 4-bank, 16-slot boards; only the asterisked ones are possible on 2-bank, 8-slot boards. All the capacities above 64MB require that the board accept 16MB SIMMs. All current 2x8 boards accept these.
* 4MB = 1-1-1-1 * 8MB = 1-1-1-1 + 1-1-1-1 12MB = 1-1-1-1 + 1-1-1-1 + 1-1-1-1 16MB = 1-1-1-1 + 1-1-1-1 + 1-1-1-1 + 1-1-1-1 * 16MB = 4-4-4-4 * 20MB = 4-4-4-4 + 1-1-1-1 24MB = 4-4-4-4 + 1-1-1-1 + 1-1-1-1 28MB = 4-4-4-4 + 1-1-1-1 + 1-1-1-1 + 1-1-1-1 * 32MB = 4-4-4-4 + 4-4-4-4 36MB = 4-4-4-4 + 4-4-4-4 + 1-1-1-1 40MB = 4-4-4-4 + 4-4-4-4 + 1-1-1-1 + 1-1-1-1 48MB = 4-4-4-4 + 4-4-4-4 + 4-4-4-4 52MB = 4-4-4-4 + 4-4-4-4 + 4-4-4-4 + 1-1-1-1 64MB = 4-4-4-4 + 4-4-4-4 + 4-4-4-4 + 4-4-4-4 * 64MB = 16-16-16-16 * 68MB = 16-16-16-16 + 1-1-1-1 72MB = 16-16-16-16 + 1-1-1-1 + 1-1-1-1 76MB = 16-16-16-16 + 1-1-1-1 + 1-1-1-1 + 1-1-1-1 * 80MB = 16-16-16-16 + 4-4-4-4 84MB = 16-16-16-16 + 4-4-4-4 + 1-1-1-1 88MB = 16-16-16-16 + 4-4-4-4 + 1-1-1-1 + 1-1-1-1 100MB = 16-16-16-16 + 4-4-4-4 + 4-4-4-4 + 1-1-1-1 112MB = 16-16-16-16 + 4-4-4-4 + 4-4-4-4 + 4-4-4-4 * 128MB = 16-16-16-16 + 16-16-16-16 132MB = 16-16-16-16 + 16-16-16-16 + 1-1-1-1 136MB = 16-16-16-16 + 16-16-16-16 + 1-1-1-1 + 1-1-1-1 144MB = 16-16-16-16 + 16-16-16-16 + 4-4-4-4 148MB = 16-16-16-16 + 16-16-16-16 + 4-4-4-4 + 1-1-1-1 160MB = 16-16-16-16 + 16-16-16-16 + 4-4-4-4 + 4-4-4-4 192MB = 16-16-16-16 + 16-16-16-16 + 16-16-16-16 196MB = 16-16-16-16 + 16-16-16-16 + 16-16-16-16 + 1-1-1-1 208MB = 16-16-16-16 + 16-16-16-16 + 16-16-16-16 + 4-4-4-4 256MB = 16-16-16-16 + 16-16-16-16 + 16-16-16-16 + 16-16-16-16
As you can see from the table, most configurations with 1MB chips in them can't be upgraded without throwing away chips.
Here's some more about memory packaging.
Dual Inline Pack. These are the little 16-, 18- or more legged chips that looked vaguely like squared-off centipedes. Populating 8Mb was a task for an evening. Obsolete, except for cache memory.
Single Inline Pin Pack. These look like SIMMs, but have round in-line pins instead of the flat card-edge. Obsolete.
Single Inline Memory Module. A small 30-pin card composed of several chips (the number differs by manufacturer, age, and density) and support components (mostly older modules) that installs in a snap-in socket. They evolved through 128K, 256K, and 512K modules--all sadly obsolete today--into 1Mb, 2Mb (rather rare), and 4Mb modules. Now generally superseded by...
Introduced in the last couple of years to cut down on the number modules needed, they usually run 4Mb, 8Mb, 16Mb, and 32Mb. Many motherboards are available with both 30 and 72-pin SIMM sockets to allow migration use of your older SIMMs.
Dual In-Line Memory Module. This is the current cutting edge, available in 64MB and 128MB sizes.
There are also adapter cards that will accept 30-pin SIMM modules and plug into a 72-pin socket; make sure you've the room for these if you intend to try them, as they protrude quite a bit above the board. There are also companies that will, for modest fees, desolder the memory chips from 30-pin SIMMs and wave solder them onto 72-pin boards.
(Thanks to Dave Ihnat for the glossary.)