||When you are purchasing RAM for a system, the most important consideration is the packaging (or form). The packaging controls both the physical size of the memory module as well as the memory standard (DDR, DDR2, etc.). If you purchase the wrong type of RAM, it most likely will not fit. If it does, it might have different voltage requirements than what is supported by your motherboard.
||The capacity (sometimes called the size) refers to the storage capacity of the memory module (i.e. 256 MB, 512 MB, 1 GB). The total capacity of memory that you can install in your system is limited by:
For example, if your motherboard had a total of three slots, with a maximum module size of 1 GB and a system maximum of 3 GB, if you had two 512 MB modules installed, you would only be able to add a single 1 GB module bringing the total up to 2 GB. You could also replace one or both of the 512 MB modules bringing the total to 2.5 or 3 GB respectively.
- The number of memory slots on the motherboard.
- The maximum total capacity that can be installed. For example, most systems will have a maximum of between 3 and 12 GB of RAM.
- The maximum module capacity. For example, the motherboard might only be able to accept up to 2 GB or 4 GB modules.
||For optimal performance, you should match the memory frequency (sometimes called the speed) with the frequency supported by the system bus/memory controller.
- The motherboard front side bus restricts the maximum frequency.
- Memory frequency is equal to or is a multiplier of the front side bus.
- You can install slower memory in the motherboard, but this will degrade performance.
- You can install faster memory in the motherboard, but it will only operate up to the maximum supported by the motherboard.
- Most memory modules include an SPD (Serial Presence Detect) chip that identifies its frequency. The BIOS uses the information in this chip to set the frequency automatically.
- On many systems, you can edit the BIOS manually to change the frequency.
- When you mix memory with different frequencies, all memory will operate at the lowest frequency.
The following link describes ratings that describe the frequency and bandwidth capabilities of memory.
Memory is rated based on its guaranteed stable operating frequency and bandwidth (the rate at which data can be read or written). Memory ratings help you differentiate between slower and faster RAM. The following rating systems are used:
- With SDRAM, memory was given a number coupled with the PC- prefix to identify the bus operating frequency. For example, PC-133 SDRAM operates at 133 MHz.
- For all DDR memory (DDR, DDR2, and DDR3), a new designation was introduced to identify that twice the data was being transferred with each bus clock cycle.
- The number following the DDR-, DDR2-, and DDR3- prefixes is the data transfer rate (twice the bus frequency).
- For example, DDR-400 matches a bus frequency of 200 MHz; DDR2-800 has a bus frequency of 400 MHz; and DDR3-1600 has a bus frequency of 800 MHz.
- For DDR past 150 MHz (and for all DDR2 and DDR3 memory), the PC- designation was changed to identify the bandwidth instead of a number derived from the bus frequency.
- The bandwidth is 16 times the bus frequency, or 8 times the DDR- designation.
- For example, DDR-400 has a bandwidth of 3200 MBs (PC-3200); DDR2-800 has a bandwidth of 6400 MBs (PC-6400); and DDR3-1600 has a bandwidth of 12800 MBs (PC-12800).
- For a brief time, the double-frequency designation used the PC- prefix for early DDR modules. For example, PC-200 used with DDR indicates a bus frequency of 100 MHz, not a bandwidth of 100 MBs (PC-200 is equivalent to DDR-200 which is equivalent to PC-1600).
Note: When listing the frequency, the frequency value usually indicates the front side bus frequency, not the internal frequency used by the memory.
The following table lists the various memory speed designations for the most common memory types.
||PC-200 or PC-1600 or DDR-200
||PC-266 or PC-2100 or DDR-266
||PC-2700 or DDR-333
||PC-3200 or DDR-400
||PC2-3200 or DDR2-400
||PC2-4200/4300 or DDR2-533
||PC2-5300/5400 or DDR2-667
||PC2-6400 or DDR2-800
||PC2-8500/8600 or DDR2-1066
||PC3-6400 or DDR3-800
||PC3-8500 or DDR3-1066
||PC3-10600/10666 or DDR3-1333
||PC3-12800 or DDR3-1600
||PC3-14400 or DDR3-1800
||PC3-16000 or DDR3-2000
When comparing the speed of memory modules, be aware of the following:
- The most useful comparison between most DDR modules will be to compare the amount of data that can be transferred per second (bandwidth), as indicated by the PC- designations. For example, PC-3200 will always indicate a "faster" memory module than one with a PC-2700 rating.
- PC- numbers up to PC-266 identify the frequency (or double the frequency), not the bandwidth. For example, a PC-266 module has a greater bandwidth than a PC-1600 module (PC-266 = PC-2100).
- Comparing DDR- numbers can also give you an idea of the relative bandwidth. For example, DDR-600 can transfer more data than a DDR2-400 module.
- The bandwidth identifies a theoretical maximum that the memory can transfer in a given time period, and is directly related to the front size bus frequency.
- If you can derive the bus frequency, you can also get a relative idea of the amount of data a module can handle.
- When comparing SDRAM with DDR, DDR can transfer twice the amount of data at the same frequency.
- When comparing DDR modules, the frequency is an equivalent relative measurement to the bandwidth. For example, a DDR2 module operating on a 533 MHz bus is faster than a DDR3 module on a 400 MHz bus.
- Other memory characteristics besides the frequency could affect the effective bandwidth or actual speed of the memory module.
||Another factor that affects the performance of memory is the latency associated with accessing data in RAM.
- With a read request, there is a delay between the time the data is requested and the time that the data is available on the module's output pins. This delay is called the CAS latency (CL).
- Older memory expressed the delay in nanoseconds, but DRAM uses a ratio based on the clock frequency to describe the delay.
- For memory modules of the same type and frequency, a lower CL number indicates less delay (i.e. "faster" RAM).
- Because CL is related to the frequency, you cannot directly compare the CL between modules with a different frequency. For example, a DDR2 module operating at 533 MHz with a CL of 6 has more delay than a DDR3 module at 667 MHz with a CL of 7.
- In addition to CAS latency, there are other memory characteristics that describe the delay for performing other types of operations. Collectively these values are referred to as the memory timings.
- For stable operations, the bus must take into account these latencies to keep the bus and the memory synchronized.
- Manufacturers test memory modules and rate them based on the operating frequency and the timing characteristics. Settings that produce stable performance are then encoded into the SPD module on the memory. The BIOS then reads this information to know how to configure memory settings on the motherboard.
- For many systems, you can manually modify the memory timings and frequency. Running RAM at a lower clock speed enables you to decrease the CAS latency setting; increasing the frequency must usually be compensated for by increasing the CL (and other) settings.
||Some memory modules include error correction on the module itself. Two different approaches to error correction are used:
Note: You might hear the terms parity and ECC being used interchangeably. Modern systems simply use ECC for error detection and correction.
- With parity, a 1 or a 0 is appended to each byte so that the total number of 1s is always either even or odd. Parity methods can detect errors in only one bit, but cannot fix them because they cannot determine the specific bit with the error. The parity error checking method is older and has almost been completely eclipsed by the new ECC method.
- Using Error Correcting Code (ECC), a value is appended to the end of each byte so that the value of the data can be compared and recalculated if an error occurs. Error Correcting Code is an improvement on parity techniques because errors in more than one bit can be detected and corrected.
Keep in mind the following facts about error correcting memory:
- Memory modules with ECC have extra memory chips on the module (typically 9 modules instead of 8). If the number of chips is divisible by 3 or 5, the module is likely ECC memory.
- ECC or parity memory must be supported by the motherboard.
- Because it is more expensive, ECC memory is typically used only in servers.
- ECC memory is slower than non-ECC memory.
- Do not mix ECC and non-ECC memory in a system.
||Buffered (or registered) RAM has a buffer that holds memory addresses or data before it is transferred to the memory controller.
- Buffered RAM improves stability on systems with a lot of RAM (over 1 GB).
- Buffered RAM might slow system performance.
- ECC modules are typically buffered.
- Buffered RAM must be supported by the motherboard.
- Some motherboards require buffered memory.
|Single- or double-sided
||Single-sided RAM has memory modules that are organized into a single logical bank; double-sided RAM has modules organized into two banks.
- The computer can only access data in one bank at a time. Therefore, single-sided RAM allows access to all of the memory, while with double-sided RAM, the computer must switch between banks.
- Originally, double-sided RAM had modules on both sides of the circuit board, and single-sided RAM had modules on only one side. However, you can also have double-sided RAM with modules on only one side, where internally the memory is divided into separate banks.
- Single-sided memory of the same capacity as double-sided memory uses half the number of memory modules (modules are denser, with a higher individual capacity).
- Some older motherboards are unable to use double-sided memory, while some that allow double-sided memory can only use up to half the total memory when all memory slots are filled, or mixing single- and double-sided together might not be allowed.