Multi-OS and Multicore
Reduce Complexity and Design Cycles
Mentor Embedded has created comprehensive solutions of software, tools, and services to address the needs of device manufacturers who are migrating to multicore with SMP or AMP software deployments.
The evolution in multicore hardware is driven by the requirements of performance, power management, form factor, and bill of materials. With the benefits comes an increased complexity in software development and longer design cycles. To overcome the hurdles, Mentor Embedded has created comprehensive solutions of software, tools, and services to address the needs of device manufacturers who are migrating to multicore with SMP or AMP software deployments.
Symmetric Multi-Processing (SMP) allows a single operating system instance to control all processor cores and resources of a multicore platform. Application threads are distributed to idle cores as determined by the SMP scheduler. The performance gains of migrating to SMP multicore are directly related to parallelism in the application code and work load distribution to available cores.
- Performance scaling from single to multicore.
- Workload distribution handled by scheduler
- Integrated power management of idle cores
Nucleus SMP is an evolution of Nucleus OS for multicore platforms. Nucleus SMP has the same characteristics which made Nucleus OS the world’s most deployed real-time operating system.
Deterministic, real-time performance
Nucleus SMP was design to scale application performance based on a deterministic and preemptive multicore scheduler.
Backward compatibility with Nucleus OS
Existing Nucleus middleware and application code seamlessly migrates to multicore environments with Nucleus SMP.
BCD, soft, and interrupt affinity gives the developer control over how and where threads and interrupt handling are processed to improve caching performance, distribute workloads, and support legacy code.
The Nucleus SMP library including support for threads, communication, synchronization, and interrupt handling is about 50KB of code.
Delivered as source code
Full access and control with minimal image size based on functionality used.
Asymmetric Multi-Processing (AMP) allows each processor core to run its own instance of an operating system. Multiple operating systems can coexist or multiple instances of an operating can coexist on a multicore platform. While applications can be well decomposed based on functionality, additional complexities of resource partitioning and inter-processor communication are typically required.
The Mentor AMP solution resolves software requirements including resource partitioning and inter-processor communication. As software is only part of the Mentor solution, advanced development tools and Services complete the Mentor multi-OS offering.
- Leverage Android/Linux for connectivity and rich user interface experience
- Use Nucleus OS for real-time, deterministic activities
- Mentor MCAPI provides standards based IPC between OS instances
- Linux for control and management plane
- Nucleus OS for data plane packet processing
- Android/Linux for user interface
- Nucleus OS for safety certification
Printing and Imaging
- Android/Linux for connectivity and user interface
- Nucleus OS for real-time printing and imaging services
MCAPI Inter-Processor Communication (IPC)
MCAPI is the Multicore Association (MCA) standard for closely distributed IPC. Asymmetric Multi-Processing (AMP) designs leverage Mentor MCAPI to provide communication between Android, Linux, and Nucleus OS running on different cores of a multicore processor. Application code using MCAPI becomes portable across hardware, physical transports, and operating systems.
Fast, lightweight, and scalable IPC solution
Provides high bandwidth communications with minimal latency
Highly portable to new target, transport, and OS
Adopting the MCA standard insures application portability to new hardware and operating systems
Simple and intuitive API
Application developers create endpoints, similar to TCP/UDP sockets, for sending and receiving data
Multiple endpoint channels with prioritization
Mentor MCAPI supports multiple endpoints each with prioritization of messages
OS and transport software abstraction layers
Extensible support for other operating systems and physical transports
Mentor AMP leverages technology originating in the ePAPR (embedded Power Architecture Platform Requirements) standard which defines device trees and the machine state at guest OS initialization. The boot loader (U-Boot, for example) is responsible for passing device trees via specific CPU registers prior to guest OS initialization. Run-time code in the guest OS parses the device tree and configures the associated resources.