La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

PROCESADORES SUPERESCALARES Y VLIW

Presentaciones similares


Presentación del tema: "PROCESADORES SUPERESCALARES Y VLIW"— Transcripción de la presentación:

1 PROCESADORES SUPERESCALARES Y VLIW
1

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

3 PROCESADORES SUPERESCALARES Y VLIW
Introducción 3 3

4 ¿Podemos obtener un CPI inferior a 1?
Introducción 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. ¿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. Procesadores superescalares y VLIW 4

5 PARALELISMO A NIVEL DE INSTRUCCIONES (ILP)
Introducción PARALELISMO A NIVEL DE INSTRUCCIONES (ILP) Número de instrucciones de un programa que pueden ejecutarse en paralelo (de media). ADD R1,R2,R3 SUB R4,R5,R6 AND R7,R8,R9 Paralelismo de grado 3 ADD R1,R2,R3 SUB R4,R5,R1 AND R7,R8,R4 Paralelismo de grado 1 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. Procesadores superescalares y VLIW 5

6 Los procesadores actuales
Introducción 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 Procesadores superescalares y VLIW 6

7 PROCESADORES SUPERESCALARES Y VLIW
El modelo VLIW 7 7

8 VLIW = Very Long Instruction Word
El modelo VLIW 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…) Procesadores superescalares y VLIW 8

9 El modelo VLIW Compilador Emisión Comportamiento ideal.
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. 11 Inst. 14 Inst. 16 Inst. 15 Compilador Inst. 06 Inst. 08 Inst. 10 Inst. 09 Inst. 05 Inst. 07 Inst. 12 Inst. 13 Emisión Inst. 03 Inst. 01 Inst. 02 Inst. 04 UF1 UF2 UF3 UF4 Procesadores superescalares y VLIW 9

10 El modelo VLIW Compilador Emisión
Normalmente no se pueden llenar todos los campos. Inst. 10 Inst. 14 Inst. 11 Inst. 01 Inst. 06 Inst. 12 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. 16 Inst. 15 Compilador Inst. 08 Inst. 09 Inst. 05 Inst. 07 Inst. 13 Emisión Inst. 03 Inst. 02 Inst. 04 UF1 UF2 UF3 UF4 Procesadores superescalares y VLIW 10

11 El modelo VLIW 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. Procesadores superescalares y VLIW 11

12 Complejidad del compilador al tenerse que ocupar de numerosos asuntos.
El modelo VLIW 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. Procesadores superescalares y VLIW 12

13 PROCESADORES SUPERESCALARES Y VLIW
El cauce superescalar 13 13

14 Procesador superescalar:
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. Procesadores superescalares y VLIW 14

15 El cauce superescalar Procesadores superescalares y VLIW 15 UF1 UF2
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 UF2 UF4 UF3 Procesadores superescalares y VLIW 15

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

17 Buffer de instrucciones
El cauce superescalar 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 Procesadores superescalares y VLIW 17

18 Etapa de decodificación
El cauce superescalar 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 Procesadores superescalares y VLIW 18

19 Etapa de decodificación
El cauce superescalar Etapa de decodificación 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: Buffer de instrucciones Ventana de instrucciones Decodificación Decodificación  Decodifica y envía a la ventana de instrucciones. Emisión  Se encarga del resto. Procesadores superescalares y VLIW 19

20 Etapa de pre-decodificación
El cauce superescalar Etapa de 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. Caché (I) L1 Extracción Caché L2 Pre-decodificación Procesadores superescalares y VLIW 20

21 Ancho de banda necesario
El cauce superescalar 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 4 x (32 + 4) = 144 bits/ciclo Procesadores superescalares y VLIW 21

22 Ventana de instrucciones
El cauce superescalar 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ón Destino OK 1 Operando 1 OK 2 Operando 2 Operación a realizar. Valor del operando o elemento que lo generará. Puede indicar un registro, una posición de memoria o un almacenamiento temporal. Indica si el operando está disponible. Procesadores superescalares y VLIW 22

