AMD has been well-known for its memory stability issues with Ryzen, especially when it first launched. Since then, however, the AGESA updates have allowed myriads of different memory combinations to finally become usable. I changed my R7 1700 for an R7 2700X on launch, and even went so far as to pre-order the CPU. I was that stoked for it… but I was never able to fully stabilize the memory, even though it was as solid as could be on the R7 1700 I had previously. So, how did I solve the issue? I guess… I’ll tell you a ‘little’ story…
So, what’s the issue?
Before we jump in, I am going to warn you that this is going to be one big post with a lot of text. Although, with that said, let’s cast our thoughts back to when Ryzen first launched. There was huge hype surrounding the fact that Intel finally had to wake up and smell the dirt that AMD were about to kick up behind them. It wasn’t all plain sailing for AMD at launch, though. The constant memory issues were really dragging performance through the mud, and it seemed to put people off for the first few months of their new product. However, many of us persevered and kept with AMD, faithful that it would get better.
As time went on, more and more BIOS updates were released with increased memory compatibility with new AGESA microcode patches. Finally, we were able to place the cherry on top of the cream as AMD was ready to do heavy battle with Intel. Memory frequencies kept creeping up, and it just spiraled from there. Today, DDR4-3600 MHz is no longer a severe training/tweaking concern, and often boots immediately with D.O.C.P. (XMP for AMD) settings on a number of motherboards. Granted it is up to the vendor to make sure that it can do such a thing, it is becoming more of a normality throughout the market.
2nd Gen and Memory Stability
A year on from the Ryzen 7 first-gen launch, a refresh appeared. As we know, AMD are promising to let us keep our beloved X370 motherboards through until at least 2020. That is one heck of a lot longer than we have gotten from Intel for so many generations. So, I kept my trusty ASUS Crosshair VI Hero and updated the UEFI as required. The new chip got installed, and I thought we were off to the races. Uh, yeah, maybe next time!
It took many hours of testing, retesting, and retesting some more in order to narrow down the issue. I finally managed to get it narrowed from the memory or to the IMC (integrated memory controller) which then lead to more testing once more. I thought that I had finally gotten it stable as my most played games didn’t crash the system, but sometimes crashed to the desktop (CTD) which I thought it could be blamed on my GPU overclock that was previously stable. After reverting, nope, it’s still doing it. So I ventured back into the UEFI for some investigation.
Are we fixing things yet?
Being the overclocker that I am, I thought back to my first experiences, and remembered that a wise fella once told me that voltage is the key. His words were that voltage is both the cause and solution for all of your problems. It’s very true, because of the fact that too much voltage can be as bad as too little. All electronics have an operating range, and if you’re out of bounds, you may be in for a bit of a rough time.
After initially loading a profile from my Ryzen 7 1700, I thought I’d be able to attain the same levels of performance from the memory. The theory behind it was simple: newer generation with an improved IMC. Without any hesitation, I loaded the profile, and that was an awful mistake. There was no chance of it booting… even though it should have been capable without question. Failing to load the same overclock, I reset the BIOS to DOCP (XMP for AMD) and began my tuning. The default voltage was 1.2v on my IMC for the 3200 MHz CAS 14 profile. That is typically way too much in any scenario, but I figured I’d try anyway. AIDA64’s memory test was my go-to torture test, which pretty much locked up my system upon launch. Meh, this is going to be a long day!
Too Much IMC Voltage?
It took me the best part of the entire day to figure out what was causing my issues, but I eventually managed to find it after changing the voltage of my memory and IMC so much. I started to lower my IMC voltage from 1.2v until it was no longer stable. Your CPU will naturally differ. However, as you can see, you really can get away with minimal volts on your IMC. I really did not expect it to be stable, let alone POST in the first place. I haven’t had a single hang or freeze with my system in over a month. That’s pretty darn good, wouldn’t you say?
That also brings me to another point that I’ve raised and queried with a few vendors in the past; why is the “default” voltage so much higher than what you need? They all claimed it was to do with ‘compatibility out of the box,’ which in most cases, isn’t strictly true. As demonstrated by this article, too much voltage is a huge issue. No two pieces of silicon are the same, I know that, but overshooting by over 0.3v in my particular case is just ridiculous.
So, if you are running into stability issues, I’d highly suggest under-volting your components instead of over-volting them. It does naturally depend on the scenario. Of course it isn’t going to make up for a faster clock speed that simply needs more voltage, but you have to experiment when you’re running stuff like this out of its rated spec. AMD rates their memory controller at 2666 MHz – a little higher than the JEDEC standard of 2133. It should operate without a hitch on all motherboards at those speeds. Since the AGESA updates, this is definitely the case.
There you have it. If you are running into issues with your memory stability, give this a try! If you are having issues, drop a comment below and I’ll do my best to assist.
Until the next time when I come across some weird quirks…