<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:thr="http://purl.org/syndication/thread/1.0">
    <title>Mark Hermeling</title>
    
    <link rel="alternate" type="text/html" href="http://blogs.windriver.com/hermeling/" />
    <link rel="service.post" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1800684" title="Mark Hermeling" /> 
    <id>tag:typepad.com,2003:weblog-1800684</id>
    <updated>2009-11-15T06:17:51Z</updated>
    <subtitle>Virtual? Multicore? Realtime!</subtitle>
    <generator uri="http://www.typepad.com/">TypePad</generator>
    <link rel="self" href="http://feeds.feedburner.com/hermeling" type="application/atom+xml" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><entry>
        <title>Paper: Multicore and Multi-OS</title>
        <link rel="alternate" type="text/html" href="http://blogs.windriver.com/hermeling/2009/11/paper-multicore-and-multios.html" />
        <link rel="service.edit" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1800684/entry_id=6a00d83451f5c369e2012875a2de46970c" title="Paper: Multicore and Multi-OS" />
        <link rel="replies" type="text/html" href="http://blogs.windriver.com/hermeling/2009/11/paper-multicore-and-multios.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d83451f5c369e2012875a2de46970c</id>
        <published>2009-11-14T22:17:51-08:00</published>
        <updated>2009-11-15T06:17:51Z</updated>
        <summary>Travel has it's disadvantages (30 hours door to door Ottawa to Singapore in an old United 747 for example). But it also has it's advantages: here I find myself at the airport with free wireless and a couple of hours to kill. I should really go through my inbox, but scanning the web for interesting papers and blog articles is a much more fun way to spend this time :). Which is how I ran into a paper talking about Multicore and Multi-OS as a pattern in embedded systems that is gaining a lot of attention and is clearly increasing...</summary>
        <author>
            <name>Mark Hermeling</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Multi-core" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Software Engineering" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Wind River" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://blogs.windriver.com/hermeling/">&lt;p&gt;Travel has it's disadvantages (30 hours door to door Ottawa to Singapore in an old United 747 for example). But it also has it's advantages: here I find myself at the airport with free wireless and a couple of hours to kill. I should really go through my inbox, but scanning the web for interesting papers and blog articles is a much more fun way to spend this time :).&lt;/p&gt;&lt;p&gt;Which is how I ran into &lt;a href="http://www.embedded-computing.com/articles/id/?4269"&gt;a paper talking about Multicore and Multi-OS&lt;/a&gt; as a pattern in embedded systems that is gaining a lot of attention and is clearly increasing in importance. (Registration required)&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;br&gt;The paper is from my Dan Driscoll and Stephen Olsen from Mentor Graphics and there is a lot of good stuff in this. They talk about SMP and AMP from the hardware perspective (SMP when you have multiple cores of the same architecture, AMP when the core-architecture is different), Wind River typically talks about SMP and AMP from an OS perspective as we have more of a software focus. Different backgrounds, but something to keep in mind when you read up about these topics.&lt;br&gt;&lt;br&gt;The article is well written and it talks about how expensive it can be to set up a multi-OS environment. I refer to this as AMP, with AMP from the software sense. You need expertise from an OS as well as from an processor architecture perspective. I spend a lot of time talking about this as well to customers and my opinion is that this time could be much better spent developing differentiating content.&lt;br&gt;&lt;br&gt;They also talk about a hypervisor, but only from the perspective of core virtualization: running multiple different virtual machines on a single core. This certainly is one of the important usages of a hypervisor. However, the technology behind the hypervisor can make the multi-OS configuration a lot easier as well.&lt;br&gt;&lt;br&gt;I usually talk about the fact that there are three distinct resources to virtualize: Cores, Memory and Devices. A Hypervisor typically virtualizes all three.&lt;br&gt;&lt;br&gt;The Wind River Hypervisor can be configured to only virtualize Memory and Devices, to distinguish this we refer to this configuration of the virtualization layer as 'the Supervisor'. The Supervisor is very useful to make the configuration of multiple OSes on a single multicore chip easy with native performance. You can see this an Supervised AMP configuration, with AMP in the software sense (once more).&lt;br&gt;&lt;br&gt;Now, while we are talking about the complexity of setting up the AMP configuration and how the hypervisor can assist in making that easier; a requirement for this to be true is that the hypervisor is available for the particular processor architecture and that it is well integrated with the operating systems of choice. My choice in operating systems differ from the authors of the article naturally, but that is besides the point. &lt;br&gt;&lt;br&gt;The problem with not having the operating systems pre-integrated is that you simply shift the problem. Instead of integrating the OS to the hardware, you are now integrating the OS to the hypervisor or debug tools.&lt;br&gt;&lt;br&gt;This is one of the reasons that Wind River is so well positioned in the embedded world, as we have the embedded hypervisor, we have the operating systems and the development tools and excellent relationships with all the silicon vendors.&lt;br&gt;&lt;br&gt;Have a look at the article and let me know what you think.&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=R95dQdP-DNU:rSaRizNsXzU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=R95dQdP-DNU:rSaRizNsXzU:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=R95dQdP-DNU:rSaRizNsXzU:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=R95dQdP-DNU:rSaRizNsXzU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?i=R95dQdP-DNU:rSaRizNsXzU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=R95dQdP-DNU:rSaRizNsXzU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?i=R95dQdP-DNU:rSaRizNsXzU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=R95dQdP-DNU:rSaRizNsXzU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>


    </entry>
    <entry>
        <title>Making Multicore CPUs Work in Embedded Communications Designs</title>
        <link rel="alternate" type="text/html" href="http://blogs.windriver.com/hermeling/2009/11/making-multicore-cpus-work-in-embedded-communications-designs.html" />
        <link rel="service.edit" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1800684/entry_id=6a00d83451f5c369e20120a670bcd4970b" title="Making Multicore CPUs Work in Embedded Communications Designs" />
        <link rel="replies" type="text/html" href="http://blogs.windriver.com/hermeling/2009/11/making-multicore-cpus-work-in-embedded-communications-designs.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d83451f5c369e20120a670bcd4970b</id>
        <published>2009-11-10T12:49:12-08:00</published>
        <updated>2009-11-10T20:49:12Z</updated>
        <summary>A good article by Jarrod Siket highlighting the need for a good heterogenous multicore design to be able to meet the need of embedded communications systems. I couldn't agree more. Jarrod has a number of good suggestions as to which engineering challenges need to be addressed. The article is quite timely as I just finished a webinar with Kontron on Multicore and virtualization focussing on ATCA. Jarrod also makes the statement that 'no other processor architecture is more widely adopted or better suited than x86'. I'll certainly agree that x86 is widely adopted and that it has been doing virtualization...</summary>
        <author>
            <name>Mark Hermeling</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="ATCA" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Multi-core" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Networking" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Software Engineering" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Wind River" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://blogs.windriver.com/hermeling/">&lt;p&gt;&lt;a href="http://www.embedded-computing.com/articles/id/?4291"&gt;A good article by Jarrod Sike&lt;/a&gt;t highlighting the need for a good heterogenous multicore design to be able to meet the need of embedded communications systems. I couldn't agree more. Jarrod has a number of good suggestions as to which engineering challenges need to be addressed. The article is quite timely as I just finished a webinar with Kontron on &lt;a href="https://event.on24.com/eventRegistration/EventLobbyServlet?target=registration.jsp&amp;amp;eventid=170359&amp;amp;sessionid=1&amp;amp;key=960483DD195333CA965C0B13B7C5AB5F&amp;amp;sourcepage=register"&gt;Multicore and virtualization focussing on ATCA&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;Jarrod also makes the statement that '&lt;em&gt;no other processor architecture is more widely adopted or better suited than x86&lt;/em&gt;'. I'll certainly agree that x86 is widely adopted and that it has been doing virtualization longer than the other architectures out there due to it's IT roots.&lt;/p&gt;&lt;p&gt;Nonetheless, Freescale's P4080 is popular in the embedded communications market for good reason: great performance per Watt. The SoC design is focussed on telecom, more so than the generic approach taken by Intel.&lt;/p&gt;&lt;p&gt;It is going to be interesting over the next little while to see how these two architectures will compare in fielded systems.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=6HiEmtHeRyU:BbZY7el8q5o:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=6HiEmtHeRyU:BbZY7el8q5o:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=6HiEmtHeRyU:BbZY7el8q5o:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=6HiEmtHeRyU:BbZY7el8q5o:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?i=6HiEmtHeRyU:BbZY7el8q5o:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=6HiEmtHeRyU:BbZY7el8q5o:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?i=6HiEmtHeRyU:BbZY7el8q5o:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=6HiEmtHeRyU:BbZY7el8q5o:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>


    </entry>
    <entry>
        <title>Primary Multicore Software Configurations</title>
        <link rel="alternate" type="text/html" href="http://blogs.windriver.com/hermeling/2009/11/primary-multicore-software-configurations.html" />
        <link rel="service.edit" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1800684/entry_id=6a00d83451f5c369e20128756acb97970c" title="Primary Multicore Software Configurations" />
        <link rel="replies" type="text/html" href="http://blogs.windriver.com/hermeling/2009/11/primary-multicore-software-configurations.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d83451f5c369e20128756acb97970c</id>
        <published>2009-11-09T15:15:15-08:00</published>
        <updated>2009-11-09T23:15:15Z</updated>
        <summary>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. I frequently use the graphic below to hold the discussion around. An easy graphic to draw on a white board, or to put on a...</summary>
        <author>
            <name>Mark Hermeling</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Consumer" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Device Software Optimization (DSO)" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Linux" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Multi-core" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Networking" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Tips &amp; Tricks" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="VxWorks" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Wind River" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://blogs.windriver.com/hermeling/">&lt;p&gt;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.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;br&gt;I frequently use the graphic below to hold the discussion around. An easy graphic to draw on a white board, or to put on a projector and a sure fire way to get the discussion going. I also posted this earlier article on &amp;lt;a href="http://www.edn.com/blog/1200000320/post/1350046135.html"&amp;gt;EDN on multicore configurations&amp;lt;/a&amp;gt;.&lt;br&gt;&lt;a href="http://blogs.windriver.com/.a/6a00d83451f5c369e20128756abda8970c-pi" style="display: block; "&gt;&lt;img alt="PrimaryMulticoreConfigurations" border="0" class="asset asset-image at-xid-6a00d83451f5c369e20128756abda8970c " src="http://blogs.windriver.com/.a/6a00d83451f5c369e20128756abda8970c-500pi" style="display: block; border-top-width: 0px; border-right-width: 0px; border-bottom-width: 0px; border-left-width: 0px; border-top-style: solid; border-right-style: solid; border-bottom-style: solid; border-left-style: solid; border-top-color: black; border-right-color: black; border-bottom-color: black; border-left-color: black; " title="PrimaryMulticoreConfigurations"&gt;&lt;/img&gt;&lt;/a&gt;&lt;p style="text-align: center;"&gt;&lt;/p&gt;&lt;p style="text-align: left;"&gt;The "Traditional" option needs little further discussion, it is how people have been developing systems. Choose an OS to go with the processor and you are done.&lt;/p&gt;&lt;p style="text-align: left;"&gt;SMP and unsupervised AMP are the 'usual suspects' to low-core-count multicore processors. Symmetric Multiprocessing (SMP) gives all cores to a single kernel. This works well in low core count environments, but especially when the core count goes up and lots of small work packets have to be handled (interrupts, IP packets), then the impact of the single scheduler becomes evident. This can be countered partially by core affinity or reservation. SMP also runs a single OS, if it crashes for some reason, then the entire system goes down.&lt;/p&gt;&lt;p style="text-align: left;"&gt;Unsupervised AMP for Asynchronous Multiprocessing runs multiple operating systems, one per core. This has the advantage of being able to run say VxWorks and Linux and will also keep the system 'up' if one crashes. However, establishing the separation of multiple operating systems on top of a single processor with shared memory, shared devices and such is not trivial. Ask anyone who has done this before, it requires detailed expertise on how the processor works as well as how the operating system uses the processor. The partitioning provided by AMP can solve the scalability problem of SMP, but only if the algorithm is well parallellizable (which is a different problem altogether).&lt;/p&gt;&lt;p style="text-align: left;"&gt;Virtualization provides Supervised AMP, which provides the benefits of AMP, but without the  technical hassles and with the benefit of flexibility. The virtualization layer creates the partitions (Virtual Boards) to run the operating systems within and then gets out of the way. The virtualization layer in this case is referred to as a 'supervisor', as there is very little run-tim impact of virtualization. &lt;/p&gt;&lt;p style="text-align: left;"&gt;&lt;/p&gt;&lt;p style="text-align: left; "&gt;Supervised AMP is a great way to provide consolidation of an existing system that utilizes multiple single core processors into a single multicore processor (as the parallallization in that case has already been established in the existing device). &lt;/p&gt;&lt;p&gt;The last configuration in this list is the virtualized scenario in the upper right hand corner. This scenario uses core-virtualization, that is, it schedules multiple different virtual boards on top of a single physical processing core. This of course has impact on the amount of processing power that each virtual board gets. Luckily this scenario still provides determinism, that is, say you run VxWorks and Linux on top of a single core, VxWorks can still have real-time characteristics that you expect from an RTOS, while Linux can provide the services of a typical General Purpose Operating System.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style="text-align: left;"&gt;Now, the diagram only shows the primary configurations, these configurations can be combined, for example an SMP virtual board within a sAMP system, or core virtualization on one core with sAMP on the others.&lt;/p&gt;&lt;p style="text-align: left;"&gt;Again, which configuration is best for you... That depends, where do you come from, where are you going towards, what processor architecture do you have an how many cores. This quick overview is certainly not meant as an answer, but it may prove useful to start the discussion. Post questions or discussions below and I will get back to you as soon as I can.&lt;/p&gt;&lt;p style="text-align: left;"&gt;You can also follow me as @markhermeling on Twitter&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=yJb36FtqTEk:Z5QC19wJqdM:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=yJb36FtqTEk:Z5QC19wJqdM:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=yJb36FtqTEk:Z5QC19wJqdM:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=yJb36FtqTEk:Z5QC19wJqdM:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?i=yJb36FtqTEk:Z5QC19wJqdM:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=yJb36FtqTEk:Z5QC19wJqdM:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?i=yJb36FtqTEk:Z5QC19wJqdM:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=yJb36FtqTEk:Z5QC19wJqdM:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>


    </entry>
    <entry>
        <title>Addressing Core Issues</title>
        <link rel="alternate" type="text/html" href="http://blogs.windriver.com/hermeling/2009/10/addressing-core-issues.html" />
        <link rel="service.edit" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1800684/entry_id=6a00d83451f5c369e20120a67ba923970c" title="Addressing Core Issues" />
        <link rel="replies" type="text/html" href="http://blogs.windriver.com/hermeling/2009/10/addressing-core-issues.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d83451f5c369e20120a67ba923970c</id>
        <published>2009-10-27T08:12:26-07:00</published>
        <updated>2009-10-27T15:12:26Z</updated>
        <summary>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...</summary>
        <author>
            <name>Mark Hermeling</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Consumer" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Device Software Optimization (DSO)" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Eclipse" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Fixed Mobile Convergence" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Multi-core" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Software Engineering" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Wind River" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Workbench" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://blogs.windriver.com/hermeling/">&lt;p&gt;A &lt;a href="http://www.newelectronics.co.uk/article/20365/Addressing-core-issues.aspx"&gt;good article from colleague Jens Wiegand on multicore in medical devices&lt;/a&gt;. 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).&lt;/p&gt;&lt;p&gt;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.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=AbGGHcujYFQ:SgfUBg2ziMc:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=AbGGHcujYFQ:SgfUBg2ziMc:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=AbGGHcujYFQ:SgfUBg2ziMc:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=AbGGHcujYFQ:SgfUBg2ziMc:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?i=AbGGHcujYFQ:SgfUBg2ziMc:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=AbGGHcujYFQ:SgfUBg2ziMc:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?i=AbGGHcujYFQ:SgfUBg2ziMc:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=AbGGHcujYFQ:SgfUBg2ziMc:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>


    </entry>
    <entry>
        <title>Three Flavours of Virtualization</title>
        <link rel="alternate" type="text/html" href="http://blogs.windriver.com/hermeling/2009/09/three-flavours-of-virtualization.html" />
        <link rel="service.edit" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1800684/entry_id=6a00d83451f5c369e20120a5992d42970b" title="Three Flavours of Virtualization" />
        <link rel="replies" type="text/html" href="http://blogs.windriver.com/hermeling/2009/09/three-flavours-of-virtualization.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d83451f5c369e20120a5992d42970b</id>
        <published>2009-09-25T09:29:04-07:00</published>
        <updated>2009-09-25T16:29:04Z</updated>
        <summary>Here is a great article on the Intel Tools and Software Blog on the three flavours of virtualization: Binary translation, para virtualization and hardware assist. Sharon covers all three flavours briefly, but well balanced. The message boils down to: you decide, which is consistent with many conversations I have every day with customers. It is Wind River's tasks to provide you with solutions and to help you understand how these solutions benefit you. There is no silver bullet, it all depends on your business needs, the market opportunity and the time window that you have to capitalize on that market...</summary>
        <author>
            <name>Mark Hermeling</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Device Software Optimization (DSO)" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Multi-core" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Wind River" />
        
        
