it's better power wise as well; it's a bit complex to explain, but it's better to execute the code you need to execute at full speed, and then really quickly go idle, than it is to execute at a much lower speed. Maybe a simple example (I plucked these numbers out of the air, they don't represent any real cpu that exists) will help: Say you have a cpu that consumes 40 Watts at full speed, and 30 Watts at half speed, and 4 Watts when idle. You have something to do, lets say mp3 decoding of 1 second of audio, and that takes a full second at half speed, and one second at full speed. At full speed decode + idle, that is half a second at 40 watts (20 Joules) and half a second at 4 Watts (2 Joules); total is 22 Joules. At half speed decode, that is a full second at 30 Watts, so 30 Joules. So, what ondemand does would cost 22 Joules, while a "hit the exact frequency" governer would cost you 30 Joules.....