ASUS Low-priced mobile phone zenfone launched on the market topic, many people also on the use of the Intel Atom processor Zenfone, the deep fear that its compatibility problems can not be properly executed application app, what is this?
Intel has been trying to move into mobile or tablet mobile markets in recent years, especially with the Android operating system (Forget Meego!). ), the tactic is to try to lower the power of the low Atom series of processors to meet the requirements of long-time phone standby, the actual use of the first generation of products is the Atom Z24x0 series, and Asus Zenfone is the second generation of products, the Atom z25x0 series. Compared to the previous generation, Z25x0 became a dual-core four processor, while the GPU part was significantly upgraded from PowerVR SGX540 to PowerVR SGX544MP2.
arm lays the groundwork on the phone
Android initially developed, and did not limit the implementation of the platform, but in the context of the time-space environment, the first commercially available Android phone HTC Dream (G1) adopted the Qualcomm MSM7201A, which is the ARMV6 instruction set of products.
After the situation we all know, ARM began to the zenith, most of the Android phones are compatible with the ARM instruction set application processor (a small number of MIPS instruction set), Apple's iphone and ipad products are used throughout. In this post-PC era, Intel's influence on the mobile device market is not very big, in the past there is xscale this product line can occupy a place in the PDA, even its efficient can attract a lot of people designated to buy, but then Intel sold XScale to Marvell, There is no processor available for mobile phones.
Atom was grabbed to hit arm
In September 2011, Intel and Google co-issued a statement that both would optimize the performance of the future Android version on the x86 system, meaning that the atom processors originally used on netbook and UMPC are now moving into the handset market.
However, for the half-killed Intel x86 architecture, there are already many applications in the market for ARM optimization, if it is similar to the MIPS architecture of Android devices, the program compatibility is not good, probably can directly determine the atom apprenticeship not to die first, So Intel produced the binary translation, a rotating intermediary, to be compatible with the ARM optimization program.
▲ If the Android program is written in Java and thrown into the Dalvik virtual machine execution, the majority of Android phones using Intel Atom do not have a problem.
How the x86 architecture is compatible with ARM programs
To understand the principle of binary translation, first understand how the Android program works. At first the Android program used the Eclipse development environment and the Android SDK, written in the Java language, and then dropped into the Android device after encapsulation into bytecode, and executed in 1 virtual machines called Dalvik.
However, a little understanding of the operation of the program knows that although the virtual machine can bring a cross-platform, unlimited hardware specifications for the implementation of the benefits, but also because of virtual machine conversion, reduce execution efficiency. So later andriod, in addition to the SDK (software Development Kit), introduced the NDK (Native Development Kit), allowing developers to bypass the loss of performance caused by Dalvik translation, It can also be written in a programming language other than Java (such as C + +).
Since the program is translated by the NDK, the thing that comes out is the machine code that the hardware can execute directly, the execution is more efficient, but also brings the problem of compatibility--the machine code compiled to the ARM processor must be different from the one compiled to the x86 processor. This led to the inability of Intel's Atom processor to perform some of the programs normally (usually 3D games, because these programs are more demanding). If Intel abandons these programs, presumably the consumer is absolutely unacceptable, therefore has the binary translation this intermediary translation layer, may transfer arm's machine code to the x86 execution.
▲intel Binary Translator is used to convert applications that use the arm ndk, allowing them to execute correctly on Intel atom.
arm itself has compatibility issues
With binary translation, Intel Atom is able to execute programs that have been compiled on the ARM processor, but the performance is slightly lower than when the ARM processor executes, and this binary translation is not 100% fully compatible, Occasionally there will be no execution or execution to the halfway out of the situation.
But don't assume that arm itself does not have a compatibility problem because ARM uses licensing, so the GPU parts of each processor are different, such as Qualcomm using their own Adreno, nvidia using GeForce ULP, Samsung uses ARM's Mali or PowerVR SGX, because the GPU support for specifications is different (such as material compression format), so that the parties must also have different application processors to launch different versions, this phenomenon is particularly serious in 3D games.
developer attitude is the key
The current Android Market or arm processor mobile phone as a large, if the developers can not support the platform, of course, the city accounted for the largest device as a consideration, in order to maximize the benefits in the minimum cost, there is money to the different hardware adjustment program code.
But compared to the application compatibility, the small version is actually more concerned about Intel Atom's endurance, currently on the market using Intel Atom mobile phones are still in the z24x0 and z25x0 specifications, the author of the Test experience, endurance is generally more than the use of ARM processor mobile phone short.
▲ to ASUS ZenFone 5 (version number asus_t00f_tw_user_20140327_4.3.2.935705) For example, I only encounter Basemark X 1.1 can not be executed correctly.
x86 architecture mobile phone running Android okay? (Brain Tonic)