<content type="html" xml:lang="en-US" xml:base="http://blogs.windriver.com/hermeling/">&lt;p&gt;Here is a &lt;a href="http://community.edc.intel.com/t5/Software-Tools-Blog/Roving-Reporter-Virtualization-Power-of-three-or-should-one/ba-p/1453"&gt;great article on the Intel Tools and Software Blog&lt;/a&gt; on the three flavours of virtualization: Binary translation, para virtualization and hardware assist. Sharon covers all three flavours briefly, but well balanced. &lt;/p&gt;&lt;p&gt;The message boils down to: you decide, which is consistent with many conversations I have every day with customers. It is Wind River's tasks to provide you with solutions and to help you understand how these solutions benefit you. There is no silver bullet, it all depends on your business needs, the market opportunity and the time window that you have to capitalize on that market opportunity.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=kYGXgUhHdCs:kuD6FaPu6_8:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=kYGXgUhHdCs:kuD6FaPu6_8:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=kYGXgUhHdCs:kuD6FaPu6_8:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=kYGXgUhHdCs:kuD6FaPu6_8:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?i=kYGXgUhHdCs:kuD6FaPu6_8:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=kYGXgUhHdCs:kuD6FaPu6_8:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?i=kYGXgUhHdCs:kuD6FaPu6_8:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=kYGXgUhHdCs:kuD6FaPu6_8:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>


    </entry>
    <entry>
        <title>Multi-core Needs Virtualization</title>
        <link rel="alternate" type="text/html" href="http://blogs.windriver.com/hermeling/2009/09/multicore-needs-virtualization.html" />
        <link rel="service.edit" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1800684/entry_id=6a00d83451f5c369e20120a53e25e2970b" title="Multi-core Needs Virtualization" />
        <link rel="replies" type="text/html" href="http://blogs.windriver.com/hermeling/2009/09/multicore-needs-virtualization.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d83451f5c369e20120a53e25e2970b</id>
        <published>2009-09-01T14:07:56-07:00</published>
        <updated>2009-09-01T21:29:23Z</updated>
        <summary>Here is a good blog posting by Gernot Heiser on some of the reasons why virtualization is required for effective resource management on multi-corechips. The post has a strong focus on wireless devices. While there may not be a lot of multi-core1 chips in cell phones currently, this will certainly increase in the upcoming years. OK Labs is now a member of the multi-core association as well, welcome to the party guys! 1 Not counting SoCs with heterogeneous cores The reasons that Gernot mentions in his posting hold in other areas such as printers, storage devices, networking infrastructure nodes, industrial...</summary>
        <author>
            <name>Mark Hermeling</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Device Software Optimization (DSO)" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Multi-core" />
        <category scheme="http://www.sixapart.com/ns/types#category" term="Wind River" />
        
        <category scheme="http://sixapart.com/ns/types#tag" term="multi-core" />
        <category scheme="http://sixapart.com/ns/types#tag" term="virtualization" />
        
