Skip to main content

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.

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 ext4load and rproc.
  • 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

Having Trouble?

Please check out our Community Forum for additional support.

Send Feedback!