You are in:  Design | Embedded Systems

Sign-up for newsletters:

Electronics Weekly newsletters - Sign up for Made By Monkeys, Mannerisms, Gadget Master and Daily and Monthly newsletters

Read The Magazine

Latest Issue: 8 - 14 Feb, 2012
Get Electronics Weekly

Multicore makes tool choice critical, says Green Hills Software

Richard Wilson
Wednesday 07 October 2009 16:28

The adoption of multicore processor hardware technology has created a distinction in design approach, particularly for the software layers which sit above the processor operating system.

The distinction can be expressed in terms of heterogeneous and homogeneous multicore processor systems.

A heterogeneous multicore system is essentially a system with a CPU surrounded by specialised and autonomous processing cores, such as graphics co-processors or DSP blocks.



A homogeneous multicore system is a group of processor cores in a multicore microprocessor, such as the Intel Core Duo or the Freescale QorIQ eight-core processor.

The first multicore systems were typically heterogeneous, but this is moving to homogeneous designs.

Blurring boundaries

“The boundary is blurring but there is a large gap between the two,” says Frank van den Berg, European technical director at Green Hills Software, which develops real-time operating systems and tools for both types of multicore system.

“We see designers coming from processor environments based on a control loop and interrupts moving to a multi-processor system and that needs an OS with the right functionality. The tooling becomes more critical,” says van den Berg.

“For example, on a system with three or four cores interacting, it is difficult for the developer to see what is happening, so they are reliant on the tools for handling the multicores.”

The key is time correlation between the cores so that the developer can see what is happening at a given point in time.

“If you do not have this ability to see everything on a single screen, you do not really know what is going on,” says van den Berg.

The next challenge is how to balance the tasks between the cores in a homogeneous system.    

“It is up to the OS to decide which task is running on which core,” says van den Berg.

The OS can make use of processor affinity, a technique whereby tasks are allocated to specific cores which are in the most favourable hardware state to achieve the most efficient result.   

But in a homogeneous system there is also the potential to run different operating systems on different cores. Running different cores in asymmetric or symmetric multi-processing can require separate OS and debug environments.

This is a natural progression from Green Hills’ experience in secure virtualisation. In 2003 the company introduced the Integrity Secure Virtualization (ISV) which allows Windows, Linux, VxWorks and other operating systems to run in secure virtual containers on a processor, such as ARM, Intel or Power.

Embedded virtualisation

Embedded virtualisation, as it has come to be called, incorporates hypervisor technology, which runs multiple OS on multicore processors.

Consider an eight-core processor, such as QorIQ, where two cores are running in AMP and the other six in SMP. This can be used to separate critical and non-critical tasks as in a telecoms network processor.

Six cores will be doing the routing and so will be a closed system. Whereas there will be control functions, which the user will need access to, running on the other two cores.

 

Comments powered by Disqus