<content type="html" xml:lang="en-US" xml:base="http://blogs.windriver.com/hermeling/">&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;Here is a good &lt;a href="http://www.ok-labs.com/blog/entry/why-multicore-needs-virtualization/"&gt;blog posting&lt;/a&gt; by Gernot Heiser on some of the reasons why virtualization is required for effective resource management on multi-corechips. The post has a strong focus on wireless devices. While there may not be a lot of multi-core&lt;sup&gt;&lt;em&gt;1&lt;/em&gt;&lt;/sup&gt; chips in cell phones currently, this will certainly &lt;a href="http://gigaom.com/2009/06/23/ti-sees-multicore-phones-coming-in-2011/"&gt;increase in the upcoming years&lt;/a&gt;. OK Labs is now a member of the &lt;a href="http://www.multicore-association.org/press/090901.htm"&gt;multi-core association&lt;/a&gt; as well, welcome to the party guys!&lt;/p&gt;&lt;p&gt;&lt;em&gt;&lt;sup&gt;1&lt;/sup&gt; Not counting SoCs with heterogeneous cores&lt;/em&gt;&lt;/p&gt;&lt;p&gt; &#xD;
&lt;/p&gt;&lt;p&gt;The reasons that Gernot mentions in his posting hold in other areas such as printers, storage devices, networking infrastructure nodes, industrial control, networking, aerospace, automotive and so forth as well. Resource management is important for virtually (pun intended) every device nowadays. Besides resource management, there are significant other reasons that customers are using virtualization on top of multi-core for: &lt;/p&gt;&lt;p&gt;1) Re-use and innovation. Software for embedded devices is typically not written from scratch. There are large mountains of code that need to be re-used, preferably on their existing OS. Virtualization enables multiple different (versions of) operating systems to run in different partitions on the same chip, the developer (more typically the system architect) can decide the mapping based on amount of horsepower needed by each partition.&lt;/p&gt;&lt;p&gt;2) Separation (and this is an important one). How does one ensure that one partition does not impact another partition with regards to safety or security? The answer: a layer underneath the operating systems that provides the separation that is small and secure and that manages the multi-core chip. The virtualization layer keeps the partitions apart and allows one partition to be restarted without impacting the rest of the system.&lt;/p&gt;&lt;p&gt;3) Ease of migration. In many of these devices people want to truly decouple their software layer from the physical layer. That is, decouple their software from their hardware. This will help them migrate to newer devices, more cores, different peripherals without having to make sweeping changes through their software architecture.&lt;/p&gt;&lt;p&gt;4) Agility.Virtualization also allows the development team to adjust how the partitions are mapped to the physical cores in a particular design. With the complexity of todays hardware and software, it is difficult, if not impossible to get your design correct the first time. Virtualization provides an additional layer to make adjustments in without touching the software loads of the system.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;All in all, virtualization for embedded is here to stay, it's importance will grow as the usage of multi-core in embedded grows.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=zAfjwjfP838:ouU-e0bF8IY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=zAfjwjfP838:ouU-e0bF8IY:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=zAfjwjfP838:ouU-e0bF8IY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=zAfjwjfP838:ouU-e0bF8IY:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?i=zAfjwjfP838:ouU-e0bF8IY:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=zAfjwjfP838:ouU-e0bF8IY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?i=zAfjwjfP838:ouU-e0bF8IY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=zAfjwjfP838:ouU-e0bF8IY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>


    </entry>
    <entry>
        <title>Multi-core No Silver Bullet?</title>
        <link rel="alternate" type="text/html" href="http://blogs.windriver.com/hermeling/2009/08/multicore-no-silver-bullet.html" />
        <link rel="service.edit" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1800684/entry_id=6a00d83451f5c369e20120a51794c0970b" title="Multi-core No Silver Bullet?" />
        <link rel="replies" type="text/html" href="http://blogs.windriver.com/hermeling/2009/08/multicore-no-silver-bullet.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d83451f5c369e20120a51794c0970b</id>
        <published>2009-08-24T08:46:09-07:00</published>
        <updated>2009-08-24T15:46:09Z</updated>
        <summary>Love this post on 'Downer at the Multi-core Party' by Matthew Dublin. Beside the fact that the language in the first paragraph is quite hilarious. The article talks, like many, about parallelizing algorithms for HPC applications and I agree that parallelization is an important topic. Developing parallel applications is not easy and any language and toolkit to help is a must have. I don't quite agree with the last statement 'the discussion is happening, ..., everybody just needs to lighten up'. Most of the work that I am seeing is academic or limited in scope of algorithms that they are...</summary>
        <author>
            <name>Mark Hermeling</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Multi-core" />
        
        <category scheme="http://sixapart.com/ns/types#tag" term="multi-core" />
        <category scheme="http://sixapart.com/ns/types#tag" term="parallel" />
        
