As you can read in many posts on the Intel® Embedded Community web site, virtualization is a popular topic given that the technology can allow a single processor to partition and host two or more separate set of tasks that have traditionally required multiple processors or boards. Many of the posts have focused on high-end Intel® Architecture (IA) processors but power-optimized Intel® Atom™ processors can also support virtualization – both processors with and without explicit Intel® Virtualization (Intel VT) support in hardware. Today, let’s consider the type of virtualization implementation that you might deploy on Atom and discuss a methodology for evaluating the level of processor performance required. Indeed virtualization can maximize system efficiency and fewer ICs and a smaller system footprint is almost always better given that the system meets the application requirements.
One key application for virtualization is the combination of real-time tasks and an intuitive user interface on one processor for applications such as industrial control. Design teams find it much easier to implement a compelling user interface using a general-purpose operating system such as Windows. But Windows can’t support the real-time requirements of the control application. Virtualization allows a real-time operating system (RTOS) to coexist with Windows on one processor whereas legacy systems have required two separate processors and often two separate boards or modules.
You have likely seen the theme I’ve laid out above relative to high-end multi-core processors such as second-generation Intel® Core i5, and i7 processors. But you can combine Windows and an RTOS on Atom processors as well. Indeed you can even use virtualization on some single-core Atom processors, although dual-core models may offer superior real-time performance. In control applications, performance is measured in terms of how fast the processor can respond to an external event that triggers an interrupt as much or more so than the aggregate performance of the processor measured by MIPS or a benchmark such as Dhrystone.
Consider the Atom 400 and 500 processor series announced last year that were formerly code named Luna Pier. Members of the family include the dual-core D510 and D525, and the single-core D410, N425, N450, and N455. None of the family members includes Intel VT support but all include Intel® Hyper-Threading (Intel HT) capability.
In general, hyper-threading or multiple-threading technology allows two separate threads to run simultaneously on a single core. A dual-core processor with Intel HT can simultaneously execute four threads. Embedded design teams can leverage Intel HT technology in multiple ways. You can simply boost application performance by using threaded-programming techniques to add parallelism to the applications. I covered the potential of such performance in a post on Xeon processors working on an imaging application.
You can also use Intel HT to support virtualization, for instance running windows on one thread and an RTOS on the other. For example, TenAsys* software supports virtualization on single- and dual-core IA processors that feature Intel HT support. And of course the company supports Intel-VT-enabled processors as well.
TenAsys published a white paper last year entitled “Delivering deterministic, real-time performance with a low cost Intel Atom processor-based platform” that focuses on a comparison of D410- and D510-based systems. TenAsys offers a software product called INtime® for Windows that allows the company’s INtime RTOS to run alongside Windows on single- or multi-core IA processors.
TenAsys tested the D410 and D510 first in what the company referred to as an unloaded state where the processor only ran industrial-control benchmark code. The company measured response to interrupts and the thread response that it defines as the interrupt-response time plus the time required for the interrupt service routine to start a new thread. That means that thread response includes the time it takes the operating-system scheduler to allocate memory and setup the thread. TenAsys then repeated the tests on the single-and dual-core processors with a Windows graphics application running concurrently.
The above figure summarizes the results. In the loaded instance that’s typical of a virtualized environment, the dual-core processor performed considerably better. A deep examination of the exact details are beyond our scope here. If you want to know more, please read the entire whitepaper. But the point is that even the single-core, loaded test revealed results that would be suitable in some real-time applications, although the response time would also fall short of the requirements of many applications.
TenAsys has continued to add support for newer Atom family members. After the whitepaper was published, the company announced support for the Atom E6XX series processors that include both Intel VT and Intel HT support. Embedded teams can use both INtime for Windows and the TenAsys eVM™ for Windows Embedded Virtualization Manager with the Intel-VT-enabled processors. The eVM software allows you to run Windows alongside RTOS products from other software vendors in a virtualized environment.
With both TenAsys software products, teams will realize better performance using a processor that supports Intel VT. That doesn’t mean that an Intel-VT-enabled processor is the right choice for every project where a team might use virtualization. It does mean that design teams should evaluate a processor in terms of virtualized performance on code similar to their specific application requirements and relative to other factors such as power consumption, cost, and I/O features.
I’ll leave you with a link to a related post that you might find interesting. RadiSys** has also utilized its Hypervisor software with Atom processors and documented sub-10-µsec interrupt response. The Atom family is quite capable in virtualized real-time applications.
How do you leverage Intel HT? Have you focused on parallel, threaded code, or have you used it with virtualization software? What kind of interrupt-response requirements have you faced recently? Please share your experience via comments with the Intel® Embedded Community and tell other community followers how you evaluate real-time-response requirements relative to IA processor capabilities.
To view other community content focused on virtualization, see “Virtualization – Top Picks.”
Roving Reporter (Intel Contractor)
Intel® Embedded Alliance
*TenAsys is an Affiliate member of the Intel® Embedded Alliance
** RadiSys is a Premier member of the Alliance.