Sie sind auf Seite 1von 5

ARQUITECTURA Y ORGANIZACIN DE COMPUTADORES

Grado en Ingeniera Informtica (Grupos 2 y 3) Examen final 23 de enero de 2013


Grupo 2 Grupo 3

Apellidos, Nombre:_________________________________________________________________

1. (6,5 puntos) Responder brevemente a las siguientes cuestiones que a continuacin se plantean (se valorar la capacidad de concrecin del alumno): a) b) c) d) e) f) (0,5 puntos) Enumera y describe brevemente las diferentes categoras en las que puede clasificarse un computador segn la taxonoma de Flynn. En cul puede clasificarse a los multiprocesadores de hoy en da? (0,5 puntos) Explica cules son las principales ventajas de una arquitectura NUMA frente a una arquitectura UMA. (0,5 puntos) Describe los conceptos de eficiencia e isoeficiencia en relacin a la evaluacin de prestaciones en computadores paralelos. (0,5 puntos) Explica las ventajas e inconvenientes que presenta una arquitectura superescalar frente a una arquitectura VLIW. (0,5 puntos) Enumera algunos de los factores que crees que han promovido la aparicin de las arquitecturas CMP. En tu opinin cul de ellos crees que ha tenido un mayor peso? Justifica la respuesta. (0,5 puntos) Dado un multiprocesador formado por varios nodos, cada uno con la estructura mostrada a continuacin, explica razonadamente a qu categora o categoras de las estudiadas en clase puede pertenecer.

g)

h)

i)

(0,5 puntos) Supn un multiprocesador de memoria compartida con 8 procesadores, cada uno con una cache L1 privada, conectados mediante un bus compartido, qu tipo de protocolo de coherencia crees que es el ms apropiado para resolver el problema de la coherencia de cache en este contexto? Justifica la respuesta. (0,5 puntos) Explica el propsito del estado E en un multiprocesador de memoria compartida comercial. Asumiendo un protocolo basado en fisgoneo, cmo se llegara hasta dicho estado? Qu transacciones de bus ocasionaran que se abandonase el estado E? (0,75 puntos) Para la siguiente secuencia de operaciones realizadas por 3 procesadores sobre el mismo bloque de datos, indica las transacciones de bus que se generan segn el protocolo MESI, el vector de estados para el bloque de datos en cada caso, y quin proporciona el bloque de datos caso de ser necesario (inicialmente las caches estn vacas). Supn que el protocolo incluye tambin la transaccin de bus BusUpgr: R1 W2 R3 W3 R2 W1 W1 W2 R3 (0,5 puntos) Dado el siguiente cdigo, qu resultados sern posibles para r1 y r2 bajo consistencia secuencial? Justifica la respuesta. Supn que r1, r2, X e Y valen 0 inicialmente.

j)

P1
X = 1; r1 = Y;

P2
Y = 1; r2 = X;

k)

(0,75 puntos) Para el siguiente fragmento de cdigo: GETLOCK(lock); globaldiff += mydiff; FREELOCK(lock); Muestra cmo podran usarse directamente las instrucciones LL y SC, eliminando las llamadas a GETLOCK y FREELOCK. Supn que cada hilo tiene almacenado el valor de la variable mydiff en el registro reg2.

l)

(0,5 puntos) Dado un multiprocesador con 16 nodos conectados mediante una red de interconexin con topologa de hipercubo: i. Dibuja cmo estaran interconectados los nodos del mismo entre s. ii. Pon un ejemplo de algoritmo de encaminamiento para dicha topologa, mostrando la ruta (los nodos intermedios por los que pasara) para un mensaje enviado desde el nodo 6 hasta el 14.

