ARQUITECTURA DE COMPUTADORES Junio de 2006 El examen es sin apuntes ni libros, sin teléfonos celulares y sin PDA. Duración: 4 horas como máximo. Publicación de notas : 27 - junio - 2006 Revisión : 29 - junio - 2006 de 10 a 11 h y de 16 a 17 h Lugar: C6E106 EJERCICIO 1: (1.5 puntos) Tenemos tres clases de bloques, A B y C, de lógica combinacional, cuyos retardos respectivos son t(A) = 50 ns. t(B) = 90 ns. t(C) = 80 ns. De cada clase de bloque disponemos de cualquier cantidad. Tenemos registros cuyo retardo es de 10 ns. Con estos elementos se realiza cierta operación, que necesita usarlos siguiendo este patrón: A B A C B Queremos realizar una sucesión ilimitada de estas operaciones, que no tienen ninguna dependencia entre ellas. RESPONDA EN LA HOJA DE RESPUESTAS, con una breve justificación. Pregunta a: Calcule la productividad en millones de operaciones por segundo y calcule el tiempo de ciclo en nanosegundos, si usamos una Unidad Funcional no segmentada que tiene 5 bloques. Pregunta b: Calcule la productividad en millones de operaciones por segundo y calcule el tiempo de ciclo en nanosegundos, si usamos una Unidad Funcional segmentada no lineal con tres etapas, en cada una de las cuales ponemos uno de los bloques disponibles. Pregunta c: Calcule la productividad en millones de operaciones por segundo y calcule el tiempo de ciclo en nanosegundos, si usamos una Unidad Funcional segmentada lineal con cinco etapas, en cada una de las cuales ponemos uno de los bloques disponibles, y son iguales entre sí los de la 3ª y la 1ª, y los de la 5ª y la 2ª. Pregunta d: Cierta Unidad Funcional segmentada no lineal utiliza un reloj de 4 MHz, y tiene una productividad de 1,6 millones de operaciones por segundo cuando realiza una sucesión ilimitada de operaciones iguales e independientes entre sí. Sabemos que, desde que comienza la 2ª operación, en cada ciclo hay siempre DOS operaciones sucesivas usando esta Unidad Funcional simultáneamente. Calcule la secuencia de latencias de inicio, que está formada por dos valores diferentes. Calcule el número de ciclos que dura cada operación. Examen, junio de 2006 1 Dep. Arquitectura de Computadores EJERCICIO 2: (3 puntos) En el lenguaje máquina de un procesador podemos distinguir el siguiente formato, clases y tipo de instrucciones: Campos de la instrucción 31 Clases ... 26 25 ... 21 20 ... 16 15 ... 12 11 ... 5 4 ... 0 Tipo 6 5 5 4 7 5 ENT RR CoOp ra rb 0 ... 0 func rc IS BR CoOp ra JMP CoOp ra 0 ... 0 0 ... 0 Cálculo Saltos relativos literal rb Descripción Saltos indexados En la siguiente tabla se describe la semántica de cada tipo de instrucción: Clase Tipo Descripción Operandos Especificación semántica ENT RR cálculo ra rb rc IS BR llamada a procedimiento ra literal incondicional ra literal CPv = CPv + 4 x ExtSig (literal) + 4 condicionales ra literal if (f[rav , CoOp]) then CPv = CPv + 4 x ExtSig (literal) + 4 v v v rc = F ( ra , rb ) rav = CPv CPv = CPv + 4 x ExtSig (literal) + 4 else CPv = CPv + 4 JMP llamada a procedimiento ra indexado ra rb 0 rav = CPv CPv = rbv + 4 rb 0 CPv = rbv + 4 donde el superíndice v indica el valor almacenado en el registro. Las instrucciones de la clase ENT leen el contenido de dos registros, efectúan un cálculo y almacenan el resultado en un registro. Las instrucciones de tipo BR calculan la dirección destino de la siguiente forma: a la dirección de la instrucción siguiente a la de secuenciamiento se le suma el campo literal especificado en la instrucción (el tamaño de una instrucción es de 4 bytes). Las instrucciones de secuenciamiento condicional evalúan además el contenido de un registro. El resultado de la evaluación se utiliza para seleccionar entre seguir en secuencia o modificar el secuenciamiento implícito. Las instrucciones de secuenciamiento de tipo JMP suman 4 al contenido de un registro y el resultado se utiliza como dirección de la siguiente instrucción que debe interpretarse. Los dos tipos de instrucciones de secuenciamiento (BR y JMP) incluyen instrucciones que almacenan la dirección de la instrucción de secuenciamiento en un registro especificado en la instrucción. El lenguaje máquina también dispone de instrucciones para acceder a memoria. Ahora bien, nosotros nos centraremos en las instrucciones que se han descrito. Para interpretar las instrucciones descritas supondremos que el procesador utiliza la siguiente segmentación. ciclos 1 2 3 4 5 CP BUS D/L ALU ES La actualización de un registro del banco de registros y del registro CP en instrucciones de secuenciamiento se efectúa en el ciclo 5 relativo al inicio de interpretación. Examen, junio de 2006 2 Dep. Arquitectura de Computadores En la siguiente figura se muestran los elementos del camino de datos del procesador segmentado y las conexiones necesarias para interpretar las instrucciones de la clase ENT. CP BUS D/L ALU BUS_DL ES DL_ALU ALU_ES M1 Despl EXTSIG MI +4 + dir inst Reloj rb 15..5 rc 1 CP CoOp ra MUXImp 0 Ed BR Rd Lb 0 EsReg Rb Ra 0 1 B 1 1 0 0 1 ALU La M2 M3 A EV 0 1 MUXREG M4 0 1 0 1 EsRegDL Dec_CoOp JMPCall DL BRI DL EvalCond EsRegALU EvalCondES EsRegES B EsReg JMP DL BR DL BRCall DL CMOV DL JMPALU BR ALU JMPCall ALU BRCall ALU BRI ALU CMOVALU CMOV ES JMP ES JMPCall ESL BR ES BRI ES BRCall ES La señal EvalCond toma el valor 1 cuando se cumple la condición. Las señales BR y JMP indican tipo de instrucción. Las señales BRI, BRCall o JMPCall indican respectivamente instrucción de secuenciamiento incondicional o llamada a procedimiento de tipo BR o JMP. La señal CMOV sólo hay que utilizarla para contestar a la pregunta e) e indica instrucción de movimiento condicional. Todas estas señales cuando se activan toman el valor 1. En las siguientes preguntas se solicita establecer conexiones entre los elementos del camino de datos para interpretar las instrucciones de secuenciamiento. Cuando se contesta una pregunta debe tenerse en cuenta que las conexiones que se establezcan deben ser compatibles con las conexiones establecidas en contestaciones anteriores. Del mismo modo la contestación de la primera pregunta debe tener en cuenta las conexiones que se muestran en el camino de datos para interpretar las instrucciones de la clase ENT. Pregunta a: Añada en el camino de datos anterior las conexiones necesarias para interpretar las instrucciones de tipo BR. Pregunta b: Añada en el camino de datos mostrado previamente, exclusivamente, las conexiones necesarias para interpretar las instrucciones de tipo JMP. Pregunta c: Especifique el control de los multiplexores MUXImp, M2, M3 y M4 teniendo en cuenta todas las instrucciones de secuenciamiento. Examen, junio de 2006 3 Dep. Arquitectura de Computadores En el registro de desacoplo BUS_DL se pueden distinguir en general varias señales o campos. Una de las señales se corresponde con los bits que codifican la instrucción que se ha leido de memoria y que se decodifica en la etapa D/L; a este campo lo denominaremos inst (ver figura). Suponga que cuando, en un riesgo de secuenciamiento, desde la etapa BUS se inyecta una instrucción NOP sólo se actúa sobre el campo inst. Las otras señales o campos transmiten la misma información que se transmitiría si no se hubiera inyectado la instrucción NOP. Pregunta d: Modifique el camino de datos para que todas las instrucciones de secuenciamiento tengan un ciclo menos de penalización debido al riesgo de secuenciamiento. Para ello sólo puede utilizar multiplexores de 2 entradas en la etapa CP. Suponiendo que el tiempo de ciclo está determinado por la etapa CP, la solución propuesta debe reducir el tiempo de ciclo. Algunos procesadores disponen de instrucciones cuya operación es condicional. El objetivo de incluir estas instrucciones en el lenguaje máquina es eliminar las instrucciones de secuenciamiento condicional en algunas secuencias de código. Con ello se pretende reducir los ciclos perdidos. Una instrucción condicional típica es la siguiente instrucción de movimiento condicional. • cmovge: mover si mayor igual a cero. El formato de estas instrucciones es el especificado para la clase ENT y la semántica es la siguiente: Clase Descripción ENT mov. condicional Operandos ra rb rc Especificación semántica if (f[rav , CoOp]) then rcv = rbv El contenido del registro ra se evalúa utilizando la condición especificada en la instrucción. Si la condición especificada se cumple, se escribe el contenido del registro rb en el registro rc. En caso contrario no se modifica el contenido del registro rc. Un registro del banco de registros se puede escribir y leer, en este orden, en el mismo ciclo. Suponga que en las instrucciones de movimiento condicional la señal EsRegDL siempre se activa en la etapa D/ L, ya que se efectúa la hipótesis de que se actualizará el registro destino. Pregunta e: Añada al camino de datos mostrado previamente, exclusivamente, las conexiones necesarias para interpretar una instrucción de movimiento condicional. Indique la función lógica que hay que implementar en el módulo B. Así mismo indique los ciclos perdidos, en función del resultado de evaluar la condición, si la instrucción consumidora del resultado producido por una instrucción de movimiento condicional está a distancia 1, 2 o 3. Examen, junio de 2006 4 Dep. Arquitectura de Computadores EJERCICIO 3: (2 puntos) Tenemos que ejecutar el código siguiente : valores iniciales: r0 = 100, r1 = 200, r2 = 5 1 2 3 4 5 6 7 r4 := M[r0 + 0] r3 := r2 - M[r0 + 4] r0 := r0 + 8 r5 := r3 - r4 M[r1 + 0] := r5 r1 := r1 - 4 saltar a 1 si (r1 > r0) LD OPRM OP OP ST OP BRC ra : = M[rb + cte] rc := ra op M[rb + cte] rc := ra op cte rc := ra op rb M[rb + cte] := ra rc := ra op cte saltar si condición (ra , rb) Tenemos un procesador segmentado lineal con 7 etapas, y sin riesgos estructurales CP B DL @ M A E la verificación de riesgos y, en su caso, el bloqueo, se hace en la etapa DL el cálculo de la dirección efectiva [rb + cte] se hace en la etapa @ el acceso a la cache de datos se hace en la etapa M el cálculo de cualquier op se hace en la etapa A la evaluación de condición y la escritura del CP por salto se hace en la etapa A Este procesador interpreta las instrucciones BRC con predicción estática No Saltar. Este procesador puede escribir (E) y leer (L) un registro durante el mismo ciclo. RESPONDA EN LA HOJA DE RESPUESTAS, con una breve justificación. Pregunta a: Calcule, mediante expresiones aritméticas, el número de iteraciones de este bucle. Pregunta b: Presente el Grafo de Dependencias completo de las 7 instrucciones de este bucle. Pregunta c: La cache de instrucciones es ideal, pero la cache de datos tiene un fallo después de cada 5 aciertos consecutivos en los accesos. Consideramos un acceso cada lectura o cada escritura en una dirección efectiva. Suponga que el primer acceso es un acierto. Calcule el cociente entre accesos fallados y accesos totales (tasa de fallos) tras completarse todas las iteraciones del bucle. Calcule cuantos fallos ocurren al ejecutarse instrucciones ST. Pregunta d: El procesador no tiene ningún cortocircuito. Cada fallo en la cache de datos provoca bloqueo durante 10 ciclos. Calcule, sin presentar ningún cronograma, el número total de ciclos que tarda en ejecutarse todas las iteraciones del bucle. Pregunta e: Ahora tenemos que añadir un cortocircuito, que debe acabar al final de la etapa DL. Presente el cronograma de una iteración y el inicio de la siguiente, para mostrar el efecto de usar ese cortocircuito. Suponga aquí que no hay ningún fallo en la cache de datos. Calcule el número de ciclos en que se reduce ahora la ejecución de cada iteración del bucle. Dibuje ese cortocircuito sobre el esquema parcial de Camino de Datos que se le facilita. Examen, junio de 2006 5 Dep. Arquitectura de Computadores EJERCICIO 4: (3.5 puntos) La figura mostra l'esquema parcial del camí de dades d'un processador segmentat amb planificació dinàmica d'instruccions. L D xD xA1 LM xA2 LA1 Banc Registres xM E @ M1 A1 E M2 MEM E A2 LA2 ALU1 ALU2 Hi han 3 ramificacions. Les instruccions d'accés a memòria s'executen en la ramificació MEM (3 cicles de latència d’execució, 1 cicle de latència de repetició); les instruccions de càlcul amb enters s'executen en les ramificacions ALU1 o ALU2 (1 cicle de latència d’execució). No hi han curtcircuits. Cada ramificació disposa de 2 camins de lectura i 1 camí d'escriptura al Banc de Registres. Un registre del banc es pot escriure i llegir, en aquest ordre, en un cicle de rellotge. En la taula següent s’indiquen les fases finals del procés d'interpretació d'una instrucció i les condicions que impedeixen l’avenç d'una instrucció a la fase posterior. D L Emissió Inici Riscs WAW, WAR i Estructural E Execució Escriptura Risc RAW Les instruccions s’emeten des de l’etapa D, en ordre de programa, cap a una de les ramificacions segons el tipus d’instrucció. En el cas de que no es pugui emetre, la instrucció es reté en el registre d’entrada de l’etapa D. En la fase d’Inici (etapes LM, LA1, LA2), les instruccions llegeixen els operants font del Banc de Registres. Una instrucció amb risc RAW es reté en el registre d’entrada a la ramificació associada; durant els cicles de retenció no es poden emetre noves instruccions cap a aquesta ramificació fins que desapareix la condició de risc. En un cicle de rellotge, el control de la segmentació determina el progrés de les instruccions en aquest ordre temporal: lògica Inici lògica Emissió 1) per cada instrucció en fase d'Inici comprova les dependències vertaderes amb instruccions que no han completat la fase d'Execució (riscs RAW) 2) comprova si es compleix alguna de les 3 condicions que impedeixen l'Emissió de la instrucció que ocupa l’etapa D. • és destí de dependència de sortida d'alguna instrucció que encara no haurà completat la fase d'Execució en aquest cicle (risc WAW) • és destí d'antidependència d'alguna instrucció que encara no haurà completat la fase d'Inici en aquest cicle (risc WAR) • no hi haurà cap ramificació disponible per a aquesta instrucció (risc Estructural) Examen, junio de 2006 6 Dep. Arquitectura de Computadores Pregunta a: Mostra el cronograma de la seqüència de 5 instruccions següent. En les instruccions que escriuen resultats en registres, l'identificador de registre destí és el primer que s'especifica. Load r5,0(r0) Add r4,r5,r4 Add r3,r3,#8 Sub r1,r1,#1 Store r4,0(r3) La figura mostra el cronograma d’execució d’una seqüència de 6 instruccions amb dependències de dades. cicles i1 i2 i3 i4 i5 i6 Instrucció 1 2 3 4 5 6 Load r1,0(r0) Load r ,0(r1) Add r2,r ,r3 Store r ,0(r ) Add r ,r5,r6 Sub r0,r0,#8 D LM @ M1 M2 E D D D D LM D 7 8 9 10 @ M1 M2 E 11 LA1 LA1 LA1 LA1 D 12 13 14 15 16 E A1 E LM LM LM LM LM @ M1 M2 D LA2 A2 E D D D D LA1 A1 E 17 18 19 20 Pregunta b: Dedueix els identificadors de registres font i destí que falten. Dibuixa el graf de dependències de dades en registres. Pregunta c: Dedueix una seqüència de 4 instruccions que al ser interpretada en aquest processador s’observi un cicle en que les tres ramificacions inicien l’execució de les instruccions simultàniament. Pregunta d: Dedueix una seqüència de 5 instruccions que al ser interpretada s’observi un cicle en que les 3 ramificacions escriuen els resultats simultàniament al banc de registres. La figura mostra un esquema de la lògica que controla l'Emissió i l'Inici de les instruccions. Les entrades de la lògica són: xM xA1 xA2 Mraw Mwaw OR Mwar xD Mestruct ID MD • • Identificadors del tipus d'instrucció (MD: Load o Store; ID: càlcul) en fase d'Emissió Identificadors i bits de validesa dels operants font i de les instruccions que no han començat la fase d'Execució (no es mostren en la figura) • Identificadors i bits de validesa dels operants destí de les instruccions que no han acabat a la fase d'Execució (no es mostren en la figura) Les sortides de la lògica de control actuen sobre els multiplexors xM, xA1, xA2 i xD. En la lògica de control es poden distingir 4 mòduls. El mòdul Mraw detecta riscs RAW de les instruccions que estan en la fase d'Inici. Els altres 3 mòduls detecten els riscs WAR, WAW i Estructurals de la instrucció en fase d'Emissió. Pregunta e: Suposant que els mòduls que detecten els riscs de dades estan dissenyats amb lògica combinacional: Quants comparadors es necessiten en el mòduls Mraw, Mwar i Mwaw? Pregunta f: Utilitzant portes lògiques, dissenya el mòdul que detecta riscs estructurals. Les entrades del mòdul són: ID, MD, xM, xA1 i xA2. Els senyals s'activen amb el valor 1. Examen, junio de 2006 7 Dep. Arquitectura de Computadores