• Happy holidays, folks! Thanks to each and every one of you for being part of the Tom's Hardware community!

How To Troubleshooting problems with PC memory (RAM) and XMP profile configurations

Status
Not open for further replies.
W2Hmy7b.png






In the beginning, there was......BIOS



Before you go ANY further, go to the manufacturer product page for your specific motherboard model AND revision.


Revision is an important aspect because for any given motherboard there may be more than one version of that model which will be identified as a distinctly different revision. As an example only, not that there ARE multiple revisions of this board, but assuming it WERE true you could potentially have an ASUS Z370-A rev.1 and an ASUS Z370-A rev.2, and in many cases they MAY NOT use the same BIOS/UEFI firmware or specific versions of that firmware might not work on both revisions so be sure that if there IS more than one revision of your motherboard that you are looking at the correct page for YOUR model and revision.

Now, once you are on the correct page for your product, click on the support link then click on "Drivers/BIOS", often you will then need to also identify what Windows or other OS version you are running and check to see what the latest BIOS version is. Now, compare that to the version you currently have installed by taking a look at the POST screen which is generally displayed when you first start up your system OR can be found by going into the bios and looking on the main page. The BIOS version is usually listed there. You may also be able to find it in Windows system information section of administrative tools by typing ms32info into the run command box on your start menu and hitting enter or clicking ok.

If you are not on the latest version, I highly recommend that you update to it unless there is a very, very compelling reason to not do so such as known issues with a specific bios version or if you have ongoing problems with the motherboard that might cause it to fail in the middle of an update. For most people, neither of those things will be a factor. Another consideration that might be pretty common if you are reading this is the fact that you cannot GET the system to POST at all, or access the bios in any way in order TO update the bios. If that is the case I'd suggest that you might want to investigate your motherboard's specific features to see if your board offers a flashback feature that allows you to update the bios using a specific USB port on the back of the motherboard, even with no memory or CPU installed.


Granted, most motherboards don't have this feature but there ARE some that do, and it's becoming increasingly common to find this feature on a number of mid to upper tiered boards in some fashion or other. If not, no worries, you can do it once you do get the system to initialize and allow BIOS/UEFI access. Which brings me to another point. From here on out, when I say BIOS, we will assume that we are using BIOS universally to include both BIOS and UEFI style motherboard setup programs.




Let's move on.






irewYn7.png




Mixed memory, (Or, The odd man out)


While memory modules that did not come together in a matched set that was tested by the manufacturer to be compatible, certainly CAN still work together, often it does not. Right up front I'll tell you that if you are trying to get sticks to work in the same machine together that were purchased separately, even if they are otherwise identical according to the kit or model number or if they would seem to have identical timings and voltage requirements, there is a very good chance that you simply will not be able to do that. There is also a pretty fair chance that you might be able to if you are willing to take your time, listen to and understand what you are being told and follow the steps necessary to determining if they will "play nice" or not.

The exception in most cases will be that if the memory from both sets are the same speed and timings and both kits are within the JEDEC specifications for the default speed on that platform, so for example, 2666mhz on the latest Intel Z390 platform, 2133mhz on Ryzen first and second Gen platforms, then they stand a much better chance of working together but if they are higher speed kits the chances begin to diminish from what they might be at the low speed and loose timings end of the scale.

A word of advice. If you just purchased this memory, and for whatever reason you bought two separate sticks of the same memory instead of buying them together in a matched set, see if you can return them for a refund or credit towards buying a similar or same set of matched sticks that come together in a kit. It is ALWAYS better to have matched modules because from brand to brand, or even within the same brand, in fact, even when the part numbers are IDENTICAL, there can be anything from simply slightly different memory chips that were sourced from different bins at the end or beginning of a production run to entirely different configurations altogether even though the model numbers seem to be the same. Some manufacturers even reuse model numbers when they discontinue a product. Point being, memory is only the same for sure when all sticks came out of the same blister pack or packaging and were sold as a tested kit.

