A couple of weeks ago I participated in a roundtable discussion led by Peggy Aycinena that has been summarized and posted on edacafe.com. Please have a look if you are interested in Virtual Platform usage for embedded software.
One of the things that became clear right away is there are way too many terms which mean different things to different people. Peggy meant well by trying to stir up controversy by asking the difference between simulation and virtualization, but the question caused nothing but confusion. I tried to explain that I see at least three basic forms of "virtualization".
At the roundtable pretty much everybody was from area #2 except Kent Fischer from Freescale. Kent does do #2 for SoC development, but Freescale also does #3 for its multi-core SoC devices that go into embedded products. While virtualization for embedded devices was not the main topic of the roundtable, it's an interesting and growing space. One of the early companies in this area, Trango, was acquired by VMware. You can read about the technology at the VMware website now. Another interesting company to read about is Open Kernel Labs. There are others, so please share your favorites in this space.
Also, feel free to offer your definitions of simulation, virtualization, and emulation.
Next week I'll be at ARM Techcon3 where I hope no Cadence people come to hear my talk which explains how software can be developed for Android on a Virtual Platform and the command to start the Virtual Platform (which is called an emulator in the Android documentation) is "emulator". Luckily, I don't think any of the Palladium commands are "emulator".
Virtual platforms can be simulated on virtual systems using virtualization.
Say that over and over again ... quickly! :)