Why settle for standard performance when a few quick tweaks can have you moving faster?Computer memory, aka Dynamic Random Access Memory, aka DRAM, or whatever name you wish to refer to it by, is a core component of any computer system. As enthusiasts, memory can be a primary ingredient to increasing the overall responsiveness of a system and reducing hard drive thrashing due to over use of the page file.
Throughout this tutorial we’ll be discussing a number of areas key to memory performance and specification. We’ll go through the dizzying amount of letters and numbers that tell us whether the sticks are the good shit or better relegated to the family PC. Also discussed will be the relationship between latencies, the preferences and relationship between frequencies and latencies as well as the methodology for tweaking memory for best overall performance.
Due to the current enthusiast market landscape, we’ll be discussing the topics in relationship to the most common current gaming and benchmarking platform – the Core 2 Duo or Core 2 Quad based system. These systems commonly run on the following chipsets:
• Intel P965
• Intel P35
• Intel X38
• NVIDIA 680i
There are other relevant chipsets, such as Intel 975X, ATI RD600 and Intel G33, however these are not as commonly found as the previous four mentioned chipsets.
The information contained in this guide is predominantly founded on experience based on an Intel platforms (memory controller in chipset), however it is still applicable on many if not all levels to current DDR2-capable AMD platforms (on-die memory controller).
Breaking down the numbers
Memory is marketed in such a way as to allow for a large quantity of information to be made available to the reader at a glance. The problem begins when the majority of people have no idea what these numbers and letters mean beyond the capacity of the modules in either megabytes or gigabytes.
First and foremost we need to break down this barrier and make the true technical specifications of a memory module understood. For this break down we’ll be using the following specifications, which by now have become rather common place in the enthusiast market.
1024MB (1GB) DDR2-1066 (PC2-8500) 5-5-5-15 2T 2.2v
To aid in deciphering this information and for ease of reference, the above text has been colour referenced. Below is a description for each colour-referenced piece of data:
Blue: The simplest of the lot, this is the capacity of the memory module in question. The capacity of the stick is generally referenced in megabytes (MB) however can also be referenced in gigabytes (GB) as well. The majority of modules currently sold are of the 1024MB variety, with two in a kit culminating in a 2GB (total capacity) pair.
Red: The red alpha-numerical set depicts the operating frequency of the memory module. With DDR representing ‘double data rate’ and the frequency represented in megahertz (MHz), a bus speed of 533MHz is represented as an effective 1066MHz due to the double data rate operation. The numeral after the DDR notification states the memory standard of the module, in this instance the module adheres to DDR2 specifications.
Green: The green alpha-numerical set is often used in correlation with, or instead of, the red alpha-numerical rating. Like the red rating, the number after the letters ‘PC’ indicates the memory to be of DDR2 specification – a one or nothing would indicate DDR1 and a three would indicate DDR3 specification. The PCx-xxxx rating depicts the bandwidth of the modules. The bandwidth is calculated with the following equation:
Bandwidth = transfers x number of bits in a byte (8)
For example, PC2-8500 would be shown: 8500 = 1066 x 8
Note: The bandwidth is rounded to the nearest 100 value. The complete bandwidth value for DDR2-1066 memory is PC2-8528, however this is rounded to PC2-8500.
Pink: These numbers, split by hyphens, tend to leave most people at least a little confused. The numbers indicate the primary latency timings, also commonly referred to as alpha timings, of the memory modules. The numbers define the following settings:
tCL – tRCD – tRP - tRAS
The full meanings for the abbreviations are:
tCL: CAS Latency Time
tRCD: DRAM RAS# to CAS# Delay
tRP: DRAM RAS# Precharge
tRAS: Precharge Delay
There is another latency to be aware of, however, and it comes from the secondary latency set (which is not often displayed) and is referred to as tRRD. Depending on the relationship of this latency to the chipset’s functions, this can sometimes be blamed for Front Side Bus (FSB) manipulation. If hitting an FSB wall, try loosening this setting by one or two values. If no changes are found, tighten up the values again to the original or tighter timings to maintain responsiveness.
A classic example of tRRD influencing FSB was on the initial release of the GIGABYTE GA-X38-DQ6 which could run tight timings, such as:
But to push through to high 500MHz to 550+MHz FSB, unlike competing manufacturers with X38 boards that can maintain tight tRRD settings at high FSB, the GA-X38-DQ6 could not; as such it had to have the tRRD relaxed to a value of eight or nine to succeed at high FSB overclocking. Interestingly the GIGABYTE board didn’t incur a hefty performance hit for requiring such a relaxed setting change to this particular secondary latency.
As these settings all indicate latency values; for maximum performance the latencies should be set as tight as the memory modules will allow for a given frequency while maintaining stability and reasonable voltages.
Purple: The purple alpha-numeric indicates the command rate that the memory operates at. This rate is commonly set at a value of one command per cycle, known as 1T, or two commands per cycle, which is known as 2T.
The command rate indicates the numbers of cycles before the next line of commands can be issued. Therefore, issuing commands every cycle opposed to every two cycles will often obtain increased performance. How big this gain is depends on the chipset and other factors outside of this tutorial.
In the DDR1 generation performance memory ran on a 1T command rate and commonly a strong memory performance deficit would be incurred if set to a 2T command rate. With the initial move to DDR2 the only command rate available (and only for Intel platforms for a number of years as AMD maintained the use of DDR1) was 2T. This in effect brought with it the expected memory performance deficit.
Interestingly, as development continued, especially on the side of the platform chipsets and the continued development and performance increase of DDR2 memory, this deficit was soon made largely insignificant unless you were chasing every last drop of performance from the system. Intel chipsets started to support a 1T command rate, however many enthusiasts found minimal performance gain and further restrictions on the maximum frequency and latencies when utilising the 1T command rate. That said, the gain of 1T opposed to 2T command rate is almost always appreciated by the hardcore performance nut.
Orange: The orange value indicates the amount of voltage to be used for a given set of memory modules. This can also be represented as a range, for example 2.0v – 2.2v and is inclusive. The voltage value is given to define the general voltages needed to maintain the stock frequencies as given in the rest of the module specifications. It has been quite common to find these voltage values to be a little generous to assure every stick specified to run the given timings can do it. Often the memory, particularly when Micron based, can either run the specified timings at less voltage or run considerably tighter timings and/or higher frequency. For example, the majority of Micron D9 based memory (particularly D9GMH and D9GKX ICs) can operate at DDR2-1000 4-4-4-12 when rated for DDR2-1066 5-5-5-15 or DDR2-800 4-4-4-10.