Skip navigation

Software & Bios

10 Posts authored by: wwebb

With widely available virtualization software and new hardware-assist architectures, industrial designers can readily combine multiple factory functions into a single hardware platform in order to minimize development costs, power requirements, and the number of system components. This consolidation feature allows designers to merge existing applications with different operating software without the need to modify existing code.  Virtualization also allows designers to easily combine general purpose operating systems such as Windows or Linux with real-time software or safety/security-critical functions while retaining the required determinism and isolation. Combined with multi-core technology, virtualization can also be used to boost the performance of individual software segments by assigning additional processing power.


In order to optimize virtualization functions, embedded processor architectures from Intel include built-in hardware functions to increase the performance and speed up the interaction between virtual environments. For example, Intel® Virtualization Technology (Intel® VT) increases system performance and reliability with hardware support for virtualization software to simplify the transfer of data and control between virtual operating systems. If a system becomes disabled due to a software or operating system failure, a virtual backup can automatically take control and start execution without user intervention. Virtualization can also be used for hardware substitution by invoking a virtual layer that uses a modified set of I/O devices. Intel® VT improves the performance of software-based virtualization operations by using hardware-assist to allocate memory and I/O devices to specific partitions to decrease the processor load and reduce virtual machine switching times. In addition, specialized Intel functions such as Extended Page Tables (EPT) and Page Attribute Table (PAT) provide a hardware- assist to the partitioning and allocation of physical memory among virtual machines.


Virtualization platforms are built by adding a real-time virtual machine monitor (VMM) or hypervisor software layer directly above the hardware to create and manage individual partitions that contain guest operating systems.  The hypervisor allocates system hardware resources such as memory, I/O and processor cores to each partition while maintaining the necessary separation between operating environments. Several Intel Intelligent Systems Alliance members offer software products that take advantage of the enhanced performance and isolation provisions provided by Intel® VT. For example, the Wind River Hypervisor allows designers to partition hardware devices, memory, and cores into virtual machines, each with its own operating system while maintaining the necessary separation. (See figure 2).  The hypervisor allows system designers to isolate the safety-certified components while still operating on a single hardware platform utilizing a certified virtual machine monitor. Virtualization improves the potential uptime of embedded industrial systems since individual partitions can be rebooted or reprogrammed without affecting other applications on the same device.


hypervisor a.png


Green Hills Software also offers a popular embedded virtualization package that utilizes the Intel® VT architecture. The INTEGRITY Secure Virtualization product, shown in Figure 1, can host arbitrary guest operating systems alongside a suite of real-time applications and middleware. Applications and guest operating systems are scheduled across one or multiple cores, can communicate with each other, and utilize system peripherals according to a strict access control model. On hypervisor acceleration-enabled processors such as Intel® VT, INTEGRITY supports high performance "full virtualization" where no changes to the guest operating system are needed. The system supports multiple instances of Linux, Windows, Solaris, VxWorks and other operating systems with managed inter-process communications (IPC) between virtual environments and applications. System resources, including memory and devices, can be fixed at build-time or dynamically adjusted at run-time. Health monitoring features include performance monitoring, fault detection, and guest operating system and application restart. For the software development phase, Green Hills provides the MULTI Integrated Development Environment along with an integrated static analyzer allowing compilation and defect analysis in the same pass.


multivisor_arch.jpg


Hardware assisted virtualization (Intel® VT) improves the flexibility and robustness of software based virtualization technology and offers the tools needed to isolate and secure critical applications while lowering  production costs via hardware consolidation. If you are starting a new virtualization project with multiple operating systems and you have questions, please share your concerns with fellow followers of the Intel® Embedded Community. You can also keep up with the latest technical details and product announcements at the Embedded Computing Design archives on Virtualization.

 

LEARN MORE >>

 

Solutions in this blog:

 

Related topics (blogs, white papers, and more):

 

Warren Webb
OpenSystems Media®, by special arrangement with the Intel®
Intelligent Systems Alliance


Wind River Systems is an Associate member of the Intel® Intelligent Systems Alliance. Green Hills Software is an Affiliate member of the Alliance.


Modern factory support and production test systems must be general purpose, remotely programmable, and flexible enough to handle a variety of input ranges and types, speeds, and functions.  In addition, many in-process inspection stations now include high-speed digital signal analysis and video product analysis.  In order to present the latest trends, I asked two experts from the Intel® Intelligent Systems Alliance to share their views on the management and optimization of production test systems. Here are their responses:

 

How does the latest wave of multi-core processors affect industrial design and production optimization?

 

Dr. Yong Luo, General Manager of the Embedded Computer Segment at ADLINK Technology:  The industrial design & production really benefit significantly from the latest wave of multi-core processors, not only from the unprecedented performance packed in the multi-core processors, but also from the potential of managing the power consumption through new techniques such as dynamic core allocation etc, beyond the traditional speed-step technology.

 

Sarah Schlonsky, Product Marketing Manager for PXI Embedded Controllers at National Instruments:  With the number of processor cores on a chip quickly increasing, engineers and scientists are more capable through new techniques to make the most of this hardware. Beyond performance benefits, multi-core processors also enable applications to take advantage of virtualization technology. To adapt to evolving applications, NI Real-Time Hypervisor software enables the consolidation of systems by running NI LabVIEW Real-Time OS and Windows or Linux on a single controller through the virtualization technology. For example, one core of a quad core system can be used for NI LabVIEW Real-Time OS and the remaining three cores could be used for Windows. The cost of hardware and footprint of system can be reduced, as well as more capabilities packed into a consolidated system by leveraging NI Real-Time Hypervisor in an industrial application.

 

