Samsung’s foray into the eight core processor market hasn’t been without its problems. The company’s original Exynos 5 Octa, the Exynos 5410, which is found in the Samsung Galaxy S4 seemed to promise much with its big.LITTLE design that allows the processor to use four low-energy Cortex-A7 cores together with four more powerful Cortex-A15 cores. However it turned out that due to some design flaws in the 5410 the processor only allowed four cores to be running simultaneously.
When Samsung released details of the next generation of the Exynos Octa, the Exynos 5420, it was assumed that Samsung had fixed the issues with the original 5410, however its wording remained vague, “The system switches amongst eight cores of Cortex-A15 and Cortex-A7 processors depending on workload, selecting the right core for the right task and saving power in the process.” The good news is that Samsung has now confirmed, via a musical video posted on YouTube, that the Exynos 5420 can use all eight cores simultaneously.
ARM’s big.LITTLE architecture allows for multi-core processors to run in one of two modes: a migration mode and a Heterogeneous Multi Processing (HMP) mode. In the first mode, which is used in the Exynos 5410 and the Samsung Galaxy S4, the low-energy A7 cores are used by default and then when things get busy the A15 cores are activated while the A7 cores are shut down. This means that the Exynos Octa 5410 only uses a maximum of four cores at once, making it the same as a quad-core processor but with some clever power saving technology. I originally suggested that the lack of HMP support for the 5410 was due to a software deficiency and that by adding a HMP scheduler to the Linux kernel would allow the 5410 to run in HMP mode. However it turns out that that 5410 is limited to migration mode because of a hardware deficiency, specifically in the cache subsystem that provides a coherent cache across all the cores and allows for seamless switching between them.
The Exynos 5420 fixes these problems and the cache subsystem, know as the Cache Coherent Interconnect (CCI), is fully working – allowing the processor to be used in a HMP mode. Heterogeneous Multi Processing is a clever piece of technology because the Linux kernel (in Android) needs to know that not all the cores are equal. In an SMP system all the cores are the same and so the scheduler can just distribute tasks to any core depending on workload. But with HMP the scheduler shouldn’t try and run the latest 3D game on one of the A7 cores it should be moved to the A15 cores. As Samsung puts it, “If you’re an avid mobile gamer who’s into FPS games with complex graphics or fast-paced, high-frame-rate racing games, the ‘big’ Cortex-A15 cores are there to do the heavy lifting.”
Over the next few weeks the Galaxy Note 3 will start to ship and I am sure that keen Android developers will be picking apart the internals of the device and looking at the functionality of the Exynos 5420. Samsung have a good track record for releasing the GPL licensed software components of their Android phones so once this code is published it will be relatively easy to look at the HMP scheduler included in the version of Android used on the Note 3.
What does this mean? It means that the Samsung Galaxy Note 3 will be the first true eight core device available to the general public, albeit a heterogeneous octa core system.