Virtutech: Large System Virtualization for Complex Modeling
Virtutech: Large System Virtualization for Complex Modeling
By VSM News Staff
published: Wednesday, October 13 2004


"Full system simulation...to strike a balance between accuracy and performance."

Founded in 1998 as a spin-off from the Swedish Institute of Computer Science, Virtutech is the world's first and largest company to commercially develop, market, and license efficient instrumented system-level instruction set simulation technology. Virtutech's core product, Simics, can simulate high-performance computer and digital systems, and offers time-to-market value during the design, development, and testing phases. Customers have included AMD, Ericsson, Hewlett-Packard, Brocade, and Sun Microsystems, as well as a number of universities in the U.S. and Europe, such as MIT, Carnegie-Mellon University, and the University of Wisconsin-Madison.

VSM spoke to Paul McLellan and Dale Rossi about Virtutech and Simics.


VSM: Could you introduce yourselves?

Paul: I’m the Vice President of Marketing for Virtutech. I’ve been in the business of providing tools for developing electronic systems, especially systems on silicon integrated circuits. And I worked in a whole slew of companies. I was president of Compass Design Automation; I ran engineering at Ambit and then when Cadence acquired us I worked there for several years; I was the vice president of marketing for VaST Systems Technology.

Dale: I am Vice President of Channels and Business Development for Virtutech. My background is both in hardware and software. Early on I was with Lucent’s sales organization for three years on the hardware side, and then transitioned into software, working for the enterprise network management company MicroMuse and running channels. Then I branched into business enterprise applications and was founder and COO of Accordia, which was recently sold to a global implementation and development partner for SAP.

VSM: Why don’t you tell us a little bit about Virtutech, and something about your origins and your current mission?

Paul: We’ve been in business for about six years. The company actually has roots in work done at the Swedish Institute of Computer Science on virtualization to develop large multiprocessor systems. This type of development always suffers from the problem that you pretty much have to use virtualization to develop large multiprocessor systems, because they’re just too expensive to build experimentally. In fact, two groups spun out of that work, one being Virtutech, and the other essentially becoming what is now Sun’s Enterprise Server Group.

The problem we are addressing is that within large system companies, more and more of a system’s make-up is software, which requires hardware (or some virtual equivalent) to be available to developers early on. This is especially true in the case of a company like Sun, but it’s also true in the case of a company that’s building set-top boxes, or a company like Cisco, or even a company like Airbus. I read recently that the Airbus 380, the new wide-body plane that’s expected to come out in a couple of years, has more than a billion lines of code in it. So if you look at it from that point of view it must be at least as difficult a software problem as it is a mechanical problem of designing an airframe.

Historically the way people have addressed this is to use huge quantities of hardware. To run and develop code requires a room full of racks of equipment, often custom built, or pre-production models, which are incredibly expensive. So this can be literally hundreds of millions of dollars worth of equipment that a large system company may have, in dozens of rooms.

You can’t get rid of all of that, obviously. Nobody’s going to ship software that has never run on the real hardware, or never run on a mockup of the real hardware. They are, however, reducing their hardware cost by as much as one-half to two-thirds through virtualization. We can offer enormous savings on the order of tens or hundreds of millions of dollars on the amount of capital that needs to be tied up in hardware. We are really offering solutions to people who are developing software rather than the people who are running it afterwards. So to some extent we’re focused on reducing the cost of developing systems, and in particular cutting down the scheduled time to market, and the risk of system development.

In a virtual environment, because you’ve got a much cleaner environment from the point of view of the software engineer, it’s easier to debug your code, insert much more complicated break points, and freeze the whole system in a way that you can’t with the real hardware. For example, you can’t stop a disk drive, but you can freeze a virtual disk drive and look at the registers inside the controller, if that’s what you need to do.

Dale: Agreed. One thing Virtutech really brings to our customers is a much more controlled environment for the actual piece of hardware. Typically what happens is that even if there’s a prototype that develops so the software engineers can do their work, the hardware that they’re running their software against is not as controlled as it would be in a Virtutech environment. That’s a really strong benefit for our customers.

And we’re developing additional feature sets that take advantage of that control.

VSM: So they’re able to tweak it?

Dale: Yes, there are all kinds of things that you can do. You can start and stop, accelerate, as well as easily play back a simulation –and put in break points. Overall it’s a much more controlled environment. Moreover, because we’re dealing with virtual models simulating a virtual environment, tweaking these models is much easier than, let’s say, adjusting a hardware prototype if there is a change due to a new product requirement.

