Throughout my travels I have learned quite a few things about RAM, so I'll attempt to explain the evolution of RAM and how to use it. If you are just interested in some tips for using memory, then skip to the tips for installing or upgrading RAM section.
First of all, what is RAM? This acronym stands for Random Access Memory and is basically a temporary storage area for information to reside while moving from one device to another. Random Access means that every element can be accessed individually, (as compared to sequentially accessed media, like tape.) It also is generally volatile, meaning that it is erased every time the power is cycled off.
ROM, being Read Only Memory, is unable to be written to, and the information contained within is permanent. (ROM is also random access.) The main use of RAM is for "Caching", which is holding the information until it is needed. RAM is the perfect media for such applications, mainly because it is extremely fast and cheap. Nearly all new devices are coming with Cache RAM on board, commonly known as "Buffers". Most hard drives come with 512kb buffers, CD-ROMS with 256kb.
So what is the evolution of RAM? Starting out with the 8086 family of processors, and going up into the early Pentium II Motherboards, RAM has been placed on chips called SIMMS. SIMM stands for Single In line Memory Module. There are two types of SIMMs, parity and non-parity. Parity means that the number of chips on the SIMM is odd. The odd number of chips allows for an extra layer of error control called parity checking.
Data are organized into bytes, which is a series of 8 bits (a bit being a 0 or a 1). One 8-bit piece of code is called a byte. (Kilo=1000, hence kilobyte=1000 bytes, Mega=1,000,000, hence Megabyte. The computer industry also often defines Kilo into its nearest power-of-two: Kilo=1024, Mega=1,049,576.) When parity is being used then each byte is stored as 8 data bits and one parity bit. If you add up all the 0s and 1s in the data bits, you get a number. Whether the number is even or odd is what derives the parity bit. Even, makes the parity bit=0, odd making the parity bit=1. The chip calculates the parity each time the byte is read and compares this with the parity bit that was stored when the byte was written. So, with that ability, if there is a 1-bit error in a piece of data, the chip has a 50% chance of detecting the error.
The SIMMs are on a chip with either a 30-pin socket or a 72-pin socket. The 30 pin varieties were usually relegated to the 8086, 286, 386, and 486 family. The 72 pin sockets went into the 486, Pentium, and some Pentium II boards. Each 30-pin chip represents 8 bits. Therefore, the 386's, being 16 bit boards, needed the SIMMs placed in pairs of 2. 486's, being 32 bit boards, need SIMMs placed in groups of 4. The large number of 30 pin SIMMs needed to fill one bank on a motherboard led to the development of the 72 pin SIMMs. These chips were 32 bit, and could be put 1 at a time into the 486s, and in pairs of 2 into the 64 bit Pentium motherboards.
There are also several other subclasses of SIMMs that were manufactured. The main classes are the 60 and 70 Ns distinction. First of all, let's explain "Ns". Ns stands for nanosecond. A nanosecond is 1 billionth of a second. This spec is the access time of the module. Basically, it states how long it takes to get a piece of data into a SIMM. Another subclass is the development of EDO. EDO was only utilized on 72 pin SIMMs. EDO is an acronym for Extended Dynamic Output. Pretty much, EDO SIMMs are faster. They utilize different architecture, and can move data faster. I have also heard of "Fast Page" SIMMs, but do not know anything specific in their operation.
As CPU's got faster and faster, it was realized that 72 pin access to a SIMM module just did not give enough bandwidth for effective data transfer. Hence, the DIMM was developed. DIMM, standing for Double In line Memory Module, uses a 168-pin connector, and has speeds ranging from 15 to 6 Ns. The first DIMMs, called generic "DIMMS", come in two main categories, the 3.3v and the 5v. They are identical besides the voltage used. Pretty much, this means that you have to get a DIMM to match the voltage setting that you are using in your CPU. Check your motherboard manuals for more detailed information. The generic DIMMS had speeds of 10-15 Ns. They could operate at a system bus speed of up to 66mhz(Discussed in my "No Brainer's Guide to Overclocking"). DIMMs only had to be used 1 at a time, being 64 bit chips. They can be found on most high end Pentium motherboards, and all Pentium II motherboards.
The second and current generation of DIMMS are the "SDRAM" family. SDRAM is a shortcut to Synchronous Dynamic Random Access Memory. These chips have a built on clock on them. What they do is coordinate their input and output with the clock schedule on your CPU. This means that by matching the speed of the CPU, there is a lot less extra caching needed, which saves on available L1 and L2 cache on the CPU. SDRAM provides a marked increase in performance over the generic DIMMS. The first SDRAM worked fine, but as CPU bus speeds got above 66mhz, the RAM just couldn't keep up. Therefore, a new type was developed, "PC100" type. This type of SDRAM can operate at bus speeds of 100MHZ(and sometimes even 112!).
There is only one more subtype of SDRAM, and that is the CAS latency. There are two speeds, 2 and 3. Pretty much the only difference is that CAS latency 2 chips are slightly faster, and higher quality. Their average access time is 6ns, and they can reach bus speeds of 133MHZ(and quite possibly beyond). These chips are mainly of interest to overclockers and power users. CAS 3 chips are the run of the mill PC100 SDRAM chips. They have Access times from 7.5 to 10 Ns. These are used in most new computers today. I have a 128MB CAS 3 PC100 SDRAM DIMM in my own system. See how quickly the titles add up, but by looking above, you can see that it's not too hard to find out exactly what it does.
Tips for installing or upgrading RAM:
Pentium II's. . .
Back to the main scrounge.org page.