• No results found

4.2 Tool Chain Evaluation

4.2.2 Real Use Case: Multi-Quality JPEG Encoder

A lo largo de los apartados anteriores se han expuesto todos los modelos nece- sarios para caracterizar fielmente la ejecución del procesador superescalar bajo distintas temporizaciones, empezando por la síncrona y terminando por la asín- crona insensible a retardos. También se ha detallado un modelo genérico para módulos asíncronos y su particularización en cada uno de los distintos tipos de circuito, además de los modelos para los protocolos de comunicación handshake de cuatro y dos fases.

Tanto el modelo asíncrono genérico como los modelos de protocolo se han imple- mentado con éxito en el simulador, de modo que es capaz de modelar todas las combinaciones anteriores gracias a sus parámetros de configuración. Por un lado, el simulador recibe los valores de tiempo de cómputo para cada módulo del pro- cesador. Estos valores pueden ser fijos (tc) o variables (tcv), utilizando funciones

de distribución en este último caso. Por otro lado, el simulador también recibe como parámetros los retardos de caracterización de los protocolos de dos y cuatro fases: tf v ,tack ,tsync y tf n . Como se verá en el Capítulo 5, esta capacidad permite

modelar distintas implementaciones de estos protocolos variando los valores de cada uno de estos parámetros.

En el siguiente apartado se aborda uno de los aspectos fundamentales, común a todos los modelos asíncronos: la integración de los tiempos de cómputo variables en el simulador.

4.3.

Latencia variable en el simulador arquitectó-

nico

Como se ha explicado al inicio de este capítulo, un simulador arquitectónico se sitúa en un nivel de abstracción intermedio. Este nivel, suficientemente alejado de los detalles de implementación del sistema simulado, considera particularidades del circuito que los simuladores de alto nivel obvian. Una herramienta que pre- tenda caracterizar la ejecución de un procesador asíncrono requerirá, al menos, de una caracterización arquitectónica. El motivo fundamental de este requisito

4. Simulación arquitectónica de sistemas asíncronos 117 es la necesidad de conocer el instante en que los datos de entrada llegan a cada módulo del procesador, de manera que le sea posible asignar un valor de tiempo de cómputo individual a cada dato procesado.

En el Capítulo 3 se muestra cómo las funciones de distribución de probabilidad (FDPs) permiten la caracterización de la latencia variable en circuitos. Precisa- mente ésa es la opción elegida en el simulador: la caracterización del tiempo de cómputo variable para cada uno de los módulos del procesador se realiza utili- zando FDPs.

Por tanto, la integración de las FDPs queda circunscrita exclusivamente al paso en el que se produce la asignación del tiempo de cómputo para cada dato. En ese sentido, ocurrirá que los retardos que tengan una mayor probabilidad asociada en la función de distribución se asignarán en más ocasiones que aquellos retardos con menor probabilidad. Como resultado, se obtiene una latencia variable según el patrón que marca la FDP.

El problema consiste entonces en aplicar un algoritmo eficiente que sea capaz de seleccionar aleatoriamente un retardo de la función de distribución teniendo en cuenta las probabilidades que ésta asocia a cada retardo. Para solucionar este problema se ha utilizado una variante del algoritmo de selección proporcional de la ruleta [DeJ75], proveniente del campo de los algoritmos genéticos, y cuya aplicación en el simulador se describe a continuación.

La idea consiste en asignar a cada uno de los retardos considerados por la función de distribución una porción de una ruleta, siendo el tamaño de la porción propor- cional a la probabilidad asignada a cada retardo. Del mismo modo que la suma de las probabilidades de la función de distribución siempre se supone normalizada a 1, la suma del tamaño de todas las porciones de la ruleta será igual al tamaño de la ruleta, T .

Para determinar el valor de T se utiliza, en este simulador, el número de posiciones decimales de los valores de probabilidad de la función de distribución, denotado como d. El tamaño de la ruleta será, entonces:

T = 10d (4.14)

118 4.3. Latencia variable en el simulador arquitectónico

Figura 4.14: Construcción de la ruleta para el algoritmo de selección a partir de una función de distribución sencilla, que se muestra en la Figura 3.2. Los valores de probabilidad tienen dos decimales, por lo que el tamaño de esta ruleta es 100. Cada porción representa a uno de los retardos de la función de distribución, mostrando un tamaño igual al valor de probabilidad del retardo multiplicado por 100. En la parte inferior, la leyenda muestra los retardos, en unidades de tiempo, asignados a cada porción de la ruleta.

100; si las probabilidades tienen tres cifras decimales, T tomará el valor 1000, y así sucesivamente. Esto hace que, incluso tomando valores de probabilidad de cinco decimales, el tamaño de la ruleta siempre sea muy pequeño en comparación con el tamaño de una estructura que almacenase todos los retardos posibles junto a su valor de probabilidad.

El tamaño de cada porción de la ruleta será igual al producto del valor de pro- babilidad del retardo que representa, multiplicado por T . En la Figura 4.14 se muestra un ejemplo de construcción de la ruleta a partir de la función de dis- tribución de la Figura 3.2. En este ejemplo los valores de probabilidad tienen dos decimales, por lo que el tamaño de la ruleta es 100, y cada porción tiene un tamaño igual al valor de probabilidad que representa multiplicado por 100. Para asignar un retardo a un dato, el simulador generará un número aleatorio entero entre 1 y T , que corresponderá a una posición de la ruleta. Esta posición siempre pertenecerá a una porción, asignada a su vez a un retardo. El algoritmo de selección, por tanto, empleará un tiempo de búsqueda acotado y pequeño. Además, gracias a la transformación hecha al construir la ruleta, la generación

4. Simulación arquitectónica de sistemas asíncronos 119 de números aleatorios se simplifica, puesto que se realiza sobre valores enteros. La construcción de la ruleta se realizaría en uno de los pasos iniciales de la ejecu- ción del simulador. Cada ruleta ocupa un espacio contenido, y considera tantos retardos como indique la función de distribución, que son los mismos que se de- terminó al fijar la granularidad del histograma del que proviene (ver Capítulo 3).

Esta integración, por tanto, resulta eficiente en términos de complejidad compu- tacional del algoritmo de selección utilizado, puesto que es constante. También resulta eficiente en términos de espacio extra necesario para alojar las estructuras de datos utilizadas, dependiente de la precisión decimal de las probabilidades.

Related documents