Sunteți pe pagina 1din 7

BALOTARIO CAPÍTULO 3 2019B

1. ¿Qué es un procesador superescalar?

Es un procesador segmentado que puede procesar más de una instrucción en cada una de sus etapas.

2. ¿Cuáles son las etapas en un procesador superescalar?


- Etapa de captación de instrucciones (IF)
- Etapa de decodificación,
- Etapa de emisión (issue),
- Etapa de ejecución,
- Etapa de escritura
3. ¿En qué estructuras se almacenan las instrucciones decodificadas?

Ventana de instrucciones, estaciones de reserva, buffer de renombramiento, buffer de reordenamiento,


etc.

4. ¿Cuál fue el primer procesador superescalar comercial?

Fue el procesador RISC de Intel 960CA, introducido en 1989, y tras el que muchos fabricantes
incorporaron características superescalares en sus líneas de procesadores comerciales.

5. ¿La diferencia entre un procesador superescalar y procesador VLIW en que radica?

Radica en si las técnicas que permiten el procesamiento simultaneo de instrucciones en cada etapa se
implementan en hardware (procesadores superescalares) o descansan en la capacidad del compilador
(procesadores VLIW).

6. ¿Quiénes podrían emitirse de manera ordena o desordenada y según qué?


- Las instrucciones, según se respete o no el orden de captación y decodificación de las
instrucciones.
- La finalización del procesamiento de las instrucciones, con respecto al orden de las
instrucciones en el programa.
- Accesos a memoria, según se respete o no el orden de las instrucciones de carga (LOAD) y
almacenamiento (STORE) en el programa.
7. ¿Cuáles son las características que se plantean para solucionar los problemas en las distintas
etapas?
- La decodificación paralela y el uso de la predecodificación.
- La emisión paralela de instrucciones a las unidades funcionales.
- La ejecución paralela de las operaciones codificadas
- La finalización del procesamiento de las instrucciones.
- La detección y resolución de dependencias.
- El mantenimiento de la consistencia secuencial mediante el desacoplo de la ejecución de la
instrucción y la escritura de resultados.
8. ¿Qué es paralelismo?

Es la mayor o menor facilidad para encontrar en un programa instrucciones que puedan procesarse
simultáneamente, depende de la frecuencia con que aparecen dependencias de datos y control; y de los
retardos de las operaciones codificadas en las instrucciones.

9. ¿Qué ocurre en un procesador superescalar cuando se decodifican varias instrucciones por ciclo?

No es posible comprobar al mismo tiempo las dependencias entre los operandos de las instrucciones
decodificadas y las instrucciones que ya se están ejecutando.

10. ¿De qué se encarga la unidad ID?

Toma las instrucciones de la cola donde las instrucciones captadas son almacenadas por parte de la
etapa IF y, tras decodificarlas, las pone en una estructura de buffers donde la unidad ISS determinará
que instrucciones de las que se encuentran dentro de una ventana definida en esa estructura de buffers
pueden pasar a ejecutarse y a qué unidad funcional.

11. ¿En qué microarquitecturas es usual la organización de varias etapas de decodificación?


CISC: P6 Y Netburst de Intel, K6 Y K7 de AMD
RISC: PowerPC, Alpha 21064

12. ¿En dónde se implementa la etapa de decodificación?

Se implementa entre la caché de segundo nivel y la caché de instrucciones de primer nivel.

13. ¿Cómo se implementa la estructura ventana de instrucciones?

Esta estructura se implementa a través de una cola de registros donde se almacenan las instrucciones
que han sido decodificadas, y que están a la espera de ser emitidas a las unidades funcionales donde se
ejecuta la operación que codifican.

14. ¿Qué se necesita para que una instrucción pueda ser emitida?

Necesita que estén disponibles tanto sus operandos como la unidad funcional correspondiente.

15. ¿De qué se encarga la etapa de emisión?

Se encarga de determinar qué instrucciones pueden emitirse al disponer de sus operandos y existir
unidades funcionales libres para su ejecución.

16. Las políticas de emisión de instrucciones ¿Cómo pueden clasificarse?


Pueden clasificarse:
Atendiendo al alineamiento: Emisión alineada y emisión no alineada.
Orden en que se emiten las instrucciones: Emisión ordenada y emisión desordenada.
17. ¿En qué consiste la técnica de utilizar estaciones de reserva?

Consiste en qué, en lugar de existir una única ventana desde donde las instrucciones se emiten a las
distintas unidades funcionales, exista una estructura, similar a la ventana, pero específica para cada
unidad funcional, o para un conjunto de unidades funcionales.
18. ¿En qué afecta la utilización de estaciones de reserva compartidas?

La utilización de estaciones de reserva compartidas es una decisión que afecta tanto a la complejidad de
la microarquitectura como a la eficiencia en el aprovechamiento del paralelismo entre instrucciones.

