VOGONS


Reply 102 of 153, by kalohimal

User metadata
Rank Member
Rank
Member

Finally received these in the mail today from eBay. Will be testing features newly added for the C3 and checking some reported bugs on Athlon XP-M. 😊

IMG_20200726_144054.jpg
Filename
IMG_20200726_144054.jpg
File size
1.61 MiB
Views
391 views
File license
Fair use/fair dealing exception

Slow down your CPU with CPUSPD for DOS retro gaming.

Reply 103 of 153, by kikendo

User metadata
Rank Member
Rank
Member

Hi there,

First of all thanks for this tool! I have used it on many machines with brilliant results. I feel so far like the best one to use it with was a Pentium 4, I could get really good results on old games that don't even work on even older hardware!

Anyway I just got a K6 233 MMX based machine, and I am having trouble with CPUSPD.
First of all, it does not let me throttle. Says something about ACPI in BIOS. I see no such setting.
Second and most important, usually I just use the Cache Disable feature. It seems like when I do that, I see no change in the game's speed at all. looks full speed.
if I go to the BIOS and disable internal and external cache, I get proper slow speeds. But not with CPUSPD.

Any clue about what could be happening here?

Reply 104 of 153, by kalohimal

User metadata
Rank Member
Rank
Member

Hi kikendo,

Thanks for the feedback! May I know which socket 7/super socket 7 motherboard it is? Throttling relies on the availability of ACPI function in the south bridge hardware, so if the chipset is prior to 1996 then it might not have such feature (ACPI specification was released in Dec 1996, before that it was APM). First Intel south bridge that has ACPI is the PIIX4, which usually is paring up with the 430TX and later north bridges. Earlier chipsets like 430FX/MX/LX uses PIIX3/PIIX or even SIO as south bridge and those do not have the ACPI capability.

The cache disable for K6 is more puzzling though. The program uses a register called CR0 to turn the entire cache system on/off, and CR0 is universally available on all x86 CPUs starting from 386. It only controls the cache inside the CPU though, so if there are any external caches on the motherboard they are not disabled. So I suspect the K6 L1 cache is turned off, but there are still L2 cache on the motherboard that is enabled (K6 has no internal L2 cache). Could you run speedsys and post the result here please? From the memory throughput curve that it displays on the lower right, we'll be able to tell the status of the caches.

Slow down your CPU with CPUSPD for DOS retro gaming.

Reply 105 of 153, by kalohimal

User metadata
Rank Member
Rank
Member

Here are two pictures demonstrating the effects of the caches. In the first picture there are two steps, the first is the L1 cache and the second the L2 cache.

IMG_20200807_100737.jpg
Filename
IMG_20200807_100737.jpg
File size
1.19 MiB
Views
354 views
File license
Fair use/fair dealing exception

When cache system is off it will be flat.

IMG_20200807_104000.jpg
Filename
IMG_20200807_104000.jpg
File size
1.33 MiB
Views
354 views
File license
Fair use/fair dealing exception

Slow down your CPU with CPUSPD for DOS retro gaming.

Reply 106 of 153, by kikendo

User metadata
Rank Member
Rank
Member
kalohimal wrote on 2020-08-07, 02:15:

Could you run speedsys and post the result here please? From the memory throughput curve that it displays on the lower right, we'll be able to tell the status of the caches.

I will happily do that. Where do I get speedsys from?

You might be right about the cache, this computer spec mentions something like "2MB of SyncGraphics Memory", and I have no idea what that is. BIOS does have provisions to turn off "internal" and :"external" cache
I owe you the motherboard revision, will look next time I open it up.

Reply 107 of 153, by kalohimal

User metadata
Rank Member
Rank
Member

You can download Phil's benchmark pack and speedsys is included inside.

https://www.philscomputerlab.com/dos-benchmark-pack.html

If you have no idea what model your motherboard is, you can run CPUSPD p and let me know the results. It will list all your PCI devices including it's north and south bridges.

Slow down your CPU with CPUSPD for DOS retro gaming.

Reply 108 of 153, by kikendo

User metadata
Rank Member
Rank
Member

OK I downloaded speedsys and will test in a bit. Thanks!

kalohimal wrote on 2020-08-07, 16:35:

If you have no idea what model your motherboard is, you can run CPUSPD p and let me know the results. It will list all your PCI devices including it's north and south bridges.

Heres' the info:

Bus Dev Fn Device ID Subcls Description
--- --- -- --------- ------ -------------------------------
0 0 0 10B9:1531 6:0 Host Bridge
0 2 0 10B9:1533 6:1 ISA/LPC bridge
0 4 0 1002:4755 3:0 VGA display controller
0 11 0 10B9:5229 1:1 IDE disk controller
0 13 0 10B9:5237 12:3 USB serial bus controller

Reply 109 of 153, by kalohimal

