6. PROCESADORES SUPERESCALARES Y VLIW

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

2 downloads 91 Views 388KB Size

Story Transcript

6.  PROCESADORES SUPERESCALARES Y VLIW

1

PROCESADORES SUPERESCALARES Y VLIW

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

2

PROCESADORES SUPERESCALARES Y VLIW

1.  Introducción

3

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

Introducción PARALELISMO A NIVEL DE INSTRUCCIONES (ILP) Número de instrucciones de un programa que pueden ejecutarse en paralelo (de media). ADD SUB AND

R1,R2,R3 R4,R5,R6 R7,R8,R9

Paralelismo de grado 3

ADD SUB AND

R1,R2,R3 R4,R5,R1 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

Introducción

Los procesadores actuales

Veremos dos tipos

•  Utilizan las técnicas de aceleración vistas anteriormente. •  Procesan más de una instrucción por ciclo.

•  Procesadores VLIW •  Procesadores superescalares

Procesadores superescalares y VLIW

6

PROCESADORES SUPERESCALARES Y VLIW

2.  El modelo VLIW

7

El modelo VLIW

VLIW = Very Long Instruction Word •  El compilador empaqueta varias operaciones en una nueva instrucción. •  C a d a c a m p o d e l a n u e v a i n s t r u c c i ó n e s t á “especializado” en una UF determinada. •  En cada ciclo se emite sólo una de las nuevas instrucciones. •  E l c o m p i l a d o r s e e n c a r g a d e e m p a q u e t a r correctamente las instrucciones evitando los problemas (dependencias, disponibilidad del hardware, etc…) Procesadores superescalares y VLIW

8

El modelo VLIW Comportamiento ideal. Inst. 01 Inst. 02 Inst. 03 Inst. 04

Compilador

Inst. 05

Inst. 11

Inst. 14

Inst. 16

Inst. 15

Inst. 06

Inst. 08

Inst. 10

Inst. 09

Inst. 05

Inst. 07

Inst. 12

Inst. 13

Inst. 06 Inst. 07 Inst. 08

Emisión

Inst. 09 Inst. 10 Inst. 11 Inst. 12

Inst. 03

Inst. 01

Inst. 02

Inst. 04

UF1

UF2

UF3

UF4

Inst. 13 Inst. 14 Inst. 15 Inst. 16

Procesadores superescalares y VLIW

9

El modelo VLIW Normalmente no se pueden llenar todos los campos. Inst. 01

Inst. 04

Inst. 14

Inst. 01

Inst. 11 Inst. 06

Inst. 16

Inst. 02 Inst. 03

Inst. 10

Compilador

Inst. 05

Inst. 05

Inst. 12 Inst. 15

Inst. 08

Inst. 09

Inst. 07

Inst. 13

Inst. 06 Inst. 07 Inst. 08

Emisión

Inst. 09 Inst. 10 Inst. 11 Inst. 12

Inst. 03

Inst. 02

Inst. 04

UF3

UF4

Inst. 13 Inst. 14 Inst. 15 Inst. 16

Procesadores superescalares y VLIW

UF1

UF2

10

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

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

PROCESADORES SUPERESCALARES Y VLIW

3.  El cauce superescalar

13

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

El cauce superescalar Inst. 01 Inst. 02 Inst. 03 Inst. 04 Inst. 05 Inst. 06

Inst. 07

12 Inst.

Inst.

Inst. 10 Inst.

13

Inst.

Inst.

04

06

09

Inst. 07 Inst. 02

Inst. 10

Inst. 05

Inst. 09

Inst. 01

Inst. 08

Inst. 11 Inst. 12 Inst. 13 Inst. 14 Inst. 15 Inst. 16

Procesadores superescalares y VLIW

UF1

UF2

UF3

UF4

15

El cauce superescalar El cauce se estructura en varias etapas que presentan distintas variantes y que vamos a detallar. Extracción Caché (I) L1