In order to determine if differences in the memory, or a need for increased voltage when using more than one stick (Especially if you are running three or more sticks) are responsible for the problems you are having you will always want to begin your troubleshooting process by attempting to boot the machine with only a single stick of memory installed. Also, for practically every consumer motherboard that's been sold since at least as far back as about 2014, the A2 memory slot which is the second slot over from the CPU socket, is THE slot that is most commonly designated for the installation of a single memory module. Slots A2 and B2 are almost always the slots specified in the motherboard memory population rules for use with two modules. If you need to install a third module I have no opinion on which of the remaining slots to use for that, but typically since the A1 slot is right next to the CPU socket and often interferes with the CPU cooler or fan, I'd say the B1 slot was probably just as good.

Honestly, I don't ever recommend that you HAVE three modules installed anyhow. Using memory in pairs is almost always a better option, except on boards that support triple channel memory population, so that normal dual channel operation will occur. And that's another thing. When it comes to memory there are no "single channel" or "dual channel" memory modules. There are ONLY memory modules and the motherboard and CPU architecture will determine whether or not dual, triple or quad channel operation is possible based on the architecture and how many modules are in use. Occasionally though there are situations where it might make sense to run three modules and some boards CAN use three modules in a FLEX type mode where two of the modules will operate in dual channel while the third oddball module will run in single channel. I'd avoid oddball configurations though if possible because many motherboards will simply run ALL modules in single channel mode when an odd number of modules are installed.




If you think you will ever need 16GB of memory, then buy 16GB of memory from the start so you can get it all in a matched set that has been tested,
and eliminate a lot of problems right from the start.








EOn0ATn.png



One stick to rule them all


(If you are not having issues getting your full amount of memory to run at the default configuration and your problem is only that you cannot get them to run at their advertised profile speed, you can skip ahead to the section on getting your sticks to run at the advertised speed and timings known as XMP, AMP or DOCP settings.)


For those who ARE having issues getting the memory to run at all, let's start by turning off the switch on the back of the power supply and unplugging the power from the PSU or the wall. Remove the CMOS battery for five minutes and press the power button for 30 seconds DURING those five minutes.

Next, install ONE memory module in the A2 slot or whichever slot your motherboard manual recommends if for any reason it is other than the A2 slot.

Plug the power back in to the power supply unit and turn the PSU switch back to the on position.

Press the power on button to power up the system. If the system will initialize and allow you to get into the bios, great. Select the default or optimized default settings, save your settings and exit the bios. Power off the unit and install the other module in the B2 slot and repeat the procedure. If the system again initializes and allow you to enter the bios you can exit and see if the system will boot into Windows. If it will, you can restart, go back into the bios and begin the XMP/AMP/DOCP configuration. We'll return to the XMP configuration guidelines a little later or you can skip ahead now if your system was able to POST with your full amount of memory at the default settings.

From here on out we will universally use the term XMP to loosely represent any of those profile strategies in order to keep things simple even though we recognize that there are clearly differences in the types of profiles depending on which platform they were designed to be used with.

If your system did not properly initialize and POST with a single module installed then flip the switch on the power supply back to the off position, remove the memory module that is currently installed in the A2 slot and try a different module in the same slot. If it still does not work, and you have more than two modules, then rinse and repeat with additional modules until the system will initialize and POST will a single module installed or you have no other modules to try.

If no modules would work in the A2 slot, start over with any single module in the B2 slot. If none of the modules will work in the A2 slot OR the B2 slot, then there is a definite hardware issue of some kind. At this point I would recommend that you pull the CPU cooler back off, remove the CPU and depending on whether you have an AMD or Intel platform, check either the motherboard CPU socket or the CPU for bent pins.

If there are no bent pins and you are absolutely certain that the rest of your hardware is functional, and ALL connections to the motherboard from the power supply including both the 24 pin ATX and 4, 8, 10 or 12 pin EPS connectors,


(Most systems will have either a single 4 pin, a 4+4 or 8 pin EPS connector but some server or specialized boards might have a proprietary 10 pin EPS connector and some rather high end overclocking boards might have a 12 pin socket for very high overclocking power delivery. Whatever yours has, make sure it is connected to the power supply. If you have a power supply with ONLY a 4+4 or 8 pin EPS connector and your motherboard requires a 10 pin or 12 pin, you are going to need a different power supply or an adapter. Adapting power connectors isn't usually a great idea, so I'd recommend getting a power supply with the proper connectors for the application if yours lacks it.)

