Embedded real-time software evolves as security concerns, multi-core functionality, and customer demands for software that can do everything put pressure on the industry.
Software powers everything in embedded systems. Regardless of how powerful the hardware is, without well-designed software all the circuits, transistors, pins, and buses are for naught. Software, from the boot loader to the operating system to the applications running on the operating system, is what makes embedded computing so valuable and important for the military and aerospace industry today.
Real-time software, in particular, has seen major advances in technology. Hardware no longer acts as a limiting factor; many embedded systems have idle cores, and are unable to make use of the power modern processors offer them.
Demands on real-time software have exploded. The industry has begun making use of the new capabilities hardware offers, but as traditionally closed systems move onto networks, security has become another major concern in embedded software. New standards are emerging as well, which is causing industry-wide changes in the way software is designed and used in systems.
|Communication and other time-critical tasks require real-time software.|
Many aerospace and defense systems run software that not only must run in real time, but also ensure the safety of the system and those operating it, such as manned spacecraft and tactical jet fighters. Real-time software performs important functions such as collision detection and avoidance and ground proximity warning. If the program gets information late, it can mean the difference between life and death.
One of the most obvious uses for real-time software is communications. Simply sending voice and some text quickly is no longer the goal of communication software. "When compared to today's smartphones, military radios used to be relatively simple devices, where you had the ability to communicate with a satellite or a local communications node, usually just voice and text," says Chip Downing, senior director of aerospace and defense at Wind River Systems in Alameda, Calif. "The challenge for military communications is transitioning from something that's very robust, extremely well built and proprietary into something that has commercial roots. There are multiple opportunities today where defense agencies want to take a smartphone with augmented security and leverage that affordable commercial form factor."
The increased interest in commercial off-the-shelf (COTS) communication devices has placed increased importance, and complexity, on software. COTS communications devices typically are not built for operating in real time or security, and smartphone style applications not only can use military waveforms for communication, but also commercial channels when appropriate.
The ability to act as a secure and unsecure communications device provides cost saving and enhanced functionality to warfighters. These applications not only are being asked to run on entirely different hardware than they are used to, but they also are being asked to perform more tasks like video streaming, text communication, data, image processing, and a slew of other functionality that depends on real-time software its running on.
Multi-core processors have become the norm; even finding a consumer single-core processor has become difficult. Software must be designed to use several cores, and military and aerospace multi-core software is still in its infancy. "In these early stages of multi-core, the goal is to make things go very fast on consolidated form factors," says Wind River's Downing. "As you begin deploying more cores, you must think about how to do robust separation of those cores."
Currently, multi-core processors are being used primarily to boost the speed of programs. This means high-powered computing, tasks such as radar, imaging, and other complex tasks, are well-suited to multi-core processing.
"The FAA has not figured out how they would certify a true multi-core system," says John Blevins, director of private marketing at LynuxWorks in San Jose, Calif. "The software itself will run on multicore systems quite happily, but it's a question of the aviation authority saying 'I see you're running on multi-core, and we want to certify that you can maintain the safety of your system.' People are architecting multi-core, safety-critical operating systems, but there's no way of certifying them right now."
Since the aerospace market is one of the primary customers of real-time software, the lack of certification available for a true, safety-critical, real-time multi-core system is on the minds of many software developers.
Still, the processes that make multi-core so attractive-parallel processing, for example-are difficult to certify. "While multi-core offers this great benefit to making things run faster, there's a slew of other issues not just in safety, but in maximizing the use of the cores, says Tom Erkkinen, embedded applications manager at MathWorks in Natick, Massachusetts. "The key issue is that when you're doing parallel algorithms and you want to work on the same data, you need to make sure there's data consistency and cache consistency."
|The BMX module is a platform specialized for local control and measurement functions on a real-time operating system basis.|
A major shift in software has come from the Future Airborne Capability Environment (FACE) Consortium. "The FACE Consortium is really defining an environment where you can rapidly deploy new capabilities on any platform," says Wind River's Downing. "It's really creating an open platform, an open architecture and standards that allow a system designer to very quickly add more capability because your next-generation processor will allow you to do that. Before, with single-core processors, we always bumped up against memory and processing constraints. In today's multi-core silicon world, we now have idle processors."
FACE helps standardize systems, allowing the same software to be used in multiple systems. FACE also helps even the playing field for software designers, as it allows customers to worry about the quality of the software rather than whether that software is compatible with their product.
Not only is FACE providing an open system that enables designers to discuss quality over compatibility, but it also is a cost-saving measure that removes the need for expensive porting of software.
"FACE is the result of the military becoming more conscious of their dollars and that they have to pay to port software from helicopter A to helicopter B," says Robert Day, vice president of marketing at LynuxWorks. "The goal is to avoid having to pay over and over to port applications from one machine to another. The way you do that is you come up with standards. The FACE standards start low at the operating system and are more portable from one operating system to another. It rises up, with standards being developed for databases and graphics and so forth. Ultimately, at the end, all these layers will be more portable between different operating systems and hardware."
Ultimately, all embedded, real-time software needs to run on an operating system. Operating systems are the foundation that applications sit on top of, and play an important role in what applications can be run and how they run. Most common operating systems, such as Windows and Linux, are not operating systems that support real-time software.
Still, Windows and Linux also offer several benefits to applications that run on them, and many are useful when used in conjunction with real-time software. The solution to this problem is virtualization, or creating a partitioned system that can run multiple operating systems by assigning different resources to systems that are not physically separate.
Virtualization allows a system to run its real-time software on one partition, while running a commercial operating system on the other.
Real-time operating systems (RTOS) are needed for real-time software. For RTOS, there has been a shift toward securing systems. "What we see now is that richer functionality and comprehensive security are key requirements," says Wind River's Downing. "People want to see extra security, different types of security, deeper security. They also want to leverage multiple cores, with graphics- and compute-intensive multi-core processors. They want to see elegant and efficient ways of using those multiple cores. In addition, they want that seamless user experience to download lots of apps."
The operating system exists to provide a secure platform for applications while getting the most out of the available hardware. "The core functionality of operating systems hasn't changed much; there's now a lot of layered capability optimized for specific silicon and use cases," explains Wind River's Downing. "The rich user experience comes from enabling the applications on top of advanced silicon using an operating environment with additional layered capabilities."
The future of embedded, real-time software for the military and aerospace market will be an even more connected and aware system. With multi-core capabilities, it will not be long before warfighters and pilots are fully aware of their surroundings.
"I think the best use of next-generation processors is not the things you hold in your hand, but the things that surround you," says Wind River's Downing. "It can alert you to events that are happening, where you don't have to be in front of a screen to experience. A lot of the sensing technology today is really about dropping it on to some sort of environment and having these sensors tell you when a tank goes by, when a soldier goes by, when a vibration is sensed, and when the landscape has changed."
Real-time software is at its best when used to inform its user, and it will only be a matter of time before a warfighter on the battlefield can have a warning, verbal or non-verbal, of any events happening in the area.