Paul: Today we’re not particularly targeting the market for what we call “production virtualization,” which is for people who want to run real servers doing real work in a production environment. What we’re more focused on is people wanting to develop servers and to develop those kinds of applications. So for example, Sun uses our virtualization software for developing the operating systems that run on their large enterprise servers. That’s how they develop the operating system for a 16-way server that hasn’t been built yet. And even when they do have the server, they can’t get their hands on enough of them because they’re $2,000,000 each, and Scott McNealy simply can’t offer up a new server for every engineer.

Although one could potentially re-target the fundamental technology, today we’re not in the market for running Sun-based data centers, for instance, where there may be more than 1,000 virtual servers and who knows how much hardware actually running it, and moving virtual servers around as new physical servers come in or go out of service or break down.

VSM: So in the development world it’s similar to what weather forecasters would do with simulating complex weather events, or even what nuclear scientists would do?

Paul: Right, they face some of the same problems. In the case of weather forecasters you obviously can’t go out and build an experiment to see what the weather is like tomorrow, you have to simulate it. And for a whole host of reasons, some political and some just practical, for nuclear science you can’t set off a bomb every time you feel like trying out an idea either. Driven more by expense and time issues, hardware is very expensive and takes a long time to build and isn’t available when you need it. People want to use virtualization for the same reasons to get the software developed.

VSM: Would Virtutech’s market be a small, narrow group, or is it that more and more there are vast commercial applications for what you’re able to do?

Paul: Our market is really the large system companies, so in that sense it’s a large market. It’s an approach that gets more and more attractive the more complex the system gets. Typically where we’re engaged today with customers is in the more complex groups. Aa good example is in Sun, where we’re engaged with the people building the multiprocessor enterprise servers. For people building a straightforward single processor blade server, this approach is less attractive today. The market’s coming towards us, because systems are certainly getting more complicated rather than less complicated.

You probably have some idea of what’s inside your cell phone. There are a couple of million lines of code in there and it’s basically a general-purpose processor running a pile of software. And again, when you’re developing a next generation cell phone you have to write that software and run it on something. Historic approaches have been that you can build some horribly complicated hardware that the programmer will use for debugging. It’s very expensive and doesn’t really represent the real hardware that closely. You can build some test scaffolding on a PC and develop the software on a PC, and cross your fingers that the software you develop on an Intel processor running on your PC is going to roughly represent what happens when you compile that code and run it on an ARM processor inside your cell phone.

But with the virtualization approach, you can basically build a model of the cell phone, run the software on it and have confidence that it’s going to run on the real hardware. Microsoft used Virtutech to develop the 64-bit version of Windows when the AMD 64-bit processors started coming out. And supposedly the day they got their first silicon, the operating system came up and booted, which is unheard of in the operating system world.

VSM: Is Simics a highly customized product to your customer, or is it like a Swiss Army knife, where there are a lot of modules that are very common?

Paul: The simulator falls into two parts. There’s the simulation infrastructure itself, the basic raw simulator, and that’s completely common. And there’s the model of whatever it is you’re actually simulating, so in the case of Sun there are models of SPARC processors, the Ethernet and disk controllers and so forth. In the case of some other customer, like AMD, there are models of AMD processors. So those bits are different depending on what application it is.

For the processors in particular, it falls somewhere between the two, because there are obviously lots of people who are going to use the same processor. There aren’t that many processors in the world, especially those that are, by any kind of commercial measure, genuinely successful. Often there are custom ASICs in some of the boxes and modeling those is obviously completely specific to that application company. So those need to be modeled as well, and that can be done either by Virtutech or by the customer themselves.

VSM: Does Simics actually use virtualization itself? Is it a product that takes advantage of virtual machines?

Paul: It uses virtualization in the sense that the target software we’re running is the production binary that runs on the eventual hardware. The software can’t tell that it’s running in a virtual environment instead of the actual hardware environment. So, for example, if the target goes out to look at a hardware register it will get a value. If it tries to initiate an I/O operation, Simics will do something equivalent and eventually the operating system will get an interrupt and proceed as normal.

We can boot up Windows, Solaris, Linux, VxWorks or any other operating system from the raw binary. So in that sense it absolutely is a virtual machine technology.

