Flying Fox wrote:
At least what have been reported and speculated on. Although this R-HT thing may be completely different from what we imagined in the first place.
This problem doesn't really have anything to do with R-HT though. At all. It's a timing problem that has to do with how the TSCs on a dualcore processor aren't sync'd. This can cause problems when a thread is moved from one core to another.
The crux of this really comes down to the problem that there isn't any reliable way to get a high-precision, high-accuracy timer on Windows. Depending on your windows boot switches and hardware combination the HAL might actually be using anything from the TSC to some PIC off the PCI bus on the motherboard.
Furthermore, as side issue that helps explain the situation in this thread: ttp://techreport.com/forums/viewtopic.php?p=493275
, The Windows API function that microsoft suggests developers use is generally good at working things out the differences between the TSCs problem, but due to some flaws in AMD's dualcore processor implementation it still didn't work out right. That's why one of the fixes was to use the /usemptimer switch, so that Windows wouldn't use the TSCs and instead use the ACPI PM timer. This isn't as precise or accurate though. Another way to work around it would be to not use the particular power management scheme that was the primary culprit behind the drift (the C1 state)
Here's the problem that the "Dual-Core Optimizer" attempts (does?) fix: Some games just use the RDTSC
instruction to read the TSC. What that means though is that, unlike the Windows API calls, there is NO accounting for the drift between the TSC should the thread move to the other core. That's clearly a problem and non-ideal.
This AMD thingie claims to sync the TSCs so that this isn't a problem. How the software actually does this, I'm not sure. Perhaps it forces the two cores to transition between states in lockstep so the drift is similiar/identical, perhaps it has some other timer match the two every now and then, perhaps both of these approaches together. Maybe something else entirely. I really don't know, and AMD doesn't really give me anything to go on other than sheer speculation.