Función de Coste Dinámica para Particionamiento HW/SW

Anuncio
S033C07F
1
Función de Coste Dinámica para
Particionamiento HW/SW Multiobjetivo
Elena Pérez, J. Javier Resano, Daniel Mozos, Hortensia Mecha, Sara Román
Departamento de Arquitectura de Computadores y Automática
Universidad Complutense Madrid.
{eperez, mozos, horten, sroman}@dacya.ucm.es, javier1@fdi.ucm.es
Resumen— Uno de los problemas más relevantes dentro del
codiseño hardware/software es la elección de una función de
cotes que guíe de forma adecuada la exploración del espacio de
diseño. Para medir la calidad de un diseño se utilizan una serie
de parámetros, que identifican distintas características del
sistema. El problema surge de la necesidad de mezcla todos estos
parámetro en un único termino que se identifica con la función
de coste.
En este articulo se presenta una función de coste dinámica que
evoluciona con el algoritmo de particionamiento y adapta su
comportamiento a la situación actual de la exploración del
espacio de diseño. Esta función de coste además recoge de forma
directa e intuitiva los distintos objetivos de codiseño.
Palabras Clave— Búsqueda tabú, codiseño, función de coste,
particionamiento.
I. INTRODUCCIÓN
Por codiseño se entiende el conjunto de pasos destinados a
la realización de forma automática de un diseño híbrido,
formado por un componente software (SW) y un componente
hardware (HW). Estos sistemas constan de una interfaz que
hace posible las comunicaciones entre dichos componentes.
Analizando las características de cada una de estas
plataformas, se observa que la implementación SW tiene un
coste reducido, pero su tiempo de ejecución es considerable.
Por otra parte, la implementación HW es mucho más rápida,
pero su coste es también muy elevado. Esto obliga a los
diseñadores a trabajar con parámetros totalmente opuestos a la
hora realizar un diseño que cumpla los requerimientos
exigidos, y a la vez aumenta considerablemente del número de
posibilidades de implementación para un mismo sistema.
Teniendo en cuenta esto y mediante la utilización de las
técnicas de codiseño es posible alcanzar las restricciones tanto
temporales como de coste impuestas, combinando
adecuadamente HW y SW.
Una de las fases más importantes del proceso de codiseño
es la que decide la parte de la funcionalidad del sistema que se
va a implementar en HW y la que se va a implementar en SW.
A
esta
fase
se
la denomina particionamiento
hardware/software (HW/SW).
Una vez particionado e implementado el sistema debe
cumplir unas determinadas restricciones, por ejemplo de área
HW y tiempo de ejecución. El particionamiento tiene como
objetivo encontrar entre todas las soluciones existentes una
solución óptima con respecto a las restricciones impuestas
inicialmente.
El particionamiento es por tanto un problema de
optimización clásico con ciertas particularidades, lo cual
permite emplear algoritmos de optimización conocidos. Dado
que se trata de un problema NP-completo, su resolución
implica el uso de heurísticas de optimización para la obtención
de resultados adecuados en un tiempo aceptable.
Cada vez que el algoritmo de particionamiento obtiene una
nueva solución, la calidad de dicha solución debe ser medida
para poder compararla con el resto de las posibles futuras
soluciones. La forma más precisa de comparación es la
medición de las características deseadas en la implementación
de la solución. Pero normalmente esta implementación no está
disponible durante el proceso de particionamiento. Por lo
tanto es necesario diseñar estimadores adecuados para medir
estas características.
Tan importante como los estimadores es la utilización de la
información que proporcionan para guiar la exploración del
espacio de soluciones de forma optima. Los diferentes
estimadores se han de combinar en una única función de coste
capaz de guiar la exploración del espacio de diseño hacia una
solución óptima. Esta es por tanto una de las tareas más
importantes a la hora de diseñar una herramienta de
particionamiento. Por otro lado no existe un criterio obvio
sobre como combinar los distintos estimadores, por lo que en
general funciones de costes muy heterogéneos guían
ineficientemente la exploración del espacio de soluciones.
En este estudio se demuestra la importancia de la elección
de una función de coste adecuada. Para ello hemos diseñado
una función de coste que evoluciona con el algoritmo de
particionamiento. Además esta función de coste combina el
área HW y el tiempo de ejecución de forma realista, evitando
la combinación de parámetros heterogéneo para estimar cada
una de ellas. Para demostrar la eficiencia de nuestra función
de coste hemos desarrollado una herramienta de
particionamiento basada en el algoritmo de búsqueda tabú.
II. TRABAJO PEVIO
Durante los últimos años el particionamiento ha sido uno de
S033C07F
los campos de mayor interés dentro del codiseño HW/SW
tanto en grupos universitarios [1], [2], como en la industria
[3]. Muchos de los algoritmos tradicionales de optimización
han sido adaptados para realizar el particionamiento con
diferente éxito, aunque se ha comprobado que más que el
algoritmo en sí, lo que mide la bondad de un particionador es
la calidad de los estimadores utilizados y la adecuación de la
función de coste. Como ya se ha comentado, la función de
coste es la encargada de evaluar la calidad de cada una de las
soluciones del espacio de búsqueda candidatas a ser visitadas
durante el particionamiento. Es por tanto la función de coste la
responsable de guiar al particionamiento en la búsqueda de
una solución óptima. De la fiabilidad de la función de coste
junto con la de los estimadores, va a depender la calidad de la
solución final.
La mayoría de los sistemas de codiseño no utilizan
estimaciones directas de los parámetros que quieren medir,
habitualmente tiempo y área, sino que utilizan medidas
indirectas de los mismos, como usar el número y complejidad
de las unidades funcionales para dar una indicación del área.
Por ejemplo, en [1] se presenta una función de coste que trata
de adaptarse en cada momento a la situación del diseño, pero
en la que se realizan cálculos en los que se suman parámetros
de carácter heterogéneo. [2] presenta una función de coste
también bastante heterogénea, en la que se combinan
características tan dispares como: la carga computacional
relativa, la uniformidad del proceso en cuanto a tipos de
operaciones distintas, el paralelismo subyacente dentro del
proceso y la adecuación para la implementación SW de sus
operaciones. Para a partir de ellos estimar la cantidad de
comunicaciones entre las particiones HW y SW, la interacción
entre los nodos que se encuentran en la partición HW y la
uniformidad de los pesos asociados a los nodos. Conceptos
todos ellos muy subjetivos e imposibles de combinar
adecuadamente en una función de coste fija. La utilización de
una función de coste tan complicada de manejar para el
diseñador, ya que ha de ajustar una gran cantidad de
parámetros para combinar las distintas características en una
única expresión, no garantiza que la solución obtenida cumpla
las restricciones tanto temporales como de área impuestas
inicialmente. Esto se debe a que no se garantiza la fidelidad
entre un valor menor de la función de coste y una mejor
solución para el sistema final implementado.
En [3] la función de coste sólo considera el tiempo de
ejecución sin tener en cuenta que cuando el objetivo de
rendimiento ya se ha conseguido es interesante mejorar algún
otro parámetro de diseño.
Este artículo presenta una función de coste sencilla, fiel y
adaptable, que considera tanto el tiempo de ejecución como el
área del diseño real, tratando de mejorar en diferente grado
uno u otro, según la situación del proceso de diseño en cada
instante. Además de hacer un especial hincapié en el efecto
del coste de las comunicaciones tanto en el rendimiento como
en el coste del sistema implementado.
2
III. ARQUITECTURA DESTINO
Para la realización de este estudio se asume la utilización
de un entorno de codiseño básico formado por un
microprocesador SW y un coprocesador HW configurable, los
cuales comparten un único espacio de memoria y se
comunican mediante el bus del sistema.
El coprocesador HW y el procesador SW están trabajando
en paralelo, ya que la arquitectura no debe forzar la exclusión
mutua entre ambas plataformas. El microprocesador ofrece
además la posibilidad de interrumpir la ejecución del
programa SW cuando detecta un pulso en la señal de la línea
de interrupción. En la Fig. 1 se puede observar un esquema de
la arquitectura destino.
INT
µProcessor
Configurable
HW
Coprocessor
Shared Memory
Fig. 1. Arquitectrua destino.
En este tipo de sistemas la comunicación entre ambas
plataformas suele representar un cuello de botella importante
con respecto al rendimiento final del sistema. La influencia
negativa de las comunicaciones se pone todavía más de
manifiesto cuanto más rápidos son los componentes SW y
HW. Nuestra herramienta de particionamiento HW/SW tiene
en cuenta el impacto negativo de las comunicaciones, ya que a
la hora de definir estimadores necesarios para construir la
función de coste se han tenido en cuenta las características
reales del canal de comunicación entre particiones. Además se
ha desarrollado un planificador para manejar los conflictos de
acceso al canal de comunicación. Esta estimación del impacto
de las comunicaciones ha sido integrada dentro de la
herramienta de particionamiento HW/SW sin incrementar
significativamente el tiempo necesario para la exploración del
espacio de diseño. La aproximación utilizada para desarrollar
la planificación de acceso al canal de comunicación se
encuentra descrita detalladamente en [4].
IV. ALGORITMO DE PARTICIONAMIENTO
Para realizar el particionamiento se parte de una
especificación inicial del sistema a particionar en le que esté
aparece representado como un grafo dirigido y acíclico
denominado grafo de tareas. Una tarea representa una
determinada parte de la funcionalidad del sistema que va a ser
implementada de forma conjunta. En el grafo cada nodo se
corresponde con una tarea y cada arco representa un canal de
S033C07F
3
comunicación de datos entre las tareas de los nodos a los que
conecta.
Para realizar este estudio hemos utilizado como algoritmo
de particionamiento el algoritmo de búsqueda tabú [5].
La búsqueda tabú es un algoritmo determinista que parte de
una solución inicial e itera hasta una solución final, que ha de
cumplir unas determinas restricciones. Durante la exploración
del espacio de soluciones el algoritmo guarda información
relativa a los últimos movimientos realizados, para evitar
ciclos que podrían tener lugar si un determinado movimiento
llevase a visitar una solución que ya ha sido visitada
anteriormente. Para ello se utiliza una lista donde se
almacenan los movimientos inversos a los realizados,
denominada lista de movimientos tabú y que da nombre al
algoritmo.
La búsqueda tabú permite movimientos a soluciones más
costosas, para evitar que la exploración del espacio de
soluciones termine en mínimos locales. De esta forma
mediante la explotación de la información que almacena el
propio algoritmo acerca de la historia global de la búsqueda
estimula la convergencia hacia un óptimo global.
La búsqueda tabú es un algoritmo de vecindad, es decir,
una solución es candidata a ser visitada, si se obtiene mediante
el movimiento de un único nodo de la configuración actual de
una partición a otra, siempre que este movimiento no sea un
movimiento tabú.
V. GRAFO DE TAREAS
Una vez sintetizado, el sistema ha de alcanzar unas
determinadas cotas de rendimiento, en términos de velocidad
de ejecución y ciertas restricciones relativas al consumo de
recursos HW y SW. Estas cotas y restricciones vienen dadas
por el diseñador junto con la arquitectura destino en la que
será implementado el sistema. Todos estos parámetros se
definen durante la especificación inicial del sistema y han de
ser recogidos por la función de coste que guía el
particionamiento.
Para poder guiar el particionamiento a la consecución de
dichos objetivos se asigna a cada nodo y arco del grafo de
tareas unos determinados valores que recogen una serie de
características del sistema.
Para este estudio los valores asociados a los nodos indican
el tiempo de ejecución de la tarea a la que representan tanto si
se implementa en HW como en SW, y su área HW. Así como
los valores asociados a cada uno de los arcos recogen el coste
de la comunicación a la que representan, tanto en tiempo
como en área HW.
Para cada nodo que compone el grafo del sistema a
implementar vamos a calcular los siguientes parámetros:
• t_hwi = tiempo de ejecución del nodo i implementado en
HW.
• t_swi = tiempo de ejecución del nodo i implementado en
SW.
• a_hwi = área HW del nodo i implementado en HW.
No se ha tenido en cuenta el área SW de los nodos del grafo
de tareas, ya que se asume que el microprocesador tiene
suficiente memoria de datos e instrucciones para todos los
nodos de la partición SW. Si existe la posibilidad de que se
exceda la capacidad de la memoria tanto de datos o como de
instrucciones, el área SW debería ser incluida como una nueva
restricción que una solución valida debe cumplir.
Dado que el protocolo de comunicación se define de forma
distinta e independiente para cada uno de los sentidos de la
comunicación, el coste tanto en tiempo como en área de cada
una de las comunicaciones va a depender de la partición en la
que se encuentren los nodos origen y destino de la
comunicación. Si tanto el nodo origen como el nodo destino
pertenecen a la misma partición el coste de la comunicación es
nulo.
Para cada arco del grafo de tareas calculamos los siguientes
parámetros:
• t_cij = tiempo de ejecución de la comunicación entre el
nodo i y el nodo j, según los nodos i y j pertenezcan a HW
o SW.
• a_cij = área HW que supone la comunicación entre el nodo
i y el nodo j, según los nodos i y j pertenezcan a HW o SW.
El área SW de las comunicaciones, al igual que sucedía con
el área SW de los nodos, no es tenida en cuenta.
VI. FUNCIÓN DE COSTE
Una vez calculados los valores asociados a los nodos y
arcos del grafo de tareas se debe definir una función de coste
que los combine, de forma que guíe el particionamiento hacia
la consecución de los objetivos fijados inicialmente. Esta
función de coste además ha de ser sencilla de calcular, ya que
durante la exploración del espacio de diseño que realiza el
proceso de particionamiento vamos a visitar un amplio
numero de soluciones, y para cada posible nueva solución
intermedia es necesario calcular su valor. El algoritmo de
búsqueda tabú va a estar guiado por la minimización del valor
de la siguiente función de coste dinámica en el tiempo, que
varía según la solución actual se aproxime al cumplimiento de
los distintos objetivos del particionamiento:
C ( HW ,SW ) = Q1 ( t / T lim) + Q 2 ( a / A lim)
donde t es el tiempo de ejecución total del sistema. a
representa el área HW total del sistema. Tlim es el tiempo
máximo de ejecución del sistema. Alim es el área máxima del
sistema. Tlim y Alim son respectivamente las restricciones de
diseño para tiempo de ejecución y coste HW que ha de
cumplir el sistema una vez implementado. El área HW y el
tiempo de ejecución de una solución son estimados según las
siguientes expresiones:
t=
∑ t _ sw
( i )∈ Sw
a=
i
∑ a _ hw
( i )∈ Hw
+
∑ t _ hw
( i )∈ Hw
i
+
i
∑a_c
( ij )∈corte
+
∑t_c
( ij )∈ corte
ij
ij
S033C07F
donde corte es el conjunto de arcos que conectan las dos
particiones. t_swi es el tiempo de ejecución de la tarea del
nodo i si se implementa en SW. t_hwi es el tiempo de
ejecución de la tarea del nodo i si se implementa en HW. t_cij
es el tiempo necesario para realizar la comunicación entre las
tareas de los nodos i, j. a_hwi es el área HW de la tarea del
nodo i. a_cij es el área HW del driver necesario para realizar
la comunicación entre las tareas de los nodos i j. (i) es nodo i.
(ij) es el arco que conecta los nodos i y j.
Q1 y Q2 son los coeficientes que representan la influencia
relativa de cada uno de los dos términos que componen la
función de coste, tiempo de ejecución y coste HW
respectivamente, a la hora de seleccionar una nueva solución.
Estos dos coeficientes no son estáticos, sino que varían
durante la ejecución del algoritmo y dependen del grado de
adecuación de la solución actual al cumplimento de las
restricciones de diseño. La elección de una función de coste
dinámica viene motivada por el hecho de que una función que
se adapta a las características de la solución actual focaliza
más rápidamente la búsqueda.
Dicha función de coste dinámica nos ofrece además la
posibilidad de centrar la búsqueda en la optimización del
tiempo de ejecución o del área HW del sistema una vez
encontrada una primera solución que cumple las restricciones
iniciales de diseño. La actualización de los valores de Q1 y Q2
se lleva a cabo según la expresión de la Fig. 2, si la búsqueda
optimiza el tiempo.
if t >> Tlim then Q1 >> Q2
elsif t >≈ Tlim then
if a >> Alim then Q2 >> Q1
elsif a >≈ Alim then Q2 ≈ Q1
endif
elsif t < Tlim then
if a >> Alim then Q2 >> Q1
elsif a >≈ Alim then Q2 ≈ Q1
elsif a < Alim then Q1 >> Q2
/* 1ª solución valida encontrada */
endif
endif
Fig. 2. Pseudo-código del algoritmo de actualización de la función
de coste
De esta forma durante la exploración del espacio de
soluciones anteponemos el cumplimiento y posterior
optimización de las restricciones temporales, al cumplimiento
y optimización del coste HW. Si por el contrarío preferimos
que la búsqueda se centre primero en el cumplimiento y
optimización del área HW tendríamos una expresión idéntica
en la que se habrían reemplazado las expresiones temporales
por las expresiones de área y viceversa.
Una vez encontrada una solución que cumple las
restricciones tanto temporales como de área, los coeficientes
Q1 y Q2 son adaptados al objetivo de optimización fijado por
el diseñador.
4
VII. RESULTADOS EXPERIMENTALES
En los resultados experimentales obtenidos en este estudio
queda reflejada la importancia de la elección de una función
de coste que garantice la calidad del particionamiento
HW/SW. Para la realización de este estudio hemos
desarrollado una herramienta de particionamiento que
implementa el algoritmo de búsqueda tabú para dos funciones
de coste distintas. La primera fue aplicada por primera vez al
problema del particionamiento HW/SW en [2]. Esta función
de coste mezcla tres parámetros muy abstractos y
heterogéneos, como son, la cantidad de comunicaciones entre
las particiones HW y SW, la interacción entre los nodos que
se encuentran en la partición HW y la uniformidad de los
pesos asociados a los nodos. Estos tres parámetros son a su
vez estimados a partir de otras cuatro característica también
muy abstractas y heterogéneas: carga computacional relativa
de cada nodo, uniformidad del nodo en cuanto a tipos de
operaciones distintas, paralelismo subyacente dentro cada
nodo y adecuación para la implementación SW de sus
operaciones. Los tres parámetros que constituyen esta función
de coste a menudo compiten entre sí. Esta competencia es
regulada mediante la utilización de coeficientes, que los
diseñadores deben de determinar para controlar la influencia
relativa de las diferentes componentes. En este estudio se
muestra una comparativa entre los resultados obtenidos
utilizando la función de coste de [2] y la función de coste
dinámica descrita en el apartado anterior.
Para ello hemos realizado una gran cantidad de medidas
aplicando la herramienta de particionamiento a una aplicación
de reconocimiento de patrones. Esta aplicación realiza la
transformada de Hough [6] sobre una imagen dada, en la cual
se busca la existencia de figuras geométricas simples
predefinidas. Este tipo de aplicaciones son empleadas
normalmente en robótica y para el análisis de datos
astronómicos [7].
Para poder realizar una estimación adecuada del tiempo de
ejecución y del área HW de las comunicaciones, se ha
desarrollado un protocolo de comunicación entre las
plataformas HW y SW. Este protocolo de comunicación se ha
diseñado mediante el uso de memoria compartida e
interrupciones, teniendo en cuanta las características de la
arquitectura destino presentadas en la sección 3.
Para determinar los valores asociados a los nodos y a los
arcos del grafo de tareas se utilizan los resultados obtenidos
del estudio de la especificación inicial del sistema con
respecto a una arquitectura destino especifica y el protocolo
de comunicaciones HW/SW definido. En nuestro entorno de
cosdiseño la especificación inicial del sistema viene dada en
VHDL y C. El área HW y el tiempo de ejecución HW de cada
nodo, así como el área HW de las comunicaciones es estimado
mediante las herramientas de implementación y verificación
de XILINX Foundation. Para estimar el tiempo de ejecución
SW se ha utilizado un traductor automático ensamblador
8051/C.
Una vez completada la especificación inicial del sistema a
S033C07F
particionar en forma de grafo de tareas, dicho grafo de tareas
se pasa a la herramienta de particionamiento. Para obtener
distintas medidas se ha repetido el particionamiento para
distintas restricciones de área HW y tiempo de ejecución.
Para ilustrar este estudio se ha llevado a cabo dos conjuntos
de experimentos distintos. En el primero se ha impuesto una
restricción temporal, el algoritmo una vez encuentra una
solución que cumple las restricciones de diseño evoluciona
para mejorar el área HW. Para acotar el espacio de búsqueda
se fija también una restricción de coste HW máximo. En la
tabla I se muestran los resultados obtenidos para una
restricción temporal de 9500 unidades de tiempo
normalizadas, y distintos valores para la restricción de coste
HW máximo. La última fila de la tabla muestra el porcentaje
de optimización en área HW conseguido para la función de
coste dinámica propuesta con respecto a la función de coste
presentada en [2].
En el segundo conjunto de experimentos se ha fijado una
restricción de 350 unidades de área normalizadas y diferentes
cotas máximas para el tiempo de ejecución. Los resultados de
este conjunto de experimentos se muestran en la tabla II.
De los datos expuestos en la tabla I y en la tabla II, se
deduce que los resultados obtenidos por la herramienta de
particionamiento con la función de coste dinámica son
mejores que los obtenidos con la función de coste presentada
en [2]. Cuando el objetivo del particionamiento es cumplir la
restricción de tiempo y minimizar el área HW, nuestra función
de coste obtiene un ahorro en área superior en algunos casos
al 30% (20% aproximadamente en media), cumpliendo la
misma restricción temporal. Cuando el objetivo es cumplir la
restricción de área HW y minimizar el tiempo de ejecución,
nuestra función de coste reduce en media un 46% el tiempo de
ejecución. Esto es debido a que la función de coste dinámica
utiliza directamente los dos principales parámetros de diseño,
el área HW y el tiempo de ejecución, mientras que la otra
función de coste utiliza medidas indirectas de estos
parámetros de diseño. Por lo tanto, nuestra función de coste
tiene una mayor fiabilidad en términos de coste HW y tiempo
de ejecución que la función de coste [2], de acuerdo con la
definición de fidelidad en [8]. El echo de que en [2] la función
de coste sea el resultado de la combinación de varios factores
heterogéneos, que no reflejan las características resles de
diseño. Esta característica junto con el hecho de que dicha
función de coste no garantiza la fidelidad entre un valor menor
de la función de coste y una mejor solución para el sistema
final implementado, da lugar a situaciones en las cuales aun
existiendo una solución que cumpla las restricciones
impuestas, el algoritmo de particionamiento es incapaz de
encontrar una solución válida. Podemos observar un ejemplo
de ello en la ultima columna de la tabla I donde aun existiendo
soluciones validas la herramienta de particionamiento es
incapaz de encontrar una. Sin embargo cuando la herramienta
de particionamiento utiliza la función de coste presentada en
este articulo es siempre capaz de encontrar soluciones validas.
Esto es debido a que la convergencia fiable hacia soluciones
que representen una mejor opción de implementación es
5
mucho más fácil de conseguir utilizando funciones de coste en
las que se relaciona de forma intuitiva los objetivos
principales del particionamiento HW/SW.
Otro hecho importante a tener en cuenta es que aun
utilizando distintas funciones de coste, el número de
iteraciones es similar para cada uno de los procesos de
particionamiento realizados. Es de resaltar que con nuestra
función de coste se obtienen mejores soluciones de
particionamiento que las obtenidas con la función de coste [2]
para tiempos de computación muy parecidos.
En la tabla III y en la tabla IV se muestran los resultados
obtenidos por la herramienta de particionamiento propuesta en
este estudio. En la tabla III se presentan los resultados
experimentales obtenidos al identificar la función de coste con
la minimización del área HW, una vez se han cumplido todas
las restricciones del particionamiento. En la tabla IV se
muestran los resultados para el mismo tipo de estudio
identificando esta vez la función de coste con el tiempo de
ejecución. En la tabla III se muestra el área HW y el tiempo de
ejecución de la primera solución encontrada que cumple las
restricciones, el área HW y el tiempo de ejecución de la
solución final del particionamiento, así como el porcentaje de
optimización en coste entre ambas soluciones. En la tabla IV
se muestra el tiempo de ejecución y coste HW de la primera
solución que cumple las restricciones, el tiempo de ejecución
y coste de la solución final del particionamiento, así como el
porcentaje de optimización medio entre ambas soluciones con
respecto al tiempo.
Como ya hemos comentado el proceso de particionamiento
HW/SW guiado por muestra función de coste permite
focalizar la búsqueda en la minimización de uno de los
objetivos de diseño, una vez cumplidas las restricciones
iniciales del partricionamiento. En las tablas III y IV se
observa que el porcentaje optimización es en área HW en
media del 16%, y en tiempo de ejecución del 41% con
respecto a la primera solución encontrada que cumple las
restricciones de diseño.
VIII. CONCLUSIONES TRABAJO FUTURO
Este estudio pone de relieve la importancia de la elección
de una función de coste adecuada para garantizar la calidad de
los resultados del particionamiento HW/SW. Nuestra función
de coste dinámica analiza directamente los dos parámetros
principales de diseño, área HW y tiempo de ejecución. Por lo
tanto, esta función de coste tiene mucha más fiabilidad en
terminos de área y tiempo de ejecución que aquellas funciones
de coste que mezclan características heterogéneas.
La falta de fidelidad de este tipo de funciones de coste
puede llevar al proceso de particionamiento a realizar una
exploración ineficiente del espacio de soluciones. Además
cuando utilizamos nuestra función de coste la misma
herramienta de particionamiento es capaz de realizar una
mejor exploración del espacio de diseño minimizando el
tiempo de ejecución y el área de la solución final, sin
incrementar el tiempo de computo necesario para llevar a cabo
S033C07F
6
el proceso de particionamiento. En este articulo hemos
presentado una herramienta de particionamiento HW/SW que
minimiza el tiempo de ejecución y el área HW. En el futuro se
ampliará dicha función de coste para que considere también la
minimización del consumo de potencia del diseño como otro
nuevo objetivo de particionamiento.
Tabla I. Resultados del particionamiento para distintas restricciones de área y una misma restricción temporal,
optimizando en área para la búsqueda guiada por la función de coste dinámica.
Cota máxima de Área
350
325
300
275
250
dinámica
[2]
dinámica
[2]
dinámica
[2]
dinámica
[2]
dinámica
[2]
Función de coste
# Iteraciones algoritmo
420
407
407
441
412
405
410
423
416
446
Área solución final
236
338
250
321
244
300
250
274
223
---Tiempo solución final
9336 8892 8436 4428 8700 9216 8436 8292 8772 ---%Optimización área (dinámica respecto [2])
30,18%
22,12%
18,67%
8,76%
---Tabla II. Resultados del particionamiento para distintas restricciones temporales y una misma restricción de área,
optimizando en tiempo de ejecución para la búsqueda guiada por la función de coste dinámica.
Cota máxima de Tiempo
9500
9000
8500
8000
7500
dinámica
[2]
dinámica
[2]
dinámica
[2]
dinámica
[2]
dinámica
[2]
Función de coste
# Iteraciones algoritmo
410
424
409
420
409
421
404
435
406
436
Área solución final
276
300
284
276
276
293
300
298
276
293
Tiempo solución final
4440 9216 4440 8904 4440 7428 3996 7848 4440 7428
%Optimización tiempo (dinámica respecto [2])
51,82%
50,13%
40,23%
49,08%
40,23%
Tabla III. Resultados del particionamiento guiado por la función de coste dinámica, optimizando en área.
Cota máxima de Área
350
325
300
275
250
1ª
final
1ª
final
1ª
final
1ª
final
1ª
final
Solución
# Iteraciones algoritmo
5
232
3
270
10
258
9
209
12
233
Área solución
315
236
311
250
296
244
274
250
250
223
Tiempo solución
6372 9336 7920 8436 4920 8700 9192 8436 7512 8772
% Optimización área (final con respecto 1ª)
25,08%
19,61%
17,57%
8,76%
10,80%
Tabla IV. Resultados del particionamiento guiado por la función de coste dinámica, optimizando en tiempo.
Cota máxima de Tiempo
9500
9000
8500
8000
7500
1ª
final
1ª
final
1ª
final
1ª
final
1ª
final
Solución
# Iteraciones algoritmo
4
309
5
284
5
308
6
196
9
313
Área solución
279
276
276
284
294
276
277
300
267
276
Tiempo solución
7320 4440 8796 4440 8016 4440 7416 3996 6036 4440
% Optimización en tiempo (final con respecto 1ª)
39,34%
49,52%
44,61%
46,12%
26,44%
[7]
REFERENCIAS
[1]
[2]
[3]
[4]
[5]
[6]
“A Global Criticality/Local Phase Driven Algorithm for the Constrained
HW/SW Partitioning Problem”, A. Kalavade, E.A. Lee, Codes/Cashe'94.
“System Level HW/SW Partitioning based on simulated Annealing and
Tabu Search”, P. Eles, Z. Peng, K. Kuchcinski, A. Doboli. Design
Automation for Embedded Systems, Enero 1997.
“Hardware-Software Co-Design of Embedded Reconfigurable
Architectures”, Y. Li, T. Callahan, E. Darnell, R. Harr, U. Kurkure,
J.Stockwood, DAC’2000.
“Analyzing Communication Overhead during Hardware/Software
Partitioning” J. Resano, E. Pérez, D. Mozos, H. Mecha, J. Septién. First
International Wokshop on Embedded System Codesign ESCODES'02,
pp. 16-21 California 2002.
“Scheduling. Theory, algorithms, and systems”, M. Pinedo, Prentice
Hall, 2002.
“Introduction to Parallel Algorithms and Architectures”, F. Thomson
Leighton., pg 210-213. Morgan Kaufmann Publishers 1992.
[8]
“Applications of the Hough Transform”, P. Ballester. Astronomical Data
Analysis Software and Systems III, ASP Conference Series, Vol. 61,
1994.
“Specification and design of embedded systems”, D. D. Gajski, F.
Vahid, S. Narayan, J. Gong, Prentice Hall, 1994.
Descargar