Posted by Mark Hermeling at 06:13 AM in Aerospace & Defense, Automotive, Certification, Consumer, Multi-core, Networking, Software Engineering, Tips & Tricks, Virtualization, Wind River | Permalink | Comments (0) | TrackBack (0)
Reblog
(0)
| | Digg This
| Save to del.icio.us
|
|
Posted by Mark Hermeling at 05:56 AM in Aerospace & Defense, Automotive, Consumer, Linux, Multi-core, Networking, Telecom, Virtualization, VxWorks, Wind River | Permalink | Comments (0) | TrackBack (0)
Reblog
(0)
| | Digg This
| Save to del.icio.us
|
|
Posted by Mark Hermeling at 12:42 PM in Consumer, Digital Living, Multi-core, Tips & Tricks, Virtualization, VxWorks, Wind River | Permalink | Comments (0) | TrackBack (0)
Reblog
(0)
| | Digg This
| Save to del.icio.us
|
|
I have been back in Ottawa now for just over a week after my 5 week trip through Europe and am working through my notes from the past month. And what a month it has been, in an earlier post I jokingly declared 2010 the year of embedded virtualization and this is certainly ringing true.
Posted by Mark Hermeling at 07:15 PM in Aerospace & Defense, Automotive, Consumer, Multi-core, Networking, Virtualization, Wind River | Permalink | Comments (0) | TrackBack (0)
Reblog
(0)
| | Digg This
| Save to del.icio.us
|
|
Ok, so I got a little bit of flak verbally, through email and Skype for unilaterally declaring 2010 the year of embedded virtualization. People seem to agree though, it is a hot technology, and a technology that can change the way that we develop embedded systems.
This post by George Zimmerman talks about how integration of technologies leads to inflection points in the adoption of new technology. And how the 'boundaries between computing devices are disappearing ... because of a combination of processing power, including multiple cores, virtualization, and network connectivity'.
These are all topics at the front of the minds of the customers I talk to, whether they build the devices that power the network or whether they build devices that connect to the network. From the place I sit I see a lot of excitement about new capabilities for existing devices. I think this excitement will lead into new development projects this year and devices in the market a while after that.
Posted by Mark Hermeling at 08:21 PM in Consumer, Multi-core, Networking, Telecom, Virtualization, Wind River | Permalink | Comments (0) | TrackBack (0)
Reblog
(0)
| | Digg This
| Save to del.icio.us
|
|
I believe that 2010 will be the year of embedded virtualization, all the signs point in the right direction. It always takes a while for new technology to grab the imagination of embedded device developers. Embedded developers are traditionally a conservative bunch, however, the benefits of virtualization can not be ignored, even by them.
Continue reading "2010 Is The Year Of Embedded Virtualization" »
Posted by Mark Hermeling at 04:26 PM in Consumer, Linux, Mobile Handhelds, Multi-core, Open Source, Open Standards, Software Engineering, Virtualization, VxWorks, Wind River | Permalink | Comments (0) | TrackBack (0)
Reblog
(0)
| | Digg This
| Save to del.icio.us
|
|
An interesting article by Dan Woods on Multi-core slowdown. The article tries to temper people's expectations with
regards to multicore. The basic argument goes: A multicore processor has more
raw processing power, but it requires the software load that runs on top of
that processor to be able to use those cores, if not, the software could run at
the same speed as single-core, or even slower.
One of the ways to use all the cores of course is multi-threaded
programming in combination with an SMP operating system that can schedule over
all the cores (SMP being Symmetric Multi Processing). Typically multi-threaded
programs use multiple threads of execution and use synchronization primitives
to make sure executions happens in the right order. The last thing you want is
2 threads 'simultaneously' modifying the same data structure. The thing is, one
a single core processor, there is no true parallelism, the operating is
pretending to do multiple things at once. When you introduce multicore
processors you will have true parallelism, this may lead to problems.
One problem occurs when the application uses a lot of
synchronization and the result is that the cores are continuously waiting on
each other. You are now executing a largely serial application on a multicore
part and Amdahl's
law will dictate that you will have
very little speed-up from the use of multiple cores.
Another possible problem is that your application does not use
sufficient synchronization and the result is that the application will do
things truly in parallel that were never meant to be executed in parallel. This
often leads to data corruption and hard-to-find faults. Not a desirable
situation either.
The statements in the article have more of an IT focus, however,
they hold for embedded as well. Multicore could lead to a slow-down if the
application is unable to use all this new processing power. However, in most
cases there is a way to use the multiple cores and to make a difference, either
in performance, or in the set of capabilities of a device.
One of the important points to consider when looking at
multicore in embedded are the multicore software configuration. The most simple of these multicore configurations uses
SMP which allows a single application to use multiple cores, if
that application is written for it, as mentioned before. This seems to be
the main focus of the original article.
However, other configurations allow customers to run multiple
different operating systems on top of these multicore processors. There
operating systems could be of the same type (say, VxWorks), or other types (say
VxWorks and Linux). Each operating system runs in isolation and will use some
of the raw processing power of that processor. Every operating system can of
course run one or more applications.
Now, you may ask, why do I need to run multiple operating
systems, can I not run multiple applications in a single SMP operating system?
Yes you can, however, there are many situations where a single SMP OS is not
the best solution because of safety, security, separation, robustness,
performance or scalability reasons. Running multiple operating systems gives
you, the user, better control as to how to use the power of your multicore
processor.
Breadth and flexibility here are important. There is no silver
bullet. SMP, uAMP, sAMP, virtualization, all are configurations in the tool-box
of the embedded developer and can be used in many different combinations and
situations.
There are a a couple of challenges that become immediately
apparent:
To summarize: a slowdown when using multicore is certainly
possible, but there are ways to solve that slowdown:
Posted by Mark Hermeling at 01:47 AM in Consumer, Linux, Multi-core, Networking, On-Chip Debugging, Software Engineering, Telecom, Tips & Tricks, VxWorks, Wind River | Permalink | Comments (0) | TrackBack (0)
Reblog
(0)
| | Digg This
| Save to del.icio.us
|
|
Many people ask the question as to what the best approach would be for them to go to multicore and/or virtualization. This is a great question to start a discussion as there is not a single silver bullet. I meant to post a quick diagram on the different multicore configurations before, but life has been busy since we announced the Wind River Hypervisor earlier this year. Busy in this case is certainly a good thing.
Continue reading "Primary Multicore Software Configurations" »
Posted by Mark Hermeling at 03:15 PM in Consumer, Linux, Multi-core, Networking, Tips & Tricks, VxWorks, Wind River | Permalink | Comments (0) | TrackBack (0)
Reblog
(0)
| | Digg This
| Save to del.icio.us
|
|
A good article from colleague Jens Wiegand on multicore in medical devices. Jens talks about consolidation and innovation, two driving factors in both medical and industrial devices. However, he also points out the flip side of the coin: certification. Virtualization can help provide strong separation on multicore, which makes certification manageable (the article goes into more depth).
Jens also touches on tooling for multicore development, an often-overlooked and under appreciated aspect. A single development environment that can be used to develop the entire device (real-time, UI, kernels, userland) as well as drive testing and debugging is a must to create highly efficient development teams.
Posted by Mark Hermeling at 08:12 AM in Consumer, Eclipse, Fixed Mobile Convergence, Multi-core, Software Engineering, Wind River, Workbench | Permalink | Comments (0) | TrackBack (0)
Reblog
(0)
| | Digg This
| Save to del.icio.us
|
|
Sometimes I get a chance to browse the web a bit, trying to find interesting tidbits. I ran into the following post from Hollis Blanchard. Hollis is an active participant in the world of virtualization, particularly on the Power architecture.
Hollis makes a point that I have been trying to get out as well: virtualization is clearly technology to look into when you are building multicore systems, but also when you are building unicore systems.
Posted by Mark Hermeling at 09:49 AM in Consumer, Mobile Handhelds, Multi-core, Telecom | Permalink | Comments (0) | TrackBack (0)
Technorati Tags: embedded, virtualization
Reblog
(0)
| | Digg This
| Save to del.icio.us
|
|
Mark is a senior product manager with Wind River focusing on multicore and virtualization solutions. Prior to joining Wind River Mark has helped development teams build embedded systems across Asia, Europe and North America in automotive, telecom, consumer electronics and defense industries.
