La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

6.PROCESADORES SUPERESCALARES Y VLIW 1. PROCESADORES SUPERESCALARES Y VLIW 1.Introducción 2.El modelo VLIW 3.El cauce superescalar 4.Superescalar con.

Presentaciones similares


Presentación del tema: "6.PROCESADORES SUPERESCALARES Y VLIW 1. PROCESADORES SUPERESCALARES Y VLIW 1.Introducción 2.El modelo VLIW 3.El cauce superescalar 4.Superescalar con."— Transcripción de la presentación:

1 6.PROCESADORES SUPERESCALARES Y VLIW 1

2 PROCESADORES SUPERESCALARES Y VLIW 1.Introducción 2.El modelo VLIW 3.El cauce superescalar 4.Superescalar con algoritmo de Tomasulo 2

3 1.Introducción 3 PROCESADORES SUPERESCALARES Y VLIW

4 Introducción Procesadores superescalares y VLIW Las técnicas vistas hasta ahora tienen como objetivo aprovechar al máximo el pipeline de forma que el CPI alcance el valor ideal de 1. 4 ¿Podemos obtener un CPI inferior a 1? Sí, si logramos que todas las etapas del pipeline puedan procesar más de una instrucción por ciclo.

5 Introducción Procesadores superescalares y VLIW PARALELISMO A NIVEL DE INSTRUCCIONES (ILP) Número de instrucciones de un programa que pueden ejecutarse en paralelo (de media). PARALELISMO A NIVEL DE MÁQUINA (MLP) Número máximo instrucciones que la máquina puede ejecutar en paralelo. A ese número se le llama grado de paralelismo del procesador. ADDR1,R2,R3 SUBR4,R5,R6 ANDR7,R8,R9 Paralelismo de grado 3 ADDR1,R2,R3 SUBR4,R5,R1 ANDR7,R8,R4 Paralelismo de grado 1 5

6 Introducción Procesadores superescalares y VLIW 6 Los procesadores actuales Utilizan las técnicas de aceleración vistas anteriormente. Procesan más de una instrucción por ciclo. Procesadores VLIW Procesadores superescalares Veremos dos tipos

7 2.El modelo VLIW 7 PROCESADORES SUPERESCALARES Y VLIW

8 Procesadores superescalares y VLIW 8 VLIW = Very Long Instruction Word El compilador empaqueta varias operaciones en una nueva instrucción. Cada campo de la nueva instrucción está especializado en una UF determinada. En cada ciclo se emite sólo una de las nuevas instrucciones. El compilador se encarga de empaquetar correctamente las instrucciones evitando los problemas (dependencias, disponibilidad del hardware, etc…) El modelo VLIW

9 Procesadores superescalares y VLIW 9 El modelo VLIW UF1 Inst. 01 Inst. 02 Inst. 03 Inst. 04 Inst. 05 Inst. 06 Inst. 07 Inst. 08 Inst. 09 Inst. 10 Inst. 11 Inst. 12 Inst. 13 Inst. 14 Inst. 15 Inst. 16 Inst. 03Inst. 01Inst. 02Inst. 04 UF2UF4UF3 Inst. 06Inst. 08Inst. 10Inst. 09 Inst. 11Inst. 14Inst. 16Inst. 15 Inst. 05Inst. 07Inst. 12Inst. 13 Compilador Emisión Comportamiento ideal.

10 Procesadores superescalares y VLIW 10 El modelo VLIW UF1 Inst. 01 Inst. 02 Inst. 03 Inst. 04 Inst. 05 Inst. 06 Inst. 07 Inst. 08 Inst. 09 Inst. 10 Inst. 11 Inst. 12 Inst. 13 Inst. 14 Inst. 15 Inst. 16 Inst. 03Inst. 02Inst. 04 UF2UF4UF3 Inst. 08Inst. 09 Inst. 16Inst. 15 Inst. 05Inst. 07Inst. 13 Compilador Emisión Inst. 01Inst. 06Inst. 12 Inst. 10Inst. 14Inst. 11 Normalmente no se pueden llenar todos los campos.

11 Procesadores superescalares y VLIW 11 Ventajas: Hardware más simple ya que el compilador se encarga de un gran número de tareas. Mayor número de unidades funcionales ya que queda libre mucho espacio en el chip. El modelo VLIW

