BROWSE ARTICLES BY TECHNOLOGY

DIGITAL EDITION

RTC Magazine Digital Edition

INDUSTRY NEWS

RECENT COMMENTS

  • Hi Juan, This article shows you how to implement a quadrature encoder interface on the FPGA using digital lines. It was written for our PCI or P...

    Meghan Meckstroth Kerry - See Article

  • Good coverage on the general advantages of COM, and X86 implementations. It would have been nice to ARM options for lower-power (handheld) applicat...

    Brian Empey, P.Eng. - See Article

  • Your article about Application Service Platforms in RTC April is another example of great reporting by RTC. Can we have a new RTC index category -...

    Kenneth G Blemel - See Article

  • Static analysis tools/scanners are a great arsenal for companies who require high quality code. It does a great job of finding a wide range of pro...

    Andrew Yang - See Article

  • I hope that the microcessor based Insulin Pump riding on my belt would be held to a higher standard. If it quits, I can work around that inconvenie...

    Karl Williamson - See Article

WHITEPAPERS

QUICK DOWNLOADS

RTEC10 is an index made up of 10 public companies which have revenue that is derived primarily from sales in the embedded sector. The companies are made up of both software and hardware companies being traded on public exchanges.

COMPANY PRICECHANGE
Kontron
7.81
4.577%
Adlink
1.54
2.388%
Advantech
2.32
1.505%
Interphase
1.61
-3.012%
Radisys
9.26
-1.016%
-   Performance Technologies2.100.000%
-   Enea5.630.000%
PLX
3.62
-3.209%
Mercury Computer
11.76
-2.931%
Elma
412.98
-0.476%
HIGH LOW MKT CAP
7.85
7.43
435.04
1.58
1.52
185.11
2.33
2.30
1,198.70
1.70
1.61
11.00
9.41
9.24
223.74
2.102.1023.34
5.635.54101.86
3.74
3.61
134.28
12.17
11.76
279.57
412.98
412.98
94.25
RTEC10 Index: 490.94 (1.11%)
RTEC10 is sponsored by VDC research

TECH INSIGHT

Software Analysis Tools

Full System Virtualization: Simulation for the Real-Time Embedded Economy

Host development platforms are now fast enough and hardware virtualization software is efficient enough to allow the development of OS and application code to take place before there is any real hardware–with advantages in cost and efficiency.

PETER S. MAGNUSSON, VIRTUTECH

  • Page 1 of 3
    Bookmark and Share

One consequence of Moore’s law is that as processors increase in speed, an increasingly large part of an electronic system is most effectively implemented in software. This has clearly been true for products like enterprise servers and PCs. Today however, following this performance curve, we now have game consoles, smart phones, airliners and automobiles all running different operating systems and applications. In order to keep up with the increase in—and complexity of—today’s device software, a major transformation in complex system-level embedded design is currently underway.

Typically, the critical path for the delivery of a conventional working system is to finalize the hardware design and then finish the development of the software, followed by the final completion of the system integration. However, as the task of developing software increases in complexity and length, it comes to dominate the cost and risk of the overall system development project.

Two major challenges face the system team: First, software development can no longer wait for hardware development to be completed and simply must begin earlier. Secondly, the cost of the traditional hardware-based approach to testing software is becoming both prohibitively expensive and unwieldy. The best solution to easing the pain associated with these challenges is full system virtualization—leveraging the power of virtualization technology to simulate the entire embedded system in development, enabling a faster concurrent development cycle.

Virtual Platforms

To follow a software development approach that takes advantage of full system virtualization, a virtual development platform has to be created. Specifically, a software model of the system in question is built and run on an underlying simulation environment.

For example, a set-top-box containing a DVR (Tivo) might consist of a MIPS processor, a disk drive, cable modem and various types of memory, interrupt controllers and so forth. Using virtualization, each of these devices is replaced by a model. This assemblage of models is known as a virtual platform and can be run just like the real hardware—a set-top-box in this instance.

While producing a functional virtual platform is a significant step toward easing development pain, the most important aspects of the platform—fidelity and performance—have to be adequately addressed before the platform can present an effective advantage to the developer.

A model with high fidelity will be sufficiently accurate so that the binary code that will eventually run on the real set-top-box can run unchanged on the virtual platform. In particular, the unaltered binary of the real-time operating system (RTOS) can be used. At the same time, a high-performance virtual platform must be fast enough that software developers enthusiastically prefer to use it, looping quickly through the edit-compile-debug cycle, unlike co-verification environments. Unfortunately past attempts at virtualization failed to produce acceptable levels of performance or fidelity.

To be truly effective, the virtual platform must be able to simulate not only the system being designed, but enough of the environment surrounding it to model real-world use—in effect, a virtual test rack. In the previous example, a team is designing a set-top-box, but it is not enough to model just the set-top-box itself. It may be necessary to model several set-top-boxes, along with a central server delivering video-on-demand, and perhaps a PC used to administer the system and a server to handle billing.

When modeling peripheral devices—just as when modeling the processor— performance and fidelity are essential. Fidelity for most peripheral devices means that the device registers should contain the correct values when the processor reads or writes them, and that suitable simulated actions take place when the peripheral is activated. However, in order for the overall performance of the virtual platform to be good, the peripheral device models must also be high performance.

Modern virtualization approaches are capable of impressive performance—sometimes exceeding four billion instructions per second running CPU-intensive benchmarks on the latest PC hardware (summer 2004). This is faster than the clock-rate of the underlying computer running the simulation. In more realistic examples, such dramatic speeds are reduced by a factor of almost five, leading to performance approaching one billion instructions per second. This is often faster than the real hardware, which might be an embedded processor fabricated in a semiconductor process, a generation or two behind that used for the microprocessor in the host PC.

LEAVE A COMMENT