Buffer de instrucciones Decodificación

Pre-decodificación

Caché L2

Ventana de instrucciones Emisión Ejecución Finalización

Procesadores superescalares y VLIW

16

El cauce superescalar Etapa de extracción •  Se encarga de la captación de instrucciones desde la caché Caché (I) L1

• Tiene que ser capaz de leer varias instrucciones por ciclo.

Extracción Buffer de instrucciones

• Las instrucciones leídas se almacenan en un buffer. • Este proceso se realiza en orden.

Procesadores superescalares y VLIW

17

El cauce superescalar Etapa de decodificación • Extrae instrucciones del buffer y las decodifica. Buffer de instrucciones Decodificación Ventana de instrucciones

• Debe decodificar varias instrucciones por ciclo. • Las instrucciones decodificadas se almacenan en la ventana de instrucciones. • Este proceso se realiza en orden.

Procesadores superescalares y VLIW

18

El cauce superescalar Etapa de decodificación

Buffer de instrucciones Decodificación Ventana de instrucciones

•  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. Procesadores superescalares y VLIW

19

El cauce superescalar Etapa de pre-decodificación

Caché L2 Pre-decodificación Caché (I) L1 Extracció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.

Procesadores superescalares y VLIW

20

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é L2

Ancho de banda necesario 4 x 32 = 128 bits/ciclo

Pre-decodificación Caché (I) L1

Ancho de banda necesario 4 x (32 + 4) = 144 bits/ciclo

Extracción Procesadores superescalares y VLIW

21

El cauce superescalar Estructura de la ventana de instrucciones •  No se guardan instrucciones sino la información necesaria para ejecutarlas.

Ventana de instrucciones

•  La información se guarda en orden.

Operación

Destino

Operando 1 OK 1 Operando 2 OK 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.

Procesadores superescalares y VLIW

22

El cauce superescalar Etapa de emisión

Ventana de instrucciones Emisión Ejecució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.

Procesadores superescalares y VLIW

23

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.

Ventana de instrucciones

•  Emisión no alineada Se pueden meter nuevas instrucciones siempre que haya sitio.

Emisión Ejecución

•  Emisión en orden. •  Emisión fuera de orden.

El máximo rendimiento se obtiene con emisión no alineada y fuera de orden. Procesadores superescalares y VLIW

24

El cauce superescalar Etapa de ejecución

INT +-

INT +-

FP *

FP *

....

FP /

MEM

Bcc

Ejecución ....

Procesadores superescalares y VLIW

25

El cauce superescalar Variante con estaciones de reserva Puede enviar dos instrucciones por ciclo.

Ventana de instrucciones

Estaciones de reserva por cada U.F. o grupo homogéneo de U.F.’s.

INT +-

La instrucción espera en la E.R. hasta que se pueda ejecutar. Procesadores superescalares y VLIW

INT +-

FP *

FP *

....

FP /

MEM

Bcc

....

Puede enviar una instrucción por ciclo. 26

El cauce superescalar Variante con estaciones de reserva La emisión se divide en dos: Decodificación / Emisión

Decodificación / Emisión

Decodificación y envío a las E.R.’s

Envío (Dispatch) INT +-

INT +-

FP *

FP *

....

FP /

MEM

Bcc

Envío a las U.F.’s

....

Procesadores superescalares y VLIW

27

El cauce superescalar Etapa de finalización Etapa en la que se finaliza la instrucción y se actualizan los registros. Ejecución

•  Memoria: Finalización

Consistencia secuencial

Orden en que se realizan los accesos a memoria en relación con el orden del programa. •  Procesador: Orden en que se actualizan los registros en relación con el orden del programa.

Procesadores superescalares y VLIW

28

El cauce superescalar Etapa de finalización

Ejecución 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.

Procesadores superescalares y VLIW

29

El cauce superescalar Etapa de finalización Consistencia de memoria

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)

Procesadores superescalares y VLIW

