Table of Contents

Adopting the 64-bit ARM Architecture

Adopting the 64-bit ARM Architecture

ARM Architecture Background

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.

ARMv8A Architecture

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).

64bit ARM in Chips

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.

Transitioning to 64 bit architecture

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.

  1. Enable all the warning flags and recompile the application to check for critical warnings.
  2. Remove all the hardcoded (Magic number values) data, because the data types have changed and 0x7FFFFFFF could be different in 64 bit architecture.
  3. The size of the data types have been changed, so it is important to be careful while allocating memory.
  4. Keep the 32-bit data types and 64-bit data types as #defines to port the code on both platforms.
  5. Use additional general purpose registers for better performance
  6. Use Exceptions Instructions (ARM64)
  7. Proper type-casting is needed when using two different types of numbers (like Integer with long, or unsigned and signed), especially for cases where sign bit extension is needed
  8. Bit Manipulation shall be adjusted to 64 bit numbers (especially in case of Left shift)

Explore More

Talk to an Expert

Subscribe
to our Newsletter
Stay in the loop! Sign up for our newsletter & stay updated with the latest trends in technology and innovation.

Our Work

Innovate

Transform.

Scale

Partnerships

Device Partnerships
Digital Partnerships
Quality Partnerships
Silicon Partnerships

Company

Products & IPs

Services