FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES ARQUITECTURA DE COMPUTADORES Junio de 2010 EJERCICIO 1: (3 puntos) Un procesador PR1 con 40 w de potencia media ejecuta en modo NORM una carga de trabajo CdT, con productividad media de 380 MIPS, consumiendo una carga eléctrica de 160 A x s con alimentación de 2 v. La CdT se compone de tres programas: P1, P2 y P3. El número de instrucciones al ejecutar P2 es igual que al ejecutar P3, y son 800 millones cada uno. El PR1 consigue 300 MIPS mientras ejecuta P2 y consigue 400 MIPS mientras ejecuta P3. Cada vez que se produce un fallo de cache, PR1 ejecutando CdT se bloquea durante 15 ns. Mientras ejecuta sin tener fallo de cache acaba una instrucción cada 1.25 ns. de media. Mejoras en el compilador permiten generar otro código de la carga de trabajo, que ahora llamaremos la NCdT, consiguiendo así que se produzcan la mitad de fallos de cache. El número de instrucciones ejecutadas se mantiene. PR1 también puede funcionar en modo ECOL, con alimentación de 1.92 v y la misma reducción relativa (escalado dinámico) del valor de la frecuencia, en relación con el modo NORM. PR1 tiene 6 etapas, pero puede tener conflictos (riesgos estructurales) porque en la última etapa solo tiene un puerto de escritura y tiene que interpretar instrucciones de cualquiera de los dos tipos (A, B) siguientes: ciclos instrucciones A 1 2 3 4 5 CP B DL A ES ciclos instrucciones B 1 2 3 4 5 6 CP B DL A M ES Pregunta a: Calcule la cantidad de MIPS que consigue PR1 mientras ejecuta P1 en modo NORM. Pregunta b: Calcule la tasa de fallos por instrucción cuando PR1 ejecuta la CdT en modo NORM. Pregunta c: Calcule la ganancia cuando PR1 ejecuta la NCdT en modo NORM. Pregunta d: Cuando PR1 funciona en modo ECOL, calcule los valores aproximados de la potencia media (en w) y de la productividad media (en MIPS). Pregunta e: Calcule la pérdida en ciclos por instrucción por riesgos estructurales cuando PR1 ejecuta la CdT, sabiendo que este código repite indefinidamente la secuencia de instrucciones A B B A. Pregunta f: Calcule la fracción de tiempo que se utilizan las etapas A, M y ES cuando PR1 ejecuta la CdT, sabiendo que este código repite indefinidamente la secuencia de instrucciones A B B A. Examen, junio de 2010 1 Dep. Arquitectura de Computadores FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES Pregunta g: Presente en un grafo todas las dependencias de datos de las instrucciones de una iteración del bucle siguiente: 1 2 3 4 5 6 7 8 9 10 11 r4 = M[r1 + 0] r5 = M[r2 + 0] r6 = r8 + r4 r7 = r9 - r5 r1 = r1 + 4 r2 = r2 + 4 r7 = r6 + r7 r0 = r0 - 1 M[r3 + 0] = r7 r3 = r3 + 4 si (r0 > 0) saltar a 1 El bucle anterior tiene 1000 iteraciones y lo ejecuta PSLIN6, que es un procesador segmentado lineal de seis etapas: ciclos todas las instrucciones 1 2 3 4 5 6 CP B DL A M ES PSLIN6 no tiene riesgos estructurales, no tiene cortocircuitos y no hace predicción de saltos. Cualquier riesgo de datos ocasiona bloqueo del procesador. Puede escribir y leer un registro en el mismo ciclo. Las instrucciones de salto condicional modifican el valor del CP durante su cuarto ciclo de interpretación y descartan las instrucciones aun no acabadas. Pregunta h: Calcule la cantidad de ciclos que tarda PSLIN6 en ejecutar el bucle dado. EJERCICIO 2: (3.5 puntos) Un processador interpreta instruccions del següent repertori: EN Rd = Ra op Rb LD Rd = M[Rb+d] ST M[Rb+d] = Ra BC si cond (Ra) llavors CP = CP + d altrament CP = CP + 4 El processador està segmentat linealment en 8 etapes: CP determinació adreça instrucció B1 accés al banc d’etiquetes de la cache instruccions B2 accés al banc de dades de la cache instruccions DL descodificació, lectura operants en Banc de registres X1 càlcul adreça efectiva (LD, ST) o adreça destí de salt (BC) X2 accés al banc d'etiquetes de la cache de dades (LD, ST) X3 accés al banc de dades de la cache de dades (LD, ST), o operació aritmètico-lògica (EN), o avaluació condició (BC) E escriptura resultat en Banc de registres El processador disposa de recursos suficients per interpretar qualsevol seqüència d'instruccions sense riscs estructurals. Un mateix registre del Banc es pot escriure i llegir, en aquest ordre, en el mateix cicle de rellotge. La cache d’instruccions i la cache de dades són de correspondència directa. Per reduir la penalització en les instruccions de salt condicional, el processador utilitza predicció fixe No Salta. En l’etapa X1 es calcula l’adreça de la instrucció destí de salt. En l’etapa X3 es comprova la predicció. Si es compleix la condició (error de predicció), es descarten del camí de dades les instruccions buscades de la branca incorrecte i s’actualitza el comptador de programa amb l’adreça destí de salt. NOTA: Les figures següents mostren esquemes incomplets del camí de dades. Per simplificar les respostes, en cada pregunta on es demani completar el camí de dades, s’ha de contestar tenint en compte només la figura corresponent. Examen, junio de 2010 2 Dep. Arquitectura de Computadores FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES Pregunta a: Afegeix les connexions que fan falta en el camí de dades per interpretar les instruccions de salt condicional. Indica la penalització quan s’interpreta una instrucció de salt condicional. CP B1 B2 bET (MI) bD (MI) DL X1 X2 X3 Sum Sum 4 0 1 d Banc Ra CP RDB2 bD (MD) bET (MD) ALU Reg. RDDL RDX1 RDX2 RDX3 RDE AV Error El processador disposa de curtcircuits per reduir els cicles de penalització quan s’interpreten concurrentment instruccions amb dependències de dades. Pregunta b: Completa el camí de dades i afegeix tots els curtcircuits que fan falta per minimitzar els retards productor-us. Suposa que les transferències de dades es fan cap al final de cicle. El nombre de curtcircuits ha de ser el mínim. Només cal afegir les connexions que transporten dades (o adreces de dades en memòria) i els multiplexors dels curtcircuits. DL X1 Sum Banc 0 1 bD (MD) bET (MD) 0 1 ALU Reg. RDDL E X3 d Rb Ra X2 RDX1 RDX2 RDE RDX3 AV Els riscs de dades es detecten en l'etapa DL. Quan es detecta un risc de dades, la lògica de control bloqueja les instruccions que ocupen les etapes DL, B2, B1 i CP. Pregunta c: Dissenya la lògica que detecta dependències que ocasionen riscs de dades. Suposa que, a partir de DL, en cada etapa hi han senyals que indiquen el tipus d’instrucció (ENX, LDX, STX, BCX), on x representa el nom de l’etapa. El processador executa el següent bucle: do { if (p->dat != 0) x[++i] = p-> dat; } while ((p = p->next) != NULL); 1$: Load Beq Add Store 2$: Load Bne r1,0(r0) r1,2$ r4,r4,r5 r1,0(r4) r0,16(r0) r0,1$ ;r1 = M[r0+0] ;salta si (r1 == 0) ;r4 = r4 + r5 ;M[r4+0] = r1 ;r0 = M[r0+16] ;salta si (r0 != 0) Valors inicials: r0=adreça primer element de la llista; r5=4; r4=adreça primer element del vector X El 40% de les iteracions r1 !=0 Pregunta d: Mostra el cronograma d’execució d’una iteració completa i de la primera instrucció de la següent iteració. Indica en el cronograma els curtcircuits utilitzats. Suposa que r1 != 0. Identifica els cicles perduts. Pregunta e: Calcula el CPI mitjà. Suposa que el número d’iteracions del bucle és il•limitat. Examen, junio de 2010 3 Dep. Arquitectura de Computadores FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES En una nova versió del processador s’utilitza predicció dinàmica del sentit. La microarquitectura disposa d’una Taula d’Història (TH) que s’accedeix en l’etapa B1. Cada entrada de la TH conté 1 bit. La taula s’actualitza quan l’etapa E processa una instrucció de salt amb el resultat de la condició. Per reduir el retard de búsqueda, el processador inclou una Cache d’Adreces Destí de Salt (CADS). Aquesta cache és de correspondència directa i s’accedeix en paral•lel a la TH. En cas de falla en la CADS, el processador segueix buscant instruccions de la branca seqüencial (predicció No Trenca). La CADS s’actualitza quan l’etapa E processa una instrucció de salt que ha trencat el seqüenciament implícit. La TH i la CADS tenen un port de lectura i un d’escriptura. En la figura es mostren els components del camí de dades que s’utilitzen per determinar el seqüenciament entre instruccions. També es mostren les connexions que transporten adreces d’instrucció que fan falta per la recuperació en cas d’error de predicció. CP B1 B2 RDB2 0 1 4 DL X1 RDDL RDX1 X2 RDX2 X3 RDX3 bET (MI) 0 1 2 Banc bD (MI) Ra RDE 0 1 Sum Sum E d Reg. AV Verif. CP TH Error CADS Pregunta f: Afegeix les connexions necessàries per establir el seqüenciament utilitzant la TH i la CADS, així com les connexions que fan falta per actualitzar-les quan s’interpreta una instrucció de seqüenciament. Pregunta g: Dedueix les penalitzacions quan s’interpreta una instrucció de salt condicional. Per reduir encara més la penalització en les instruccions de salt, s’incorpora al processador un segon nivell de predicció. Aquest segon nivell fa servir un predictor de sentit més precís (TH2) i una cache d’adreces destí de salt de més capacitat (CADS2). Aquestes dues noves estructures tenen latència d’accés de 2 cicles i latència de repetició de 1 cicle. S’hi accedeix en paral•lel amb les estructures TH i CADS, tal com mostra la figura. Anomenarem predicció de primer nivell a la informació subministrada per la TH (sentit) i la CADS (encert/falla, adreça destí). Suposarem que la CADS2 conté sempre el contingut de la CADS. cicles 1 2 3 4 5 6 7 8 etapes CP B1 B2 DL X1 X2 X3 E predicció nivell 1 TH CADS predicció nivell 2 TH2 CADS2 9 comparar actualitzar prediccions TH nivells 1, 2 CADS verificar predicció nivell 2 actualitzar TH2 CADS2 En l’etapa DL es comparen les prediccions dels dos nivells. En cas de discrepància, es corregeix el seqüenciament i es descarten les instruccions que s’estan buscant. En l’etapa X1 s’actualitzen les estructures del primer nivell. En l’etapa X3 es comprova la predicció del segon nivell, iniciant la recuperació en cas d’error. En l’etapa E s’actualitzen, si és el cas, les estructures del segon nivell. Pregunta h: Suposant que el predictor de sentit TH2 no s’equivoca mai i que la CADS2 emmagatzema les adreceses destí de totes les instruccions de salt del programa, dedueix les penalitzacions quan s’interpreta una instrucció de salt condicional. Examen, junio de 2010 4 Dep. Arquitectura de Computadores FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES EJERCICIO 3: (3.5 puntos) Un procesador segmentado multiciclo dispone de tres ramificaciones: a) aritmética entera, b) acceso a memoria y c) aritmética en coma flotante. La segmentación de cada ramificación es la siguiente. ciclos 1 2 3 etapas CP B DL 4 5 ALU ES 6 7 8 ENT, BR EV @ M1 M2 ES X1 X2 X3 X4 MEM: ES Load, Store, FLoad, FStore CF La funcionalidad de las etapas es la siguiente: ETAPA CP B DL FUNCIONALIDAD Y RECURSOS UTILIZADOS determinar la dirección de la instrucción búsqueda de la instrucción decodificación, lectura de operandos en registros (enteros y coma flotante), cálculo de la dirección destino de salto. ALU / EV operaciones aritmético-lógicas (ALU) / comprobación de la predicción de sentido (EV) @ cálculo de la dirección efectiva M1, M2 acceso a memoria. En M1 se accede al campo etiquetas de la cache y en M2 al campo datos de la cache X1, ..., X4 cálculo en coma flotante ES escritura en el banco de registros de enteros o de coma flotante La arquitectura del conjunto de instrucciones define un banco de registros para números representados en coma flotante y otro banco para el resto. Las instrucciones tienen como máximo dos operandos fuente que se leen de los bancos de registros y producen como máximo un resultado que se almacena en un registro de un banco de registros. En el camino de datos se dispone de los recursos suficientes para que no se produzcan riesgos estructurales. Pregunta a: Indique el número mínimo de caminos de lectura y escritura a cada uno de los bancos de registros. En cada banco de registros se puede escribir y leer, en este orden, un mismo registro en un ciclo de reloj. El procesador sólo dispone de cortocircuitos cuya fuente son las etapas ALU y X4 y cuyo destino es la etapa DL. Pregunta b: Indique el número total mínimo de cortocircuitos de que dispone el procesador y el número de comparadores necesarios para controlarlos. Indique la latencia productor-uso entre ramificaciones, si es el caso. Así mismo indique los tipos de riesgos de datos debidos a registros que deben gestionarse. Para gestionar los riesgos de datos debidos a registros se utilizan dos vectores de marcas (VM), uno por banco de registros, que se leen en la etapa DL. La gestión de los riesgos de datos es en general conservadora. El instante de actualización de los VM por una instrucción sólo depende de la propia instrucción. En la detección de un riesgo de datos se utiliza sólo la información leída de los VM. Una entrada de un vector VM se puede escribir y leer, en este orden, en un ciclo de reloj. Cuando se detecta un riesgo de datos debido a registros las instrucciones en las etapas DL, B y CP se retienen en las respectivas etapas hasta que desaparece el riesgo. Pregunta c: Indique para cada ramificación, si es el caso, las etapas en que se actualiza (escribe) el vector VM. Así mismo, indique el número mínimo de caminos de lectura y escritura en cada vector VM. Como programa de prueba utilizaremos el bucle interno del siguiente código que evalua el producto de dos matrices. Examen, junio de 2010 5 Dep. Arquitectura de Computadores FACULTAD DE INFORMATICA do K = 1 , P ARQUITECTURA DE COMPUTADORES 1$: FLoad F1, 0(r1) do J = 1 , N do I = 1, M C( I, J) = C(I, J) + A(I, K ) x B(K, J) enddo enddo enddo ;Bucle do I FLoad F2, 0(r2) ; r3 se inicializa al valor M Fmul F4, F3, F1 ; F3 almacena B(K, J) Fadd F2, F4, F2 FStore F2, 0(r2) add r1, r1, #8 add r2, r2, #8 sub r3, r3, #1 El tamaño de un elemento de las matrices es 8 bytes. bne r3, 1$ En un riesgo de secuenciamiento se descartan las instrucciones buscadas hasta que se establece la dirección de la siguiente instrucción que debe interpretarse. El procesador utiliza predicción fija en instrucciones de secuenciamiento condicional. Predice seguir en secuencia si el literal es positivo. En caso de error de predicción, en la etapa EV se establece el valor del CP para iniciar, en el mismo ciclo, la recuperación. Pregunta d: Muestre en un diagrama temporal la interpretación de la 1ª iteración del bucle y la 1ª instrucción de la 2ª iteración. Calcule las siguientes métricas: a) los ciclos perdidos por riesgos de datos y secuenciamiento en una iteración del bucle, b) los ciclos por iteración, c) el número de operaciones en coma flotante por ciclo y d) el IPC. Pregunta e: Planificando las instrucciones del cuerpo de bucle y teniendo en cuenta que se puede modificar el campo literal en las instrucciones de acceso a memoria ¿Cuántos ciclos perdidos por riesgos de datos se pueden reducir?. En una nueva versión del procesador se añade la capacidad de planificación dinámica de instrucciones utilizando el algoritmo de Tomasulo. La segmentación utilizada en la parte común (parte frontal) y en cada ramificación es la misma que en el procesador multiciclo. El acrónimo DL se cambia por el acrónimo EL para indicar la acción de emisión de la instrucción. En el algoritmo de Tomasulo se utilizan vectores de marcas (VM). Una entrada de VM indica si el identificador de ER, almacenado en VE (vector de etiquetas), asociado al registro o el valor almacenado en el registro es válido. Esto es, se ha almacenado el valor que calcula la última instrucción emitida que determina su valor. Pregunta f: Indique para cada ramificación, si es el caso, los ciclos de interpretación en que se actualizan los vectores VM. El retardo producto-uso en un procesador que difunde la etiqueta y el dato en el mismo ciclo (ES) puede reducirse. Para ello en esta versión del procesador se desacopla, en algunas ramificaciones, la difusión de la etiqueta de la difusión del dato. Ello permite reducir en un ciclo el retardo producto-uso. En todas las ramificaciones, excepto en la ramificación de memoria, la etiqueta de la estación de reserva (ER) se difunde en el último ciclo de ejecución. El dato producido por la ramificación se difunde en el siguiente ciclo (ES). En la ramificación de memoria, tanto la etiqueta como el dato se difunden en la etapa de escritura. En la siguiente figura se muestra una parte del camino de datos. En un caso la difusión de la etiqueta y la difusión del dato están desacopladas (BE1 y BD1) y en el otro caso están acopladas (BE2 y BD2). Debido a que la etiqueta se difunde un ciclo antes que el dato, los valores de las etiquetas deben almacenarse durante un ciclo (en la figura, registro PE). Hay un registro PE por cada bus de etiquetas desacoplado. Los valores de las etiquetas almacenadas en los registros PE son utilizadas por la instrucción que ocupa la etapa EL para determinar si debe capturar alguno de los datos que se transmiten por los buses de datos y cuyas etiquetas se han transmitido en el ciclo previo. Examen, junio de 2010 6 Dep. Arquitectura de Computadores FACULTAD DE INFORMATICA ARQUITECTURA DE COMPUTADORES EL EJECUCION Etiqueta del ciclo previo PE MUXInicio 0 1 2 0 R ... BD: Bus de difusión de datos BE:Bus de difusión de etiquetas último ciclo BD1 1 BE1 MuxC Estaciones de reserva (ER) BR 1º ciclo ES BD2 BE2 L En cada ciclo de reloj se evalúa la señal de preparada en todas las ER (los datos fuente están disponibles). Esta señal se evalúa para cada ER utilizando la información transmitida por el bus de etiquetas, las etiquetas almacenadas en la ER y los bits de disponibilidad. Cuando una ER activa la señal de preparada, en el mismo ciclo la ER compite por ser seleccionada para iniciar la ejecución. Como en algunas ramificaciones los buses BE y BD se utilizan de forma desacoplada, la instrucción seleccionada en cualquier ramificación puede necesitar capturar datos difundidos por los buses de datos en el primer ciclo de ejecución (multiplexor MuxC en la figura previa). Caso A en la siguiente figura. A) Otras ramificaciones último ciclo ES difunde difunde dato etiqueta captura dato cualquier ramificación C) Otras ramificaciones B) Otras ramificaciones último ciclo difunde etiqueta ES PE último ciclo difunde dato captura dato EL o ERL 1º ciclo Eje. B EL preparada, seleccionada captura almacena etiqueta en registro PE captura ES difunde difunde dato etiqueta captura dato EL o ERL D) Memoria M2 difunde etiqueta ES difunde dato captura dato ERL EL o ERL captura captura, preparada, seleccionada 1º ciclo Eje. Una instrucción en la etapa EL compara sus etiquetas con las difundidas por los buses de etiquetas y las almacenadas en los registros PE. Si existe coincidencia con alguna etiqueta almacenada en los registros PE se captura, en el mismo ciclo, el dato difundido por el bus de datos asociado (Caso B). Si existe coincidencia con etiquetas difundidas por los buses de etiquetas se captura, en el siguiente ciclo, el dato del bus de datos asociado (Caso A o C). Esto es, si en el ciclo actual la instrucción es seleccionada para iniciar la ejecución, el dato se captura en el siguiente ciclo, que es el 1º ciclo de ejecución (Caso A). En caso contrario, la instrucción espera en la ER y en el siguiente ciclo captura el dato, que se almacena en la ER (Caso C). Si la etiqueta de la ER y el dato producido se difunden en el mismo ciclo, el dato difundido se almacena en la ER si existe coincidencia en la comparación de etiquetas. Caso D en la figura previa. En esta implementación del procesador las instrucciones Load o Fload pueden adelantar a las instrucciones Store o FStore si la dirección es no coincidente. Por otro lado, supondremos, igual que en el procesador multiciclo, predicción fija en la instrucciones de secuenciamiento condicional. En un diagrama temporal, para indicar que una instrucción está esperando en la ER, utilice el acrónimo ERL. Además, en lugar de utilizar el acrónimo DL en el tercer ciclo de interpretación de una instrucción, utilice el acrónimo EL. Suponga que el número de ER es ilimitado. Pregunta g: Muestre en un diagrama temporal la interpretación de la 1ª iteración del bucle y la 1ª instrucción de la 2ª iteración. Calcule las siguientes métricas: a) los ciclos por iteración, y b) el IPC. Muestre cada uno de los ciclos en que se capturan datos e indique para cada instrucción si actualiza el banco de registros. Para esta última pregunta analice dos iteraciones consecutivas. Pregunta h: Indique el número mínimo de estaciones de reserva que son necesarias, para este código, en cada una de las ramificaciones para que no se bloquee la emisión de instrucciones. Analice dos iteraciones consecutivas Examen, junio de 2010 7 Dep. Arquitectura de Computadores