Preguntas teoría
AOC 2021 FEBRERO
Formula la Ley de Dennard e indica cuáles son sus principales consecuencias.
Explica qué es la intensidad aritmética y describe brevemente el modelo de rendimiento roofline.
Ver solución
Transparencias 43 y 44 del tema 1. (Revisado)
Describe las principales características de los procesadores superescalares y enumera las técnicas sobre las que se fundamentan para obtener un alto rendimiento.
Ver solución
Transparencias 11, 13 y 14 del tema 2. (revisado)
Describe la etapa de Confirmación (Commit) de un procesador superescalar, indicando sobre qué estructura está fundamentada, algunos apuntes sobre cómo funciona y el objetivo que persigue.
Ver solución
Transparencias 30 y 31 del tema 2. (revisado)
¿Qué es un procesador SMT o de multihilo simultáneo? Indica qué objetivos persiguen este tipo de diseños, así como qué recursos o estructuras principales se han de replicar y/o compartir.
Ver solución
Transparencias 48-54 del tema 2. (revisado)
Define formalmente qué es un sistema de memoria coherente (utilizando una de las dos definiciones formales vistas en clase).
Ver solución
Transparencias 25 y 26 del tema 3.
Describe las principales características de los protocolos de coherencia de fisgoneo, sus ventajas e inconvenientes, indicando sobre qué tipo de redes de interconexión se sustentan.
Ver solución
Transparencias 31 y 32 del tema 3.
Describe las principales ventajas de los cerrojos de tipo test-and-test&set frente a los cerrojos test&set. Identifica si hay alguna desventaja en las implementaciones basadas en test-and-test&set.
Ver solución
Transparencia 104 del tema 3.
AOC 2021 JUNIO
Explica por qué se dice que la potencia es un problema (wall) a la hora de aprovechar la ley de Moore y menciona algunas técnicas habituales para reducir la potencia consumida por los procesadores.
Ver solución
Transparencias 13 a 16 del tema 1.
Enumera y describe brevemente las categorías de la clasificación de Flynn, indicando dentro de qué categoría se clasificarían los procesadores actuales, y explica la diferencia entre una arquitectura de memoria distribuida y una de memoria compartida.
Ver solución
Transparencias 32 y 33 del tema 1.
Explica brevemente la «ley de Gustafson» y sus implicaciones.
Ver solución
Transparencias 50 y 51 del tema 1.
Describe las etapas de un procesador superescalar por las que pasa una instrucción desde que se lee de la caché hasta que se emite para ser ejecutada (es decir, hasta antes de la etapa de ejecución).
Ver solución
Transparencias 25, 26, 27 del tema 2. (revisado)
Explica para qué sirve la especulación en instrucciones de memoria, y muestra cómo se detecta que se debe cancelar una instrucción de memoria especulada.
Ver solución
Transparencias 39 y 40 del tema 2. (revisado)
Explica qué son y para qué sirven las instrucciones SIMD.
Ver solución
Transparencia 32 del tema 1. Transparencias 59, 60, 61, 62 del tema 2. (revisado)
Defina la consistencia secuencial e indique qué debe de cumplir un sistema para satisfacerla.
Ver solución
Transparencias 77 y 86 del tema 3.
Explique por qué es necesario cierto soporte en el conjunto de instrucciones (ISA) para poder implementar cerrojos eficientemente. Mencione las dos alternativas que se han visto en clase.
Ver solución
Transparencias 101 y 107 del tema 3.
AOC JULIO 2021
Explique qué es el rendimiento pico de un procesador, qué factores influyen en su cálculo, y qué unidades de medida tiene.
Ver solución
Transparencia 39 del tema 1.
Enumere y describa brevemente los 4 fundamentos (o técnicas) en los se basan los procesadores superescalares actuales.
Ver solución
Transparencia 14 del tema 2. (revisado)
Explique por qué es importante una buena predicción de saltos en los procesadores superescalares actuales.
Ver solución
Transparencia 37 del tema 2. (revisado)
Explique brevemente qué es el procesamiento multihilo simultáneo, y las necesidades hardware para su implementación.
Ver solución
Transparencias 48-54 del tema 2. (revisado)
Explique cuál es el protocolo de coherencia que se implementaría en un chip multinúcleo con un número de núcleos elevado.
Ver solución
Transparencias 41 y 42 del tema 3.
Explique las tres etapas de cualquier operación de exclusión mutua y el objetivo que persigue cada una.
Ver solución
Transparencias 81 y 82 del tema 3.
Explique cuál es el problema de implementar los cerrojos con test&set (t&s), y cuál es la opti- mización que se suele desarrollar para resolver este problema.
Ver solución
Transparencias 86, 87 y 88 del tema 3.
Explique qué es la estrategia de conmutación en las redes de interconexión on-chip, y cuáles son los mecanismos tradicionales y de altas prestaciones que se usan.
Ver solución
Transparencias 116 y 117 del tema 3.
AOC 2022 FEBRERO
Comenta los 4 principales problemas (walls) que dificultan aprovechar el incremento de transistores en un chip y explica cómo los CMPs permiten solucionarlos.
Ver solución
Transparencias 11 a 25 del tema 1.
Explica las diferencias entre el modelo MIMD de memoria distribuida y el de memoria compartida.
Ver solución
Transparencia 33 del tema 1.
Explica la diferencia entre escalado fuerte y escalado débil, y explica la ley de Gustafson y sus consecuencias.
Ver solución
Transparencias 54 a 56 del tema 1.
Comenta las técnicas fundamentales que mitigan los problemas causados por las dependencias de nombres, las dependencias de datos y las dependencias de control en los núcleos superescalares actuales.
Ver solución
Transparencia 14 del tema 2. (revisado)
En un procesador con ejecución fuera de orden y con ejecución especulativa, ¿cómo se garantizan las excepciones precisas?
Ver solución
Transparencia 44 del tema 2. (revisado)
Explica qué son las dependencias de datos y cómo afectan a la vectorización de bucles. Muestra al menos un ejemplo de dependencia que evite la vectorización de un bucle.
Ver solución
Transparencias 69 y 70 del tema 2. (revisado)
Explica brevemente qué es el problema de la coherencia caché y muestra cómo un protocolo basado en invalidación puede evitar que se produzca.
Ver solución
Transparencias 18 a 20 y 24 del tema 3
Muestra las implementaciones de cerrojos test&set y la test&test&set y explica las diferencias entre ambas opciones.
Ver solución
Transparencias 88 a 92 del tema 3.
AOC 2022 JUNIO
Uno de los problemas en los procesadores actuales es el consumo de energía y la potencia disipada. Comenta las técnicas habituales para mitigar este problema
Ver solución
Transparencia 17 del tema 1.
Los procesadores CMP explotan el paralelismo fundamentalmente a tres niveles. ¿Podrías detal- larlos y comentarlos brevemente?
Ver solución
Transparencia 27 del tema 1.
Explica el modelo de rendimiento Roofline y detalla su principal ventaja.
Ver solución
Transparencias 43 y 44 del tema 1. Roofline
Detalla las etapas del algoritmo de Tomasulo+ROB explicado en clase (diciendo si se realizan o no en el orden del programa), así como las estructuras hardware necesarias para su funcionamiento.
Ver solución
Transparencia 21 y 22 del tema 2. (revisado)
La etapa (fase) de Confirmación (Commit) es la encargada de comprobar si una instrucción ha provocado una interrupción, y de tratarla para que sea precisa. Explica cómo lo hace.
Ver solución
Transparencia 31 del tema 2. (revisado)
Explica las políticas de planificación de hilos en un procesador CMP, y la técnica de ejecución multihilo simultánea (SMT).
Ver solución
Transparencias 48-54 del tema 2. (revisado)
Explica cómo se maneja la coherencia de un bloque de memoria con un directorio en relación a: i) los estados posibles de un bloque de memoria y ii) las acciones a realizar en un fallo de coherencia.
Ver solución
Transparencias 42 y 43 del tema 3.
¿Qué condiciones debe cumplir un sistema CMP para poder decir que tiene un modelo de memoria que satisface la Consistencia Secuencial?
Ver solución
Transparencia 71 del tema 3.
AOC 2022 JULIO
Comenta la ley de Dennard y explica cuáles son sus principales consecuencias, junto a la ley de Moore, en el diseño de procesadores.
Ver solución
Transparencias 9 y 10 del tema 1.
Describe y formula la ley de Amdahl para computadores paralelos, así como su relación con la escalabilidad.
Ver solución
Transparencias 49 y 50 del tema 1.
Explica en qué consiste la planificación dinámica de instrucciones. Describe cómo el algoritmo de Tomasulo+ROB consigue implementar dicho concepto clave.
Ver solución
Transparencias 16, 18 y 21 del tema 2.
Comenta las diferencias entre interrupciones precisas e imprecisas. ¿Cuál es la relación entre las primeras y la especulación?
Ver solución
Transparencias 57, 58 y 59 del tema 2.
Explique cuál es el protocolo de coherencia que se implementaría en un chip multinúcleo con un número de núcleos elevado.
Ver solución
Transparencias 39 y 41 del tema 3.
¿Qué condiciones debe cumplir un sistema CMP para poder decir que tiene un modelo de memoria que satisface la Consistencia Secuencial?
Ver solución
Transparencia 71 del tema 3.
¿Qué ventajas ofrece la implementación de un cerrojo utilizando el algoritmo basado en t&t&s frente a t&s? ¿Y cuáles son las desventajas?
Ver solución
Transparencias 90, 91 y 92 del tema 3.
Describe brevemente cuáles son las propiedades que debería poseer una red de interconexión así como sus principales parámetros de diseño.
Ver solución
Transparencias 103 y 104 del tema 3.
Problemas
AOC 2021 FEBRERO
- (2 puntos) Se dispone de un procesador con 4 núcleos, donde cada núcleo es un procesador superescalar con
ejecución especulativa según el algoritmo de Tomasulo, y tiene una unidad vectorial por núcleo de 128 bits. Se
pide lo siguiente:
a) (0,5 puntos) Suponiendo que tenemos una aplicación que utiliza valores en doble precisión, y conseguimos
una paralelización y vectorización perfecta del 90 % del tiempo de ejecución del programa secuencial, ¿cuál es
la aceleración que obtenemos en la ejecución paralela y vectorizada comparada con la ejecución de la versión
secuencial en un único núcleo sin vectorizar? ¿Cuál sería la máxima aceleración posible de esa aplicación
en el caso ideal de tener un número infinito de núcleos y unidades vectoriales de tamaño ilimitado?
b) (1 punto) Cada núcleo superescalar del procesador puede buscar, emitir y confirmar dos (2) instrucciones por
ciclo, y suponemos que tiene estaciones de reserva y un buffer de reordenación (ROB) de tamaño ilimitado,
y que dispone de las siguientes unidades de ejecución en coma flotante sin segmentar: 2 UF de sumas/restas
(latencia de 2 ciclos), 1 UF de multiplicaciones (latencia 5 ciclos), y 1 UF de divisiones (latencia 40 ciclos).
En uno de los núcleos queremos ejecutar las instrucciones del siguiente código:
Instrucción F D I X W C Comentario addd f3, f1, f2 (1) addd f2, f3, f2 (2) multd f4, f3, f2 (3) divd f5, f2, f1 (4) subd f2, f3, f1 (5) c) (0,5 puntos) Muestra la estructura del ROB (con los campos instrucción, estado, destino y valor) al acabar el ciclo anterior al de la confirmación de la primera instrucción. - (2 puntos) Tenemos un computador con dos procesadores que sigue el modelo de memoria de consistencia secuencial. Cada procesador tiene una caché privada asociativa de 4 vías, las cuales están conectadas mediante un bus a una memoria compartida. La coherencia entre las cachés se mantiene mediante un protocolo MSI de fisgoneo como el visto en clase que no optimiza el patrón migratorio y que puede generar las transacciones BusRd, BusRdX y BusUpgr. En este computador se ejecuta un programa con dos hilos con las siguientes instrucciones:
Hilo A Hilo B
A1: r1 = y B1: y = 3
A2: x = r1 + 2 B2: r2 = x
A3: y = r1 + 5 B3: z = r2 + 1
Donde A1, A2, A3, B1, B2 y B3 son etiquetas; x, y y z son variables almacenadas en memoria inicializadas a 0;
y r1 y r2 son registros.
a) (1 punto) Indica, justificando la respuesta, cuáles son los posibles resultados del programa (valores finales
de las variables de memoria).
b) (1 punto) Suponiendo en este apartado que se ejecutan primero todas las instrucciones del primer hilo y
después todas las del segundo hilo, que las cachés están inicialmente vacías y que cada variable se almacena
en un bloque de memoria distinto, completa la siguiente tabla indicando las transacciones que se producen
en el bus, el estado de cada bloque en la caché antes y después de la transacción y quién proporciona el
bloque de datos.
AOC JUNIO 2021
- (1,5 puntos) Se están planificando una serie de mejoras en el diseño de un procesador superescalar de 2 vías, 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 aplicación de prueba que usaremos para evaluar su rendimiento consta de 109 instrucciones con la siguiente distribución: 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 aritmético-lógicas de tipo entero; 10 % de operaciones aritmético-lógicas en punto flotante; y 5 % de saltos incondicionales. a) (0,5 puntos) La primera mejora que queremos estudiar es relativa al predictor de saltos. El predictor de saltos original tenía un acierto del 90 % mientras que el nuevo predictor diseñado tiene un acierto del 98 %, lo cual nos proporciona una ganancia en el tiempo total de ejecución de la aplicación (speedup) del 3 %. Se pide el tiempo de ejecución de la aplicación (en segs.) en el procesador original y en el procesador con la predicción mejorada de los saltos. b) (0,5 puntos) La segunda mejora, que se aplica sobre el procesador original sin la primera mejora, introduce el uso de cachés 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 ejecución de la aplicación (en segs.) así como la ganancia en tiempo de ejecución. c) (0,5 puntos) Calcular los MFLOPS del procesador original así como los de las dos mejoras presentadas.
- (2,5 puntos) En este problema disponemos de un procesador CMP de 4 núcleos (quad-core). La coherencia del
CMP se mantiene según el protocolo MSI, al que se le han incorporado las optimizaciones de Flush (envía el
bloque a otra caché sin actualizar memoria) y Flush’ (envía el bloque a la memoria y a la caché peticionaria si
la hay). Este protocolo no soporta mensajes BusUpg.
a) (1,5 puntos) Considera la siguiente secuencia de operaciones sobre dos datos, X e Y, que pertenecen a
bloques de caché diferentes: r1X r3Y r2X Rz3Y w2X w2Y w1Y r1X Rz1Y r2X w4Y, donde r indica
una lectura, w una escritura, Rz el reemplazo del bloque de cache, y 1, 2, 3 ó 4 el núcleo que realiza la
operación. Las operaciones no se solapan y se completan en el orden indicado. Indica, para cada una de
las operaciones anteriores, la transacción o transacciones de bus que se generan, el vector de estados para
cada bloque de datos tras realizar cada operación, y quién proporciona el bloque de datos en caso de ser
necesario (inicialmente las caches están vacías), rellenando la siguiente tabla:
Operaciones Trans. bus Vector estados X Vector estados Y Dato proporc. por ... b) (1 punto) Cuando ejecuta un aplicación secuencial de coma flotante este CMP obtiene un CPI de 0,56 (usando solo un núcleo). Para poder ejecutar la versión paralela se requiere usar un cerrojo y una barrera.
- (0,25 puntos) Si las operaciones de sincronización no introdujeran ninguna sobrecarga, ¿cuál sería el valor del CPI obtenido usando los 4 núcleos?
- (0,75 puntos) Sabiendo que los cerrojos representan un 2 % de las instrucciones en el código paralelo, y las barreras un 2 por mil de las instrucciones, y que los cerrojos tardan en ejecutarse 10 ciclos, ¿cuál sería el límite de la latencia que nos pueden introducir las barreras en el CPI para que la ejecución en cuatro núcleos no sea peor que en uno sólo?
AOC JULIO 2021
- (2 puntos) Para la siguiente secuencia de instrucciones:
a) (1,25 puntos) Muestre un cronograma de la ejecución de las primeras dos iteraciones en un procesador superescalar de 2 vías como el propuesto en clase (F+D en orden, I+X+W fuera de orden, C en orden) que utiliza un ROB. Se dispone de las siguientes unidades funcionales: 2 unidades de carga/almacenamiento con 2 ciclos de latencia en los aciertos de caché, 2 ALUs enteras de latencia 1, un sumador en coma flotante de latencia 3, un divisor en coma flotante de latencia 5, y una unidad de saltos que resuelve los saltos en la etapa de ejecución. Todas las unidades funcionales están segmentadas. El predictor de saltos es estático y predice que no se va a saltar en los saltos hacia adelante, y que sí se va a saltar en los saltos hacia atrás. Suponga para este problema un tamaño ilimitado del ROB, un número ilimitado de estaciones de reserva de todos los tipos y un número ilimitado de entradas en las colas de cargas y almacenamientos. Suponga también que todos los accesos a memoria aciertan en la caché. El cronograma debe indicar la etapa en la que se encuentra cada instrucción en cada ciclo y se debe indicar por qué se producen las detenciones. b) (0,75 puntos) Calcule cuántos ciclos tardaría en ejecutarse una iteración normal, y los ciclos totales de ejecución del programa completo. Para el cálculo de los ciclos de una iteración normal, considere la diferencia entre el ciclo del commit de la última instrucción de la segunda iteración y el ciclo del commit de la última instrucción de la primera iteración.
Solución: a) El cronograma quedaría como sigue. Se muestran 3 iteraciones, aunque se pedían solo 2 en el enunciado.
b) Para el cálculo de los ciclos que tarda en ejecutarse una iteración normal, mirando el cronograma, vemos que la primera iteración realiza el commit de su última instrucción en el ciclo 17, y que a partir de ese momento se realiza el commit de la última instrucción de una iteración cada 5 ciclos, por lo que una iteración normal tarda 5 ciclos. El programa ejecutará 1024 iteraciones (12288 / 12). Para el cálculo de los ciclos totales de ejecución del programa completo, tendremos 1023 iteraciones más los ciclos de la primera iteración (17 ciclos), por tanto, en total se tardarán: Tiempoprograma-completo = 17 + 1023 × 5 = 5132 ciclos.
- (2 puntos) Tenemos un CMP con 4 núcleos que utiliza un protocolo de coherencia snoopy basado en invalidación con estados MSI y política de post-escritura (writeback). El tamaño de bloque es de 32 bytes. El protocolo genera los mensajes BusRd, BusRdX en el bus, acepta peticiones PrRd y PrWr por parte de los núcleos y los controladores de caché son capaces de realizar las acciones Flush_$M y Flush$ (enviar el dato a caché y memoria, o solo a caché). a) (0,5 puntos) Complete la siguiente tabla mostrando las transiciones de estados de las cachés, indicando para cada transición el estado destino, los mensajes que se envían y las acciones que se realizan.
b) (1,5 puntos) En este CMP se producen los accesos a memoria que se muestran en la siguiente tabla. Dichos accesos corresponden a bloques diferentes de caché. Los accesos se producen secuencialmente, de forma que uno no empieza hasta que ha acabado completamente el anterior. Complete la tabla siguiente, que muestra para cada acceso si se trata de un fallo o acierto en las cachés privadas, el estado en las cachés del bloque antes y después del acceso y los mensajes de red y acciones que se generarían para resolver el acceso. Suponga que inicialmente las cachés se encuentran vacías.
Solución: a) Tabla de transiciones para las cachés:
b) La tabla solicitada quedaría como sigue: