Práctica 7



PRÁCTICA 7: windlxv (1)

- Por Benito Jiménez -



1- DESARROLLO DE LA PRACTICA

-Ejemplo 1: dependencias de datos tipo RAW

Ejecute el programa ciclo a ciclo y observe las detenciones que se producen en el cauce debido a las dependencias. ¿Cuál es en este cauce la latencia de emisión de las instrucciones aritmético-lógicas? ¿La escritura y la lectura de los operandos en el banco de registros se realizan en el mismo o en distinto ciclo?

Las instrucciones aritmético-lógicas tienen 5 fases normalmente, aunque puede haber bloqueos y necesitan más para completarse. La latencia de emisión son los ciclos que hay entre una instrucción y otra.

En esta ocasión hay 2 ciclos entre una instrucción aritmético-lógica y la siguiente. Ademas, la escritura se realiza en un ciclo y la lectura en otro.

Una vez ejecutado el programa completo, indicar:

a) Número total de ciclos de ejecución y CPI

29 ciclos con una CPI de 1.993 ciclos por instrucciones.

b) Número (de ciclos) y distribución de las detenciones (stalls)

En 10 ciclos hubo detenciones al decodificar las instrucciones

c) Número total de ciclos de ejecución, CPI, número (de ciclos) y distribución de las

detenciones y ganancia del rendimiento al emplear adelantamiento de resultados (data forwarding)

Al activar el adelantamiento de resultados el número de ciclos disminuye a 19.

El CPI es de 1.267 ciclos y no hay detenciones.

Usando esto el rendimiento es mayor ya que se necesitan un menor número de ciclos para realizar las mismas instrucciones.




-Ejemplo 2: dependencias de datos tipo RAW

Inicialice los registros r2 y r3 con los valores 0x1002 y 0x6, respectivamente. Igualmente, inicialice las posiciones de memoria 0x1004 y 0x1008 con los valores 0x1f y 0x20, respectivamente.

Sin ejecutar el programa en el simulador, determine los valores que almacenarán los registros r1, r4, r5, r6 y r8 al finalizar su ejecución. Indique también la dirección de memoria en la que se almacenará el contenido del registro r5. Una vez ejecutado el programa en el simulador compruebe estos resultados.

Ejecute el programa ciclo a ciclo y observe las detenciones que se producen en el cauce debido a las dependencias. ¿Cuál es en este cauce la latencia de emisión de las instrucciones aritmético-lógicas? ¿Y para las instrucciones de carga?

El registro R5 será almacenado en la dirección de memoria 0x1010.

La latencia de emisión será de 1 ciclo para las aritmético-lógicas y de 3 para las de carga.

Una vez ejecutado el programa completo, indicar:

a) Número total de ciclos de ejecución y CPI

25 ciclos y 1.923 ciclos por instrucción.

b) Número (de ciclos) y distribución de las detenciones

8 detenciones totales, todas de lectura después de escritura

c) Número total de ciclos de ejecución, CPI, número (de ciclos) y distribución de las detenciones y ganancia del rendimiento al emplear adelantamiento de resultados

Con adelantamiento de resultados necesitará el programa 19 ciclos, tendrá una CPI de 1.462 ciclos por instrucción y dos detenciones en la fase de ejecución ambas.

Por lo tanto vemos que tendrá un mayor rendimiento al necesitar 6 ciclos menos y vemos que es más rápido al poder ejecutar 1.462 ciclos por instrucción respecto a los 1.923 que ejecutaba antes.

d) Al emplear adelantamiento de resultados, ¿cuáles serían las latencias de emisión para las instrucciones aritmético-lógicas y para las instrucciones de carga?

La latencia de emisión para las aritmético-lógicas sería de 1 ciclo mientras que para las de carga de 2 ciclos.





-Ejemplo 3: dependencias de tipo estructural

Ejecute el programa ciclo a ciclo y observe las detenciones que se producen en el cauce debido a las dependencias.

a) Número total de ciclos de ejecución y CPI

18 ciclos de ejecución y 3 ciclos por instrucciones.

b) Número (de ciclos) y distribución de las detenciones

No hay detenciones.

c) Ganancia del rendimiento al segmentar las unidades funcionales de punto flotante

Segmentando las unidades funcionales de punto flotante necesitaremos 15 ciclos de ejecución y una CPI de 2.5 ciclos por instrucción, por lo que obtendremos un mayor rendimiento a pesar de que en de esta forma habrá 3 detenciones en la fase de ID.





-Ejemplo 4: reordenación de datos

Para este ejemplo considere una latencia de 3 ciclos para la suma y la multiplicación y de 9 ciclos para la división. Unidades funcionales sin segmentar y adelantamiento de resultados desactivado.

a) Número total de ciclos de ejecución y CPI del programa inicial

86 ciclos y una CPI de 7.167 ciclos por instrucciones.

b) Número de ciclos perdidos por dependencias tipo RAW en el programa inicial

35 detenciones, todas de tipo RAW

c) Ganancia del rendimiento al reordenar las instrucciones

-Si reordenamos las instrucciones el programa necesitará 73 ciclos y tendrá una

CPI de 6.083 ciclos por instrucciones, por lo que el rendimiento será mayor al necesitar 13 ciclos menos y al ser capaz de hacer más de un 1 ciclos en cada instrucción más que el programa inicial. Además, de esta formas el número de detenciones se reduce a 17 de tipo RAW





2- GUIÓN PARA PRESENTACIÓN

INTRODUCCIÓN

En esta práctica vamos a trabajar con la arquitectura DLX, estudiada en el tema 5 de la teoría de la asignatura de arquitecturas de computadores.

Antes que nada vamos a nombrar alguna de las características principales

de la arquitectura DLX para conocerla algo mejor.

Consta de un sencillo repertorio de instrucciones de carga/almacenamiento.
Basado en un diseño de segmentación (pipelining) eficiente.
Repertorio de instrucciones fácilmente decodificables.
Tiene la eficiencia como objeto del compilador.

MATERIAL NECESARIO

El software que usaremos es el WinDLXV (Windows DeLuXe Vectorial), que funciona bajo entorno Windows y que simula el cauce del procesador DLXV, y que lo tenemos disponible en el campus virtual, junto a su manual.

En la práctica se propone introducir una configuración de partida en el software previamente mencionado, la cual se introduce de forma fácil, ya que el programa es de pocas opciones e intuitivo.A continuación se muestra una captura de pantalla en la que podemos ver el menú de configuración donde tenemos que meter los parámetros indicados en el manual de la práctica:

A partir de ahí ya sólo es comprobar los resultados e indicar los datos que se requieren, como son por ejemplo los números de ciclos de ejecución de un programa, sus CPI, stalls, o la ganancia que se tiene cuando se activa la opción “adelanto de resultados”, además de algunos otros datos interesantes.

A continuación se muestra una captura del software para que podamos observar los distintos apartados del mismo.


REFLEXIÓN SOBRE LA PRÁCTICA

Pienso que no existe dificultad alguna para realizar la práctica, ya que se ofrece tanto una buena introducción sobre la arquitectura DLX como un buen manual del software necesario para el desarrollo de la práctica.

Respecto a los conocimientos adquiridos decir que ha sido interesante ya que hemos podido ver a fondo el funcionamiento de dicha arquitectura, y que no habíamos podido estudiar en la teoría de la asignatura.

No hay comentarios:

Publicar un comentario