Just like Intel, Wind River has a large internal user base for Wind River Simics*. Simics is a very useful tool for embedded system developers and testers, and Wind River recently published a case study describing some of the internal use of Simics at Wind River. The case study highlights the power that virtual platforms brings to software testing and debug, with some concrete numbers and examples. There is a lot of good information and nice quotes in the paper, and I would kind of like to post the entire text verabatim here! But I will settle for a quick review of the main highlights, along with links to other blog posts discussing the issues.
The paper describes a number of cases, covering various product lines and Simics uses at Wind River.
The first case described is scaling up testing of IoT software. In this case, we are looking at device management software which is used to manage 1000s of deployed devices from a cloud server. The software both on the devices and in the cloud have to work even for very large numbers of devices – but is it really practical to have a lab with a thousand nodes? Hardly, unless it is simulated:
In a typical scenario, just the cost of purchasing 1,000 devices would be roughly $2 million, says Ed Illidge, Wind River Vice President of Engineering and Testing Management. Add to that the logistical nightmare of setting up and maintaining all of these devices in a lab, and any sort of testing for IoT becomes unfeasible. “Without a way to test at such scale, we can’t guarantee the performance of our software,” Illidge says.
Another important aspect of simulation and virtual platforms is that it makes access to target systems very easy and very reliable. Rather than use a limited number of lab machines, virtual platforms can be started as needed. You gain flexibility in your lab setups, since a single server can masquerade as all kinds of different hardware over time.
Virtual platforms also make it possible to keep having access to hardware that has gone off the market – but which is still being used by Wind River customers. It is amazing just how many really old computers are still in production use out in the world, even though there are no or very few development boards still in existence for them! Incidentally, I wrote a piece about this some years ago, which you can find on the Wind River blog network.
Illidge says Simics also makes it possible to test on hardware that is no longer available. “That’s a nice perk when you need to ensure software will work with older installed devices that have been taken off the market,” he says.
In addition, by virtue of being virtual, virtual platforms promote and simplify collaboration between teams:
And because it is virtual, all engineers across Wind River global teams have the same view and are equally able to run tests on the same hardware targets. Simics makes it simple to freeze a test at a certain state and then share that with a colleague.
The Simics debugger with its record, replay, repeat, and reverse features saves time and money in project. The paper claims that projects not using Simics tend to take 20 to 30 percent longer, and in the past we have heard similar numbers from other Simics users. Debugging with a reliable and repeatable platform saves time, it is that simple. The paper has a nice quote about this:
With Simics, it is easy to find and replicate an error. “That is a huge reduction in engineering effort,” he says. “We can find a tough bug in a few hours rather than days or weeks. That’s saving us hundreds of thousands dollars in engineering time each year.
As an aside, it is worth mentioning that even before Virtutech and Simics was acquired, Wind River was using Simics to develop software. Rifling through my files, I found a ten-year-old customer study we did at Virtutech with Wind River as a customer. In this old case study, Wind River praised Simics for its role in developing the first SMP versions of VxWorks*!
Overall, Wind River is clearly eating their own dog food here, and finding it quite a gourmet experience. Simics is a very powerful tool for software development and testing, and when you use it properly, you do see significant impact on the execution of your projects.
Now, download and read the paper!