19. ¿Qué implica la política de envío de instrucciones?


-La selección de las instrucciones ejecutables.
-El envío puede ser ordenado, desordenado o parcialmente ordenado.
20. ¿Cuáles son las políticas de captación de operandos?

Se pude acceder a los operandos en el momento en que se realiza la EMISION a las estaciones de
reserva, o bien en el momento en que se ENVIAN las instrucciones a la unidad funcional
correspondiente para su ejecución

21. ¿Dónde se produce la invalidación de los registros de destino en la captación?

Si hay captación de operandos en el envío, la invalidación de los registros de destino se produce también
en el envio, lo mismo que el caso de que la captación se produzca en la emisión, la invalidación de los
registros de destino se produce en la emisión.

22. Que es el renombramiento de registros

Es una técnica para evitar los problemas de los riesgos WAR y WAW en procesadores en los que las
operaciones pueden terminar de ejecutarse desordenadamente.

23. ¿Qué se de tener en cuenta para hacer un renombramiento?


1) La escritura se hace siempre en un registro diferente de los que utilizan los operandos y de los
que se utilizan en otras escrituras
2) Para mantener la dependencia RAW, toda lectura que se haga de un registro que se escribe
previamente debe seguir haciéndose de dicho registro
24. ¿el renombramiento puede ser?
Estático. - si se realiza durante la compilación
dinámico. - si se realiza durante la ejecución del programa utilizando registros y hardware de
control extra.
25. ¿de qué vienen determinadas la velocidad del renombramiento y el coste del mismo?
Vienen determinadas por características como el número y tipo de buffers que utilizan como
registros temporales y por los mecanismos (indexados o asociativos) para acceder a los
mismos.
26. Cuáles son los cinco campos del buffer en el caso de acceso asociativo
- Asignación válida
- Registro de destino
- Contenido
- Contenido válido
- Bit de asignación ultima
27. Como se accede al buffer, de forma asociativa, para determinar si un registro determinado se ha
renombrado

Comprobando si el número de registro que se busca está incluido en el campo de registro de destino de
alguna de las líneas que tienen campo de asignación valida a 1.

28. ¿A qué se refiere la consistencia secuencial de un programa?


 El orden en que las instrucciones se completan.
 El orden e que se accede a memoria para leer (LOAD) o escribir (STORE)
29. ¿Cuándo se habla de consistencia fuerte?

Si ese orden al que hacen referencia tanto la consistencia del procesador como la consistencia de
memoria debe coincidir con el orden en que las instrucciones, o los accesos a memoria según el caso,
aparecen en el programa.

30. ¿Cuándo se habla de consistencia débil?

Si el orden puede ser diferente al del programa

31. ¿Cuál es la tendencia en los procesadores superescalares?

La tendencia apunta hacia el uso de esquemas de consistencia de memoria débiles y esquemas de


consistencia de procesador fuertes basados en el uso de buffer de reordenamiento o estructuras similares

32. ¿Cómo se realizan los accesos a memoria?

Los accesos a memoria se realizan a través de lecturas de memoria que hacen que los datos pasen de
memoria a registros del procesador o bien a través de escrituras en memoria que transfieren datos de
registros del procesadora a memoria. En repertorios tipo RiSC a través de LOADs y STOREs.

33. ¿Qué se entiende por buffer de reordenamiento (ROB)?

El ROB es una estructura con un comportamiento sencillo, aunque no son simples los recursos hardware
que precisaría su implementación eficaz. Además, el ROB permite gestionar correctamente el
procesamiento especulativo de las instrucciones de salto y las interrupciones, el ROB también puede
utilizarse para implementar el renombramiento.

34. ¿Cuáles son las posibilidades para la detección temprana de las instrucciones de salto?
 Detección paralela: Hay una etapa específica para detectar instrucciones de salto que opera en
paralelo con una etapa común en decodificación
 Detección anticipada: además de utilizarse la decodificación paralela, se analizan las últimas líneas
de la cola de instrucciones captadas antes de que pasen a la unidad de decodificación.
 Detección integrada en la captación: En el momento en que se captan las instrucciones se detecta
si la instrucción es de salto o no(para eso se pueden utilizar bits de precodificación)
35. ¿En qué consiste la gestión de saltos condicionales no resueltos?

Si en el momento en que la instrucción de salto evalúa la condición de salto, esta no se ha terminado de


evaluar todavía se dice que el salto o la condición de salto no se ha resuelto. Para resolver este problema,
los procesadores superescalares suelen utilizar el procesamiento especulativo del salto.

36. ¿En que se basa la idea de predicción de saltos?

Se basa en la idea de que el comportamiento de una instrucción de salto condicional presenta cierta
regularidad, y por tanto puede predecirse con una tasa de aciertos suficientemente elevada. En el
momento que se identifica una instrucción de salto condicional, se sigue una estrategia para predecir si
se producirá o no el salto antes de que se complete la evaluación de la condición de la que depende la
instrucción de salto.