What software tools and development aids are available for factory automation and industrial management projects?

 

Sarah Schlonsky, National Instruments: Traditional sequential language applications must be explicitly broken up into separate pieces, or threads, to run in parallel on multi-core processors. Although the concept of threads is straightforward, working with them can be time-consuming and tedious. Each thread must be carefully managed, and data accessed by threads is very susceptible to race conditions if not protected carefully.

NI LabVIEW system design software implements a dataflow programming paradigm. LabVIEW applications inherently run in parallel where possible and without requiring specific multi-threading programming techniques. The dataflow nature of LabVIEW means that anytime there is a branch in the data flow, or a parallel process on the block diagram, the underlying LabVIEW compiler creates a thread to execute the code in parallel. These independent pieces of code are assigned to run in a fixed number of threads that LabVIEW automatically creates. This process helps an application take advantage of multi-core processors and avoids creating too many threads, which can increase switching overhead and inefficient execution.

 

With cloud computing and connectivity dominating embedded designs, what security precautions are available to prevent unauthorized access?

 

Dr. Yong Luo, ADLINK Technology: Widely connected devices and cloud-based embedded design solutions have certainly improved the industry efficiency and automation, but also introduced security challenges together with the net connectivity. This threat never existed before for stand-alone systems. All kinds of software/hardware-based security solutions have to be implemented to prevent attacks and breach and thus increase the system load and cost. The newly-introduced McAfee “White-list” solution seems like an attractive and efficient solution for embedded design and industry due to their nature of narrowly-focused application targets (as compared to generic internet devices).

 

Sarah Schlonsky, National Instruments: Intel® multi-core processors feature Intel® vPro Technology which contains a collection of hardware technologies that enable management features independent of the operating system (OS) and many security features. These technologies are designed into the PC’s chipset and other system hardware making it less vulnerable to the standard software threats that affect an OS or software application.

From the software standpoint, an initial consideration during embedded design projects should be with the operating system:  evaluating a Windows operating system or a real time operating system. Real time operating systems, such as NI LabVIEW Real-Time, can guarantee time-critical tasks are precisely executed and are not as susceptible to everyday software threats. A real time operating system can be designed to run critical applications reliably and deterministic as compared to a Windows operating system. A Windows operating system’s primary task is to maintain user responsiveness.

 

What are the technical challenges that designers face as they implement high speed image analysis systems for production inspection applications?

 

Dr. Yong Luo, ADLINK Technology: While the new Intel® Media Software Development Kit (Intel® Media SDK) is developing along the right direction to replace the dedicated DSP solution for video encoding/transcoding, the software performance for image analysis and processing on Intel® Architecture (IA) is still far from enough to handle high resolution and high-speed image processing in this area, as the resolution, accuracy and processing speed requirements are getting higher. Therefore, a hybrid solution mixing IA (mostly for control and applications) and DSP (mostly for high-speed and high-resolution image analysis) might still be needed.  This certainly is still a challenge for both designers and software developers.

 

Sarah Schlonsky, National Instruments: As instrumentation for high speed image analysis expands its capability with incredibly fast sampling rates and high bandwidths, the bus that interfaces the instrument with the PC is often overlooked.  The throughput capacity of a communication bus can directly impact the instrumentation’s realizable bandwidth. This is known as bottlenecking a system, which results in an overall impact to test times. More demanding applications can be solved as PC-based measurement hardware continues to adopt progressively higher performance data buses. 

The evolution to the PCI Express/PXI Express bus is enabling even faster data transfers through direct data links. Implementing streaming from the instrument, through the PC, and onto a hard disk increases the available memory of the instrument from megabytes to terabytes. PXI platforms are utilizing the high-bandwidth PCI Express bus architecture to effortlessly stream data to and from a hard disk at rates high enough to support the advanced bandwidth instrumentation.  With increasingly faster read/write speeds and increased storage capacity, data streaming enables faster sampling rates over longer testing periods than ever before.

 

As you look ahead, which technologies and applications present the most interesting opportunities for industrial designers?

 

Dr. Yong Luo, ADLINK Technology: Personally, I believe the 4-in-1 strategy is developing in the right direction, but how far and how broad the Intel® Data Plane Development kit (Intel® DPDK) and the Intel® Media SDK can go still remains to be seen.  It is definitely a very interesting trend, but the industry would love to see a set of real hybrid hardware chips from Intel® successfully replacing the need of most DSPs and dedicated packet processing processors, converging all of them into the most popular x86 programming model.  The key here is not just the replacement of hardware, but really to replace the costly and complicated hybrid programming model.

 

Sarah Schlonsky, National Instruments: PCI Express Gen 4 and FPGA capabilities are the most promising technologies looking forward. Instrumentation will continue to evolve and the amount of data that needs to be passed to and from the instrument will continue to rise. PCI-SIG continues to evolve the PCI Express standard with an expectation that the PCI Express 4.0 specification will improve the bandwidth capabilities of the bus enabling even more applications.

 

To view other community content on manageability, see “Manageability - Top Picks

manageability.jpg

Warren Webb

OpenSystems Media®, by special arrangement with the Intel® Intelligent Systems Alliance

 

National Instruments and ADLINK Technology are Associate members of the by Intel® Intelligent Systems Alliance.