User metadata
Rank Member
Rank
Member

It's ALi Aladin IV (M1531) north bridge with M1533/M1543 south bridge. It has an ISA/LPC bridge (10B9:1533) but no Power Management unit (10B9:7101), so yeah it has no ACPI support. It is strange though, as according to ALi datasheet the M1533/M1543 should have a PM unit inside (was there some text missing?). Perhaps yours is a very early revision of the chip. Without the PM unit, it is not possible to throttle as the required hardware isn't there.

If in the BIOS you have options to turn off "internal" and "external" cache, then yeah I would say it is the external cache which remained enabled that came into play. You could disable external cache in the BIOS, and then use CPUSPD to disable L1 cache. Once you try that, I believe you'll see the slowdown.

Last edited by kalohimal on 2020-08-08, 03:02. Edited 1 time in total.

Slow down your CPU with CPUSPD for DOS retro gaming.

Reply 110 of 153, by kikendo

User metadata
Rank Member
Rank
Member
kalohimal wrote on 2020-08-08, 02:13:

If in the BIOS you have options to turn off "internal" and "external" cache, then yeah I would say it is the external cache which remained enabled that came into play. You could disabling external cache in the BIOS, and then use CPUSPD to disable L1 cache. Once you try that, I believe you'll see the slowdown.

Alright I did the tests, and it is totally related to that external cache!
With nothing disabled in BIOS and running "cpuspd cd", speedsys gives me a 486DX-50-like performance
With BIOS disabled cache, both internal and external, I get something like a 386DX-50
With only external cache disabled in BIOS, and running cpuspd, I get the same 386DX-50 like performance!

So it's that external cache. Weird, but I have many options and that's great! This is an interesting machine. Unfortunate that I cannot turn that external cache on or off via software though, because it means I have to fiddle with the BIOS to run some really old games and that sucks. wing commander still runs too damn fast even with all the caches off 🙁

As for the power management, I have no idea why it isn't there. There's some power management options in the BIOS, but nothing I can really identify as ACPI. Another funny thing I noticed is that this has a momentary switch to power on, but it's an AT PSU.

Thanks for your help figuring this one out and as I said keep up the great work!

Reply 111 of 153, by kalohimal

User metadata
Rank Member
Rank
Member

Earlier computers prior to ACPI (Dec 1996) has APM, but that has no throttling function, only functions to suspend the PC. Controlling external cache would not be trivial as, unlike internal CPU cache where everything is standardize, there are many different types of chips with each type of chip needing their own custom programming.

Glad that everything has sorted out. I'll be releasing a major revision to this program soon (it's currently in testing phase), so please do look out for it. 😊

Cheers.

Slow down your CPU with CPUSPD for DOS retro gaming.

Reply 112 of 153, by kalohimal

User metadata
Rank Member
Rank
Member
zyzzle wrote on 2020-07-11, 09:29:

I've tested v 1.4 of CPUSPD on my i5 5200 and disabling L1 cache works, and fidvid setting kind of works, I only can change from f1500 to f1900 with stable result. All other values are impossible. It appears multiplier is locked on my CPU at either 21x or 25x.

Attempting throtting on my core i5 gives immediate sigfault. Disabling L1 cache works, but then give sigfault without reporting status. The speed of the system is reduced to a 386 level with L1 cache disabled. It is impossible to disable L2 cache on the core i5, it would seem, as option -c2d slows the system down to the level of option -cd.

Will it be impossible to add throttling to Intel Core family cpus? If I may help in any way by sending you reports of my southbridge chipset, or any other debug info, please ask. By the way, the old utility FDAPM from way back in 2009 actually does support thottling, at least in my CPU / motherboard. It gives 8 options of throttling available. Using setting /SPEED 1 seems to be identical to 87.5% ODPM throttle setting. Paradoxically it seems to allow throttling in Intel core family, at least on my Lenovo core i5 laptop!

Falcosoft wrote on 2020-07-11, 11:52:

Unfortunately CpuSpd exited with a sigsev fault when I tried to use it for setting throttle with t parameter.

In today's testing and debugging session for the next version of CPUSPD, I found out why. L2 cache control is only available for P6 family up to Core 2 only. Core ix CPUs and beyond do not have such msr, and that's what caused the sigfault. In the case of throttling, I've rewrote the entire portion of code and it should now handle protected mode memory mapping/paging properly (it's what caused the sigfault, as in some cases physical memory was not properly mapped). Tested on my MSI B75A-IE35 with an i5-2310, and now throttle, cache control, odcm, multiplier are all working fine. Will need you guys to help confirm when it's ready for release. VID couldn't be set via the conventional Speedstep msr though (it will hang the system). With a G3260 (4th Gen Core i processor, Haswell), both FID and VID can't be set using Speedstep msr. Will look into adding performance state control for both Intel and AMD K10 in the future.

