Virtualized Software Development Offers Five Top Benefits

By Michel Genard, Vice President of Marketing, Virtutech

Over the past several years, server virtualization has made great inroads in the data center. It promises to improve data-center efficiency and lower the overall cost of ownership by solving persistent challenges. Such challenges include server proliferation, central-processing-unit (CPU) underutilization, and application isolation. But server virtualization isn’t the only game in town. Both startups and established companies are racing to introduce application and operating-system (OS) virtualization products that will virtualize the desktop. A third virtualization front also is emerging in the area of virtualized software development (VSD).

VSD targets embedded applications. Mostly, these are software applications embedded into electronics devices, such as cell phones, set-top boxes, routers, complex aerospace equipment, and war devices. But embedded applications also are found in blade, server, or any highperformance computing equipment. VSD is a product-development strategy that frees development from its dependence on the real hardware upon which an application will be deployed. Instead, VSD enables the deployment of technology, products, and best practices to execute development on the desktop.

Why VSD? The following megatrends and observations are driving the electronics industry:

The switch from hardware to software: The software component of devices is more important and more expensive in both relative and absolute costs than the underlying hardware. Despite the fact that software isn’t visible to the user and actually defines the product interface, companies have unbalanced resources between hardware and software. If the design and manufacturing of electronic parts enjoyed 30+ years (corcorrelated to the introduction of the processor) of industry best practices, standard software development is very often after the fact, very ad hoc, and pathetic. This disconnect drives low product quality, frequent recalls, and software updates—not to mention disappointed P&L.

Complexity: Both the execution hardware platform and the software powering devices have become more and more complex—especially considering the execution power in MIPS and lines of code. It’s to the point where no single engineer can really understand all of the components. Choices and options of discrete components—from processor to chips, OS, middleware, and tools to pick from— have exploded, thanks to the open-source movement. This global and multi-level complexity makes choices difficult and trend-off challenging. It also makes it unclear where the decision resides.

Time to market: Timing is everything and missing the product launch window can be lethal. Unfortunately, market pressures often drive companies to release products whether product quality or feature sets are complete.

Out-of-control cost: If the device is cost sensitive (i.e., handheld devices), the bill of materials (BOM) will be the focus point in the management dashboard. But BOM can drive poor decisions. And if the development costs are hidden from the dashboard, they’re not really managed. Think of it as an iceberg with only a small piece visible.

Product-development lifecycle shrink: Every industry has seen its lifecycle significantly reduced in the last 10 years. Products are expected to be developed faster. Even industries known for long development cycles, such as aerospace, defense, and automotive, are re-engineering their processes to release new products faster.

Time to revenue: No industry can afford to have products on the shelf waiting for customers to buy them. In the semiconductor industry, the situation is even more complex. Ideally, manufacturers would want to generate pre-bookings or design wins before the socket is generally available. They could then minimize the time until volume will kick in generated revenue on each socket.

Happily, all of the above challenges are well known. Too often, however, the solutions deployed to address these problems are more like patches than cures. The quality and complexity part of the problem is typically solved by putting more people on the bench—mostly by outsourcing in India or China. Corporations are challenged to document and prove that they actually realized their expected savings. This complexity is supported by what is commonly called platform strategy, in which enterprises define a pre-set of common and pre-tested components to build on it. The challenge there is defining the platform and its management from a roadmap point of view. The cost aspect is inevitably addressed by putting pressure on the suppliers. Meeting time-to-market/ revenue objectives is a combination of hope (aka sales forecasts) and project review (aka BBQs where product and project managers serve as the meat).

How VSD Works

Instead of building the actual hardware or using an evaluation board, imagine if companies used a software representation of the hardware that they plan to replace. Once this model or virtual platform is simulated, developers can control, develop, or debug any software that runs on the virtual platform from their desktops— just as they would in a traditional cross-development environment. Instead How VSD Works Instead of building the actual hardware or using an evaluation board, imagine if companies used a software representation of the hardware that they plan to replace. Once this model or virtual platform is simulated, developers can control, develop, or debug any software that runs on the virtual platform from their desktops— just as they would in a traditional cross-development environment. Instead

