Cómo usar la plantilla Jornadas - Jornadas Sarteco

Implicaciones del uso de la reconfiguración
parcial dinámica de las FPGAs en la
implementación de Radios Definidas por
Software
Raúl Torrego*†, Iñaki Val*, Eñaut Muxika†, Xabier Iturbe*+ y Khaled Benkrid+
Resumen—El presente artículo analiza y describe las
implicaciones que, tanto a nivel de diseño como de
rendimiento, genera el uso de la reconfiguración parcial
dinámica de las FPGAs en la implementación de Radios
Definidas por Software. Esta característica que
determinadas FPGAs ofrecen y que permite el cambio de
funcionalidad de parte de la FPGA mientras que el resto de
ella permanece funcionando, casa perfectamente con la
implementación de Radios Definidas por Software,
obteniéndose de su uso una importante reducción de los
recursos utilizados y una gran flexibilidad. Sin embargo,
este tipo de implementación genera también ciertas
implicaciones e inconvenientes que este artículo analiza y
para las cuales propone diversas soluciones. Para la
obtención de datos y prueba de soluciones se ha llevado a
cabo la implementación de un modulador multi-estándar
que implementa versiones simplificadas de los estándares
de comunicación WiFi, WiMAX y UMTS. La
programación de estos estándares se ha llevado a cabo
además mediante la herramienta de prototipado rápido de
Xilinx, System Generator.
Palabras clave—FPGA, reconfiguración parcial, SDR,
parametrización, herramientas de prototipado rápido.
I.
INTRODUCCIÓN
L
A reconfiguración parcial dinámica de las FPGAs
es una característica que ofrecen algunos fabricantes
y que permite el cambio de la funcionalidad de parte de
la FPGA mientras que el resto sigue funcionando sin
interrupción [1]. Esta característica, restringida
principalmente a las FPGAs de tipo SRAM, deriva
precisamente del almacenamiento de la secuencia de bits
(comúnmente conocida como ‘bitstream’) que configura
los diversos elementos de la FPGA en una memoria
interna de configuración de este tipo. Por lo tanto, una
sobre-escritura en ciertas direcciones de esta memoria
hace que los elementos controlados por los bits sobreescritos cambien de configuración mientras que el resto
se mantienen inalterados. De esta forma se consigue, por
una parte, que la zona estática de la FPGA controle la
reconfiguración de las otras zonas, lo que se conoce
como “Auto-reconfiguración parcial”. Por otra, que las
FPGAs lleven a cabo diferentes funcionalidades en
*Departamento de comunicaciones, IK4-Ikerlan, Mondragón, Email:
[email protected], [email protected]
†Departamento de comunicaciones y teoría de la señal, Universidad de
Mondragón, Mondragón, Email: [email protected]
+ System Level Integration Group, The University of Edinburgh,
Edimburgo,
Email:
[email protected],
[email protected],
[email protected]
diferentes tiempos sin penalización alguna en el área o
en los recursos necesarios, reutilizando un determinado
área cada vez que un cambio de funcionalidad es
necesario. Atendiendo a esta última posibilidad, la
reconfiguración parcial dinámica se convierte en una
característica muy interesante para la implementación de
Radios Definidas por Software.
El término Radio Definida por Software, más
conocido por sus siglas en inglés, SDR (‘Software
Defined Radio’) fue acuñado por primera vez en 1992
por Joseph Mitola [2] para referirse a radios
reprogramables o reconfigurables. Estas radios eran
capaces de soportar diferentes funcionalidades en
diferentes tiempos mediante un cambio en su software.
Desde esta primera aparición hasta hoy en día, esta
definición ha sufrido diferentes interpretaciones que han
llevado a las SDR desde implementaciones puramente
software sobre DSPs o procesadores de propósito
general hasta su implementación en complejas
plataformas multi-chip [3]. Entre los diversos
dispositivos entre los que es posible implementan las
SDR, las FPGAs toman una nueva dimensión con la
irrupción de la reconfiguración parcial dinámica ya que
cumplen con la flexibilidad y computación de alto
rendimiento que las SDRs demandan.
Atendiendo a los cambios de funcionalidad a los que
hace referencia la definición de SDR, éstos también
pueden ser interpretados de diferentes formas. Desde
cambios de pequeña granularidad en los que
simplemente son actualizados parámetros como
coeficientes de filtros o ganancias en amplificadores,
hasta grandes reconfiguraciones en las que un sistema de
comunicaciones completo es cambiado por otro (por
ejemplo de WiFi a WiMAX). Aunque la reconfiguración
parcial dinámica es capaz de cubrir ambas situaciones, el
presente artículo basa sus resultados en este último tipo
de reconfiguración, habiéndose implementado un
modulador SDR multi-estándar que implementa
versiones simplificadas de los estándares de
comunicaciones: WiFi, WiMAX y UMTS.
Tratándose del diseño e implementación de funciones
y algoritmos de procesamiento de la señal, el uso de
herramientas de prototipado rápido es también altamente
recomendable [4]. Estas herramientas permiten lo que se
conoce como ‘diseño basado en modelos’, pudiendo el
diseñador programar los algoritmos y funciones
correspondientes de una forma gráfica, siendo la propia
herramienta la que de forma automática genera el código
sintetizable. También permiten realizar simulaciones
funcionales en fases tempranas del diseño, lo que en
definitiva lleva a importantes ahorros de tiempo. Por
ello, en el presente artículo se ha utilizado la
herramienta de prototipado rápido de Xilinx, System
Generator para llevar a cabo el diseño de los diversos
estándares de comunicación. Por su parte, todas las
implementaciones se han realizado sobre la FPGA
Virtex 4 de Xilinx: XC4VLX160.
Parece claro que un marco de diseño en el que se
unan la reconfiguración parcial dinámica de las FPGAs
y las herramientas de prototipado rápido ofrece
beneficios para la implementación de las Radios
Definidas por Software. Sin embargo, este marco de
diseño también genera ciertos inconvenientes (como el
tiempo de reconfiguración o la degradación de la
frecuencia máxima de reloj) e implicaciones en el diseño
(como la parametrización de funciones o la
multiplexación de relojes) que es necesario tener en
cuenta. Es precisamente el objetivo de este artículo
analizar, describir y dar solución a estos asuntos.
Las contribuciones principales de este artículo son las
siguientes:
1) La implementación de un modulador SDR multiestándar que implementa versiones simplificadas de
los estándares de comunicación: WiFi, WiMAX y
UMTS sobre FPGA.
2) El análisis y descripción de los inconvenientes e
implicaciones que el uso de la reconfiguración
parcial dinámica tiene en la implementación de las
Radios Definidas por Software.
3) La presentación de diversas soluciones que hacen
frente a los inconvenientes presentados previamente.
El resto del artículo está organizado de la siguiente
forma. El modulador multi-estándar implementado se
presenta en la Sección II. Basadas en los resultados
obtenidos de esta implementación, la Sección III detalla
las implicaciones que en este tipo de diseño genera el
uso de la reconfiguración parcial. Por su parte, la
Sección IV presenta las soluciones desarrolladas para
minimizar estos inconvenientes. Finalmente, las
conclusiones obtenidas y las líneas futuras de trabajo se
exponen en la Sección V.
II.
TABLA I: COMPARACIÓN DE RECURSOS ENTRE IMPLEMENTACIÓN
ESTÁTICA Y RECONFIGURABLE
obtenido estos datos contempla la reconfiguración
(borrado y reprogramación) completa de lo estándares,
quedando únicamente de forma estática el sistema que
lleva a cabo la reconfiguración (cuyo sobrecoste ha sido
añadido al cálculo del diseño reconfigurable). Esta
configuración, tal y como se expone en la siguiente
sección, tiene ciertos beneficios, pero también diversos
inconvenientes. Sobre los datos presentados es necesario
comentar también la optimización que las herramientas
de síntesis realizan en el uso de los recursos. Se observa
cómo en la implementación estática el uso de recursos es
menor a la suma de los recursos de las
implementaciones individuales. Esto es debido al propio
esfuerzo de las herramientas por eliminar lógica
redundante. Aun así, el uso de la reconfiguración parcial
mejora estos resultados.
Los estándares completos de los sistemas de
comunicación mencionados son extremadamente
complejos. Por ello, y puesto que el objetivo principal
del presente artículo es el de analizar las implicaciones
del uso de la reconfiguración parcial, lo implementado
son versiones simplificadas de estos estándares. Estas
versiones simplificadas contienen las funciones
principales que los estándares ejecutan pero no
implementan todas las posibilidades y variaciones
recogidas en ellos. La Tabla II presenta las funciones y
especificaciones de cada uno de los estándares
implementados. La Figura 1 por su parte ofrece una
visión de la implementación de parte del estándar
WiMAX en System Generator.
MODULADOR MULTI-ESTÁNDAR SDR
Algunos de los estándares de comunicaciones
inalámbricos más utilizados hoy en día son WiFi,
WiMAX y UMTS. Normalmente, tanto las estaciones
base como los dispositivos de usuario que permiten
comunicarse mediante estos estándares, o bien solo
soportan alguno de ellos o utilizan un hardware
específico para cada estándar. Teniendo en cuenta que,
sobre todo en los dispositivos de usuario, no es común
usar de forma simultánea más de un estándar, su
implementación sobre FPGA y el uso de la
reconfiguración parcial dinámica permite la reutilización
de un mismo hardware para la implementación de los
tres estándares. La Tabla I compara los recursos
utilizados por una implementación en paralelo de los
tres estándares con otra en la que se utiliza la
reconfiguración parcial para reutilizar los recursos de la
FPGA. Como era de esperar el ahorro de recursos es
significativo, cercano a un 40%. Es necesario comentar
que la configuración del sistema para la cual se han
TABLA II: DESCRIPCIÓN DE LOS ESTÁNDARES
Figura 1: Muestra de parte de la implementación en System Generator del estándar WiMAX
III.
IMPLICACIONES DEL USO DE LA
RECONFIGURACIÓN PARCIAL DINÁMICA DE LAS FPGAS
Los datos expuestos hasta ahora sobre la utilización de
la reconfiguración parcial han mostrado grandes
beneficios del uso de esta técnica, sin embargo esta
sección va a enumerar los inconvenientes que de ella
derivan.
A.
Tiempo de reconfiguración
El principal inconveniente de la reconfiguración
parcial dinámica es lo que se denomina como ‘Tiempo
de reconfiguración’. Mientras se está llevando a cabo la
reconfiguración, es decir, mientras se realiza la escritura
en la memoria de configuración interna de los bits
necesarios para que se de el cambio de funcionalidad,
los recursos controlados por esos bits no se encuentran
operativos. Más concretamente, aunque una vez escrito
cada bit su recurso correspondiente ya adquiere la
funcionalidad final, debido a que es una escritura
serializada, hasta que no han sido escritos todos los bits
no es posible asegurar un funcionamiento correcto. En el
caso del modulador multi-estándar, hasta que no se ha
descargado completamente el bitstream parcial del
nuevo estándar a configurar no es posible empezar a
utilizarlo. Este tiempo es lo que se denomina ‘Tiempo de
reconfiguración’.
Puesto que este tiempo está relacionado con una
escritura de datos en memoria, su cuantía depende del
número de bits a escribir (y por lo tanto del tamaño del
área a reconfigurar) y de la velocidad de escritura. De
los diferentes medios posibles para acceder a la memoria
de configuración, el puerto ICAP (Internal
Configuration Access Port – Puerto de Acceso a la
Configuración Interna) del que disponen las FPGA de
Xilinx es el que ofrece un mayor ancho de banda. Este
puerto permite una escritura teórica de 400 Mbps [5] .
En el caso de llevar a cabo una reconfiguración
completa de los estándares, y con la delimitación de un
área reconfigurable tal, que el mayor de los diseños no
ocupe más de un 70% de sus recursos, el tiempo de
reconfiguración es de 4.06 ms.
Este tiempo de reconfiguración puede no ser asumible
en determinadas aplicaciones, por lo que se hace
necesario tratar de minimizarlo. En el caso de las SDR
en general y de los estándares aquí presentados en
particular, se da la circunstancia de que varias de las
funciones implementadas se repiten de un estándar a
otro (Tabla II). Estas funciones, a priori, pueden quedar
implementadas en la parte estática de la FPGA de forma
que sean reutilizadas por los diferentes estándares y no
sea necesario reconfigurarlas. De esta forma, el tiempo
de reconfiguración se ve reducido tal y como se muestra
más adelante en la Sección IV. Sin embargo, para que
esto sea posible es necesario solventar la implicación en
el diseño que se presenta a continuación.
B.
Parametrización de funciones
Pese a que muchas de las funciones utilizadas en los
sistemas de comunicaciones actuales son comunes entre
ellos (filtros, codificadores, transformadas rápidas de
Fourier (FFT), intercaladores… etc.) y por lo tanto
susceptibles de ser reutilizadas, en la realidad en cada
sistema de comunicaciones cada función tiene sus
propios parámetros. Estos parámetros se corresponden a
anchuras de palabra de los datos a utilizar, frecuencias
de funcionamiento, coeficientes de los filtros, capacidad
de memoria necesaria, códigos de codificación, número
de puntos de las FFT… etc. Por lo tanto es necesario
realizar una modificación previa de las diferentes
funciones para que sean compatibles y por lo tanto
reutilizables por los diferentes estándares. A este proceso
de adecuación es a lo que se ha llamado
‘Parametrización’. El apartado A de la Sección IV
presenta las funciones que ha sido necesario
parametrizar para la implementación del modulador
multi-estándar SDR.
Pese a que la propia parametrización constituye una
implicación para el diseño por sí misma, su uso genera
otro inconveniente que es necesario evaluar. Tal y como
se observa en la Tabla III la parametrización de una
función hace que el número de recursos utilizados por
ésta aumente. Esto se debe a la necesidad de hacer
compatible dicha función con todos los estándares
necesarios y por lo tanto a la inclusión de elementos
TABLA III: IMPLICACIÓN DE LA PARAMETRIZACIÓN EN EL TAMAÑO DE
LAS FUNCIONES
Figura 2: Implementación en System Generator del entrelazador parametrizable
extras respecto a la función original. En definitiva, la
parametrización permite una reducción en el tiempo de
reconfiguración a costa de un aumento de los recursos
utilizados.
C.
Degradación de la frecuencia máxima de reloj
El flujo de diseño de la reconfiguración parcial
dinámica fuerza a las herramientas de síntesis a que
ningún recurso ni ninguna ruta salgan del área definida
como reconfigurable. Esto crea una limitación para que
estas herramientas busquen un enrutamiento óptimo de
las señales de reloj, lo que hace que la frecuencia
máxima que los diseños reconfigurables soportan se vea
reducida. Xilinx estima esta degradación en una media
de un 10% [1], sin embargo, ésta depende del porcentaje
de ocupación de recursos que tenga el área
reconfigurable tal y como se observa en la Tabla IV.
Con bajas ocupaciones el reloj no se ve demasiado
afectado ya que la herramienta de síntesis aun tiene
suficiente libertad, sin embargo, por encima de un 50%
de ocupación comienza la degradación. Con
ocupaciones superiores al 80%, es común que no sea
posible implementar el diseño.
TABLA IV: DEGRADACIÓN DE LA FRECUENCIA MÁXIMA DE RELOJ EN
RELACIÓN A LA OCUPACIÓN DEL ÁREA RECONFIGURABLE
Desafortunadamente esta degradación de los relojes es
intrínseca a la utilización de la reconfiguración parcial
dinámica por lo que la única posibilidad de mejora
radica en el aumento del área reconfigurable. Esta
solución, por su parte, empeora el aprovechamiento de
los recursos de la FPGA, por lo que debe ser evaluada
antes de aplicarse.
D.
No inicialización de Flip-Flops en áreas
reconfigurables
La última de las implicaciones que el uso de la
reconfiguración parcial tiene en los diseños está
relacionada con la inicialización de los Flip-Flops de las
áreas reconfigurables. En las implementaciones
estáticas, uno de los últimos comandos que el bitstream
ordena ejecutar a la FPGA es el llamado GRESTORE,
que inicializa todos los Flip-Flops a los valores por
defecto que se han programado en el lenguaje HDL
correspondiente. Sin embargo, en los bitstream parciales
que se generan para llevar a cabo una reconfiguración
parcial dinámica, este comando no se encuentra
presente. Esto es debido a que su aplicación afecta a
toda la FPGA y por lo tanto el funcionamiento de la
parte estática podría verse corrompido. Por lo tanto, tras
una reconfiguración parcial, los Flip-Flops presentes en
el nuevo diseño comienzan inicializados con el valor
que la implementación anterior hubiera dejado.
Una correcta programación del código HDL del
diseño reconfigurable permitiría forzar un reset inicial
que cargara los valores adecuados en los Flip-Flops ya
que estos disponen de una señal física para este
propósito. Sin embargo esta opción se vuelve más
compleja al utilizar herramientas de prototipado rápido
ya que se pierde el control sobre el código generado. El
apartado C de la Sección IV presenta una solución
genérica para este problema e introduce un
procedimiento que permite guardar el estado final de
una determinada configuración y recuperarlo la
siguiente vez que es programada.
IV.
SOLUCIONES
Una vez presentados los problemas e implicaciones
que introduce el uso de la reconfiguración parcial
dinámica en la implementación de las Radios Definidas
por Software, esta sección va a presentar las soluciones
que se han desarrollado para mitigarlos.
A.
Funciones parametrizables
Tal y como se ha explicado anteriormente, con el fin
de reducir los tiempos de reconfiguración en el cambio
de estándar es posible implementar determinadas
funciones de forma estática de forma que sean
reutilizadas por los diferentes estándares. Siguiendo la
metodología de diseño que se introduce en el apartado
D, y tras aplicar la técnica de funciones y operadores
comunes [6] se ha determinado que para el modulador
multi-estándar SDR es necesario parametrizar las
siguientes funciones: el codificador diferencial, el
entrelazador, la transformada inversa rápida de Fourier
(IFFT) y el insertador de prefijo cíclico.
Para realizar esta parametrización se han utilizado
tanto las facilidades que para este propósito ofrece
System Generator (por ejemplo en el caso de la IFFT en
la que el propio bloque permite la parametrización de
diversos parámetros) como la generación de diseños
propios. La Figura 2, por ejemplo, muestra el diseño
realizado para la implementación parametrizable del
entrelazador. Éste, está basado en una memoria RAM de
doble puerto que junto a unos generadores de
TABLA V: COMPARACIÓN DE RECURSOS Y TIEMPOS DE
RECONFIGURACIÓN ENTRE LOS DISEÑOS CON Y SIN PARAMETRIZACIÓN.
Figura 3: Diagrama del sistema de multiplexación virtual de relojes
direcciones multiplexados permite cambiar el código de
entrelazado.
La Tabla V muestra los resultados de introducir esta
parametrización en el diseño. Tal y como era de esperar,
se ha producido una reducción en el tiempo de
reconfiguración del sistema a costa de un aumento de los
recursos utilizados. La reducción en el tiempo de
reconfiguración es cercana al 45% mientras que se ha
producido un aumento de un 9% en los recursos
utilizados (tomándose como referencia el número de
SLICES).
B.
Multiplexación de relojes
Ligada a la parametrización de funciones pero en otro
plano de diseño se encuentra la necesidad de que éstas
se ejecuten a diferentes frecuencias de funcionamiento.
Cada uno de los estándares expuestos trabaja con una
velocidad de procesamiento diferente por lo que para
poder reutilizar las funciones comunes es necesario que
éstas se adapten a este parámetro también.
Puesto que la gestión de las líneas de reloj es básica
para el buen funcionamiento de cualquier diseño lógico
síncrono, las FPGAs disponen de rutas dedicadas que
distribuyen los relojes de forma eficiente por todo el
dispositivo. Realizar una multiplexación manual de estas
líneas, aunque simple y funcional en algunos casos, no
es una buena práctica de diseño. Al introducir un
elemento lógico como es un multiplexador, los relojes
pasan a ser distribuidos usando las rutas normales de la
FPGA lo que produce una degradación de éstos.
La solución ideal para la gestión de múltiples
frecuencias de reloj reside en el uso de los Mánager
Digitales de Reloj, más conocidos como DCM (Digital
Clock Manager) que ofrecen las FPGAs. Estos recursos
gestionan la correcta generación de relojes de diferentes
frecuencias. Desafortunadamente, estos recursos, que no
son reconfigurables dinámicamente, tampoco permiten
ser parametrizados en todas las familias de FPGAs [7]
por lo que es necesario desarrollar una solución
alternativa.
System Generator realiza una gestión de las diferentes
frecuencias de funcionamiento presentes en cada diseño
basada en señales de habilitación de reloj (señales
clock_enable). Es posible utilizar esta característica para
realizar una multiplexación virtual de los relojes. El uso
de habilitaciones de reloj se basa en la distribución a
todo el diseño de una única línea de reloj que funciona a
una frecuencia que es el máximo común divisor de las
frecuencias de trabajo del sistema. Además, se distribuye
a cada elemento una señal habilitadora que indica
cuando este reloj es válido. Estas señales habilitadoras
se generan mediante lógica convencional y se
distribuyen mediante rutas normales de la FPGA por lo
que su multiplexación no entraña ningún problema.
La Figura 3 muestra un diagrama del sistema de
multiplexación de relojes diseñado.
C.
Procedimiento para el salvado y recuperación
del estado del área reconfigurable
Tal y como se ha expuesto anteriormente, debido a que
la reconfiguración parcial dinámica es una técnica no
convencional de uso de las FPGAs, la inicialización de
los Flip-Flops presentes en las áreas reconfigurables no
se realiza automáticamente. Este problema, pese a que
puede ser solucionado mediante un reset local, se ve
acentuado en el caso de las SDR en las que
determinadas funciones no son invariantes en el tiempo.
Funciones como los aleatorizadores o filtros de
respuesta infinita (IIR) necesitan ser programados con el
estado en el que estaban al acabar la última ejecución
cada vez que se carga un nuevo estándar. Este “estado”
se corresponde realmente con el valor que almacenan los
Flip-Flops. Por lo tanto, es necesario desarrollar un
sistema de guarda y recuperación del estado de los
estándares, similar al que implementan los sistemas
operativos que soportan interrupciones o desalojo de
tareas.
El procedimiento desarrollado se basa en la posibilidad
de acceso a la memoria de configuración de la FPGA
que el puerto ICAP ofrece. Los bits notados como
INIT/VALUE de esta memoria (dirección ‘minor’ 20 de
cada trama de configuración de las CLB) guardan el
estado inicial con el que debe ser inicializado cada FlipFlop. Este estado se carga cuando el comando
GRESTORE es ejecutado. Por su parte, el comando
GCAPTURE realiza la operación inversa, fuerza una
copia del estado actual de los Flip-Flops a los bits
INIT/VALUE. De esta forma el procedimiento para
salvar y recuperar el estado de los Flip-Flops parece
sencillo. Desafortunadamente, y tal y como se ha
explicado anteriormente, la aplicación de estos
comandos afecta por defecto a toda la FPGA por lo que
su ejecución, con la intención de inicializar un área
reconfigurada, corrompería la parte estática. Por ello se
ha desarrollado una solución para que estos comandos se
apliquen de forma local.
La activación del bit 13 de la llamada “Trama
Especial” de cada columna de la FPGA (dirección
‘minor’ 0 y ‘block type’ 3 para las FPGA Vitex4 o 2 para
las Virtex5 [8]) hace que los Flip Flops de dicha
columna no se vean afectados por estos comandos. Por
lo tanto, realizando una activación de dicho bit para
todas las columnas de la FPGA menos las situadas en el
área reconfigurable a inicializar, hace que los comandos
se apliquen de forma local. En definitiva, el
procedimiento para el salvado y recuperación del estado
de área reconfigurable queda resumido de la siguiente
manera:
1- Protección de todas las columnas de la FPGA
mediante la activación del bit 13 de la trama
especial
2- Desprotección del área reconfigurable
3- Ejecución del comando GCAPTURE
4- Lectura de las tramas que conforman el área
reconfigurable (y que tienen los bits INIT/VALUE
inicializados con el estado actual de los FlipFlops) y guardado de estas tramas para su uso
futuro.
Tras este paso es posible realizar la reconfiguración
del sistema con una nueva configuración. En el
momento de volver a la configuración salvada, el
procedimiento sigue de la siguiente forma:
5- Recuperación de las tramas guardadas y
programación de éstas vía ICAP.
6- Ejecución del comando GRESTORE.
7- Habilitación del sistema para que comience su
ejecución normal.
Es de comentar que pese a que el procedimiento aquí
escrito engloba tanto el guardado del estado de los FlipFlops como su recuperación, éste puede ser modificado
de forma que lleve a cabo simplemente la inicialización
de los Flip-Flops a sus valores por defecto de la misma
forma que ocurre en los diseños no reconfigurables.
D.
Metodología
de
particionado
estático/reconfigurable
Por último, y englobando la mayoría de los conceptos
y soluciones expuestos en este artículo, los autores están
desarrollando una metodología de diseño que permite
elegir el particionado óptimo de un diseño SDR entre
zonas estáticas y reconfigurables. Tal y como se ha
demostrado en apartados anteriores, dadas la
particularidades que las Radios Definidas por Software
tienen, el uso de la reconfiguración parcial dinámica en
su implementación puede realizarse con diferentes
granularidades, desde la reconfiguración del sistema
completo, hasta el cambio de solo determinadas
funciones. Puesto que cada una de las posibilidades
repercute de forma diferente en el rendimiento del
sistema, esta metodología persigue determinar de forma
cuantitativa la granularidad óptima para obtener un
diseño con el mejor rendimiento.
De forma muy genérica la metodología se basa en tres
fases: la determinación de las funciones susceptibles de
ser reutilizadas, y por lo tanto implementadas de forma
estática, la generación de las diferentes posibilidades de
particionado y la evaluación del rendimiento de cada
una de las posibilidades mediante una función de coste.
A continuación se detallan un poco más estas fases.
1) Determinación de las funciones comunes
Para la determinación de las funciones comunes se
realiza una aplicación de lo que se conoce como
‘Técnica de las funciones y operadores comunes’ [6]. Se
trata de una técnica gráfica que permite representar y
visualizar en diferentes niveles las funciones y
operadores que componen cada estándar de
comunicaciones. De esta forma es posible determinar de
forma simple las inter-relaciones entre ellos.
2) Generación de los particionados
Una vez determinadas las funciones con posibilidad de
ser reutilizadas, esta fase determina las diferentes
posibilidades de implementación. Se genera un listado
de posibles diseños en los que de forma progresiva se
pasa
de
implementaciones
completamente
reconfigurables hasta implementaciones en las que solo
se reconfigura el mínimo número de funciones posible.
3) Función de coste
Con el objetivo de evaluar cuantitativamente la calidad
de los diseños generados, se evalúa el rendimiento de
tres de sus parámetros mediante una función de coste: el
tiempo de reconfiguración, la frecuencia máxima del
reloj soportada y los recursos utilizados. El diseño con
un menor valor de esta función será considerado como
óptimo. Por su parte, la obtención de datos a introducir
en la función puede realizarse de dos formas, bien
mediante la implementación de los diseños en el caso de
no ser muy numerosos, o bien mediante estimaciones
basadas en implementaciones anteriores.
V.
CONCLUSIONES
En el presente artículo se ha mostrado un análisis de
las implicaciones e inconvenientes que introduce el uso
de la reconfiguración parcial dinámica de las FPGAs en
la implementación de Radios Definidas por Software. Se
ha observado como esta técnica, pese a casar
perfectamente con la filosofía de las SDR, genera
diversos inconvenientes que es necesario ponderar de
forma previa a su utilización. El artículo ha presentado
también diversas soluciones para solventar o reducir el
impacto de dichos inconvenientes que se han
demostrado eficaces. Quedan como trabajos futuros en
esta línea el desarrollo de la metodología de diseño
presentada y la parametrización de otras funciones que
permita una mayor flexibilidad en el diseño.
AGRADECIMIENTOS
Este trabajo ha sido parcialmente financiado por el
programa de Proyectos de Investigación Estratégica del
Gobierno del País Vasco (España), a través del proyecto
MOVITIC (programa Etortek).
REFERENCIAS
[1] (XILINX): ‘UG702 - Partial Reconfiguration User Guide’, (2010,
12.3 edn.), pp. 130
[2] Mitola, J.: ‘Software radios-survey, critical evaluation and future
directions’. Proc. National Telesystems Conference, 1992. NTC92., pp. 13/15-13/23, 1992
[3] Zong, W., and Arslan, T.: ‘A low power reconfigurable
heterogeneous architecture for a mobile SDR system’. Proc.
ICECE Technology, 2008. FPT 2008. International Conference
on, pp. 313-316, 2008
[4] Haessig, D., Hwang, J., Gallagher, S., and Uhm, M.: ‘A case study
of Xilinx System Generator design flow for rapid development of
SDR waveforms’. Proc. SDR Forum Technical Conference,
Orange County, 2005
[5] Liu, M., Kuehn, W., Lu, Z., and Jantsch, A.: ‘Run-time partial
reconfiguration speed investigation and architectural design space
exploration’. Proc. FPL 09: 19th International Conference on
Field Programmable Logic and Applications, Prague, pp. 498-502,
2009
[6] Alaus, L., Palicot, J., Roland, C., Louët, Y., and Noguet, D.:
‘Promising Technique of Parameterization For Reconfigurable
Radio, the Common Operators Technique. Fundamentals and
Examples’, Journal of Signal Processing Systems, 2009
[7] He, K.: ‘Dynamic reconfiguration technologies based on FPGA in
software defined radio system’. Proc. Wireless Innovation Forum
European Conference on Communications Technologies and
Software Defined Radio, Brussels, pp. 107-114, 2011
[8] (XILINX): ‘UG191 - Virtex-5 FPGA Configuration User
Guide’,(2011, V3.10)