Unveiling AMP: Enabling Deterministic and Rich OS Coexistence in PolarFire FPGAs

The landscape of embedded systems is constantly evolving, demanding flexibility and performance to meet diverse application requirements. Microchip's PolarFire FPGAs address this need by integrating a powerful RISC-V processor subsystem, alongside the inherent programmability of the FPGA fabric. This article delves into one of the key features of the PolarFire RISC-V subsystem – Asymmetric Multiprocessing (AMP) mode. We will explore the concept of AMP, its benefits, and how it is implemented within the PolarFire architecture.

Understanding Asymmetric Multiprocessing (AMP):

In traditional Symmetric Multiprocessing (SMP) systems, all cores are identical and share resources equally. However, real-world embedded applications often have diverse processing demands. AMP addresses this need by introducing heterogeneity into the multi-core landscape. It allows for the coexistence of two distinct types of cores within a single system:

  • Application Cores: Designed for running general-purpose operating systems like Linux, handling complex tasks, and offering high performance.
  • Monitor Cores: Optimized for real-time deterministic applications, prioritizing predictable execution times and low latency to ensure timely completion of critical tasks.

RTOS on a core can handel IO operation with the deterministic result

Benefits of AMP in PolarFire FPGAs:

The implementation of AMP in PolarFire FPGAs unlocks several advantages for embedded system development:

  • Efficient Resource Utilization: By employing dedicated cores for specific tasks, AMP optimizes resource utilization. Application cores can handle complex tasks efficiently while monitor cores ensure real-time responsiveness for critical operations.
  • Simplified Development: Developers can leverage the rich features of an operating system like Linux on application cores, while maintaining deterministic behavior for real-time tasks on monitor cores. This separation simplifies development and reduces the need for complex software synchronization mechanisms.
  • Enhanced System Reliability: The isolation of real-time tasks on dedicated monitor cores safeguards their execution from potential interruptions or fluctuations in workload on application cores, contributing to increased system reliability.
  • Flexibility: AMP allows developers to tailor the system to the specific needs of the application. They can choose the appropriate number and type of cores to meet performance, real-time, and resource constraints.

AMP Implementation in PolarFire FPGAs:

PolarFire FPGAs integrate a RISC-V processor subsystem featuring:

  • Four 64-bit application cores (RV64GC): Optimized for running Linux and general-purpose applications, supporting the M, A, F, D, and C extensions.
  • One 64-bit monitor core (RV64IMAC): Ideal for real-time deterministic applications, supporting the M, A, and I (Integer Multiply-Accumulate) extensions.

These cores are connected to a shared memory hierarchy and peripherals, enabling data exchange and communication. However, AMP functionality requires additional elements to ensure isolated execution and efficient resource management:

  • Memory Management Unit (MMU): The MMU plays a crucial role in AMP by providing virtual memory management for application cores running Linux. It translates virtual addresses used by applications to physical memory addresses, ensuring isolation between applications and preventing them from interfering with each other or the monitor core.
  • Interrupt Handling: A dedicated interrupt controller efficiently manages interrupts from various sources, including peripherals, timers, and software requests. It prioritizes real-time interrupts from the monitor core, ensuring timely handling of critical tasks, even when application cores are processing other requests.
  • Software Support: The Linux kernel is modified to recognize and utilize the separate application and monitor core domains. This allows developers to leverage standard Linux APIs for application development while employing real-time libraries and frameworks for deterministic tasks on the monitor core.

Realtime tie cores can access DDr4 memory directly

Leveraging AMP for Rich and Deterministic Applications:

AMP in PolarFire FPGAs empowers developers to create sophisticated embedded systems that combine:

  • Rich Operating System Functionality: Application cores running Linux can leverage its vast ecosystem of libraries, tools, and software applications, simplifying development and enabling access to a wide range of features.
  • Real-Time Performance: The dedicated monitor core ensures deterministic execution of critical tasks, meeting strict deadlines and latency requirements crucial for real-time applications like motor control or industrial automation.

SOM1-SOC is the most powerful SOM based on Polarfire FPGA in the market


AMP is a powerful feature within the RISC-V processor subsystem of PolarFire FPGAs. By enabling the coexistence of application and monitor cores, it offers flexibility, efficient resource utilization, and simplified development for building complex embedded systems. This approach fosters innovation in diverse application domains, allowing developers to leverage the power of both rich operating systems and deterministic real-time execution within a single FPGA platform.

For more information, please contact Sundance DSP.


要查看或添加评论,请登录

Sundance Digital Signal Processing INC.的更多文章

社区洞察

其他会员也浏览了