Using OPENCL to increase SCA application portability
Steve Bernier, François Levesque and Martin Phisel (NordiaSoft, Canada); David Hagood (Aeroflex, USA)
The Software Communications Architecture (SCA) is the defacto standard to build Software Defined Radio (SDR) radios. Over one hundred thousand SCA military radios have been deployed worldwide by several nations. The SCA offers a component-based operating environment for heterogeneous embedded system that ensures applications are portable across platforms made of General Purpose Processors (GPPs) and Digital Signal Processors (DSPs). The SCA offers a high level of portability for applications have been implemented for GPPs and DSPs. SCA components can easily be ported across different processors using different operating systems and communication buses. However, the level of portability is reduced when source code is tuned for specific instructions sets. Furthermore, using Field Programmable Gate Arrays (FPGAs) drastically reduces the level of portability for SCA components. Specialized instruction sets are very widely used for high performance military radio platforms. Consequently, finding a solution to increase portability of components that run on such processing elements could provide significant cost reductions when an application is ported. In fact, application portability is the number one innovation on the top ten list of most wanted innovations compiled by the Wireless Innovation Forum (WInnF). This paper describes how the Open Computing Language (OpenCL) can be used in conjunction with the SCA to build more portable applications. OpenCL is a framework for writing programs that execute across heterogeneous platforms consisting of GPPs, DSPs, FPGAs, and graphics processing units (GPUs). The paper starts with an overview of OpenCL, describes how SCA components can be built using OpenCL, provides performance metrics, and concludes on how the SCA could be improved to offer better support for OpenCL.