Many discussions tried to make sense of Ryzen's Tctl temperature readings. Here is my interpretation of how CPU Tctl temperature reading and offsets (plural) work on a *stock* Ryzen 1800X and how this affects stability.
-
There are three (3) different *dynamic* offsets to Tctl, +0°C (aka base), +10°C and +20°C.
-
Offsets likely get chosen on the basis of CPU instructions usage! They get not seem to be based on power draw/current/voltage, CPU load/core percentage or temperature.
This means that a program like Heavyload will only induce the +10°C offset even when it draws the very same power and loads all cores at 100% as programs like P95, ITB/Linpack (AVX and non AVX) or Realbench induce the +20°C offset.
The software Statuscore demonstrates this easily, as it seems to use different load/instruction set for stress testing odd cores vs. even cores. When it stressed any number of even cores it induces the +10°C offset, when it stresses any number of odd cores it induces the +20°C offset.
- Offsets usually increase in immediate jumps, but decrease gradually. Sometimes it may not seem that way, because Tctl is right in between two offsets (0/10/20). This behavior is what leads to fans spinning up and down, especially when the "High Performance" Windows profile is used while some load is present. That the power profile has some minor impact suggests that there is some additional mechanism add work.
- Low CPU temperature with certain CPU instruction sets seems to be *vital* for stability even far below any thermal throttling/shutdown point!
I can repeatedly crash my CH6 into Code 8 (CPU) by increasing temperature towards 70°C using common stress tests. Last time I even allowed the sockets temperature to increase over 70°C, as a result I got a Code 0D (memory) right after soft-off -> soft-on. This happens at "Optimized Defaults" BIOS settings, aka stock everything!
The only time that I ever saw a CPU temperature shutdown was right from BIOS setup to a failed boot when no cooling was applied. Furthermore others and myself had their CPU running a lot hotter while higher voltages than stock values were applied.
I also noticed that Code 8 errors are far more likely to happen at higher temps even when the very same settings and stress tests are used. It's also noteworthy that a Code 8 crash does *not* turn off the mainboard. As a consequence around 1.0 V Vcore are still measurable at the CPU socket even when all means of coolings have failed (pulled pump and fan headers).
- The Asus CH6 CPU temperature sensor mirrored Tctl until BIOS 0902 and then was increased to Tctl+5 (at stock settings) afterwards. Fan/pump header control is usually based on that temperature reading. I assume that this is a deliberate try to keep Ryzen more stable after the many reports of Code 8 (0D/50) errors.
As a consequence of my findings I call BS on AMD's claim that the temperature offset in 1700X and 1800X are only meant to maintain consistent fan profiles compared to 1700.