<content type="html" xml:lang="en-US" xml:base="http://blogs.windriver.com/hermeling/">&lt;p&gt;Love &lt;a href="http://www.genomeweb.com/blog/downer-multi-core-party"&gt;this post on 'Downer at the Multi-core Party'&lt;/a&gt;&lt;a&gt; &lt;/a&gt;by Matthew Dublin. Beside the fact that the language in the first paragraph is quite hilarious.&lt;/p&gt;&lt;p&gt;The article talks, like many, about parallelizing algorithms for HPC applications and I agree that parallelization is an important topic. Developing parallel applications is not easy and any language and toolkit to help is a must have. I don't quite agree with the last statement 'the discussion is happening, ..., everybody just needs to lighten up'. Most of the work that I am seeing is academic or limited in scope of algorithms that they are applicable to. I do agree with the statement though that 'it hardly means that multi-core has failed to deliver'.&lt;/p&gt;&lt;p&gt;My biggest comment on these type of articles is that they largely overlook scenarios where a customer is looking to use multiple cores to solve different algorithms, which is common in the embedded world. Say for example, a multi-functional printer, earlier versions of the printer may have VxWorks as the operating system. Adding Linux would open up new capabilities like advanced web-driven interfaces for example. This can very well be solved by a single core, but a dual core processor has just that much more computing power.&lt;/p&gt;&lt;p&gt;Other examples are wireless infrastructure antenna applications. Handling the control of an antenna covering 360 degrees of separating is typically done in zones. The zones are independent and can nicely be handled by the different cores on a multi-core CPU.&lt;/p&gt;&lt;p&gt;In short: Yes, we do need more support for parallel languages and programming techniques. Even without them though, multi-core delivers significant benefit in the embedded world.&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=BKdynkEnS2I:-sxqUpmeFi0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=BKdynkEnS2I:-sxqUpmeFi0:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=BKdynkEnS2I:-sxqUpmeFi0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=BKdynkEnS2I:-sxqUpmeFi0:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?i=BKdynkEnS2I:-sxqUpmeFi0:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=BKdynkEnS2I:-sxqUpmeFi0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?i=BKdynkEnS2I:-sxqUpmeFi0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=BKdynkEnS2I:-sxqUpmeFi0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>


    </entry>
    <entry>
        <title>Wind River Hypervisor Heritage</title>
        <link rel="alternate" type="text/html" href="http://blogs.windriver.com/hermeling/2009/08/wind-river-hypervisor-legacy.html" />
        <link rel="service.edit" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1800684/entry_id=6a00d83451f5c369e20120a5606dd8970c" title="Wind River Hypervisor Heritage" />
        <link rel="replies" type="text/html" href="http://blogs.windriver.com/hermeling/2009/08/wind-river-hypervisor-legacy.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d83451f5c369e20120a5606dd8970c</id>
        <published>2009-08-21T09:47:52-07:00</published>
        <updated>2009-08-21T16:47:52Z</updated>
        <summary>Most people I talk to are very interested in virtualization technology, especially when it comes to managing the power of multi-core processors. However, many people are wary of the feasibility and stability of the technology and are wondering how much of this has been proven in real systems. Well, I don't think we have anything to worry there. Wind River has been delivering virtualization solutions since 2002 with VxWorks 653, a virtualization solution aimed at safety critical Integrated Modular Avionics. VxWorks 653 has been proven on the world's most challenging aircraft: Airbus MRTT and A400, Boeing C-130 AMP, Boeing KC-767...</summary>
        <author>
            <name>Mark Hermeling</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Multi-core" />
        
        <category scheme="http://sixapart.com/ns/types#tag" term="653" />
        <category scheme="http://sixapart.com/ns/types#tag" term="MILS" />
        <category scheme="http://sixapart.com/ns/types#tag" term="multi-core" />
        <category scheme="http://sixapart.com/ns/types#tag" term="virtualization" />
        
