Here's an interesting test:
I decided to run Prime95 on my Quad and set it up like this:
By running it on 3 of the 4 cores, the load is at 75% but the processor is allowed to automatically and continuously move the processes around to whatever core it likes. The cpu seems to balance the load on the first pair of cores based on data coming from the DTS temperature sensors. It then balances the rest of the load on the other pair of cores based on temperature data coming from that pair of sensors. Because a Quad is two independent dual core processors, it's not designed to balance the load equally on all 4 cores based on equalizing the temperature. This partially explains why you can end up with different temperatures on different pairs of cores.
I compared power usage with Prime running on core0/core1 to Prime on core2/core3 and there wasn't any significant difference. I think the big reason why cores run cooler is because of the quality of the core to IHS solder job and the resulting heat transfer away from the processor.
The CPU Usage graph shows core0 and core1 to be well balanced which is reflected in their core temperatures always being close together from idle to full load. Core2 and core3 show a significant difference. In order for the cpu to balance the data coming out of the DTS for these two, it has to put most of the load on core2 and about half as much on core3.
The DTS data says that core2 is running cooler and core3 is running hotter so the processor automatically reduces the load to core3 when it can. If you run Prime on all 4 cores at the same time then the processor can no longer balance the load since all cores are at full load. The result for me is that at around 60C, core3 reports that it is running hotter than core2 when all 4 cores are at full load but this may not be the real truth.
At higher temperatures where these sensors are fully calibrated and accurate, core2 and core3 report the exact same temperature. Core0 and core1 also report the exact same temperature though the temperature they report is different than the other core pair. This is likely due to heat transfer issues.
If these Quad cores were built from scratch and the heat transfer was equal for each individual core then temperatures should be very similar for all 4 cores at load. The problem is they're not. Intel just joined two different dual cores together so you end up with different core temperatures on both sets of cores based on how well the heat is being transferred from the individual cores into the IHS. Heatsink and IHS squareness and mounting is also going to play a part in this.
You can run this same test on a dual core by only running one instance of Prime95. If the Processor Affinity is set up in the Task Manager so it is allowed to run on either core then you should see the same balancing based on temperature data coming from the DTS.
What if you combine the above variables with the fact that these sensors are not 100% accurate. You can see that there might be a problem or two with this automatic balancing mechanism especially if you're water cooled and your full load temperatures are far away from TjMax where these sensors are calibrated and most accurate. If a core reports that it is running cooler then it will get a bigger slice of the load whether it needs it or not. This helps explain why perfectly balanced temperatures on a Quad is impossible.
Just a theory, of course.
Edit: And theory 2 is that Intel deliberately sets a different TjMax in the second set of cores. 95C for core0/1 and 100C for core2/3 makes some sense. If you believe that is what's going on then you can use the latest versions of RealTemp and set:
TjMax2=1
TjMax3=1
within the RealTemp.ini file to give those two cores a boost up to 100C.
Bookmarks