Linaro has developed a new way for Linux and Android developers to implement ARM’s Big.Little multi-core load balancing architecture, in a manner that optimizes power/performance tradeoffs. In addition to the In-kernel Switcher (IKS) released in May, the new Global Task Scheduler (GTS) offers faster, more granular scheduling control, support for non-symmetrical core combos, and the ability to run all cores simultaneously.
Developing apps optimized for quad-core processors is challenging enough, but getting the most from SoCs containing different core types — as in ARM’s Big.Little architecture — is even more complex. Fortunately, ARM and Linaro, the not-for-profit Linux and Android software and tools development firm jointly owned by ARM and most of its major licensees, are developing new software models to support Big.Little.
In May, Linaro released an In-kernel switcher (IKS) model in its Big.Little builds for Linux, and it has now released an alternative Global Task Scheduler (GTS) implementation said to offer a variety of improvements in performance and flexibility. Formerly called HMP (Heterogeneous Multi-Processing) or “Big.Little MP,” GTS is notable for its performance/power improvements, as well its capacity to run all cores simultaneously.
As the tech world continues to kick the tires of ARM’s Big.Little concept (see farther below), ARM and Linaro continue to aggressively evangelize and expand the multicore load-balancing concept. Originally announced as a scheme to combine Cortex-A15 cores with slower, more power-efficient Cortex-A7 cores on system-on-chips (SoCs) in order to optimize for power or performance depending on the task, Big.Little will also support combinations of future, ARMv8, 64-bit Cortex-A57 and Cortex-A53 cores. In addition, the recently announced heir to the Cortex-A9, Cortex-A12, will support Big.Little mashups with the Cortex-A7.
ARM Cortex-A12 architecture
The IKS and GTS schemes make it easier for developers to harness this combined horsepower for optimizing power or performance. Although Linaro suggests GTS is superior to IKS, and should replace it in most applications, IKS is not going away. The Linaro blog announcement for GTS states: “The key attribute of IKS is that it relies on existing well-understood mechanisms in the Linux kernel and it is easy to implement, test, and characterize in a production environment.”
IKS is limited to addressing each pair of Cortex-A15 and –A7 cores as a single virtual core using the cpufreq driver. It decides at any given time whether the faster -A15 or slower –A7 core is active while turning off the paired core. GTS adds the ability to address cores individually; drawing on runnable load average statistics, the Linux scheduler tracks the average load of each task, and then migrates tasks to the best core accordingly, says Linaro.
Touted highlights of GTS include:
- Ability to use all cores simultaneously for improved peak performance
- Better support for non-symmetrical SoCs, such as having two Cortex-A15 cores along with four Cortex–A7 cores
- Finer-grained control of workloads that are migrated between cores, reducing kernel overhead and increasing power efficiency
- Up to 10 percent improvement in performance/Watt ratio due to faster switching decisions
The Linaro blog announcement also noted other multicore work going on at Linaro that will affect Big.Little, including a “small-task packing” project. When a mobile device is on standby, the technology moves “small” tasks performed by multiple cores to a single core in order to improve efficiency. A longer-range project is to move GTS to upcoming Big.Little SoCs that combine 64-bit Cortex-A57 and Cortex-A53 cores.
Big.Little coming in seven SoCs this year
So far, the only commercial Big.Little SoC is the Samsung Exynos 5420 Octa found in the international version of the Samsung Galaxy S 4 smartphone. According to the Linaro blog, the current generation of the Exynos 5, which combines four Cortex–A15 and –A7 cores, is unable to use either IKS or GTS.
Like the Exynos 5 Octa, most Big.Little SoC implementations are expected to be used in Android devices. The Linaro code specifically addresses the Linux kernel rather than Android in general. Yet, Android device vendors can apply the GTS Big.Little patch to existing Linux kernels or wait for upcoming Linux kernels that include the patches, and then add them to their Big.Little SoC-based designs, says ARM.
More than a dozen semiconductor firms have licensed and are actively building Big.Little SoCs to date, with several expected to announce SoCs this year, according to a June 18 ARM blog. MediaTek has been rumored to be developing an MT8135 SoC due by the end of the year that uses Big.Little to integrate two -A15 and two -A7 cores.
Earlier this year, ARM said Mediatek, Fujitsu Semiconductor, Renesas Mobile, and CSR would ship Big.Little cores during 2013. Other publicly announced Big.Little licensees include LSI, HiSilicon, and Marvell.
Several of these vendors are working on SoCs that primarily target ARM-based servers, rather than mobile devices. Others may end up in an emerging generation of ARM networking SoCs.
So far, Qualcomm and Apple, which license ARM Cortex IP, but not ARM’s specific core designs, have yet to bite on Big.Little. Neither has Nvidia, which has chosen to implement a somewhat similar load-balancing scheme on its Tegra 4 SoC. The Tegra 4 adds a low-power fifth core, but it uses the same basic Cortex-A9 design as the other four cores. Texas Instruments, meanwhile, appears to be developing its own load balancing scheme for its OMAP SoCs.
IKS and GTS are now publicly available in Linaro monthly engineering releases for the ARM TC2 Versatile Express hardware reference platform, which offers two Cortex-A15 cores and three -A7 cores. Both are also available in Linaro’s interim Long Term Supported Kernel (LSK) build, and will be incorporated into “the first full Linaro LSK,” which will be based on the next Long Term Supported (LTS) kernel, says Linaro. IKS is expected to be released upstream in the upcoming Linux kernel 3.11 or Linux 3.12, while GTS will find its way to the kernel “in the next few quarters,” says the company.
More information may be found at Linaro’s GTS announcement page.