then you likely either have incompatible memory, faulty memory or a bad motherboard. Especially if you've removed the graphics card and are attempting to use the integrated graphics and are still having the same issue. The chances of your problem being both a faulty graphics card AND a faulty integrated GPU (If your system HAS integrated graphics) would be pretty astronomical unless this is a system you've been using for a while and it suffered some kind of power surge. Even then, it would be MORE likely that the motherboard took the bulk of damage from something like that.

Unfortunately, short of obtaining MORE memory to try and test with, either through a return, or new purchase, or borrowing from a friend, there isn't much else you can try as far as the memory side of things is concerned in order to eliminate either the motherboard or memory but if you have multiple memory modules and NONE of them worked in any of the slots, or if a single module worked in a slot other than the one that was designated by the population rules for the motherboard but NOT in the A2 or designated slot, then it's probably that there is an issue with the motherboard rather than the memory.

It's pretty unusual, if you have memory that is correct based on what your board supports, for multiple modules to all not work. Possible, but very unlikely. More likely to be the motherboard than ALL of the memory.

I'd suggest replacing the motherboard or pursuing an RMA if the board is still under warranty.

If your system was able to POST with a single stick installed, but fails to operate normally with more than one module installed, you might simply have one bad stick OR you may need to increase the DRAM voltage (Also known as vDIMM, VDDR, DRAM bus voltage, VDIMM select, memory voltage and DRAM bus voltage among other naming schemes.) slightly in order to get them to run ESPECIALLY if you have more than two modules.

Since I cover the process of making incremental DRAM voltage adjustments in the XMP section I will not cover that here, but the process will be the same aside from the fact that you will likely be starting from a lower voltage value if you are only trying to get them all to run at the default configuration than you will when trying to get them to run at their higher speed XMP profile setting.








wH05zVZ.png




Setting up XMP, AMP or DOCP profiles

If you are having problems getting your memory to POST when set to the XMP profile settings, then I would suggest that you try the following. Keep in mind that if you plan to overclock the CPU/Processor, you will want to do that FIRST, and then worry later about getting the memory to run at speeds or timings higher than the default base speed for your memory type. For DDR3 that is usually 1333mhz and for DDR4 that is normally 2133mhz. There are a few exceptions to this but whatever your memory defaults to before you make any setting, timing or voltage changes to it, can be considered the default speed for our purposes.

When you overclock your CPU, that is the configuration you want your memory to be in. Do not enable the XMP profile and THEN try to overclock your CPU. If you mess with the memory configuration BEFORE you set up your CPU overclock, you may get errors that are not even related to your CPU overclock which will likely make your CPU overclocking efforts a gigantic waste of time.

This is worth repeating. IF you are going to overclock your CPU, do it first, THEN worry later about memory overclocking, tightening timings or getting your sticks to run at their XMP profile settings after the CPU has been tested and validated as being a stable configuration.

So if you're past this, and are trying to configure your sticks for XMP profile settings (Or some custom setting which you can assume is also included from this point forward when I say XMP profile) but are not having any success, this is what I normally do.

Save any overclocking profiles you may have already configured on the CPU for reference later in case you can't remember because you may end up having to reset the CMOS or the system might do it automatically if it is unable to POST using the current configuration. Write them down, take pictures or if your board supports it, take screenshots using the F12 command. Some bios support in-BIOS screenshots to USB drive when you press F12 and if yours does that's a really good way to save a copy of your bios settings in the even you should have to re-enter the settings later for your CPU overclock.

There is another reason you will want to overclock your CPU BEFORE you try to set XMP or make custom adjusts, and this MIGHT be important, because on some systems depending on how fast the XMP advertised speed of your memory module or kit is, you may need to overclock the CPU to a higher frequency in order to get the memory to run at that speed.

