Wireless Innovation Forum Top Ten Most Wanted Innovations

Innovation #10: Integrated Development and Debug Environment to Create Portable SW-Based Applications on Embedded Heterogeneous Platforms

10.1 Executive Summary

Software Defined Systems (SDS) are a dominant portion of the communications eco-chain due to their increased flexibility in addressing evolving requirements and multi-mission profiles.  General purpose hardware devices can now be specialized via software-based algorithms (including firmware) to execute multiple defined tasks.  With the rapid advances in technology, it is, however, imperative to reduce software development cost while maintaining the highest overall system performance as the software is ported from one platform to another.

Standards-based approaches are essential to facilitate the integration of software and firmware with hardware and assure portability of applications. This is even more important when the hardware platform is likely to change over time, due to technology refresh and insertion, or the move to a completely different platform (e.g., a national waveform needing to be ported on multiple vendor systems).

The Software Communications Architecture (SCA) has been created to facilitate portability of software between different hardware platforms, by standardizing the infrastructure code needed to install, configure, and interconnect software components over heterogeneous systems. However, the SCA does not address the development of the waveforms, such as the signal processing for the physical layer, which needs to be able to execute on different processor types (GPPs, FPGAs, GPUs) and operating systems.

SDS software development processes today are mostly informal or ad hoc, as defined by the company developing the waveform. They can even vary depending on the architecture, processor types and operating systems chosen for a particular design. In the absence of a common approach or methodology to waveform architecture and implementation, portability of Wave Form’s between vendors is significantly more difficult and costly.  Software architectures and design paradigms must evolve to integrate the software design model with the physical hardware architecture to address platform-specific requirements and differences in the current versus the target systems that impact software porting. Having a single system-level tool for the development and debugging of waveforms that can support any heterogeneous processor architecture would be a significant innovation.

10.2 Application

The implementation of software and firmware to represent the signal processing application is often hampered by the fact that the application specification is not clearly stated and the target platform can be heterogeneous and distributed, i.e., composed of multiple operating systems and multiple processors located on different boards and connected via multiple inter-process communication (IPC) protocols.  The interaction between the different platform components is often specific to the operating environment. In order to develop power and cost effective waveforms, developers generally need to use multiple development tool flows from different companies, (i.e., Intel, Xilinx, Mentor, Cadence, etc.) which often comes at a cost to waveform portability. Prototyping and debugging waveforms across these multiple tool flows is extremely difficult.

The benefits of achieving greater software portability between heterogeneous platforms will benefit a broad range of user communities including:

  1. Application Developers: More efficient signal processing application porting will enable developers to implement component-based applications that can be ported to other software defined systems. This reduces the application development cost.
  2. Platform Developers/System Integrators: As a platform developer/system integrator, more efficient porting processes enables a wider selection of applications that may be ported and deployed on their systems, within the physical limits of the hardware capability.
  3. End Users: Ultimately, the end user community benefits through lower system costs, or greater capabilities (e.g., more applications on the same platform). This applies to both commercial and government users. This end cost benefit can be realized because one of the side effects of more efficient software is a more product-based development, resulting in wider range of products and a more competitive environment.

10.3 Description

One of the benefits of SDS is the ability to reuse parts or all of the software implementation to a different hardware platform. However, this is not a trivial problem because SDS platforms often contain multiple processors of different types, e.g. General Purpose Processor (GPP), Digital Signal Processor (DSP), Field Programmable Gate Array (FPGA), as well as evolving processor architectures together with other reconfigurable components and devices.

To reduce development time and cost, it is important that the software written be “easily” portable from platform to platform, and across different processor types. In addition, design paradigms can allow for multiple design approaches such as multi-threaded applications on GPP or concurrent state machine designs for an FPGA.

Design paradigms should also integrate the software model with a system model of the physical system hardware architecture to address platform-specific requirements and differences in the current versus the target platforms that impact software porting.  There are several key elements that are required to realize this innovation. These encompass the range of technology, engineering disciplines, systems engineering practices and process, common representation standards, and intra-company process changes.

New technology is required to enhance and extend the expressiveness of current design and modeling tools to encompass the complete system design process. In addition to the application design, the tool or set of tools must also be capable of modeling the hardware elements of a target platform and be able to represent the constraints and capabilities of the platform in such a way that enables the analysis of an application design with respect to the target hardware on which it is to be deployed. This is a fundamental difference in mindset from most current practices and processes which are typically hardware focused through the systems discipline with the software engineering aspect typically not joining the process until after the hardware architecture has been largely decided.