To deal with the high cost of labor and to improve product quality, manufacturers are ramping up their implementation of computer controlled production line machinery and equipment. In fact, IMS Research reports that the global industrial automation market is expected to grow to $159.8 Billion in 2012 and to go beyond $200 Billion in 2015. Embedded software plays a pivotal role in this industrial automation environment and allows manufacturers to rapidly switch between products, easily integrate new control systems, and securely manage functionality from local or remote locations. Along with the hardware performance improvements, the new 3rd-Generation Intel® Core™ (formerly codenamed Ivy Bridge) architecture includes a number of features that will enhance embedded software development for industrial applications and improve the throughput of many control and analysis algorithms.

 

This new multi-core processor architecture is based on a tri-gate transistor design and 22 nm process technology which together boosts software performance by up to 20% compared to previous generations. The 3rd-Generation Intel® Core™ processor features a significantly upgraded graphics engine which makes it possible to double the 3-D graphics and HD media processing performance for industrial image sensing and display applications and control up to three independent displays simultaneously. The processor architecture also incorporates the Intel® Advanced Vector Extensions (AVX) instruction set to optimize high speed calculations and potentially eliminate external hardware-based digital signal processing circuitry. Industrial software designers can take advantage of much improved I/O data rates with Ivy Bridge to speed real-time analysis routines. For example, PCI Express 3.0 is implemented within the processor and extends rates to 8 gigatransfers per second while USB 3.0 moves data at 5 gigabits per second when coupled with the Intel® 7 Series Chipset Family.

 

As embedded designers work to upgrade and combine existing industrial automation technology with the latest state-of-the-art high speed, real-time control systems, virtualization software combined with the new 3rd-Generation Intel® Core™ architecture offers a number of advantages.  With multi-core software virtualization technology, such as TenAsys Corporation's eVM for Windows (See figure 1), designers can join a real-time operating system alongside Windows on the same multi-core processor platform. eVM partitions the platform to ensure that critical hardware interfaces are not virtualized, guaranteeing maximum performance and deterministic response to real-time events.  The 3rd-Generation Intel® Core™ supports Intel® Virtualization Technology (Intel® VT) to improve the performance of software-based virtualization operations by using hardware-assist to allocate memory and I/O devices to specific partitions to decrease the processor load and reduce virtual machine switching times.

 

evm.png

 

Security and safety are also critical items to consider when developing software for industrial automation applications. Several embedded software suppliers provide products that take advantage of the enhanced isolation and security provisions provided by Intel® VT and Ivy Bridge. For example, the Wind River Hypervisor allows designers to partition hardware devices, memory, and cores into virtual machines, each with its own operating system while maintaining the necessary separation. (See figure 2).  The hypervisor allows system designers to isolate the safety-certified components while still operating on a single hardware platform utilizing a certified virtual machine monitor. Virtualization improves the potential uptime of embedded industrial systems since individual partitions can be rebooted or reprogrammed without affecting other applications on the same device.

 

hypervisor a.png

 

In addition to the virtualization and security features described above, software developers addressing industrial automation applications with Ivy Bridge can take advantage of Intel® vPro Technology to access, control, and reconfigure a remote embedded system. vPro includes Intel® Active Management Technology (Intel® AMT) with certificate-based security for remote access regardless of the operational status of the system. This technology provides industrial automation support teams an economical method to monitor, manage, and control a large number of production platforms from a central location. If you are ready to start an industrial automation project please share your 3rd-Generation Intel® Core™ questions and comments with fellow followers of the Intel® Embedded Community.  You can keep up with the latest technical articles and product announcements at the Embedded Computing Design archives on Ivy Bridge.

 

To view other community content on virtualization, see "Virtualization - Top Picks

virtualization.jpg

Warren Webb
OpenSystems Media®, by special arrangement with the Intel® Intelligent Systems Alliance

 

Wind River Systems is an Associate member of the by Intel® Intelligent Systems Alliance. TenAsys Corporation is an Affiliate member of the Alliance. 

As multi-core processors become an integral part of the embedded landscape, designers of real-time systems are looking for the best way to take advantage of the improved performance and flexible architecture while minimizing software rework. Designers want to incorporate multi-core architecture to boost performance through parallel processing and to minimize hardware costs by combining platforms. Because of the long life cycle of many embedded applications, designers must also interact with multiple generations of technology and are often faced with combining legacy platforms with the latest high speed real-time applications. Although developers have access to multiple techniques to enable this performance gain, embedded virtualization offers the most flexibility by isolating and allocating system resources between operating environments so that real-time, general-purpose, and legacy software can be readily integrated. In embedded applications, virtualization software is widely used to combine a real-time, deterministic operating system with a high-level, interactive operating system such as Windows.

 

Virtualization is achieved by adding a virtual machine monitor (VMM) software layer that isolates individual partitions and manages the execution of guest operating systems. In order to speed up the interaction between virtual components, Intel has incorporated hardware-assisted virtualization in the latest processor architectures tailored for extended-lifecycle embedded applications. The 2nd generation Intel® Core™ processors support Intel® Virtualization Technology (Intel® VT) to improve the performance and security of software-based virtualization operations by offloading execution of certain VMM instructions to system hardware. In addition, specialized Intel® functions such as Extended Page Tables (EPT) and Page Attribute Table (PAT) provide a hardware- assist to the partitioning and allocation of physical memory among virtual machines.

 