12 Procesadores superescalares y VLIW 12 Inconvenientes: Complejidad del compilador al tenerse que ocupar de numerosos asuntos. Dificultad para rellenar todos los campos de las instrucciones. Mayor tamaño del código debido al problema anterior. Incompatibilidad del código de cara a versiones con nuevas distribuciones de las unidades funcionales. El modelo VLIW

13 3.El cauce superescalar 13 PROCESADORES SUPERESCALARES Y VLIW

14 Procesadores superescalares y VLIW 14 El cauce superescalar Procesador superescalar: El hardware resuelve los problemas en tiempo de ejecución. Se emite un número variable de instrucciones en cada ciclo. El código es compatible. El hardware aumenta su complejidad.

15 Procesadores superescalares y VLIW 15 El cauce superescalar UF1 Inst. 01 Inst. 02 Inst. 03 Inst. 04 Inst. 05 Inst. 06 Inst. 07 Inst. 08 Inst. 09 Inst. 10 Inst. 11 Inst. 12 Inst. 13 Inst. 14 Inst. 15 Inst. 16 UF2UF4UF3 Inst. 12 Inst. 13 Inst. 10 Inst. 09 Inst. 11 Inst. 08 Inst. 07 Inst. 05Inst. 01Inst. 02 Inst. 03 Inst. 06 Inst. 04

16 Procesadores superescalares y VLIW El cauce se estructura en varias etapas que presentan distintas variantes y que vamos a detallar. 16 El cauce superescalar

17 Procesadores superescalares y VLIW Etapa de extracción Se encarga de la captación de instrucciones desde la caché Tiene que ser capaz de leer varias instrucciones por ciclo. Las instrucciones leídas se almacenan en un buffer. Este proceso se realiza en orden. Buffer de instrucciones Caché (I) L1 Extracción 17 El cauce superescalar

18 Procesadores superescalares y VLIW Etapa de decodificación Extrae instrucciones del buffer y las decodifica. Debe decodificar varias instrucciones por ciclo. Las instrucciones decodificadas se almacenan en la ventana de instrucciones. Este proceso se realiza en orden. Buffer de instrucciones Ventana de instrucciones Decodificación 18 El cauce superescalar

19 Procesadores superescalares y VLIW Esta etapa se vuelve demasiado costosa ya que hay que realizar numerosas tareas (buscar operandos, examinar dependencias, …) y para varias instrucciones. En un ciclo no hay tiempo. Como aumentar el ciclo de reloj sería un error, lo que se hace es dividir la etapa en dos: Decodificación Decodifica y envía a la ventana de instrucciones. Emisión Se encarga del resto. Etapa de decodificación Buffer de instrucciones Ventana de instrucciones Decodificación 19 El cauce superescalar

20 Procesadores superescalares y VLIW Caché (I) L1 Extracción Caché L2 Pre-decodificación Se puede facilitar el trabajo de la etapa ID haciendo una decodificación previa entre L2 y L1. A cada instrucción, o conjunto de ellas, se añaden algunos bits (típicamente de 4 a 7) para notificar ciertas características. El aumento en la longitud de las instrucciones implica un aumento en el ancho de banda de los buses. Etapa de pre-decodificación 20 El cauce superescalar

21 Procesadores superescalares y VLIW Etapa de pre-decodificación EJEMPLO: Un procesador capta 4 instrucciones de 32 bits por ciclo, a cada una de las cuales la etapa de pre-decodificación añade 4 bits. Caché (I) L1 Extracción Caché L2 Pre-decodificación Ancho de banda necesario 4 x 32 = 128 bits/ciclo Ancho de banda necesario 4 x (32 + 4) = 144 bits/ciclo 21 El cauce superescalar

22 Procesadores superescalares y VLIW Estructura de la ventana de instrucciones No se guardan instrucciones sino la información necesaria para ejecutarlas. La información se guarda en orden. Ventana de instrucciones OperaciónDestinoOK 1Operando 1OK 2Operando 2 Operación a realizar. Puede indicar un registro, una posición de memoria o un almacenamiento temporal. Valor del operando o elemento que lo generará. Indica si el operando está disponible. 22 El cauce superescalar

