Select Page

Multicore Microcontrollers Part 1: How Project Resources Determine the Right Selection of the Multicore Microcontroller

The demands placed on microcontroller-controlled systems are increasing year by year. They are expected to offer greater convenience, expanded functionality, and enhanced security for the user. The processing cores that handle these expanded and new tasks require ever more computing power. This three-part series helps developers find the right multicore MCU for their needs.

First, a requirements analysis for the software and hardware must be conducted and the results documented. Following this, the recorded requirements should be evaluated according to their importance to the project.

Figure 1: Successful approach to multicore microcontroller selection

The priority classes determine how critical the requirement is for the project:

  • must (mandatory; highest priority)
  • should (important for the project; high priority)
  • will (it would be good if it were included; low priority)

Figure 2: Assignment of requirements to priority classes for the project

Before a market analysis can be conducted, it is necessary to define the precise requirements for the control computer, for example, for a microcontroller component in the system control. These requirements form the basis for the microcontroller selection.

Figure 3: The resources required in the project determine the microcontroller selection. 

Find the right multicore microcontroller in 3 steps

Similar to buying shoes, selecting the right microcontroller begins with finding the correct size. At the same time, we should check whether the three most important criteria for automotive or industrial applications are met:

Step 1: Computing power, power consumption and coprocessors

Is sufficient computing power available?

Here, it is necessary to examine what type of arithmetic, what software scope (memory sizes) and what time constraints exist for providing the results.

Step 2: Safety and Security

Are there any safety requirements to be met?

Depending on the type of requirements, special hardware modules or microcontroller architectures may be needed.

Step 3: Peripherals and Pins

Are the existing resources in the periphery sufficient?

This section examines whether the resolution and functionality of the existing modules are suitable for the application and whether the number of port pins is sufficient. Considerations regarding the required simultaneous availability of resources must also be made.

Steps to successful multicore microcontroller selection:

  • Definition of the methodology/procedure
  • Requirements analysis for resource identification
  • Selection criteria:
  • Core type, computing power and number of cores
  • Safety and Security
  • Data storage/program storage
  • Interrupt and DMA controllers
  • Peripherals and ports
  • Bus system(s)

Step 1 – Multicore microcontroller selection: Is sufficient computing power available?

More MIPS per watt

Achieving theoretically higher computing power is not the end of the development. Rather, it must be available under various conditions, such as within a specific power budget. This is particularly true for battery-powered devices. In the development of mobile phones, we have figuratively reached the limit. The batteries required for operation cannot continuously supply more power without impacting size and weight.

In notebooks, increased computing power has been achieved through multicore CPUs at moderate clock speeds. With this approach, the power consumption of single-core chips, despite their extremely high clock speeds, does not increase excessively. Multicore architectures found their way into microcontroller development a few years later. Here, the same requirements apply: more computing power without a significant increase in power consumption.

The automotive industry as a pioneer in the use of multicore microcontrollers

Two crucial aspects must be mentioned in the development of control systems in automotive engineering:

  • Compliance with legal requirements regarding fuel consumption and pollutant emissions
  • Demand for higher performance regarding communication and entertainment systems in cars, and especially in autonomous driving.

Microcontroller component manufacturers offer a wide variety of new multicore architectures:

  • Multiple processing cores of the same CPU type: homogeneous multicore microcontrollers
  • Various specialized processing cores: heterogeneous multicore microcontrollers
  • Multiple identical + specialized processing cores: heterogeneous multicore microcontrollers

What types of cores are needed, and what computing power should they be able to deliver at a given maximum power consumption? Is the required component available within a component family with different core implementations and various packages (number of ports/pins)? These crucial aspects are important for future projects.

Figure 4: Heterogeneous building block architecture

Figure 5: Singlecore/multicore building block family concept

Software migration from single-core to multi-core

In the first step, the task of software migration from single-core to multi-core seems quite simple: Let's just let the existing software run in parallel on multiple cores.

Does the computing power available with two cores equal 200%?

One core corresponds to computing power x, so a dual-core processor has twice x. However, this effectively results in a performance increase of only about 50 %, or in some cases even less. Why is that?

The architecture of single-core software is generally not suitable for successful execution on a multi-core system. The following challenges can be identified:

  • Single-core software is executed sequentially; multi-core software requires synchronization points and communication to achieve the same result.
  • A resource (e.g., a data storage device, a peripheral module, etc.) can only be accessed by a single core or bus master at any given time; multiple cores can only access the same resource simultaneously with additional coordination. Inconsistent data states of data blocks must be avoided during multicore access.
  • A single processing core uses a bus system; multiple processing cores operating in parallel can interfere with each other when accessing resources on the same bus. This can lead to significant resource access delays.

The biggest challenge lies in coordinating and monitoring the use of shared resources in the software. One solution is resource management for the development of multicore software components. A successful transition from singlecore to multicore systems relies on the correct selection and application of the multicore microcontroller to be used.

A multicore architecture becomes advantageous when a certain required computing capacity (in MIPS) is combined with a maximum tolerable power consumption. Many microcontroller applications are battery-powered, making the system's power consumption a top priority.

This trend is already a reality in laptops/notebooks: The use of multicore CPUs is intended to ensure the longest possible operating time with a specific battery capacity and is advertised as "long battery life." Software plays a crucial role in minimizing power consumption: Aspects such as multicore multithreading are paramount. Software architecture forms the basis for optimal software processing. The balance between speed and power consumption is key, with the goal of high system efficiency: "As many MIPS per watt as possible.".

Figure 6: Symmetric/Asymmetric Multitask Processing

Various applications require arithmetic support such as floating-point or DSP support. In these cases, a dedicated arithmetic coprocessor may be necessary. Some CPU architectures have an extended instruction set (floating-point arithmetic, digital signal processor instructions, DSP) available for handling this specific type of arithmetic.

Application examples include complex motor control, complex sensor data processing, and image and sound processing. In most cases, only specific core architectures can meet the requirements. Almost exclusively heterogeneous processing cores are used as microcontrollers here, fulfilling the requirements of the specific arithmetic.

Conclusion

Expectations for the computing capacity of multicore microcontrollers with moderate power consumption are very high, but in reality they can only be achieved if a strictly structured software architecture and a clearly defined time profile of the application are available.

Go to calendar view

Part 2: Which safety and security requirements are important when choosing an MCU?

Part 3: Are the available resources in the periphery sufficient?

Further information

MicroConsult expertise on the topic of multicore & microcontrollers

MicroConsult Training & Coaching on the topic of multicore

MicroConsult Newsletter

With the MicroConsult newsletter, you'll stay on the pulse of the embedded world. Look forward to proven practical knowledge, real professional tips, and current events – directly from our experts for your project success.

Subscribe now!

Published by

Ingo Pohle

Ingo Pohle