07-26-2010, 04:43 AM
Additionally, the problem is most pronounced on games that have especially high load on one thread, but low load on another. In PCSX2 there are two threads doing most of the work: the EE thread and the GS thread. If the GS thread is having an especially low workload as compared to the EE thread, SpeedStep will be much more likely to throttle the CPU's overall speed.
Now here's the kicker. The work load of the GS is directly proportional to the speed at which the EE can feed it geometry and texture data. When Speedstep starts to throttle the CPU, the EE thread load stays near 90-99%, but its effectively running slower and thus feeds the GS less work, so the GS thread also stays around whatever low workload it has (perhaps 15-40%, for example). The Speedstep sees that only 60-70% of the total CPU resources are in use, and throttles down even more. Rinse and repeat.
This is why PCSX2 "looks" like its adjusting its workload to the reduced CPU speed. Its still trying to work as fast as it possibly can, but the GS thread is going to look ever more increasingly "idle" to the dumb ***** CPU so long as it keeps throttling the EE's speed.
It is very much a design flaw in Speedstep that I think has been mostly remedied in the i5/i7 chips, thanks to their 1/2 thread turbo boost feature.
Now here's the kicker. The work load of the GS is directly proportional to the speed at which the EE can feed it geometry and texture data. When Speedstep starts to throttle the CPU, the EE thread load stays near 90-99%, but its effectively running slower and thus feeds the GS less work, so the GS thread also stays around whatever low workload it has (perhaps 15-40%, for example). The Speedstep sees that only 60-70% of the total CPU resources are in use, and throttles down even more. Rinse and repeat.
This is why PCSX2 "looks" like its adjusting its workload to the reduced CPU speed. Its still trying to work as fast as it possibly can, but the GS thread is going to look ever more increasingly "idle" to the dumb ***** CPU so long as it keeps throttling the EE's speed.
It is very much a design flaw in Speedstep that I think has been mostly remedied in the i5/i7 chips, thanks to their 1/2 thread turbo boost feature.
Jake Stine (Air) - Programmer - PCSX2 Dev Team