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.