1 / 27

Procesadores Superescalares

Procesadores Superescalares. instrucciones. EU 2. EU 1. EU 3. Los procesadores superescalares se caracterizan por emplear varias unidades de ejecución segmentadas que trabajan de forma paralela.

nova
Download Presentation

Procesadores Superescalares

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Procesadores Superescalares

  2. instrucciones EU2 EU1 EU3 • Los procesadores superescalares se caracterizan por emplear varias unidades de ejecución segmentadas que trabajan de forma paralela

  3. La ejecución en unidades independientes que trabajan de forma paralela plantea los siguientes problemas: • Distribución de instrucciones y Decodificación paralela. • Determinación de la unidad de ejecución a la que se envía cada instrucción. • Despacho de instrucciones. Mantenimiento de un buffer de instrucciones para cada unidad de ejecución. Es una fase opcional que permite acelerar la distribución. • Detección y resolución de dependencias de datos • Detección y resolución de dependencias de control : Predicción de salto • Preservación de la consistencia secuencial

  4. Buffer de Instrucciones Distribución / Decodificación Ventana de distribución UE UE UE UE

  5. Ventana de distribución Buffer de Instrucciones Distribución / Decodificación D U D U D U D U UE UE UE UE Shelvings Se evita el bloqueo por dependencias de datos verdaderas en la fase de distribución ya que, a pesar de existir una dependencia de este tipo, las instrucciones pueden ser distribuidas

  6. Las dependencias estructurales en la fase de distribución pueden venir por dos motivos: • Falta de entradas en el buffer de la unidad de despacho correspondiente. • Conflicto en la utilización de la ruta de datos

  7. FP Instrucción FX Instrucción Ventana de distribución Distrib FP Instrucción FP Instrucción Buffer de Instrucciones Distribución / Decodificación D U D U D U D U Bloq Distrib FX UE FX UE FP UE FP UE Distrib • El conflicto en la utilización de la ruta de datos

  8. Tipos de Shelvings • Una única unidad de despacho central para todas las unidades de ejecución • Un número reducido de unidades de despacho compartidas por varias unidades de ejecución • Una unidad de despacho individual para cada unidad de ejecución

  9. Formato de distribución • Recodificación del campo código de las instrucciones • Dirección de los operandos • Operandos en sí • No tiene en cuenta la posibilidad de que el operando no esté disponible debido a una dependencia de datos verdadera • Se debe incluir un bit que indique si el operando está pendiente de la resolución de una dependencia • Cuando el operando está pendiente de búsqueda, el espacio destinado a él contiene es ese caso su dirección

  10. Operandos en sí • La unidad de despacho se encarga de resolver las dependencias de datos existentes • La información que se transmite corresponde al identificador del registro que ha sido calculado junto con el valor obtenido de la unidad de ejecución • Una búsqueda dentro de la unidad de despacho permite conocer si es necesario actualizar con el valor calculado los campos operandos de las instrucciones contenidas en el buffer • Además los resultados deben ser actualizados en los registros utilizados para el “renombramiento” con el fin de que estén disponibles de forma anticipada para las instrucciones pendientes de distribución

  11. Búsqueda de operandos durante la distribución Búsqueda durante la distribución Búsqueda durante el despacho

  12. Política de despacho • Las instrucciones sólo se pueden despachar si todos sus operandos están disponibles • Distribución: chequeo de los bits de operando pendiente • Despacho: Información se toma directamente de los registros

  13. Detección y resolución de dependencias • Dependencias verdaderas: nada que hacer • Dependencias falsas: renombramiento MUL R1, R5, R5 … SUB R1, R2, R6 … DIV R1, R3, R4 ADD R1, R2, R3 MUL R6, R1, R4

  14. ROB • La explotación del paralelismo a nivel de instrucción lleva a "ejecutar" las instrucciones fuera del orden secuencial determinado por el programa • lo que se realiza fuera de orden es el calculo de los resultados de las instrucciones mientras que la ejecución real de las instrucciones no es efectiva hasta que los resultados son actualizados, bien en los registros bien en la memoria • El ROB (Reorder Buffer) es el elemento de la estructura de los superescalares que permite preservar la consistencia secuencial • Para ello mantiene un buffer en el que se almacenan las instrucciones en el orden en el que han sido distribuidas, es decir, en el orden secuencial de ejecución

  15. ROB • Además de una instrucción cada entrada tiene un campo para almacenar el resultado calculado por la misma • Mientras la instrucción permanece en el ROB el resultado está pendiente de ser actualizado en los registros o en la memoria • El orden en el que se sacan las instrucciones del ROB es el orden secuencial determinado por el programa cargado en memoria. De esa forma los resultados son actualizados en dicho orden

  16. Técnicas de Predicción de salto • Las instrucciones de salto suponen un inconveniente para la obtención de un rendimiento alto • Cuando se decodifica una instrucción de salto, el procesador bloquea el fetch de instrucciones hasta que el salto no es resuelto (burbuja). La ventana de instrucciones tiene pocas instrucciones • Una solución = métodos precisos que predigan la dirección de los saltos condicionales, así como anticipar lo antes posible el cálculo de la dirección destino • Se hace un prefetching y se ejecutan instrucciones del camino destino antes de que el salto sea resuelto (ejecución especulativa)

  17. Técnicas de Predicción de salto Introducir cuando es tomado Introducir cuando es ejecutado por 1ª vez • Tipos: • Predicción estática (tiempo de compilación) • Predecir todos los saltos como tomados • Predicciones basadas en el código de operación • Predicciones en función de su dirección (ejemplo hacia atrás predecirlos como tomados y hacia delante como no) • Predicción dinámica (tiempo de ejecución) • BHT (Branch History Table) Información sobre las últimas ejecuciones de los saltos • BTAC (Branch Target Address Cache) Dirección destino de los últimos saltos tomados

  18. Técnicas de Predicción de salto • El Branch Target Buffer (BTB) es una pequeña memoria asociativa que guarda las direcciones de los últimos saltos ejecutados así como su destino. A su vez guarda información que permite predecir si el salto será tomado o no. • En la etapa de fetch se mira si la dirección de la instrucción está en el BTB. Si es así se miran los bits de predicción y se decide si el salto ha de ser tomado o no. Si el salto no es tomado o la dirección no está en el BTB en el siguiente ciclo se hace el fetch de la siguiente instrucción en orden. Si el salto es tomado en el siguiente ciclo e hace el fetch del nuevo camino de ejecución.

  19. Técnicas de Predicción de salto • Fallo en la predicción • Se comprueba si la predicción es correcta al ejecutar la instrucción de salto. Si no, el procesador deberá realizar un vaciado del pipe, quitando todas las instrucciones del camino incorrecto pendientes de ser ejecutadas y restaurando el estado de los registros como estaban antes de predecir el salto. Una nueva burbuja • Realizará el fetch de las instrucciones del camino correcto

  20. Resumen

  21. Resumen • La fase de emisión juego un papel fundamental • Hay que decidir qué instrucciones se pueden emitir (en función de las unidades funcionales disponibles) • Hay que leer muchos registros a la vez • Si una se bloquea sería muy caro en cuanto a prestaciones • Idem con las penalidades de fallo caché • Por tanto, salvo en sistemas empotrados que suelen llevar superescalares menos agresivos, todos poseen emisión dinámica: el procesador decide en tiempo de ejecución qué instrucciones pueden emitirse a la vez y cuáles no

  22. Resumen • IF • Un superescalar de grado m, puede emitir m instrucciones por ciclo, de forma que la caché debe ser capaz de atender esta demanda • Ventana de Instrucciones: • Fija. Hasta que no se han emitido todas las instrucciones de la ventana, no se puede acceder a caché a por otras • Deslizante. A medida que las instrucciones se van emitiendo, nuevas instrucciones son leídas de la caché.

  23. Intel Pentium 4

  24. Intel Pentium Pro

  25. R10k

More Related