The ARM RISC architecture was introduced with the advent of ARMV4 and ARM7. This architecture could handle minimal instructions, and almost had no ability to perform mathematical calculations. With the inception of ARMv7 architecture, the processor design is drastically changed and immensely popular. One of the major segments in which the ARM operates, is in mobility devices. ARMv7 has facilitated its foray beyond the traditional ARM market. ARMv7 has three different profiles: Application, Real-time and Microcontrollers.
Symmetrical Multi Processing was the need of the hour. With Cortex A9, this became possible for ARM. Other than A9 chip, A5 was the cost-effective and included a low power core. As the Cortex grew in popularity and acceptance, ARM introduced the Cortex A7 with an inbuilt energy-efficient system for high battery life and low cost setup.
According to analysts, the new ARM 64-bit architecture is here to stay. After the huge success of the 32-bit architecture, ARM has launched the new 64-bit architecture. The 32-bit architecture was a major success, especially in the consumer devices applications, while the 64-bit variant is looked upon as ideal for hyper-scale server designs. The low-power consumption combined with the tremendous processing capabilities would help in significantly reducing operational expenses for large-scale server deployments.
In the computing industry, an application needing more than 4GB address is quite rare phenomenon. However, when we do need more than 4GB address space, the ARMv8 comes into the picture.
ARMv8 does not work on the 64-bit architecture in an isolated manner. ARM has enabled compatibility with its existing and popular ARMv7. ARM also introduced the AArch64 specifications with its existing AArch32 (supporting A32 and T32 instructions) specifications. The A64 instruction set has different format and decode table, though.
Source: ARM (http://bit.ly/1tv0GJ8)
In spite of the above, ARMv8 is not fully backward compatible with the ARMv7, and the application written for AArch32 will not work on ARMv7. This is primarily because the A64 enhancements applied to A32 as well, and –involved changes including Exception and Privilege model. AArch64 has 4 Exception Levels, while ARMv7 had 8 different processor modes. To enable Linux, OSx, Unix and Microsoft Windows with ARM 64, ARM has two data models – the LP64 (With Integers as 32 bit and Long as 64 bit) and LP64 (With Integer and Long as 32 bit, Long and Long as 64 bit).
All ARM partners are introducing 64-bit ARM-based processors this year.
NVIDIA is coming up with a custom 64-bit core called Denver that will be integrated with the Tegra K1 mobile SoC/FPGA.
Qualcomm will soon follow suit, having announced new Snapdragon 808 and 810 mobile SoCs. As Qualcomm operates with handheld devices and power is major concern, taking big.LITTLE core configuration advantage is first thing.
AMD has also recently announced sampling of the chip. The demo of its Seattle chip and the development platform is said to be impressive, as per early reports.
Allwinner, Apple, Applied Micro, Broadcom, MediaTek, and Samsung have also announced new 64-bit ARM devices and there are consistent development efforts to introduce them into effect in late 2014 and 2015.
The primary challenge with transitioning to 64-bit architecture is migration of Tools, Support Ecosystem and the Operating system, not just the hardware.
When SMP was introduced, all the operating major systems strived to take advantage of multi-core capabilities. The introduction simplified the developers’ work as the OS handles the underlying architecture. Same is the case with AArch64.
When the operating system supports 64-bit architecture, it makes most of the ecosystem without change and even 32-bit applications are efficiently managed. When the application needs higher performance, greater memory and power efficiency, it shall be ported and changed and recompiled to take full advantage of 64-bit processing.
Following are some tips for porting any application to a 64-bit ARM architecture.