Performance and the level of abstraction also are crucial to success in VSD. For the software developer to be successful, performance should be close to the hardware in order to avoid performance deterioration. Performance conducts the level of abstraction that the designer can afford. To make it simple, there’s no performance for true accuracy including timing (i.e., Linux boots in hours, if not days, with timing cycle-accurate models). Functional accuracy—focusing on what and not how—can be acceptable for software developers. From a software perspective, however, the functional virtual platform needs to be so accurate that it can run unchanged binary code and use a standard tool chain. In VSD, such a tool chain is called a high-fidelity, high-performance functional model. Actually, the software doesn’t even know that it is running on a virtual platform. With a functional virtual platform, development occurs without the constraints of real hardware, such as flakiness or lack of availability.

Like server virtualization, VSD promises to be a game-changing technology for the organizations that are willing to adopt software process improvements. Let’s look at the top five benefits of server virtualization and see how the expected benefits of VSD map to them.

1. VSD reduces software-development costs by eliminating the construction of physical environments.

With VSD, everyone is outfitted with a virtual platform instead of providing a hardware prototype or actual device to each engineer. This hardware-replacement benefit is significant for almost any application. It delivers value not just in the development stage but long after as well. For example, a support organization helping customers can be run on a virtual platform. Staff, partners, and customers also can be trained on the desktop. In a networking configuration, a virtualized environment can have infinite configuration options—no wire and no hardware configuration. Lastly, a virtual platform can be e-mailed, which makes devices available anytime and anywhere on demand.

2. VSD enables hardware-software co-development, thereby collapsing the development cycle.

Traditional embedded development is a progression of events. For each new step to start, the previous one needs to be completed or at least near completion. For example, developers start writing and debug hardware-specific code only when hardware is available to them. But VSD developers are freed from hardware dependencies from the beginning of the development cycle. With access to a functional, high-performance and highfidelity virtual platform, they can start writing low-level firmware, driver BSP immediately and without any evaluation board. Overall, VSD enables a co-development strategy in which hardware and software begin in tandem on day one instead of waiting for each other. As a result, software/hardware integration becomes a front-end activity rather than a back-end event. This translates into more time to debug, test, and even change design specifications if needed.

3. Standardization is a big benefit to VSD as well.

Standardization happens at different levels with VSD. VSD helps to define a meaningful platform that both software and hardware teams can use, enhance, and share. Because it’s not restricted to an inbound usage, companies share their VSD IP with partners and customers in a way that unifies communications. Additionally, scripting language can be built at any stage to drive simple and elegant but very efficient automation processes. Think about that: How do you script hardware?

4. VSD also has many unique benefits that don’t parallel those offered by server virtualization.

Most of these benefits fall into the category of software performance innovation because they change the dynamics of software development in new and surprising ways. Determinism is certainly the most intriguing one. It is defined as the capability of software to always execute the same way when the same conditions apply. Although it seems obvious, it actually is not. As processor and hardware design increase in complexity, what happens around CPU boundaries isn’t determinism, which leads to nasty bugs known as race conditions or “Heisenbugs” Heisenbugs” syndrome. It has gotten so far back with multi-core processors that there are now multiple execution engines living their own lives.

With VSD, a functional virtual platform is deterministic. Time and time again, code will execute the same way. As the simulator logs any event and relevant data, it provides the full control and visibility necessary for advanced debugging and testing. Checkpointing is neat as well. Just imagine that developers can stop and come back to a defined checkpoint to either skip boot time or do reverse execution. A time machine without any code instrumentation or hardware, the virtualized environment delivers TiVolike functionality that also lets developers change the future by returning in time to debug or play out “what-if” scenarios.

5. VSD offers a parallel to the virtualized server by enabling new business models.

Recently, Monta Vista Software—a Virtutech partner—announced a new SaaS called TestDrive. It enables Monta Vista’s customers to evaluate and test their Linux product offering from the web. The customer is connected to a virtual board farm built and run with a Virtutech VSD product called Simics. This is an example of how VSD supports new thinking and can redefine how corporations conduct their business.

Just as Moore’s Law has reached its plateau, traditional software development must change. The payback isn’t coming from just more tools, more open-source availability, and more people on the job. A new infrastructure is needed to enable the process improvements, changes, and improved risk mitigation that will enable hardware and software teams to reach their full potential. Virtualization in software development with VSD can be the solution for which the industry has been searching for some time.



Michel Genard is vice president of marketing at Virtutech, a provider of virtualized software-development solutions for embedded electronic systems. Genard is an industry veteran with more than 20 years of experience in the software and hardware embedded market.