Active Topics

 


Poll: Do you think its possible to overclock the N900?!
Poll Options
Do you think its possible to overclock the N900?!

Reply
Thread Tools
Posts: 1,729 | Thanked: 388 times | Joined on Jan 2010 @ Canada
#3251
Originally Posted by egoshin View Post
In my best knowledge I think CPU frequency doesn't fluctuate without software (it is not so in Intel Core *i platform - it has some automatic frequency "boost").
sweet......so is that the frequencies fluctuate from 250-600mhz dynamically in stock and do not stay on the 600mhz max is just to save power?

or is it fatal if the cpu runs straight at 600mhz in stock and dosent drop?

sorry....this overclocking is somewhat unclear for dummies like me.
in layman's term, Oc makes n900 fast in every aspect, including "life span" drain
 
Benson's Avatar
Posts: 4,930 | Thanked: 2,272 times | Joined on Oct 2007
#3252
Originally Posted by egoshin View Post
It is difficult to say. The total energy from battery definitely increases with higher frequency even you run with low voltage. And most of that energy dissipates on CPU.

Just to understand better that a small example. I ran a stock kernel and measured a current from battery under different frequencies. The 250MHz (playing MP3 music) takes only around 110mA but 600MHz (hard loop in shell) takes TEN times more - around 1400mA (screen is dark etc). But CPU VDD1 voltage still differs only 1.26 times (1.58 in square).

So, the biggest power consumption increase is in frequency increase.
Your data's not sufficient to show that. You're running two quite different workloads, and I suspect it's not clocking most of the time with the MP3 load. Now if you run the same loop with the frequency limited to 250 MHz, you'd have an accurate comparison, and I'd expect the power to scale something like V^2*F.

