Hack #31. Recognize Memory Limitations

Sometimes your system board and BIOS are your biggest limitations when it comes to adding more RAM—either a BIOS upgrade or a new system board is the answer.

When is any amount of RAM too much? When your system's sockets, BIOS, or chipset cannot address more than 256 MB, 512 MB, 640 MB, or more of RAM chips. System boards with three or four 72-pin SIMM (Single Inline Memory Module) sockets ordinarily will not accommodate more than four 32 MB (4 32 = 128 MB) or four 64 MB (4 64 = 256 MB) sticks of RAM.

So stuff as much RAM in the system as you have available, and determine from startup if the system recognizes it or not. If you install more RAM than the system can handle, save the RAM for another system that can use the same type of RAM.

Your old 486, Pentium I, or Pentium II vintage system may present you with a chipset or BIOS limitation that does not support as much RAM as you can physically install. Check the manual for your system board or look it up on the Web to see how much RAM the board will support. These limitations may be imposed by chipset design assumptions that no one would ever get their hands on that much RAM, much less have an operating system or program that could use it. If the chipset on your system board is capable of handling more memory, the limitation may be in your BIOS.

If you think that a BIOS upgrade might help accommodate more RAM, first scour the Internet for tips and advice to see if anyone else has successfully applied large amounts of RAM to the system board you have. You may be able to locate information on your specific board through a search of Google or Usenet newsgroups through Google Groups. Other resources to check are the chipset makers to determine the amount of RAM your chipset will support. This requires downloading and reading a lot of esoteric product specification data, but the documents may be informative reading even if they reveal limitations you were hoping to exceed.

If you determine that a BIOS update might help, check with your system board vendor or the folks at Unicore [Hack #9] to see if an upgrade is available for your system board.

Why put a limitation on the amount of RAM in any system? First, the 8088 CPU could only address a megabyte of memory space. Second, the first PC came with only 16K of RAM, and DOS and the few programs or BASIC programming tools available would fit quite nicely into a mere 64K of RAM. Third, RAM was expensive. Fourth, if no operating systems or applications needed more capability, there was no economic or practical reason to create a more expensive system than people would buy.

Another consideration was physics. Hardware and chip manufacturers could barely get a PC to function at 12-16 MHz in 1984-1985, nevermind the 3 GHz they can today. Memory and data components had to be designed to work at higher speeds. Getting more data bits to more memory chips meant signal lines had to be longer (and as a result noisier), making for tremendous reliability concerns.

Subsequent to the early PC days (when PCs ran at 4.77 MHz, "turbo" models ran at a whopping 8 MHz, and 286 systems started out with 8 MHz CPU clock speeds and eventually reached the blazing 16-20 MHz barriers), computer industry biggies like Lotus, IBM, and Microsoft began to understand the need for applications and data to consume more RAM than 640 KB. So, they concocted Extended Memory for the 16-bit i80286 CPU chips that could address 64 MB of RAM, even though many systems supported or had only 16.

The i80286-class processors had a known bug in them that limited the use of Extended Memory, so in the mid-1980s Lotus, Intel, and Microsoft created the Lotus-Intel-Microsoft (LIMS) Expanded Memory Specification (EMS) or LIMS-EMS Version 3.2, which readily made use of 8 MB of RAM regardless of the type of CPU in use, and this got us around the 286 bug. In 1987, Version 4.0 of the LIMS-EMS specification was released, which supported the use of 32 MB of RAM. Because LIMS-EMS worked with any CPU, it was the preferred method of adding and using additional RAM, until the i80386-class CPUs and Windows 3.0 arrived. These systems virtually eliminated the need for LIMS-EMS because the CPU could address and use all of the Extended Memory (above one megabyte) that was available. If a program still needed LIMS-EMS memory, it could be emulated with the EMM386 device driver.

These were the baby and giant steps in technology development that have driven or limited certain aspects of PC development and capabilities—captive to a seesaw effect of hardware or software limitations and the attempts to overcome one or the other. As these developments crept forward, hardware, BIOS, operating system, and software developers had to jockey around whichever technology looked the most promising.

The best way to know for sure what the RAM limitations are for your system board is to check the manual or manufacturer's web site. The documentation should indicate any special limitations on amount of RAM per socket or a requirement to install RAM in pairs. If you do encounter a limitation in the amount of RAM your system board supports, try these possible solutions:

  • Rather than one module (SIMM or DIMM) with a lot of RAM on it installed in one slot, try two, three, or four smaller modules in each slot. If this works, the limitation is that the chipset and board design have a limited addressing range per RAM slot.

  • Try a different type of module—switch from single- to dual-sided or dual- to single-sided. The limitation this addresses is module addressing/interleave incompatibility with the system board or chipset.

  • Try two modules instead of one. If this works, the limitation is in addressing range per slot or a system board design that requires a pair of SIMMs/DIMMs to accommodate interleaving memory addresses across two devices.

  • Try different or faster RAM. It could be that the memory you have is either not living up to its rated speed specification. The RAM could be too slow for or incompatible with the system board or chipset. Also, your modules could be defective.

  • Check your system board manufacturer's web site or http://www.unicore.com for a BIOS upgrade that supports more memory.

Get PC Hacks now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.