23 Ventana de instrucciones
El cauce superescalar 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 Procesadores superescalares y VLIW 23

24 Ventana de instrucciones
El cauce superescalar Etapa de 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. Ventana de instrucciones Ejecución Emisión El máximo rendimiento se obtiene con emisión no alineada y fuera de orden. Procesadores superescalares y VLIW 24

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

26 Ventana de instrucciones
El cauce superescalar Variante con estaciones de reserva Puede enviar una instrucción por ciclo. Puede enviar dos instrucciones por ciclo. Ventana de instrucciones INT + - FP * / MEM 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. Procesadores superescalares y VLIW 26

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

28 Consistencia secuencial
El cauce superescalar Etapa de finalización Etapa en la que se finaliza la instrucción y se actualizan los registros. Finalización Ejecución 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. Procesadores superescalares y VLIW 28

29 El orden del programa debe coincidir con el de finalización.
El cauce superescalar Etapa de finalización 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. Finalización Ejecución Procesadores superescalares y VLIW 29

30 Consistencia de memoria
El cauce superescalar Etapa de finalización Consistencia de memoria ¿Qué ocurre si esta instrucción se retrasa? (Por ejemplo, un fallo de caché) LD R1,200(R0) DMUL R1,R1,R1 SD R1,200(R0) AND R3,R4,R5 DSLLV R6,R7,R8 LD R2,400(R0) DADD R2,R2,R2 SD R2,400(R0) No pueden ejecutarse por riesgo RAW Sí se pueden ejecutar (emisión fuera de orden) Procesadores superescalares y VLIW 30

31 Consistencia de memoria
El cauce superescalar Etapa de finalización Consistencia de memoria Ésta no presenta dependencias, por lo tanto . . . LD R1,200(R0) DMUL R1,R1,R1 SD R1,200(R0) AND R3,R4,R5 DSLLV R6,R7,R8 LD R2,400(R0) DADD R2,R2,R2 SD R2,400(R0) Consistencia débil: Puede ejecutarse y acabar incluso antes que los accesos a memoria anteriores. Consistencia fuerte: No puede ejecutarse. Procesadores superescalares y VLIW 31

32 Consistencia de memoria
El cauce superescalar Etapa de finalización Consistencia de memoria Direcciones diferentes ¿Direcciones diferentes? LD R1,200(R0) DMUL R1,R1,R1 SD R1,200(R0) AND R3,R4,R5 DSLLV R6,R7,R8 LD R2,400(R0) DADD R2,R2,R2 SD R2,400(R0) LD R1,200(R9) DMUL R1,R1,R1 SD R1,200(R9) AND R3,R4,R5 DSLLV R6,R7,R8 LD R2,400(R10) DADD R2,R2,R2 SD R2,400(R10) Problemas Puede hacerse “adelantamiento especulativo” y en caso de fallo anular las instrucciones ejecutadas erróneamente. Procesadores superescalares y VLIW 32

33 Consistencia de memoria
El cauce superescalar Etapa de finalización Consistencia de memoria 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. LD R1,200(R0) DMUL R1,R1,R1 SD R1,200(R0) DADD R2,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. Procesadores superescalares y VLIW 33

34 Consistencia de procesador
El cauce superescalar Etapa de finalización Consistencia de procesador La tendencia actual es la consistencia de procesador fuerte. 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. Procesadores superescalares y VLIW 34

35 Consistencia de procesador
El cauce superescalar Etapa de finalización Consistencia de procesador 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. Procesadores superescalares y VLIW 35

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

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

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

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

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

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

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

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

44 Superescalar con algoritmo de Tomasulo
4ª ETAPA FINALIZACIÓN ¿Finalizaron las instrucciones previas? NO SI ¿Especulación correcta? SI NO 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 Procesadores superescalares y VLIW 44

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


Descargar ppt "PROCESADORES SUPERESCALARES Y VLIW"

Presentaciones similares


Anuncios Google