Overview of RAM and ROM


Reader Please Note: To the best of my knowledge the information in this document is accurate. If you find any errors, have any comments, additions, or just have questions, please feel free to contact me at billetter@networktechnologist.com.

The purpose of this document is to provide an overview of how random access memory (RAM) and read only memory (ROM) works. Current technologies are described, along with their packaging.

Introduction

Memory is used to store data. It consists of semiconductor components, which work much differently than disk storage. Whenever we talk about memory we need to discuss the concept of volatile and non-volatile memory. Volatile memory is memory that loses it's contents when the power is turned off. System memory in a PC is RAM (random access memory), which is volatile - the contents of RAM are lost when the PC is powered off. ROM (read only memory) is non-volatile and will not lose it's contents when the PC is turned off. Some components of the PC, such as the BIOS (basic input output system) use ROM technology, so that the contents will survive the power off of a PC.

All memory chips are addressable. The computer's system bus has an address bus portion and a data bus portion. The address bus is used by the CPU for writing address information and the data bus is used for the transfer of data. When reading or writing from memory, the CPU will first place the address of the data on the address bus. Then data will be placed on the data bus for reading or writing as required to compete the transaction. For example to read data from a memory chip, the CPU places the address of the desired data on the address bus portion of the system bus. Next, the memory chip reads the address and then gets the data from it's storage location. Finally, the memory chip places the data on the data bus portion of the system bus for use by the CPU.

ROM Technologies

ROM - This is the original read only memory. It must be programmed by the semi-conductor manufacturer. This means that ROM can only be made in large quantities, where each ROM chip's contents is identical to all the others in the production run. This is a significant problem for applications that require only one chip.

PROM - This technology allows the manufacture of "blank" programmable ROMs (PROMs). These blank PROMs can be programmed once by using an external PROM programmer tool. This tool "burns" the data into the PROM. It is a one time programming, and cannot be altered.

EPROM - This technology allows the re-use of PROMs - it is eraseable PROM technology. It adds a clear window to the semiconductor. By shining ultra-violet light through this window, the EPROM can be "erased", and re-programmed. This technology also requires a special EPROM programmer.

EEPROM - This technology is very popular today - electronically eraseable PROMs (EEPROMs). This technology does not require a special programmer - it can be erased and reprogrammed using the voltages inside your computer. This technology also goes by the terminology Flash RAM or Flash upgradeable ROM.

RAM Technologies

