Sign In
Forgot Password?
Sign In | | Create Account

Multi-core, multi-OS confusion

It is increasingly common for embedded designs to be implemented using multiple cores. At Mentor Graphics we are keen to support our customers by providing software and services to help them with such endeavors. We also espouse the idea of using multiple operating systems in such designs. I recently presented a Web seminar on this topic [a recording is available as an archive] and I have written a few articles.

As a result of one such piece, I was taken to task by one of our competitors, who accused me of over-complicating the matter. This revealed a complete lack of understanding of what multi-core/multi-OS is all about …

First off, I am a great fan of simplicity. If there is a simple way to do something, it is my belief that this is almost always the best way to do it. For example, if you can successfully implement a system using a single processor, then that is exactly how you should go about it. By “successfully implement”, I mean achieve all the design goals; functionality and time to market are obvious, but increasingly power consumption is a critical issue.

Using a full spec RTOS, like Nucleus, which, apart from being a kernel, has a very wide range of middleware, like networking, very sophisticated systems may be realized. As such an RTOS has a modest memory footprint, memory may be minimized, which helps with power consumption. A true RTOS is also very efficient, so CPU power [or clock frequency] may be reduced, which can help with power consumption tremendously. Incidentally, both these factors reduce bill of materials costs too, which is an added bonus.

But sometimes this is not enough and a more complex solution is the only way to reach the required functionality and power consumption goals. Utilizing multiple CPUs – cores on a chip or chips on a board – is one way to provide the additional processing power to achieve the required functionality. A big benefit of multiple cores is that their total power consumption is likely to be much less than that of a single CPU running at a higher frequency.

Having decided to use multiple cores, there are some design optimizations that become possible. The choice of each CPU can be considered separately and be based upon the required functionality of each core. So multiple processor architectures may be used. Exactly the same approach may be applied to operating system selection; it may be ideal to deploy a true RTOS on some cores and something like Linux or Android on others. An RTOS is ideal where hard real time performance is required, but Linux could be perfect for the user interface, for example.

To be clear: there is no suggestion that multiple cores should be used in order to accommodate multiple operating systems. Multi-OS is a consequence of multi-core.

Multi-OS, Linux, Multicore, Nucleus Kernel, Nucleus, Android

More Blog Posts

About Colin Walls Follow on Twitter

Colin WallsI have over thirty years experience in the electronics industry, largely dedicated to embedded software. A frequent presenter at conferences and seminars and author of numerous technical articles and two books on embedded software, I am a member of the marketing team of the Mentor Graphics Embedded Systems Division, and am based in the UK. Away from work, I have a wide range of interests including photography and trying to point my two daughters in the right direction in life. Learn more about Colin, including his go-to karaoke song and the best parts of being British: Visit The Colin Walls Blog

More Posts by Colin Walls

Comments 6

Post a Comment
Nice Post, btw do you know any good usenet archives and or mailing list archives site for unix / linux / bsd

11:12 AM Nov 8, 2009

Sorry ircguru, I am not a frequent user of such resources, so I have no recommendations to make.

Colin Walls
9:36 AM Nov 9, 2009

Dear Colin In complex embedded systems like Automotive Entertainment systems, heterogenous multi-cores (multi CPUs) are often the only soulution to meet the requirements. but as this become more complex to fill the gap with the consumer devices, it becomes more defficult for a system designer to use more cpu cores (multi core cpu for example), as this will more than double the software development effort (when using multiple RTOS). are there any RTOS that support multi-cores processor?

5:30 PM Nov 9, 2009

m.k: You could simply implement the same RTOS [like Nucleus] on each core, if that meets your design goals. There are OSes where you can have one copy running tasks on several CPUs, but they are quite complex.

Colin Walls
11:54 AM Nov 10, 2009

I want to quote your post in my blog. It can? And you et an account on Twitter?

9:04 AM Dec 25, 2009

stojmir: You may quote me. I am colin_walls on Twitter.

Colin Walls
10:09 AM Dec 25, 2009

Add Your Comment

Please complete the following information to comment or sign in.

(Your email will not be published)


Online Chat