The day will probably come when you need to expand the RAM
on your system. As more users are added and they do more work, the little RAM you have won't be
enough. Once you have decided that you need more RAM, you still have most of your work ahead of
One key issue you need to consider is the kind of RAM.
In almost all newer machines, RAM comes in the form of SIMM
modules. As I mention in Chapter 12, these modules are about the size of a stick of chewing gun, with the chips
mounted directly on the cards. These modules have almost entirely replaced the old RAM, which was composed
on individual chips.
There are two primary type of SIMMs. The somewhat larger type is called a PS/2 SIMM
because it was first used on PS/2 machines. This has 72 connectors on it and can be immediately distinguished by
the small notch in the middle. The other kind is referred to as non-PS/2, normal, regular, etc. This
has 30 pins and no notch. (There is also a 32-pin SIMM, but it is uncommon. I have never seen one,
but someone who works in the chip manufacturing business told me about it.)
Two important aspects of RAM
are the speed and whether it has parity.
The speed of RAM is measured in nanoseconds (ns). Most RAM today is either 70 or 60ns, with a few
machines still being sold with 80ns. The speed of RAM is a measure of how quickly you can read a
particular memory location.
Although it is possible in many cases to mix RAM
speeds, I advise against this. First, memory can only be accessed as quickly as the slowest chip.
Therefore, you win nothing by adding faster RAM, and loose if you add slower RAM. I have also seen
machines in which mixing speeds actually causes problems. Because the difference between 80ns and
70ns is more than 10 percent, the delay waiting for the slower (80ns) RAM makes the system think
that there is a problem. This can result in kernel panics.
Another issue is the motherboard design. For example, in one of my machines, I have two banks of
memory with four slots each. Because of the way the memory access logic is designed, I must fill a
bank completely, otherwise, nothing in that bank with be recognized. On other machines, you can add
single SIMMs. Check the documentation that came with the motherboard.
Another important issue is the fact that Linux uses only extended, not expanded, memory. Expanded
memory dates back to the early days when the XT bus could only handle up to
1MB of RAM. To give programs access to more memory than the computer could
handle, some memory board manufacturers came up with the concept of "bank switching." With bank
switching, a 64K area between 640K and 1Mb is reserved and then portions above 1Mb are "switched"
into this reserved block as needed.
When the AT bus
was developed, the system could access more memory. To make it compatible with older peripherals,
however, the area between 640K to 1MB was left "unused." Memory beyond 1MB is known as
Some machines have a hardware limitation on the maximum amount of memory that can be installed.
Because I use 30-pin SIMMs on an older machine, the largest available (as of this
writing) is 4Mb. Because of this, I max out at 32Mb when I fill all eight of my slots. If you have
72-pin memory, there are larger modules, such as 64, 128, 256 and even 512Mb. Again, refer to your
motherboard manual for details.
If you have a Pentium or Pentium Pro, you will need to add PS/2 memory in pairs because memory is
read 64 bits at a time and PS/2 SIMMs provide only 32 data bits. If you have a Pentium machine that
has the older SIMMs, they will have to be in groups of four.
If you experience repeated panics with parity
errors, consider replacing your memory. Because of the way memory is accessed, you may have to
remove or replace entire banks (like mine). I have also seen cases in which mixing memory types and
speeds can cause panics. Panics may also be the result of improperly inserted SIMMs. That is, if the
SIMM is loose, it may not make a good contact with the slot. If the machine
gets jarred, the contact may be lost.
In some cases, you can simply add the memory and the machine will recognize it (like mine).
However, I have some machines for which you have to set jumpers to enable each bank as you add
memory. In other cases, when you have filled up all the slots on the motherboard, you can add a
memory expansion card. If this is on a machine like a PS/2, it requires you to
tell the system of the memory expansion card using the configuration disk.