37. ¿Que son las técnicas de predicción fija?

Son aquellas en las que el procesador toma siempre la misma decisión ante cualquier instrucción de salto
condicional: empieza a ejecutar instrucciones a partir de la dirección de destino de salto, o sigue captando
las instrucciones que siguen a la instrucción de salto.

38. Mencione los procesadores de algunos esquemas de predicción estatica


 Predicción basada en el código de operación
MC88110
PowerPC 603

 Predicción basada en el desplazamiento de salto:


PowerPC 603
Alpha 21064
 Predicción dirigida por el compilador
PA 8000
PowerPC 603

39. Que es la predicción dinámica implícita


Si no se guarda ninguna información explicita que represente el comportamiento pasado de la
instrucción. Se almacena únicamente la dirección de la instrucción que se ejecutó tras la instrucción de
salto .
40. Que es la predicción dinámica explicita
Para cada instrucción de salto condicional, existe un conjunto de bits que codifican la información relativa
al comportamiento pasado de la instrucción en cuestión. Estos bits se denominan bits de historia.
41. Que es la predicción dirigida por el compilador
A través de una serie de bits que existen en las instrucciones de salto (bits de predicción), el compilador
puede fijar la predicción que se va a realizar para la instrucción. Para fijar estos bits el compilador puede
en tener en cuenta los resultados obtenidos a partir de la ejecución de trazas del programa que indiquen
que tipo de comportamiento es el más probable para cada instrucción de salto.
42. Mencione una alternativa para guardar la información de la historia de saltos
Disponer de almacenamiento específico para los bits de historia dentro del procesador, es decir,
utilizando espacios de almacenamiento específico para la tabla de historia salto y para la tabla de patrones
43. ¿Qué comprende la recuperación de una predicción incorrecta?
a. Descartar los resultados de la ejecución especulativa
b. Continuar la ejecución de la secuencia de instrucciones alternativa
44. Describa de forma somera la ramificación multicamino

En este caso, el procesador no debe decidir entre la secuencia de instrucciones que deba ejecutar cada
vez que capta una instrucción de salto condicional no resuelta. Ahora, el procesador ejecuta las dos
secuencias de instrucciones concurrentemente. Con este fin, el procesador debe disponer de los
recursos necesarios para procesar concurrentemente instrucciones de ambas secuencias sin que existan
interferencias entre ambas.

45. ¿Cuáles son las instrucciones que implementan operaciones condicionales y en qué repertorios de
instrucciones se han implementado?
a. Las instrucciones se llamas instrucciones con predicado o instrucciones de ejecución
condicional o vigilada
b. Los repertorios en los que se implementaron son SPARC, Alpha, HP PA y x86, que se han
implementado en micro-arquitecturas súper-escalares.
46. Para abordar esta dificultad que plantea la finalización desordenada de instrucciones existen varias
alternativas:
a. Ignorar el problema y considerar solo la posibilidad de interrupciones imprecisas
b. Antes de emitir una instrucción, esperar a que las instrucciones anteriores terminen sin
interrupciones.
c. Almacenar los resultados de instrucciones que se han ejecutado y sólo escribirlos en los
ficheros de la arquitectura cuando hayan terminado las instrucciones previas.
d. Mantener la información necesaria para tener en cuenta las instrucciones que se han
ejecutado anticipadamente.
47. Para mantener la consistencia con el modelo secuencial de ejecución en el caso de interrupciones,
se pueden considerar dos posibilidades:
a. Las instrucciones se retiran ordenadamente.
b. Las instrucciones cambian el estado de la maquina según se ejecutan y se deben añadir
elementos que permiten reconstruir un estado bien definido
48. ¿Cuáles son las estrategias de procesamiento?
a. Interrupciones precisas con buffer de reordenamiento.
b. Interrupciones precisas con buffer de historia.
c. Interrupciones precisas con punto de chequeo-reparación.
d. Interrupciones precisas con registros de futuro y ROB.
49. Describa la estrategia de interrupciones precisas con buffer de reordenamiento

Esta estrategia para la gestión de interrupciones utiliza un buffer de reordenamiento al que se añade un
campo más en cada una de sus líneas. Este campo indica si la instrucción en cuestión ha dado lugar a
una excepción en alguna de sus etapas por las que ha pasado
50. Describa la estrategia de interrupciones precisas con puntos de chequeo-reparación.

En esta estrategia, el estado de maquina se almacena en determinadas etapas del cauce que reciben el
nombre de puntos de chequeo. En caso de interrupción, la existencia de estos estados almacenados
permite recuperar o reparar el estado de la máquina tras atender la interrupción.

S-ar putea să vă placă și