Sie sind auf Seite 1von 3

Universidad simn Bolvar Departamento de Electrnica y Circuitos / Seccin de Sistemas Digitales EC3731 Arquitectura del Computador II Trimestre Abril

l Julio de 2008 Prctica #2 Procesadores de Repertorio de Instrucciones Reducido (RISC) y Segmentacin de Cauce Objetivo: Entender el funcionamiento de los procesadores de Repertorio de Instrucciones Reducido (RISC), incluyendo el cauce segmentado. Entregas: Pre-informe: Mircoles 21/05/2008 Funcionamiento: Mircoles 21/05/2008 Informe: Mircoles 28/05/2008 Descripcin Se estudiarn los lenguajes de programacin y capacidades bsicas de 2 procesadores, de Repertorio Instrucciones Reducido (RISC). Los procesadores son: MIPS DLX de Cauce segmentado de 5 etapas (versin simplificada del MIPS de propsito educacional) Se escribirn programas en ensamblador para los dos procesadores, y se realizarn las simulaciones correspondientes que permitan validar los programas, as como analizar la programacin en Lenguaje Ensamblador, compilacin y ejecucin en los procesadores. Para el caso especfico del procesador DLX, se estudiarn el comportamiento del Cauce Segmentado (pipeline) para diversas situaciones, como los riesgos de datos (uso de Forwarding), y el manejo del riesgo de control (saltos) como el uso de predictores de salto, Atascos (Stalls) y Saltos retardados (Delay Slot). Preparacin 1. Para los procesadores MIPS bsico, y el DLX, investigue y resuma brevemente las caractersticas que los incluye en la categora de procesadores RISC: nmero y uso de registros, direccionamiento de memoria, tamao y formatos del conjuntos de instrucciones, estructura interna y segmentacin de Cauce. 2. Investigue y pruebe las capacidades de edicin de programas, simulacin, determinacin de parmetros de corrida, como ciclos, uso de registros, de memoria, los simuladores, que se pueden encontrar en: a. MARS: Simulador para MIPS: http://prof.usb.ve/odcastro/cursos/ec3731/soft/mars.jar b. DlxIDE: Simulador para DLX: http://prof.usb.ve/odcastro/cursos/ec3731/soft/dlxide.zip 3. MIPS en MARS: Utilizando la ayuda del simulador, y los conocimientos sobre MIPS necesarios, escriba un programa en ensamblador que permita crear una lista enlazada simple, que agregue 5 elementos a esta lista enlazada, y que la funcin que realice la inclusin de cada elemento, introduzca el nuevo elemento de modo que la lista se mantenga

ordenada, numricamente, de mayor a menor. Utilice las llamadas a sistema necesarias para visualizar resultados. Siga como ejemplo el uso de estas llamadas en el programa de ejemplo fibonacci.asm y en la ayuda del simulador MARS. El cdigo de ejemplo se encuentra en:
http://prof.usb.ve/odcastro/cursos/ec3731/soft/fibonacci.asm

Consideraciones de implementacin: Implemente la lista en direcciones de memoria que por defecto se encuentren en el segmento de datos del MIPS, segn el simulador MARS. Verificar las direcciones de memoria que se reservan por defecto al utilizar directivas como .word. La inclusin de un nuevo elemento en la lista enlazada debe ser una subrutina, tal como se implementa en C (una funcin), pasndosele como parmetro el valor del dato relacionado con la Lista. La inclusin de 5 datos en la Lista ser, en consecuencia, realizado en la rutina principal (main), quien llamar 5 veces a la subrutina, con 5 valores diferentes como parmetro. Use como gua, para dar salida a los elementos de la Lista Enlazada, al final del programa, la forma en la que se le da salida a los datos de fibonacci en fibonacci.asm Siga como gua la implementacin clsica de listas enlazadas en Lenguaje C, donde la sera algo como:
Apuntador a lista Puntero a Valor Siguiente Puntero a Valor Siguiente Puntero a Valor Siguiente NULL

Que se puede implementar en su forma mas simple como un elemento descrito como:
Struct elemento { int valor; struct elemento *siguiente; };

Y un conjunto de funciones (subrutinas) que ayudan a operar sobre la lista, como:


/* Insertar un nuevo elemento en la lista. El lugar de insercin se decide internamente, de modo que se mantiene ordenada la lista lista, de mayor a menor */ void insertar_elemento( struct elemento *lista, struct elemento *nuevo); /* Eliminar elemento a_eliminar de la lista lista */ void eliminar_elemento( struct elemento *lista, struct elemento *a_eliminar ); /* Muestra en consola la lista lista */ void mostrar_lista( struct elemento *lista );

4. DLX en DLXIDE: a. Utilizando la Ayuda del simulador DLXIDE, analice y comprenda el ejemplo apy.s incluido con el simulador DLXIDE, de modo que sirva de base para escribir su propio cdigo posteriormente. b. Escriba un programa en lenguaje ensamblador de DLX que realice la tarea mostrada en el fragmento de Lenguaje C del recuadro. Recuerde usar slo instrucciones y directivas incluidas en la Ayuda del Simulador DLXIDE para garantizar la ejecucin en el

Laboratorio. Se sugiere usar como plantilla el programa de ejemplo apy.s incluido con el simulador. Se escribir un programa bsico, y tres modificaciones: i. Programa Bsico que no toma en cuenta los riesgos ni optimizaciones posibles del pipeline del DLX. ii. Modificacin 1 del Programa Bsico que aprovecha el uso de la configuracin Delay Slot 1 del DLX. iii. Modificacin 2 del Programa Bsico que aprovecha el uso de la configuracin Delay Slot 3 del DLX. iv. Modificacin 3 del Programa Bsico que aprovecha el uso de la configuracin Delay Slot 3 + Forwarding del DLX, incluyendo posible reordenamiento de instrucciones que permita la eliminacin de burbujas que hayan aparecido en el Programa Bsico.
int int y = x = for i, x, y; A[32],B[32],C[32]; 2; 3; (i=0;i<32;i++){ y += 2; A[i] = B[i]+C[i]+D[i]+ x ;

Laboratorio 1. Pruebe la ejecucin de programas en MARS con el ejemplo inicial fibonacci.asm. 2. Pruebe la ejecucin del programa solicitado Lista enlazada. COmpruebe su correcto funcionamiento. 3. Pruebe la ejecucin de programas en DLXIDE utilizando el demo apy.s analizado en la parte 4. 4. Ejecute los programas de la parte 4(b) del prelaboratorio (DLX en DLXIDE), en el simulador DLXIDE (slo se necesita descomprimir el simulador y hacer doble click en el ejecutable dlxide.exe). Para cada programa, reconfigure el procesador con las opciones de manejo de saltos como Stalls, Delay Slot 3, Delay Slot 1, Predict Not Taken) y Forwarding correspondiente y responda: a. Haga una tabla comparativa del nmero de ciclos empleados hasta terminar el programa con el siguiente formato (se sugiere utilizar la ventana de Estadisticas del simulador DLXIDE) :
Configuracin Numero de ciclos totales Explicacin detallada del nmero de ciclos en funcin de atascos, burbujas, flush, etc.

Material de Apoyo: - Simulador DLXIDE (copia local): http://prof.usb.ve/odcastro/cursos/ec3731/soft/dlxide.zip - Documentacin de clases del curso EC3731: http://prof.usb.ve/odcastro/cursos/ec3731/ - Tutorial de DLX: http://www.cs.iastate.edu/~prabhu/Tutorial/PIPELINE/DLX.html

Das könnte Ihnen auch gefallen