Falcosoft wrote on 2025-06-20, 07:14:I'm not sure 4th Gen ix has been thoroughly tested so far. The main problem must be the multi-core logic of Speedstep.
Transitio […]
Show full quote
DoZator wrote on 2025-06-20, 00:34:Why, when more than one core is enabled (or HT is enabled), it is no longer possible to change the multiplier to 4790K: […]
Show full quote
Why, when more than one core is enabled (or HT is enabled), it is no longer possible to change the multiplier to 4790K:
The attachment CPUSPD4C.PNG is no longer available
but when only one core is enabled, the multiplier changes correctly:
The attachment CPUSPD1C.PNG is no longer available
Is this the standard behavior for CPUSPD, or is there something else that needs to be configured? Thank you.
I'm not sure 4th Gen ix has been thoroughly tested so far. The main problem must be the multi-core logic of Speedstep.
Transitions to lower performance states are only possible if All cores gets the low p-state values. If only one core gets the lower p-state values in its MSR then the CPU core registers the request to the targeted operating point but the transition won't occur.
Since under DOS only the bootstrap processor is available by default, you can only set higher p-states than the values configured in the BIOS.
As the author wrote previously:
... in order to change multiplier, you need to start from low and change to high if changing only on one core. If you start from high and change to low, ALL cores need to be programmed with the new MSR value, if not, transition will not take place (this coincides with Falcosoft's findings in his comment). That in fact took a large chunk of my time when I was developing the program, as doing multiprocessor programming for DOS is not trivial.
The point is the author has written some magic to handle multi-core under DOS but it seems it is not fully working with 4rd Gen ix.
So when multi-core is enabled, you should test if you can set higher multiplier than set in the BIOS. If yes, then the problem is almost 100% sure is the same one as the above mentioned.
Thanks for the detailed explanation and tip. It really worked! I set the multiplier to "8" in the BIOS and added "CPUSPD m40" to the very beginning of AUTOEXEC.BAT. Now, Windows starts with a multiplier of "40" and allows me to change it to any value between "8" and "40", even in a multi-core configuration (with HT enabled):
The attachment CPUSPD2C.PNG is no longer available
In general, everything works correctly under Windows 98 and MS-DOS.
All that's left is to figure out a way to reset the multiplier to "40" under Windows XP (installed on the same PC, on a separate partition). CrystalCPUID, in principle, allows you to change the multiplier on a given processor (using the /Fxx parameter), but it hasn't been updated for a while, and it doesn't seem to fully support the 4th generation. It has some internal limitations that prevent the multiplier from exceeding a certain value (based on my rough estimates based on benchmarks, it's around "31"), even if you use the "/F99" parameter (which should theoretically increase the multiplier to its maximum allowed value). Unfortunately, I haven't found any other XP-compatible tools (CPUSPD doesn't officially support XP).