FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES ARQUITECTURA DE COMPUTADORES Junio de 2009 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 : 23 - junio - 2009 Revisión : 25 junio de 16 a 17 h y 26 junio de 12 a 13 h (C6E101) EJERCICIO 1:(3 puntos) Tenemos instrucciones de cuatro tipos y conocemos el valor de sus métricas CPI: CPI(A) = 1 CPI(B) = 2 CPI(C) = 3 CPI(D) = 4 Tenemos tres códigos y conocemos la cantidad y la distribución de las instrucciones interpretadas: COD-1 COD-2 COD-3 A 0 250 x 106 250 x 106 B 15 x 106 100 x 106 0 C 120 x 106 150 x 106 250 x 106 D 165 x 106 0 125 x 106 Diseñamos una carga de trabajo (CdT) para hacer medidas. Esta CdT consiste en ejecutar cada hora 400 veces el COD-1, 200 veces el COD-2 y todas las veces que sea posible para completar la hora el COD-3. Cualquier medida se refiere siempre a horas completas, no se consideran fracciones de hora. Tenemos dos procesadores, ambos con las mismas instrucciones. El PROC-1 tiene tiempo de ciclo de 5 ns y potencia de 25 w, cuando ejecuta esta CdT. El PROC-2 tiene productividad de 200 MIPS al ejecutar esta CdT, y está en un chip con capacidad efectiva equivalente igual a 10-7 Far. que funciona con 2v de tensión. Pregunta a: Calcule el número de veces que PROC-1 ejecuta, cada hora, el COD-3. Pregunta b: Calcule la eficiencia energética de PROC-1, expresada en millones de instrucciones por julio (MIPJ). Pregunta c: Calcule la frecuencia de PROC-2, expresada en MHz. Para calcularla debe encontrar cuántas veces ejecuta el PROC-2, cada hora, el COD-3. Pregunta d: Calcule la energía, en julios, que necesita PROC-2 cada hora. Calcule la intensidad eléctrica, en amperios, de una batería que se agote en una hora alimentando al chip de PROC-2. El computador COMP tiene dos procesadores idénticos. Este COMP usa los dos procesadores a la vez solamente cuando ejecuta código paralelo. Ejecuta cuatro aplicaciones AP-1, AP-2, AP-3 y AP-4, empleando, respectivamente, el 24%, 16%, 40% y 20% del tiempo total. Aplicando algunas optimizaciones conseguimos paralelizar el 60% del tiempo de AP-1, el 80% del tiempo de AP-2 y el 50% del tiempo de AP-3. La AP-4 se queda sin paralelizar. Pregunta e: Calcule la ganancia obtenida si aplicamos las anteriormente citadas optimizaciones, y ejecutamos las cuatro aplicaciones. Aplicando otras optimizaciones diferentes, conseguimos paralelizar el 80% del tiempo de AP-1, el 90% del tiempo de AP-2 y el 60% del tiempo de AP-3. Pregunta f: Calcule la fracción del tiempo total que funcionan los dos procesadores a la vez, cuando ejecutamos sólo las aplicaciones con las nuevas optimizaciones y no ejecutamos la AP-4. Examen, junio de 2009 1 Dep. Arquitectura de Computadores FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES El computador COMP puede trabajar con una pequeña reducción de los valores de su frecuencia y su tensión. De esta manera sólo alcanza el 92 % de la productividad anterior, pero consigue disminuir convenientemente la potencia consumida, que originalmente es de 80w. ∆f ∆P Pregunta g: Calcule, aplicando el escalado dinámico tensión frecuencia ( ------- ∼ 3 ----- ), el valor aproxif P mado de la potencia funcionando de esta manera. Un procesador segmentado no lineal (PSNL) tiene un bloque combinacional en cada una de sus etapas. Los bloques pùeden ser el A, el B, el C o el D que tienen , respectivamente, retardo de 11ns, 7ns, 14ns y 7ns. Cualquier registro de desacoplo entre etapas tiene un retardo de 2ns. Este PSNL interpreta instrucciones de dos tipos según las siguientes tablas de reserva: ciclos 1 2 3 4 5 6 7 ciclos 1 2 3 4 5 6 Inst1 A B C A B B D Inst2 A B C A A D Suponemos que cualquier conflicto (riesgo estructural) se resuelve retrasando el inicio de la ejecución. Definimos utilización (U) de una etapa como el cociente del número de ciclos que se usa la etapa dividido por el número total de ciclos. El PSNL ejecuta una sucesión ilimitada de instrucciones que combina en proporción arbitraria cualquiera de sus dos tipos. Pregunta h: Calcule, expresadas en ciclos, las latencias de inicio prohibidas. Calcule, expresado en ciclos, el valor de su latencia media de inicio. Pregunta i: Calcule el tiempo, en segundos, que tarda PSNL en ejecutar un millón de instrucciones. Pregunta j: Calcule el valor máximo y el valor mínimo de la U de cada etapa, indicando para qué combinación de instrucciones es cada valor. EJERCICIO 2:(3 puntos) Un procesador utiliza un lenguaje máquina con el formato y la semántica de las instrucciones que se describen seguidamente. Clases Campos de la instrucción ENT RR CoOp ra ENT RI CoOp ra Load/Store CoOp ra rb 0 .. 0 literal rb 1 Especificación semántica rc rcv func rc rcv = rav (CoOp, func) #literal literal = rav (CoOp, func) rav LOAD: = Mem [ rbv rbv + add/sub rc, ra, #lit. STORE: Mem [ rb + ExtSig (literal) ] = ra CoOp ra literal load ra, literal(rb) ExtSig (literal) ] v BR Lenguaje máquina add/sub rc, ra, rb func v if (f[rav , CoOp]) then CPv = CPv + 4 x ExtSig (liter.) else CPv = CPv + store ra, literal(rb) bne ra, 1$ 4 En un diseño del procesador se utiliza la siguiente segmentación (diseño A). ciclos 1 2 3 4 5 6 CP B DL ALU M ES La funcionalidad de las etapas se describe en la siguiente tabla. ETAPA FUNCIONALIDAD CP determinar el CP B búsqueda de la instrucción DL decodificación y lectura del banco de registros. Cálculo de la dirección destino en instrucciones de secuenciamiento ALU operación aritmético-lógica, cálculo de la dirección efectiva y evaluación de la condición M acceso en la memoria de datos o etapa de retardo ES escritura en el banco de registros En el procesador segmentado no se producen riesgos estructurales. Así mismo, el banco de registros dispone de dos caminos de lectura y un camino de escritura. La actualización de un registro del banco de registros requiere de todo el ciclo. Las instrucciones BR establecen el secuenciamiento en la etapa Examen, junio de 2009 2 Dep. Arquitectura de Computadores FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES ALU, aunque calculan la dirección destino en la etapa DL. Un riesgo se detecta y gestiona en la fase de decodificación, que en el procesador descrito previamente se corresponde con la etapa DL. Un riesgo de datos debido a registro se gestiona mediante bloqueo de la instrucción que detecta el riesgo y de las instrucciones más jóvenes mientras perdura el riesgo (etapas (DL, B y CP). Un riesgo de secuenciamiento se gestiona mediante el descarte de las instrucciones buscadas mientras perdura el riesgo. El camino de datos sin los cortocircuitos es el siguiente. BUS_DL DL_ALU ALU_MEM MEM_ES MUXBr 0 1 0 dir inst CP 0 EsReg Rb Ra CoOp ra 1 1 Ed BR Rd Lb La 0 MUXREG MD B 1 dir ALU 1 MUXData MI MUXB +4 + CP Ldm Edm A EV MUXA 1 EXTSIG Despla rb 15..5 rc MUXImp 0 MUXCP + 0 EsMem 0 1 BUS DL ALU M ES En el procesador se incluyen todos los cortocircuitos que permiten reducir la latencia efectiva de actualización del banco de registros. Al implementar los cortocircuitos se ha teniendo en cuenta lo siguiente: si un cortocircuito lógico se puede implementar mediante varios cortocircuitos físicos se decide implementar y utilizar el que tiene como destino la etapa DL. Por tanto, el otro cortocircuito físico no es necesario a menos que se utilice para otro cortocircuito lógico. Los cortocircuitos se utilizan justo antes de finalizar el ciclo. En la siguiente pregunta se solicita añadir cortocircuitos al camino de datos previo. Estos cortocircuitos deben priorizarse de forma que el control de cada uno de ellos sea independiente. NOTAS: En la figura que se utiliza para contestar a la pregunta se muestran más multiplexores de los necesarios. Si una entrada de un multiplexor no se conecta se supone que siempre se selecciona la otra entrada. El trazo utilizado para indicar una conexión que cruce un registro de desacoplo está afectado por el registro de desacoplo. Pregunta a: Añada en el siguiente trozo del camino de datos los cortocircuitos que faltan. El número de cortocircuitos totales debe ser mínimo. Muestre mediante una secuencia de instrucciones si existe posibilidad de riesgo de datos debido a registros. BUS_DL DL_ALU MEM_ES ALU_MEM 0 CoOp ra rb 15..5 rc EXTSIG Despla Ed BR Rd Lb 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 MD B EsReg Rb Ra 1 dir Ldm Edm ALU 1 La 0 1 0 1 0 1 1 0 1 0 EV D/L 1 1 0 0 0 1 1 1 0 0 0 MUXData 1 + A 0 EsMem 1 0 ALU M ES Los diseñadores se plantean modificar la segmentación de la siguiente forma (diseño B). ciclos 1 2 3 4 5 6 CP B DL @ A/M ES La funcionalidad de la nueva etapa y modificaciones en las otras etapas se describen en la siguiente tabla. Observe que no se especifica la evaluación de la condición en instrucciones de secuenciamiento. Examen, junio de 2009 3 Dep. Arquitectura de Computadores FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES ETAPA FUNCIONALIDAD @ cálculo de la dirección efectiva en instrucciones de acceso a memoria A/M operación aritmético-lógica o acceso en la memoria de datos En la siguiente figura se muestran algunos elementos del camino de datos. Observe que no se especifica la ubicación del módulo EV, ni desde dónde se establece el secuenciamiento en instrucciones BR. La actualización de un registro del banco de registros requiere de todo el ciclo. BUS_DL DL_@ @_AM AM_ES B 0 dir inst CP 0 EsReg Rb Ra CoOp ra 1 1 Ed BR Rd Lb MD MUXB +4 MI A + 0 MUXREG 1 dir Ldm Edm 1 La 1 MUXA + CP rb 15..5 rc 1 MUXCP MUXImp 0 EXTSIG Despla MUXData ALU + 0 EsMem 0 0 1 BUS DL @ A/M ES Este diseño del procesador segmentado también dispone de todos los cortocircuitos que permiten eliminar riesgos de datos debidos a registros y en las mismas condiciones que el diseño previo. Además no se pueden producir riesgos estructurales. Suponemos que un multiplexor de cortocircuito siempre se ubica antes que cualquier multiplexor en la etapa destino. Pregunta b: Calcule el número mínimo de cortocircuitos (número de multiplexores de dos entradas necesarios) en el diseño B. Justifique la respuesta. Pregunta c: Muestre una secuencia de instrucciones en la que se pierdan ciclos en el diseño A pero no se pierdan ciclos en el diseño B. Pregunta d: Muestre una secuencia de instrucciones en la que no se pierdan ciclos en el diseño A pero sí se pierdan ciclos en el diseño B. Para evaluar las prestaciones de ambos diseños disponemos de las siguientes estadísticas obtenidas de ejecutar un conjunto de programas de prueba. Entre dos instrucciones dependientes a distancia mayor que uno no hay instrucciones que dependan de la instrucción productora y tampoco hay instrucciones de secuenciamiento. La tabla de la izquierda muestra la distribución de instrucciones en un conjunto de programas de prueba. Dada una pareja de instrucciones dependientes, la tabla de la derecha muestra la probabilidad de que estén a distancias 1, 2 y 3. instrucciones distribución consumidor loa d 20 % sto re 10 % productor ENT 50 % ENT load ENT load store registro rb store registro ra distancia distancia distancia distancia 1 2 0. 4 0. 1 3 0.05 1 2 3 1 2 3 1 2 0.08 0.1 0.08 0.04 0.02 0.01 0.03 0 .0 2 0 .0 1 0.01 0.02 0.02 0.01 0.01 0.01 0.02 0 .0 1 0 .0 1 Pregunta e: Teniendo en cuenta sólo la penalización por riesgos de datos debido a registros y sólo las instrucciones ENT, load y store como productoras y/o consumidoras calcule los ciclos perdidos por instrucción en cada diseño. En el diseño B existen varias posibilidades para ubicar el circuito que evalúa la condición (EV) y establecer el secuenciamiento. En cualquiera de los casos, el contenido del registro que se evalúa, la dirección de la instrucción y la dirección destino se propagan a la etapa correspondiente. A partir de ahora, todas estas necesidades las indicaremos exclusivamente como evaluación de la condición (EV). Las Examen, junio de 2009 3 4 Dep. Arquitectura de Computadores FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES etapas que consideraremos para ubicar la evaluación de la condición (EV) son: ES (diseño B.1), A/M (diseño B.2) y @ (diseño B.3). Pregunta f: Para cada una de las posibles etapas donde se puede ubicar EV (diseños B.1, B.2 y B.3) indique los ciclos perdidos por secuenciamiento. Además indique si se incrementa el tiempo de ciclo en los diseños B.2 y B.3 respecto del diseño B.1. Justifique la respuesta. Pregunta g: En el diseño B, cuando en una secuencia de instrucciones la instrucción consumidora es una instrucción de secuenciamiento, indique si se pierden ciclos por riesgos de datos debidos a registros para cada ubicación de EV (diseños B1, B.2 y B.3). Cuantifique los ciclos perdidos en cada diseño. Así mismo indique, para cada secuencia de instrucciones, el número de ciclos perdidos en el diseño A. Otras estadísticas que complementan las anteriores son las siguientes. instrucciones distribución BR consumidor BR distancia 20% productor 1 2 3 ENT 0.10 0.08 0.02 load 0.05 0.1 0 Pregunta h: Utilizando las estadísticas mostradas previamente, indique cuál de las alternativas es mejor (diseño B.1, diseño B.2, diseño B.3), teniendo en cuenta sólo los ciclos perdidos en instrucciones de secuenciamiento y riesgos de datos cuando la consumidora es una instrucción de secuenciamiento. Otra posibilidad es ubicar el circuito EV en la etapa DL (diseño B.4), lo cual incrementa el tiempo de ciclo en un 5%. El circuito EV está ubicado después de los posibles cortocircuitos cuyo destino es DL. Tenga en cuenta que en el diseño B.4 podrían aparecer nuevas condiciones de riesgo. Suponga que la frecuencia de funcionamiento de los diseños A y B.3 es 1 Ghz. Pregunta i: Utilice las estadísticas presentadas previamente para calcular, al ejecutar el conjunto de programas de prueba, el tiempo de ejecución en: a) diseño B.3, b) diseño B.4. Calcule también el tiempo de ejecución en el diseño A. EJERCICIO 3:(4 puntos) Un processador segmentat multicicle, amb 1.2 GHz de freqüència de rellotge, disposa de 4 ramificacions amb latència de repetició 1 i interpreta les instruccions seguint els patrons següents: cicles 1 2 3 etapes CP B DL 4 5 ALU E @ M1 6 7 M2 E 8 ENT MEM: Load, Store, Fload, Fstore AV X1 BR X2 X3 X4 E CF etapes CP B DL determinació adreça instrucció búsqueda instrucció descodificació, lectura operands en registres, detecció riscs, predicció de sentit (BR) ALU operació aritmètico-lògica enters (ENT) AV verificació de la predicció de sentit (BR) @, M1, M2 càlcul adreça efectiva, accés al camp d'etiquetes de la cache, accés al camp de dades de la cache X1,.., X4 E operació aritmètica punt flotant (CF) escriptura resultat en el banc de registres d'enters o de punt flotant El camí de dades disposa de recursos suficients per a que no es produeixin riscs estructurals. En cada banc de registres es pot escriure i llegir, en aquest ordre, un mateix registre en un cicle de rellotge. Dis- Examen, junio de 2009 5 Dep. Arquitectura de Computadores FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES posa també de curtcircuits per reduir la latència efectiva d'escriptura als bancs de registres. El destí de qualsevol curtcircuit només pot ser algun dels registres de desacoblament d'entrada a les ramificacions. Els riscs de dades i de seqüenciament es detecten en l'etapa DL. Quan es detecta un risc de dades, es retenen les instruccions en les etapes DL, B i CP fins que desapareix la condició de risc. Un risc d'escriptura després d'escriptura desapareix quan la instrucció origen de la dependència de sortida està en l'últim cicle de la fase d'execució. Per interpretar instruccions de seqüenciament condicional s'utilitza predicció fixe segons el signe del literal: saltar si el literal és negatiu, seguir en seqüència si el literal és positiu. El càlcul de l'adreça destí i la predicció de sentit es fa en l'etapa DL. En l'etapa AV es comprova la predicció i en cas d'error s'inicia la recuperació en el mateix cicle. Aquest processador executa el següent bucle: for (i=0 ; i<N ; i++) { s += X[i]; X[i] = s; } 1$: Fload Fadd Fstore Add Sub Bne f0,0(r0) f1,f1,f0 f1,0(r0) r0,r0,#8 r3,r3,#1 r3,1$ ;i1 ;i2 ;i3 ;i4 ;i5 ;i6 Valors inicials: r3=N; r0=adreça primer element del vector; f1=0 Pregunta a: Mostra el cronograma d'execució d'una iteració completa del bucle i de la primera instrucció de la següent iteració. Indica els cicles perduts per riscs de dades i seqüenciament en una iteració. Calcula el CPI mitjà i la productivitat en MFLOPS. Un nou compilador desenrotlla el bucle anterior. El codi resultant, després de planificar el cos del nou bucle és el següent (suposem que N és parell): for (i=0 ; i<N ; i+=2) { s += X[i]; X[i] = s; s += X[i+1]; X[i+1] = s; } 2$: Fload Fload Sub Fadd Add Fstore Fadd Fstore Bne f0,0(r0) f4,8(r0) r3,r3,#2 f1,f1,f0 r0,r0,#16 f1,-16(r0) f1,f1,f4 f1,-8(r0) r3,2$ ;i1 ;i2 ;i3 ;i4 ;i5 ;i6 ;i7 ;i8 ;i9 Valors inicials: r3=N; r0=adreça primer element del vector; f1=0 Pregunta b: Dibuixa el graf de dependències de dades de sortida i antidependències entre les 9 instruccions del bucle desenrotllat. Indica les dependències degudes a posicions de memòria mitjançant línies discontínues. Pregunta c: Per cada instrucció d'una iteració completa del bucle desenrotllat i la primera instrucció de la següent iteració, indica el cicle de rellotge en que inicia la fase d'execució. Calcula el CPI mitjà, els MFLOPS i el Guany. Un segon processador utilitza la mateixa segmentació i té les mateixes 4 ramificacions que el processador descrit però el control planifica dinàmicament les instruccions seguint l'algoritme de Tomasulo. L'etapa DL en el processador multicicle es correspon, en aquest segon processdor, a l'etapa d'emissió i inici si els operants estan disponibles. El camí de dades disposa de suficients recursos (estacions de reserva, busos de difusió de resultats) per a que no es produeixin riscs estructurals. Aquest processador també prediu el sentit d'un salt condicionals segons el signe del literal. Es segueixen buscant instruccions segons la predicció, però, per simplificar la recuperació en cas d'error, el control bloqueja la primera instrucció predita en la fase d'emissió fins que es verifica la predicció. El bloqueig es propaga a les etapes B i CP. Examen, junio de 2009 6 Dep. Arquitectura de Computadores FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES Aquest processador té 2 subramificacions per interpretar les instruccions d'accés a memòria. El control permet que una instrucció Load pugui avançar a instruccions Store més velles si no hi ha risc de dades. Pregunta d: Mostra el cronograma d'execució d'una iteració completa del bucle sense desenrotllar i de les 3 primeres instruccions de la següent iteració. Indica en quins cicles les estacions de reserva capturen els resultats que difonen les ramificacions i quantes estacions de reserva capturen els resultats. Assenyala els cicles en que el control inhibeix les escriptures en el banc de registres. Pregunta e: Tenint en compte la resposta a la pregunta d, calcula el CPI mitjà i la productivitat en MFLOPS. Indica el nombre mínim d'estacions de reserva que fan falta en cada ramificació per a que no es produeixin riscs estructurals. Calcula quin percentage de temps està ocupada cadascuna de les estacions de reserva associades a la ramificació de càlcul en punt flotant. Pregunta f: Calcula el CPI mitjà i la pèrdua percentual de rendiment en el supòsit de que les instruccions d'accés a memòria s'executessin seguint l'ordre de programa. Suposa que, per reduir el cost de la finestra d'instruccions però sense sacrificar la capacitat d'explotar el paral·lelisme a nivell d'instruccions, l'algoritme de Tomasulo alliberés les estacions de reserva quan les instruccions superen la fase d'inici. Suposa també que la taula de renom de registres (vectors d'etiquetes i marques) s'actualitza seguint les regles de l'algoritme original. Considera la interpretació de la seqüència d'instruccions: Load r0,0(r0) Load r1,0(r0) Add r2,r1,r0 Pregunta g: Suposant que la ramificació de memòria tingués una única estació de reserva, mostra el cronograma d'execució de la seqüència anterior. Indica justificadement quin tipus de dependència de dades es gestionaria incorrectament. Justifica per qué en la fase d'escriptura de la primera instrucció Load s'escriurien 2 registres. Suposa que es modifica la interpretació de les instruccions de salt condicional. També s'utilitza predicció del sentit segons el signe del literal. En lloc d'impedir l'emissió de les instruccions predites fins que es verifica la predicció, ara es poden emetre però no poden iniciar l'execució. Les instruccions predites, encara que estiguin preparades, esperen en les estacions de reserva fins que es comprova la predicció. La figura mostra un exemple d'interpretació d'una instrucció de salt que detecta un error de predicció. En el cicle 4 es prediu seguir el seqüenciament implícit i es copia el contingut de la taula de renom de registres (vectors d'etiquetes i marques). En el cicle 8 es detecta un error de predicció, el control allibera les estacions de reserva de les instruccions emeses i restaura la còpia de la taula de renom de registres i estableix el seqüenciament. Mitjançant la còpia de la taula de renom es preten recuperar les fonts de dependències modificades possiblement per instruccions predites. Adreça 124 1$: Instrucció Load r0,8(r1) 128 Bne r0,1$ 132 Load r0,0(r0) 136 Sub r3,r5,r0 140 Xor r4,r0,#-1 144 Sub r6,r4,r7 148 Xor r0,r1,r1 200 Load r2,0(r0) 1 2 3 4 5 6 7 CP B EL @ M1 M2 E B EL ERL ERL ERL CP B CP CP EL 8 9 10 11 12 13 14 @ M1 M2 E cicle AV ERL ERL ERL descartar ERL ERL descartar B EL CP B EL CP B EL descartar CP B descartar ERL descartar CP B EL Pregunta h: Considerant l'exemple anterior, justifica si es gestionen correctament les dependències de sortida. Examen, junio de 2009 7 Dep. Arquitectura de Computadores