Software considerations for multicore hardware environments

Industry offers guidance on overcoming software-development challenges to implementing multicore hardware.

Aerospace and defense officials and end users are eager to adopt multicore processors for a wide array of applications. A wealth of data- and processing-intensive tasks stands to benefit from robust multicore hardware. Yet, harnessing the powerful potential of the latest multicore hardware offerings first requires significant effort on the part of software developers to overcome challenges.

"We are seeing greater demand for faster, more powerful, and efficient processors with an eye toward memory caches, multicore, multi-threading instruction pipelines, and other characteristics," says Glenn R. Johnson, system architect at Kontron in Poway, Calif. Commercial off-the-shelf (COTS) general-purpose processors hold many advantages for low-production-volume digital signal processing applications, such as sonar and radar, he says. Among the key advantages is scale of economy, lending to the availability of affordable and powerful processors.

Consider complexity

Complexity is among the primary challenges when developing software for multicore architectures. "Multicore processors can make a system more complex, and this added complexity can increase verification and certification time, costs, and risks," says Joe Wlad, senior director of product management at Wind River in Alameda, Calif.

"Each core adds complexity to the design," says Marco Awater, senior software engineer at AcQ Inducom in Oss, The Netherlands. "It is not always true that using more cores gives better performance; a deep understanding of both the hardware's capabilities and the software's requirements is needed to build an optimal solution. The biggest advantage of moving from single-core to multicore is parallel processing. Part of the migration is an analysis of the application for opportunities for parallelization."

It is complicated to have different things happening at the same time, says Tucker Taft, director of language research at AdaCore in Lexington, Mass. Developers "would need to do additional synchronization, and that adds complexity. If not synchronized properly, the user could end up with something different than intended. Further, if the programming language doesn't give [the software developer] support, that's painful."

Seek support

"One of the biggest challenges is that many programming languages do not support multiple cores," Taft says. "AdaCore has, from the beginning, supported multiple threads of control; it is built into the AdaCore language. Yet, with a lot of existing languages, certainly C++ and Java, that support was not included in the original design. Now the industry is moving to build various concurrent features into the programming languages. It could take years until the infrastructure is in place."

Even if the programming language of choice offers some support for multicore, "many of the tools, such as the debugger, might not know what to do with it; and cross development, which happens a lot in the embedded space, could present tool issues that could take years to get debugged," Taft says. "As languages add support for multicore, developers have to question 'Is it the language or the tools causing the problems?' There are many pieces that need be managed."

Adopt an architecture

Developers should take care when selecting the optimal solutions for aerospace and defense projects and platforms, the full life cycle of which could span several decades.

"Choosing the right system architecture is critical," stresses Wlad. "Should an asymmetric multi-processing (AMP) or symmetric multi-processing (SMP) architecture be selected? Each configuration has its own implications with regard to reuse, expansion, and standards of conformance. System architecture design is critical to ensure the safety and reliability of the system, as well as ensure certifiability."

The biggest challenge when migrating legacy software from single-core to multicore is choosing the right architecture, says Awater. "It is first important to determine why multicore hardware is required. Common driving forces include hardware obsolescence, merging multiple systems into one, increasing system performance, or adding functionality to existing software. Understanding which factors are driving the move to multicore is critical for selecting the optimal multicore processing architecture (AMP or SMP), operating system, and processor."

Make well-informed decisions on all aspects of the architecture, Awater says. "It is important to choose the right hardware platform in combination with operating system and the overall software architecture. Selecting an experienced partner to aid you in this process can help you mitigate risks and save costs."

If software engineers must deploy on multicore, choose an architecture and supplier very carefully, Wlad recommends. "Pick one that has the financial stability, size, and history that can support you in a multi-year effort from architectural design to implementation to verification and certification. Both of these decisions will have great implications on your ability to make the maximum use of multicore, including future expansion and meeting certification requirements."

Consider certification

"Certification guidance for multicore systems from regulatory agencies, such as the Federal Aviation Administration (FAA), is still preliminary and not complete," Wlad notes. "This means that there could be unforeseen challenges with the initial certified multicore systems."

Some designers involved in safety- and mission-critical applications have heartburn over multicore and requirements like DO-178, Taft says. "The FAA and ARINC haven't yet figured out what they are going to require to ensure the kind of safety we all demand, but we will make sure our products support how it should be done."

Both executives and developers at AdaCore are trying to figure out how to validate a multicore system to a DO-178 Level A safety-critical system and ARINC 653, Taft says. Other technology firms, including Green Hills Software, LynuxWorks, and Wind River, also are working closely with organizations, such as the FACE Consortium, to resolve current safety-critical software challenges.

Experts at government institutions, companies, and research labs are paying a lot of attention to the certification of multicore systems, Awater says. AcQ Inducom, which offers advice in selecting and designing multicore architectures and provides platform development and software integration services, enjoys "excellent relationships with leading system-on-chip (SoC) and operating system vendors grown out of years of collaboration," he explains. "We are involved in multiple European research projects regarding certifiable multi-core solutions and integrated modular avionics (IMA), such as SCAlable and ReconfigurabLe Electronics plaTforms and Tools (SCARLETT) and Avionics Systems Hosted on a distributed modular electronics Large scale dEmonstrator for multiple tYpe of aircraft (ASHLEY)."

In the past, Kontron has focused on providing hardware, operating systems, and drivers, leaving applications development to the customers, Johnson admits. "The new vision for Kontron's Military, Avionic, and Rail (MAR) unit is to provide higher level of systems level integration. Kontron has established working relationship with GEDAE which specializes in mulit-core software deployment. This gives us the ability to assist our customers in deploying algorithms in multicore, multi-processor systems."