In addition to memory and hardware device allocation, virtualization software allows the developer to join multiple, real-time processes without having to establish priorities between deterministic processes and to assign multiple cores to compute intensive applications as needed to maximize overall system performance.  Taking advantage of the virtualization benefits of the 2nd generation Intel® Core™ architecture, TenAsys Corporation recently introduced a scalable, real-time operating system called INtime Distributed RTOS allowing programmers to write applications that run without modification on different system configurations ranging from single-core or multi-core processor systems to multi-platform systems with multi-core processors (See figure 1). This application scalability is made possible with the introduction of global objects and an underlying network called GOBSnet (Global Objects Network). This inter-process communications technology enables real-time embedded applications to leverage the performance potential of the new 2nd Generation Intel® processor family allowing performance-critical application code to be executed on dedicated cores, essentially eliminating the need to have separate, application-specific processors in a system.

1sideDRTOS scalable for print.JPG

 

The TenAsys INtime Distributed RTOS also targets another trend in the evolution of embedded systems: distributed computing. Designers can build scalable applications with the flexibility to leverage multi-core processing concentrated on one platform or by distributing application across a network in order to be closer to the control point. The built-in GOBSnet features allow processes running on different instances of the INtime RTOS kernel to intercommunicate as if they were running on the same kernel. This means that the same application can be run on adjacent cores of a multi-core processor or a core on another platform with no program changes. INtime Distributed RTOS applications are edited, compiled, and debugged using the same off-the-shelf Microsoft Visual Studio software that is used to build standard Windows applications.

 

Hardware assisted virtualization (Intel® VT) improves the flexibility and robustness of software based virtualization technology and offers the tools needed to isolate and secure critical applications. You can find more information and technical articles on Intel architecture and virtualization at the Intel® Embedded Community page on Virtualization.  If you are starting a new virtualization project with multiple operating systems and you have security questions, please share your concerns with fellow followers of the Intel® Embedded Community. You can also keep up with the latest technical details and product announcements at the Embedded Computing Design archives on Virtualization.

 

To view other community content on virtualization, see “Virtualization - Top Picks

virtualization.jpg

Warren Webb
OpenSystems Media®, by special arrangement with Intel® Embedded Alliance

 

Microsoft is an Associate member of the by Intel® Embedded Alliance. TenAsys is an Affiliate member of the Alliance.

Users of the next generation of fixed function embedded devices expect the immediate response and rapid boot-up sequences similar to the “always on” features of today’s consumer electronics technology. However, to obtain needed fast start performance, designers must modify or eliminate the typical basic input/output system (BIOS) found on most x86 processor platforms. The normal tasks for the BIOS are to initialize and identify system devices and then locate and execute the boot loader software transferring control to the operating system. In a typical embedded application, the configuration remains constant so there is no need for that portion of the BIOS that checks for and interfaces with new attached hardware. A much faster approach can be developed with a basic boot loader created specifically for the embedded application, adapted to one well-defined hardware configuration, and one version of the operating system.

 

Offering a shortcut to “instant on” operation, the Intel® Boot Loader Development Kit (Intel® BLDK) allows designers to create customized initialization firmware for embedded platforms such as the Intel® Atom™ processor E6xx series. The Intel® BLDK software toolkit simplifies the development of basic fixed-function firmware rather than the full capabilities delivered with a traditional BIOS. Customers can optimize initialization firmware for shorter boot times. The Intel® BLDK product brief list the baseline boot speed at under three seconds although several vendors have created embedded products that boot in under a second. The kit includes sample reference board images that developers can use as a starting point to customize their system firmware images. The Intel® BLDK is based on the Unified Extensible Firmware Interface (UEFI) standard and features an integrated development environment to ease the modification and debug of the underlying code base. Because the toolkit is based on open UEFI standards, a significant portion of the source code is openly available and only low-level CPU and chipset initialization code are abstracted in binary libraries. The Intel® BLDK also helps reduce recurring costs since there are no fees or royalties.

 

The Intel® BLDK is also available with off-the-shelf software development packages. For example, the popular SourcePoint debug interface From Arium now includes built-in features that allow developers to debug in the source code used in Intel® BLDK development. SourcePoint enables rapid development of firmware for fixed-function embedded designs and includes Intel® BLDK support with an extension of the current UEFI-aware features offered by Arium. The most recent feature additions include cache-as-RAM, DRAM code execution trace buffers, and Architectural Event Trace (AET). For Intel® Atom™ processor E6xx series support, developers can run SourcePoint with Arium’s ECM-XDP3 JTAG Emulator for real-time display and manipulation of source code (See figure 1). Arium designed the ECM-XDP3 and the Arium software interface to be optimized for the Intel® Atom™ processor family. The SourcePoint software runs on both Microsoft Windows and Linux hosts.

 

ECM XDP3.jpg

 

Several commercial off-the-shelf (COTS) module manufacturers also support the Intel® BLDK allowing designers to easily create embedded devices with rapid startup features. The SYS9400 Reference Platform from Inforce Computing is an example of a complete, ready-to-use developer kit based on Intel® Atom™ technology and specifically created for ultra-mobile, small form-factor applications (See figure 1). The Nano-ITX single board computer supports the Intel® Atom™ Processor E6xx Series, the Intel® Platform Controller Hub EG20T, and up to 1 GB of on-board DDR2 memory. Human interface features include VGA, HDMI, and LVDS plus HD Audio along with an integrated resistive touch controller. In addition, the SYS9400 has four USB 2.0 ports, two RS-232 serial ports, a parallel port, general purpose I/Os, and Gigabit Ethernet. The module also includes a SD Card Slot & dual SATA storage options.

 

sys9410_blcdiag.jpg

 