23 Procesadores superescalares y VLIW Etapa de emisión Si una instrucción está lista para ejecutarse y está disponible la U.F. que necesita, ésta se envía a la etapa de ejecución. Se pueden emitir varias instrucciones por ciclo. Si dos instrucciones compiten por una U.F. la emisión decidirá quién tiene prioridad. Ventana de instrucciones Ejecución Emisión 23 El cauce superescalar

24 Procesadores superescalares y VLIW Etapa de emisión Ventana de instrucciones Ejecución Emisión Emisión alineada: Hasta que no se vacían todas las instrucciones de la ventana no se pueden meter otras. Emisión no alineada Se pueden meter nuevas instrucciones siempre que haya sitio. Emisión en orden. Emisión fuera de orden. El máximo rendimiento se obtiene con emisión no alineada y fuera de orden. 24 El cauce superescalar

25 Procesadores superescalares y VLIW Etapa de ejecución Ejecución INT + - FP * FP / MEMINT + - FP * Bcc.. 25 El cauce superescalar

26 Procesadores superescalares y VLIW Variante con estaciones de reserva 26 Ventana de instrucciones INT + - FP * FP / MEMINT + - FP * Bcc.. Estaciones de reserva por cada U.F. o grupo homogéneo de U.F.s. La instrucción espera en la E.R. hasta que se pueda ejecutar. Puede enviar una instrucción por ciclo. Puede enviar dos instrucciones por ciclo. El cauce superescalar

27 Procesadores superescalares y VLIW Variante con estaciones de reserva 27 Decodificación / Emisión INT + - FP * FP / MEMINT + - FP * Bcc.. La emisión se divide en dos: Decodificación / Emisión Decodificación y envío a las E.R.s Envío (Dispatch) Envío a las U.F.s El cauce superescalar

28 Procesadores superescalares y VLIW Etapa de finalización Etapa en la que se finaliza la instrucción y se actualizan los registros. Finalización Ejecución 28 Memoria: Orden en que se realizan los accesos a memoria en relación con el orden del programa. Consistencia secuencial Procesador: Orden en que se actualizan los registros en relación con el orden del programa. El cauce superescalar

29 Procesadores superescalares y VLIW Etapa de finalización Finalización Ejecución 29 Consistencia fuerte: El orden del programa debe coincidir con el de finalización. Consistencia débil: El orden del programa puede ser distinto al de finalización. Hay que resolver los posibles riesgos. El cauce superescalar

30 Procesadores superescalares y VLIW Etapa de finalización Consistencia de memoria 30 LDR1,200(R0) DMULR1,R1,R1 SDR1,200(R0) ANDR3,R4,R5 DSLLVR6,R7,R8 LDR2,400(R0) DADDR2,R2,R2 SDR2,400(R0) No pueden ejecutarse por riesgo RAW Sí se pueden ejecutar (emisión fuera de orden) ¿Qué ocurre si esta instrucción se retrasa? (Por ejemplo, un fallo de caché) El cauce superescalar

31 Procesadores superescalares y VLIW Etapa de finalización Consistencia de memoria 31 LDR1,200(R0) DMULR1,R1,R1 SDR1,200(R0) ANDR3,R4,R5 DSLLVR6,R7,R8 LDR2,400(R0) DADDR2,R2,R2 SDR2,400(R0) Consistencia débil: Puede ejecutarse y acabar incluso antes que los accesos a memoria anteriores. Consistencia fuerte: No puede ejecutarse. Ésta no presenta dependencias, por lo tanto... El cauce superescalar

32 Procesadores superescalares y VLIW Etapa de finalización Consistencia de memoria 32 LDR1,200(R0) DMULR1,R1,R1 SDR1,200(R0) ANDR3,R4,R5 DSLLVR6,R7,R8 LDR2,400(R0) DADDR2,R2,R2 SDR2,400(R0) Direcciones diferentes¿Direcciones diferentes? LDR1,200(R9) DMULR1,R1,R1 SDR1,200(R9) ANDR3,R4,R5 DSLLVR6,R7,R8 LDR2,400(R10) DADDR2,R2,R2 SDR2,400(R10) Problemas Puede hacerse adelantamiento especulativo y en caso de fallo anular las instrucciones ejecutadas erróneamente. El cauce superescalar

