Understand why system architects are implementing HMP systems for embedded applications
March 08, 2017
We encounter more and more compute systems every day, starting with the smartphone and the smart watch tethered to it. In our homes, we interact with...
We encounter more and more compute systems every day, starting with the smartphone and the smart watch tethered to it. In our homes, we interact with smart and connected televisions, refrigerators, washing machines, and thermostats. In the gym, smart and connected equipment is becoming the norm. All are transforming the way we live for the better.
[Figure 1 | Embedded and Internet of Things (IoT) devices are transforming the way we live and require advances in computing system design.]
A common requirement for all of these embedded/IoT devices is the variety of tasks expected from them in an energy-efficient manner. This means that these electronic systems need to handle diverse compute requirements, and diverse workloads are not industry-specific; they span several markets. Some common examples include embedded applications, in-vehicle-infotainment (IVI) systems, healthcare, and industrial applications.
These next-generation embedded applications require improved performance and security without sacrificing the system’s overall efficiency. Therefore, modern compute systems must be designed to:
- Meet conflicting requirements to provide high performance for running several demanding applications while being able to respond quickly to real-time events
- Handle general data processing tasks efficiently, as well as specialized multimedia processing
- Support different software environments, for example, running Linux on one compute element and a real-time operating system (RTOS) on another.
To meet these conflicting requirements, modern system designers rely heavily on building heterogeneous compute systems. Heterogeneous compute is fundamentally about using the right processor optimized for a set of tasks. Some of the benefits of such heterogeneous multiprocessor (HMP) systems include increased overall system performance and efficiency and reduced system cost due to integration of different compute elements.
By using applications processors and microcontrollers (MCUs) in the same system on chip (SoC), embedded applications can benefit from the combination of ultra-low-power (ULP) ARM Cortex-M processors alongside higher performance Cortex-A processors. They can also take advantage of the benefits of the two vast software ecosystems for next-generation embedded devices.
There are several types of HMP systems. In a generic sense, an HMP system is a complex system that combines several different compute elements like a general-purpose processor, a graphics processor, an image processor, a video processor, a display processor, and possibly several accelerators. Figure 2 shows a typical HMP compute system that includes several compute elements. HMP systems are also used to denote compute systems that use various combinations of ARM’s Cortex processors, such as Cortex-A, Cortex-R, and Cortex-M.
[Figure 2 | A generic heterogeneous multiprocessor (HMP) compute system.]
What are the various heterogeneous compute systems using ARM Cortex processors? It’s common for several compute systems to use different combinations of Cortex processors to provide the right functionality for a given application. Table 1 depicts the different possible combinations of HMP systems using Cortex processors and lists the key differences between these systems.
[Table 1 | Multicore processor terminology.]
The three different Cortex processor families from ARM are optimized for different compute requirements as shown in Table 2.
- Cortex-A processors are optimized for running rich operating systems (OSs) like Linux and Android and can provide high performance for demanding applications across a wide range of applications.
- Cortex-R processors are optimized for hard real-time applications with high performance requirements.
- Cortex-M processors are optimized for the ULP and low-cost compute required for a wide variety of embedded applications with real-time capabilities.
[Table 2| Architectural differences between ARM Cortex processor families.]
Heterogeneous systems using all three Cortex processors are common today and used across many applications. Some common examples include smartphones, wearable devices with rich graphical user interfaces (GUIs), and advanced driver assist systems (ADAS). Furthermore, embedded systems that were traditionally based on simple MCUs are now increasingly required to support rich GUIs.
This requires the use of Cortex-A processors in addition to Cortex-M processors. Therefore, an increasing number of embedded systems use Cortex-A processors extensively to address high performance, rich user interfaces, and rich OSs like Linux in general-purpose embedded, industrial, consumer, and medical applications. These applications also use Cortex-M processors to address deterministic, real-time control requirements in industrial, medical, and consumer applications like intelligent thermostats.
Want to find out more?
- Come to my talk (Session 34) at embedded world 2017:
- Optimizing ARM Cortex-A and Cortex-M Based Heterogeneous Multiprocessor Systems for Rich Embedded Applications – Thursday, March 16th, 13:30-14:00 (Session 34)
- Be the first to hear any ARM HMP news, talks, or webinars by registering for the monthly ARM embedded engineering newsletter.