Computer Memory Explained

 
 

 

 

By: Stephen Alford, MCSE+Security, MCT 
Technical Editor, Computer Security News

Memory basics

For network administrators, memory is the performance lifeblood of our components -- especially in a Windows environment. Providing workstations and servers with adequate memory delivers more performance gains than similar investments in processor speed, upgrades in disk subsystems or other software-based performance tweaks.

While you may know about that, you may not be familiar with the basic differences among memory types or what the advantage or disadvantage may be when choosing one memory type over another for a server or workstation.

Typically, the systems manufacturer and/or the type of motherboard limits the choice of memory that's available. To start, memory chips are classified by several different criteria, including:

  • Form factor: the type and size of the memory module on which the chips are mounted.
  • Chip type: the method used to store memory (static or dynamic) as well as the specific technology used on the memory chip (EDO, SDRAM, DDR and DDR2).

In this guide I will explain the various form factors and chip types. In short, after you read this guide, you will know the basic difference between SO DIMM and Micro-DIMM and be an expert on how to choose memory for your server or workstation.

I've broken the guide into four sections: Form factors, Memory types, Types of DRAM, and Error-Correcting Code (ECC) memory and parity.

Form Factors

When looking at computer memory, the first thing you will notice is its form factor or the size of the memory module and its pin configuration. Many motherboards can accept only one type of form factor, but there are several systems that allow a choice.

 

  • SIMM (single in-line memory module). This early form factor for computer memory is typically seen only in legacy systems. The first SIMM modules had 30 pins and transferred data 8 bits at a time. As 32-bit computing developed, wider 72-pin SIMMs were developed that could transfer data at 32 bits.
     
  • DIMM (dual in-line memory module). DIMMs look similar to SIMMs, except that the DIMMs are longer (168 pins), and the pins on the opposing sides of the memory module are electrically isolated from each other. The 168-bit DIMMs transfer data at 64 bits at a time and are commonly found in Pentium and Athlon systems. Newer DDR DIMMs have 184 pins. DDR2 DIMMs may have 200 or 240 pins.
     
  • RIMM (a trademarked name for the 184-pin Direct Rambus Memory Module). These modules look similar to DIMMs but generate more heat because they provide faster access and transfer speeds. RIMMs come with an aluminum heat spreader that covers the module. Despite having the same number of pins (184) as a DDR DIMM, a RIMM can only be used on motherboards or systems specifically designed for RIMMs.
     
  • SO DIMM (small outline) and MicroDIMM. Laptops commonly use SO DIMMs. Smaller sub-notebook devices typically use MicroDIMMs. There is also a similar Rambus version called a SO-RIMM.
     

The most common form factor you're likely to encounter today in workstations or servers is the DIMM.

 

Static vs. Dynamic

In addition to form factor, the chip technology used on the memory module defines the type of RAM.

  • SRAM (static RAM). This type of memory maintains data in storage as long as it is powered. Because it is faster and more reliable and expensive than DRAM, SRAM is most often used as cache memory. Earlier forms of SRAM were classified as Async or Sync RAM if they were synchronized with the system clock. The most common type of SRAM today is pipeline burst SRAM, which can operate at higher bus speeds.
     
  • DRAM (dynamic RAM). This type of RAM retains its data by being continuously rewritten every few milliseconds. Like SRAM, the data in storage is volatile, meaning it is lost when the system is not powered. DRAM is the most common type of expandable memory in workstations and servers today, but there are several different types of DRAM.

Types of DRAM

As we've discovered, most computer memory today uses a DIMM memory module using DRAM. The problem at this stage is that the type of DRAM on the module can greatly affect performance and cause the most confusion when designing or configuring a system.

  • FPM (fast page mode DRAM). Introduced in 1987, this is an early form of DRAM that was once very common because it was slightly faster than DRAM. This type of memory was frequently mounted on a SIMM in 486 and early Pentium computers.
     
  • EDO (extended data output). EDO offers a slight performance boost over FPM DRAM by cutting a few steps when addressing memory. Introduced in 1995, EDO requires a specific chip set and is limited to bus speeds of 66 MHz. Once again, these chips are mounted on SIMM modules.
     
  • BEDO (burst EDO RAM). This is a slightly faster variant of the EDO RAM chip in which read and write operations send bursts of data in batches of four. This type of memory is not widely used.
     
  • SDRAM (synchronous DRAM). SDRAM synchronizes itself with the microprocessor clock speed allowing faster access to memory. These chips are mounted on DIMM memory modules and are classified according to the CPU speed they are designed to support. For example, a PC133 SDRAM DIMM is designed for a Pentium 133 CPU.
     
  • ESDRAM (enhanced SDRAM). This version of SDRAM includes a small SRAM cache in order to reduce latency and speed up operations. This standard is not widely used.
     
  • SLDRAM (synchronous link dynamic RAM). Another version of SDRAM, which was designed as a royalty-free, open-industry standard design alternative to RDRAM. It is not widely used.
     
  • DDR (double data rate SDRAM). DDR allows data transfers on both the rising and falling edges of the clock cycle, which doubles the data throughput. DDR SDRAM chips are mounted on 184-pin DIMM modules and are typically available in 128 Mb to 1 GB capacity. They operate at bus speeds up to 400 MHz. DDR memory is very common, but the technology behind it is at its limits, and it is being replaced by DDR2.
     
  • DDR2. These chips are the next generation of DDR SDRAM memory. They are mounted on 240-pin DIMM modules, can operate at higher bus speeds and have a capacity to hold 256 Mb to 2 GB of memory. DDR2 has twice the latency of DDR but delivers data at twice the speed of DDR, theoretically performing at the same level.
     
  • RDRAM (Rambus DRAM). A proprietary protocol-based, high-speed memory technology developed by Rambus Inc., RDRAM has current frequencies of 800 MHz to 1200 MHz, and planned chip sets can expect to reach 1600 MHz. RDRAM RIMMs can only be used on motherboards or systems specifically designed for them. There are 184 pins for 16-bit RDRAM RIMMs; 32-bit RDRAM RIMMs have 232 pins.

