I have a strange issue with a new system comprising of Ryzen 3700X and ASUS TUF X570 (WiFi).

I was able to boot the system, install Windows on an NVMe and then start and run Windows. After a couple of days of use the system shut down unexpectedly. From this point onwards I have not been able to fully boot any operating system. Windows on a known working HDD, the new Windows NVMe install, a Windows USB Recovery and Ubuntu on a seperate HDD all fail to boot.

Concerned that I had something loose I reseated every connector in the system. I then replaced the GPU with a different working GPU in a different PCIe slot. I reseated the memory, tried running with a both single sticks in different ports. I also used a different known working PSU, detached all external cables other than a single keyboard, DisplayPort, and internal NVMe/USB Boot Drive. The problem persisted.

Finally I managed to run Memtest86, on the default configuration the tests would run for a few seconds before creating a stream of errors and ending due to too many errors, hanging, or resetting the system. Often the errors identified a single CPU (14) as the issue.

I then ran Memtest on single CPU mode, this passed fine for all cores 0-13, but 14 and 15 always hung immediately. My BIOS allows the CPU to run in 2, 4, 6 or default(8) core mode, after selecting just two cores I can again boot and run the OS.

I assume these issues are pointing to a chipset issue, without swapping the motherboard or CPU, is there a way to determine which is at fault? How much does the motherboard take part in core selection and memory management on such a system?

  • 1
    The memory interface is entirely in the CPU. If you have memory errors from specific CPU cores then the CPU is defective. – Mokubai Nov 26 '19 at 12:10
  • If you're correct that seems to be a incontrovertible reasoning. Could you add that as an answer, do you have any references? I think I should highlight some details of the failure: Memtest allows one to choose the cpu on which the test runs. Running on cores 0-13 passes without errors, cores 14 and 15 hang immediately, there are no errors reported as the application is hung. Running with multiple cores creates errors, then a quit, reset or hang. – mfurseman Nov 26 '19 at 16:23
  • I believe the Memtest I was running is also using UEFI, could a firmware bug in the bios cause these errors in that case....? – mfurseman Nov 26 '19 at 16:29
  • I would be surprised at a firmware bug that specific, but it could be worth checking for updates. I've posted an answer explaining why I think this is a CPU core defect. – Mokubai Nov 26 '19 at 16:54

Your testing points very strongly towards a damaged CPU core. Not the entire processor or even motherboard, a specific core. Either it has an address or data bus fault and it simply cannot properly access RAM.

The reason I say that is because you mention CPU 14 & 15 causing Memtest to "hang immediately". If it were a motherboard fault then I would expect no cores at all to work.

The memory controller on modern systems is built directly into the CPU package. It passes through the motherboard directly to the memory sticks. If the motherboard had a memory fault then it wouldn't matter which core was accessing it, they should all get errors as the actual memory bus is common to all cores.

The second damning thing is that it is cores 14 and 15. The 3700X is 8 cores and 16 threads. So one core with a fault will affect two threads. It's not that only one thread is affected, it's both. That core itself likely has a fault, not just the thread logic around the core.

The fact that other cores are fine shows that the memory controller works and is "good", as is the internal inter-core bus within the CPU package. That specific cores do not function shows a worrying fault on those specific cores. It might be a timing problem within the CPU (cores further from the memory controller having a problem) that could be fixed with a firmware microcode update (but I doubt it), or it (most likely) is a permanent physical fault.

The erratic behaviour when in multi core mode is simply the program shuffling randomly across cores, it's fine on the good cores, but program or data errors occur on the bad ones.

To show the structure of a modern computer below is the general arrangement of an AMD chipset system taken from Guru3D. Notice that the CPU has become the true "core" of the system, with the memory and graphics being directly connected and the PCH relegated to handling various external devices. Modern CPUs have a lot more integration than they had 20 years ago.

enter image description here

  • Thank you for your excellent answer. – mfurseman Nov 26 '19 at 18:46

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.