Modelo y estrategias de partición de componentes hardware/software en el co-diseño de sistemas embebidos

  1. Díaz Pando, Humberto
Supervised by:
  1. Sergio Cuenca Asensi Director
  2. Roberto Sepúlveda Lima Director

Defence university: Universitat d'Alacant / Universidad de Alicante

Fecha de defensa: 27 February 2014

Committee:
  1. Juan Suardíaz Muro Chair
  2. Antonio Jimeno Morenilla Secretary
  3. Pedro J. Navarro Lorente Committee member

Type: Thesis

Teseo: 358036 DIALNET lock_openRUA editor

Abstract

La tarea de partición Hardware/Software es clave dentro de la metodología de co-diseño de sistemas embebidos. En ella se decide, teniendo en cuenta las métricas de diseño, qué componentes se ejecutarán en un procesador de propósito general (software) y cuáles en un hardware específico. La solución de dicha tarea implica resolver un problema de optimización combinatoria que en la mayoría de los casos está clasificado de complejidad NP-fuerte. En los últimos años se han propuesto diversos modelos dirigidos a automatizar dicha tarea. En la mayoría de los casos estos modelos están guiados por la optimización de una determinada métrica y sujeto a restricciones en otras métricas. Mientras que para recorrer el espacio de soluciones es frecuente encontrar aproximaciones que utilizan algoritmos metaheurísticos. No obstante, a pesar de la gran diversidad de modelos y métricas utilizadas, existen varios problemas que todavía permanecen abiertos. Uno de estos problemas lo constituye la carencia de un modelo genérico para la partición Hw/Sw de componentes de un sistema embebido que integre varias métricas para la búsqueda de la partición óptima. Otro aspecto por resolver es la forma de elegir el algoritmo de partición más apropiado en función del tipo de aplicación y los requisitos del sistema. De hecho, la mayoría de comparativas reportadas utilizan distintas instancias del problema, distintos modelos de sistema y/o los parámetros son escogidos de forma poco clara o arbitraria. En este contexto, el presente trabajo define un modelo genérico y formal para el proceso de partición. Además, se propone una instancia del modelo dirigida a optimizar dos de las métricas más habituales en los sistemas embebidos: Tiempo y Área. A partir de esta instancia, se desarrolla un estudio comparativo entre varios algoritmos metaheurísticos, cuyas conclusiones están respaldadas mediante pruebas estadísticas no paramétricas. Como caso de estudio, se utiliza el modelo en una aplicación real, codificador JPEG, que combina los dos tipos de computación más habituales en los sistemas embebidos. Los resultados de la comparación muestran, en general, que los algoritmos Escalador de colinas estocástico y Escalador de colinas estocástico con Reinicio se compartan de forma similar a los Algoritmos Genéticos en la solución de este problema. Por otra parte, el análisis de las soluciones desde el punto de vista multi-objetivo concluyó que los algoritmos tienden a dominar porciones bien definidas del frente de Pareto, es decir, soluciones dominadas por el Tiempo, por el Área o que tienden a estar en el centro del frente. Estos resultados permiten establecer como estrategia, la utilización de varios algoritmos metaheurísticos para resolver una instancia particular del problema, aportándole al diseñador un mayor abanico de posibilidades para tomar la decisión sobre la implementación a realizar. Como resultado de aplicar la instancia del modelo y los algoritmos Escalador de Colinas Estocástico y Escalador de Colinas Estocástico con Reinicio sobre la implementación de un codificador JPEG, se pudo constatar que estos dos algoritmos lograron soluciones comparables, en cuanto a calidad, con otros algoritmos utilizados para resolver este mismo problema. A partir de los resultados obtenidos es posible concluir, en primer lugar, que el empleo de lógica difusa en el modelo permite manipular las restricciones de forma más intuitiva con respecto a las variantes anteriores. Además de aportarle al modelo cierto grado de flexibilidad, permitiendo tratar el problema de una forma más cercana a cómo el diseñador lo hace en la práctica. En segundo lugar, se pudo apreciar que los algoritmos Escalador de Colinas Estocástico y Escalador de Colinas Estocástico con Reinicio ofrecen resultados significativos si son aplicados en el contexto de este problema. A partir de la aplicación de estos algoritmos en el caso de estudio se pudo constatar que estos logran soluciones que mejoran a las generadas por otros algoritmos. Por otra parte, tanto el análisis multi-objetivo de las soluciones como el enfoque multi-algorítmico para resolver el problema, dotan al modelo de partición Hardware/Software de una mayor riqueza al considerar soluciones en un espectro que pudieran resultar de interés al diseñador.