In addition to Intel® BLDK compatibility, Intel® Atom™E6xx series architecture provides a plenty of performance enhancements and features to simplify these “instant on” device applications.  One improvement over the previous generation architecture is the integration of the display, audio, and memory interfaces onto the CPU resulting in higher system bandwidth along with a reduced bill of materials (BOM) and board area. To deal with the potentially rugged environments found in some embedded applications the Intel® Atom™E6xx series processors are available in the -40 to 85 °C extended temperature range. If you are starting or have completed a fixed function embedded design with rapid start features, please offer your suggestions and share your experience or questions via comments with fellow followers of the Intel® Embedded Community.  You can keep up with the latest related technical articles and product announcements at the Embedded Computing Design archives on Intel® Atom™E6xx.

 

To view other community content on interoperability, see "Interoperability - Top Picks

interoperability.jpg

Warren Webb
OpenSystems Media®, by special arrangement with Intel® Embedded Alliance

 

Arium is an Affiliate member of the by Intel® Embedded Alliance. InForce Computing is a General member of the Alliance.

 

As designers transition to the latest generation multicore processors, software must be divided into separate partitions to gain the performance benefits of parallel execution.  With Intel® Core™ processors, developers have access to multiple techniques to enable this performance gain including symmetric or asymmetric multiprocessing and virtualization. In the symmetric multiprocessing (SMP) configuration, a single operating system allocates threads or tasks across the available cores while managing common memory and hardware resources. Asymmetric multiprocessing (AMP) allows each core to run independent software so that a single system can easily combine real-time, deterministic tasks with a graphical user interface. With virtualization, a hypervisor isolates and allocates system resources between the operating environments so that real-time, general-purpose, and legacy software can be readily integrated in a multicore system.

 

Each of these performance improvement techniques has some risks especially for safety-critical applications. For example, when parallel, multithreaded applications become part of the software structure they are vulnerable to “race conditions” which occur when concurrent routines have access to, and one of them modifies, a shared memory location. Software failures and bugs caused by these race conditions are not deterministic and may be extremely difficult to locate with normal testing procedures. When developing parallel software, programmers must anticipate these simultaneous activities and once a routine begins to access memory, it must lock out other activities until the transaction is completed.  Although this approach sounds feasible, in practice it may run into problems if two routines are trying to “lock out” other activities simultaneously. To tackle these somewhat subtle coding problems, a number of software vendors have integrated analysis tools into their development packages to optimize the transition from serial applications to parallelism.

 

For C, C++, Java, and C# software development projects, Klocwork offers the Insight static code analysis tools to automatically locate critical programming bugs and security vulnerabilities in source code (See figure 1).  Klocwork has developed several approaches to locate and eliminate coding problems associated with multicore architectures. In a whitepaper entitled “Developing Software in a Multicore & Multiprocessor World”, Klocwork CTO Gwyn Fisher discusses techniques to identify unique software problems - specifically concurrency errors and endian incompatibilities. The paper also cites a VDC Research report that multicore and multiprocessor software projects are 4.5 times more expensive and have 25% longer schedules than the single core equivalents. In addition, Klocwork offers an on-demand webinar outlining the complexity of porting software to multiprocessor architectures and demonstrating the use of their Truepath automated, whole-program analysis engine.

 

Klocwork-insight-config.png

 

Unlike other source code analyzers that run as separate tools, DoubleCheck from Green Hills Software is an integrated static analyzer built directly into the MULTI Integrated Development Environment allowing compilation and defect analysis in the same pass. DoubleCheck evaluates potential execution paths through the code to determine how the values of program variables could change across these paths. To simplify the debugging of complex projects with multiple threads of execution, multiple cores, or multiple boards, the Green Hills Integrated Target List displays all system components hierarchically, making it easier to see relationships among applications, address spaces, tasks, and threads (See figure 2). Status information is displayed for all components, so you can quickly check the system state. The target list in the debugger allows you to follow application execution from one context to another with a single click. You can watch as different threads interact and sort out complex interdependencies easily.

 

target_list.jpg

 

After software has been successfully divided into secure code segments using static analysis tools, the 2nd generation Intel® Core™ architecture provides multiple features that augment the performance benefits of parallel execution.  For example, specialized Intel® functions such as Extended Page Tables (EPT) and Page Attribute Table (PAT) provide a hardware assist to the partitioning and allocation of physical memory among multiple cores. The processors also feature Intel® Virtualization Technology for flexible virtualization and Intel® QuickPath Technology to maximize multi-core performance.  If you are starting a new multicore project with and you have questions about static analysis tools, please share your concerns with fellow followers of the Intel® Embedded Community. You can also keep up with the latest technical details and product announcements at the Embedded Computing Design archives on Multicore static code analysis.

 

To view other community content on interoperability, see "Interoperability - Top Picks

interoperability.jpg

Warren Webb
OpenSystems Media®, by special arrangement with Intel® Embedded Alliance

 

Klocwork and Green Hills Software are Affiliate members of the by Intel® Embedded Alliance.

As embedded systems increase in complexity while combining dissimilar functionality, designers are turning to virtual processors hosting multiple operating systems to insure unimpeded, deterministic response to real-time events while simultaneously providing users and operators with a high-level, graphics-based interface. Although this virtualization approach allows the development team to independently allocate system resources including memory and I/O to each operating environment, security, stability, and reliability are still major design issues. For example, any platform that combines real-time, safety-critical embedded functions with a large graphics-based operating system must contain security provisions to allow unaffected partitions to continue operation in the event of a software failure or even a cyber attack.

 

