Memory is a vital part of a computer system and is used as a temporarily storage location for data that is required to execute programs. The more complex the program, the more memory it uses. Programs such as 3d modeling programs or imaging programs such as Photoshop use large amounts of memory. As long as a program is running, it is consuming some memory, and large amounts of memory are useful when running many programs at a time.
Memory modules have two important factors that should be known: speed and size. Speed is measured in Megahertz (MHz) and represents how fast data can be sent to and received from the memory. When installing different modules of memory, is it important to ensure that every module is the same speed to ensure the best performance of every chip. The system board will determine what speed of memory is compatible, and it is important to get the right speed memory for a computer system. If the system board does not support a specific speed of memory, it either may not work right, or it may run at a lower speed, resulting in decreased performance.
The size of memory is fairly self-explanatory; it is the amount of data that a computer can store in memory. The more programs that will be running at a time, and the more complex these programs, the more memory they will consume. Imaging and modeling applications and games can consume large amounts of memory. The more programs running at once, the more memory is required for the computer to run properly. Memory is measured in either megabytes (MB) or gigabytes (GB). One gigabyte is equal to exactly 1024 megabytes, though conversions often use 1000 because of the ease of use.
An operating system such as Windows or Linux will offer minimum and recommended amounts of memory that a computer running the operating system should use. Depending on the types of applications that will be running on a computer, larger amounts of memory may be required, or else system performance will drop significantly, and some programs may crash.
When it comes to a computer system: you can never have too much memory. It is normally just an issue of balancing cost with what will be used. Memory is also an easy component to upgrade at a later date, and it is recommended that you purchase a single chip rather than two chips of half the size. It is normally best to use memory modules of all the same size to ensure best performance.
There are three different slot types for memory, two of which are seen on modern systems: Single Inline Memory Module (SIMM), Dual Inline Memory Module (DIMM), and Rambus Inline Memory Module (RIMM).
The SIMM slot for memory is the oldest type and has been obsolete for over a decade. SIMM modules are limited in how large they can be and how fast they can be. These modules are very slow and very expensive, and the cost per megabyte is much greatly than DIMM or RIMM slots. Only older computers will use SIMMs. The type of memory that can be used by a system is determined by the chipset in most computers, although the CPU determines it in the case of newer AMD processors.
The most common and most popular slot for memory, the DIMM is the second oldest type of slot behind SIMM. Most memory on the market today falls into this category, although there are several different varieties of DIMM modules today. There are currently three types of DIMM slots being used today: SDRAM, DDR-SDRAM, and DDR2-SDRAM.
SDRAM
Stands for synchronous dynamic RAM. This is the old standard memory in DIMM format, and has been since replaced by DDR memory. This memory is considerable faster than old SIMM slots, and some computers today still use this memory, although most companies have switched to DDR and beyond. SDRAM allows data to be either written to, or read from a memory module, but both actions cannot occur at the same time.
DDR-SDRAM
Stands for double data rate synchronous dynamic RAM. DDR memory is the current standard for memory, and is nearly identical to traditional SDRAM, but allows reading and writing operations to occur simultaneously, thus increasing the speed of the memory. DDR modules also come in larger sizes than their SD counterparts.
DDR2-SDRAM
Another advancement to DDR memory, it is capable of sustaining much faster data transfer rates, and consumes less power. However, DDR2 memory is also more expensive then DDR in sizes under 1GB (although prices are dropping), but 1 GB and above are becoming cheaper and more readily available than with DDR. Currently, Intel's newest systems all use DDR2 memory, but their chief competitor AMD is switching from DDR to DDR2 later this year.
Based on the DIMM slot, the Small Outline DIMM (or SO-DIMM) is used for notebook memory, or memory in smaller devices that do not have space to house their larger cousins. SO-DIMM modules come in the same types as DIMM modules, such as SD, DDR, and DDR2. Because these modules are smaller, they tend to be slower and smaller than their counterparts, in addition to costing slightly more. But due to the physical dimensions, these slots are indispensable.
Stands for Rambus inline memory module, this was a type of memory developed by a company called Rambus. The transfer rate of RIMM modules far exceeds that of even DDR2, but the cost is significantly higher. Most Intel Pentium 4 systems used to use RDRAM (Rambus Direct RAM, the technical name for the memory itself), but due to the high cost of this memory, have switched over to DDR2 modules.
Oftentimes, the descriptions of memory modules use either the term "registered" or "unregistered" when describing the chip. These terms are often sometimes replaced with either "buffered" or "unbuffered," respectively. Registered RAM chips include additional components that help remove some of the electrical load from a computer's memory controller (the northbridge). Registered memory modules offer more stable memory as the amount of memory increases. Unregistered RAM becomes less and less stable as greater amounts of memory are added. However, registered RAM chips are also slower than unregistered RAM, and cost more. Registered memory is useful in a situation where a computer needs to have more memory and still remain stable, as in a server, workstation, or even a high-end gaming computer. The price difference should always remain a factor when considering what memory is best suited. It is also important to note that many system boards are not capable of using registered memory, and will fail to do anything if a registered memory module is inserted into any slot.
Error Checking and Correction (ECC) is a term used for memory that is able to correct data anomalies that may occur during operations. There are a great number of things that can cause bits of memory to change value unexpectedly, and ECC memory is able to detect unwanted changes and restore the value of these bits to their correct value. This memory is considerably more expensive than non-ECC memory (memory without error checking), and is most useful in business computer systems, such as servers, that must be able to run stably for extended periods of time. For most home or small-business computer solutions, ECC memory is not normally necessary, and few system boards are able to support it. ECC memory is typically registered, but this does not always have to be the case.
Virtual memory is not memory in the traditional sense, because it is not contained on chips of RAM, but instead uses a computer's hard drive to store data (traditional memory is often called "physical memory"). Virtual memory is handled by the operating system in order to give a computer more memory to work with, as physical memory can often become filled up. Since virtual memory uses a hard drive as memory, it is much slower at accessing data, because physical memory is much faster. This process can be very useful for programs that consume enormous amounts of memory, but performance will drop significantly. The use of virtual memory is hardware independent, meaning that no special piece of hardware needs to be included, nor does a system board need to be able to support it. The process is entirely software-based, and only requires that a hard drive running a suitable operating system is attached to the system board in some way. Excessive reliance on large amounts of virtual memory should be avoided.