ARM’s Intelligent Power Allocation adds some more clever to thermal management

by: Gary SimsOctober 13, 2014
400

Soc ARM future

ARM is well known for many things, not only does it design extraordinary processors and microprocessors  (hint: you probably have a chip based on one of its designs in your phone), but it is also the champion of low power consumption, and heterogeneous computing (with big.LITTLE). To further enhance the power efficiency of big.LITTLE processors, ARM has started to release patches for the Linux kernel (which is used by Android at its core) for a new piece of tech called Intelligent Power Allocation (IPA).

Keeping a SoC within a defined temperature range is essential for fanless designs (like your smartphone or tablet). The busier a processor gets, the more heat it generates. At the moment the Linux kernel has a simple thermal algorithm which basically throttles the processor when it gets too hot. However a modern ARM processor is a complex beast. It has high performance “big” cores (like the Cortex-A15 or the Cortex-A57), it has energy efficient “LITTLE” cores (like the Cortex-A7 or the Cortex-A53), and it has a GPU. These three different components can be controlled independently and by controlling them in unison a better power allocation scheme can be created.

According to ARM's tests, IPA can increase the performance of a SoC by as much as 36%.

ARM’s new thermal framework deals with the Soc as a whole, but understands that different parts of the SoC produce different amounts of heat. If the CPU part is generating too much heat then the processor can be forced to favor the LITTLE cores and hence reduce the power used. If the GPU is being used a lot, but the CPU is just ticking over, then there is room in the thermal budget to let the GPU run at full speed, since the CPU isn’t using all of its allocation. Likewise when the CPU is running hot, but the GPU isn’t being used much, then the CPU can be allowed to continue as the overall thermal budget hasn’t been exceeded. In other words the power control is dynamic and is updated in real time.

ARM is merging IPA into the mainstream Linux kernel.

To manage the processor in such a fine grained way requires a clever bit of technology, which ARM has dubbed IPA. It works by measuring the current temperature of the SoC and using it together with performance level requests from the big cores, the LITTLE cores, and the GPU (all known as “actors”) to dynamically allocate the performance levels for each of them. As part of the decision making process, IPA’s algorithms estimate the power consumption of each actor, if it were allowed to run at the requested performance level. It then trims those performance levels to keep the SoC within its thermal budget.

ARM-IPA

According to ARM’s test, IPA can increase the performance of a SoC by as much as 36%. The reason the performance increases is because the SoC is tuned dynamically and every bit of the thermal budget is used. This means that the CPU or the GPU is able to run at maximum speed whenever the thermal budget allows.

To see the effectiveness of IPA, ARM ran the TRex test of the popular GL benchmark using the traditional thermal framework and the new IPA framework. TRex was run three times consecutively on each framework to measure the performance as the SoC heated up. On the first run, when the SoC is relatively cold, IPA showed a 13% improvement over the current thermal management system. This is an impressive number, but the real effectiveness of IPA is seen in the next two runs. With the SoC running at close to its thermal limit the IPA algorithm is able to squeeze out the last drop of performance. Runs two and three show a 34% and 36% increase in overall performance when compared to the traditional thermal framework. IPA manages all this while keeping the SoC at the predefined temperature.

ARM-IPA-3-runs-of-trex

ARM is merging IPA into the mainstream Linux kernel. At the moment the code has been published so that other kernel coders can examine it and make comments. ARM’s partners also have access to the code and are free to implement it in their devices whenever they want. According to some posts over at XDA, the octa-core version of the Samsung Galaxy S5 is already using IPA.

  • crutchcorn

    Always good. :)

  • Roberto Tomás

    wow.. this is just software, that’s awesome

  • MasterMuffin

    This might be a stupid question, but will this be implemented in AOSP?

    “when it is gets too hot” :)

    • crutchcorn

      Not stupid at all. After all, when some OEMs update their Kernels doesn’t mean that AOSP does. The only thing that I can imagine is if AOSP updates their Kernel, which judging by Towelroot’s fixes, I know that they have been known to do so. We can only wait and see if anyone else has heard about it.

      • MasterMuffin

        Android 5.0.1 it is!

        • Guest

          Do we have a confirm? :D Link to source?

  • Vuyo Ncube

    Hopefully Qualcomm has down something similar for its newer SoC’s

  • Pumpkin King

    If this picks up a good adoption rate it would be amazing!

  • Lucas Teixeira Gouveia

    Forgive my ignorance, but will this be available to the Nexus 5 SoC?

    • Tomislav Nagode

      I think not! only on Arms big Little octa core processors

      • Simon Belmont

        Technically, it should be able to work on any relatively recent Qualcomm SoC. Whether it’s making use of big.LITTLE or not.

        Even if the Snapdragon 800 is using only 4 CPU cores of the same type and a GPU, they can still dynamically scale the performance between them to keep it right at the thermal budget. I see no reason why it couldn’t work on the Nexus 5, but, of course, it’ll require back-porting into the N5’s kernel tree.

      • trickwong

        no, all arms big.Little core processors,not only octa core