Virtualization is achieved by adding a virtual machine monitor (VMM) software layer or hypervisor that isolates individual partitions and manages the execution of guest operating systems. In order to speed up the interaction between virtual components, Intel has incorporated hardware-assisted virtualization in the latest processor architectures tailored for extended-lifecycle embedded applications. Both the 2nd generation Intel® Core™ and the Intel® Atom™ E6xx processors support Intel® Virtualization Technology (Intel® VT) to improve the performance and security of software-based virtualization operations by using hardware-assist to trap and execute certain VMM instructions. Intel® VT allows the VMM to allocate memory and I/O devices to specific partitions to decrease the processor load and reduce virtual machine switching times. Applications requiring a higher level of security can be isolated and protected by hardware features that only allow access to memory boundaries specified by the VMM.

 

Several embedded software suppliers provide virtualization products that take advantage of the enhanced isolation and security provisions provided by Intel® VT. For example, the Wind River Hypervisor allows designers to configure and partition hardware devices, memory, and cores into virtual boards, each with its own operating system while maintaining the necessary separation. (See figure 1). These virtual boards can be run on a single processor core or distributed across multiple cores based on the needs of the system.  The Wind River Hypervisor has been applied in safety-critical applications where the safety-certified and noncertified components of the system traditionally must be physically separate. However, embedded virtualization allows system designers to isolate the safety-certified components while still operating on a single hardware platform utilizing a certified hypervisor. Virtualization also improves the potential uptime of embedded applications since individual partitions can be rebooted, even reprogrammed, while other services on the same device are not affected.

 

WindRiverHypervisor.JPG

 

Also adding support for Intel® VT-based embedded multicore processors, LynuxWorks recently updated the LynxSecure separation kernel and hypervisor for various virtual machine configurations as shown in figure 2. This virtualization software is designed to operate in secure defense environments where data and applications with different security levels need to co-reside on a single device without corruption. LynxSecure uses a hypervisor to create a virtualization layer that maps physical system resources to each guest operating system. Each guest operating system is assigned certain dedicated resources, such as memory, CPU time, and I/O peripherals. Another key feature is the ability to run fully-virtualized, 64-bit guest operating systems such as Windows 7, Linux, and Solaris across multiple cores while managed by the security of LynxSecure.

 

lynxsecure-4_0-multicore-intel.png

 

TenAsys Corporation offers the eVM for Windows embedded virtualization platform that hosts an embedded or real-time operating system alongside Windows on the same multi-core processor platform. eVM partitions the platform to ensure that critical hardware interfaces are not virtualized, guaranteeing maximum performance and deterministic response to real-time events.  eVM is installed as a standard Windows application and includes all of the integration tools needed to set up, start, and stop multiple RTOS guest configurations. The Windows-based control panel also allows the user to assign interrupts, allocate I/O devices, and the set up of disk boot images. After the system is set up, eVM provides the guest RTOS with the lowest possible interrupt latency, direct access to I/O, and non-paged RAM.  eVM for Windows has been tested with a wide range of guest operating systems including QNX®, VxWorks®, Linux®, Windows CE and T-Kernel.

 

Hardware assisted virtualization (Intel® VT) improves the flexibility and robustness of software based virtualization technology and offers the tools needed to isolate and secure critical applications. You can find more information and technical articles on Intel architecture and virtualization at the Intel® Embedded Community page on Virtualization.  If you are starting a new virtualization project with multiple operating systems and you have security questions, please share your concerns with fellow followers of the Intel® Embedded Community. You can also keep up with the latest technical details and product announcements at the Embedded Computing Design archives on Virtualization Security.

 

To view other community content on virtualization, see “Virtualization - Top Picks

virtualization.jpg

Warren Webb

OpenSystems Media®, by special arrangement with Intel® Embedded Alliance

 

Wind River Systems is an Associate member of the by Intel® Embedded Alliance. LynuxWorks and TenAsys are Affiliate members of the Alliance.

 

As embedded designers face the challenge of developing systems with fewer components and lower power consumption while combining multiple applications, many have turned to virtualization software to simplify the process. Even with a single core processor, virtualization allows designers to merge a real time operating system with a high level, graphics based user interface such as Windows or Linux. However, the introduction of the 2nd generation Intel® Core™ architecture with multiple processors and extended 7 year lifecycle support has tempted design teams to question the need for virtualization software. Specifically, they ask: If I can distribute application software across multiple cores why do I need to create virtual machines? In this blog post, I will cover the advantages of integrating virtual environments along with multicore technology and look at a few products available from the most prominent embedded software vendors.

 

One of the prime reasons to incorporate multicore is to boost performance through parallel processing. Developers have access to multiple techniques to enable this performance gain including symmetric or asymmetric multiprocessing and virtualization. In the symmetric multiprocessing (SMP) configuration, a single operating system allocates threads or tasks across the available cores while managing common memory and hardware resources. Asymmetric multiprocessing (AMP) allows each core to run independent software so that a single system can easily combine real-time, deterministic tasks with a graphical user interface. With virtualization, a hypervisor isolates and allocates system resources between the operating environments so that real-time, general-purpose, and legacy software can be readily integrated in a multicore system.

 

In addition to memory and hardware device allocation, virtualization allows the developer to assign multiple cores to compute intensive applications as needed to maximize overall system performance. The virtualization software layer also provides security and separation to guarantee that a software failure in one partition does not impact other partitions. Virtualization also simplifies system upgrades by isolating the hardware and software layers so that designers can easily add or modify peripherals, memory, and cores without restructuring the software architecture. A virtual machine hypervisor provides designers with a way to optimize performance by tweaking the resource mapping even after deployment.

 