Slow down your CPU with CPUSPD for DOS retro gaming.

Reply 113 of 153, by kikendo

User metadata
Rank Member
Rank
Member
kalohimal wrote on 2020-08-08, 02:59:

Glad that everything has sorted out.

Yeah thanks for your help!

I noticed a really unusual thing.
I also have a PII-400 machine, and:
- With cache off, the PII-400 is much slower than the K6-233 (5.x vs 11.x rating on speedsys)
- I can use throttling instead to lower the speed to like a 20.x rating, but then games are really not smooth/playable

I'm surprised the faster CPU is slower without cache than the slower CPU. But also wonder and I bet you can tell me, why throttling performs poorly compared to disabling the cache. Like using the PII-400 at the 5.x rating is smoother than using it at the 20.x rating with 1/8 throttling.

Reply 114 of 153, by kalohimal

User metadata
Rank Member
Rank
Member

Hmm, bad implementation of the BIOS can be a contributing factor. For example, I have several boards with the same VIA VT8237 south bridge. The one from MSI has very sluggish response on the keyboard/mouse when throttled, while the rest are silky smooth. So it must be the BIOS since the hardware is not an issue (many DOS interrupts are serviced by the BIOS). PII's south bridge is PIIX4 and it's the first Intel south bridge that supports ACPI, so I'm not surprise if there are quirks here and there.

Btw DOOM benchmark is better and more reliable than speedsys, and it reflects the real world gaming experience. I use speedsys benchmark only as a rough guage and checking at the cache status.

Slow down your CPU with CPUSPD for DOS retro gaming.

Reply 116 of 153, by kalohimal

User metadata
Rank Member
Rank
Member

That I can't answer you, not unless spending lots of time studying the 2 architectures in detail. Simple guess is perhaps the PII is more cache dependent than the K6. Other factors like memory bandwidth also comes into play.

Slow down your CPU with CPUSPD for DOS retro gaming.

Reply 117 of 153, by kalohimal

User metadata
Rank Member
Rank
Member

CPUSPD version 2.0 released

This is a major revision release as there are many code rewrites and many new features and new CPU support added.

  • Added VIA Esther support for both multiplier and fidvid control.
  • Added L2 cache, I-cache, D-cache, and branch prediction control for VIA & WinChip CPUs.
  • Added L1 cache, code cache, data cache, and branch prediction control for Intel Pentium & MMX CPUs.
  • Added L1 cache, L2 cache, and data prefetch control for AMD K6 CPUs.
  • Added voltage display for vidfid control.
  • Added CPU core and package temperature display for Intel and VIA Esther/Nano CPUs.
  • Restructured and tidied up some portions of program.
  • Fixed issue with acpi throttling causes GPF on some motherboards.

New commands added:
cid - disable instruction cache.
cie - enable instruction cache.
ebd - disable branch prediction.
ebe - enable branch prediction.
edd - disable data prefetch.
ede - enable data prefetch.
it - show CPU core and package temperatures, if it has built-in digital thermal sensor and package thermal sensor.

The program now incorporates all functions that are available in Setmul, plus more. Since it is getting rather complicated, I've made a table showing all the functions available per CPU models.

cpuspd support matrix.jpg
Filename
cpuspd support matrix.jpg
File size
341.96 KiB
Views
221 views
File license
Fair use/fair dealing exception

I've spent about a week testing it on various platforms that I own and it is relatively stable.

Please download from the first post.

Plans for next revision: add P-states support on K10 and Core ix, per Falcosoft and zyzzle suggestions. Add support for Transmeta TM5800 (HP Thin Client T5710).

ACKNOWLEDGEMENTS
Special thanks to the following Vogons forumers for their help in testing the program:
johnnycontrario, SaxxonPike, JazeFox, Bancho, red-ray.
Special thanks to the following Vogons forumers for their help in suggesting new features and sharing their knowlege:
Falcosoft, PARUS.

Slow down your CPU with CPUSPD for DOS retro gaming.

Reply 118 of 153, by johnnycontrario

User metadata
Rank Newbie
Rank
Newbie

Thanks for creating such an excellent utility! Now I'm kicking myself for throwing out so many of my older computers.

I have a couple of laptops with 2nd gen and 4th gen Core ix processors if you need help with testing.

Reply 119 of 153, by kalohimal

User metadata
Rank Member
Rank
Member

Thanks for the kind offer johnnycontrario. No worries I do have a few socket 1156, 1155, and 1150 boards lying around, just that they have the cheaper Pentium Gxxxx CPUs, which will do for testing.

However if you have older laptops that have CPUs prior to Core ix/Athlon II, e.g. Atom or Pentium-M or XP-M, I would be interested to know how the program runs on them, as I do not have any of those.

Slow down your CPU with CPUSPD for DOS retro gaming.