This is because, to put it in laymans terms, at the stock CPU configuration the memory controller might be lazy. Overclocking the CPU at least by a small to moderate amount may help to kick the memory controller and system in the seat of the pants. Often a small overclock will eliminate all troubles running memory modules at moderate to high speeds even without an increase to the DRAM voltage. Other times it might take a moderate overclock along WITH an increase in DRAM voltage.

For that reason alone, it's also a good idea to configure your CPU overclock FIRST, before messing with the RAM at all.


My own basic, but fairly thorough guide on overclocking your CPU, at least as far as the baseline configuration and testing procedures go, can be found here:


CPU overclocking guide and tutorial for beginners



Once you have configured your previous CPU overclock back in or done it for the first time and then verified that it is stable (VERY important. Do NOT cut corners when testing and checking for stability. Follow the testing EXACTLY as outlined in the overclocking guide.) you can move on to setting up your memory for XMP operation.

Set the XMP profile for the memory, save the BIOS settings and exit to see if it will POST. If it does, great. If it will not then remove all the memory modules except the one in the A2 slot (For most boards. Refer to your motherboard manual for single or multiple population rules). Reset the CMOS again by removing the battery.

Now go into the bios and enable the XMP value with only the one stick of memory(RAM) installed.
Save settings and see if the system will POST. If not, go back into the bios, make sure the XMP profile is still enabled, if not, enable it and THEN find your memory voltage (DRAM voltage) setting in the memory section for your board. There are too many boards to list how to find this in every board so finding the DRAM voltage setting will be up to you to do the research on.

Figure out what the smallest increment it will allow you to increase the DRAM voltage by is. Usually it is something like .005v, but some boards will only allow changes in increments of .020v. Your board might use even different incremental settings than these. Whatever the smallest increment is you can change the DRAM voltage by, that is what you want to do.

So now that you've found it, increase the DRAM voltage by .005v or whatever the increment is that it allows. You can usually input the value manually and then hit enter or you can often use the plus or minus keys to make changes to the value in the DRAM voltage field.

After increasing the DRAM/Memory voltage by .005v, save the bios settings, exit the BIOS and see if the system will POST and boot with the new settings. If it will not, go back in and increase the DRAM voltage by another .005v, save settings and try again. Repeat this process until the memory will POST and boot at the XMP configuration but I recommend not exceeding 1.6v for most DDR3 (Low powered DDR3L not included) or 1.4v for DDR4. Most spec sheets indicate you CAN go higher than these values without damaging the memory, but they make no mention of damage to the memory controller NOR how that will affect thermals on your CPU, so for all intents and purposes on a daily driver machine I recommend not exceeding those values even later on as you begin to add more modules.

If you cannot get XMP to work by the time you've reached 1.6v for DDR3, or 1.45v for DDR4, no matter how many sticks are installed, it is probable that there is a problem with the memory, you have different unmatched memory or you have a motherboard problem. It's also possible once again that you will need to make adjustments elsewhere within the bios as well such as the VCCIO or System agent voltages. Ryzen is a whole other beast, so you may need to do some Ryzen specific research on what other settings might affect XMP operation and stability at higher speeds if you are working with that platform. The Ryzen calculator is a good place to start.

Once you get one stick to work at the XMP profile speed then power the system off again and install the other memory module in the B2 slot. Again, double check YOUR motherboard user manual to verify that A2 and B2 are the slots designated for dual module population. On most modern boards, it is.

Power on and see if it will POST/Boot. If not, you'll probably have to power off, remove that module, go back into the bios and increase the DRAM voltage one step further than you did for a single module. Save settings, exit, power off, install the second module and try again. Repeat this process until you either succeed or reach the maximum allowable DRAM voltage for your platform. If you have more than two sticks, you can use the same process for the addition of each stick or pair of sticks.

Once you get the system to POST with the new settings, it is HIGHLY advisable that you test the memory configuration using Memtest86 AND Prime95 using custom settings or Blend mode.




Testing your memory configuration to verify stability

Before you decide that this section is not worth your time or get lazy thinking you don't need to test because your system "seems" fine, with no obvious blue screens, freezing or restarting, let me make one thing VERY, VERY CLEAR.