Concurrent challenges

"Trying to run software on a single piece of hardware with different levels of criticality is a concern and a challenge," Taft notes. For example, "if an airplane's flight control and entertainment system are sharing a single piece of hardware, partitioning could be used to put one system on one core and the other on another core, but that's scary due to unspecified interaction between cores." As a result, people have had to turn off all but one core of a multicore processor, he says.

"It's inefficient," says Ray Alderman, chairman of the board of the VITA Standards Organization in Fountain Hills, Ariz. "The infrastructure just isn't there yet-software is not there, nor is bandwidth-to take full advantage of multicore capabilities and multi-threaded parallel processing. As a result, multicore systems are only 20 to 40 percent efficient; we are only using that amount of capabilities and performance , yet we are using lots of power to have the processor sitting there waiting for something to do."

If an application must be certified, designers need to avoid shared resources between cores, Awater says. "Concurrent access can have a significant impact on the predictability of the worst case execution time (WCET), which is important for certification. By selecting a certifiable operating system, a lot of certification risks are mitigated. Furthermore, it is important to select a platform that has multicore system tracing tools available for the analysis of the complex system-level behavior."

Shared resources

Multicore is a bit of a new beast because these aren't two completely independent processors, Taft says. "Multiple cores share resources, such as a cache, and bizarre hybrids share a single floating-point unit or memory-management unit. For any time-critical application, you need to determine how long it will take and multicore makes those calculations to estimate WCET more difficult. If one core is doing this, the other core might be slowed down, for example."

AdaCore developers are enhancing productivity with multicore debugging, WCET, etc., Taft says. The company has a robust debugger for debugging multicore applications, enabling big systems to be built in a multicore environment more easily.

"Some companies, such as Intel, started adding new instructions for highly efficient locking, so Ada-Core is already experimenting with low-overhead locking and adding high-performance support for these programs." Developers also are working in the area of language design, adding robust support for many-core, highly robust systems without adding to the programmer's bugs, to create a language that is inherently safe.

"In the many-core world with graphics processing units [GPUs], we're talking about thousands of processors. Adding a few multi-threading features to software won't allow users to take advantage of all that," Taft explains.

"The other side of the coin is that in the development of these systems, all the programmers are using host computers with 10 or 15 cores to make the development environment more productive," Taft says. "We explain how users can take advantage of multicore by executing our tools, but we also eat our own dog food. In house we have a number of multicore systems for development and a system with 48 cores as a good test bed for experimental use and testing."

When shopping for the optimal solution, ask whether the tool providers are using multicore and doing testing themselves, Taft recommends. "Ask vendors what multicore systems they use in house, and whether their tools are designed using multicore hardware. It is a good indicator as you look for tools in this environment; find those using them in house, as well." Also, he advises, start using tools and language oriented around parallelism and avoid using global variables.

Easily post a comment below using your Linkedin, Twitter, Google or Facebook account.

The Innovation That Matters™ Quiz

Innovation is one of the key drivers in the Defense industry. View this short video of Darryl McKenney, VP, Engineering Services at Mercury Systems, on the role of innovation. Then, answer 3 simple questions correctly to be entered into a drawing to win an Eddie Bauer fleece jacket!

CONGRATULATIONS TO OUR TWO MOST RECENT WINNERS. Mark from L-3 Communications and Barry from General Dynamics.

Military & Aerospace Photos

Related Products

SBC-K7 Embedded PC for Instrumentation and Control

The SBC-K7 is an ideal platform for embedded instrumentation that combines an Atom PC running Win...

CPU-PPC460EX-VME Processor Board

The CPU-PPC460EX-VME PowerPC processor board is designed for rugged, conduction and convection co...

PC/104 SBC and Peripherals

Kontron PC/104 Standalone Single Board Computers (SBCs) serve in every format, even with consiste...

Related Companies

Innovative Integration

  Since 1988, Innovative Integration has grown to become one of the world's leading suppliers of DSP and data ac...

Beyond Electronics Corp

Beyond Electronics(BEC) provides Rugged COTS board and system level solutions in various small form factor products c...


Driving the world’s embedded computing platforms Kontron is a global leader in embedded computing technology.&n...
Wire News provided by   

Most Popular Articles


Meeting the Gen3 backplane challenge with OpenVPX and COTS

Gen3 serial interconnects such as 40G Ethernet, QDR/FDR10 Infiniband, PCIe Gen3 offer significant performance benefits for OpenVPX Systems.  This webcast will outline OpenVPX Signal Integrity challenges...
Sponsored by:

Digital signal processing for signals intelligence and electronic warfare

Military & Aerospace Electronics presents an expert Webcast on the design considerations for blending general-purposes processors (GPUs), general-purpose graphics processors (GPGPUs), field-programmable ...
Sponsored by:

Advantages of Intel Architecture Products and Wind River Solutions in Military & Aerospace Applications

This webinar explains the individual advantages of the Intel Architecture hardware, available for long-life supply, and the WRS software portfolio.  There are extraordinary advantages of combining such ...
Sponsored by:

social activity

All Access Sponsors

Mil & Aero Magazine

March 2014
Volume 25, Issue 3

Download Our Apps




Follow Us On...


Military & Aerospace Electronics

Weekly newsletter covering technical content, breaking news and product information

Defense Executive

Monthly newsletter covering business news and strategic insights for executive managers

Embedded Computing Report

Monthly newsletter covering news on embedded computing in aerospace, defense and industrial-rugged applications

Unmanned Vehicles

Monthly newsletter covering news updates for designers of unmanned vehicles