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.
Board | Cores |
---|---|
iMX6 SoloX COM | Cortex-A9 / Cortex-M4 |
iMX7 Dual COM | 2x Cortex-A7 / Cortex-M4 |
iMX7 Dual uCOM | 2x Cortex-A7 / Cortex-M4 |
iMX7ULP uCOM | Cortex-A7 / Cortex-M4 |
iMX8M COM | 4x Cortex-A53 / Cortex-M4 |
iMX8M Mini uCOM | 4x Cortex-A53 / Cortex-M4 |
iMX8M Nano uCOM | 4x Cortex-A53 / Cortex-M7 |
iMX93 uCOM | 2x Cortex-A55 / Cortex-M33 |