ANY amount of instability in your memory configuration is enough to cause what are known as micro errors. This is a very miniscule error which, if it only happened one time might not ever be a factor but when it happens cumulatively in small increments over time, can result in complete and total corruption of your operating system, documents, game files, applications, music, movies, everything, to the point of being a complete and total loss with no chance of recovery.

Memory configurations that are not as close to 100% stable as possible are not a joke.
They WILL eventually cause widespread corruption of the entire file system.



Don't cut corners because it's simply not worth it. If you are unwilling to do the testing necessary to make sure the system is stable you should simply leave the memory at the XMP/A-XMP/D.O.C.P profile configuration and go on with life. IF you still want to overclock your memory beyond the profile configuration, then DO the testing. One day out of your life is not going to kill you but not doing it might make you wish you had died if you lose a lot of very important information and personal files that can't be replaced.


Memtest86


Go to the Passmark software website and download the USB Memtest86 free version. You can do the optical disk version too if for some reason you cannot use a bootable USB flash drive.

Create bootable media using the downloaded Memtest86 (NOT Memtest86+, that is a different, older version and is outdated). Once you have done that, go into your BIOS and configure the system to boot to the USB drive that contains the Memtest86 USB media or the optical drive if using that option.



Create a bootable USB Flash drive:

1. Download the Windows MemTest86 USB image.

2. Right click on the downloaded file and select the "Extract to Here" option. This places the USB image and imaging tool into the current folder.

3. Run the included imageUSB tool, it should already have the image file selected and you just need to choose which connected USB drive to turn into a bootable drive. Note that this will erase all data on the drive.



No memory should ever fail to pass Memtest86 when it is at the default configuration that the system sets it at when you start out or do a clear CMOS by removing the CMOS battery for five minutes.

Best method for testing memory is to first run four passes of Memtest86, all 11 tests, WITH the memory at the default configuration. This should be done BEFORE setting the memory to the XMP profile settings. The paid version has 13 tests but the free version only has tests 1-10 and test 13. So run full passes of all 11 tests. Be sure to download the latest version of Memtest86. Memtest86+ has not been updated in MANY years. It is NO-WISE as good as regular Memtest86 from Passmark software.

If there are ANY errors, at all, then the memory configuration is not stable. Bumping the DRAM voltage up slightly may resolve that OR you may need to make adjustments to the primary timings. There are very few secondary or tertiary timings that should be altered. I can tell you about those if you are trying to tighten your memory timings.

If you cannot pass Memtest86 with the memory at the XMP configuration settings then I would recommend restoring the memory to the default JEDEC SPD of 1333/2133mhz (Depending on your platform and memory type) with everything left on the auto/default configuration and running Memtest86 over again. If it completes the four full passes without error you can try again with the XMP settings but first try bumping the DRAM voltage up once again by whatever small increment the motherboard will allow you to increase it by. If it passes, great, move on to the Prime95 testing.

If it still fails, try once again bumping the voltage if you are still within the maximum allowable voltage for your memory type and test again. If it still fails, you are likely going to need more advanced help with configuring your primary timings and should return the memory to the default configuration until you can sort it out.

If the memory will not pass Memtest86 for four passes when it IS at the stock default non-XMP configuration, even after a minor bump in voltage, then there is likely something physically wrong with one or more of the memory modules and I'd recommend running Memtest on each individual module, separately, to determine which module is causing the issue. If you find a single module that is faulty you should contact the seller or the memory manufacturer and have them replace the memory as a SET. Memory comes matched for a reason as I made clear earlier and if you let them replace only one module rather than the entire set you are back to using unmatched memory which is an open door for problems with incompatible memory.

Be aware that you SHOULD run Memtest86 to test the memory at the default, non-XMP or custom profile settings BEFORE ever making any changes to the memory configuration so that you will know if the problem is a setting or is a physical problem with the memory.

After your memory will pass Memtest for 4 full passes, it is still not necessarily stable, but it is a good start and you should move on the the last phase of testing using Prime95. See, there IS a light at the end of the tunnel.







