big.LITTLE Processing Update – In-Kernel Switcher vs Global Task Scheduling

big.LITTLE processing is a new technology announced by ARM in 2011 that allows an SoC to feature low power cores (e.g. Cortex A7) together with high performance cores (e.g. Cortex A15) in order to optimize power consumption.

I’ve previously detailed two big.LITTLE software implementation methods:

  • In-kernel switcher which runs tasks on either Cortex A7 or Cortex A15 depending on the load, but both processors can not run simultaneously.
  • Heterogeneous multiprocessing (now called Global Task Scheduling) that assigns tasks to relevant Cortex A7 or Cortex A15 cores, and if needed, allows all cores to run at the same time.

Linaro has just provided a update for the big.LITTLE software implementation.

There are currently only two SoCs that ship in products with Linaro b.L kernel support:

  • ARM’s reference Test Chip 2 (TC2) tile for the Versatile Express development platform, configured as an SoC with 2 Cortex-A15 cores and 3 Cortex-A7 cores.
  • Samsung-LSI’s 8 core SoC found in some versions of the Galaxy S4 phone, configured with 4 Cortex-A15 cores and 4 Cortex-A7 cores.

If you’ve got a Galaxy S4 (with Exynos 5410), it’s currently running In-kernel switcher implementation, which means at any time, a maximum of 4 cores can run on your Exynos Octo processor.

GTS is supposed to be better than IKS because it permits a finer control of workloads between cores, it is faster than cpufreq framework, works on non-symmetrical SoCs (e.g. 2 A15 + 4 A7), and can use all cores simultaneously. The only reason why IKS is currently running in Galaxy S4 is because it was much simpler to implement. The goods news is that GTS is now publicly available in Linaro monthly engineering releases for the ARM TC2 Versatile Express hardware, and in Linaro’s interim Long Term Supported Kernel (LSK) build. Upstreaming has started but will likely take a few months.

The table below gives a clear comparison between In-kernel switcher (IKS) and Global task scheduling (GTS) implementations.

bit.LITTLE_IKS_vs_GTS

Linaro also explains one point I previously missed:

Samsung-LSI provide an ‘Octa-core’ 4+4 big.LITTLE chip for this phone. As has been publicly noted, the current generation of hardware cannot yet take full advantage of the IKS or the GTS designs because the hardware power-saving core switching feature is implemented on a cluster basis rather than on a per-core or a per-pair basis. Even so, the first big.LITTLE implementation produces performance and power consumption on a par with the latest Qualcomm multi-core Snapdragon processor according to reviews from Engadget, PocketNow and others.

That means we’ll need to wait for future SoCs to fully take advantage of big.LITTLE processing.

6
Leave a Reply

avatar
6 Comment threads
0 Thread replies
0 Followers
 
Most reacted comment
Hottest comment thread
2 Comment authors
AllWinner A80 Octa Core big.LITTLE Processor CPU Usage Under Various Loads in Android 4.4 (Video)Hardkernel Unveils $179 ODROID-XU3 Development Board Powered by Samsung Exynos 5422 SoC$179 Arndale Octa Developement Board Gets an Upgrade to Exynos 5420 big.LITTLE SoCSamsung Unveils a New Exynos 5 Octa (5420) With Greater CPU and GPU Processing PowerSo7t Recent comment authors
  Subscribe  
newest oldest most voted
Notify of
mftvrocks
Guest

good to learn

So7t
Guest
So7t

Good to know that we are progressing!!

trackback

[…] has been improved by about 20 percent over Exynos 5410  by increasing the CPU cores clock. As I found out recently, Exynos 5410 big.LITTLE processing SoC implementation is far from optimal as you can only use a […]

trackback

[…] board as Arndale Octa has been upgraded to Exynos 5420 Octa-core SoC. This board will support both In-Kernel Switching (IKS) and Global Task Scheduling (GTS) implementations, and be officially supported by Linaro like the first Arndale board based on Exynos […]

trackback

[…] will soon be available on their github account. This is also the first ODROID board that supports Heterogeneous Multi-Processing / Global Task Scheduling implementation of big.LITTLE processing. You can get an overview of the board and see Ubuntu 14.04 running OpenGL ES 3.0 demo, and playing […]

trackback

[…] four cores at most due to hardware limitations. They also used to be two software implementations: In-kernel Switching (IKS) and Global Task Scheduling (GTS). The former could only handle one type of core at the same, and the latter, which I believe is now […]