Energy-efficient hardware/software co-design for dynamically reconfigurable architectures

  1. NOGUERA SERRA, JUAN JOSÉ
Dirigida por:
  1. Rosa M Badia Director/a

Universidad de defensa: Universitat Politècnica de Catalunya (UPC)

Fecha de defensa: 16 de diciembre de 2005

Tribunal:
  1. Román Hermida Correa Presidente
  2. Fermín Sánchez Carracedo Secretario/a
  3. Eduard Ayguadé Parra Vocal

Tipo: Tesis

Teseo: 111519 DIALNET

Resumen

La Computación Reconfigurable es una alternativa interesante a la hora de implementar sistemas embebidos, dado que proporciona el alto rendimiento de las arquitecturas hardware de propósito específico y la flexibilidad de los micro-procesadores estándar. El trabajo de investigación llevado a cabo en esta tesis, se dirige a sistemas embebidos portátiles, que sean capaces de ejecutar varias aplicaciones al mismo tiempo (por ejemplo, un teléfono móvil capaz de ejecutar un decodificador MP3, hacer una foto y posteriormente, mejorar la calidad de la imagen). En estos tipos de sistemas, la ejecución de las aplicaciones no es determinista dado el alto nivel de interacción del usuario, y por lo tanto requiere de una planificación dinámica. Este trabajo propone la implementación de este tipo de aplicaciones sobre arquitecturas dinámicamente reconfigurables. En este sentido, esta tesis presenta diferentes técnicas, tanto a nivel de arquitectura como a nivel de compilación, para mejorar el rendimiento y reducir el consumo de energía. En el nivel de arquitectura, se propone una arquitectura multi-procesador dinámicamente reconfigurable. En ella podemos encontrar dos bloques clave: (1) un sub-sistema de memoria L2 que incluye diferentes unidades para el pre-fetch de datos y de los contextos para las reconfiguraciones; y (2) una unidad de planificación dinámica basada en hardware. Para minimizar el consumo dinámico de potencia, se propone una arquitectura reconfigurable con múltiples dominios de reloj, donde se puede parar el reloj o utilizar técnicas de escalado de frecuencia. La unidad de planificación dinámica, basada en una implementación hardware (diferente de los trabajos previos basados en técnicas de planificación estática o el uso de un sistema operativo), se encarga de planificar la ejecución de tareas y las reconfiguraciones. Para minimizar el overhead de reconfiguración, el planificador de tareas (ejecución) usa el concepto de re-uso de contexto, y el planificador de reconfiguraciones utiliza el concepto de pre-fetch de configuraciones. Además, la unidad de planificación dinámica resuelve, automáticamente y en tiempo de ejecución, las dependencias de datos entre tareas de una misma aplicación. Finalmente, en esta tesis se han desarrollado un conjunto de técnicas de diseño a nivel de sistema para mejorar el rendimiento y reducir el consumo de energía. Este conjunto de técnicas deben considerarse como parte de un posible compilador encargado de implementar una aplicación sobre la arquitectura reconfigurable. En este trabajo se proponen tres técnicas principales: (1) un algoritmo de particionado HW/SW que considera el pre-fetch de configuraciones; (2) una técnica de particionado de datos consciente del tiempo de reconfiguración, que hace posible estudiar los diferentes compromisos en términos de energía y rendimiento; y (3) diferentes técnicas de transformación del grafo para aumentar el paralelismo a nivel de tarea.