Reply
Thread Tools
Posts: 13 | Thanked: 18 times | Joined on Jan 2010
#81
It looks like there is some confusion as to why a minimum frequency of 500MHz would save power. So, let's begin CPU Power Consumption Learning Time with Zhentar!

There are 3 main components to CPU power consumption; 2 dynamic and one passive.

The passive component is Leakage. Leakage is electricity that manages to squeeze through the layers of insulators inside of transistors; it doesn't perform any useful work, but is unavoidable as smaller transistors often means the insulating layers are only a few dozen atoms thick. Leakage consumes [Voltage]^2 * [Constant] power while the processor is powered, regardless of the frequency of the processor, or what it is doing. (*There are actually some tricks here, though I'm not sure if the A8 uses them)

There are two active components. There is Switching Power, which is the electricity that flows across a transistor when it is switching from 'on' to 'off', or 'off' to 'on'. This guy is the important stuff, what makes the CPU go. The other component is Capacitance; specifically, the capacitance of wires. Yeah, in science class, or intro to electrical engineering, they probably didn't tell you wires are capacitive. Well, they are; if you want to send a signal down a wire, you have to fill it up with some electrons. Now, they aren't very capacitive, which is why you can totally ignore it in physics class, but in CPUs with things changing hundreds of millions of times a second, it starts to add up. Assuming a constant workload on the processor, capacitance consumes [Frequency]*[Constant] power, and switching consumes [Voltage^2]*[Frequency]*[Constant] power. For these parts of the power consumption, [Constant] varies quite a bit depending on what the CPU is doing.

So, now, the question at hand. 250MHz vs. 500MHz at the same voltage. Leakage power won't change at all, and Switching and Capacitance power will double; overall, the power will be somewhere close to doubled, but not quite (depending on how much leakage there is). But wait - that assumes a constant workload! That would mean the 500MHz setting is doing twice as much work, but thanks to the dynamic scaling we know there is not actually twice as much work to be done (if the 250MHz setting were maxed out, it would have jumped to 500MHz anyway). And this is where an important capability of the OMAP3430 comes into play - it can shut off entirely, sending leakage power to zero. So if there are 100 million cycles worth of work to be done during a second, the 250MHz setting will spend .4 seconds powered up, and while the 500MHz setting will use more power while it is running, it will only spend .2 seconds powered up.

Why doesn't Nokia set the minimum to 500MHz then? So why underclock at all, if it actually increases your power consumption? Simple: it allows you to reduce the voltage, and that makes a much bigger difference than having more idle time. It's only stupid to underclock if it doesn't allow you to reduce the voltage. What Titan has found is that the minimum voltage is affected by component outside of the CPU; this sets a minimum voltage regardless of the frequency of the processor. So what we want for the minimum frequency of the CPU is the highest stable frequency at that voltage, and no lower.
 

The Following 12 Users Say Thank You to Zhentar For This Useful Post:
Posts: 44 | Thanked: 5 times | Joined on Apr 2010
#82
@Titan
A funny thing just happend... i sms:a and the min_freq when´t from 500 to 250mhz... is it the same bug as when phone call drop to 250 from 500mhz?
 
Posts: 1,224 | Thanked: 1,763 times | Joined on Jul 2007
#83
This is well known, and even those who accept Nokia's word as gospel, should accept that. In the words of Nokia's engineer, Igor Stoppa:

"The highest stable frequency available for the currently set voltage yields the maximum efficiency."

So overclocking is completely irrelevant, and 600MHz is an arbitrary number. You set the voltage level you want to run (lower is better), and run the CPU at the maximum frequency possible with that voltage. We know that Nokia (and TI) think it is safe to run at 1.35V.
__________________
My repository

"N900 community support for the MeeGo-Harmattan" Is the new "Mer is Fremantle for N810".

No more Nokia devices for me.
 
Posts: 5,795 | Thanked: 3,151 times | Joined on Feb 2007 @ Agoura Hills Calif
#84
I have noticed that my N900 keyboard isn't lit as often as I would like it to be. I'm using the Titan smart kernel settings. Could that be causing the underlighting?
 
Posts: 1,751 | Thanked: 844 times | Joined on Feb 2010 @ Sweden
#85
Originally Posted by geneven View Post
I have noticed that my N900 keyboard isn't lit as often as I would like it to be. I'm using the Titan smart kernel settings. Could that be causing the underlighting?
Yes, that could be the cause of your volt setting. Try to raise it in the config file if it bother you to much.
 

The Following User Says Thank You to AlMehdi For This Useful Post:
tonism's Avatar
Posts: 20 | Thanked: 37 times | Joined on May 2010 @ Estonia
#86
When I heard that Samsung is about to release their Cortex A8-based 1 GHz (@ 1.0V) device I just had to make a copy of titans ideal kernel conf and try if I have any luck running that 500/850 MHz conf with no more than 1.0V

