ARQUITECTURA DE COMPUTADORES Junio de 2005 EJERCICIO 1: (3 puntos) Una unidad funcional segmentada multifunción (UFS) tiene 4 etapas y puede realizar tres tipos diferentes de operaciones, siguiendo las Tablas de Reserva (TdR) que se muestran : ciclos etapas 1 A B 2 3 ciclos 4 X etapas 1 A X C B X D 3 X ciclos 4 5 6 7 X X X D etapas 1 A X C X OPa 2 X 2 4 X X B D OPb 5 6 X C X 3 X X X OPc El retardo de la lógica combinacional de cada etapa es, respectivamente, de 154 ns, 196ns, 180ns y 170 ns. El retardo de cada registro separador de desacoplo es de 4 ns. RESPONDA EN LA HOJA DE RESPUESTAS : Pregunta a: Calcule la secuencia óptima de latencias de inicio, cuando UFS realiza una sucesión ilimitada de operaciones, todas del tipo OPb. Pregunta b: Calcule la latencia media mínima, cuando UFS realiza una sucesión ilimitada de operaciones, todas del tipo OPc. Pregunta c: Calcule el tiempo de ciclo en ns. y la frecuencia en MHz, de UFS. Pregunta d: Calcule la velocidad de UFS, cuando realiza una sucesión ilimitada de operaciones repitiendo la terna OPa OPb OPc siempre en este orden, medida en MOPS (millones de operaciones por segundo). Pregunta e: Calcule la ganancia de UFS sobre una unidad funcional no segmentada construida con la misma lógica combinacional, cuando realizan una sucesión ilimitada de operaciones repitiendo la terna OPa OPb OPc siempre en este orden. Pregunta f: Calcule el tiempo (en seg.) que tarda UFS en realizar 4 millones de operaciones, todas del tipo OPc. Examen, junio de 2005 1 Dep. Arquitectura de Computadores Pregunta g: Calcule la productividad de UFS, en función del número (n) de operaciones, cuando realiza una sucesión de operaciones repitiendo la pareja OPb OPc siempre en este orden. Considere n par. Pregunta h: Calcule la productividad ideal de UFS, cuando realiza una sucesión ilimitada de operaciones, que son todas del tipo OPa. Pregunta i: Calcule el número mínimo (NM) de operaciones, todas del tipo OPa, que debe realizar UFS para alcanzar el 90% de la productividad ideal calculada en el anterior apartado. Otra unidad funcional segmentada multifunción (UFSlinc) es igual que la UFS pero con dos etapas más, ya que se añaden copia de la C y copia de la D. De esta manera consigue realizar de forma lineal ( sin conflictos, 6 ciclos y 6 etapas) cualquier sucesión de operaciones OPc. Las Tablas de Reserva de las operaciones se modifican para usar las 6 etapas de la forma más eficaz posible y sin cambiar la cantidad de ciclos (4 para las OPa y 7 para las OPb). RESPONDA EN LA HOJA DE RESPUESTAS : Pregunta j: Calcule la latencia media mínima, cuando UFSlinc realiza una sucesión ilimitada de operaciones, todas del tipo OPb. Pregunta k: Calcule la energía (en julios) para que UFSlinc realice tres mil millones de operaciones, todas del tipo OPb, sabiendo que su potencia es de 50 w. Pregunta l: Calcule la relación entre tensiones de alimentación V(UFSlinc) / V(UFS) si ambas tienen igual potencia. Sabemos que UFSlinc tiene la misma frecuencia y tiene el doble de capacidad efectiva equivalente que UFS. EJERCICIO 2: (3 puntos) En la siguiente figura se muestra la segmentación en etapas del proceso de interpretación de las instrucciones en un procesador. ciclos 1 2 3 4 5 6 etapas CP B D/L ALU M ES La funcionalidad de las etapas y recursos básicos se describen en la siguiente tabla. ETAPA FUNCIONALIDAD ETAPA FUNCIONALIDAD CP determinar el CP ALU operación aritmético-lógica B búsqueda de la instrucción M acceso a memoria de datos D/L decodificación, lectura de registros ES escritura en el banco de registros o en el registro CP Las instrucciones de secuenciamiento, condicionales e incondicionales, actualizan el registro CP en la etapa ES. El conjunto de instrucciones del procesador puede interpretarse sin que se produzcan riesgos estructurales. En el mismo ciclo se puede escribir y leer, en este orden, un registro del banco de registros. Riesgos y actuación En la etapa D/L se detectan los riesgos de datos y de secuenciamiento y se actúa para respetar la semántica del lenguaje máquina. Examen, junio de 2005 2 Dep. Arquitectura de Computadores Cuando se produce un riesgo de datos se bloquea la interpretación de la instrucción que ocupa la etapa D/L y esta retención se propaga a las instrucciones que están en las etapas previas. Durante los ciclos de bloqueo se inyectan, mediante circuitería, instrucciones NOP desde la etapa D/L hacia la etapa ALU. Cuando se detecta un riesgo de secuenciamiento se suspende la interpretación de instrucciones posteriores a la instrucción de secuenciamiento. La suspensión perdura hasta que se actualiza el registro CP con la dirección de la siguiente instrucción que debe interpretarse. Las etapas CP y B siguen de forma autónoma calculando una dirección y buscando una instrucción. La instrucción buscada en memoria se descarta, ya que durante los ciclos de suspensión se inyectan, mediante circuitería, instrucciones nop desde la etapa B hacia la etapa D/L. Código En el procesador segmentado descrito se interpreta la siguiente secuencia de instrucciones. 1$: 20 load R1, X(R2) 24 load R9, X (R5) 28 beq R1 1$ 32 load R4, X(R1) 36 add R6, R4, R1 40 sub R7, R6, R8 44 load R10, X(R6) 48 add R11, R1, R10 Supondremos en todas la preguntas que el salto es no tomado. Esto es, no se cumple la condición. Visualización del progreso de las instrucciones en un diagrama temporal Para representar una instrucción que se retiene en una etapa se utilizan varias filas. Cada vez que se retiene una instrucción en una etapa se utiliza una nueva fila. En esta nueva fila se empieza la representación en el ciclo siguiente al de retención, indicando la etapa en la cual está la instrucción. Si se sigue produciendo una acción de retención se utiliza una nueva fila. Desde la etapa más avanzada de la segmentación, en la cual se produce la retención, se inyecta una instrucción nop al finalizar el ciclo de retención. Esta instrucción nop se propaga por todas las restantes etapas. Para visualizar esta instrucción nop en el diagrama temporal se utilizará el acrónimo nop, en lugar del acrónimo de etapa, una vez inyectada la instrucción nop. Para representar el descarte de instrucciones posteriores a una instrucción de secuenciamiento se utilizará el acrónimo nop, en lugar del acrónimo de la etapa, una vez se ha inyectado la instrucción nop. Un ciclo perdido se identificará en el ciclo en que finaliza una instrucción nop inyectada por el hardware. Estos ciclos se mostraran en el diagrama temporal en la parte inferior indicando el tipo. Para los riesgos de datos utilice la etiqueta D y para los riesgos de secuenciamiento la etiqueta S. Así mismo, en la columna etiquetada con la palabra instrucción indique la instrucción cuya interpretación se está representando en la fila correspondiente. Pregunta a: Muestre en un diagrama temporal la interpretación de la secuencia de instrucciones previa. Tenga en cuenta cómo se ha descrito la forma de visualizar la interpretación de las instrucciones. Así mismo, indique los ciclos perdidos por riesgos de datos y de secuenciamiento. La última instrucción cuya interpretación debe mostrarse, incluyendo la escritura en el banco de registros, es load R10, X(R6). En el procesador descrito se añaden cortocircuitos desde las etapas ALU y M a la etapa D/L. En la siguiente figura se muestra un diagrama con su identificación. Examen, junio de 2005 3 Dep. Arquitectura de Computadores D/L ALU M DL_ALU BUS_DL ES ALU_MEM MEM_ES 3 0 0 0 4 La 2 0 0 Reloj Ldm Edm A 0 1 1 dir ALU 1 1 MD B 0 EsMem MUXA EsReg Rb Ra 1 1 1 MUXB Ed BR Rd Lb MUXData literal 1 Reloj EV Además, se añade la característica de utilizar predicción fija en las instrucciones de secuenciamiento condicional y el cálculo de la dirección destino del salto, en instrucciones de secuenciamiento condicional e incondicional, se efectúa en la etapa D/L. Para predecir el sentido se utiliza el signo del literal y esta predicción se utiliza en la etapa D/L para establecer el secuenciamiento predicho. La comprobación de la predicción se efectúa en la etapa ALU (que etiquetamos CPre) y en caso de error de predicción, el registro CP se actualiza con la dirección correcta cuando la instrucción de secuenciamiento está en la etapa ES (que etiquetamos Rec). ciclos 1 2 3 4 etapas CP B D/L CPre 5 6 Rec Pregunta b: Muestre en un diagrama temporal simplificado, sin mostrar la inyección de instrucciones nop, la interpretación de TODA la secuencia de código del enunciado. Indique los ciclos perdidos por riesgos de datos y de secuenciamiento. Así mismo, en el ciclo que se utilice un cortocircuito indique el cortocircuito utilizado mediante el número que tiene en la figura previa. Considere que la codificación de las instrucciones es la siguiente. load rd, #literal (rb) add/sub rd, ra, rb br ra, #literal En una operación de escritura a un banco de registros se suministra un identificador de registro y un dato. El identificador de registro (Rd) se decodifica por el decodificador y la salida del decodificador activa la señal de escritura en un registro del banco de registros (Sel), condicionada al permiso de escritura (EsReg). Entonces, cuando llega el flanco ascendente de la señal de reloj se almacena el dato (Ed) en el banco de registros. Reloj EsReg Ed 0 1 ... MUX Q La ... D E C O ... Rd Ra C Sel registro D Banco de registros 7 Desde el punto de vista de una operación de lectura, la salida de los registros se conecta a un multiplexor. Para leer un valor se utiliza el identificador de registro (Ra) que determina cuál de las entradas del multiplexor se selecciona (La). El retardo de los componentes del banco de registros se indica en la siguiente tabla. COMPONENTE RETARDO en u.t. COMPONENTE DECO 10 Escritura en el registro 6 AND 1 MUX 10 Examen, junio de 2005 4 RETARDO en u.t. Dep. Arquitectura de Computadores En el camino de datos de un procesador segmentado observamos las conexiones que se muestran en la siguiente figura. Las etiquetas Rd, Ed y EsReg indican respectivamente identificador de registro destino, dato y permiso de escritura. La etiqueta Ra es el identificador del registro que se quiere leer y “La” es la salida del multiplexor utilizado en operaciones de lectura en el banco de registros. D/L ALU BUS_DL M ES DL_ALU ALU_M M_ES Rd BR Ed Rd EsReg Ed La Ra Reloj EsReg not Reloj El retardo del inversor y de los registros de desacoplo es 1 u.t. Pregunta c: Suponga que se quiere poder leer el valor escrito en ese mismo ciclo en un registro. Muestre en un ciclo de la señal de reloj el retardo de los componentes. Con el objetivo de poder reducir el tiempo de ciclo, la actualización de un registro del banco de registros se efectúa utilizando el flanco ascendente de la señal de reloj y ello requiere modificar el conexionado de las señales utilizadas para efectuar una operación de escritura, lo cual se muestra en la siguiente figura. El retardo del buffer es 1 u.t. D/L ALU BUS_DL DL_ALU M ES ALU_M Rd BR Ed M_ES Rd EsReg Ed La Ra Reloj EsReg buffer Pregunta d: Suponga que se quiere poder leer el valor escrito en ese mismo ciclo en un registro. Muestre en 2 ciclos consecutivos de la señal de reloj el retardo de los componentes. EJERCICIO 3: (4 puntos) Un processador que interpreta els següents tipus d'instruccions Fop Fd = Fa op Fb Eop Rd = Ra op Rb FLoad Fd = M[Rb+d] Load Rd = M[Rb+d] FStore M[Rb+d] = Fa Store M[Rb+d] = Ra FBcond si cond (Fa) PC = PC +d altrament PC = PC+4 Bcond si cond (Ra) PC = PC +d altrament PC = PC+4 està segmentat en les següents etapes cicles 1 2 3 etapes PC B D/L 4 5 6 7 ALU ES S M1 M2 ES X1 X2 X3 X4 8 Eop Load, Store, FLoad, FStore, Bcond, FBcond ES Fop La figura mostra el camí de dades corresponent a la part d'execució de les instruccions. Hi han 3 rami- Examen, junio de 2005 5 Dep. Arquitectura de Computadores ficacions: ENT executa les instruccions de càlcul amb enters; MEM executa les instruccions d'accés a memòria i els salts condicionals; PF executa les instruccions de càlcul amb punt flotant. Els mòduls etiquetats com XCE i XCPF contenen multiplexors per encaminar dades des de les sortides de les ramificacions als registres d'entrada de les ramificacions. DL E ALU Rb XCE 0 1 b Ra ENT a S M1 M2 E MEM d mux FEav X1 Fa XCPF Fb X2 X3 X4 E a PF b 2 3 Pregunta a: Tenint en compte els recursos del camí de dades de la figura i suposant que el processador inicia la interpretació d'una instrucció cada cicle de rellotge, determina: el nombre màxim d'instruccions que poden estar simultàniament en fase d'escriptura el nombre màxim d'instruccions que poden estar simultàniament en fase d'execució el nombre màxim d'instruccions en procés d'interpretació Pregunta b: Suposant que l'etapa de búsqueda subministrés cada cicle 3 instruccions a l'etapa DL (una instrucció per cada ramificació), calcula: el nombre mínim de camins de lectura a cada Banc de registres el nombre màxim d'instruccions que poden estar simultàniament en fase d'escriptura el nombre màxim d'instruccions que poden estar simultàniament en fase d'execució Cada Banc de Registres, que no es mostra en la figura, disposa de 2 camins de lectura i 2 camins d'escriptura. Cada Banc permet també l'escriptura i lectura d'un mateix registre en un cicle de rellotge. Els riscs de dades i de seqüenciament es detecten en l'etapa DL. La detecció d'un risc de dades impedeix el progrés de les instruccions en les etapes DL, B i PC fins que desapareix la condició del risc. Un risc de seqüenciament es resol descartant les instruccions buscades fins que s'actualitza el Comptador de Programa amb l'adreça de la instrucció que segueix a un salt condicional (etapa S). El mòdul FEav avalua la condició. En el camí de dades no es mostra el subministre d'adreces a la etapa PC. Aquest processador executa el programa P: for (i=1; i<N; ; i++) { x[i]=x[i]+x[i-1]; } for: FLoad FLoad FAdd FStore Add Sub fi: bne f0,0(r0) f1,-8(r0) f1,f1,f0 f1,0(r0) r0,r0,r1 r2,r2,r3 r2,for ;f0 ← mem[r0+0] ;f1 ← mem[r0-8] ;f1 ← f1 + f0 ;mem[r0+0] ← f1 ;r0 ← r0 + r1 1 ;r2 ← r2 - r3 3 ;si (r2≠0) salta a for Valors inicials: r0 = @x[1]; r1 = 8; r2 = N-1; r3 = 1 Examen, junio de 2005 6 Dep. Arquitectura de Computadores Pregunta c: Mostra el cronograma d'una iteració del bucle i de la primera instrucció de la següent iteració. Indica els curtcircuits utilitzats. Un curtcircuit s'identifica mitjançant la parella o-d, on o val (0, 1, 2, 3) i d val (a, b). Calcula el CPI. Volem reduir el retard productor-consumidor entre instruccions de càlcul punt flotant (productor) i instruccions que actualitzen la memòria de dades (consumidor) mitjançant curtcircuits. Es modifica el camí de dades original tal com mostra la figura, on s'observen els multiplexors d'encaminament de dades MX1 i MX2 en la ramificació MEM. S M1 M2 E 0 0 1 0 MX1 1 1 MX2 1 de la sortida etapa X4 Control MXs FaMDL vaMDL FdPDL vdPDL FaMS vaMS FdPS vdPS FdPM1 vdPM1 FdPM2 vdPM2 FdPE vdPE Pregunta d: Mostra el cronograma d'execució de la seqüència de 5 instruccions, indicant les entrades seleccionades dels multiplexors MX1 i MX2 en les 3 instruccions FStore. Indica el retard productor-consumidor entre instrucccions Fop-FStore en el processador original i en el nou processador. FAdd f3,f4,f5 FMul f4,f0,f2 FStore f3,0(r0) FStore f3,8(r0) FStore f3,16(r0) Pregunta e: Calcula el CPI a l'executar el programa P en el nou processador. Els senyals de control dels multiplexors MX1 i MX2 es determinen en el cicle en que una instrucció FStore ocupa l'etapa S. En aquest cicle es localitza la instrucció productora que s'executa per la ramificació PF. Per dur a terme aquesta funció: • Quan s'inicia l'execució d'una instrucció Fop, l'etapa DL subministra a la ramificació MEM l'identificador del registre destí FdP i el bit de validesa vdP de la instrucció Fop. Aquesta informació es propaga per les etapes de la ramificació MEM. • Quan s'inicia l'execució d'una instrucció FStore, l'etapa DL subministra a la ramificació MEM l'identificador del registre font punt flotant FaM i el bit de validesa vaM de la instrucció FStore. Pregunta f: Utilitzant comparadors i portes lògiques, dissenya el mòdul de control dels multiplexors MX1 i MX2. Segueix l'esquema del full de respostes. Examen, junio de 2005 7 Dep. Arquitectura de Computadores