2. (2 puntos) Dado un multiprocesador de memoria compartida cc-NUMA formado por 128 nodos, cada uno de los cuales tiene un procesador (monocore) con tres niveles de cache (L1, L2, L3). Adems, cada nodo tiene tambin una porcin de 4 GBytes de la memoria total de la mquina. La cache de ltimo nivel (L3) de cada procesador tiene un tamao de 128KB, es de correspondencia directa y el tamao de lnea es de 64 bytes. La coherencia de las caches L3 se mantiene empleando el protocolo de coherencia basado en directorio estudiado en clase (caches write-back, estados MSI y cdigo de comparticin full-map para el directorio), y que emplea las siguientes transacciones de red: RedLect, RedEscr, RedUpgr, RedDato, RedInv, RedBusc, RedBuscInv, RedInvOK, RedBuscOK, RedBuscInvOK y RedWB. El tamao de las direcciones de memoria es de 44 bits. Se pide: a) (0,5 puntos) Indica el nodo origen (home) para las siguientes direcciones de memoria asumiendo que el direccionamiento es en bytes, y que los bloques se reparten entre los nodos siguiendo una distribucin roundrobin como la explicada en clase: (1) 0x01001000102 ; (2) 0x01001080138; (3) 0x01001F401F0 b) (1,5 puntos) Suponer las siguientes operaciones de memoria (loads y stores) realizadas por tres procesadores diferentes. Las operaciones ocurren en el orden mostrado y una operacin no comienza hasta que la que anterior ha finalizado. Suponer que inicialmente las cache estn vacas. Indicar qu operaciones de memoria ocasionarn fallos de L3 y mostrar el estado del directorio antes y despus de cada fallo de cache, as como las transacciones de red que se generaran para resolverlo: # (1) (2) (3) (4) (5) (6) Procesador P0 P0 P2 P0 P4 P4 Operacin de memoria LW R10, 0x01001000102 SW 0x01001080138, R10 SW 0x01001000102, R10 LW R10, 0x01001000102 SW 0x01001000102, R10 SW 0x01001080138, R10

3. (1,5 puntos) Se estn planificando una serie de mejoras en el diseo de un procesador superescalar de 2 vas, con un IPC promedio de 1,4 que cuenta con un cauce de 10 etapas y que opera a una frecuencia de 2 GHz. La aplicacin de prueba que usaremos para evaluar su rendimiento consta de 109 instrucciones con la siguiente distribucin: 25% instrucciones de saltos condicionales; 30% de operaciones de memoria (de las cuales el 70% son de tipo entero y el resto de punto flotante); 30% de operaciones aritmtico-lgicas de tipo entero; 10% de operaciones aritmtico-lgicas en punto flotante; y 5% de saltos incondicionales. a) (0,6 puntos) La primera mejora que queremos estudiar es relativa al predictor de saltos. El predictor de saltos original tena un acierto del 90% mientras que el nuevo predictor diseado tiene un acierto del 98%, lo cual nos proporciona una ganancia en el tiempo total de ejecucin de la aplicacin (speedup) del 3%. Se pide el tiempo de ejecucin de la aplicacin (en segs.) en el procesador original y en el procesador con la prediccin mejorada de los saltos. b) (0,6 puntos) La segunda mejora introduce el uso de cachs no bloqueantes en el procesador. Aunque la tasa de fallos no cambia, al permitir un mayor paralelismo entre los accesos a cach se consigue reducir el CPI medio de todas las operaciones de memoria en un 40%, sin afectar al CPI medio del resto de instrucciones. Sabiendo que el CPI medio original de todas las operaciones de memoria era de 2, se pide el nuevo tiempo de ejecucin de la aplicacin (en segs.) as como la ganancia en tiempo de ejecucin. c) (0,3 puntos) Calcular los MFLOPS del procesador original as como los de las dos mejoras presentadas.

SOLUCIONES SOLUCIN 1
a) Ver transparencia 20 del Tema 1. b) Ver transparencias 26 y 27 del Tema 1. c) Ver transparencias 70 del Tema 1. d) Ver transparencia 49 del Tema 2. e) Ver transparencia 65 del Tema 2. f) Se trata de un multiprocesador de memoria compartida, puesto que las comunicaciones se realizan a nivel del subsistema de memoria. Adems, se trata de una arquitectura con acceso a memoria no uniforme (NUMA), puesto que los mdulos de memoria se reparten entre los distintos nodos del multiprocesador. As pues, las categoras a las que podra pertenecer son cc-NUMA y ncc-NUMA. g) Ver transparencia 11 del Tema 3. h) Ver transparencia 61 del Tema 3. i) Ver transparencia 64 del Tema 3. j) Los valores posibles son (X,Y) = {(0,1); (1,0); (1,1)}. k) El cdigo pedido sera: LL reg1, globaldiff add reg1, reg1, reg2 SC globaldiff, reg1 beqz acumula l) Ver transparencia 21 del Tema 5.