ECC & Parity

In an effort to minimize memory data corruption, memory manufacturers modified some chips to include an extra process (called parity) that checks the data for errors.

ECC not only checks the accuracy of the data, but attempts to correct the error as well. ECC memory is often recommended for use in servers and workstations with more than 1 GB of memory. However, in order to use ECC, your motherboard must support it and you cannot mix ECC and non-ECC memory.

Troubleshooting computer memory

Computer memory is the lifeblood of your information systems, but it's a component that is easily taken for granted.

Since memory modules don't contain any moving parts, they can't fail, right? Wrong. We know that they can indeed fail -- and not in ways that are always obvious.

One day you notice some data is missing. The culprit turns out to be a faulty memory module. This is just one of many symptoms you should be aware of that can hint at an impending memory problem.

What causes a memory failure? How can you determine the source of the problem? This guide offers answers to these questions about memory and gives you some valuable troubleshooting steps when you come face-to-face with a memory failure. I'll also offer advice on preventative steps to take that will help you avoid a memory mishap.

Check out the symptoms

Memory-related issues are not always obvious. If you're lucky, your system will actually present you with a clear error code that clearly identifies a faulty memory module. In most cases, though, the symptoms are more cryptic and harder to identify.

The following errors are the most common symptoms of faulty (or failing) memory modules:

  • Memory errors. These include system memory errors, or "blue screen" system crashes that reference memory read/write, parity, interrupt, address, page faults, general protection faults or mismatch errors. In some cases, the system may simply refuse to recognize the installed memory.
     
  • Boot failures. Because the BIOS checks the computer memory every time the system boots, memory failures often result in an unbootable system that may present with a blank screen and a system beep.
     
  • Data corruption. Since almost all of the data running on a computer passes through the system's memory, data corruption is one indicator of a failing memory module. Common symptoms include lost, missing or scrambled data; frequent crashes; spontaneous reboots; registry errors; missing system files; and other intermittent or bizarre behavior.
     

Primary causes of memory failure

  • Memory configuration. The installer put in mismatched modules, the wrong memory for the system board or modules installed in the wrong order.
     
  • Installation issues. The memory module is seated incorrectly, or the memory socket is defective, corroded or dirty.
     
  • Hardware defects. A portion of the memory module is bad because of a manufacturing defect, power surge, overheating or other causes.

 

 

Five ways to diagnose the problem

The easiest way to determine the root cause of a memory problem and find a solution is by examining the events or conditions of the computer before symptoms occurred.

Check to see if any of the following conditions apply to you:

·  You recently purchased the system. This could be any of the primary causes, but OEM vendors don't typically mismatch or mis-configure memory (although it does happen). Improperly seated or bad memory modules are common, as are bad motherboards. Your best bet is to call your OEM to confirm which tests were performed on the system before it shipped.
 

·  You have newly installed memory. This could be any of the three primary causes. Start by checking the memory part numbers and your system documentation to make sure you have the correct memory for your system and that you installed it correctly. Next check the installation by removing the memory modules, examining them for defects and reinserting them. Finally, upgrading your system BIOS may resolve the issue.
 

·  New hardware was recently installed. Careless hardware installations can bump memory modules out of place and warp or crack motherboards if excessive pressure was used. In addition, electrical shorts could occur if the installer was not grounded properly. Uninstalling or removing the new hardware should be the first step in troubleshooting this issue. Updating the system BIOS may also resolve the issue.
 

·  You have newly installed software or operating system. If the system was running fine prior to the installation or software upgrade, I would suspect a system compatibility issue, either with the software or the system BIOS. First, check with the software vendor's support knowledge base for known issues. Then, check for any available updates for your system BIOS.
 

