marshal said:
skeezix said:
That is in fact what happens more or less .. if a pnd-file requests 200mhz (say), and that is allowed by the user, then the system downclocks, runs the pnd, and restores clock on exit. Sort of goofy if you're running 5 apps at once, but the user knows the risk of doing that
(ie: slowing down other apps, and the whole risk of running 5 apps at once, etc.) Anyway, yeah, we do that
When the LCD is closed, we turn off the screen (but leave clock alone in case you're burnjing thrugh mp3s, say.) But if your mp3 player mneeds only 100mhz, set up a pnd for it that requests that, and bam, every time you run your mp3 player, you're running at 100mhz; close the lid, and you're talking pretty low consumption
Theres lots of options..
jeff
I am not a specialist but I don't understand the point of "per application" underclocking on a ARM chip.
First this seem quite complicated because people will run more than one application at a time.
Furthermore I don't really understand why this would be a good way to do power management. I always thought than those ARM devices could handle power management "by themselve" (I am sure there is a software side to it but not "per application").
The idea would be to run the current operation as quickly as possible and then go to sleep. From what I understood you would be better off finishing your task as fast at possible (or should I say in the most effecient performance/power usage mode).
@marshal
I agree with your thoughts.
Its better to use your device in the most effecient performance/power usage mode.
But that hardly means making your device run faster (causing system to use more battery power) to get the job done quicker, in fact more often the opposite.
I tried this on my old laptop (Turion X2) high performance vs power saver for converting video format (40min prison break episode divided into 2parts).
I used battery bar to track usage, and ofcourse high performance finished first but in the end i had 68% left (32% used).
I quickly switched to power saver and converted the other 20min part, when it finished i had 43% (25% used).
Yes I know thats shockingly bad figures, but I used that little exercise to determine how I should use my laptop to have more playtime on the move.
And yes what happened on x86 Vista can only partially imply the system for ARM, and in no way represent it.
I also agree:
And if you have an app that clocked your system to 600MHz (for instance) then opened another which downclocked to 300MHz, this would create an anamoly.
Cause if the first app was playing/unpaused it may start to freeze. And when you switched back to that app, it would be very slow then freeze the whole system.
Even if it didnt freeze the system, your Pandora would be running so slow which would take all the fun out of it.
@skeezix
But it is an interesting concept.
I was pondering about this the other day and trying to figure out a way to bypass the problem.
What can be done is that all apps can be coded (by author/tester) to run change the clock frequency to what is needed (rounded up), as you said.
But make the system sophisticated enough, that if the first app (over/down)clocks then another app is opened which wants to downclock further; the system chooses the higher clock frequency to prevent stopping and slowing of either apps.
This would mean switching between the two (multitasking) is much smoother and probability of crashes is lower.
And if the first app (600MHz) is closed but the second (300MHz) is still running, the system downclocks automatically to 300MHz.
The OS may be also loaded with a set of higher-order settings which prevent down/overclocking the system to certain limits (eg min250, max650).
And if an app tries <249MHz it auto sets to 250MHz instead, or if it tries +651MHz it auto sets to 600MHz.
Thus, OS developers can create a method where hardware damage is minimized.
But also have an option where the user overrides the system and manually changes the clock speed (within the 250-650 limit).
This way if the app dev stuffed up and coded the app to clock the system at 500MHz and the app is actually more demanding and causing the system to slow down (tortoise multitasking):
There is a way to fix it. The user can either close other apps OR overclock the system (eg to 600 or 650MHz) OR both.
And after the user has done with the app and closes it, the user can go back to settings and change the dynamic-clocking from manual (user) to auto (app coded).
I like to think this way you get to have your cake and eat it!
Because it means your device automatically gives you the best power effeciency without exploiting your experience (ie less crashes and smoother, refined multitasking).
It also means you have freedom with your device.
But the freedom is dumb-proof, preventing you from frying your device
All the figures (ie 250-650MHz) are hypothetical, just used to illustrate my point.
Would this be too difficult to implicate?
What are the disdvantages to such a system?
Is something like this already implimented (on Pandora or another system)?
PS I begin to see why iOSX doesn't have true multitasking.
Device was made dumb-proof so user experience is always smooth since hardware wasn't 100% upto scratch when iPhone was first released.