Skip to main content

Introduction

What is Heterogeneous Multi-core Processing (HMP)?

In general, a processor with multiple cores of different types enables Heterogeneous Multi-core Processing, or HMP for short.

Cores that have been optimized for different things are combined to create the best of different worlds. More specifically in the i.MX world, it allows a feature rich OS, like Linux, to run on Cortex-A cores and a Real-Time OS (RTOS) to run on the Cortex-M core.

Benefits with HMP

  • Keep control over real-time properties, while running management/administrative tasks
  • Improved system reliability and security
  • Reuse existing microcontroller (MCU) software, see migration benefits in section below
  • Possibility to lower power consumption
  • Reduced BOM cost

Challenges with HMP

  • Shared resources require isolation and protection mechanisms
  • Debugging of the application is more complex in a multi-core environment
  • More complex application development compared to a single-core system

Migrating from a Microcontroller

Do you have a microcontroller (MCU) based design and need a lot more performance for the next generation?

A very interesting option is to migrate that MCU based design to an i.MX processor with HMP capabilities. Place the existing application on the Cortex-M core.

Let the application grow on the Linux side. Place all management functions there – all the new features customers want you to add to your product – for example advanced graphical user interfaces, databases, file system handling and complex communication protocols.

Benefits with migrating

  • Saved BOM cost because the Cortex-M core is basically free
  • Get access to the best of both worlds; a feature rich OS, like Linux, and a real-time operating system (RTOS)
  • Keep full control over real-time requirements and get separation between critical and non-critical tasks
  • A future-proof platform is created!

COM boards with HMP support

Embedded Artists offers several COM boards with HMP support. The table below lists the COM boards that are currently available (and under development) and a few of their features.

BoardCores
iMX6 SoloX COMCortex-A9 / Cortex-M4
iMX7 Dual COM2x Cortex-A7 / Cortex-M4
iMX7 Dual uCOM2x Cortex-A7 / Cortex-M4
iMX7ULP uCOMCortex-A7 / Cortex-M4
iMX8M COM4x Cortex-A53 / Cortex-M4
iMX8M Mini uCOM4x Cortex-A53 / Cortex-M4
iMX8M Nano uCOM4x Cortex-A53 / Cortex-M7
iMX93 uCOM2x Cortex-A55 / Cortex-M33