Dojo (HowTo)







  Easter Eggs




  Martial Arts

An overview of the different types of RAM.

By:David K. Every
©Copyright 1999

RAM means Random-Access-Memory (1). RAM is cheap and fast compared to some other forms of memory. RAM is temporary storage. Data loaded into RAM, from the hard-drive or ROM, will be lost when the computer is powered down. Remember to save what is in RAM to hard-drive before you power off or you will lose whatever you did. You can think of your Hard-Drive as your bookshelf (where you store things), but RAM would be your desktop. RAM is where you work on things.The larger the desktop, the more different things you can see and be working on at once, without having to put something away or covering it up with something else.

(1) This is ironic way to name RAM since ROM is also random access memory (but it also read-only), but never try to figure out computer naming conventions -- it will only frustrate you.


RAM used to be sold as separate chips you put into little sockets individually. But this was a pain in the butt. So now RAM chips are usually sold soldered on little circuit boards (sticks) called SIMM's or DIMM's. There are also custom cards for memory for some devices, but most companies are standardizing on the "standards".

SIMM means Single-Inline-Memory-Module, DIMM means Dual-Inline-Memory-Module -- the only difference being that DIMM's have more pins (use both sides) and support more total memory. Physically they are not the same form factor, so you can not accidentally install the wrong package in your computer and cause harm. Then to mess up the standards, they made many different types of SIMM's and DIMM's -- so that you had to call tech-support to figure out which TYPE of SIMM/DIMM and what type of memory you need. Some SIMM's or DIMM's are keyed so that you can't put in the wrong type, most are not.

There is also a new package called SO-DIMM. SO means small outline, which means that is is physically much smaller. This is important for portable computers, and many of those will be going to SO-DIMM's in the future (it is not yet very common).

Some memory still comes in proprietary packages -- usually soldered on to custom memory cards. This is more common for portables. Also some memory is available in standardized memory cards, like PCMCIA, PC-CARD or CARD-BUS cards (which are basically the same thing).

Most of the time you do not need to know about the different types of SIMM's or DIMM's. You can call up a supplier and ask for memory for your computer, and they can do a look-up on your model and tell you what you need. So these explanations are strictly for understanding the basics and for your information.


What differentiates the types of Packages (SIMM's and DIMM's) is sometimes the amount of pins (or connections) on the edge. Sometimes it is what are the functions of that package and what configuration of memory is on the package. Some of the different features of RAM include -

PARITY is a way of using a little extra memory (one extra bit for every 8) to double check the value, to make sure you have a good value in the RAM. Its like sending the page count on a FAX so that the recipient can make sure all the pages got there. It sounds good in theory, but computers RAM (in practical applications) only fails once every 10-50 years or so. Most computers with parity RAM can't do anything (when parity fails) except crash immediately -- which prevents you from writing bad-data to the hard drive but little else. Most of the time you get a parity error it will be in an area of memory that would not have effected anything . So for 15% more cost, you get very little return except a machine that may crash 1 more time in every 50 years.

ECC is another type of "Error Correcting" memory but uses a better algorithm (catches more errors). Parity can only detect a single bit error (in each Byte), if two bits in the same byte get an error, then parity thinks everything is OK. ECC can catch both one bit and two bit errors. Again, it costs more than regular memory -- and doesn't do that much for most users. A single bit error is likely to happen infrequently -- but the likelihood of two bits failing in the same area at the same time is likely to happen very very infrequently. RAM fails so rarely that this is just anachronistic paranoia held-out from the old days (10-20+ years ago) when RAM was not as reliable as it is today.

Voltage. 5v memory is the most common, but speed, size and voltage are related. As we go faster and get smaller, we lower the voltage as well. So 3.3v DIMM's are starting to become more common, and it is possible that 2.5v will someday become the norm. So it was not a sick joke, there are reasons for differing voltages -- but it does confuse users.

