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.
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.