•
A typical bare-metal application uses only a single core, you must develop run
time capabilities to manage process between both cores and the cache subsystem
if you want to fully utilize the MPU subsystem.
•
As your application increases in complexity you may need to build capabilities to
manage and schedule processes, handle inter-process communication and
synchronize between events within your application.
Even a small, lightweight RTOS offers simple scheduling, inter-process communication
and interrupt handling capabilities that make efficient use of the resources in the MPU
subsystem.
5.1.2.3. Using Symmetrical vs. Asymmetrical Multiprocessing (SMP vs. AMP)
Modes
The Dual Core ARM Cortex-A9 MPCore* in the Cyclone V / Arria V HPS can support
both Symmetrical Multi-processing (SMP) and Asymmetrical Multi-processing (AMP)
configuration modes.
In SMP mode, a single OS instance controls both cores. The SMP configuration is
supported by a wide variety of operating system manufacturers and is the most
common and straightforward configuration mode for multiprocessing.
Commercially developed operating systems offer features that take full advantage of
the CPU cores resources and use them in an efficient manner resulting in optimum
performance and ease of use. For instance, SMP enabled operating systems offer the
option of setting processor affinity. This means that each task/thread can be assigned
to run on a specific core. This feature allows the software developer to better control
the workload distribution for each Cortex-A9 core and making the system more
responsive as an alternative to AMP.
GUIDELINE: Familiarize yourself with the performance and optimizations
available in commercial operating systems to see if an SMP-enabled OS or
RTOS meets your performance and real-time requirements.
In the AMP (Asymmetrical Multi-Processing) configuration, two different operating
systems or two instances of a single operating system run on the two cores. The two
operating systems have no inherent knowledge of how they share CPU resources. To
ensure efficient use of MPU subsystem resources in this environment, you must deal
with several complex issues when designing your system.
Caution:
Use AMP only if you are familiar with the techniques to manage and schedule
processes, handle inter-process communication, synchronize between events, manage
secure processes between the two instances of the operating systems.
Note:
OS providers do not generally offer support for using their OS in an AMP mode, so a
special support agreement is typically needed in this case.
5.1.3. Assembling your Software Development Platform for Linux
This section presents design guidelines to be used when you have selected Linux as
the OS for your end application.
5. Embedded Software Design Guidelines for SoC FPGAs
AN-796 | 2018.06.18
AN 796: Cyclone V and Arria V SoC Device Design Guidelines
53