Capitulo 5 - Balotario

2
1/2 CAPÍTULO 5 5.1 Indique las características que comparten los procesadores superescalares y los procesadores VLIW. - Son procesadores segmentados que pueden emitir instrucciones en cada ciclo. - Disponen de varias unidades de ejecución por lo que se pueden ejecutar varias operaciones simultáneamente. 5.1 ¿Qué dificultades planteaban los primeros procesadores VLIW? - Los programas incrementaban su tamaño con respecto a los que utilizaban repertorios escalares. - Las unidades funcionales del procesador deben funcionar sincronizadamente al ejecutar operaciones paralelas. - La falta de compatibilidad. - En las situaciones en los que este tipo de procesadores puede aprovechar gran cantidad de paralelismo, un procesador vectorial podría ser más eficaz. 5.2.3 ¿Cuáles son las técnicas de planificación de bloque básico extendido? - Planificación de trazas. - Planificación de superbloques. - Planificación de hiperbloques. - Planificación de arboles de decisión. 5.2.3 ¿Cuáles son los factores que debe tener en cuenta el compilador a la hora de hacer transformaciones de código? - Las frecuencias relativas de las alternativas posibles tras una instrucción de salto condicional. - El costo a la ejecución de la operación en su nueva ubicación. - El coste del código de compensación que hay que añadir por si la suposición que se ha hecho no se cumple. 5.3.1 ¿En que consisten las operaciones con predicado? Una operación con predicado es aquella cuyo resultado modifica o no el destino de dicha operación en función del valor de un operador denominado predicado, que, por tanto, establece la condición de la que depende que la operación tenga efecto. 5.3.1 ¿Cuáles son los formatos posibles para las operaciones con predicado? p1 cmp.cnd a, b p1, p2 cmp.cnd a, b 5.3.2 ¿Cuáles son las estrategias que permiten garantizar el comportamiento del programa frente a excepciones? - Ni el hardware ni el sistema operativo aceptan excepciones que causen la finalización del programa. - Las instrucciones especulativas nunca generan excepciones y se añaden elementos para comprobar las condiciones de excepción. - Uso de bits de veneno. - Uso de centinelas. 5.3.3 ¿Cómo se realiza la especulación de acceso a memoria? - La instrucción se sitúa en la posición original del LOAD que se ha adelantado al STORE correspondiente, actuando como centinela. - Cuando se ejecuta el LOAD especulativo, se almacena temporalmente la dirección a la que se ha accedido. - Las direcciones a la que acceden los STORES que siguen al LOAD especulativo se comparan con la dirección del LOAD que se ha almacenado.

Transcript of Capitulo 5 - Balotario

Page 1: Capitulo 5 - Balotario

1/2

CAPÍTULO 5

5.1 Indique las características que comparten los procesadores superescalares y los procesadores VLIW. - Son procesadores segmentados que pueden emitir instrucciones en cada ciclo. - Disponen de varias unidades de ejecución por lo que se pueden ejecutar varias operaciones

simultáneamente. 5.1 ¿Qué dificultades planteaban los primeros procesadores VLIW? - Los programas incrementaban su tamaño con respecto a los que utilizaban repertorios escalares. - Las unidades funcionales del procesador deben funcionar sincronizadamente al ejecutar operaciones

paralelas. - La falta de compatibilidad. - En las situaciones en los que este tipo de procesadores puede aprovechar gran cantidad de paralelismo, un

procesador vectorial podría ser más eficaz. 5.2.3 ¿Cuáles son las técnicas de planificación de bloque básico extendido? - Planificación de trazas. - Planificación de superbloques. - Planificación de hiperbloques. - Planificación de arboles de decisión. 5.2.3 ¿Cuáles son los factores que debe tener en cuenta el compilador a la hora de hacer transformaciones de código? - Las frecuencias relativas de las alternativas posibles tras una instrucción de salto condicional. - El costo a la ejecución de la operación en su nueva ubicación. - El coste del código de compensación que hay que añadir por si la suposición que se ha hecho no se cumple. 5.3.1 ¿En que consisten las operaciones con predicado? Una operación con predicado es aquella cuyo resultado modifica o no el destino de dicha operación en función del valor de un operador denominado predicado, que, por tanto, establece la condición de la que depende que la operación tenga efecto. 5.3.1 ¿Cuáles son los formatos posibles para las operaciones con predicado?