The 2nd generation Intel® Core™ architecture includes multiple features that improve hardware and software performance in a virtual environment. For example, specialized Intel® functions such as Extended Page Tables (EPT) and Page Attribute Table (PAT) provide a hardware assist to the partitioning and allocation of physical memory among virtual machines. You can find plenty of information and technical articles about Intel architecture and virtualization at the Intel® Embedded Community page on Virtualization.

 

To take advantage of these hardware features that assist virtualization, several embedded software suppliers have updated their products to be compatible with the 2nd generation Intel® Core™ architecture. For example, the Wind River Hypervisor gives designers the ability to configure and partition hardware devices, memory, and cores into “virtual boards” that an operating system uses as its execution environment (See figure 1). These virtual boards can be run on a single processor core or distributed across multiple based on the needs of the system. In all cases, the hypervisor can be used to provide virtualization and protection of memory and device access. The Hypervisor can be configured to use all of its features or it can be scaled down to a minimal “supervisor,” to provide protection, reliability, and scalability in a supervised AMP configuration.

 

Wind River Hypervisor.jpg

 

TenAsys Corporation and LynuxWorks also provide virtualization products that match the enhanced performance features of the 2nd generation Intel® Core™ architecture. The TenAsys eVM for Windows embedded virtualization platform allows designers to host an embedded or real-time operating system (RTOS) alongside Windows on the same multicore processor platform. A Windows-based control panel allows the user to assign interrupts, allocate I/O devices, and control the passing of resources, including real-time interfaces, from Windows to the RTOS. LynuxWorks offers the LynxSecure version 5.0 separation kernel and hypervisor that is designed to operate in secure defense environments where data and applications with different security levels need to co-reside on a single device without contamination. The LynxSecure 5.0 secure device virtualization mechanism allows limited physical devices to be virtualized and shared between guest operating systems.

 

Virtualization is a great way to simplify embedded designs with fewer components while integrating the framework needed to easily combine disparate operating software or future updates. If you are starting on a new project and you are unsure if virtualization is the way to go, please share your concerns with fellow followers of the Intel® Embedded Community. You can keep up with the latest technical articles and product announcements at the Embedded Computing Design archives on Virtualization. Also check back to see how embedded designers use virtual machines in real-time applications to simplify hardware, improve performance, and lower power requirements.

 

To view other community content on virtualization, see “Virtualization - Top Picks

virtualization.jpg

Warren Webb
OpenSystems Media®, by special arrangement with Intel® Embedded Alliance

 

Wind River Systems is an Associate member of the by Intel® Embedded Alliance. LynuxWorks and TenAsys are Affiliate members of the Alliance.

 

 

Embedded developers work in a rapidly changing environment. Each new project requires developers to pack increased functionality into smaller, reduced-power embedded products. In addition to the added complexity of the application software for these new projects, customers also demand an interactive interface, ubiquitous connectivity, absolute security, and extreme reliability. To achieve these expanded requirements, embedded designers are turning to multicore architecture such as the 2nd generation Intel® Core™ processors to improve performance, reduce component count, and lower power requirements. Since embedded software invariably falls on the critical path to product delivery, software engineers are also looking for techniques to gain the full benefit of the latest multicore processors without significant changes to their existing development process.

 

The first step in this embedded product revitalization process is the successful integration of the 2nd generation Intel® Core™ processor family. This new architecture includes seven multicore processors that support extended lifecycle embedded applications. The Core™ i3/i5/i7 processors combine either two or four CPU cores, an integrated graphics processor, Last Level Cache (LLC), and a system agent/memory controller to optimize cost, performance, and power requirements for a wide range of embedded applications. In addition, all of the CPU cores (including the integrated graphics core) feature Intel® Turbo Boost Technology, allowing clock frequencies to scale up temporarily to handle intense workloads. The processors also include Intel® Advanced Vector Extensions (AVX), a new 256-bit instruction set optimized for signal processing applications. With this extended processing power, board designers can boost performance and possibly replace external dedicated DSPs or FPGAs to further reduce the component count and lower power requirements.

 

The next step is to update and streamline the software development toolset to incorporate multicore support while minimizing modifications to current code creation practices. New announcements from multiple software vendors already provide advanced development tools and board support packages for products based on the 2nd Generation Intel® Core devices. For example, the Prism software analysis tool from CriticalBlue (see figure below) allows software developers to analyze their existing software applications, evaluate the benefits of the new Intel® architecture, and select the appropriate processor. Prism analyzes the behavior of existing code running on simulators or hardware development boards to analyze opportunities to introduce or add further parallel code structures. Developers can select the appropriate member of the 2nd generation Intel® Core processor family and analyze the impact of Intel® Hyper-Threading Technology, data cache misses, and instruction throughput. Prism provides developers with an estimate of the performance gain achievable by partitioning their program into multiple threads while targeting one of the 2nd generation Intel® Core processors. The platform support package for Prism is offered at a price of $400 per month with an annual subscription agreement. You can also download a 30-day evaluation copy of Prism.

 

prism_flow.png