<content type="html" xml:lang="en-US" xml:base="http://blogs.windriver.com/hermeling/">&lt;p&gt;Most people I talk to are very interested in virtualization technology, especially when it comes to managing the power of multi-core processors. However, many people are wary of the feasibility and stability of the technology and are wondering how much of this has been proven in real systems.&lt;/p&gt;&lt;br&gt;&lt;p&gt;Well, I don't think we have anything to worry there.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;Wind River has been delivering virtualization solutions since 2002 with &lt;a href="http://www.windriver.com/products/platforms/safety_critical_arinc_653/"&gt;VxWorks 653&lt;/a&gt;, a virtualization solution aimed at safety critical Integrated Modular Avionics. VxWorks 653 has been proven on the world's most challenging aircraft: &lt;a href="http://en.wikipedia.org/wiki/Airbus_A330_MRTT"&gt;&lt;/a&gt;&lt;a href="http://www.airbus.com/en/aircraftfamilies/military_aircraft/a330_mrtt/index.html"&gt;Airbus MRTT&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Airbus_A400M"&gt;&lt;/a&gt;&lt;a href="http://www.airbusmilitary.com/standards.html"&gt;A400&lt;/a&gt;, &lt;a href="http://www.boeing.com/defense-space/support/maintenance/c130/index.html"&gt;Boeing C-130 AMP&lt;/a&gt;, &lt;a href="http://www.boeing.com/ids/globaltanker/index.html"&gt;&lt;/a&gt;&lt;a href="http://www.boeing.com/ids/globaltanker/index.html"&gt;Boeing KC-767 Tanker&lt;/a&gt;, &lt;a href="http://www.boeing.com/commercial/787family/"&gt;Boeing 787 Dreamliner&lt;/a&gt; and &lt;a href="http://"&gt;&lt;/a&gt;&lt;a href="http://www.boeing.com/defense-space/military/p8a/index.html"&gt;Boeing &lt;/a&gt;&lt;a&gt;&lt;/a&gt;&lt;a href="http://www.boeing.com/defense-space/military/p8a/index.html"&gt;&lt;/a&gt;&lt;a&gt;&lt;/a&gt;&lt;a&gt;P-8A Multi-Mission Maritime Aircraf&lt;/a&gt;&lt;a&gt;t&lt;/a&gt; among others.&lt;/p&gt;&lt;p&gt;Aerospace products are some of the most challenging systems ever built and the fact that virtualization has been common-place in that environment for a number of years should be sufficient proof that the technology is ready for prime time.&lt;/p&gt;&lt;p&gt;Wind River has used the experience from the VxWorks 653 platform to build its &lt;a href="http://www.windriver.com/products/platforms/vxworks-mils/"&gt;VxWorks MILS&lt;/a&gt;&lt;a href="http://www.windriver.com/products/platforms/vxworks-mils/"&gt; Platform&lt;/a&gt; and the &lt;a href="http://www.windriver.com/products/hypervisor/"&gt;Wind River Hypervisor&lt;/a&gt;. This experience in virtualization layers, combined with the strength of VxWorks and Wind River Linux allows Wind River to provide customers with a complete solution to use virtualization in your embedded devices.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=TmpjfofSnaU:LKwYA5YDLIU:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=TmpjfofSnaU:LKwYA5YDLIU:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=TmpjfofSnaU:LKwYA5YDLIU:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=TmpjfofSnaU:LKwYA5YDLIU:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?i=TmpjfofSnaU:LKwYA5YDLIU:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=TmpjfofSnaU:LKwYA5YDLIU:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?i=TmpjfofSnaU:LKwYA5YDLIU:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=TmpjfofSnaU:LKwYA5YDLIU:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>


    </entry>
    <entry>
        <title>IT vs Embedded Hypervisor (continued)</title>
        <link rel="alternate" type="text/html" href="http://blogs.windriver.com/hermeling/2009/07/it-vs-embedded-hypervisor-continued.html" />
        <link rel="service.edit" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1800684/entry_id=6a00d83451f5c369e201157158c674970c" title="IT vs Embedded Hypervisor (continued)" />
        <link rel="replies" type="text/html" href="http://blogs.windriver.com/hermeling/2009/07/it-vs-embedded-hypervisor-continued.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d83451f5c369e201157158c674970c</id>
        <published>2009-07-31T07:11:51-07:00</published>
        <updated>2009-07-31T14:11:51Z</updated>
        <summary>This is a discussion that will never die out I think. I found this post through my Google alerts this morning and I think it is typical for how people look at IT virtualization. Bottom line: performance is not the main deciding factor when choosing a virtualization layer for an IT system. 'Best effort' performance is often sufficient, which means that added latency, jitter and throughput is all acceptable (within limits naturally). The main goal of IT virtualization is to get better usage out of your processors. Embedded virtualization is different, 'real-time' performance is a must, which means interrupt latency...</summary>
        <author>
            <name>Mark Hermeling</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Multi-core" />
        
        <category scheme="http://sixapart.com/ns/types#tag" term="embedded" />
        <category scheme="http://sixapart.com/ns/types#tag" term="hypervisor" />
        <category scheme="http://sixapart.com/ns/types#tag" term="IT" />
        <category scheme="http://sixapart.com/ns/types#tag" term="multicore" />
        