Assuming the V^2*F WAG is right, overclocking from 600 to 850 would be the same power if you can reduce voltage from 1.35V to 1.13V, and -- assuming your workload involves doing fixed tasks followed by idling (instead of runaway loops, games that can't keep framerate up on either setting, etc.) -- the overclocked option will finish sooner and run cooler overall. So I'd guess that esthrel's comparison of 850MHz@1.2V is not harder on the CPU than stock settings for typical usage, but you're right, it is hard to say.
 
Posts: 1,729 | Thanked: 388 times | Joined on Jan 2010 @ Canada
#3253
Originally Posted by Benson View Post
Your data's not sufficient to show that. You're running two quite different workloads, and I suspect it's not clocking most of the time with the MP3 load. Now if you run the same loop with the frequency limited to 250 MHz, you'd have an accurate comparison, and I'd expect the power to scale something like V^2*F.

Assuming the V^2*F WAG is right, overclocking from 600 to 850 would be the same power if you can reduce voltage from 1.35V to 1.13V, and -- assuming your workload involves doing fixed tasks followed by idling (instead of runaway loops, games that can't keep framerate up on either setting, etc.) -- the overclocked option will finish sooner and run cooler overall. So I'd guess that esthrel's comparison of 850MHz@1.2V is not harder on the CPU than stock settings for typical usage, but you're right, it is hard to say.
with all respect. i belive the egoshin's data has a big point. its the increase from a low voltage to reach a high, required voltage is the one consuming power.

if a minimum frequncy in stock is 250mhz and an app is activated that requires 600mhz to run well, the cpu will do all efforts to sustain the app's frequncy and speed needs to run stable,

if an app only requires 500mhz or lower, the cpu will only run as minimum and less effort coz it will reach the required frequency in a shorter time.
 
Posts: 992 | Thanked: 995 times | Joined on Dec 2009 @ California
#3254
Originally Posted by Benson View Post
> It is difficult to say. The total energy from battery definitely increases with higher frequency even you run with low voltage. And most of that energy dissipates on CPU.

> Just to understand better that a small example. I ran a stock kernel and measured a current from battery under different frequencies. The 250MHz (playing MP3 music) takes only around 110mA but 600MHz (hard loop in shell) takes TEN times more - around 1400mA (screen is dark etc). But CPU VDD1 voltage still differs only 1.26 times (1.58 in square).

> So, the biggest power consumption increase is in frequency increase.

Your data's not sufficient to show that. You're running two quite different workloads, and I suspect it's not clocking most of the time with the MP3 load. Now if you run the same loop with the frequency limited to 250 MHz, you'd have an accurate comparison, and I'd expect the power to scale something like V^2*F.
OK, I re-did measurements with the same hard loop in shell. I used scaling_max_freq to limit to frequency to 250MHz and verified each time via scaling_cur_freq and cpuinfo_cur_freq. For more accurate measurement I switched phone to offline and delayed measurement via "sleep 10" after I locked phone.

In 600MHz I got

battery current = 1000mA (approx), w/out SmartReflex = 1200mA
VDD1 = 5 (1.350V)
VDD2 = 3 (1.200V)

In 250MHz I got

battery current = 400mA (pretty close), w/out SmartReflex = 460mA
VDD1 = 2 (1.075V)
VDD2 = 2 (1.075V)

("w/out SmartReflex" means setting 0 to /sys/power/sr_vdd1_autocomp and /sys/power/sr_vdd2_autocomp)

So, in accordance with your formula (V^2 * F) voltage increase should increase energy consumption by 1.58 but a real energy consumption increase is 6.25 due to (1000mA/400mA)^2, formula: W = I^2 * R. And frequency increase takes multiplier == 3.96 (3.96 * 1.58 == 6.25). So, frequency increase from 250 to 600 (2.4 times) increases energy consumption by 4 times. Almost double increase!


Additional results - on idle it take something from 22 to 39mA, doesn't depend from frequency. With VDD1/2 == 2 it is around 22, with VDD1 == 5 and VDD2 == 3 it is around 34.

Yet another result - on idle with scaling_max_freq == 250000 it actually sits with 500MHz but it is only during idle. With scaling_max_freq == 600000 it sits at normal 249600. And that is done inside kernel, the max and min still stay 250000.

Last edited by egoshin; 2010-04-23 at 05:50.
 
Benson's Avatar
Posts: 4,930 | Thanked: 2,272 times | Joined on Oct 2007
#3255
Originally Posted by egoshin View Post
OK, I re-did measurements with the same hard loop in shell. I used scaling_max_freq to limit to frequency to 250MHz and verified each time via scaling_cur_freq and cpuinfo_cur_freq. For more accurate measurement I switched phone to offline and delayed measurement via "sleep 10" after I locked phone.

In 600MHz I got

battery current = 1000mA (approx)
VDD1 = 5 (1.350V)
VDD2 = 3 (1.200V)

In 250MHz I got

battery current = 400mA (pretty close)
VDD1 = 2 (1.075V)
VDD2 = 2 (1.075V)
Cool!

So, in accordance with your formula (V^2 * F) voltage increase should increase energy consumption by 1.58 but a real energy consumption increase is 6.25 due to (1000mA/400mA)^2, formula: W = I^2 * R.
Wrong formula... You're modeling the N900 as a resistor (voltage goes up, current goes up), when the main load on the battery is a switching DC-DC power-supply (voltage goes up, current goes down). I'd go with P=I*V, and since the battery voltage shouldn't change much, and in the opposite direction of the current (increased voltage drop due to internal resistance at the heavier current), I'd neglect it: P ~ I is conservative.

So by my math, you've got increase by 2.5 only (but actually less).

I'd figure:
Voltage ratio = ((1.35+1.2)/2)/1.075=1.186
Frequency ratio = 600/250 = 2.4

Predicted power ratio = 1.186^2*2.4 = 3.37

So, actually, it's less than V^2*F.
 
Posts: 992 | Thanked: 995 times | Joined on Dec 2009 @ California
#3256
Originally Posted by Benson View Post
Cool!

Wrong formula... You're modeling the N900 as a resistor (voltage goes up, current goes up), when the main load on the battery is a switching DC-DC power-supply (voltage goes up, current goes down). I'd go with P=I*V, and since the battery voltage shouldn't change much, and in the opposite direction of the current (increased voltage drop due to internal resistance at the heavier current), I'd neglect it: P ~ I is conservative.

So by my math, you've got increase by 2.5 only (but actually less).

I'd figure:
Voltage ratio = ((1.35+1.2)/2)/1.075=1.186
Frequency ratio = 600/250 = 2.4

Predicted power ratio = 1.186^2*2.4 = 3.37

So, actually, it's less than V^2*F.
I agree with you - the current is measured in battery and it looks like energy consumption is increased by 2.4, you right.

But in this case a run on 600MHz would save battery because 600MHz runs 2.4 faster 250MHz and it is 2.4 times shorter than 250MHz. However, if I set "ignore_nice_load" which in effect decreases the number of switches from 250MHz to 600MHz I definitely have around 50% increase in battery life.

Some theory is needed to explain it. For a moment I start disbelieving in BQ27X00 measurements - it contradicts my experience.

However, somebody reports a battery saving then he set 500MHz as a minimum frequency.

EDIT: it has sense to look into CPUIDLE driver, it can be a problem with idling - idling on 600MHz is much worse than 250MHz because of VDD1/2 values.

Last edited by egoshin; 2010-04-23 at 04:49.
 
Posts: 310 | Thanked: 383 times | Joined on Jan 2010
#3257
Originally Posted by egoshin View Post
I agree with you - the current is measured in battery and it looks like energy consumption is increased by 2.4, you right.

But in this case a run on 600MHz would save battery because 600MHz runs 2.4 faster 250MHz and it is 2.4 times shorter than 250MHz. However, if I set "ignore_nice_load" which in effect decreases the number of switches from 250MHz to 600MHz I definitely have around 50% increase in battery life.

Some theory is needed to explain it. For a moment I start disbelieving in BQ27X00 measurements - it contradicts my experience.

However, somebody reports a battery saving then he set 500MHz as a minimum frequency.
I'm currently running 500 / 750 / 1000 (500mhz minimum) and my battery life is decent.. averaging 24-48h with moderate usage.

In the low frequencies I don't think it makes much difference at all. Idle is idle.
 
Posts: 992 | Thanked: 995 times | Joined on Dec 2009 @ California
#3258
Originally Posted by nightfire View Post
I'm currently running 500 / 750 / 1000 (500mhz minimum) and my battery life is decent.. averaging 24-48h with moderate usage.

In the low frequencies I don't think it makes much difference at all. Idle is idle.
Idling with VDD1/2 equal 2 is 50% better than VDD1=5/VDD2=3 on my measurements.
 
Posts: 992 | Thanked: 995 times | Joined on Dec 2009 @ California
#3259
I update results with new measurements:

Originally Posted by egoshin View Post
In 600MHz I got

battery current = 1000mA (approx), w/out SmartReflex =1200mA
VDD1 = 5 (1.350V)
VDD2 = 3 (1.200V)

In 250MHz I got

battery current = 400mA (pretty close), w/out SmartReflex = 460mA
VDD1 = 2 (1.075V)
VDD2 = 2 (1.075V)
 

The Following User Says Thank You to egoshin For This Useful Post:
maluka's Avatar
Posts: 741 | Thanked: 900 times | Joined on Nov 2007 @ Auckland NZ
#3260
I don't have time to go through over 300 pages. Is there a link to a wiki or instructions on where to find the custom firmware?
 
Reply

Tags
cooking on gas, cortex-a8, faster, first to fry it wins!, hardware, its smoking, n900, need for speed, need for weed, nos, omap, omap3, omap3430, overclock, overclocking, soc, system-on-a-chip, the dogs, this thread got good!, vtec just kicked in y0!, warranty will be void, whooplah, zoom zoom


 
Forum Jump


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