SOLUCIN 2
a) Dado que el tamao de bloque es de 64 bits, los 6 bits menos significativos de cada direccin representan el desplazamiento de bloque y el resto la direccin de bloque. Dentro de la direccin de bloque, y dado que hay 128 nodos, los 7 bits menos significativos codifican el nodo origen segn la poltica round robin. As pues, el nodo origen para la direccin 0x01001000102 es el 4, al igual que para la direccin 0x01001080138, mientras que para la direccin 0x01001F401F0 es el nodo 7. b) Inicialmente el vector de estados del bloque (resumido para los procesadores que lo acceden) es V(p0, p2, p4) = (I, I, I). La siguiente tabla recoge la informacin pedida: Directorio Antes (1)p0 (2)p0 (3)p2 (4)p0 (5)p4 LWB1 SWB2 Repl B1* SWB1 LWB1 SWB1 NC{} NC{} Comp{p0} Comp{p0} Priv{p2} Comp{p0,p2} Directorio Despus Comp{p0} Priv{p0} Comp{p0} Priv{p2} Comp{p0,p2} Priv{p4} Transacciones de red RedLectRedDato RedEscrRedDato -RedEscrRedInv0 RedInvOK0RedDato RedLectRedBuscRedDato RedBuscOK RedEscrRedInv0RedInvOK0 RedInv2RedInvOK2 RedDato RedEscrRedBuscInvRedDato RedBuscInvOK RedWB Estados despus en L3 B1 (S, I, I) B2 (M, I, I) B1 (I, I, I) B1 (I, M, I) B1 (S, S, I) B1 (I, I, M)

(6)p4

SWB2 ReplB1**

Priv{p0} Priv{p4 }

Priv{p4} NC{}

B2 (I, I, M) B1 (I, I, I)

*Los bloques B1 y B2 mapean en el mismo conjunto de las caches L3, y puesto que son de mapeo directo, el traer uno significa que el otro hay que reemplazarlo. En este caso se trata de un reemplazo de un bloque limpio, por lo que no se avisa al directorio. **En este caso el reemplazo es para un bloque en estado modificado, y por lo tanto, se enva la transaccin RedWB para actualizar la memoria y la informacin de directorio.

SOLUCIN 3
a) Para calcular el tiempo de ejecucin de una aplicacin utilizamos la conocida ecuacin: Tiempoejec = NI CPI Treloj Obtenemos: Tiempoejec = 109 1/1,4 0,5*10-9 = 0,357 segs. A partir de la frmula de la ganancia en el tiempo de ejecucin: S = Timeoriginal / Timemejorado obtenemos el nuevo tiempo de ejecucin (del enunciado sabemos que la ganancia que proporciona el nuevo predictor de saltos es de un 3%): 1,03 = 0,357 / Timemejorado

Timemejorado = 0,346 segs.

b) En este caso sabemos que con las cachs no bloqueantes tenemos un CPI de 1,2 para todas las operaciones de memoria (reduccin del 40% con respecto al CPI original de 2). Para poder calcular el nuevo tiempo de ejecucin nos hace falta conocer el nuevo CPI medio de todas las instrucciones. Para ello, necesitamos averiguar el CPI medio del resto de instrucciones a excepcin de las operaciones de memoria. Como sabemos que el CPI medio de todas las instrucciones es de 0,71 (es decir, la inversa de 1,4), obtenemos: CPImedio_total = fraccin_tipo_instr CPItipo_instr 0,71 = 0,30 2 + 0,70 CPIresto Por lo que el nuevo CPI medio de todas las instrucciones es:

CPIresto = 0,16

CPImedio_total_nuevo = 0,30 1,2 + 0,70 0,16 = 0,47 Este clculo lo podramos haber hecho tambin a partir de la Ley de Amdahl: sabemos que el CPI se compone de varios factores, de los cuales uno lo mejoramos y el resto los dejamos constantes, y nos interesa conocer cunta ganancia obtenemos en el CPI por medio de mejorar uno de sus componentes. A partir de aqu obtenemos el nuevo tiempo de ejecucin para las caches no bloqueantes, resultando: Tiempoejec = 109 0,47 0,5*10-9 = 0,23 segs. Y a partir de la formula de la ganancia en tiempo de ejecucin: S = Timeoriginal / Timemejorado = 0,357 / 0,23 = 1,52 Es decir, hemos obtenido una ganancia del 52% en el tiempo de ejecucin por medio de utilizar cachs no bloqueantes en el diseo de nuestro procesador.

c) Lo primero que necesitamos saber es el nmero de operaciones en coma flotante que ejecuta nuestra aplicacin. El enunciado nos dice que es el 10% del total de instrucciones, luego tendremos 108 instrucciones FP. Dividiendo por el tiempo que tarda en ejecutar la aplicacin en cada uno de los casos, obtenemos: MFLOPSoriginal = 108 / 0,357 = 280,11 MFLOPS MFLOPSmejora_saltos = 108 / 0,346 = 289 MFLOPS MFLOPSmejora_caches = 108 / 0,23 = 434,78 MFLOPS

Das könnte Ihnen auch gefallen