TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas...

33
TEMA 3 PROCESADORES VLIW (Very Long Instruction Word) Esta arquitectura de CPU implementa una forma de paralelismo a nivel de instrucción. Es similar a las arquitecturas superescalares, ambas usan varias unidades funcionales (por ejemplo varias ALUs, varios multiplicadores, etc) para lograr ese paralelismo.

Transcript of TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas...

Page 1: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

TEMA 3 PROCESADORES VLIW (Very Long

Instruction Word)

• Esta arquitectura de CPU implementa una forma de paralelismo a nivel de instrucción. Es similar a las arquitecturas superescalares, ambas usan varias unidades funcionales (por ejemplo varias ALUs, varios multiplicadores, etc) para lograr ese paralelismo.

Page 2: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

PROCESADORES VLIW

• Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones muy simples, tipo RISC, pero muy grandes en cuanto al tamaño de la instrucción que las contiene.

Page 3: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

PROCESADORES VLIW

• En cada instrucción se especifica el estado de todas y cada una de las unidades funcionales del sistema, con el objetivo de simplificar el diseño del hardware al dejar todo el trabajo de planificar el código en manos del programador/compilador(tiene información comportamiento dinámico del programa: bucles, saltos, condiciones, dependencias de datos…)

Page 4: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

PLANIFICACIÓN ESTÁTICA PROCESADOR VLIW

• Para una máquina superescalar "normal“: Se iniciaría simultáneamente la multiplicación (i2) y la suma (i1) en unidades diferentes y, una vez acabada la suma, ejecutaría la multiplicación (i3). Todo este trabajo de planificación lo llevaría a cabo la circuitería interna del microprocesador.

• En una máquina VLIW, toda la planificación anterior la haría el compilador (o el propio programador si programa en ensamblador), y el código resultante sería algo así: – INCONVENIENTES:

• código objeto mayor proc. superescalar (necesidad de introducir NOP)

• No se aprovechan al máximo las unidades funcionales pudiendo estar ociosas (INTENTAR MANIPULAR BUCLES)

Page 5: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

Problema 2 1ª semana 2012

Page 6: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones
Page 7: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones
Page 8: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

PLANIFICACIÓN ESTÁTICA PROCESADOR VLIW

• Los bloques básicos se componen de un grupo de instrucciones que forman una línea de ejecución secuencial (no hay instrucciones de salto salvo en la última)

• La interconexión de las entradas y salidas de los diferentes bloques básicos conforman el diagrama de flujo de control

Page 9: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

PLANIFICACIÓN ESTÁTICA PROCESADOR VLIW

• Las instrucciones de cada bloque se combinan para formar instrucciones VLIW. Para ello se recurre al grafo de flujo de datos que tiene asociado cada bloque

Carga/almacenamiento 2 ciclos (segmentada) Coma flotante 3 ciclos (segmentada) Enteras y saltos 1 ciclo

2

Page 10: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

3.6 DESENRROLLAMIENTO DE BUCLE (planificación local reordenar un bloque

básico)

APROVECHA EL PARALELISMO DEL CUERPO DEL BUCLE CON RENOMBRAMIENTOS Y AJUSTANDO EL CÓDIGO DE TERMINACIÓN

El código suma una constante (almacenada en F2) a todos los

elementos de un vector almacenado en memoria con elementos de doble

precisión (8 bytes). El índice para acceder a los elementos es R1 que inicialmente está situado en el último elemento del

vector. El último elemento a procesar e encuentra en la posición 8 de la memoria

Renombrado de registros

X[i]=X[i]+a

Page 11: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

3.6 DESENRROLLAMIENTO DE BUCLE Agrupación por tipo de operación(para ilustrar mejor el

paralelismo)

Page 12: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

3.6 DESENRROLLAMIENTO DE BUCLE

Carga/almacenamiento 2 ciclos (segmentada) Coma flotante 3 ciclos (segmentada) Enteras y saltos 1 ciclo

-40 -32 -24 -16 -8 0

R1

Page 13: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

3.6 DESENRROLLAMIENTO

DE BUCLE

Ante un vector de 1000 elementos, el VLIW sin recurrir a planificación local tardaría 6000 ciclos( 1000 iteraciones * 6 ciclos). Por el desenrrollamiento tardaríamos 2250 ciclos (250 iteraciones*9 ciclos)

Sin desenrrollamiento

X[i]=X[i]+a

Page 14: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

3.7 SEGMENTACIÓN SOFTWARE (planificación local reordenar un

bloque básico) Es una técnica que intenta

aprovechar el paralelismo a nivel de instrucción en el cuerpo de algunos bucles (igual que el desenrrollamiento de bucles)

• Prólogo: instrucciones de

arranque • Cuerpo del bucle • Epílogo (terminación tras

su finalización)

Page 15: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

3.7 SEGMENTACIÓN SOFTWARE (ej2 1ªsemana

2012) • Prólogo: instrucciones de

arranque

• Cuerpo del bucle

• Epílogo (terminación tras su finalización)

Carga/almacenamiento 2 ciclos (segmentada) Coma flotante 3 ciclos (segmentada) Enteras y saltos 1 ciclo

Page 16: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

3.7 SEGMENTACIÓN SOFTWARE

Carga/almacenamiento 2 ciclos (segmentada) Coma flotante 3 ciclos (segmentada) Enteras y saltos 1 ciclo

-40(R1) -32(R1) -24(R1) -16(R1) -8(R1) 0(R1)

LOAD SD ADDD

La última posición donde se escribe es en 8

Page 17: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

3.7 SEGMENTACIÓN SOFTWARE

{ R1:=R1-8; }

Page 18: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

3.7 SEGMENTACIÓN SOFTWARE

{ R1:=R1-8; }