SPEED. Memory runs at different speeds -- measured in Nanoseconds (billionths of a second). Your memory has to be at least as fast as the computer expects, or you may start getting memory errors. So a computers that says "70ns RAM" WILL require AT LEAST 70ns RAM. 60ns is faster, and so could be used, but usually the computer will still only access that RAM at its rated speed (70ns), so you aren't gaining anything. Smaller is faster in this case because it is a measurement of time to access -- 60 billionths, is smaller and faster (less time) than 70 billionths of a second.

DUAL-PORTED (VRAM). RAM can normally only be accessed from one thing at a time (a single BUS). But some designs are much easier if you have Dual-Ported RAM, RAM that supports two separate devices talking to it at the same time (two/dual ports). For Video RAM this means that the computer (CPU) can read and write to the RAM at the same time that the video circuitry can be accessing it (to update your screen image). It can also be used for other types of I/O. It would be like being able to hold on two conversations simultaneously. We need dual ported people (and no sick jokes)!

NV-RAM. This is Non-Volitile RAM -- it will not forget things, even when power is removed. NV-RAM is made with a variety of ways. Sometimes it is really EEPROM, but usually it is low-power dynamic RAM with an internal battery, or sometimes external circuitry and a battery. Sometimes it is just SRAM. So NV-RAM just means nonvolatile, and could be just about any type of memory.

PRAM - Parameter RAM. Macs (and some other computers) have a small amount of memory for remembering things, even when the power is off. This is often called "Parameter RAM" or PRAM. The name is defining the RAMs function, not the type. Usually the Macs PRAM is battery backed up SRAM (a type of NVRAM) and is contained on a specialty chip that does other things, like keep track of the date and time, and supply that information to the computer.


Not only are there different types of packages that the RAM comes on and different features, but there are different TYPES of RAM as well.

DYNAMIC RAM (DRAM)- this is the type of RAM used in most microcomputers main memory. It is inexpensive -- relative to the other forms of RAM. The name is redundant since Dynamic means "changing", and all RAM changes -- that is what makes it RAM instead of ROM. In this case Dynamic is very specific, it means that the DRAM will not remember stuff for very long (millionths of a second). So the DRAM has to have its own circuitry to refresh itself -- remind itself of what it already knows. This circuitry has to look at each location inside of itself, and reminds itself to remember that value -- which will decay unless it comes back and reminds itself again. This is the same as you walking down the street repeating a phone number or address to yourself so that you won't forget it. DRAM has to do this because is uses capacitors to remember things (which are like short term batteries), instead of a more complex set of circuits (gates). Capacitors remain charged for only a while, so you have to keep recharging them (by reminding them). Since capacitors are easy to make, and the refresh logic can be shared among a whole chip, the cost of DRAM is cheap. Because capacitors are somewhat slow, and there is refresh logic running part of the time, the access to DRAM is slower than other forms of memory. Access takes about 60ns (60 billionths of a second).

STATIC RAM (SRAM)- this is used when you need fast memory. Instead of the refresh-decay design of Dynamic RAM, SRAM uses a more complex design of switches (called a flip-flop). This means that once you set a value in a SRAM, you do not have to come back and remind it. But the more switches (gates) on a chip, the more it costs, and the more space it takes. The switches are faster than a capacitor, and so SRAM is quick. Also because it does not need to keep charging itself to remember things, SRAM's require much less power. SRAM's are often used in portables (or they use Pseudo Static RAM which is low-power DRAM pretending to be SRAM). SRAM is also used for L2 Caches, for some Video-Memory, and for other high-speed applications. Access speeds are often as low as 8-14ns (billionths of a second) -- or 5 to 10 times faster than DRAM.

Types of Access