There are 2 major types of RAM technologies in use today - static ram (SRAM) and dynamic ram (DRAM). The most popular technology for PC system memory is DRAM because it is relatively cheap and can be manufactured in large sizes (512 MB modules as of this writing). SRAM is more expensive and is only available in relatively small sizes (100's of Kilobytes or a couple of Megabytes maximum size as of this writing).

SRAM is faster than earlier technology DRAM, so it is often found in L2 cache on motherboards. It has the characteristic that power is always applied to it. DRAM does not use constant power, but requires a periodic "refresh" pulse of power. This results in less power usage compared to SRAM. DRAM is used for virtually all system memory in PCs today.

Errors are problems in computers, especially in memory. Today a typical PC could have 512 MBytes of RAM - this is over 4 billion bits of storage. There is a real chance that one of those 4 billion storage areas could develop a random error. To detect these errors, RAM can use parity or an error checking code (ECC). Not all RAM uses these techniques, because the technology is pretty reliable today.

Parity RAM uses 1 extra bit per byte (9 bits to store 1 byte instead of 8 bits) and it will detect a single bit error. It does this by adding up the number of 1's in the byte, if it is even it makes the 9th bit 0. If the total of the 8 bits is odd, it makes the 9th bit 1. Then by comparing the number of 1s in the byte with the parity bit, a single bit error can easily be identified.

ECC is more complex. By adding addition memory, a double parity strategy is used (called horizontal parity and vertical parity). By comparing the data with both of these parities, a single bit error can be identified and corrected. Some memory in use today is ECC. It is not much more expensive than non ECC RAM, and it can improve the reliability of the faster machines.

The key thing to remember when using any of the types of RAM discussed in this article is to make sure that your motherboard supports it. If the motherboard does not support, you can not use it. In fact using it in your system make cause the PC not to function properly. Many motherboards can support a range of memory types in the same packaging - you need to check the documentation. For example, 72 Pin SIMMs can be either FPM or EDO. Many motherboards will support both and actually sense the difference. However, if your motherboard supports both EDO and FPM, usually when you mix them, you cannot use the performance advantages of EDO - it will run at the FPM speed. Older motherboards are usually less tolerant of mixing memory types.

Fast Page Mode (FPM) - Faster access to data in the same row

Extended Data Output (EDO) - EDO memory tries to combine 2 memory operations into a single memory operation. While the memory is finding the data, a new memory address is given to the chip. This eliminates the delay of giving the chip the address during the next operation cycle. This results in about a 30% performance increase over standard FPM RAM.

Synchronous (SDRAM) - The RAM is tied to the motherboard's clock speed. This allows in to be in sych with the motherboard. Even though RAM is very fast, not being in synch with the motherboard causes delays. This memory has better performance that EDO and FPM. Examples of this type of RAM are called: PC-100, PC-133 and PC-150.

Double Data Rate (DDR) SDRAM - This is SDRAM that internally works at twice the clock speed. It actually uses the first 1/2 of a clock cycle for one operation, and then the second 1/2 of the clock cycle for the second operation. Examples of this type of RAM are called PC1600 and PC2100.

Rambus (RDRAM) - This is high speed RAM that uses a special bus for memory access. This special bus is the Rambus. Because only the CPU and RAM use this bus, it can be much higher speed than other buses likeSpecial high speed bus

Video Ram (VRAM) - This memory is what we call dual port memory. VRAM is used to write a screen image to the display. So, while VRAM is writing it's contents to the display, it can simultaneously be getting as input the next screen of video data. This is similar in concept to the 2 drive through windows found at many fast food restaurant. While one customer is paying for the food, a different customer is getting their food.

Window RAM (WRAM) - VRAM that uses EDO technology.

Synchronous Graphics RAM (SGRAM) - VRAM that uses synchronous technology.

Multibank DRAM - MDRAM - VRAM that is optimized to the size of video screens. For example the MDRAM size of 2.5 MB is designed for a screen resolution of 1024 X 768. Using a 4 MB chip would be wasteful. This ram can also intelligently access multiple banks of RAM at the same time.

RAM Speeds

RAM is very fast, it's speed is measured in nanoseconds (ns). 1 billion ns are equal to 1 second, so potentially RAM can do a billion operations per second. Originally, RAM speeds were in the range of 60 - 80 ns for dram and 15 - 20 ns for sram. Now, we are seeing RAM speeds measured in MHZ (millions of cycles per second). MHZ and ns are 2 ways of saying the same thing. PC-100 RAM, which is 100 MHZ SDRAM is actually 10 ns RAM. PC 133 is 8 ns RAM. To convert between ns and MHZ, use the following: 100MHZ = 1/10ns. In other words, you divide the ns into 1 to convert to MHZ.

ROM and RAM Packaging

Dual In-Line Package (DIP) - rectangular chip with pins down 2 side. Not used today for DRAM, but still used for SRAM and some VRAM.

Single In-line Memory Module (SIMM) - replace DIP packaging for RAM. It uses only one side of the board for pins - this means that the pins on the front of the SIMM are the same as the pins on the back of the SIMM. It comes in 2 sizes, 30 pin and 72 pin. The 30 pin SIMM is 8 bit memory, 4 30 PIN SIMMS are required for a 32 bit CPU. The 72 pin SIMM is 32 bit. 2 72 Pin SIMMS are required for the 64 bit data bus of the Pentium CPUs.

Dual In-line Memory Module (DIMM) - these are used today. Both sides of the memory module are used for pins - this means that the pins on the back of the DIMM are difference that the pins on the front side of the DIMM. They have 64 bit capability, allowing a single DIMM to be used on a motherboard. 3 common configurations are the 168 Pin DIMM (64 bits of data, using ECC and Parity), the 144 Pin DIMM (64 bits of data, but no ECC capability) and the 72 Pin Small Outline (SO) DIMM.

 Rambus In-line Memory Module (RIMM) -  184 Pin packaging used for RAMBUS memory. Similar to SIMMS and DIMMS.

 Example of what the A+ test will want you to know:

The A+ exam may ask you about the packaging for RAM. In particular, they want to know for a particular technology and a particular CPU how many memory modules are required. For example:

 A 486 would need either  4 - 30 Pin SIMMs (4X8=32bits), or  1 - 72 Pin SIMM (32 bits), since the 486 is a 32 bit CPU.

A Pentium would need either  2 - 72 Pin SIMMs (2X32=64 bits) or  1 - 168 Pin DIMM (64 bits) since the Pentium is a 32 bit CPU that uses a 64 bit data bus.

This explains why on some motherboards memory has to be installed in pairs, while on other motherboards, a single memory module would work.

Back To Main Page For List Of Other Documents

Copyright Bill Etter 2002 all rights reserved
Last Revised April 15, 2002
For more information, contact billetter@networktechnologist.com
http://www.networktechnologist.com/pcsupport/ramrom.htm