To get the best performance from your computer, it’s essential to get good parts. Once you’ve got your solid computer, you can often get better performance by tuning things a bit. Your CPU, GPU, and RAM all come with default performance levels. These are generally designed to work in most scenarios, assuming there’s enough cooling power to not cause overheating. If you’ve got more than enough cooling power, though, you can try to push things a little further by overclocking.
A word to the wise, overclocking carries the risk of system instability and potentially hardware damage or even hardware failure. Generally, manual overclocking will void the warranty of at least the affected part. In some cases, overclocking one part can void the warranty on another. For example, overclocking the RAM, even by enabling a manufacturer-provided XMP profile, can void the warranty of at least some Intel CPUs as it results in increased and non-standard stress on the memory controller in the CPU, potentially causing CPU failure. To prevent these sorts of failures, it’s essential to be careful, especially when increasing voltages.
The Core of Any Overclocking
Overclocking performance is based primarily on luck and patient trial and error. Because PCs have a range of different hardware, what works in some computers, may not work in others. Additionally, the silicon components being overclocked can have different performance levels in what’s referred to as the silicon lottery. The performance of your hardware can simply come down to your luck in the silicon lottery.
Generally, manufacturers sort products into different performance “bins” during testing in a binning process. The better-binned parts typically end up in the higher-end products as the ones in the lower bins might not be able to reach those high settings. That doesn’t mean that lower binned and cheaper parts can’t be overclocked for better performance, just that they tend not to be able to go as far as the higher binned parts.
With regards to your actual experience overclocking, the key is to try things and then verify stability. Just being able to boot your computer isn’t enough. You can have settings that appear stable, then after hours of heavy load testing, will show a failure. The severity of these failures can vary, from some data corruption to an application crash to a full-on system crash. When overclocking, it’s important to change only a small number of things, ideally only one, per trial run, to measure performance in that trial and to monitor long-term stability.
RAM Overclocking: XMP
CPU is generally the most well-known form of overclocking. It’s relatively simple to start with and to get decent performance improvements in single or multithreaded workloads, depending on how you go about it. GPU overclocking is a little less common, as GPUs already tend to run near thermal and power limits. Still, small improvements of around 200MHz can be achieved for minor performance boosts in-game performance.
RAM overclocking is probably the least well-known of the three but might be the most commonly used. Technically, each generation of RAM only has a limited number of standard speeds and timings published by the standards body JEDEC. RAM manufacturers can and do make RAM that can exceed these standards and sell it with those settings configured in an XMP profile. XMP stands for eXtreme Memory Profile, making the word “profile” on the end of the XMP profile redundant but commonly used.
XMP is an excellent option for what is essentially plug-and-play RAM overclocking. At the extreme end of things, not all systems may be compatible, but generally, you just need to plug in the RAM and then, at most, toggle the XMP setting on in the BIOS. As the XMP profiles are vendor-approved, using them doesn’t void your RAMs warranty. However, as we mentioned above, it can void your CPU warranty. If you want a simple performance boost with almost no effort, XMP is excellent.
Of course, XMP profiles are often safe choices that the vendor is willing to guarantee. With some manual experimentation, though, you can usually push them further. Additionally, XMP only allows the vendor to specify a small subsection of the RAM timings, leaving some that can have a performance impact by the wayside and ripe for manual tuning.
Benchmarking and Stability Testing Your RAM
Before you get into any RAM overclocking, barring enabling XMP, it’s essential to know your RAM’s baseline performance. You’ll want to run some memory benchmarks and store those values in some format, ideally a spreadsheet. Aida64’s memory tests are a popular tool for benchmarking. It can also be helpful to take an average of multiple benchmarking runs in games you commonly play, assuming they have a benchmarking feature. If you’re doing game benchmarks, it’s best to ensure that the CPU is the bottleneck by running at a low resolution. Statistical differences from RAM performance will be much harder to see if you’re in a GPU-limited scenario.
While you don’t necessarily need to do it every time you change any setting. It’s essential to check that your settings are stable under long-term load. Even if you don’t run a long-term stress test after every change, it’s necessary to run a short test every time. Most of the time, memory errors will become evident within a quick ten-minute stress test, so that’s a good starting point.
Note: The only possible exception to needing to test every change is right at the start of the process. Suppose you’re confident you can make small changes and don’t mind having to undo them and retest them. In that case, you can generally get away with this at the start.
For example, suppose you increase the clock frequency by 200MHz and drop each of the primary timings by two. In that case, you might find this is stable, potentially saving you a fair amount of time. This becomes a lot less likely to work as you start to properly tighten timings and run up against the edge of stability for your hardware.
Long-Term Stability Tests
Memory stability issues, unfortunately, can be rare enough to allow you to boot your operating system and run benchmarks. Only to fall over after 6 hours of stress testing. While this may be enough if you’re only trying to go for one-off world record overclocking runs, it’s not enough if you want to use your computer.
As much as stability testing and performance logging may sound and be monotonous and tedious, it’s necessary. If you don’t test for stability, you may end up with your computer crashing or corrupting data, which is never good. Without logging the changes, you make and the performance stats you get with each changed setting, you can’t know if you’re actually making anything better. Or which changes you should prefer to roll back if two individual differences are stable, but both together aren’t. Nicely, logging also means you can see and share your overall performance increase once you’re done adjusting settings.
Increasing Clock Speed
There are two main things you can change in memory overclocking. The time per cycle/cycles per second, and the number of cycles for specific actions. The clock rate controls the number of cycles per second, and higher is better, allowing for greater bandwidth. The latency is a product of the time for a single clock cycle and the number of cycles needed for specific actions. The number of cycles for these actions is denoted by the memory timings. Lower numbers are better, but as the memory clock speed increases, the timings can and generally need to increase too.
For example, if you’ve DDR4-3200 memory with a CL timing of 16 and DDR5-6400 memory with a CL timing of 32, the latter will have twice the bandwidth. This is because it runs at twice the clock speed, allowing for twice as many transfers per second. The actual memory latency, however, will be the same. This is because timings are counts in single clock cycles, not absolute values. The latency is the same because the doubled CL timing is canceled by halving the time for a single clock cycle.
Note: As will be covered shortly, CL is only one of many timings, and while it can have an effect, it is far from the only measure of memory latency.
Loosening the Timings
You can increase the bandwidth by pushing the clock speed as high as you can. You can try to keep the timings the same, but you likely won’t get very far doing so, as the timings will be far too tight. You’ll need to loosen the timings to further increase your clock speeds. You can tighten them later but want to do so at the maximum possible clock rate.
If you want to save some time, try looking up the timings for faster memory speeds offered by the same vendor in the same range of memory. This may give you an excellent place to start. However, you may need to loosen the timings a little further. Suppose your brand doesn’t have a higher-speed variant. In that case, you may have some success looking for the stats of other brands that use the same DRAM IC OEM and die variant. Still, increasing the timings proportionally to the clock speed change may be easier, and nudging them a little higher if necessary.
While technically not overclocking, the memory gear setting can significantly affect your stability. It can also incentivize you to avoid pushing clocks within a specific range. By default, memory tends to run at a 1:1 clock speed ratio with the memory controller. As you push the memory clock speed, the load on the memory controller significantly increases. This increases heat production and voltage requirements. High heat and voltage can cause stability issues. In worst-case scenarios, it can kill your memory controller and thus your CPU. This is why memory overclocking can potentially void your CPU warranty.
Gear 2 puts the memory controller in a 1:2 ratio with the memory clock. This significantly reduces the memory controller’s load but introduces some extra latency. Generally, the point at which you need to enable gear 2 for stability reasons is at 3600MTs. Unfortunately, the latency penalty of doing so means that up to around 4400MTs, there is an actual performance penalty. If you can run your memory in a stable setup above 4400MTs, Gear 2 is ideal. But if you can push beyond 3600MTs but not 4400MTs, then back the clock speed off to 3600MTs. There you focus on tightening the memory timings further instead.
Note: Gear 4 is technically offered for DDR5. It sets the ratio to 1:4 for the same reasons with the same drawbacks. Current DDR5 memory is not fast enough to need to take advantage of Gear 4.
The standard measure for the RAM latency comes from the CAS latency. This is often shortened to CL, tCAS, or tCL. As we covered in our recent guide to memory timings, tCL measures how fast the RAM can provide access to a column in an already open row. Like almost all memory timings, lower is better, though you can expect upward scaling with clock speed increases. When lowering this value, always keep it even. Odd numbers tend to be significantly less stable.
Note: This upward scaling with clock speed increases for tCL and all other memory timings is due to the notation. Timings are all measures of how many clock cycles it takes to do something. The absolute time it takes to do something doesn’t change as the clock speed increases. RAM can only open a column in 10 nanoseconds, for example. Your timings just need to reflect the absolute time in clock cycles.
RAS to CAS Delay
tRCD is the minimum number of processor cycles needed to open a row, assuming no row is open. This may be separated into tRCDWR and tRCDRD, which denote writes and reads, respectively. The two values should be the same if the values are separated above. These values don’t necessarily need to be even and will generally be slightly higher than tCL.
Row Activate Time
tRAS is the minimum number of cycles between a row being opened and the precharge command being issued to close it again. This has historically been around the value of tRCD + tCL. For current DDR5 modules, however, it appears to be set nearer tRCD +(2x tCL). It’s unclear if this is a lack of optimization given the lack of maturity of the platform or a necessary change for the platform. You may have success tightening this timer, depending on your platform.
Bank Cycle Time
tRC is the number of cycles it takes for a row to complete an entire cycle. It should be set to at least tRAS + tRP. We’ve not mentioned tRP. Here as tightening doesn’t directly provide much of a performance impact. It is the minimum number of cycles required to complete a precharge command to close a row.
RAS to RAS Delay
tRRD specifies the minimum number of cycles between “activate” commands to different banks on a physical rank of DRAM. Only one row can be open per bank. With multiple banks, however, multiple rows can be open at once, though only one can ever be interacted with at once. This helps with pipelining commands. The minimum value allowed by the memory controller is 4 cycles. This may be split into two separate timings, tRRD_S and tRRD_L, which respectively mean short and long. These refer to the tRRD when accessing banks in different bank groups or in the same bank group, respectively. The short value should retain the minimum value of 4 cycles. The long value is typically twice the short value but may be able to be tightened further.
Four Activation Window
tFAW, sometimes called the Fifth Activate Window, specifies a window of time within which only four activation commands can be issued. This is because the power draw of opening a row is significant. Performing more than four activations in this rolling period can cause the fifth activation to have such low available power as to be unable to reliably read the values in the row. This should be at minimum 4x tRRD_s. Values lower than this will be ignored.
Time Refresh Command
tRFC is the minimum number of cycles that a refresh command must take. DRAM, being dynamic, needs to regularly refresh the memory cells lest they lose their charge. The process of refreshing means that a bank must sit idle for at least the entire duration of tRFC. Obviously, this can have a performance impact, especially with a small number of banks. This number is usually relatively conservative and can generally be reduced a bit. Tightening tRFC too far will lead to widespread memory corruption issues.
Time Refresh Interval
tREFI is unique amongst all the DRAM timings for two reasons. First, the only timing is an average rather than a minimum or exact value. Secondly, it’s the only value that you need to increase to get increased performance. tREFI is the average time between refresh cycles, defined in length with tRFC. This value will be much higher than any other time. You want it to be as high as possible while remaining stable. Typical values will be in the ten to thirty thousand cycle range. However, it can be stable with a maximum value of 65534. This value must be greater than tRFC. Currently, the AMD platform does not expose this value at all, and support may be limited on Intel platforms.
Like any other timing, it is critical to perform long-term stability testing to verify any updated tREFI value is stable. You should definitely start high and work your way down. Remember that a number just a little too high may take multiple hours to display stability issues. Another thing to be mindful of is that the rate of charge decay in a DRAM cell increases as the temperature increases. This means that if you’re going for a high tREFI, you may need to reduce the voltage. You may also need to ensure your RAM has good airflow. In some cases, on barely stable configurations, the temperature change between seasons or in the room during long runs can tip the careful balance. This can make a previously stable configuration unstable.
Voltage is always essential for overclocking. A higher voltage tends to mean a better chance of a stable overclock. Higher voltage also tends to significantly increase heat production. It also increases the risk of you killing your hardware, so be careful. Unfortunately, there’s no one safe value. This is because there are multiple memory IC OEMs whose memory chips perform differently. It’s also partly because numerous voltage settings can – helpfully – vary in the name. Typically, you do not want to increase these values by much.
For DDR4, 1.35V should generally be ok for everything. Some DDR4 DRAM ICs can be perfectly stable even for daily use at 1.5V. In some cases, a little more can be safe too. For DDR5, the current-voltage recommendations are the same. Given the immaturity of the platform, this may change over time.
Note: Before increasing a voltage rating in the BIOS, you should always research the exact term to know what you’re changing. Remember, increasing the voltage can 100% kill CPUs, RAM, and other hardware while voiding the warranty.
Be extra careful if the default value is far from 1.35V, as this may indicate you’re doing something wrong. There are no safeguards or sanity checks here. The BIOS will assume that you know what you’re doing and accept the risk that you might kill the hardware.
Risky Voltage and Undervolting
Suppose you need to increase your voltage beyond 1.35V to achieve stability. In that case, it’s worth researching which die variant from which DRAM IC OEM you have. Once you know this, you can research some memory overclocking forums to see the recommended voltage limits for daily use. Remember, your mileage may vary regarding performance, stability, and – critically – not killing your hardware.
While you may be able to provide more voltage than is recommended, ideally safely with no issues whatsoever. It’s generally best to undershoot the recommended values a little. For most people, that last tiny bit of extra performance that could be squeezed out via overclocking and overvolting to the limit isn’t worth the unknown risk of killing your hardware and replacing it.
Once you’ve dialed in a stable overclock on your RAM, it can be worth experimenting with reducing the voltage again. Undervolting is the process of reducing the running voltage. It typically lets hardware run cooler and safer. It’s more critical for CPU and GPU overclocking. There the temperature reduction can allow a slight increase in peak clock speeds. RAM speeds don’t adjust with temperature like that, though. Reducing the voltage of your RAM, especially after increasing it at the start of the overclocking process, simply decreases the risk of hardware death and reduces running temperatures.
There are plenty of other secondary and tertiary timings that you can fiddle with. The ones we’ve listed above, however, are the ones that tend to give the most considerable performance boost. Configuring all of these values to the tightest possible settings.
All the while, verifying stability can take days or even weeks of hard work for what is generally a minimal performance improvement. By limiting changes to the mentioned settings, you can get the most improvement with minimal time required. You shouldn’t take this to mean that the process will be short if you just adjust the recommended settings. It will be faster, but not short.
There is a broad range of ways to improve the performance of your RAM. On their own, most settings will result in minimal performance improvement, but when combined, good enhancements are possible. For absolute beginners, XMP is the way to go. It is excellent as a plug-and-play solution that only needs to be toggled on.
If you want to go a little further, increasing the frequency and reducing the CAS latency are the generally recommended quick and easy wins. After that, you get pretty in-depth. The optimization process can take weeks of work to reach the limit of your hardware.
It’s also important to be careful. Overclocking can kill hardware, especially if you increase the voltage by too much. As long as you stay within reasonable limits, you can squeeze a decent amount of extra performance out of your computer for no monetary cost. Which is a win in our book.