The Death of Intel Architecture in Android and Its Impact to Software Developer and End Users.

The Death of Intel Architecture in Android and Its Impact to Software Developer and End Users.

Recently, people who use Intel-based Android Smartphone and Tablet are complaining that they cannot play the most anticipated game in 2016(?), Pokemon Go. Some people open online petition to the game developer, Niantic, to release "Intel version" of this game. Maybe the answer of why Niantic does not want to release "Intel version" of this game lies in the hardware architecture itself.

The Birth of Intel SoC for Android

Intel began entering Android market in April 2012 by introducing Intel Atom SoC (system-on-chip) after Intel announced its partnership with Google in September 2011 to provide support for Android OS on Intel x86 architecture. The Atom SoC placed directly to compete with existing SoCs developed for smartphone and tablet (i.e.Texas Instruments, Nvidia, Qualcomm, Samsung, MediaTek).

While the other SoCs use ARM architecture, Intel brings its own x86 architecture (the same architecture used in their Server, Desktop, and Laptop processors) and adapt it for low power usage.

Intel CISC vs ARM RISC

ARM architecture is based on Reduced Instruction Set Computing (RISC) Architecture while Intel x86 is based on Complex Instruction Set Computing (CISC) Architecture. In a basic way, RISC instruction sets are smaller and more atomic thus single instruction can be roughly translated into single operation that the CPU can perform (i.e. microcode). On the other hand, CISC instruction sets are larger, more complex, and can express a single idea but the CPU will need to execute three or more simplified instructions to perform it. The RISC will have simpler instruction decoder which means less power consumption and greater efficiency.


64-bit Computing Implementation

Intel invented their own 64-bit architecture called the IA64 with their Intel Itanium processors. Unfortunately, the market reception was not that good. IA64 is very slow to execute legacy x86 application in emulation mode. Microsoft and Red Hat dropped support for IA64 because of lack market interest. On the other hand, AMD designs their own 64-bit architecture by extending the x86 to include 64-bit addressing and 64-bit registers. The architecture is known as AMD64. Microsoft and other software vendors give a good support on AMD64 which force Intel to adopt AMD64 architecture to their processors, called x86-64. The IA64 is effectively dead by today. Intel Atom SoCs are 64-bit processors using the 64-bit architecture designed by AMD.

ARM announced ARMv8 64-bit architecture in 2011. It is a clean and beautiful 64-bit implementation which uses two execution states to retain compatibility with 32-bit code, AArch32 and AArch64. During normal execution, ARM processor can seamlessly change its mode (AArch32 to AArch64 and vice versa). Therefore, the instruction decoder for 64-bit instructions is a new design which does not require to maintain compatibility with 32-bit instruction but the processor can still backward compatible with 32-bit code.


Heterogeneous Computing

Traditionally, multi-core processors have identical cores on its die. For example, dual-core Intel Atom SoC will have two identical x86-64 cores with same performance and power consumption. Turning off cores when it is not being used may save some power but ARM has a far better idea.

ARM invents big.LITTLE architecture which allows the processors to have different type of cores. For example, an ARM processors may consist of two low-power Cortex-A53 cores and two high-performance Cortex-A57 cores. To see the advantages of this heterogeneous architecture, we will take a look into its individual core architecture in terms of, let's say, Instruction Level Parallelism (ILP).

To improve its performance, processors often have out-of-order (OOO) execution engine. This OOO execution engine is a very complex structure that allows processors to execute the instructions based on available compute resources thus increase its Instruction Level Parallelism (ILP). Although OOO can increase the performance of the CPU, it consumes million of logic gates and lots of power.

The Cortex-A53 does not have OOO execution engine which makes it executes the instruction in-order while the Cortex-A57 has the OOO which improves their performance significantly but uses more power. By using the right core for the right workload, ARM processors can be very power efficient yet very powerful processors.

Furthermore, the FPU (floating-point unit) and the SIMD logic (single-instruction multiple-data) may work differently between low-power Cortex-A53 and high-performance Cortex-A57. Generally, more complex logic yet higher power consumption for better performance, less complex logic with lower power consumption for higher efficiency.


Software Compatibility

With its innovation to create power efficient yet powerful processors, ARM is a market leader in terms of mobile processors. For Android, ARM becomes standard architecture. Although Android uses Java as its programming language, it still allows the programmers to create "native" apps in C or C++ which then generally compiled for ARM processors. To make the "native" apps can run in Intel, Intel uses special translation software which converts the ARM instructions into codes for their processors. This add-on compatibility layer will introduce some performance impact. Intel claims that their processors are compatible with 90% of apps available in PlayStore.

Integrated Peripheral

ARM offers more peripheral that can be integrated into their SoC. For example, an LTE modem. Intel does not have LTE modem for now.

The Surrender of Intel from Mobile Market

After 4 years of battle in the Android-based smartphone market, on April 2016 Intel decided to leave mobile market by canceling its SoFIA platform and Broxton. Intel which is a market leader in the high-performance server, desktop and laptop processors must surrender against ARM which is currently market leader in power efficient mobile processors, at least for now. Maybe Intel want to play again in mobile market when its 10nm fabs are ready, who knows!

For the software developer, it will make financially non-sense to make software that supports the dead x86 for Android. It is expected that people will migrate to ARM for their Android devices. (i.e. Asus which is one of the biggest Intel SoC users for their Zenfone announced that the Zenfone 3 will not be based on Intel SoC)

As long as we have not seen the future of x86 in Android, it is better to switch to ARM for now, especially if you want to play Pokemon Go :)Maybe someday there will be emulation for Pokemon Go so that it can run in Intel x86 with--hopefully--little performance impact.

(C) 2016 Bagus Hanindhito

要查看或添加评论,请登录

Bagus Hanindhito的更多文章

社区洞察

其他会员也浏览了