UNA PLATAFORMA HIBRIDA PROCESADOR-FPGA PARA LA EJECUCIÓN DE ALGORITMOS MULTIMEDIA A FPGA-PROCESSOR HYBRID PLATFORM FOR MULTIMEDIA APPLICATIONS JOSÉ EDINSON AEDO COBO Universidad de Antioquia [email protected] MÓNICA AYDE VALLEJO VELÁSQUEZ Universidad de Antioquia [email protected] JUAN DIEGO ECHEVERRI ESCOBAR Universidad de Antioquia [email protected] El manejo de datos multimedia (voz, audio y video) en sistemas de computación móvil, implica el uso de complejos algoritmos que exigen un alto poder computacional y un alto consumo de potencia. Para responder a estos requerimientos, en los últimos años se han propuesto diferentes arquitecturas y entre estas, las que combinan hardware reconfigurable con procesadores de propósito general, pueden proveer soluciones interesantes respecto al incremento del rendimiento, la flexibilidad y la adaptabilidad. En este trabajo se propone una arquitectura híbrida Procesador-FPGA para sistemas móviles multimedia y se evalúa el desempeño y el consumo de potencia de un procesador i.MXL de Freescale y de una FPGA Spartan 3 de Xilinx al ejecutar dos algoritmos: el Data Encryption Standard (DES) y la transformada discreta del coseno en dos dimensiones (2D-DCT). La arquitectura propuesta, consiste de un procesador de bajo consumo utilizado en PDA’s y teléfonos celulares (i.MXL) conectado a una FPGA Spartan 3 de Xilinx utilizada como co-procesador para la ejecución de algoritmos de alta complejidad y alto grado de paralelismo. La conexión entre estos dispositivos se hace por medio del módulo de interfase externas (EMI) del procesador, al que también están conectadas las memorias FLASH, SRAM y la interfaz de red Ethernet. La FPGA puede ser reprogramada en cualquier momento, para esto se construyo una aplicación capaz de leer una representación en XML de los archivos SVF (Serial Vector Format) generados por las herramientas de síntesis como el ISE de Xilinx; luego, la terminal es capaz de identificar los datos en XML y enviarlos al puerto JTAG de la FPGA por medio de un driver diseñado para el sistema operativo Linux 2.6.11 Con relación a la evaluación de los algoritmos antes mencionados (el DES y la 2D DCT), la siguiente tabla muestra el resumen de los resultados obtenidos con relación al consumo de potencia y al desempeño para ambos dispositivos (El procesador i.MXL y la FPGA Spartan 3). Algoritmo Dispositivo Energía requerida Capacidad FPGA 106uJoule/MByte 11.92MByte/s DES i.MXL 28.121Joule/MByte 12.8KByte/s FPGA 1.07uJoule/Ima* 651Ima*/s 2D-DCT i.MXL 7.33Joule/Ima* 0.04Ima*/s * Para esta prueba, una Ima consiste de 1200 bloques de 8x8 De la tabla anterior, se puede observar que para la ejecución de estos algoritmos, la FPGA es mejor, en varios órdenes de magnitud en cuanto al desempeño y el consumo dinámico de potencia, que el procesador i.MXL. Sin embargo, los resultados son altamente dependientes de la implementación y no se tienen en cuenta varios factores como el consumo extra de la FPGA al momento de la programación, la carga que supone al procesador la ejecución del sistema operativo o la diferencia en la latencia para acceder a los datos si están en un bloque de RAM (FPGA) o en la caché en el caso del procesador.