Mentor Graphics designs its software development tools to handle a range of platforms from small, single-core microcontrollers to multicore system-on-chip (SoC) platforms. Symmetric multiprocessor (SMP) systems have had plenty of support, including hypervisors. They may run virtual machines (VMs) with a variety of operating systems (Oss), but the overall management comprises VMs. This is much different from a heterogeneous multicore system like Texas Instruments’ latest OMAP5, which includes a mix of dual ARM Cortex-A15 and dual Cortex-M4 cores (Fig. 1).
Developers have had to deal with the various OSs, middleware, and development tools when addressing heterogeneous multicore systems. Often, though, developers have had to provide the integration between the various components and tools. This is not easy, and using software components from different vendors makes it even harder.
Mentor has not even chosen a name for this overarching embedded development solution, which encompasses the company’s wide range of software and services (Fig. 2). Developers, then, can use high-level OSs like Mentor Embedded Linux and mix them with bare metal applications as well as the Nucleus real-time operating system (RTOS) running on different cores.
Part of the solution is the support for interprocess communication (IPC) and management such as VirtIO, the Multicore Communications API (MCAPI) from the Multicore Association (see “Multicore Association Readies Communications API Spec” at electronicdesign.com), rpmsg, and remoteproc. This brings hypervisor support to heterogenous multicore, whereas the typical hypervisor is restricted to an SMP platform. Mentor Graphics’ hypervisor shares this restriction, but the entire solution does not allow developers to use similar tools and application programming interfaces (APIs) across all the cores in platforms like TI’s OMAP5.
The new tools start at system configuration and move through booting to IPC. They wind up with system visualization, which is a system-wide trace capability that lets programmers track task states across the mix of cores within the system. The boot support is an example of the integration details involved. Keep in mind that booting can be a complex process with multiple heterogeneous cores as well as VMs. Secure boot support is on the horizon. Hardware like the OMAP can handle it.
Tool vendors are going to need to address heterogeneous multicore environments as more and more appear. Integration and support are major issues and even more so in this environment.