CPU Speed tries to keep the CPU as cool as possible without affecting system performance by adaptive throttling using ACPI.
Program is distributed as ZIP package: download to temporary directory and unpack to destination folder. ACPI <=2.0 required. See below for download link(s).
Following ones are the download links for manual installation:
CPU Speed v. 20060201 (1/2/2006) | Readme/What's new |
CPU..
What is this?
This is a simple CPU speed adjust app to use with ACPI 2.0 driver for eCS.
I have been using AMD 64 on windows for a while and was in love with cool & quite feature. When there is no activity, CPU speed is dropped to minimum, and when there was work to be done, instantly it pushes the processor to it's best. This let the processor run very quietly by not heating up the processor thus letting the system turn down the CPU cooler fan.
ACPI 2.0 for eCS gave a few ways to control certain CPU features, such as up time, or throttling via ACPI APIs. THe ACPI toolkit distro had a sample utility to control the CPU speed manually. It was quite nice, but I had to run the app manually with arguments everytime I wanted to change my processor's speed. That's not convenient.
So, I created this to automatically control my machine's processor speed in my way.
VERSION
1.4 20060226 Added another argument to specify the throttling interval. Default value is 200ms, and you can specify from 10ms to 1000ms. Another addition is to add an exit exception handler. So from now on, the CPU speed is set back to 100% on exit. (that is if you press ctrl-c or program is exited by the system with DosKillProcess or other means that invokes the exception handler.) Now the shutdown is performed at CPU's max speed..:)
1.3 20060107 Added command line argument to specify min and max value for CPU speed
1.2 20051229 Added CPU detection code to use first CPU detected instead of fixed value of CPU0 for throttling. Some systems seems report their processor number from CPU1, not from CPU0. (Thanks to Peter Weilbacher for pointing this out and help for the fix)
1.1 20051228 Fixed the code to be more flexible
1.0 20051223 Initial Release
Installation.....
Unzip the file, place the EXE file in any directory, and execute the app, minimize and forget about it.
Usage.....
For normal use, just run CPU.exe. It will run with default values.
If you want to specify some of the arguments,
cpu.exe [min] [max] [interval]
Where min, max is int value from 1 to 100, (of course, min has to be smaller than max) and 50~1000 for interval. Intercal value is in ms, so if specifies how often the system will try to query for system status, and take action if necessary. (200ms seems to be quite nice, but there are certain cases longer/shorter interval may be necessary.) Smaller interval may give a more snappy speed switching, but at the price of more frequent speed switching.
Example
If you want to limit the min/max range of throttling, run CPU.exe with min and max (option) value.
ex 1) cpu.exe 50
Above specifies to run cpu.exe with 50% minimum speed for throttling. Thus, your CPU speed will vary between 50% and 100%.
ex 2) cpu.exe 50 80
Above specifies to run cpu.exe with 50% for minimum speed and 80% for maximum speed. In this case, your CPU speed will vary between 50% and 80%.
ex 3) cpu.exe 50 50
Above specifies to run cpu.exe with 50% for minimum speed and 50% for maximum speed. In this case, your CPU speed will be locked to 50%.
And if the min and max value given is out of range, CPU.exe will use default values.
ex 4) cpu.exe 20 80 100
Above specifies to run cpu.exe with 20% for minimum speed and 80% for maximum speed. In addition, it specifies to query the system status every 100ms.
Requirements.....
- eCS 1.2 with ACPI 2.0 installed
- CPU supporting throttling feature, such as intel Pentium 4 revision E and above.
Added Features
- Detects all available throttling steps supported for your CPU and uses all steps.
- Modified boost value.
- When shift occurs, it tends to shift down slower than before.
- Should work with any CPU with throttling features.
Restrictions.....
- Tested on only intel Pentium 4 2.8E processors. (One with 1MB L2, known as Prescot)
- No UI.
How it works.....
- App gathers current CPU usage via DosPerfSysCall() every 200ms (or value you specifed), and when it reaches certain threshold, shifts up or down the working speed to next or previous step.
- Tries to not switch CPU speed too often, by using simple average CPU usage value comparision.
- When CPU speed is shifted, it waits additional 100ms to avoide reshifting too often. (like going back and forth 50%->75%->50%) => removed. fixed the logic to minimize unnecessary speed shifts.
- When there is sudden demand for CPU power, speed is shifted more than 2 steps to give instant boost in performance.
Known Issues.....
- As the app checks for CPU usage every 200ms or your specified value, you will notice some performance lag before app can actually shift up/down the machine speed.
- Though you can specify what ever the value you like for min and max value, CPU.exe will determine the steps to be used, since not all CPU can adjust their speed in 1% increment. Thus, in my case, I can use 15% for min value, but it will be translated into 12.5% internally for the CPU and resulting speed will be 12.5%. (That's 1/8 th of the full speed) But when I specify 27% for min speed, I will see 25% as actual min speed. (That's 2/8 th of the full speed.) So if you want to specify a higher min value, watch the startup output of CPU.exe, and use the values displayed.
- I figured from the ACPI documents, that OS/2(eCS) ACPI package gives 8 step of CPU speed, but the step detection is not removed since I am not sure how other CPU should behave.
To Do List.....
- UI? Maybe..but my idea was to make a small shoot and forget application for controlling the CPU. :)
- Speed sampling resolution modifier? Maybe..This can be useful.
- More helpful output. Well, I try to make this as small as possible..:)
- Straighten out the text output.
- Make the EXE more smaller..:)
- Battery detection to limit the max speed when running on battery for laptops.
Other.....
Built with OPEN WATCOM 1.4
eCS 1.2 + latest updates = 1.25
ACPI 2.0.6 latest
Contact:
calmssea (at) gmail (dot) com
2006 02 26 Korea |
hobbesarchive.com/Hobbes/pub/os2/util/cpu/CPUSpeed_1-4.zip | local copy |
This work is licensed under a Creative Commons Attribution 4.0 International License.
Comments
Martin Itubride
Sun, 24/11/2024 - 13:40
Permalink
New Link: https:/
Add new comment