Over the past few years, ARM 64-bit processors have made their way into growing numbers of embedded devices from smart phones to gaming boxes.
Although the industry has tried to confuse us with a variety of alias names such as AArch64, ARMv8-A, ARMv8 or just plain ARM64, we do get the message.
The ARM 64-bit architecture has significant advantages over the 32-bit processors that have served us in embedded apps for decades.
One cool thing about ARM64 is that it’s a standardized design. In the past, licensed chipmakers were able to take ARM Holdings’ 32-bit reference design and create their own custom implementations.
The result was a whole lot of incompatible ARM processors that each needed to be supported by operating systems and tools.
Stricter licensing rules for ARM64 have now required that individual designs by chip manufacturers, such as NVIDIA, Samsung, Freescale and Apple, be made upward compatible with the baseline ARM Holdings reference design.
This is good news for the Linux community and OS vendors in general.
So what do we get with ARM64? ARM 32-bit designs have 15 general purpose 32-bit registers. ARM64 has 31 general registers, each 64 bits wide.
This means that optimized code is able to more often use registers for calculations, thus minimizing accesses to main memory. 64-bit registers can also hold more data.
The result is that ARM64 processors can do things much faster than ARM32.
A second benefit is energy efficiency. Using 64-bit length registers doesn’t increase power consumption. Because an ARM64 processor can perform a given job faster, in some case it will consume less total energy than its 32-bit counterpart.
ARM64 processors are creeping up in performance such that they can be talked about in the same breath with Core and Xeon CPUs. For example, the current NVIDIA Tegra X1 SoC has about 30% of the performance of an Intel Core i7-5775C but require only 15% of the power.
Here and on the horizon are a new breed of embedded applications that require high performance, low power consumption and also hard real-time response. Examples are autonomous vehicles, advanced robotic systems and unmanned aircraft platforms.
Hard real-time performance means that the application’s operating system must be able to guarantee a certain response time to external events in order for the app to function properly.
This maximum latency is often measured in tens of microseconds for critical subsystems.
ARM64 with its high performance-to-power ratio is an ideal compute engine for complex embedded applications such as self-driving vehicles. To help meet the low-latency requirements of these complex subsystems, Concurrent’s RedHawk Linux real-time operating system is now available in a version that’s supports the ARM64 architecture.
RedHawk Linux, which had previously supported only x86 and x86_64, is widely used in complex, high-performance real-time simulation, data acquisition and process control applications requiring low latency.
These types of solutions have traditionally required the power of Xeon and Core i7 processors. With the availability of ARM64, we now have a low-energy processor that is powerful enough to run complex embedded real-time apps.
And we have a full-service real-time Linux distribution and tool chain that can provide the required low latency.
Find out more at www.concurrent.com “Powering Brighter Ideas”