Aportaciones al diseño de unidades de procesamiento de datos para aplicaciones espaciales mediante el empleo FPGAs
- GUZMÁN GARCÍA, DAVID
- Manuel Prieto Mateo Director
- Óscar Rodríguez Polo Co-director
Universidade de defensa: Universidad de Alcalá
Fecha de defensa: 28 de febreiro de 2012
- Daniel Meziat Luna Presidente/a
- Sebastián Sánchez Prieto Secretario/a
- Segundo Esteban San Román Vogal
- Ramón Puigjaner Trepat Vogal
- Fernando Aguado Agelet Vogal
Tipo: Tese
Resumo
La presente memoria de tesis describe la investigación realizada en el ámbito de las unidades de procesamiento de datos para aplicaciones espaciales. Típicamente estas unidades están basadas en un microprocesador. Los procesadores modernos incluyen características como pipelines, caches y predictores de saltos que resultan en destacables mejoras del rendimiento. Sin embargo estas nuevas características introducen un alto grado de indeterminismo en el comportamiento de los programas que ejecutan. En el ámbito aeroespacial este hecho toma vital importancia dado que estas unidades están diseñadas para ejecutar sistemas de tiempo real, con una gran criticidad en sus tareas, y sujetos a exhaustivos procesos de análisis previos a su aceptación. El objetivo principal de esta tesis ha sido aportar una serie de mejoras sobre la arquitectura de la familia de microprocesadores LEON, que es la plataforma recomendada por la Agencia Espacial Europea como unidad de procesamiento de datos para sistemas embarcados. Estas mejoras están destinadas a incrementar el determinismo en la ejecución de sistemas, así como dotar de una capacidad de observación que facilite el análisis de las propiedades extra funcionales de los sistemas ejecutados, como son su tiempo de ejecución en el peor caso, su tasa de fallos de caché o su cobertura. En este sentido el trabajo de investigación introduce en el microprocesador de un nuevo módulo encargado de extraer información de análisis en modo no intrusivo, evitando las interferencias de otras soluciones basadas en la instrumentación del código. Esta información incluye las tasas de acierto y fallos de las memorias caches, el número de instrucciones ejecutadas, los ciclos de reloj necesarios para completar las mismas, el número de instrucciones de salto realizadas y una traza del programa basada en las instrucciones de salto ejecutadas. La segunda de las aportaciones, destinada a incrementar el determinismo de la arquitectura, incorpora un mecanismo que evita el jitter en el cambio de contexto de una tarea y en la latencia correspondiente a la atención a interrupciones, además de reducir significativamente el tiempo empleado en ambos mecanismos. Un aspecto fundamental de esta mejora es el hecho de que se pueda utilizar sin necesidad de modificar el compilador ya que respeta el actual conjunto de instrucciones de la familia, y sólo requiere la adaptación del sistema operativo de tiempo real. Como soporte al trabajo realizado se ha empleado la tecnología FPGA. En los últimos años esta tecnología han ido ganado popularidad en las aplicaciones espaciales, debido principal- mente a que aportan una reducción significativa en los costes de desarrollo frente a la tecnología ASIC, tanto en términos económicos como temporales. Gracias a las FPGAs, el diseñador de sistemas dispone de una plataforma donde integrar, en un sólo circuito, un sistema digital complejo, reduciendo el consumo y número de componentes empleados. Además, dada su versatilidad, se tiene la posibilidad de modificar y mejorar los componentes que se integran en el diseño, adaptándolos a un escenario específico, y proporcionando así soluciones "ad-hoc". Las aportaciones de este trabajo de investigación se han reflejado en la propuesta de diseño de una unidad de procesamiento de datos embarcable, basada en el empleo de FPGAs y en microprocesadores de la familia LEON como elementos principales.