Green Hills Software has also updated their INTEGRITY Real Time Operating System (RTOS) and MULTI Integrated Development Environment (IDE) (see figure below) to support the latest Intel® micro-architecture. The INTEGRITY RTOS is built around a partitioning architecture to provide embedded systems with enhanced reliability, security, and real-time performance. Secure partitions guarantee each task the resources it needs to protect the operating system and user tasks from errant and malicious code. INTEGRITY architecture provides Asymmetrical Multiprocessing (AMP) and Symmetrical Multiprocessing (SMP) support optimized for embedded and real-time multicore processors. The MULTI IDE software tools include several C compiler options, a debugger, editor, configuration manager, code browser, and debugger in a single package. MULTI also features DoubleCheck, an integrated static analyzer that isolates bugs caused by complex interactions between code segments that may not be in the same source file. Finally, Green Hills Probe provides a multicore debug control for board bring-up, device driver development, and system level debugging.

 

GHSMulti.jpg

 

These are just a couple of examples where improved development tools and techniques can provide embedded developers with rapid transition to the enhanced performance benefits promised by multicore technology. If you have a new project that might benefit from the latest 2nd generation Intel® Core processor family and you have questions or concerns, please get in touch with fellow followers of the Intel® Embedded Community. Also, please check back as I uncover more information the 2nd generation Intel® Core™ processor family and how you can use it to enhance image analysis.

 

To view other community content on interoperability, see "Interoperability - Top Picks

interoperability.jpg

 

Warren Webb
OpenSystems Media®, by special arrangement with Intel® Embedded Alliance

 

CriticalBlue and Green Hills software are Affiliate members of the by Intel® Embedded Alliance.

In many industrial situations embedded designers are faced with the challenge of combining slower legacy interface circuitry with the latest high-speed control devices and multiple displays. Often the resulting system includes the original hardware with its operating system and application software plus a completely separate controller with software to handle the newer requirements. This approach obviously increases component count and power requirements and does nothing to increase the performance of the legacy application. Today, with the enhanced processing power of the new 2nd generation Intel® Core™ processor family, designers can employ recently updated virtualization software to readily integrate new requirements with existing embedded applications. Virtualization software creates one or more simulated computer environments or virtual machines that can be used to simultaneously host independent operating systems and applications on a single processor. In embedded applications, virtualization software is widely used to combine a real-time, deterministic operating system with a high-level, interactive operating system such as Windows or Linux.

 

The 2nd generation Intel® Core™ processor architecture includes multiple features that improve hardware and software performance in a virtual environment. For example, specialized Intel® functions such as Extended Page Tables (EPT) and Page Attribute Table (PAT) provide a hardware assist to the partitioning and allocation of physical memory among virtual machines. The new processors also include Intel® Advanced Vector Extensions (AVX), a 256-bit instruction set that is backward compatible with previous x86 extensions and optimized for heavy computing applications. With the AVX extended performance, designers can potentially eliminate external hardware-based digital signal processing circuitry to reduce the component count and lower overall power requirements. 2nd generation Intel® Core™ processors also feature Intel® Turbo Boost Technology, allowing clock frequencies to scale up temporarily to handle intense workloads.

 

To take advantage of these performance improvements, embedded software developers have already updated virtualization products to be compatible with the 2nd generation Intel® Core™ architecture. For example, TenAsys Corporation announced that they had validated their popular eVM for Windows embedded virtualization platform that allows designers to host an embedded or real-time operating system (RTOS) alongside Windows on the same multicore processor platform. eVM is installed as a standard Windows application and includes all of the integration tools needed to set up, start, and stop multiple RTOS guest configurations. The Windows-based control panel also allows the user to assign interrupts, allocate I/O devices, and the set up of disk boot images. An interactive Device Manager controls the passing of resources, including real-time interfaces, from Windows to the RTOS. After the system is set up, eVM provides the guest RTOS with the lowest possible interrupt latency, direct access to I/O, and non-paged RAM. In most cases the RTOS runs exactly the same way as it would on a separate legacy platform and there is no need to modify drivers or change code. eVM for Windows has been tested with a wide range of guest operating systems including QNX®, VxWorks®, Linux®, Windows CE and T-Kernel.

 

eVM.png

 

Also adding support for 2nd generation Intel® Core™ processors, LynuxWorks recently released version 5.0 of the LynxSecure separation kernel and hypervisor. This upgrade boosts performance for fully virtualized guest operating systems (OSes) and offers 64-bit and symmetric multi-processing (SMP) guest OS virtualization support. LynxSecure was designed to operate in secure defense environments where data and applications with different security levels need to co-reside on a single device without contamination. LynxSecure 5.0 features a new secure device virtualization mechanism, managed from a secure partition, to allow limited physical devices to be virtualized and shared between guest OSes. Another key feature is the ability to run fully-virtualized, 64-bit guest OSes such as Windows 7, Linux, and Solaris OSes across multiple cores while managed by the security of LynxSecure.

 

virtualization-lynxsecure-2011-640px.png

 

Virtualization is a great way to integrate older operating systems along with their existing applications with minor changes while employing the latest tools and software for new development. The virtualization packages presented in this post are just two out of dozens of new-high performance software products that benefit from the new 2nd generation Intel® Core™ processor architecture. If you have a new project that might benefit from this new architecture and you have questions, please share your concerns with fellow followers of the Intel® Embedded Community. Also, please check back as I investigate the some of the latest software tools and board support packages available to designers working on embedded products based on the 2nd generation Intel® Core™ processor family.

 

Warren Webb
OpenSystems Media®, by special arrangement with Intel® Embedded Alliance

 

 

LynuxWorks and TenAsys are Affiliate members of the by Intel® Embedded Alliance.