<content type="html" xml:lang="en-US" xml:base="http://blogs.windriver.com/hermeling/">&lt;p&gt;This is a discussion that will never die out I think. I found &lt;a href="http://windowsitpro.com/article/articleid/102533/q-is-hyper-v-r2-considered-as-fast-as-vmware-vsphere.html"&gt;this post&lt;/a&gt; through my Google alerts this morning and I think it is typical for how people look at IT virtualization.&lt;/p&gt;&lt;div&gt;Bottom line: performance is not the main deciding factor when choosing a virtualization layer for an IT system. 'Best effort' performance is often sufficient, which means that added latency, jitter and throughput is all acceptable (within limits naturally). The main goal of IT virtualization is to get better usage out of your processors.&lt;br&gt;&lt;/div&gt;&lt;br&gt;&lt;div&gt;Embedded virtualization is different, 'real-time' performance is a must, which means interrupt latency in the low microsecond range (basically little-to-no overhead compared to native), determinism, jitter and throughput are very important. The reasons of why people are considering embedded virtualization vary quite a bit. Some projects are using virtualization to facilitate the adoption of multi-core, some to consolidate and reduce their bill-of-materials, some use it to innovate.&lt;/div&gt;&lt;br&gt;&lt;div&gt;Moral of the story: The Wind River Hypervisor runs circles around IT virtualization layers where performance is concerned.&lt;/div&gt;&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=uVTbBdq4DPo:A06XL13e5To:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=uVTbBdq4DPo:A06XL13e5To:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=uVTbBdq4DPo:A06XL13e5To:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=uVTbBdq4DPo:A06XL13e5To:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?i=uVTbBdq4DPo:A06XL13e5To:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=uVTbBdq4DPo:A06XL13e5To:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?i=uVTbBdq4DPo:A06XL13e5To:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=uVTbBdq4DPo:A06XL13e5To:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>


    </entry>
    <entry>
        <title>Determinism and Virtualization</title>
        <link rel="alternate" type="text/html" href="http://blogs.windriver.com/hermeling/2009/07/determinism-and-virtualization.html" />
        <link rel="service.edit" type="application/atom+xml" href="http://www.typepad.com/t/atom/weblog/blog_id=1800684/entry_id=6a00d83451f5c369e2011571480470970c" title="Determinism and Virtualization" />
        <link rel="replies" type="text/html" href="http://blogs.windriver.com/hermeling/2009/07/determinism-and-virtualization.html" thr:count="0" />
        <id>tag:typepad.com,2003:post-6a00d83451f5c369e2011571480470970c</id>
        <published>2009-07-27T11:00:37-07:00</published>
        <updated>2009-07-27T20:42:23Z</updated>
        <summary>I ran into this article on determinism by Kim Hartman while googling for something else. The point of the article is simple: determinism is important for embedded systems, faster processors don't change this. And while this is not news, Kim mentions virtualization (the use of Virtual Machines) on a single or multicore machine as a good way of adding real-time behavior to a non-realtime OS. Virtualization to combine a real-time OS with a non-real-time OS is certainly one of the use cases that come up on a regular basis while talking to customers. A hypervisor can provide virtualization and keep...</summary>
        <author>
            <name>Mark Hermeling</name>
        </author>
        <category scheme="http://www.sixapart.com/ns/types#category" term="Multi-core" />
        
        <category scheme="http://sixapart.com/ns/types#tag" term="determinism" />
        <category scheme="http://sixapart.com/ns/types#tag" term="hypervisor" />
        <category scheme="http://sixapart.com/ns/types#tag" term="performance" />
        <category scheme="http://sixapart.com/ns/types#tag" term="virtualization" />
        
