Over the last week there's been increasing discussion and evidence of Apple's supposed introduction of CPU throttling mechanisms directly related to the battery wear level on Apple iPhones. The story started out with a report on Reddit of a user experiencing slow performance on an iPhone 6S and subsequent discovery that the performance restored to its full potential after a battery replacement.


Graph credit: John Poole, GeekBench 4 Blog

The report prompted GeekBench author John Poole to make use of the GeekBench benchmark submission database to plot performance of individual devices against iOS versions and discover a clear trend of ever increasing distribution towards lower performance points with newer OS versions.

Matthew Panzarino from TechCrunch was able to get an official statement from Apple when enquiring about the problem:

Our goal is to deliver the best experience for customers, which includes overall performance and prolonging the life of their devices. Lithium-ion batteries become less capable of supplying peak current demands when in cold conditions, have a low battery charge or as they age over time, which can result in the device unexpectedly shutting down to protect its electronic components.

Last year we released a feature for iPhone 6, iPhone 6s and iPhone SE to smooth out the instantaneous peaks only when needed to prevent the device from unexpectedly shutting down during these conditions. We’ve now extended that feature to iPhone 7 with iOS 11.2, and plan to add support for other products in the future.

Apple’s official statement sheds some light into the issue but comes short of an actual technical explanation of why the power management is failing. The company claims that the issue at heart is because of the battery degradation and its inability to supply sufficient current at a stable voltage.


Graph credit: Electronic Component News

Capacity and supply voltage of a battery decreases over time as a function of charge cycles and charging behaviour (Higher charging currents causing more degradation per cycle). This causes the total useable battery capacity before the cut-off voltage to decrease.

The problem facing the iPhones as Apple explains it is however two-fold; the issue at hand happens only during load spikes in which the battery isn’t able to maintain a high enough voltage for the PMIC to reliably be able to use as a source. 


Graph credit: Electronic Component News

SoC blocks such as CPUs and GPUs can have very short transitions from idle to load causing steep transients and load spikes going above the +10W ranges. As batteries degrade over time and the cell impedance also rises also in function of the state of charge and temperature, the current flow becomes restricted and the cell is no longer able to satisfy the power requirement at a high enough operating voltage.

Apple’s approach to the issue is to limit the peak power spikes by reducing the CPU frequencies over time as a function of battery wear. This solution however raises several questions; how does Apple decide the throttling behaviour and was the core fault an engineering fault or design choice?

As demonstrated in John Poole’s dataset Apple is throttling the CPU frequency in several stages. What exactly defines the thresholds to reach these stages can be either a rather simplistic counter taking into account the charge cycles of a given battery, or (and more hopefully) a more dynamic method that would be able to take advantage of the battery PMIC’s capabilities of determining battery wear. Given however that it seems that the OS is limiting performance even at high state of charges, such as fully charges batteries, it seems that the limitation implementation is unfortunately of the more simplistic type.

The second question comes to regard to as why it came to the issue in the first place as this should be a universal issue affecting a greater number of smartphones, not just Apple iPhones.

The first unique characteristic separating Apple iPhones from other smartphones is that Apple is using a custom CPU architecture that differs a lot from those of other vendors. It’s plausible that the architecture is able to power down and power up in a much more aggressive fashion compared to other designs and as such has stricter power regulation demands. If this is the case then another question rises is if this is indeed just a transient load issue why the power delivery system was not designed sufficiently robust enough to cope with such loads at more advanced levels of battery wear? While cold temperature and advanced battery wear are understandable conditions under which a device might not be able to sustain its normal operating conditions, the state of charge of a battery under otherwise normal conditions should be taken into account during the design of a device (Battery, SoC, PMIC, decoupling capacitors) and its operating tolerances.

If the assumptions above hold true then logically the issue would also be more prevalent in the smaller iPhone as opposed to the iPhone Plus models as the latter’s larger battery capacity would allow for greater discharge rates at a given stable voltage. This explanation might also be one of many factors as to why flagship Android and other devices don’t seem to exhibit this issue, as they come with much larger battery cells.

While much of the latter part of this piece is just my personal conjecture as to the deeper causes of the problem, it is clear that this is a larger issue for Apple that has no simple solution (beyond replacing the battery). How this affects more recent devices such as the iPhone 8 and iPhone X, or verifying if indeed the Plus variants would be less prone to the problem is something that will require a lot of testing, collaboration and data collection over longer periods of time.

POST A COMMENT

122 Comments

