Hack #38. Speed Up Your RAM

Get higher performance by optimizing the timing parameters for the faster memory in BIOS.

CPUs are not the only part of your system that can be overclocked. Memory timing settings have just as big an impact on RAM performance as the bus and CPU frequency. By hacking memory timing, you may be able to obtain as much as a 10-20% performance enhancement.

System board BIOS implementations may offer numerous settings to optimize your memory. These settings modify RAM functions that, while basic in nature, are often given widely different names.

Warning

This hack is purely trial and error and is intended for those with a real sense of technical adventure. Hacking RAM speed settings can yield unpredictable results, such as the inability to boot, crashes, or data loss.

It is unlikely but possible that changing any of these parameters will damage your RAM. Some BIOS may provide an automatic fall-back setting recovery mode so you can restart without the hassle of wiping out the CMOS memory [Hack #2] .

The first step to tweaking your memory is to turn off the Serial Presence Detect (SPD) function in your system's BIOS, as shown in Figure 4-4.

Memory timing controls in Award BIOS

Figure 4-4. Memory timing controls in Award BIOS

The SPD function reads your RAM modules to determine what timing parameters to use; when it's off, you're in control of the clock speeds for your memory.

Warning

Once you take control of your memory timing parameters there are myriad combinations of settings that may speed up, slow down, or crash your system. You should not work with critical data when hacking settings that could cause system crashes or data loss.

The following list shows several common memory hacking parameters, some of the names given to these parameters, and their functions. Where possible the normal, safe, or default values are listed. Please note that not all BIOS setup programs offer all of these settings, use the same names for them, or have the same default values, while some parameters are known universally by their technical or functional names.

Serial Presence Detect (SPD), Automatic Configuration (Auto)

If you want to manually configure your memory timings, you will have to deactivate the automatic RAM speed detection function.

Bank Interleaving, Bank Interleave

Typically set to 4. Addressing RAM through interleaving improves performance.

Burst Length, Block Transfers

Typical values are 8, 4, or 2 data blocks transferred in one memory cycle. Performance should increase with a higher value.

Column Address Select (CAS), CAS Latency Time, CAS Timing Delay

CAS specifies the number of clock cycles between a column of memory address being activated and the availability of data at the RAM's output. A lower number is better, but if this setting is set for too few cycles output data will be unreliable and the system will become unstable. If set longer than necessary, performance will suffer.

Command Rate, Address Cycles

Command Rate specifies the number of clock cycles needed to access a memory chip to get to the specific address needed. This will take longer if you have a lot of memory modules in your system, making it desirable to use as few modules as possible for increased performance. A lower number is better, but a higher number may be necessary for your memory to work right, at the cost of slightly reduced performance.

Row Address (RAS) Precharge Time

Number of clock cycles needed to precharge the circuits so that the row address can be determined. Lower should be faster, but higher may be necessary to maintain stability.

RAS-to-CAS Delay, tRCD

Number of clock cycles between row address and column address. A smaller value can increase performance. However, if there are too few cycles, memory addressing errors will occur.

Row Active Time, tRAS, Active to Precharge Delay, Precharge Wait State, Row Active Delay, Row Precharge Delay

The time between addressing two different rows in a memory chip. Too little time will make addressing unreliable; too much will make performance suffer.

Memory Clock, DRAM Clock

The clock speed of the memory bus. With normal SDRAM, the rate is related to the front-side bus (FSB) clock. With DDR, the actual RAM speed is doubled.

The settings you are able to use are dependent on numerous factors: your BIOS default and changeable settings, system board chipset, RAM cacheability, CPU L1 and L2 cache sizes, system board design quality, memory module and chip manufacturer, memory speed, and type of memory used.

To test your hacks for performance gain or loss, you can use SiSoftware's Sandra diagnostic and benchmarking program, shown in Figure 4-5, available for download from http://www.sisoftware.net. Sandra provides system information, testing, and benchmarking of PC components. For testing memory, use the memory bandwidth and combined memory and cache benchmark tests.

SiSoft Sandra provides a wealth of system benchmarking information

Figure 4-5. SiSoft Sandra provides a wealth of system benchmarking information

If you have an unhackable OEM system [Hack #9] or you have slow memory modules (PC100, DDR200) that are not reliable with faster timing settings, your only choice for improving performance through memory is if the BIOS supports SPD and you install faster RAM—PC133 instead of PC100 or DDR333 instead of DDR266. Hacking values for PC100 RAM may result in a mere 2-3% performance increase, while simply changing to PC133 RAM yields an expected 20-30% increase in performance with no hacking at all.

Get PC Hacks now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.