Tesis:
Contribuciones metodológicas para el desarrollo de aplicaciones de radio software en arquitecturas multiprocesador heterogéneas
- Autor: LOBO PEREA, Pedro José
- Título: Contribuciones metodológicas para el desarrollo de aplicaciones de radio software en arquitecturas multiprocesador heterogéneas
- Fecha: 2021
- Materia: Sin materia definida
- Escuela: FACULTAD DE INFORMATICA
- Departamentos: AEROTECNIA
- Acceso electrónico: https://oa.upm.es/69817/
- Director/a 1º: SANZ ALVARO, César
- Director/a 2º: JUÁREZ MARTÍNEZ, Eduardo
- Resumen: La radio software (Software Radio) o radio definida por software (Software Defined Radio, SDR) consiste en la implementación de sistemas de radiocomunicación empleando procesadores programables en lugar de hardware específico. El primer uso del término data de hace casi cuatro décadas, pero fue en la segunda mitad de la década de los 90 cuando el concepto tomó impulso gracias a que la tecnología disponible en ese momento comenzó a hacer ya posible su uso práctico, y en la actualidad puede afirmarse que todos los dispositivos de radiocomunicaciones emplean esta técnica en mayor o menor medida. A pesar de sus evidentes ventajas en cuanto a flexibilidad y rapidez de desarrollo frente a los sistemas basados en hardware específico, el principal problema de la radio software ha estado siempre en sus elevados requerimientos en cuanto a capacidad de cómputo. Aunque el avance continuo de la tecnología permite construir sistemas cada vez más capaces, las prestaciones que se demandan del equipamiento de comunicaciones crecen de manera simultánea, de modo que los sistemas de radio software siempre requieren la máxima capacidad de cómputo que la tecnología sea capaz de ofrecer. Esto pasa, desde hace ya casi dos décadas, por el uso de sistemas multiprocesador, debido a la dificultad de mantener el ritmo de mejora en el rendimiento de un único procesador a base de avances en la tecnología de fabricación. A menudo, además, estos sistemas multiprocesador son heterogéneos; es decir, emplean procesadores de varios tipos, con distintas características y capacidades. El uso de sistemas multiprocesador heterogéneos plantea un nuevo reto: a pesar de que los primeros sistemas con multiprogramación datan de los años 60, el problema de cómo programar de forma eficiente este tipo de sistemas dista mucho de estar resuelto de forma general. Esto es además especialmente evidente en determinados nichos de aplicación, y en el ámbito concreto de la radio software las técnicas de programación que han recibido mayor atención y recursos de investigación a nivel general en estas dos últimas décadas no proporcionan resultados satisfactorios o lo hacen a costa de requerir un esfuerzo considerable. Este es el contexto en el que se desarrolla esta tesis doctoral, cuyo objetivo es desarrollar una metodología de programación para aplicaciones de radio software sobre sistemas multiprocesador heterogéneos. Para conseguir este objetivo se han seguido una serie de pasos que se resumen a continuación. En primer lugar se ha seleccionado una aplicación de referencia lo suficientemente compleja para permitir evaluar los resultados obtenidos. La aplicación seleccionada ha sido un receptor de televisión digital terrestre DVB–T. A continuación se ha empleado Matlab/Simulink, una herramienta comercial que es prácticamente un estándar de facto en el ámbito del procesado de señal, para crear un modelo funcional del receptor DVB–T, y se ha usado después este modelo para implementar el receptor en una plataforma hardware específica para radio software que combina un DSP y una FPGA. Este proceso ha servido para evaluar las posibilidades que ofrecen varias herramientas de diseño de alto nivel basadas en Simulink. En paralelo con este trabajo se ha realizado una búsqueda de herramientas que sirvieran como base para atacar el problema que se pretendía resolver en este trabajo de tesis, la programación de aplicaciones de radio software en sistemas multiprocesador heterogéneos. Se ha decidido basar el trabajo en GNU Radio, un kit de software libre para desarrollo para aplicaciones de radio software distribuído con licencia GNU GPL. Aunque en principio es una herramienta pensada para desarrolo en PC, sus características hacen posible adaptarla a plataformas empotradas especializadas, y al distribuirse con licencia GPL la disponibilidad del código fuente para su estudio y modificación es total. El trabajo de modelado realizado con Matlab/Simulink ha servido de base para realizar una segunda implementación del receptor DVB–T basada en GNU Radio. Tal como se distribuye, GNU Radio puede emplear varios procesadores pero únicamente en sistemas SMP (multiproceso simétrico); por tanto, el siguiente paso ha sido diseñar una extensión de GNU Radio que posibilita su uso en plataformas específicas para radio software sacando partido de todos los recursos (procesadores o aceleradores especializados) que puedan ofrecer. Esta extensión se ha diseñado de modo que sea lo más general posible y pueda adaptarse a cualquier plataforma para la que existan unas herramientas mínimas: un compilador de C++ y un mecanismo de comunicación entre procesadores accesible mediante una API POSIX estándar. La metodología propuesta es aplicable en plataformas que tengan aceleradores especializados en funciones específicas o aceleradores programables que puedan implementar una o varias funciones, sin limitaciones a priori en cuanto al número o tipo de aceleradores. La extensión a GNU Radio se ha implementado en dos plataformas hardware distintas. En primer lugar se ha utilizado una plataforma relativamente sencilla basada en un procesador OMAP 3530 de Texas Instruments, que combina un procesador de propósito general y un DSP. Esta primera implementación ha servido como prueba de concepto para validar el diseño de la extensión. En segundo lugar se ha empleado una plataforma mucho más potente basada en un procesador de la familia KeyStone II del mismo fabricante, que cuenta con cuatro procesadores de propósito general y ocho DSPs. Tras adaptar la extensión de GNU Radio a esta nueva plataforma se ha portado a la misma el receptor DVB–T, trasladando después dos de las tareas con mayor carga computacional (la decodificación convolucional con el algoritmo de Viterbi y el cálculo de la FFT) a los DSPs. Se ha conseguido de este modo una reducción de un 63% en el tiempo de ejecución del receptor respecto a la versión que emplea únicamente los procesadores de propósito general. Estos resultados confirman que la versión extendida de GNU Radio es capaz de distribuir las tareas de manera eficiente entre los recursos disponibles en la plataforma objetivo. Finalmente se ha sintetizado todo el trabajo realizado en una propuesta de metodología para el desarrollo de aplicaciones de radio software en arquitecturas multiprocesador heterogéneas basada en la extensión de GNU Radio, y se ha creado una implementación de referencia que puede emplearse como base para su uso en nuevas plataformas hardware. Esta implementación de referencia está disponible en el servidor Gitlab del Centro de Investigación en Tecnologías Software y Sistemas Multimedia para la Sostenibilidad (CITSEM) de la Universidad Politécnica de Madrid. ----------ABSTRACT---------- Software Radio or Software Defined Radio (SDR) is the implementation of radio communication systems using programmable processors instead of dedicated hardware. The first use of the term dates back almost four decades, but it was in the second half of the 1990s that the concept gained momentum as the technology available at that time began to make its practical use possible, and today it can be said that all radio devices employ this technique to a greater or lesser extent. Despite its obvious advantages in terms of flexibility and speed of development over systems based on dedicated hardware, the main problem with software radio has always been its high computational requirements. Although the continuous advance of technology makes it possible to build ever more capable systems, the performance demanded from communications equipment is also constantly growing, so that radio software systems always require the maximum computational capacity that the technology is able to offer. Since almost two decades now, this has led to the use of multiprocessor systems, due to the difficulty of keeping pace with improvements in the performance of a single processor based on advances in manufacturing technology. In addition, these multiprocessor systems are often heterogeneous, i.e. they use processors of various types, with different characteristics and capabilities. The use of heterogeneous multiprocessor systems poses a new challenge: although the first systems with multiprogramming date back to the 1960s, the problem of how to efficiently program such systems is far from being generally solved. This is particularly true in certain application niches; for the specific field of radio software, the programming techniques that have received the most attention and research resources at a general level in the last two decades do not provide satisfactory results or do so at the cost of considerable effort. This is the context in which this Ph.D. thesis is developed, whose objective is to develop a programming methodology for radio software applications on heterogeneous multiprocessor systems. The steps that have been followed in order to achieve this objective are summarised below. First, a sufficiently complex reference application has been selected to allow the evaluation of the results obtained. The selected application has been a DVB-T digital terrestrial television receiver. Matlab/Simulink, a commercial tool that is practically a de facto standard in the field of signal processing, has been used to create a functional model of the DVBT receiver. This model has been used to implement the receiver on a radio-specific hardware platform combining a DSP and an FPGA. This process has been used to evaluate the possibilities offered by several high-level design tools based on Simulink. At the same time, a search has been carried out for tools that could be used as a basis to attack the problem that this thesis work was intended to solve, the programming of radio software applications in heterogeneous multiprocessor systems. The choice was GNU Radio, a free software development kit for radio software applications distributed under the GNU GPL licence. Although it is a tool designed for PC development, its characteristics make it possible to adapt it to specialised embedded platforms, and as it is distributed under the GPL licence, the source code is fully available for study and modification. The modelling work carried out with Matlab/- Simulink has served as the basis for a second implementation of the DVB–T receiver based on GNU Radio. As distributed, GNU Radio can use multiple processors but only on SMP (symmetric multiprocessing) systems; therefore, the next step has been to design an extension to GNU Radio that makes it possible to use it on specific software radio platforms, taking advantage of all the resources (processors or specialised accelerators) that they can offer. This extension has been designed to be as general as possible and can be adapted to any platform for which minimum tools exist: a C++ compiler and an interprocessor communication mechanism accessible through a standard POSIX API. The proposed methodology is applicable to platforms that have accelerators specialised in specific functions or programmable accelerators that can implement one or several functions, without a priori limitations on the number or type of accelerators. The extension to GNU Radio has been implemented on two different hardware platforms. First, a relatively simple platform based on a Texas Instruments OMAP 3530 processor, which combines a general purpose processor and a DSP, has been used. This first implementation has served as a proof of concept to validate the extension design. Secondly, a much more powerful platform based on a processor of the KeyStone II family from the same manufacturer, which has four general-purpose processors and eight DSPs, has been used. After adapting the GNU Radio extension to this new platform, the DVB-T receiver has been ported to it, and two of the most computationally intensive tasks (the convolutional decoding with the Viterbi algorithm and the FFT calculation) have been transferred to the DSPs. This has resulted in a 63% reduction in receiver execution time compared to the version using only the general-purpose processors. These results confirm that the extended version of GNU Radio is able to distribute the tasks efficiently among the resources available on the target platform. Finally, all the work has been synthesised into a proposed methodology for the development of radio applications on heterogeneous multiprocessor architectures based on the GNU Radio extension, and a reference implementation has been created that can serve as a basis for use on new hardware platforms. This reference implementation is available on the Gitlab server of the Centro de Investigación en Tecnologías Software y Sistemas Multimedia para la Sostenibilidad (CITSEM) of the Universidad Politécnica de Madrid.