View All Comments

  • Jon Tseng - Friday, December 22, 2017 - link

    "it's that once the battery health drops to a certain point, far from the end of its lifespan (I don't know the percentage), the processor's max frequency, and its performance as result, drops significantly."

    I think that's slightly simplistic. It's not that max frequency as a whole is borked - it's that max frequency during load spikes (think: the few seconds when you're loading up an app) is limited.

    So it's not performance as a whole that's limited.its performance in the few seconds you're under load that gets limited.

    If that stops the device shutting off it seems a reasonable trade off to me, given how long it might otherwise take to reboot.
    Reply
  • Dgh - Friday, December 22, 2017 - link

    Is that true ? Where dis u find that out ?

    Because if you are right .... that changes the whole discussion
    Reply
  • Jon Tseng - Friday, December 22, 2017 - link

    Yeah... Read apples original statement and the Techcrunch write up:

    https://techcrunch.com/2017/12/20/apple-addresses-...

    The key point is the disclosure the fix is to smooth "instantaneous" peaks of performance. Basically when there are spikes in processor load.

    The problem is a benchmark is basically a torture test which always runs the processor at full load... Effectively it is a permanent performance spike.

    IMHO unlikely to bear much resemblance to real world experience.

    TL;DR If you think your iPhone is slowing during everyday usage it's almost certainly not due to this issue.
    Reply
  • Dgh - Saturday, December 23, 2017 - link

    Thanks ... thats an impotant thing to know .... and website should address .... i think people do not understand this .... and think the phone is generally downclocked

    Thanks again
    Reply
  • eddman - Friday, December 22, 2017 - link

    I know about that, and that actually makes it worse. The high frequency is most needed under those heavy load spikes in order to finish the task ASAP and keep the phone as responsive as possible. It's the main reason for modern phones being so fluid. Reply
  • Jon Tseng - Friday, December 22, 2017 - link

    Depends. Some conjecture here, but if it's say loading an app you have latency anyhow. So it's a 1 sec or 1.5 sec load times doesn't really make much difference, if you are smooth once it's loaded.

    Second use case I'm thinking about is if you are just running a heavy duty workload which isn't utilising all cores. Could be that this use case doesn't trigger a restriction and so phone responsiveness isn't affected by the gating process.

    The key point is no one is bothering to ask or investigate the simple question "how often does this happen in real world use cases" as opposed to torture test benchmarks.

    Until you have established this basic context you can't really have a meaningful debate on the issue. People are just assuming "omg peak frequency is bring throttled" when that is almost certainly the one thing that is NOT happening.
    Reply
  • eddman - Saturday, December 23, 2017 - link

    It is being throttled when it is needed the most. The ENTIRE reason for modern phones' responsiveness is the instantaneous high clock speeds. Besides, 1 - 1.5 seconds is quite noticeable. Also, there are a lot of computationally intensive instances besides loading where instant high performance is needed.

    Actually, that's not even the point. The point is that apple did not inform users that their phones would actually drop in performance down the line, something that no one expected to be the case.
    Reply
  • Edvard - Saturday, December 23, 2017 - link

    That makes absolutely zero sense.
    The SOC when not under load is throttled back already to conserve battery, If the SOC is now being throttled under load then it is now being throttled when you actually need it, and it effectively means a hard cap on the clock speed.

    Looked at another way you are trying to argue that a motorbike with a restrictor kit (to cap BHP for licensing purposes or whatever) does not always slow the performance of the bike, and you are correct... it does not slow the performance of the bike when it is idle. It does however slow the performance of the bike when you actually want the thing to move.

    Whilst the PR team over at Apple hq can spin it as a protective measure to prevent unexpected shutdown (or battery damage), if that was their intention then the phone would clearly and obviously tell you it needs a battery replacement to maintain its slick operation. In hiding this fact, Apple know that they will shift millions of new phones as users become irritated at their performance.
    Reply
  • Dgh - Sunday, December 24, 2017 - link

    Black white example :

    I can image i start pokemon on an iphone 6 .... starting the app causes a spike. That spike is thottled. So perhaps slower loading of pokemon.

    Once loaded ... pokemon in memory ... graphics calculated ... no spiking and pokemon runs a smooth gaming experiense for 30 mins.

    Again black and white example huh. But totaly different then starting pokemon and it runs completely slow and downthrottled for 30 mins making it unplayable.

    In my humble oppinion this changes stuf ... and if this way of downthrottling is the case ( only a few secs during spikes ) ... many people are misunderstanding what actually is happenning.

    And i agree that apple ahould be more clear.
    Reply
  • Dgh - Sunday, December 24, 2017 - link

    Another example

    Perhaps a spike happens with a “heavy game” like pokemon ... but no spike with simple stuff like banking or safari.

    Again ... in my oppinion ... something completely different then an overall slow phone.

    Black what .... if i use my phone for 30 mins with pokemon / banking / safari / email ... and it was downthrottled for 3 secconds in that 30 mins .... whats the problem ??
    Reply

Log in

Don't have an account? Sign up now