Measuring the User For CPU Frequency Scaling 190
An anonymous reader writes "The Empathic Systems Project a Northwestern University demonstrate up to 50% power savings by controlling CPU frequency scaling based upon the end user. They measure the user with eye trackers, galvanic skin response, and force sensors to find a CPU frequency that the user is satisfied with.
They are currently studying user activity and system performance on mobile architectures, specifically the Android G1 phone."
Re:Waste of Time (Score:5, Interesting)
Except, this technology is NOT for computing applications, but for mobile applications - e.g., a phone.
For a phone, you do not want background processing tasks - they force the processor to stay "awake" and drain the battery very quickly. Even a simple task that wakes the CPU up every second will easily cause battery life to diminish from the 2+ weeks standby to a few days. (Take your battery capacity and divide it by the standby time - you'll find you have around 2-3mA to play with, which is just enough to maintain the radio connectivity).
Mobile processors have a technique known as DVFS - dynamic voltage and frequency scaling. The goal is to keep the voltage as low as possible (power consumed is proportional to voltage squared), which may mean you run the CPU at a lower frequency. There's a bit of overhead in switching frequencies, including having to ramp up core voltages and adjusting clocks, waiting for them to stabilize, etc.
The trick though, is to realize when the user really doesn't care for speed, and thus keep the CPU in a lower frequency (e.g., playing music), versus the user is actively doing stuff, and it would be desirable to have it finish as fast as possible (e.g., browsing the web) so while the user ponders, you can put the CPU into a low power state immediately, versus keep it at a slow clock and have the user wait. Also, you have to figure out when the user is doing something that really is requiring a lot of CPU power (playing movies), so you have to bump the speed up and hold it there, and not at the first instance of idleness, drop back down.
Basically, having this feedback ltes you find out what is going on - is the user not caring, and thus you should pick the slowest speed that'll get things done? Is the user actively engaged in the device, but the usage is bursty, so you should go into a low power state after the processing is done, or is the user doing something that requires processor, and dropping down wastes power due to overhead?
Re:so what this means is? (Score:2, Interesting)
All programs/OSes should work perfectly on hardware made in ~2003, many people still have these (or older) computers, especially if they live outside of high speed internet access, or aren't very computer literate.
Re:Overhead? (Score:5, Interesting)
Re:Rent costs (Score:3, Interesting)