Adding RAM

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

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 1MiB 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 64KiB between 640KiB and 1MiB is reserved and then portions above 1MiB 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 640KiB to 1MiB was left “unused.” Memory beyond 1MiB is known as extended memory.

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 4MiB. Because of this, I max out at 32MiB 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 512MiB. 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.