ARM announced an embedded version of its ARMv8 architecture that will add virtualization and lightweight Linux support to the next of generation Cortex-R processors. The ARMv8-R architecture is 32-bit, but borrows features from the 64-bit ARMv8-A such as hardware-based virtualization and a more advanced MPU, enabling safety-critical embedded applications like automotive computers to run RTOSes, bare metal code, and Linux and Android on a single processor.
The next generation of Cortex-R processors will use a new ARMv8-R architecture featuring support for more robust Linux and Android distributions. The key enhancement to the 32-bit ARMv8-R is the presence of a bare metal hypervisor, which together with the inclusion of a Virtual Memory System Architecture (VMSA) similar to that found in the 64-bit ARMv8-A (Cortex-A53 and Cortex-A57), can support both virtual and protected memory systems on a single processor. Thanks to VMSA, this capability is said to be possible without sacrificing real-time responsiveness and process isolation of the RTOS kernel.

ARMv8-R architecture
(click image to enlarge)

ARMv8-R still lacks a full memory management unit (MMU), making it impossible for example to run a full-fledged OS like Ubuntu or Windows. However, with the help of the hypervisor and improved memory protection, which is claimed to greatly reduce context switching time, its memory protection unit (MPU) is said to be greatly enhanced, enabling support for more robust Linux distros.

As with current Cortex-R processors, it appears that real-time operating systems (RTOSes) will still rule the roost on these future Cortex-R processors. ARM lists Green Hills Integrity, Mentor Graphics’s Nucleus, and eSOL’s eT-Kernel as likely licensees. However, ARMv8-R CPUs will also be able to run bare metal (no OS) implementations, as well as full, “rich” Linux distros at the same time. The Linux distros will still need to be lightweight, says ARM, but they can include GUIs and can even be based on Android.

The Linux support of the current Cortex-R and even more microcontroller-like Cortex-M processors is limited to uClinux, an ultra-lightweight, fairly limited distro which does not require a MMU. Cortex-R and –M processors running RTOSes are also sometimes integrated with Linux-commanded Cortex-A CPUs in system-on-chip designs such as Broadcom’s NAS-oriented StrataGX BCM5862x which combines Cortex-A9 and Cortex-R5 cores. The future Cortex-R designs, however, will be able to accomplish similar feats on a single core.

ARMv8-R MPU operations
(click image to enlarge)

ARMv8-R enhancements over today’s Cortex-R chips include the addition of the same NEON SIMD instruction set provided in Cortex-A processors, thereby improving image signal processing. NEON was technically supported by ARMv7-R, but it was so unfeasible, it was never implemented in silicon, says ARM. This will change with ARMv8-R.

Other additions include more basic data packet error correction such as CRC, and support for embedded programming techniques like model-based automated code generation. The processors will support automotive and industrial interoperability and safety standards, including AUTOSAR, ISO 26262, and IEC 61508, says ARM.

Automotive apps lead the way

ARMv8-R is designed for real-time embedded processors for use in automotive electronics and other integrated safety and control applications, says ARM. The technology is of particular interest to automakers looking to integrate their in-vehicle infotainment (IVI) and telematics systems, while keeping them secure and isolated from each other. Emerging advanced driver assistance systems and vehicle to vehicle communications are a particular target, says ARM.

Until these truly embedded, multi-OS Cortex-R processors arrive, automotive-focused products such as Mentor Embedded Hypervisor are taking an intermediate step of letting multiple processors run different OSes and bare-metal implementations on the same Cortex-A SoC, with the help of ARM TrustZone. Now, ARMv8-R based processors will be able to perform a similar juggling act on a much more power-efficient Cortex-R platform.

Mentor Graphics is an early supporter of the technology, and supplied a testimonial: “Mentor’s support of the ARMv8-R architecture will enable both ARM licensees and embedded developers to create innovative solutions for automotive, industrial, and safety-critical applications,” stated Glenn Perry, General Manager of Mentor Graphics Embedded Software Division.” Our mutual customers can make use of this innovative architecture ahead of silicon availability through virtual prototypes and also when ARMv8-R based devices are available with the small footprint, power-efficient Nucleus RTOS, Mentor Embedded Linux, virtualization technologies, AUTOSAR solutions, and Sourcery CodeBench tools.”

ARM doesn’t use the term “Internet of Things” (IoT) in the announcement, but ARMv8-R would appear to cover at least part of that market, which ranges from Cortex-A5 processors on the high end to Cortex-M4 microcontrollers on the low end. ARM just released a white paper developed in conjunction with The Economist called The Internet of Things Business Index: a Quiet Revolution Gathers Pace [PDF], in which it surveyed 779 business executives from 19 different industries. The survey found that 75 percent of businesses are actively looking into IoT applications, and 94 percent believe it will have a major impact within three years.

ARM’s only milestone for the ARMv8-R rollout is the arrival of DS-5 ARM tools and Fast Models support for the platform in Q3 2014. This would suggest a distinct possibility of 2015 silicon availability.

DS-5 Development Studio 5.16

In somewhat related news this week at ARM TechCon, ARM announced a new version 5.16 of DS-5 Development Studio that adds support for debug and optimization of embedded software based on RTOSes. Specifically, DS-5 now supports ARMv8, 64-bit Cortex-A50 series processors, including the Cortex-A57 and Cortex-A53, running bare metal, RTOS, or Linux-based software stacks.

DS-5 adopts trace technology available in most Cortex-M microcontrollers to collect RTOS task activity, hardware performance counters, software events, and samples of the program counter. Results are then presented as a set of reports. Despite this RTOS and bare-metal support, Cortex-A50 processors are expected to primarily run advanced OSes such as Linux, Android, and iOS.