Heterogeneous Multi-core Processing on the NXP i.MX 8M Mini

In today’s world of embedded systems, designers strive to achieve high-performance application processing while efficiently managing embedded systems when time is critical in a single System-on-Chip (SoC) package solution. The HMP (Heterogeneous Multi-core Processing), based on the NXP i.MX 8M Mini, which uses Arm Cortex-A53 and Cortex-M4 processor cores in a single SoC, has several benefits and challenges.

What is HMP?

In general, a Heterogeneous Multi-core Processing device is a powerful solution which has multiple processing cores of different types on a single SoC package. Different types of cores have been optimized for different domains and are combined to create the best of two domains.

Source of graphic: “Introduction to heterogeneous multicore processing architecture” by Igmar Hernandez.

The NXP i.MX 8M Mini offers a very wide range of scalable performance options, offering designers a great deal of choice and opportunity to use the best-fit core for their applications without being forced into a one size fits all solution. The i.MX 8M Mini offers scalable performance, from Solo-Lite up to Quad Cortex-A53 cores and a single Cortex-M4 core.

In general, the Cortex-A application processor cores are used for performance-intensive GUI/HMI interfaces and the Cortex-M microcontroller core is used for a wide range of embedded applications. Another great feature of having both cores in a single SoC, is Cortex-A devices make use of a rich operating system environment such as Linux or Android while Cortex-M can use an embedded RTOS, to efficiently manage the time of a central processing unit (CPU). HMP provides the best solution for concurrent execution of multiple isolated software environments within a single SoC system.

The benefits of multiple software execution environments:

  • Real-time performance
  • Power consumption
  • Fast boot
  • System integrity
  • System security
  • Reuse of legacy software

For example, in Industrial use case, one can use Cortex-M for real time performance when connected to controls that require a real-time response and save power consumption because the majority of active time spent aggregating data from sensors does not require the need for a power hungry application processor.  The Cortex-M microcontroller also has a fast boot time and can reuse legacy software from the standalone MCU. The system security can be improved by separating the peripheral access from the OS. System integrity can be improved by controlling critical diver notifications independent of the OS updates.

Below are several key benefits of using an HMP SoC, but they come with some challenges as well:

BENEFITS

  • Execute Linux/Android OS on Cortex-A and Real-Time OS on Cortex-M
  • Flexible and efficient inter-processor communication.
  • Control over real-time properties, while running management/administrative tasks
  • Improved system reliability and security
  • Reuse existing microcontroller (MCU) software by using Cortex-M
  • Flexibility to enable low-power processing
  • Reduced BOM cost

 

CHALLENGES

  • Requires resource partitioning and protection mechanisms
  • Inter-processor Synchronization and Communication
  • Debugging of the application is more complex in a multi-core environment
  • More complex application development compared to a single-core system

Source of graphic: “i.MX 8M Mini Family Block Diagram” by NXP.

In Summary:

In heterogeneous multi-core processing, the benefits far outweigh the challenges. Having different types of processor cores in a single SoC, gives designers the flexibility of running a high-performance application and at the same time efficiently managing the embedded systems when time is critical in a single System-on-Chip (SoC) package.  Combining different types of processor cores in to a single SoC created the best of these two domain solutions. Furthermore, there are software solutions already available that work well with HMP architecture.

Edge-to-Intelligent (E2I) Single Board Computer (SBC) from VEST offers ready to use heterogeneous multi-core processing solutions that will reduce the time and cost of embedded device development and ultimately create an end-product of highest quality and reliability.