VSM: When you discuss Simics and the whole concept of parallel testing and ASIC validation, from the QA manager’s perspective in developing a benchmark on their process compared to the Simics solution, how do they evaluate the product? Is it integrated within their current process or is there a separate test lab?

Paul: It depends on how they’re structured as a company. In general, people who are developing and testing software typically have test labs so they end up evaluating the product. When they’re looking at Simics to evaluate from a sense of “Is this product any good? Might we consider buying it?” they’re typically interested in three factors.

First, they’re interested in whether the software is accurate in the sense they can run it and have things operate as normal. Secondly, there is performance to consider because you can build an accurate model very easily. If you’re building the hardware yourself, especially if you’re building an integrated circuit, you’ve got a lot of models which are used as part of the design process, but they are very slow. It’s useless if you can boot the operating system and it comes up perfectly well but it takes three weeks, which is the kind of performance difference you might be talking about. We’re easily the fastest of the virtualization solutions in the sense that we’re not only performing software virtualization by simulating a PC on a PC, or a SPARC on a SPARC; we can simulate anything on anything.

For example, I can run a demo of an enterprise multiprocessor 64-bit Sun server running on a PC. We could type commands into it, and it would respond just like Solaris. And Simics can scale to huge systems as well. There’s a show in our industry called the Embedded Systems Conference held in March, and at the 2004 show, we were demonstrating 1,000 computers talking to each other on a simulated network running on ten computers actually running the simulation. They were running Linux, and they were all running fast enough that you could type commands like LS into Linux and it would respond with the files and so on.

The fastest simulation I’ve seen is running at more than four billion instructions a second. That’s simulating a PowerPC on a top-of-the-range Intel-based PC. And if the system is lightly loaded, it will run much faster than it runs on the real hardware, even up to a hundred times faster. We often boot up systems much faster than the real hardware because we are very good at simulating lightly loaded systems. In a simulated environment we know all the events that are going to happen, so we don’t have to wait for them. We can accelerate through-time to get to them.

The third factor people look at is how well it integrates into whatever flow or development process they have for getting their product out. This is not something that can be used only in development. Once people start thinking a bit outside the box, they realize they can use it for purposes other than development engineering, such as training. Instead of using tens of thousands of systems to teach people how to use their systems, companies can simply use PCs acting as any system.

VSM: In addition to training, what are some other examples where you are beginning to branch out to new fields and new applications for your solution?

Paul: It’s probably too early to tell, but one of the areas that’s very attractive to large system companies that deploy a lot of hardware is that they have a huge investment in their field organization, field service or applications. Honing in on problems that occur in the field and getting information back to engineering in a way that engineering can fix the problem is another area where the virtualization approach is attractive. One of the nice things about using the virtual approach is that you can reproduce a problem in the virtual environment and email it to an engineer on the other side of the world for evaluation. This can’t be done with real hardware.

VSM: This is certainly a different slant on virtualization than typical server virtualization like VMware.

Paul: Right. One of the things we do that’s different from someone like VMware is that we are often virtualizing a much bigger system. We’re looking at virtualizing systems which may consist of, say, three PCs and five routers and a couple of servers. We virtualize that whole system, so that you can test if the router works, for instance.

VSM: It seems like it’s a virtual wind tunnel for the software. In the Boston area there are many smaller companies doing software development. You’ve talked about the applicability of your solution to large, complex systems. Would you ever see some smaller companies being able to use some of your capabilities?

Paul: Yes, any company can certainly use the capability. From a business point of view and from a leverage point of view, it doesn’t make much sense to invest a lot in the relatively high fixed cost of the modeling if you’re only going to have two developers use it afterwards, compared to having 200 developers using it. However, Simics is useful in a small company environment where the model is standard in the sense that they’re developing, say, a standard board. In the Boeing 7E7 there’s a standard flight computer module that is used for everything. So even if you’re a small company you can develop on that because the hardware will still be widely used.

The mixture of computers getting faster and improvements in the underlying simulation technology means that we really are reaching the stage where we can deliver pretty incredible performance to the engineer’s desk.

*****

For more information about Simics and Virtutech, visit www.virtutech.com, call 408-392-9150 in the US or +46 8 690 07 20 in Sweden, or email sales@virtutech.com.


Comments
Search RSS
Please register as a member of Virtual Strategy Magazine to comment.Click here to register.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."