Unfortunatelly as soon as I've loaded my conf the device freezed and restarted.. So I guess Hummingbird really does have some architectural modifications

Anyways how does the ideal conf scale up the frequencies by default? 500 for idle and 850 for next step? Or is there 550, 600, 700, 750 and 805 aswell? I've never seen those frequencies with Conky :/

E: OK, off to test the lowest value possible for 850 MHz.. 47 (1.1875 V) seems stable at first look. Anyone knows a good way to test stability?

Last edited by tonism; 2010-05-03 at 13:29.
 
tonism's Avatar
Posts: 20 | Thanked: 37 times | Joined on May 2010 @ Estonia
#87
Two days testing and I've finally got myself a lowest possible stable configuration.

See the details below:
PHP Code:
        Nokia default    titan ideal    tonism starving
250 Mhz  1
,0750        
500 Mhz  1
,2000          0,9750         0,9625
550 Mhz  1
,2750          1,0125         1,0000
600 Mhz  1
,3500          1,0750         1,0125
700 Mhz                  1
,1625         1,1125
750 Mhz                  1
,1625         1,1250
805 Mhz                  1
,2000         1,1625
850 MHz                  1
,2000         1,1750 
And graph: http://tonism.2bit.ee/N900/starving850.png
And if anyone's interested, then the conf itself: http://tonism.2bit.ee/N900/starving850

But be warned -- it uses even lower voltages than titan's ideal conf. I strongly advise you to test if the ideal conf is stable before looking into that. This is the last stable limit for my device. No guarantees it will work with yours.

Edit: Changed file names to starving850. Reason: https://twitter.com/still_tonism

Last edited by tonism; 2010-05-05 at 12:19.
 

The Following User Says Thank You to tonism For This Useful Post:
Posts: 25 | Thanked: 2 times | Joined on Jan 2010 @ Prague
#88
I have question - is that file
/sys/devices/system/cpu/cpu0/cpufreq/ondemand/avoid_frequencies
depending on some kernel module , or setting ?
My kernel is titan's kernel @ ulv ...

Edit : afater some more searching - is this feautured only in 25 i have 24 from extras-testing

Last edited by calltrace; 2010-05-05 at 00:04.
 
automagic68's Avatar
Posts: 415 | Thanked: 161 times | Joined on Apr 2010 @ San Francisco, CA
#89
Originally Posted by tonism View Post
Two days testing and I've finally got myself a lowest possible stable configuration.

See the details below:
PHP Code:
        Nokia default    titan ideal    tonism starving
250 Mhz  1
,0750        
500 Mhz  1
,2000          0,9750         0,9625
550 Mhz  1
,2750          1,0125         1,0000
600 Mhz  1
,3500          1,0750         1,0125
700 Mhz                  1
,1625         1,1125
750 Mhz                  1
,1625         1,1250
805 Mhz                  1
,2000         1,1625
850 MHz                  1
,2000         1,1750 
And graph: http://tonism.2bit.ee/N900/starving.png
And if anyone's interested, then the conf itself: http://tonism.2bit.ee/N900/starving

But be warned -- it uses even lower voltages than titan's ideal conf. I strongly advise you to test if the ideal conf is stable before looking into that. This is the last stable limit for my device. No guarantees it will work with yours.
Can I do this with the minimum frequency at 250? and did you use ULV or XLV? I can edit the voltage values aslong as I have version 25 installed?
 
tonism's Avatar
Posts: 20 | Thanked: 37 times | Joined on May 2010 @ Estonia
#90
Originally Posted by calltrace View Post
I have question - is that file
/sys/devices/system/cpu/cpu0/cpufreq/ondemand/avoid_frequencies
depending on some kernel module , or setting ?
My kernel is titan's kernel @ ulv ...

Edit : afater some more searching - is this feautured only in 25 i have 24 from extras-testing
When I had titan24 kernel I disabled my 250 MHz from that exact file because it wanted to go back to 500 MHz after Phone app.

Now, after updating to titan25, I still have the same file with the same 125 and 250 MHz disabled, but I'm not sure if it's used anymore. My guess is that it is. But titan would be the one to know (or someone who have played around with it)

Originally Posted by automagic68 View Post
Can I do this with the minimum frequency at 250? and did you use ULV or XLV? I can edit the voltage values aslong as I have version 25 installed?
Sure, you just have to remove 250 MHz from /sys/devices/system/cpu/cpu0/cpufreq/ondemand/avoid_frequencies
Modify your minimum speed from my conf AND make a voltage profile to it since currently it begins from 500 MHz.

And my conf is based on titan ideal kernel-25. The ideal conf has even lower voltages than XLV. See more from http://wiki.maemo.org/Overclocking#t...s_ideal_kernel

It should also be noted that everything above 850 MHz acts as same as titan's ideal voltages. I do not use over 850 MHz myself and therefore published my conf as soon as I got it stable and running smooth
 
Reply


 
Forum Jump


All times are GMT. The time now is 04:48.