p1 cmp.cnd a, b p1, p2 cmp.cnd a, b

5.3.2 ¿Cuáles son las estrategias que permiten garantizar el comportamiento del programa frente a excepciones? - Ni el hardware ni el sistema operativo aceptan excepciones que causen la finalización del programa. - Las instrucciones especulativas nunca generan excepciones y se añaden elementos para comprobar las

condiciones de excepción. - Uso de bits de veneno. - Uso de centinelas. 5.3.3 ¿Cómo se realiza la especulación de acceso a memoria? - La instrucción se sitúa en la posición original del LOAD que se ha adelantado al STORE correspondiente,

actuando como centinela. - Cuando se ejecuta el LOAD especulativo, se almacena temporalmente la dirección a la que se ha accedido. - Las direcciones a la que acceden los STORES que siguen al LOAD especulativo se comparan con la dirección

del LOAD que se ha almacenado.

Page 2: Capitulo 5 - Balotario

2/2

- Si la especulación a fallado: o En el caso de que la especulación solo afecte al LOAD, se vuelve a ejecutar cuando llegue al

centinela. o Si se han ejecutado otras operaciones que dependen del LOAD, habrá que repetirlas.

5.4.1 ¿A través de que el ITANIUM 2 aprovecha el máximo paralelismo entre instrucciones? - Mecanismos para que el compilador reordene el código de acurdo con su conocimiento global del mismo. - Recursos (registros y unidades funcionales) suficientes para realizar operaciones en paralelo y guardar

resultados intermedios. - Formatos de instrucciones para que el compilador comunique al hardware información clave del programa

compilado. 5.4.1 Describir todos los registros del ITANIUM. - 64 registros de 1 bit denominados p0, p1,…, p63. - 128 registros de propósito general, r0, r1,…, r127. - 128 registros de coma flotante, f0, f1,…, f127. - 8 registros de salto, b0, b1,…, b7. - 128 registros de 64 bits, ar0, ar1,…, ar127. 5.4.1 ¿Qué tipo de algoritmo usa el ITANIUM 2 y en que consiste? Usa el algoritmo de predicción de Yeh-Patt, con dos niveles de almacenamiento. El primer nivel esta ocupado con la caché L1 de instrucciones, de forma que es posible de disponer de la predicción de tomar o no tomar el salto y la dirección destino en un ciclo, en cada demanda de acceso a L1. El segundo nivel se encuentra la caché L2, donde se almacena la historia de la instrucción de salto. En el caso de acierto de predicción, el salto se produce sin penalización, pero si la predicción es incorrecta tendrá seis ciclos de penalización. 5.4.2 ¿Qué unidades funcionales posee el procesador CRUSOE? - Dos unidades funcionales para operaciones con enteros. - Una unidad para operaciones de coma flotante. - Una unidad de acceso a memoria (unidad de carga/almacenamiento) - Una unidad de procesamiento de saltos. 5.4.3 ¿Qué opciones se siguen basadas para mejorar los tiempos de ejecución del programa, procesado como una hebra? - Mejoras en procesadores superescalares. - Procesadores VLIW. - Procesadores superespeculativos. - Multiprocesadores monochip. - Procesadores multihebra simultanea. 5.4.3 Explique los procesadores superespeculativos. Buscan aumentar las prestaciones mediante recursos que permiten predecir el flujo de instrucciones, el flujo de datos entre el procesador y memoria, el flujo de datos desde y hacia los registros. 5.4.3 ¿Qué recursos utilizan los procesadores multihebra simultanea? Utilizan recursos para poder procesar correctamente instrucciones que pertenecen a varias hebras de control. Para ello, deben ser capaces de seleccionar, enviar y ejecutar instrucciones de varias hebras que estén activas simultáneamente.