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.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.

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)
- Should work with intel enhanced speed step. 
- Throttling step is based on value acquired from my machine, 100%, 75%, 50%, 25%, 12.5% of full speed.
- No UI.

How it works.....
- App gathers current CPU usage via DosPerfSysCall() every 200ms, 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%)
- 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, you will notice some performance lag before app can actually shift up/down the machine speed. 

Contact:
calmssea (at) gmail (dot) com
2005 12 23 Korea