<content type="html" xml:lang="en-US" xml:base="http://blogs.windriver.com/hermeling/">
&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;p&gt;I ran into &lt;a href="http://electronicdesign.com/Articles/ArticleID/11955/11955.html"&gt;this article on determinism by Kim Hartman&lt;/a&gt;&amp;nbsp;while googling for something else. The point of the article is simple: determinism is important for embedded systems, faster processors don't change this. And while this is not news, Kim mentions virtualization (the use of Virtual Machines) on a single or multicore machine as a good way of adding real-time behavior to a non-realtime OS.&lt;/p&gt;&lt;p&gt;Virtualization to combine a real-time OS with a non-real-time OS is certainly one of the use cases that come up on a regular basis while talking to customers.&lt;/p&gt;&lt;p&gt;A hypervisor can provide virtualization and keep multiple different virtual machines with different operating systems separate. Either each running on it's own core of a multicore processor, or sharing a core (typically with the embedded RTOS at a higher priority).&lt;/p&gt;&lt;p&gt;One thing to consider here is device access. In a typical IT setting the hypervisor owns the devices and emulates a device for the guest. There is an additional layer of indirection between the actual hardware and the user in the guest. This layer of course can add additional delays and can harm determinism.&lt;/p&gt;&lt;p&gt;The Wind River Hypervisor solves this by giving the virtual machine direct access to the device. The Hypervisor does not 'own' the device, it merely creates an access window through which the virtual machine can access the device. This provides optimal performance while maintaining determinism.&lt;/p&gt;&lt;/div&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=Ev05yjr11iM:pKkr8nUQ6Jw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=Ev05yjr11iM:pKkr8nUQ6Jw:I9og5sOYxJI"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=I9og5sOYxJI" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=Ev05yjr11iM:pKkr8nUQ6Jw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=Ev05yjr11iM:pKkr8nUQ6Jw:F7zBnMyn0Lo"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?i=Ev05yjr11iM:pKkr8nUQ6Jw:F7zBnMyn0Lo" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=Ev05yjr11iM:pKkr8nUQ6Jw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?i=Ev05yjr11iM:pKkr8nUQ6Jw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/hermeling?a=Ev05yjr11iM:pKkr8nUQ6Jw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/hermeling?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;</content>


    </entry>
 
</feed><!-- ph=1 --><!-- nhm:from_kauri -->
