The rapid evolution of technology has given embedded developers more options than ever before in designing embedded graphics systems. The consumer electronics market, most notably the video game industry, is driving massive advances in graphics technology, with faster graphical processing units (GPU) being released every year; however, the performance needs for graphics applications being built for military and aerospace are generally lower. They span a wide range: everything from simple 2D graphics using an overlay of lines, simple primitives and text, to more complex, aesthetically appealing 2D graphics, to high-end graphics such as 3D synthetic or augmented vision applications. Power is almost always an overriding concern since power sources must be carried by the vehicle and budgeted among many competing uses. Increased power draw generates additional heat, which must be dissipated in compact, tight spaces like aircraft cockpits. Embedded system designers need to consider many factors when balancing graphics performance against the need to minimize power consumption.
Improved performance and lower power consumption in modern GPUs has largely come from two sources: technological and architectural. The technological change is the emergence of fabrication processes using narrower line widths and smaller internal voltage swings to improve the performance-to-power ratio. The architectural change is the transition of the GPU from a device that replicated the OpenGL 3D rendering pipeline in its hardware, to an almost completely programmable device. “Shaders” are programs that are executed directly on the GPU, allowing direct manipulation of vertices and pixels. Shaders allow developers to improve the speed of rendering, and implement algorithms that are virtually impossible through the OpenGL API, resulting in formats that are either rendered more rapidly, are more attractive and easier on the eye, or both. When these GPUs and their drivers are used in certifiable systems, the shader programs are subject to the same DO-178B guidelines as all other software in the system. Unfortunately, when compared to the CPU, there are fewer tools that can be used and a much higher level of proprietary content involved, making certification problematic.
An OpenGL software driver is responsible for providing the API to generate predictable images on the screen and to manage display resources, which may be shared between a number of applications running on the system. Over the last five years, OpenGL APIs supported in military and aerospace marketplaces have stabilized around OpenGL SC 1.0.1 and OpenGL ES 2.0 (full descriptions of these APIs are available at www.khronos.org). OpenGL SC 1.0.1 is an API that is consistent with older OpenGL APIs, but provides a Profile that is suitable for safety-critical applications. OpenGL ES 2.0 is an API that is not compatible with other OpenGL APIs; rather, it provides the ability to manage shaders on the GPU. In order to benefit from the performance available with advanced programmable GPUs, legacy applications may have to be completely rewritten. However, if these applications do not require special shader algorithms, working within an API such as OpenGL SC 1.0.1 can provide a reasonable level of future-proofing since that API can always be implemented as a layer with shaders.
A Wide Range of Solutions
To meet the needs of a wide range of graphical applications there is a corresponding range of hardware solutions. The conventional arrangement for graphics has been to join a single board computer with a separate graphics mezzanine board and connect them using the PMC (PCI bus) or XMC (PCI-e bus) standards. For lower end applications that don’t require complex graphical output, field programmable gate array (FPGA) designs can meet these needs. FPGAs can also help avoid problems related to device obsolescence. Designers can retain their intellectual property (IP) and move it to newer FPGA devices without modifying their application design.
With recent developments from Intel, integrated graphics GPUs now provide comparable performance to mezzanine GPUs. With Intel’s integrated device design, the graphics core is part of the same chipset as the CPU and uses the same host memory. This saves power as there is less I/O needed compared to traditional GPU/CPU designs. The most recent iterations of this integrated solution have continued to close the performance gap and, for systems requiring lower graphical performance, this is a new option to consider.
For applications that require more advanced graphics, a traditional GPU may still be the best option. Designers can down-clock the GPU to save power while retaining satisfactory graphics performance. Device evaluations should be carefully considered in order to ensure the best power-to-performance ratio as GPU performance is often not linear with core clock speed. Another key consideration for embedded designers working on certifiable programs is support for DO-254, the hardware-equivalent standard to DO-178B. While certain GPU suppliers are willing to supply data needed to comply with DO-254, others are reluctant because much of the data is considered competitively sensitive. Another reason is that the mil/aero market requires such high levels of support but provides low production volumes when compared to the consumer electronics market.
Developments in video displays are also having an impact on the design of GPUs. While most GPUs have a variety of video output options available, such as DVI, LVDS, VGA, HDTV, SDTV, and digital DVO, most GPUs can only drive two outputs at a time. Since retrofit programs are much more common than developing completely new platforms, modern GPUs usually have to be made to operate with graphics display technology developed in the 1960s. This can involve significant challenges to devices that assume intelligence in displays, such as Extended Display Identification Data (EDID).
Recently there has been increased demand for video and sensor input. With advances in sensor technology and sensor fusion, video input is a critical feature for embedded systems. While some GPUs still have a single VIP port, it is increasingly rare. The VIP port is the only direct analog video input intended to support frame capture, though it generally has limited bandwidth. The most common use of a VIP port, and the function for which it was originally designed, is to import a broadcast video stream from an external source into the frame buffer. VIP ports rarely support truly high-resolution sources well, and are increasingly being dropped from newer chip designs. The PCI-e bus is the only way to get high-resolution or multiple video data input streams into the GPU. Each frame or half-frame of video input data can be delivered to the GPU video memory where the application or GPU driver determines how to display it on screen.
Another trend making system architectures more flexible is the introduction of OpenVPX systems. These allow the migration of the graphics boards to stand-alone 3U boards that are mounted in their own slots with additional cooling and connecting capacities. The graphics boards don’t have to be physically close to their associated host board in an OpenVPX system because OpenVPX has multiple PCI-e buses available on the backplane. A graphics board mounted in a nearby slot can be as closely connected to the CPU as if it was bolted to the host as a mezzanine card.
The Future of Embedded Graphics
What does the future hold for embedded graphics? Traditional GPUs will certainly keep growing in capability and performance; unfortunately, their power consumption will mean continued challenges in their use in embedded systems. Advances to address the increase in power consumption include system-on-a-chip (SoC) implementations. The many components of a SoC device are integrated onto a single circuit. Along with the power savings provided, the space saved is ideal for embedded system design. However, SoCs have traditionally been frowned upon by the certification authorities because they can be a single point of failure and their complex character makes them difficult to characterize.
General Purpose computing on GPUs (GPGPU) is another innovation where developers can make use of the massive computing power of the GPU by using it to offload applications that traditionally have been performed on a CPU. This technology makes use of the programmability of the GPU, and is suitable for applications that can be parallelized or that relate to large arrays of data. Example applications include weather forecasting, ray tracing, sensor and video processing, guidance and control algorithms, cryptology, etc.
Whatever the future holds, the need to carefully evaluate program requirements when determining the most appropriate hardware solution remains. Although emerging solutions might improve the viability of certain hardware implementations, systems designers will still face decisions that require a compromise between their desired graphics capabilities and their capacity to handle heat.