RF Design Magazine
RSS    Save to Del.icio.us  Digg This


Taking advantage of new choices in embedded graphical processor units
Jun 1, 2008 12:00 PM  By Mark Snyder

Embedded graphical processing unit (GPU) is traditionally designed as a graphical co-processor to provide high-performance graphics capability to many safety critical systems. However, there are several issues confronting GPUs today in these applications. The author discusses software-defined GPU strategy to address embedded GPU problems.

Hardware-accelerated GPUs are used to provide accelerated parallel processing capabilities that aid in processing pixel-intensive graphical operations, such as anti-aliased symbology, generation or 3-D data visualization, video decode and overlay, etc. GPU technology found in mobile systems, such as laptop computers, is often retargeted to embedded systems, where it provides valuable capabilities in a power efficient manner. Such embedded GPUs have enabled many advanced capabilities to be deployed in military embedded systems, and are a valuable component of the modern computing platform. GPU technology has not stood still, and new GPU choices and options are emerging frequently. Meanwhile, processor architectures continue to evolve, and some of these trends also affect the GPU space. As newer computing architectures and new GPU choices emerge, embedded systems designers are well-served to revisit the landscape of embedded GPU choices and trade-offs.

GPUs and OpenGL

GPUs are quickly becoming the hardware backbone of military data visualization and data-fusion applications. Driven by ever increasing requirements for advanced 2-D and 3-D maps, sensor fusion, and voluminous net-centric data, graphics acceleration is increasingly a required capability for application deployment (Figure 1).

The advent of the GPU has been accompanied by widespread use of standards designed to facilitate development of graphical applications that take advantage of the hardware. One such low-level applications programming interface (API) is OpenGL. OpenGL provides a software interface that supports 2-D and 3-D definition of geometry and rendering functions.

OpenGL as an API has undergone much growth in the past 15 years or so. As more classes of applications sought to exploit its capabilities, successive versions of the standard have evolved, bringing more calls and more complexity to the standard. OpenGL is typically implemented using a driver architecture. OpenGL drivers encapsulate a low-level interface to the rendering hardware, and presents a high-level interface to applications that need to use the hardware's features. As OpenGL has grown, so have its drivers. A modern OpenGL driver for a desktop high-end graphics card can easily run into millions of lines of code.

While OpenGL is a good standard for military embedded systems, it has grown large as an API. Desktop and mobile GPU designs have large amounts of circuitry designed to accelerate the full range of features of OpenGL and other standards, such as Direct3D. Embedded GPUs and driver variants can be smaller, depending on what subset of OpenGL they support. OpenGL subsets are a key development in the next wave of GPU technology, targeted for more specialized embedded markets.

OpenGL ES and SC

The subset OpenGL standards developed by the Khronos Group (www.khronos.org) are an important development in standardized special-purpose subsets of OpenGL. To enable low power and low-cost GPU technology for mobile telephones, handheld gaming systems, automotive systems, avionics, etc, the Khronos consortium defined subsets of OpenGL to provide essential rendering capabilities while eliminating redundant API calls and stressing simplicity and small footprint. The Khronos OpenGL subsets have multiple well-defined profiles that are designed to support different usages of OpenGL. Two that are of key importance for the military embedded systems market are the Common and Safety Critical profiles (Figure 2).

For safety critical applications, the OpenGL SC subset has been defined by the Khronos industry consortium to provide a robust set of graphics functionality to embedded, safety critical systems. OpenGL SC is a superset of OpenGL ES adding commonly used features found in many avionics applications. OpenGL SC adds features that enable graphics applications to leverage certain powerful GPU capabilities, such as caching of geometry data, to the smaller OpenGL ES subset.

GPU challenges

A commercial GPU is a GPU originally developed for the desktop, laptop, industrial, or mobile market that is retargeted for use in embedded systems. Typically, these are ASICs (often with dedicated memory) that can be integrated or added as a PMC or XMC module into a system design. Major embedded GPU GPU ASICs come from companies such as NVidia, AMD (ATI), 3D Labs, Fujitsu, or others. ASIC GPU designs are typically fabricated over a short lifetime, after which they are superseded by newer designs.

In recent years GPUs have also become available as IP cores designed to be implemented within system-on-a chip (SoC) designs. Imagination Technologies PowerVR MBX and SGX cores, as well as cores from NVidia, AMD, ARM, and others have been developed and integrated into devices ranging from the iPhone to PDAs and even newer UMPC computing platforms such as Intel's new Atom. An SoC GPU IP core provides a means to address lifetime obsolescence issues. Challenges for SoC GPUs include performance and difficulty of certification of SoC designs to safety critical standards.

In developing highly reliable applications, and in particular when considering development standards like the FAA's DO-254 and DO-178 for avionics, it is desirable to implement simple, verifiable solutions to perform the required capabilities of the system. When using a desktop or embedded GPU in a safety critical application with certification requirements, there are several considerations. Commercial GPUs are not developed with the intention to have rigorous hardware verification performed on them as is required by certification standards for various industries, such as DO-254 for avionics. This affects ASIC and IP GPUs.

Commercial GPUs contain a large amount of extra functionality designed to accelerate desktop or consumer electronics applications. This results in increased gate counts and more complex driver software requiring more extensive certification. Modern commercial GPUs are largely programmable in nature rather than implementing fixed logic for OpenGL. This means they must run extensive microcode or shaders. Certification of such firmware is challenging.

Commercial GPUs have a short service life, due to the constantly changing demands of their markets. As such, there is significant obsolescence risk in using commercial GPUs for long-service life programs.

It can be difficult to control the operation of a traditional GPU to enable it to be used in a strict resource-partitioned environment, such as multilevel secure or ARINC 653 partitioned operating system. Commercial GPUs do not support special-purpose functions easily, such as rendering blended symbology over a video buffer, rendering an output transparency (alpha) buffer, or, custom display timings.

Commerical GPUs have not been designed to take into account extreme environmental conditions required by some embedded applications such as radiation exposure, extreme temperature ranges and effects of vibration.

While many of these issues can be overcome, it can be expensive and time consuming to do so. To succeed, typically an application will have to integrate COTS hardware and extensive third-party software drivers into their solution. For many applications, the cost of doing so can be prohibitive.

1 2 Next


RSS    Save to Del.icio.us  Digg This

June Defense
 
Back to Top