33 Procesadores superescalares y VLIW Etapa de finalización Consistencia de memoria 33 En los adelantamientos se suele dar prioridad a LOAD frente a STORE ya que la carga de un elemento puede a su vez hacer esperar a otras instrucciones. LDR1,200(R0) DMULR1,R1,R1 SDR1,200(R0) DMULR1,R1,R1 DADDR2,R1,R3 Influye en las siguientes. No influye en las siguientes. La tendencia actual es la consistencia de memoria débil ya que permite grandes ahorros de tiempo. El cauce superescalar

34 Procesadores superescalares y VLIW Etapa de finalización Consistencia de procesador 34 Motivos: Los tiempos involucrados son menores que los de los accesos a memoria y no compensan una complicación excesiva del hardware. Estructuras como el Buffer de Reordenamiento (ROB) permiten de forma simple la finalización en orden con una emisión y ejecución fuera de orden. La tendencia actual es la consistencia de procesador fuerte. El cauce superescalar

35 Procesadores superescalares y VLIW Etapa de finalización Consistencia de procesador 35 La información de las instrucciones se introduce en el ROB en orden. Una instrucción se saca cuando ella y sus predecesoras han finalizado. En ese momento se actualizan los registros. Permite el renombrado de registros y la ejecución especulativa Se retiran varias instrucciones por ciclo. Banco de registros con varios puertos de escritura. El cauce superescalar

36 Procesadores superescalares y VLIW DestinoValorOKU.F.Estado Registro destino Resultado de la operación U.F. que realiza el cálculoValidez del campo valor 36 Etapa de finalización Consistencia de procesador Implementación: Buffer circular. Puntero de cabeza Puntero de cola Emitida / Ejecutando / Finalizada El cauce superescalar

37 Procesadores superescalares y VLIW Cauce completo con ventana de instrucciones 37 Pre-decodificación Buffer de instrucciones Ventana de instrucciones Caché (I) L1 Caché L2 Extracción Finalización Ejecución Decodificación Emisión El cauce superescalar

38 Procesadores superescalares y VLIW Cauce completo con estaciones de reserva 38 Pre-decodificación Buffer de instrucciones Estaciones de reserva Caché (I) L1 Caché L2 Extracción Finalización Ejecución Decodificación / Emisión Envío El cauce superescalar

39 4.Superescalar con algoritmo de Tomasulo 39 PROCESADORES SUPERESCALARES Y VLIW

40 Se añade un ROB para poder realizar especulación. Ahora el método se estructura en cuatro etapas. Emisión Ejecución Escritura de resultados Finalización Procesadores superescalares y VLIW 40 Superescalar con algoritmo de Tomasulo

41 1ª ETAPA EMISIÓN ¿Operandos disponibles? NOSI Enviar operandos a la E.R. Indicar las E.R. con las instrucciones que los generarán ¿Todos los operandos en la E.R.? NO SI ¿E.R. y ROB disponibles? NO SI Enviar instrucción a la E.R. Procesadores superescalares y VLIW 41 Superescalar con algoritmo de Tomasulo

42 Ejecutar en la U.F. 2ª ETAPA EJECUCIÓN Procesadores superescalares y VLIW 42 Superescalar con algoritmo de Tomasulo

43 3ª ETAPA ESCRITURA DE RESULTADOS Envía los resultados al CDB Desde el CDB se reenvía al ROB Procesadores superescalares y VLIW 43 Superescalar con algoritmo de Tomasulo

44 4ª ETAPA FINALIZACIÓN ¿Especulación correcta? NOSI Enviar el resultado a los registros o a la memoria Liberar las entradas del ROB asociadas a la especulación Liberar la entrada en el ROB ¿Finalizaron las instrucciones previas? NO SI Procesadores superescalares y VLIW 44 Superescalar con algoritmo de Tomasulo

45 ROB No se necesitan los buffers de almacenamiento. Procesadores superescalares y VLIW 45 Superescalar con algoritmo de Tomasulo


Descargar ppt "6.PROCESADORES SUPERESCALARES Y VLIW 1. PROCESADORES SUPERESCALARES Y VLIW 1.Introducción 2.El modelo VLIW 3.El cauce superescalar 4.Superescalar con."

Presentaciones similares


Anuncios Google