¿Qué ocurre si esta instrucción se retrasa? (Por ejemplo, un fallo de caché)

No pueden ejecutarse por riesgo RAW Sí se pueden ejecutar (emisión fuera de orden) 30

El cauce superescalar Etapa de finalización Consistencia de memoria

LD R1,200(R0) DMUL R1,R1,R1 SD R1,200(R0)

Ésta no presenta dependencias, por lo tanto . . .

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

El cauce superescalar Etapa de finalización Consistencia de memoria Direcciones diferentes LD DMUL SD

R1,200(R0) R1,R1,R1 R1,200(R0)

¿Direcciones diferentes? LD DMUL SD

R1,200(R9) R1,R1,R1 R1,200(R9)

AND R3,R4,R5 DSLLV R6,R7,R8

AND R3,R4,R5 DSLLV R6,R7,R8

LD DADD SD

LD DADD SD

R2,400(R0) R2,R2,R2 R2,400(R0)

Problemas

R2,400(R10) R2,R2,R2 R2,400(R10)

Puede hacerse “adelantamiento especulativo” y en caso de fallo anular las instrucciones ejecutadas erróneamente. Procesadores superescalares y VLIW

32

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)

Influye en las siguientes. No influye en las siguientes.

SD R1,200(R0) DMUL R1,R1,R1 DADD R2,R1,R3

La tendencia actual es la consistencia de memoria débil ya que permite grandes ahorros de tiempo. Procesadores superescalares y VLIW

33

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

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

Banco de registros con varios puertos de escritura. 35

El cauce superescalar Etapa de finalización

Puntero de cabeza

Puntero de cola

Consistencia de procesador Implementación: Buffer circular.

Destino

Valor

U.F.

Registro destino

OK

Estado

Emitida / Ejecutando / Finalizada

Resultado de la operación U.F. que realiza el cálculo Procesadores superescalares y VLIW

Validez del campo “valor” 36

El cauce superescalar Cauce completo con ventana de instrucciones Extracción Caché (I) L1

Buffer de instrucciones Decodificación

Pre-decodificación

Caché L2

Ventana de instrucciones Emisión Ejecución Finalización

Procesadores superescalares y VLIW

37

El cauce superescalar Cauce completo con estaciones de reserva Extracción Caché (I) L1

Buffer de instrucciones Decodificación / Emisión

Pre-decodificación

Caché L2

Estaciones de reserva Envío Ejecución Finalización

Procesadores superescalares y VLIW

38

PROCESADORES SUPERESCALARES Y VLIW

4.  Superescalar con algoritmo de Tomasulo

39

Superescalar con algoritmo de Tomasulo

Se añade un ROB para poder realizar especulación.

Emisión

Ejecución

Ahora el método se estructura en cuatro etapas. Escritura de resultados

Finalización

Procesadores superescalares y VLIW

40

Superescalar con algoritmo de Tomasulo 1ª ETAPA EMISIÓN SI

¿Operandos disponibles?

Indicar las E.R. con las instrucciones que los generarán

Enviar operandos a la E.R.

¿E.R. y ROB disponibles?

NO

NO

SI

Enviar instrucción a la E.R.

Procesadores superescalares y VLIW

¿Todos los operandos en la E.R.?

NO

SI

41

Superescalar con algoritmo de Tomasulo 2ª ETAPA EJECUCIÓN

Ejecutar en la U.F.

Procesadores superescalares y VLIW

42

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

Superescalar con algoritmo de Tomasulo 4ª ETAPA FINALIZACIÓN

¿Finalizaron las instrucciones previas?

NO

SI

SI

Enviar el resultado a los registros o a la memoria

¿Especulación correcta?

Liberar la entrada en el ROB

Procesadores superescalares y VLIW

NO

Liberar las entradas del ROB asociadas a la especulación

44

Superescalar con algoritmo de Tomasulo

ROB

No se necesitan los buffers de almacenamiento.

Procesadores superescalares y VLIW

45

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.