As a computer technician, you will encounter various types of memory. This lesson defines the different types of memory, shows you how to locate memory in a computer, and discusses how to expand or add new memory.
After this lesson, you will be able to:
- Identify the various types of memory.
- Define the types of memory and describe their advantages and disadvantages.
- Specify the correct memory upgrades for a given computer.
Estimated lesson time: 40 minutes
A host of terms and acronyms relate to the memory technology used in personal computers. A technician must understand the key concepts involved and be able to identify the distinctions between the major memory components, and to distinguish between memory and storage.
All computer memory is used to hold binary strings of data destined to be manipulated by the CPU. Think of memory as a vast bank of switches with two positions: on or off. Off is given the value of "0"; on is given the value of "1." This allows the switches to hold binary data based on whether they are open or closed. By stringing a series of switches together, larger numbers and code values can be represented.
There are two major classes of computer memory: nonvolatile and volatile. Nonvolatile memory is retained even if the power is shut off. The setup data held in CMOS, discussed in the preceding lessons, is a good example of nonvolatile memory. If the data is lost when the computer loses power, the memory is said to be volatile.
Active memory is a state in which a block of code or data is directly accessible to the CPU for reference or manipulation. When data is located outside the system's active memory, it is said to be "in storage." Storage devices include floppy disk and hard disk drives, optical media, and tape units.
Active memory is faster than storage because the information is already on the system, there are fewer physical (and no mechanical) operations involved in obtaining the data, and the CPU has direct control over the memory.
ROM (read-only memory) is nonvolatile memory, generally installed by the vendor of the computer during the process of manufacturing the motherboard or secondary components that need to retain code when the machine is turned off. With the use of ROM, information that is required to start and run the computer cannot be lost or changed.
ROM is used extensively to program operation of computers, as well as in devices like cameras, and controls for the fuel injectors in modern cars. However, ROM plays a limited role in the PC. Here, it holds the instructions for performing the POST routine and the BIOS information used to describe the system configuration. For more detailed information, refer to Chapter 6, "Primary PC Components."
In most cases, a technician will need to be concerned with ROM only if it has failed and requires replacement, needs to be upgraded, or if it conflicts with other memory installed in the system. The actual code in ROM is not usually in the direct control of a repair person or technician.
RAM (random access memory) is what is most often referred to when PC memory is discussed. RAM is the form of volatile memory used to hold temporary instructions and data for manipulation while the system is running. The term "random" is applied because the CPU can access or place data to and from any addressable RAM on the system. If power to the system is lost, all RAM is lost as well.
Usually, when referring to RAM, we are speaking of some variation of DRAM (dynamic random access memory) or the newer SDRAM (synchronous DRAM). These are the most common forms of RAM used in the modern PC.
DRAM works by using a microscopic capacitor and a microscopic transistor to store each data bit. A charged capacitor represents a value of "1," and a discharged capacitor represents a value of "0." A capacitor works like a battery—it holds a charge and then releases it. Unlike a battery, which holds a charge for months, the tiny capacitors in DRAM hold their charges for only fractions of a second. Therefore, DRAM needs an entire set of circuitry just to keep the capacitors charged. The process of recharging these capacitors is called "refreshing." Without refreshing, the data would be lost. This is another reason why DRAM is called volatile memory.
All PC CPUs handle data in 8-bit blocks. Each block, known as a byte, denotes how many bits the CPU can move in and out of memory at one time. The number is an indication of how rapidly data can be manipulated and arranged in system memory. But don't confuse this byte with the amount of system memory, which is usually expressed in megabytes (MB). System memory is the total amount of active memory that is available to the CPU as a temporary work area.
Each transaction between the CPU and memory is called a bus cycle. The amount of memory that a CPU can address in a single bus cycle has a major effect on overall system performance and determines the design of memory that the system can use. The width of the system's memory bus must match the number of data bits per cycle of the CPU.
All computers have some form of memory controller, which handles the movement of data to and from the CPU and the system memory banks. The memory controller is also responsible for the integrity of the data as it is swapped in and out. There are two primary methods of ensuring that the data received is the same as the data sent: parity and error-correction coding (ECC).
Parity is a method of ensuring data integrity that adds an extra bit (the parity bit) along with each 8-bit bus cycle. There are two kinds of parity: even and odd. Both use a three-step process to validate a bus transaction; however, they do it in opposite ways.
A more robust technology, ECC can detect errors beyond the limits of the simpler parity method. It adds extra information about the bits, which is then evaluated to determine if there are problems with individual bits in the data string.
Access speed, denoted in nanoseconds (ns), is the amount of time it takes for the RAM to provide requested data to the memory controller. Here, smaller is better. Be sure to buy RAM that is at least as fast as that listed as standard for the computer in question.
A typical total response time for a 70-ns DRAM chip is between 90 and 120 ns. This includes the time required to access the address bus and data bus. Most 486- and Pentium-based machines use either 70-ns or 60-ns DRAM chips, although 50-ns chips are now available. The access speed of a chip is usually printed on the chip (often as part of the identification number).
Here are a few important things to remember about access speed when adding memory:
Over the years, the way memory has been packaged and placed on the motherboard has changed several times. Early versions of RAM were installed as single chips, usually 1-bit wide dual inline package (DIP), as shown in Figure 7.1. In some cases, this was soldered right onto the motherboard, but most often it was seated in a socket, offering a simpler method of removal and replacement. Some older machines have special memory expansion cards that contain several rows of sockets. These cards are placed in a slot on the motherboard.
To upgrade or add memory, new chips had to be individually installed on the motherboard (eight or nine chips per row—nine chips if using parity). This could be challenging, because each chip has 16 wires that need to be perfectly aligned before insertion into the base. The notch in one end denotes the side that has pin 1.
Figure 7.1 A DIP DRAM Chip
As the amount of memory and the need for speed increased, manufacturers started to market modules containing several chips that allowed for easier installation and larger capacity. These modules come in a variety of physical configurations. Technicians must be able to identify both the type and amount of memory a computer requires for optimum performance.
The latter is very easy if the PC is operational: simply boot the system and note the memory values given during the POST. In some cases, this is also a useful way to determine if a memory block is improperly installed. If that is the case, the computer might fail to boot or the POST might report a lower figure than the actual amount of RAM present.
One of the first module forms of DRAM, the SIPP (single inline pin package) is a printed circuit board with individual DRAM chips mounted on it, shown in Figure 7.2. Physically, a SIPP module looks like a rectangular card with a single row of pins along one edge. The SIPP had a very short time in the sun, due to the fragile nature of these pins.
Figure 7.2 SIPP
SIPPs have a row of pins along one side. These pins are easily broken, and care should be taken to avoid damaging them during installation.
SIMMs (single inline memory modules) quickly replaced SIPPs, because they are easier to install. They are similar to SIPPs with one exception—they require no pins; 30-pin SIMMs have 30 contacts in a single row along the lower edge (see Figure 7.3). A 30-pin SIMM can have as few as two, or as many as nine, individual DRAM chips. While SIMM modules can have pin counts as high as 200, in PCs, 30- and 72-pin versions are the most common.
Figure 7.3 30-pin SIMM
Avoid touching the contacts on SIMMs, and use proper handling to reduce the risk of damage from electrostatic discharge (ESD).
The capability of the computer's CPU, its memory chip configuration, and its operating system all play roles in how the computer's memory is allocated. Technicians should understand the terms and processes involved, both for their own benefit and in order to explain the details to a customer if the question arises.
As mentioned earlier, the CPU processes data in byte-wide (8-bit) pieces. The power of a processor is often expressed by how many such pieces it can handle at a time. For example, the Intel Pentium is a 64-bit CPU, meaning that it can handle 64 bits at once. That amounts to 8 bytes (8 x 8). These terms always refer to byte-wide memory (8 bits).
It's important to remember that each 30-pin SIMM always supplies 8 data bits (one byte) per CPU clock cycle, no matter how many megabytes it holds. When the bus cycle demand is greater than the number of bits a module provides, a bank of modules equal to the bit width must be used to feed the data demands of the CPU and fill the entire data bus. An 8-bit data bus (8086 or 8088) needs 8-bit-wide memory to fill one bank. A 16-bit data bus requires 16-bit-wide memory to fill one bank, and so on. If you are installing 30-pin SIMMs (each is 8 bits wide) on a 16-bit machine, you would need two rows of chips to completely fill the data bus.
A 286 processor needs two rows of chips to make one bank. A 386DX and a 486 have 32-bit external data buses—four rows to make a bank. The Pentium and Pentium Pro each have 64-bit external data buses—eight rows of 8-bit-wide memory to make one bank. Each of the rows that make a bank must be filled with identical chips (size and speed). See Figure 7.4.
Figure 7.4 Banking
Most motherboards provide several rows of slots for adding memory, often referred to as banks. Be careful with the word "bank." It is used to describe the necessary rows of chips, as well as the slots into which they are inserted.
SIMMs usually require matched pairs to form a bank of memory, whereas DIMMS require only one card. To calculate the number of SIMMs needed to make one bank, use the following formula: Divide the number of data bits per CPU cycle by the bit width of the module. (For 30-pin SIMMs, that is always 8 bits.) A 32-bit external data bus with 30-pin SIMMs requires 32 (the width of the data bus) divided by 8 (the number of bits per SIMM module) or 4 (30-pin SIMMs per bank).
There are some rules to follow when banking:
When speaking of DRAM SIPPs and SIMMs, we use two values to determine how much memory a unit can hold:
By combining the depth and width, the "size" of the DRAM chip can be determined.
Here are a few points to remember when specifying DRAM:
The following table lists common DRAM module sizes.
|Chip (depth x width)||Number of Chips/Module||Memory per Module|
|256 KB x 1||8||256 KB|
|256 KB x 4||2||256 KB|
|256 KB x 16||1||512 KB|
|512 KB x 8||1||512 KB|
|1 MB x 1||8||1 MB|
|1 MB x 4||2||1 MB|
|1 MB x 16||1||2 MB|
|2 MB x 8||1||2 MB|
|4 MB x 1||8||4 MB|
|4 MB x 4||2||4 MB|
With the advent of 32- and 64-bit CPUs, the bank began to take up too much space on the motherboard and added to the cost of memory. (The board that houses the chips often costs more than the DRAM chips.) Enter the 72-pin SIMMs, with 72 pins on each card. One of these is four times wider than a 30-pin SIMM, which is 8-bits wide (see Figures 7.5 and 7.6). Therefore, a motherboard requiring four rows of 30-pin SIMMs to fill one bank needs only one 72-pin SIMM. Virtually all Pentium and Pentium Pro systems use 72-pin SIMMs.
Because 72-pin SIMMs are 32 bits wide, the term "x 32" is used to describe them. A 1 MB x 32 SIMM contains 4 MB of RAM because it is 4 bytes wide. (One MB of RAM is 1,048,576 x 32, which equals 4 MB.) Remember, memory is measured in bytes, and chips are measured in bits.
Figure 7.5 A 72-pin SIMM
There are many varieties of SIMMs on the market. The following table lists some common 72-pin SIMMs.
|256 KB x 32||1 MB, no parity|
|256 KB x 36||1 MB, parity|
|1 MB x 32||4 MB, no parity|
|1 MB x 36||4 MB, parity|
|2 MB x 32||8 MB, no parity|
|2 MB x 36||8 MB, parity|
|4 MB x 32||16 MB, no parity|
|4 MB x 36||16 MB, parity|
|8 MB x 32||32 MB, no parity|
|8 MB x 36||32 MB, parity|
|16 MB x 32||64 MB, no parity|
|16 MB x 36||64 MB, parity|
All early PCs used 5-volt circuits to power components, including memory. Today, the trend is to use 3.3-volt power unless 5 volts are required for a specific part of the system (such as a hard disk drive). Be sure to check the voltage of the memory before installing a module.
When installing SIMMs:
SIMMs are extremely sensitive to static. Be sure to handle them carefully.
Figure 7.6 Installing SIMMs
After the chip is physically installed:
When a computer is booting, the RAM count is based on units of 1024 bytes. One MB of RAM should show as 1024, 2 MB as 2048, 4 MB as 4096, and so on. Most RAM counts will stop before they get to the value expected (less than 1 MB). This is acceptable—some memory is "skipped" during the count, but it's all there.
If you get an error similar to "CMOS Memory Mismatch Press Fl to continue," access the CMOS with the CMOS setup program, then save and exit (changes will be automatically recorded). The CMOS will be reset.
If the system fails to boot, or reports less than the amount of memory actually installed, recheck the modules to make sure they are seated properly according to the motherboard manual and that the right type and amount are present.
These newer modules look much like SIMMs, but come in a package with 168 pins and have a different wiring structure, so that one card can form a complete bank. These are the memory packages used on virtually all new motherboards.
To cache is to set something aside, or to store for anticipated use. Mass storage is much slower than RAM, and RAM is much slower than the CPU. Caching, in PC terms, is the holding of a recently used or frequently used code or data in a special memory location for rapid retrieval. Speed is everything when it comes to computers. The high-speed memory chip generally used for caching is called SRAM.
SRAM (static RAM) does not use capacitors to store ones and zeroes. Instead, SRAM uses a special circuit called a flip-flop.
The advantages of SRAM are that it is fast and it does not have to be refreshed, because it uses the flip-flop circuit to store each bit. A flip-flop circuit will toggle on or off and retain its position, whereas a standard memory circuit requires constant refreshing to maintain an on state.
The main disadvantage of SRAM is that it is more expensive than DRAM.
Starting with the 486 chips, a cache has been included on every CPU. This original on-board cache is known as Level 1 (L1) or internal cache. All commands for the processor go through the cache. The cache stores a backlog of commands so that, if a wait state is encountered, the CPU can continue to process using commands from the cache. Caching will store any code that has been read and keep it available for the CPU to use. This eliminates the need to wait for fetching of the data from DRAM.
Additional cache can be added to most computers, depending on the motherboard. This cache is mounted directly on the motherboard, outside the CPU. The external cache is also called Level 2 (L2) and is the same as L1, but larger. L2 can also (on some motherboards) be added or expanded. When installing any L2 cache, be sure to check the CMOS setup and enable the cache.
As mentioned, the primary use of a cache is to increase the speed of data from RAM to the CPU. Some caches immediately send all data directly to RAM, even if it means hitting a wait state. This is called write-through cache, shown in Figure 7.7.
Figure 7.7 Write-through cache
Some caches store the data for a time and send it to RAM later. This is called write-back cache, shown in Figure 7.8.
Figure 7.8 Write-back cache
Write-back caches are harder to implement but are much more powerful than write-through caches, because the CPU does not have to stop for the wait state of the RAM. However, write-through caches are less expensive.
The following points summarize the main elements of this lesson: