[Android General] samthechamp:
Hello XDA community,

I have been on a break from the whole Android development thing for quite a while , I came back to XDA and some mediatek chipset tweaking a week ago or so , and I have noticed several people shouting about overclocking their CPUs and GPUs to gain performance Blah Blah Blah.... If you Don't want all the technical stuff , here's the short answer:

Overclocking has a 50-50 chance to give you better or worse performance

Now for those who still want how to know how overclocking works and affects the performance , Get a cup of coffee or something.So I will start with the most basic question ,

What is Overclocking?

Overclocking is the act of increasing the frequency at which a CPU operates , so it runs faster and hopefully gives us better performance.

For example , Let's take the Mediatek's MT6589 chipset , It has max frequency seen of 1209 MHz (@stock setting).

This means that the CPU can transmit 1200 0s and 1s in a second, to simplify things , lets use an imaginary runner here , the runner has to run on a 100 foot track , when he reaches either end , the CPU registers a 0 or a 1 , the only 2 numbers which our CPU industry works upon , now , at stock un-overclocked frequencies , the runner is easily able to run , 1200 times , in mt6589's case , this is the speed at which your CPU can think , or process , when we increase the frequency , we are telling the runner to increase the times it has to run to and fro from a 0 to a 1 , or vice versa , which in turn increases our hardware's processing power , but , this does not mean , you can go on increasing the frequency as long the device is under operatable temperatures , there are certain factors which matter while increasing the frequency , which leads us to the next topic ,

Voltages , and Overvolting

Voltage is the ingredient that grants greater stable MHz potential to our transistor based computer hardware. Our RAM, processors, video cards, and motherboard chipsets all see gains from overvoltage.

But what does voltage actually do? How much is really too much? What are some dangers to Overvolting? Are there numbers set in stone, or is each piece of hardware different? How can we accurately and safely determine safe overvoltage limits for our expensive hardware, without killing it?If you aren't interested in all the 'how it works' stuff ,feel free to skip this part.

So , to start , let's clear this doubt , overvolting DOES NOT provide extra current , or more juice to accomplish higher overclocks , it just increases the strength of the signal inside the CPU/GPU.

All of todays computers use two binary digits , as told earlier , 0 and 1 , these 0s and 1s occur , or get registered and processed through voltages , voltage high , for a 1 , and voltage low , for a 0 , 0v typically represents a voltage low , or VSS ,Voltage high , or VCORE , is variable for each processor , there aren't any details I could find about voltages of mobile processors , but most of the 28 nm based CPUs have anywhere around 1.2v to 1.5v , but what we need to know is that when our CPU sees a voltage NEAR to the VCORE , it registers it as a 1 , yes , a voltage NEAR to the VCORE , exact VCORE voltages are rarely seen , the part which determines how much near the voltage needs to be is the tolerance , lets say that a processor has a VCORE voltage of 1.4v , with a tolerance of 5% , so , if the voltage reaches 1.35v , the signal will be regarded as a 1 , because the tolerance allows for a 5% loss of voltage , the min. voltage to be seen as a 1 would be 1.33v. BUT , as soon as the voltage exceeds the tolerance threshold , our CPU starts to mess things up , For instance , if the voltage is not able to reach a minimum of 1.33v ,Our CPU will register it as a 0 , the signal strength , which we talked about earlier is not powerful/good enough to reach the VCORE , this is what is known as an unstable CPU. This is the part where you need to play around with voltages. But , wait , why do we need to do that ? , the answer is , if you are at stock speeds , you don't ,the SoC manufacturers have enough brains to set the right voltage for the frequency , and you don't need to do it unless you are seeing the symptoms of an unstable CPU , which includes FCs , failed benchmarks , anything abnormal. So to make things even easier , Let's go back to the runner example again :

If we tell the runner to complete 1400 rounds , which is our frequency , instead of 1200 , on a 100 foot track , we keep increasing the frequency , until we reach a point where it is impossible for the runner to complete the 95 foot-mark , which is necessary for our CPU to register a 1 , and is called back when it hits the 90-foot already , that is when our CPU registers a 1 as a 0 , a VCORE as a VSS , and that is all that matters.when we increase frequency , we shorten the time given to the runner to reach the 95 foot-mark , and depending on the strength of the signal , or speed of the runner , it might or might not be able to complete it .

This problem is solved by overvolting , basically , overvolting means increasing the strength of the signal , or the speed of the runner ,let's take two scenarios here

In this example, the measurement ‘feet’ represents voltage signal strength, and the measurement ‘time’ represents the transition period between VSS and VCORE. Runner #1 can run 100 feet in 20 seconds (Stock VCORE), Runner #2 can run 110 feet in 20 seconds (VCORE overvolted by 10%). Runner #1 can run 5 feet per second. Runner #2 can run 5.5 feet per second. Our overvolted signal switches slightly faster than our stock signal, in the same time period, just as runner #2 can run further in the same time period. Please keep in mind that this is a simple example for explanation, and that signal switching speed is not so linear as "10% overvolt=10% signal switching speed increase".

At a stock frequency, we have 20 seconds to get within transistor tolerance, say it’s 5%, or 95 feet. Both runners make it. Now we overclock our frequency, and shorten the amount of time in which the runners have to get within our transistor tolerance of 95 feet. We increase the frequency, and shorten the transition time to 18 seconds. Runner #2, running at 5.5 feet per second, makes it to the 99 foot mark in 18 seconds, he is within tolerance, and his run is correctly counted as a 1. Runner #1 isn’t fast enough. He makes it to the 90 foot mark in 18 seconds, and is not within the tolerance. Runner #1’s run is incorrectly counted as a 0, and we have instability. In this manner, increasing signal switching speed to directly increase signal strength, overvolting allow us to increase our frequency (overclocking).

Silicon lottery

I wouldn't go stressing too much on this topic , basically , every CPU , even of the same model , manufactured at the same factory , with the same machine can vary greatly , The die inside CPU are made up of silicon , the silicon is extracted from inside the earth in big blocks , the part of silicon which is at the center will give you more overclocking potential and generate less heat , unfortunately , it depends on your luck which chip you get and what is it's potential , for example , I had a AMD FX8320 Desktop CPU , to my surprise , is overclocked to +1100 MHz with appropriate cooling , seeing the performance , I bought another one (exact same model)for one of my other systems , and sadly it overclocked max to +430 MHz , in short , My first chip had won the silicon lottery , while this one was not so good.

In the conclusion , it depends on you if you are willing to take the risk , System boards on Mobile devices have power phases which pretty much only supply the voltage the CPU will need @ max on stock clocks , and without overvoltage , you are pretty much restricted to anywhere from 10-80 MHz , even if magically you are getting stable performance at something around +120 MHz , you will run into issues like heating , potential bottlenecks , battery over-heating , if you consider overvolting , AFAIK there aren't much options for mobile CPUs.the System boards don't have .. ummmm.. good power phases , this is to reduce the battery usage because the CPU won't use more than what is specified by mediatek , qualcomm or whatever.Overvolting also has the effect of increasing the rate of electromigration within our hardware , you can google it to find out more , If you'd like to overclock , Find a Kernel that supports OCing for your device , flash it and then download something like SetCPU , start in increments of 10 MHz , run benchmarks , look for abnormalities and FCs , as soon as you notice one , take one step down , that is the best you are going to get.

NOTE:Don't just overclock your CPU/GPU to something someone might have accomplished , each chip is different , has a different overclocking headroom and heat generation.

I WILL NOT BE RESPONSIBLE FOR ANY KIND OF DAMAGE TO YOUR DEVICE.