·  No recent changes. The system was running fine and simply started acting up. Dust or corrosion of the memory socket, damage to the memory module from heat or electrical surges or a failing power supply could be the cause. Temporarily removing or replacing the module and testing it can help isolate the issue.

 

Basic troubleshooting steps

Effective troubleshooting of any issue boils down to using a methodical, scientific approach that rules out common issues as you progress.

It's often tempting to skip steps, but taking any shortcuts will just lengthen the troubleshooting process if your hunches are wrong. Instead, take these basic steps to avoid a more serious and possibly impending problem.

1.       Back up your system. If your system is bootable but unstable, back up your data as soon as possible. Memory problems can result in data corruption, and you don't want to risk losing your data while you're troubleshooting the issue.
 

2.       Check your hardware and system configuration. If you have recently installed memory, make sure the new modules are compatible with your system board and that you installed them in the correct slots. Check part numbers and confirm your system components match your documentation. Then check your motherboard and BIOS documentation to see if you need to enable any special settings before upgrading memory.
 

3.       Reinstall the modules. Remove the memory modules from the system board, examine them for damage, examine the system board for damage and reinsert them. While the modules are removed, use a soft cloth to clean the contacts of the module using a cleaner called "FluxOff" or a similar product. Use compressed air or a PC vacuum to remove dust from the memory socket. After reinserting the modules, make sure they are the same height to ensure correct placement.
 

4.       Swap or replace the memory modules. Swapping the position of the memory modules on the system board, reinstalling identical memory modules or installing modules in another identical system can be useful in determining if the issue is a bad module or socket.
 

5.       Update the system BIOS. Don't assume your BIOS is functioning properly if you're having issues related to system memory. Upgrading your system BIOS will refresh the system information, may resolve known compatibility issues or even provide more in-depth troubleshooting information.
 

6.       Test the memory modules. There are a number of software and hardware-based memory testing tools available. Some of my favorite software-based programs are Memtest86 (http://www.memtest86.com) and Microsoft’s Windows Memory Diagnostic tool  (http://oca.microsoft.com/en/windiag.asp). Hardware-based testing solutions such as RAMCHECK, (http://www.memorytest.com/ from Innovations Inc., are more comprehensive, but are also more expensive. Testing the modules will help you rule out if the source of your problems is really a faulty memory module or if there are other issues.
 

7.       Check online support sites for known issues. If you are receiving error codes from the system BIOS, an application or the operating system, and you haven't already checked with an appropriate support center, you should check now. Operating system bugs and poorly written software can lead to memory leaks, page faults, and other errors. Major bugs and issues should be easy to locate on support Web sites or search engines by typing in the specific error codes. In many cases, patches are available from either the software vendor or Microsoft.
 

8.       Run updated antivirus software. This is a long shot, but a few malicious programs masquerade as system memory errors or cause memory issues themselves. Running an updated antivirus sweep may identify these programs and resolve the issue.
 

9.       Look for additional causes: If you've completed the previous troubleshooting steps, you have effectively ruled out faulty memory as the root cause of your system errors. Faulty motherboards, failing power supplies, deteriorating hard drives and environmental issues can cause similar symptoms and should be investigated as alternate sources for system crashes, data loss and instabilities.
 

Preventive steps you can take

We all know that an ounce of prevention is worth about 10 hours of troubleshooting time, so take a minute to adopt a few hard-earned lessons that may save you a few headaches:

1.       Read the manual first. Before installing or upgrading system memory, take a minute and make sure you have the correct type of memory for your system and that there aren't any additional configuration steps required.
 

2.       Buy memory only from reputable sources. Everybody likes a bargain, but buying cheap, no-brand modules from an auction site or at a computer show isn't worth the cost savings. I typically buy memory directly from a manufacturer such as Crucial Technology (www.crucial.com) or Kingston Technology Company Inc. (www.kingston.com)
 

3.       Don't mix and match memory modules. It's common sense to pair memory modules to identical modules, but you should also consider buying your modules from the same manufacturer. Don't pair modules from two different manufacturers where small engineering, design or manufacturing variances can cause compatibility issues.
 

4.       Take care of spare modules. We often take computer hardware for granted, and I have yet to work in a corporate environment that didn't have a box or desk drawer filled with a loose assortment of memory modules from a variety of systems. If you plan to reuse system memory, make sure you place it in a protective antistatic sleeve and label it with the memory type and date. Always test older memory modules before installing them into a new system.
 

5.       Control your system environment. Dust, humidity and extreme heat can limit the life of your system by literally cooking your system components or causing parts to warp and corrode. Power fluctuations and surges can also damage your systems.

 

 

 
 

Back

 
     
 

Email

 
Copyrighted©Computersecuritynews.org 2005,2006, 2007, 2008