How you design the memory to access information can also change the name of the RAM and the performance characteristics. Programmers access memory as a giant linear array (one dimensional) of addresses -- similar to your street address or phone number being different from your neighbors. However, inside the chip, memory is laid out in a grid or two dimensional array . This is more like the zip-code to the post office, or area code and prefix to the phone company - it lets them presort by area, with each lesser significant number narrowing the area more and more. Internally to RAM these addresses are the RAS (Row Access Strobe) and CAS (Column Access Strobe) control lines which are just part of the larger address.

Interleave - Memory can be accessed based on the width of the BUS (which varies depending on the processor and machine). But memory is slower than the CPU. So if you take 2 (or 4) banks of memory, and interleave them, you can speed up access. Interleaving is basically alternating each address among the two chips (toggling between 2 different chips). Think of a set of data "AAA" and a set of data "BBB", when we interleave them we get "ABABAB". Since memory is usually accessed sequentially, and the access speed is fixed, by alternating addresses we can almost double the speed. While I am loading A, bank B is ready -- when I load from B, A is getting its next address and by the time I load from B and get back to A, A is ready to send me its data.

FPM RAM - Fast Page Mode RAM. Using the RAS and CAS explained above... instead of sending the whole address to get every location, we can cheat. We send the whole address once, then as long as we are in the same area (column) we only have to move in the row address (the last part). Since the chip won't have to make BIG area changes, it can be a little faster, for much of the time. That is what Fast page means -- it is Fast-inside that Page (column). But when you go out of the area (column) it still has to take a performance hit. So it is faster on sequential access, but can't do much for completely random accesses of memory. (Fortunately most access is sequential).

HPM/EDO RAM - Hyper Page Mode or Extended Data Out RAM. This uses a neat trick -- the memory will hold its old data until you are DONE sending a new address. This allows the CPU to read the data in, while the RAM is getting the next address. Normally RAM will drop the valid data to a null state as soon as you START to send a new address. On EDO, this means that there is less time between finishing reading one address, and reading another one -- because EDO has been starting to get the next address while you were finishing reading the last one. Imagine looking up two words in the dictionary (at random) -- on FPM when you are done reading the definition of one word, you go on and start looking up the next word. With EDO while you are reading the definition of one word, part of you is looking up the next word, so as soon as you are done with the definition you can just pop to the next words page (or you are part way through the look-up and can continue from much closer to your goal).

BEDO RAM - Burst EDO RAM. I don't know how this differs from EDO and SDRAM. I believe it is some hybrid between the two. Burst generally means something similar to synchronous -- the first access is normal, but the rest comes back at you very quickly (bursts of speed).

SDRAM - Synchronous Dynamic RAM. This is a newer type of fast DRAM. Performance wise it is getting very good and competes with SRAM. Access times for interleaved SDRAM can be 8-10ns, but not for ANY one address (that is the average). SDRAM uses a trick of addressing. When you ask for an address, SDRAM will get you that address, and then for each tick of the clock it will give you the next sequential address (for some specified size). So your first access is as slow as normal, but all subsequent sequential addresses keep getting spewed out very quickly. Internally it actually has a fair amount of support logic to do this (an internal controller) and they are programmable to a point (you can change the size of the data coming back) and are going to be the future of main memory because of the speed gains.


Remember, RAM comes in a package (DIMM/SIMM) and has different features and attributes (Parity or Non-Parity, its speed, its voltage, etc.). It also is of a different manufacture (Static or Dynamic), and has a design for how it will be accessed (whether Interleaved, Fast-Page, EDO, SDRAM). All of those together definite the exact type of memory you are using.

My 7500 uses 70ns, interleaved FPM DRAM DIMMs at 5v. The Tanzania based Macs (and clones) use 60ns, non-interleaved, EDO DRAM DIMMs at 3.3v. The G3 Macs use 10ns SDRAM DIMM's (at 3.3v). If you understand this paragraph you are now a memory Guru! If you don't (and you read the article), then send me eMail because my article needs more work.


Created: 04/24/97
Updated: 11/09/02

Top of page

Top of Section