Run-Time Dynamically-Adaptable FPGA-Based Architecture for High-Performance Autonomous Distributed Systems
Total Page:16
File Type:pdf, Size:1020Kb
Departamento de Automática, Ingeniería Eléctrica y Electrónica e Informática Industrial Escuela Técnica Superior de Ingenieros Industriales Run-Time Dynamically-Adaptable FPGA-Based Architecture for High-Performance Autonomous Distributed Systems Autor: Juan Valverde Alcalá Ingeniero Industrial por la Universidad Politécnica de Madrid Directores: Jorge Portilla Berrueco Doctor por la Universidad Politécnica de Madrid en Ingeniería Electrónica Eduardo de la Torre Arnanz Doctor Ingeniero Industrial por la Universidad Politécnica de Madrid 2015 Tribunal Tribunal nombrado por el Excmo. y Magfco. Sr. Rector de la Universidad Politécnica de Madrid, el día 6 de Noviembre de 2015. Presidente: Carlos López Barrio, Universidad Politécnica de Madrid Vocales: Roberto Sarmiento Rodríguez, Universidad de Las Palmas de Gran Canaria Christian De Schryver, Universidad Kaiserslautern Secretario: Teresa Riesgo Alcaide, Universidad Politécnica de Madrid Suplentes: Marta Portela García, Universidad Carlos III de Madrid Ángel de Castro Martín, Universidad Autónoma de Madrid Realizado el acto de lectura y defensa de la Tesis Doctoral el día 16 de Diciembre de 2015 en la Escuela Técnica Superior de Ingenieros Industriales de la Universidad Politécnica de Madrid. Calificación: EL PRESIDENTE LOS VOCALES EL SECRETARIO Посвета Ова докторска теза је посвећена мом животном партнеру. Зато што само са њом уживам у сваком тренутку свог живота. Зато што ме она учи како да будем снажан без обзира шта се деси. Зато што, кад сам са њом, знам да је све савршено и да сам спокојан. Зато што смо победили време и раздаљину и сада можемо да радимо шта год пожелимо. Agradecimientos A mis padres, mi hermana y Estefa, por traerme hasta aquí día tras día viéndome sufrir y trabajar, y diciéndome, “venga, otro pasito más”. A Alfonso, por todo, por acompañarme en la etapa más difícil del camino, incluso en la distancia. Por sus críticas, su apoyo incondicional y su joven sabiduría. Por no dejarme nunca solo. A mis tutores, Jorge y Edu, por tantos años enseñándome, que no es fácil. Por convertirme en una mente crítica. Por llevarme hasta el final. A Tere, porque por alguna razón nunca dejó de confiar en mí. Por darme las oportunidades que me han convertido en quien soy hoy. A César, porque esto es tan suyo como mío. Porque llegará muy lejos. A Marian, por sacarme tantas veces de la realidad, por nuestras infinitas charlas que me han ayudado a ver el mundo mejor de lo que es. A mis amigos del CEI, Andrés, Víctor, Meneses, Varela, Chema, Mora y Dani, porque hacer una tesis con ellos ha sido un placer, pero sobre todo, lo es seguir teniéndolos allá donde estén. A Dani, por darme ánimos en los días Irlandeses más oscuros. A mis amigos Alex, Chino, Doris, Félix, Lara, Luis, María, Rafa, Ro, Sergio, Soraya y Yolanda, porque cierro una etapa que empecé con ellos y que han sido los mejores años de mi vida. Por las cañas, por los viajes, por las risas, por las patatas y porque sigamos así. A mi segunda familia, a mis hermanos Silvia y Dani, a Bárbara, Cris, Hugo, Matías y Willy. Porque mi vida no es mi vida sin mis recuerdos con ellos y sin pensar en un futuro con ellos. A mis tíos y primos, porque sois la mejor familia que se puede tener. Por último y más importante, a la persona más sabia del mundo, a mi abuelo. Que nos trajo a todos hasta aquí, y nos sigue llevando con fuerza imparable. A los que ya no están y han escrito conmigo cada una de estas letras. Resumen en castellano Esta tesis doctoral se enmarca dentro del campo de los sistemas embebidos reconfigurables, redes de sensores inalámbricas para aplicaciones de altas prestaciones, y computación distribuida. El documento se centra en el estudio de alternativas de procesamiento para sistemas embebidos autónomos distribuidos de altas prestaciones (por sus siglas en inglés, High- Performance Autonomous Distributed Systems (HPADS)), así como su evolución hacia el procesamiento de alta resolución. El estudio se ha llevado a cabo tanto a nivel de plataforma como a nivel de las arquitecturas de procesamiento dentro de la plataforma con el objetivo de optimizar aspectos tan relevantes como la eficiencia energética, la capacidad de cómputo y la tolerancia a fallos del sistema. Los HPADS son sistemas realimentados, normalmente formados por elementos distribuidos conectados o no en red, con cierta capacidad de adaptación, y con inteligencia suficiente para llevar a cabo labores de prognosis y/o autoevaluación. Esta clase de sistemas suele formar parte de sistemas más complejos llamados sistemas ciber- físicos (por sus siglas en inglés, Cyber-Physical Systems (CPSs)). Los CPSs cubren un espectro enorme de aplicaciones, yendo desde aplicaciones médicas, fabricación, o aplicaciones aeroespaciales, entre otras muchas. Para el diseño de este tipo de sistemas, aspectos tales como la confiabilidad, la definición de modelos de computación, o el uso de metodologías y/o herramientas que faciliten el incremento de la escalabilidad y de la gestión de la complejidad, son fundamentales. La primera parte de esta tesis doctoral se centra en el estudio de aquellas plataformas existentes en el estado del arte que por sus características pueden ser aplicables en el campo de los CPSs, así como en la propuesta de un nuevo diseño de plataforma de altas prestaciones que se ajuste mejor a los nuevos y más exigentes requisitos de las nuevas aplicaciones. Esta primera parte incluye descripción, implementación y validación de la plataforma propuesta, así como conclusiones sobre su usabilidad y sus limitaciones. Los principales objetivos para el diseño de la plataforma propuesta se enumeran a continuación: Estudiar la viabilidad del uso de una FPGA basada en RAM como principal procesador de la plataforma en cuanto a consumo energético y capacidad de cómputo. Propuesta de técnicas de gestión del consumo de energía en cada etapa del perfil de trabajo de la plataforma. Propuestas para la inclusión de reconfiguración dinámica y parcial de la FPGA (por sus siglas en inglés, Dynamic Partial Reconfiguration (DPR)) de forma que sea posible cambiar ciertas partes del sistema en tiempo de ejecución y sin necesidad de interrumpir al resto de las partes. Evaluar su aplicabilidad en el caso de HPADS. Las nuevas aplicaciones y nuevos escenarios a los que se enfrentan los CPSs, imponen nuevos requisitos en cuanto al ancho de banda necesario para el procesamiento de los datos, así como en la adquisición y comunicación de los mismos, además de un claro incremento en la complejidad de los algoritmos empleados. Para poder cumplir con estos nuevos requisitos, las plataformas están migrando desde sistemas tradicionales uni-procesador de 8 bits, a sistemas híbridos hardware-software que incluyen varios procesadores, o varios procesadores y lógica programable. Entre estas nuevas arquitecturas, las FPGAs y los sistemas en chip (por sus siglas en inglés, System on Chip (SoC)) que incluyen procesadores embebidos y lógica programable, proporcionan soluciones con muy buenos resultados en cuanto a consumo energético, precio, capacidad de cómputo y flexibilidad. Estos buenos resultados son aún mejores cuando las aplicaciones tienen altos requisitos de cómputo y cuando las condiciones de trabajo son muy susceptibles de cambiar en tiempo real. La plataforma propuesta en esta tesis doctoral se ha denominado HiReCookie. La arquitectura incluye una FPGA basada en RAM como único procesador, así como un diseño compatible con la plataforma para redes de sensores inalámbricas desarrollada en el Centro de Electrónica Industrial de la Universidad Politécnica de Madrid (CEI- UPM) conocida como Cookies. Esta FPGA, modelo Spartan-6 LX150, era, en el momento de inicio de este trabajo, la mejor opción en cuanto a consumo y cantidad de recursos integrados, cuando además, permite el uso de reconfiguración dinámica y parcial. Es importante resaltar que aunque los valores de consumo son los mínimos para esta familia de componentes, la potencia instantánea consumida sigue siendo muy alta para aquellos sistemas que han de trabajar distribuidos, de forma autónoma, y en la mayoría de los casos alimentados por baterías. Por esta razón, es necesario incluir en el diseño estrategias de ahorro energético para incrementar la usabilidad y el tiempo de vida de la plataforma. La primera estrategia implementada consiste en dividir la plataforma en distintas islas de alimentación de forma que sólo aquellos elementos que sean estrictamente necesarios permanecerán alimentados, cuando el resto puede estar completamente apagado. De esta forma es posible combinar distintos modos de operación y así optimizar enormemente el consumo de energía. El hecho de apagar la FPGA para ahora energía durante los periodos de inactividad, supone la pérdida de la configuración, puesto que la memoria de configuración es una memoria volátil. Para reducir el impacto en el consumo y en el tiempo que supone la reconfiguración total de la plataforma una vez encendida, en este trabajo, se incluye una técnica para la compresión del archivo de configuración de la FPGA, de forma que se consiga una reducción del tiempo de configuración y por ende de la energía consumida. Aunque varios de los requisitos de diseño pueden satisfacerse con el diseño de la plataforma HiReCookie, es necesario seguir optimizando diversos parámetros tales como el consumo energético, la tolerancia a fallos y la capacidad de procesamiento. Esto sólo es posible explotando todas las posibilidades ofrecidas por la arquitectura de procesamiento en la FPGA. Por lo tanto, la segunda parte de esta tesis doctoral está centrada en el diseño de una arquitectura reconfigurable denominada ARTICo3 (Arquitectura Reconfigurable para el Tratamiento Inteligente de Cómputo, Confiabilidad y Consumo de energía) para la mejora de estos parámetros por medio de un uso dinámico de recursos. ARTICo3 es una arquitectura de procesamiento para FPGAs basadas en RAM, con comunicación tipo bus, preparada para dar soporte para la gestión dinámica de los recursos internos de la FPGA en tiempo de ejecución gracias a la inclusión de reconfiguración dinámica y parcial.