Final testing with Prime95

It is highly advisable that you do a final test using Prime95 WITH AVX and AVX2 disabled, and run a custom configured Blend test. You can also use the Blend mode option as is, but after a fair amount of personal testing, asking questions from some long time members with engineering level degrees that have forgotten more about memory architectures than you or I will ever know, and gathering opinions from a wide array of memory enthusiasts around the web, I'm pretty confident that the custom option is a lot more likely to find errors with the memory configuration, and faster, if there are any to be found.

Please note as this is rather important, if you prefer, or have problems running version 26.6 because you have a newer platform that doesn't want to play nice with version 26.6, you can use the latest version of Prime95 with the Custom test selected but you will need to make the following change.

In the bottom of the Torture test selection popup menu there will be some options for disabling AVX. I recommend that you do so, not because we are doing thermal testing and require a steady state workload (Which AVX wouldn't affect anyhow, as Computronix explained to me), but because the last thing you need during memory testing is having to worry about CPU temperatures, and you will, with AVX enabled.

So, uncheck the option for AVX2. That will un-gray the option for AVX, and uncheck that box as well.

Now open Prime95.

Click on "Custom". Input a value of 512k in the minimum FFT size field. Leave the maximum FFT size field at 4096k. In the "Memory to use" field you should take a look at your current memory allocation in either HWinfo or system resource monitor. Whatever "free" memory is available, input approximately 75% of that amount. So if you currently have 16GB of installed memory, and approximately 3GB are in use or reserved leaving somewhere in the neighborhood of 13GB free, then enter something close to 75% of that amount.

So if you have 13GB free, or something reasonably close to that, then 75% of THAT would be 9.75GB, which, when multiplies times 1024 will roughly equal about 9984MB. You can average things out by simply selecting the closest multiple of 1024 to that amount just to keep it simple, so we'll say 10 x 1024= 10240mb and enter that amount in the field for "Memory to use (MB)". We are still well within the 13GB of unused memory BUT we have left enough memory unused so that if Windows decides to load some other process or background program, or an already loaded one suddenly needs more, we won't run into a situation where the system errors out due to lack of memory because we've dedicated it all to testing.

I've experienced false errors and system freezes during this test from over allocating memory, so stick to the method above and you should be ok.


Moving right along, do not change the time to run each FFT size. Leave that set to 15 minutes.

Click run and run the Custom test for 8 hours. If it passed Memtest86 and it passes 8 hours of the Custom test, the memory is 100% stable, or as close to it as you are ever likely to get but a lot of experts in the area of memory configuration suggest that running the extended Windows memory diagnostic test is also a pretty good idea too.

If you get errors, (and you will want to run HWinfo alongside Prime95 so you can periodically monitor each thread as Prime will not stop running just because one worker drops out, so you need to watch HWinfo to see if there are any threads not showing 100% usage which means one of the workers errored and was dropped) then you need to either change the timings, change the DRAM voltage or change the DRAM termination voltage, which should be approximately half of the full DRAM voltage.

There are also other bios settings that can affect the memory configuration AND stability, such as the SOC, VCCIO and system agent voltages, so if you have problems with stability at higher clock speeds you might want to look at increasing those slightly. Usually, for Intel at least, something in the neighborhood of 1.1v on both those is pretty safe. There are a substantial number of guides out there covering those two settings, but most of them are found within CPU overclocking guides so look there in guides relevant to your platform.

As a further measure of assurance that your WHOLE configuration is stable, you can download and run Realbench for 8 hours. If the system freezes or fails when running Realbench with your full memory amount set, try running it again but select only half your amount of installed memory.

Hopefully by now you have memory that is working correctly, in the full amount you purchased, and at the advertised speed and timings. I am certainly no expert in the area of memory architectures or very advanced configurations, but hopefully this has helped you to some degree and if there are questions I might be able to answer that were not addressed here, feel free to start a thread and PM me with a link to your question. Good luck and happy gaming, or whatever it is you do on your machine.
 
Last edited:
Status
Not open for further replies.