8 16 24 32 40 48

R1

LOAD SD ADDD

Page 19: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

3.7 SEGMENTACIÓN SOFTWARE

{ R1:=R1-8; }

8 16 24 32 40 48 0

R1

LOAD SD ADDD

Page 20: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

3.8 PLANIFICACIÓN DE TRAZAS

• Selección de traza (selección de la secuencia de ejecución más probable)

• Compactación (minimizar número de operaciones vacías en las instrucciones VLIW)

Técnica de planificación global que trata una secuencia de bloques básicos como si fuesen uno, y a partir de él producir código VLIW más óptimo

Page 21: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

3.8 PLANIFICACIÓN DE TRAZAS

Duración: 12 ciclos (1,2,3,4,5,6,7,8,9,10,16,17)*p + 12 ciclos (1,2,3,4,10,11,12,13,14,15,16,17)*(1-p) donde p es la probabilidad de que se cumpla el if

Page 22: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

3.8 PLANIFICACIÓN DE TRAZAS Desplazamiento de operaciones entre

bloques

3

Page 23: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

3.8 PLANIFICACIÓN

DE TRAZAS

Page 24: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

Duración: 10 ciclos (1,2,3,4,5,6,7,8,15,16 )*p+ 15 ciclos (1,2,3,4,5,6,8,9,10,11,12,13,14,15,16) *(1-p) donde p es la probabilidad del if

Page 25: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

3.8 PLANIFICACIÓN DE TRAZAS

Duración: 9 ciclos(1,2,3,4,5,6,7,10,11) *p +10 ciclos (1,2,3,4,5,7,8,9,10,11) *(1-p) donde p es la probabilidad de que se cumpla el if

Renombrado de registros (Y[i])

Page 26: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

3.9 OPERACIONES CON PREDICADO

Con el objeto de poder tratar operaciones condicionales como cualquier otra instrucción (evitamos las ramas con pequeño bloques básicos a un bloque extendido)

Page 27: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

Código intermedio usando predicados

3.9 OPERACIONES CON PREDICADO

Código intermedio

Page 28: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

3.9 OPERACIONES CON PREDICADO Código VLIW generado del código intermedio

u.f. operaciones enteras 1 ciclo u.f. operaciones coma flotante 3 ciclos u.f. cargas/almacenamientos 2 ciclos u.f. para saltos 1 hueco de retardo

Page 29: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

3.9 OPERACIONES CON PREDICADO Código VLIW con operaciones

condicionadas

u.f. operaciones enteras 1 ciclo u.f. operaciones coma flotante 3 ciclos u.f. cargas/almacenamientos 2 ciclos u.f. para saltos 1 hueco de retardo

Page 30: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

3.9 OPERACIONES CON PREDICADO

Page 31: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

Ej 3 septiembre

reserva 2013

ADDI R4,Ra,800 ; longitud vector A LD F6,0(Rb); constante b LD F7,0(Rd) ;constante d Inicio: LD F5, 0(Ra) PRED_GT P1,P2,F5,11 LD F8,0(Rx) ADDD F8,F8,F6 (P1) ;se suma b ADDD F8, F8,F7 (P2);se suma d SD 0(Rx),F8 ADDI Ra,Ra,#8 ADDI Rx,Rx,#8 SGE R9,Ra,R4 BNEZ R9,Inicio

Page 32: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

Ej 3 septiembre reserva 2013 Apartado b

ADDI R4,Ra,800 ; longitud vector A LD F6,0(Rb); constante b LD F7,0(Rd) ;constante d Inicio: LD F5, 0(Ra) PRED_GT P1,P2,F5,11 LD F8,0(Rx) ADDD F8,F8,F6 (P1) ;se suma b ADDD F8, F8,F7 (P2);se suma d SD 0(Rx),F8 ADDI Ra,Ra,#8 ADDI Rx,Rx,#8 SGE R9,Ra,R4 BNEZ R9,Inicio

Carga/almacenamiento

Coma flotante Entera

LD F6,0(Rb) ADDI R4,Ra,800

LD F7,0(Rd)

LD F5, 0(Ra)

LD F8,0(Rx) PRED_GT P1,P2,F5,11

ADDD F8,F8,F6 (P1)

ADDD F8, F8,F7(P2) ADDI Ra,Ra,#8

ADDI Rx,Rx,#8

SGE R9,Ra,R4

SD 0(Rx),F8 BNEZ R9,Inicio

Page 33: TEMA 3 PROCESADORES VLIW (Very Long … · PROCESADORES VLIW •Los procesadores con arquitecturas VLIW se caracterizan, como su nombre indica, por tener juegos de mini-instrucciones

Ej 3 septiembre reserva 2013

Apartado b optimizado

ADDI R4,Ra,800 ; longitud vector A LD F6,0(Rb); constante b LD F7,0(Rd) ;constante d Inicio: LD F5, 0(Ra) PRED_GT P1,P2,F5,11 LD F8,0(Rx) ADDD F8,F8,F6 (P1) ;se suma b ADDD F8, F8,F7 (P2);se suma d SD 0(Rx),F8 ADDI Ra,Ra,#8 ADDI Rx,Rx,#8 SGE R9,Ra,R4 BNEZ R9,Inicio

Carga/almacenamiento

Coma flotante Entera

LD F6,0(Rb) ADDI R4,Ra,800

LD F7,0(Rd)

LD F5, 0(Ra)

LD F8,0(Rx)

PRED_GT P1,P2,F5,11

ADDD F8,F8,F6 (P1)

ADDD F8, F8,F7(P2) ADDI Ra,Ra,#8

ADDI Rx,Rx,#8

SGE R9,Ra,R4

SD 0(Rx),F8 BNEZ R9,Inicio