Heterogeneous Multi-core Processing Overview
Introduction
Heterogeneous Multi-core Processing (HMP) on Toradex SoMs enables you to pair a high-performance application processor running Linux (Cortex-A) with one or more low-power real-time cores (Cortex-M or Cortex-R, for example). This architecture offloads time-critical or deterministic tasks (e.g., sensor handling, motor control) to the Cortex-M/Cortex-R cores. At the same time, the Cortex-A handles higher-level functions, typically running a fully featured OS (such as Embedded Linux, Torizon, Android, or QNX, among others), enabling both high throughput and real-time responsiveness.
HMP is also known as Asymmetric Multiprocessing (AMP), Asymmetric MCU Clustering, Dual-Core MCU, Domain-specific MCU Islands or Co-processor Offload.
Why Use Heterogeneous Multi-Core Processing
- Real-Time Performance: Run low-level tasks without the overhead of an operating system.
- Power Efficiency: While the Cortex-A cores remain in low-power mode, other cores, such as Cortex-M and Cortex-R, can perform tasks, improving the system's overall energy efficiency.
- Separation of Concerns: Split tasks based on complexity, run critical tasks independent of non-critical functions.
- Asynchronous Operation: Both cores can run in parallel, processing different tasks concurrently without interrupting each other.
Supported SoCs With HMP
| Vendor | Module | Main Core(s) | Alternative Core(s) (MCU) |
|---|---|---|---|
| TI | Aquila AM69 | 8x Cortex-A72 | 2x Cortex-R5F |
| Verdin AM62 | 4x Cortex-A53 | 1x Cortex-M4F | |
| NXP | Aquila iMX95 | 6x Cortex-A55 | 1x Cortex-M7, 1x Cortex-M33 |
| Verdin iMX8M Plus | 4x Cortex-A53 | 1x Cortex-M7F | |
| Verdin iMX8M Mini | 4x Cortex-A53 | 1x Cortex-M4 | |
| Verdin iMX93 | 2x Cortex-A55 | 1x Cortex-M33 | |
| Verdin iMX95 | 6x Cortex-A55 | 1x Cortex-M7, 1x Cortex-M33 | |
| SMARC iMX95 | 6x Cortex-A55 | 1x Cortex-M7, 1x Cortex-M33 | |
| Lino iMX93 | 1x Cortex-A55 | 1x Cortex-M33 | |
| OSM iMX93 | 2x Cortex-A55 | 1x Cortex-M33 | |
| Apalis iMX 8QuadMax 1 | 2x Cortex-A72, 4x Cortex-A53 | 2x Cortex-M4F | |
| Apalis iMX 8QuadXPlus 1 | 4x Cortex-A35 | 1x Cortex-M4F | |
| Colibri iMX 8QuadXPlus | 4x Cortex-A35 | 1x Cortex-M4F | |
| Colibri iMX7S 2 | 1x Cortex-A7 | 1x Cortex-M4 | |
| Colibri iMX7D 2 | 2x Cortex-A7 | 1x Cortex-M4 |
For modules with multiple core configuration options (e.g., Verdin TI AM62 available in single, dual, or quad variants), the table above shows the maximum core configuration available for that module. All variants support HMP functionality.
Glossary
- SDK: Software development kit, usually provides libraries, headers and examples. Both NXP and TI have their own SDKs (MCUXpresso SDK and MCU+ SDK, respectively)
- U-Boot: The bootloader used on Toradex SoMs; supports commands to load binaries into the Cortex-M/R core, such as
ext4loadandrproc. - RTOS: Real Time Operating Systems are a type of operating system designed to guarantee deterministic, bounded response times for time-critical tasks.
- RemoteProc: Linux kernel framework to boot and control remote processors (Cortex-M/R) from the main CPU.
- RPMsg: IPC protocol built on top of RemoteProc for message-based communication between Linux and Cortex-M/R.
- Shared Memory: Memory region mapped into both domains for fast data exchange.
- JTAG: Hardware interface for debugging and programming embedded cores.
Common Use Cases
- Deterministic GPIO/LED control: RTOS owns the GPIO hardware and executes time-critical I/O, while Linux sends control commands via RPMsg, ensuring predictable response times under all system loads.
- Sensor acquisition on RTOS, processing on Linux: RTOS performs precise, periodic sensor sampling and shares data with Linux, which handles logging, visualization, analytics, and networking.
- Motor control with Linux-based HMI and networking: RTOS runs real-time control loops (PWM, PID, encoder feedback) while Linux provides user interfaces, connectivity, and system management.
- Split audio pipeline: RTOS captures and buffers audio with low latency, and Linux performs compression, storage, streaming, and higher-level DSP without risking audio dropouts.
- Safety watchdog and system supervision: RTOS monitors Linux health and system signals and can reset or isolate Linux to meet functional safety requirements.
- Secure key storage and cryptographic offload: RTOS owns cryptographic hardware and private keys, exposing secure services to Linux without allowing direct access to secrets.
Getting Started With HMP
- NXP-based modules: Setting Up MCUXpresso SDK and Toolchain for HMP Development
- TI-based modules: Setting Up MCU+ SDK and Toolchain for HMP Development
Having Trouble?
Please check out our Community Forum for additional support.