tema 5 lanzamiento múltiple, límites de ilp, multithreading · o capítulo 3 y 4 de [hepa07] o...

51
Arquitectura de Computadores de Computadores TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading Curso 2010-2011

Upload: others

Post on 16-Mar-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Arquitecturade Computadoresde Computadores

TEMA 5Lanzamiento múltiple, Límites de ILP,

Multithreading

Curso 2010-2011

Page 2: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Contenidos

o Introducción: CPI < 1o Introducción: CPI < 1

o Lanzamiento múltiple de instrucciones: Superescalar, VLIW

S l i lo Superescalar simple

o VLIW

o Superescalar con planificación dinámica

o Límites de ILP

o Ejemplo: Implementaciones X86

o Thread Level Parallelism y Multithreading

o Bibliografíao Capítulo 3 y 4 de [HePa07]

o Capítulos 4 , 6 y 7 de [SiFK97]

AC — Tema 5 2

Page 3: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Más ILP: Lanzamiento múltiple

• ¿ Por que limitar a una instrucción por ciclo?

Introducción

¿ Por que limitar a una instrucción por ciclo?

• Objetivo: CPI < 1

• Lanzar y ejecutar simultáneamente múltiples instrucciones por ciclo

• ¿Tenemos recursos?

• Más área de silicio disponible• Técnicas para resolver las dependencias de datos (planificación )• Técnicas para resolver las dependencias de control (especulación)p p ( p )

AC — Tema 5 3

Page 4: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Más ILP: Lanzamiento múltiple

Alternativas Procesador Superescalar con planificación estática

Procesador Superescalar con planificación dinámica+( especulación)

P d VLIW ( l i i ) Procesadores VLIW ( very long instruction processor)

S l Superescalar Lanza de 1 a 8 instrucciones por cicloReglas de ejecución

ó ó áo Ejecución en orden-planificación estática o Ejecución fuera de orden-planificación dinámica

VLIW Numero fijo de instrucciones por ciclo Planificadas estáticamente por el compilador EPIC ( Explicitly Parallel Instruction Computing ) Intel/HP

AC — Tema 5 4

EPIC ( Explicitly Parallel Instruction Computing ) Intel/HP

Page 5: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Más ILP: Lanzamiento múltiple

Alternativas

Tipo Forma del issue

Detección de riesgos Planificación Ejemplos

S s l EmbededSuperescalar estático Dinámico HW estática

EmbededMIPS, ARM

Superescalar DinámicoHW dinámica ningunop

dinámico HW dinámica ninguno

Superescalar DinámicoHW Dinámica con P4, Core2,

Power5 especulativo HW especulación Power5, SparcVI

VLIW Estático Básicamente estática TI C6xVLIW Estático SW Itanium

AC — Tema 5 55

Page 6: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Más ILP: Lanzamiento múltiple

SUPERESCALAR SUPERESCALAR

Grado 22 Ví2 Vías

Duplicar todos los recursos:o Puertas bloque de Registros o Fus

P t d io Puertas de memoria,..o Control

Ideal CPI= 0.5 se reduce por:o Saltoso Saltoso LOADso Dependencias verdaderas LDE

Necesita:P di ió fi ti do Predicción sofisticada

o Tratamiento de LOAD; Cargas especulativas, técnicas de prebúsquedaMás presión sobre la memoriaEfecto incremental de los riesgos

AC — Tema 5 66

Efecto incremental de los riesgosSe puede reducir complejidad con limitaciones ( Un acceso a memoria por ciclo)

Page 7: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Más ILP: Lanzamiento múltiple

SUPERESCALAR Simple ( estático en orden) SUPERESCALAR Simple ( estático, en orden) • Regla de lanzamiento: Una instrucción FP+ una instrucción de cualquier otro tipo• Buscar y decodificar dos instrucciones por ciclo ( 64 bits)y p ( )

Ordenamiento y decodificaciónSe analizan en orden. Sólo se lanza la 2ªsi se ha lanzado la 1ª ( conflictos)

• Unidades funcionales segmentadas ( una ope. por ciclo ) ó múltiples (división, raíz), más puertas en el bloque de registrospuertas en el bloque de registros

• Lanzamiento simple, recursos no conflictivos ( diferentes reg y UF,.. ), exceptoConflictos de recursos; load, store, move FP más puertas en el bloque de reg.Conflictos de datos LDE más distancia entre instrucciones.

Cache de Instrucciones

Buffer de Instrucciones DetectorAzares

Solo detecta y Bloquea el lanzamiento

Y además... Efecto de los saltos (delay slot)

AC — Tema 5 77

REGISTROSlos saltos (delay slot)

Page 8: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Más ILP: Lanzamiento múltiple

áSUPERESCALAR Simple ( estático, en orden)

Instrucción entera Instrucción FP CicloLoop: LD F0,0(R1) 1

LD F6,-8(R1) 2LD F10,-16(R1) ADDD F4,F0,F2 3LD F10, 16(R1) ADDD F4,F0,F2 3LD F14,-24(R1) ADDD F8,F6,F2 4LD F18,-32(R1) ADDD F12,F10,F2 5SD 0(R1),F4 ADDD F16,F14,F2 6SD -8(R1),F8 ADDD F20,F18,F2 7SD 8(R1),F8 ADDD F20,F18,F2 7SD -16(R1),F12 8SD -24(R1),F16 9SUBI R1,R1,#40 10BNEZ R1,LOOP 11BNEZ R1,LOOP 11SD 8(R1),F20 12

Separadas por 2 ciclos

• Desarrollo para ejecución superescalar: se desarrolla una iteración más.12 ciclos, 2.4 ciclos por iteración

El ódi á i tá t l i

AC — Tema 5 88

• El código máquina está compacto en la memoria

Page 9: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Más ILP: Lanzamiento múltiple

SUPERESCALAR Si l ( táti d ) SUPERESCALAR Simple ( estático, en orden)

Ventajas

• No modifica código. Compatibilidad binaria

• No riesgos en ejecuciónNo riesgos en ejecución

Desventajas

• Mezcla de instrucciones. Solo obtiene CPI de 0.5 en programas con 50 % de FP

• Bloqueos en el lanzamiento

• Planificación fija: No puede adaptarse a cambios en ejecución ( Fallos de cache )• Planificación fija: No puede adaptarse a cambios en ejecución ( Fallos de cache )

• Los códigos deben de ser replanificados para cada nueva implementación

(eficiencia)( )

AC — Tema 5 99

Page 10: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Más ILP: Lanzamiento múltiple

VLIW El análisis de dependencias en tiempo de compilación M h i i t ió ( IA64 k t T t l l ) Muchas operaciones por instrucción ( IA64 packet, Tramsmeta molecula) Todas las operaciones de una instrucción se ejecutan en paralelo Instrucciones con muchos bits Muchas operaciones vacías (NOP)

IP

Muchas operaciones vacías (NOP)

IP

Instrucción: Incluye varias instruccionesconvencionales de tres operandospuna por ALU

Bl d i t Bloque de registros, 3 puertas por ALU

AC — Tema 5 1010

Page 11: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Más ILP: Lanzamiento múltiple

Ejemplo Tema3 VLIW

LOOP LD F0,0(R1)ADDD F4,F0,F2SD 0(R1),F4UBI R1 R1 #8

LOOP: LD F0, 0(R1)LD F6, -8(R1)LD F10 16(R1) • Aplicar técnicas conocidas para minimizar

SUBI R1,R1,#8BNEZ R1,LOOP

LD F10, -16(R1) LD F14,-24(R1)ADDD F4, F0, F2ADDD F8, F6, F2ADDD F12 F10 F2

• Aplicar técnicas conocidas para minimizar paradas

• Unrolling• Renombrado de registros ADDD F12, F10, F2

ADDD F16, F14, F2 SD 0(R1), F4SD -8(R1), F8 SD -16(R1) F12

g

• Latencias de uso: LD a ADD 1 ciclo, ADD a SD 2 ciclos SD -16(R1), F12

SUBI R1, R1, #32BNEZ R1, LOOPSD 8(R1), F16; 8-32 = -24

ciclos• Opción: desarrollar 4 iteraciones y planificar:

14 ciclos, 3.5 ciclos por iteración

AC — Tema 5 1111

Page 12: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Más ILP: Lanzamiento múltiple

VLIW VLIWLoop unrolling en VLIW

LOOP: LD F0,0(R1) ; F0 = array elementADDD F4,F0,F2 ; add scalar in F2SD 0(R1),F4 ; store resultSUBI R1,R1,#8 ; decrement pointer

E h !BNEZ R1, LOOP ; branch if R1!=0

Mem ref 1 Mem ref 2 FP op FP op Int op/branchLD F0,0(R1) LD F6,-8(R1), ( ) , ( )LD F10,-16(R1) LD F14,-24(R1)LD F18,-32(R1) LD F22,-40(R1) ADDD F4,F0,F2 ADDD F8,F6,F2LD F26,-48(R1) ADDD F12,F10,F2 ADDD F16,F14,F2

ADDD F20,F18,F2 ADDD F24,F22,F2SD 0(R1),F4 SD -8(R1),F8 ADDD F28,F26,F2SD -16(R1),F12 SD -24(R1),F16SD 32(R1) F20 SD 40(R1) F24 SUBI R1 R1 #56SD -32(R1),F20 SD -40(R1),F24 SUBI R1,R1,#56SD 8(R1),F28 BNEZ R1, LOOP

7 iteraciones en 9 ciclos: 1.3 ciclos por iteración 23 i 45 l t ( 50% d ió )

AC — Tema 5 12

23 operaciones en 45 slots (~50% de ocupación) Muchos registros necesarios

Page 13: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Más ILP: Lanzamiento múltiple

VLIWVENTAJAS

d l Hardware muy simple No detecta dependencias Lógica de lanzamiento simple

Puede explotar paralelismo a todo lo largo del programa

DESVENTAJAS

Planificación estática; Muy sensible a fallos de cache Necesita desenrollado muy agresivo

á Bloque de registros muy complejo en área y tiempo de acceso Muchas NOP

Poca densidad de código Capacidad y AB de la cache de instrucciones

Compilador muy complejo No binario compatible

AC — Tema 5 1313

Operación síncrona para todas las operaciones de una instrucción

Page 14: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Más ILP: Lanzamiento múltiple

EPIC: Explicitly Parallel Instruction Computing IA64

Instrucciones de 128 bits

Operaciones de tres operandos TMP codifica dependencias entre las operaciones 128 registros enteros (64bits), 128 registros FP (82bits)g ( ) g ( ) Ejecución predicada. 64 registros de predicado de 1 bit Cargas especulativasHw para chequeo de dependencias

Instrucción 1 Instrucción 2 Instrucción 3 TMP 128 bits

Ope Reg1 Reg2 Reg3 Predicado 41 bits

Primera implementación Itanium (2001), 6 operaciones por ciclo, 10 etapas, 800Mhz

AC — Tema 5 14

Segunda implementación Itanium2 (2005), 6 operaciones por ciclo, 8 etapas, 1,66Ghz

Page 15: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Más ILP: Lanzamiento múltiple

SUPERESCALAR con Planificación Dinámica Fuera de ordenSUPERESCALAR con Planificación Dinámica.Fuera de orden Un Diseño Simple• Estaciones de reserva separadas para enteros (+reg) y PF (+reg)p p g y g• Lanzar dos instrucciones en orden ( ciclo de lanzamiento: partir en dos subciclos)• Solo FP load causan dependencias entre instrucciones enteras y PF

• Reemplazar buffer de load con cola. Las lecturas se hacen en orden• Ejecución Load: “check” dirección en cola de escritura para evitar LDE• Ejecución Load: check dirección en cola de escritura para evitar LDE• Ejecución Store: “check” dirección en cola de lecturas para evitar EDL

Rendimiento del procesador

Iteración Instrucción Lanzada Ejecutada Escribe resultadono. (número de ciclo)1 LD F0 0(R1) 1 2 41 LD F0,0(R1) 1 2 41 ADDD F4,F0,F2 1 5 81 SD 0(R1),F4 2 91 SUBI R1,R1,#8 3 4 51 BNEZ R1 LOOP 4 6 4 ciclos por 1 BNEZ R1,LOOP 4 62 LD F0,0(R1) 5 6 82 ADDD F4,F0,F2 5 9 122 SD 0(R1),F4 6 132 SUBI R1 R1 #8 7 8 9

iteración

AC — Tema 5 1515

2 SUBI R1,R1,#8 7 8 92 BNEZ R1,LOOP 8 10

Page 16: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Más ILP: Lanzamiento múltiple

SUPERESCALAR con Planificación Dinámica y Especulación Ejecución fuera de orden. Finalización en orden

SUPERESCALAR con Planificación Dinámica y Especulación

decodificación+

renombramiento

emisión

búsqueda inst ejecuciónreordenaciónregistros

q+

predicción saltos

reordenación+

finalización

ventana de ejecución

programa estático

flujo dinámicoinstrucciones

planificación dinámica y ejecución fuera de

orden

escrituraen orden

AC — Tema 5 1616

orden

Page 17: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Más ILP: Lanzamiento múltiple

EV7 ALPHA 21364 Core (2003)FETCH MAP QUEUE REG EXEC DCACHE

Stage: 0 1 2 3 4 5 6Int

RegMap

Branch Predictors

Stage: 0 1 2 3 4 5 6 Int

Issue Queue

ExecReg File(80)

AddrEMap

L2 cache1.75MB

Queue(20)

(80)

L1 DataCache

dd

80 in-flight instructions

Exec

ExecReg File

7-Set

4 Instructions / cycle

Cache64KB2-Set

plus 32 loads and 32 stores Addr

Next-LineAddress

L1 Ins

ExecFile(80)

4 Instructions / cycle

Victim Buffer

FP Reg

FP ADDDiv/Sqrt

FP MUL

L1 Ins.Cache64KB2-Set

FP Issue

Q

Reg File(72) Buffer g

Map FP MULMiss

Address

Queue(15)

(72)

AC — Tema 5 1717

Page 18: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

SPARC64 VI (2006/7)

Más ILP: Lanzamiento múltiple

SPARC64 VI (2006/7)

AC — Tema 5 1818

Page 19: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Ejecución escalar con una unidad entera y una de PF

Modelos de Ejecución

Ejecución escalar con una unidad entera y una de PF

WF D

E MUna instrucción entera y una PF pueden escribir en el mismo cicloLos saltos se resuelven en D Bancos de registros separados para enteros y flotantes

E E E

WF D E M

WF D E M

WF D E M

WF D E E E

WF D E M

WF D E M

WF D E M

....LD F1, 0(R10) LD F2, 0(R11)LD F3, 0(R12)MULD F4 F1 F2

WF D E E E

WF D E E E

WF D E M

WF D E E E

MULD F4, F1, F2MULD F5, F2, F3ADDI R11, R11, #8ADDD F6, F4, F3

WF D E E E

F WD E M

WF D E M

SUBD F7, F4, F5SD 0(R10), F6ADDI R10, R10, #8 SD 0(R12) F7

D

WF D E M

WF D E M

WF D E M

WF D E M

SD 0(R12), F7SUBI R13, R13, #1BNE loopADDI R12, R12, #8

AC — Tema 5 19

WF D E MADDI R12, R12, #8

1 iteración

Page 20: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Superescalar de 4 vías, Ejecución en orden, Predicción de saltos

Modelos de Ejecución

Supe esca a de as, jecuc ó e o de , ed cc ó de sa os

E MF

F

F

D

D

DALOC

La lectura de operandos se sigue produciendo en la decodificaciónCola de instrucciones. Las instrucciones esperan a pasar aldecodificador

F D WE MLD F1 0(R10)

E E EF D Hay logica de cortocircuito en la etapa de memoriaDos instrucciones pueden estar en M pero solo una puede accederSolo un load por ciclo. Una UF enteros y una de PF

F D

F D

F D

F D

WE M

F

WE M

WE M

WE E E

WE E ED

LD F1, 0(R10) LD F2, 0(R11)LD F3, 0(R12)MULD F4, F1, F2MULD F5, F2, F3

cola

F

F

F

WE MD

D

D

WE E E

WE E E

WE M

, ,ADDI R11, R11, #8ADDD F6, F4, F3 SUBD F7, F4, F5SD 0(R10), F6 F D

cola

F D

WE M

WE M

WE M

WE M

ADDI R10, R10, #8 SD 0(R12), F7 SUBI R13, R13, #1

BNE loop

F

F

F

D

D

D

cola

F D

WE M

WE MADDI R12, R12, #8

F D

cola

cola

AC — Tema 5 20

WE MF Dcola

Page 21: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

S perescalar de 4 ías Ejec ción f era de orden Predicción de saltos

Modelos de Ejecución

Superescalar de 4 vías, Ejecución fuera de orden, Predicción de saltos

Basado en Algoritmo de Tomasulo, las instrucciones esperan en ERSolo un load por cicloUna UF entera y otra PF

F D WE MLD F1, 0(R10)

Una UF entera y otra PF

F D

F D

F D

F D

WE M

WE M

WE E E

WE E E

LD F2, 0(R11)LD F3, 0(R12)MULD F4, F1, F2

MULD F5, F2, F3

Unidad funcional segmentada

F D

F D

F D

F D

WE M

WE E E

WE E E

WE M

, ,ADDI R11, R11, #8ADDD F6, F4, F3 SUBD F7, F4, F5SD 0(R10), F6

Adelanta

Unidad funcional segmentada

F D

F D

F D

F D

F D

WE M

WE M

WE M

WE M

( ),ADDI R10, R10, #8 SD 0(R12), F7SUBI R13, R13, #1

BNE loop F D

F D

F D WE M

WE M

WE M

BNE loopADDI R12, R12, #8

Adelantan

AC — Tema 5 21

F D

F D

WE M

WE M

Page 22: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Límites del ILP

El lanzamiento múltiple permite mejorar el rendimiento sin El lanzamiento múltiple permite mejorar el rendimiento sin

afectar al modelo de programación

En los últimos años se ha mantenido el mismo ancho superescalar En los últimos años se ha mantenido el mismo ancho superescalar

que tenían los diseños del 1995

L dif i di i i di i b id La diferencia entre rendimiento pico y rendimiento obtenido crece

¿Cuanto ILP hay en las aplicaciones?

¿Necesitamos nuevos mecanismos HW/SW para explotarlo?o Extensiones multimedia:

o Intel MMX,SSE,SSE2,SSE3, SSE4

o Motorola Altivec, Sparc, SGI, HP

AC — Tema 5 2222

Page 23: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Límites del ILP

¿Cuanto ILP hay en las aplicaciones?

Supongamos un procesador superescalar fuera de orden con

especulación y con recursos ilimitadosespeculación y con recursos ilimitados

o Infinitos registros para renombrado

o Predicción perfecta de saltoso Predicción perfecta de saltos

o Caches perfectas

L n mi nt n limit do Lanzamiento no limitado

o Desambiguación de memoria perfecta

AC — Tema 5 2323

Page 24: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Límites del ILP

M d l v rsus pr c s d r r lNuevo Modelo Modelo Power 5

I st i s 64 (si I fi it s 4

Modelo versus procesador real

Instrucciones lanzadas por ciclo

64 (sin restricciones )

Infinitas 4

Ventana de instrucciones

Infinito vs. 256, 128, 32, 16

Infinita 200

Registros para 64 Int + 64 FP Infinitos 48 enteros + Registros para renombrado

64 Int 64 FP Infinitos 48 enteros 40 Fl. Pt.

Predicción de saltos

1K 2-bit Perfecta TournamentsaltosCache Perfecto Perfecta 64KI, 32KD, 1.92MB

L2, 36 MB L3Análisis de Memory Alias

HW disambiguation

Perfecto Perfecto

AC — Tema 5 2424

Page 25: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

P6

P6 Pipeline ( 14 etapas )

InstrFetch

InstrDecode Renaming

Execu-tion

Gradu-ation

16B 6 uopsReserv.Station

ReorderBuffer

P6 Pipeline ( 14 etapas )

8 etapas para fetch decodificación y issue en orden

16B/clk

3 Instr/clk

3 uops/clk

units(5)

3 uops/clk

(40)(20)

8 etapas para fetch, decodificación y issue en ordeno 1 ciclo para determinar la longitud de la instrucción 80x86 in + 2 más para

generar las microoperaciones 3 etapas para ejecución fuera de orden en una de 5 unidades funcionales 3 etapas para la finalización de la instrucción (commit)

Parameter 80x86 microopsMax instructions issued/clock 3 6Max. instructions issued/clock 3 6Max. instr. complete exec./clock 5Max. instr. commited/clock 3Window (Instrs in reorder buffer) 40Number of reservations stations 20Number of reservations stations 20Number of rename registers 40No. integer functional units (FUs) 2No. floating point FUs 1No SIMD Fl Pt FUs 1

AC — Tema 5 2525

No. SIMD Fl. Pt. FUs 1No. memory Fus 1 load + 1 store

Page 26: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

P6

3 por ciclo

6 por ciclo

AC — Tema 5 2626

Page 27: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Pentium 4 Microarchitecture

BTB = Branch Target Buffer (branch predictor) I-TLB = Instruction TLB Trace Cache = Instruction cache

AC — Tema 5 2727

I TLB = Instruction TLB, Trace Cache = Instruction cache RF = Register File; AGU = Address Generation Unit "Double pumped ALU" means ALU clock rate 2X => 2X ALU F.U.s

Page 28: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Buscar paralelismo de más de un thread

Límites del ILP

Buscar paralelismo de más de un threado Hay mucho paralelismo en algunas aplicaciones ( Bases de datos,

códigos científicos)códigos científicos)o Thread Level Parallelism

o Thread: proceso con sus propias instrucciones y datoso Thread: proceso con sus propias instrucciones y datos Cada thread puede ser parte de un programa paralelo de

múltiples procesos o un programa independiente múltiples procesos, o un programa independiente. Cada thread tiene todo el estado (instrucciones, datos,

PC register state ) necesario para permitir su ejecución PC, register state, …) necesario para permitir su ejecución Arquitecturas( multiprocesadores, MultiThreading y

multi/many cores) mu t /many cores) o Data Level Parallelism: Operaciones idénticas sobre grandes

volúmenes de datos ( extensiones multimedia y arquitecturas

AC — Tema 5 2828

( y qvectoriales

Page 29: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Thread Level Parallelism (TLP) versus ILP

Límites del ILP

Thread Level Parallelism (TLP) versus ILP

ILP explota paralelismo implícito dentro de un segmento óde código lineal o un bucle

TLP representa el uso de múltiples thread que son i h t t l l inherentemente paralelos.

Objetivo: Usar múltiples streams de instrucciones para mejorar; mejorar; o Throughput de computadores que ejecutan muchos

programas diferentes programas diferentes. o Reducir el tiempo de ejecución de un programa multi-

threaded threaded TLP puede ser más eficaz en coste que ILP

AC — Tema 5 2929

Page 30: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Multithreading

¿ Por que multithreading ?

Pr cesad r superescalar Procesador superescalar

La latencia de memoria crece.

l ¿ Como soportarla?

AC — Tema 5 3030

Page 31: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Multithreading

Multithreading

Multithreading

Fallo de cacheFallo de cache

Incrementar el trabajo procesado por unidad de tiempo

Si los hilos son del mismo trabajo se reduce el tiempo de ejecución

La técnica multithreading no es ideal y se producen pérdidas de rendimiento.g y p pPor ejemplo, un programa puede ver incrementado su tiempo de ejecución aunque el número de programas ejecutados por unidad de tiempo sea mayor cuando se utiliza multithreading.

AC — Tema 5 3131

Page 32: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Ejecución Mulithreaded

Multithreading

Ejecución Mulithreaded

o Multithreading: múltiples threads comparten los recursos del procesador

o El procesador debe mantener el estado de cada thread e.g., una copia de bloque de registros un PC separado tablas de una copia de bloque de registros, un PC separado, tablas de páginas separadas.

o La memoria compartida ya soporta múltiples procesos. o HW para conmutación de thread muy rápido. Mucho mas

rápido que entre procesos.

¿C ánd nm t ? o ¿Cuándo conmutar? o Cada ciclo conmutar de thread (grano fino)o Cuando un thread debe parar ( por ejemplo fallo de cache ) o Cuando un thread debe parar ( por ejemplo fallo de cache )

o HEP ( 1978 ), Alewife , M-Machine , Tera-Computer

AC — Tema 5 3232

p

Page 33: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Multithreading

Multithreading de Grano Fino

o Conmuta entre threads en cada instrucción, ,entrelazando la ejecución de los diferentes thread.

o Generalmente en modo “round-robin”, los threads bl d ltbloqueados se saltan

o La CPU debe ser capaz de conmutar de thread cada ciclo ciclo.

o Ventaja; puede ocultar stalls de alta y baja latencia, cuando un thread esta bloqueado los otros usan los qrecursos.

o Desventaja; retarda la ejecución de cada thread i di id l th d si st ll s t s d individual, ya que un thread sin stall es retrasado por reparto de recursos (ciclos) entre threads

o Ejemplo Niagara y Niagara 2 ( SUN )

AC — Tema 5 3333

o Ejemplo Niagara y Niagara 2 ( SUN )

Page 34: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Multithreading

Multithreading Grano Grueso

o Conmuta entre threads solo en caso de largos stalls, como m g , mfallos de cache L2

o Ventajas jo No necesita conmutación entre thread muy rápida. o No retarda cada thread, la conmutación solo se produce

cuando un thread no puede avanzar cuando un thread no puede avanzar.

o Desventajas; no elimina perdidas por stalls cortos. La conmutación es costosa en ciclos conmutación es costosa en ciclos. o Como CPU lanza instrucciones de un nuevo thread, el pipeline

debe ser vaciado. o El nuevo thread debe llenar el pipe antes de que las o El nuevo thread debe llenar el pipe antes de que las

instrucciones empiecen a completarse.

o Ejemplos; IBM AS/400 Montecito ( Itanium 9000)

AC — Tema 5 3434

o Ejemplos; IBM AS/400, Montecito ( Itanium 9000), Spacr64 VI

Page 35: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Multithreading

Simultaneous Multi-threadingMotivación: Recursos no usados en un procesador superescalar

1

CicloUn thread, 8 unidades

1

M M FX FX FP FP BR CCCicloDos threads, 8 unidades

M M FX FX FP FP BR CC

1

2

3

1

2

33

4

5

3

4

55

6

7

5

6

77

8

9

7

8

9

AC — Tema 5 3535

9

M = Load/Store, FX = Fixed Point, FP = Floating Point, BR = Branch, CC = Condition Codes

9

Page 36: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Simultaneous Multithreading (SMT)

Multithreading

Simultaneous Multithreading (SMT)

Simultaneous multithreading (SMT): dentro de un procesador l f d d h superescalar fuera de orden ya hay mecanismos Hw para

soportar la ejecución de más de un threado Gran numero de registros físicos donde poder mapear los registros g p p g

arquitectónicos de los diferentes threads o El renombrado de registros proporciona un identificador único para los

operandos de una instrucción, por tanto instrucciones de diferentes thread d l i f di d se pueden mezclar sin confundir sus operados

o La ejecución fuera de orden permite una utilización eficaz de los recursos. Solo necesitamos sumar una tabla de renombrado por thread y

PC separados o Commit independiente se soporta con un ROB por thread ( Lógico o físico)

Ojo conflictos en la jerarquía de memoria Ojo conflictos en la jerarquía de memoria Ejemplos; Pentium4, Power5 y 6, Nehalem (2008)

AC — Tema 5 3636

Page 37: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Simultaneous multithreading

Multithreading

g

AC — Tema 5 3737

Page 38: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Comparación

Multithreading

Comparación Superescalar Grano fino Grano Grueso

MultiprocesamientoSimultaneousMultithreading

empo

Ti

Thread 1Thread 2

Thread 3Thread 4

Thread 5Idle slot

AC — Tema 5 3838

Thread 2 Thread 4 Idle slot

Page 39: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Multithreading

Power 4 (IBM 2000)

Predecesor Single-threaded del Power 5 Predecesor Single threaded del Power 5. 8 unidades de ejecución fuera de orden

AC — Tema 5 3939

Page 40: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Power 4Power 4

P 5P 52 commits

Power 5Power 5

2 fetch (PC)

AC — Tema 5 4040

2 fetch (PC),2 initial decodes

Page 41: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Power 5 (IBM 2005)

Multithreading

Power 5 (IBM 2005)

¿Por qué sólo 2 threads? Con 4, los recursos compartidos ( registros físicos , cache, AB a

AC — Tema 5 4141

memoria) son un cuello de botella.

Page 42: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

b P 5 M

Multithreading

Cambios en Power 5 para soportar SMT

Incrementar asociatividad de la L1 de instrucciones y Incrementar asociatividad de la L1 de instrucciones y del TLB

Una cola de load/stores por thread Una cola de load/stores por thread Incremento de tamaño de la L2 (1.92 vs. 1.44 MB) y L3 U b ff d b d d h d Un buffer de prebusqueda separado por thread Incrementar el numero de registros físicos de 152 a

240 Incrementar el tamaño de la colas de emisión El Power5 core es 24% mayor que el del Power4 para

soportar SMT

AC — Tema 5 4242

Page 43: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Ni (SUN 2005)

Multiprocesador en un Chip+ Multithreading grano fino

Niagara (SUN 2005) Tolerar (soportar) la latencia de memoria mediante hilos concurrentes

Incrementa la utilización del procesador Es necesario un gran ancho de banda

4 accesos concurrentes a memoria

AC — Tema 5 4343

4 accesos concurrentes a memoria

Page 44: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Ni Múlti l últi l th d

Multiprocesador en un Chip+ Multithreading grano fino

Niagara: Múltiples cores-múltiples thread

AC — Tema 5 4444

Page 45: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Niagara UltraSparcT1

Multiprocesador en un Chip+ Multithreading

Niagara UltraSparcT1

6 etapas 4 thread independientes algunos recursos x4: Banco de registros, contador de programa, store buffer, buffer de instrucciones

l l d l ió d hil d i l hil d i l d l j

AC — Tema 5 4545

el control de selección de hilo determina el hilo en cada ciclo de reloj cada ciclo elige un hilo

Page 46: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Itanium2 9000 Multi-Threading

VLIW EPIC-IA 64 +Multithreading grano grueso

Itanium2 9000 Multi Threading

– Dinámicamente asigna recursos en función del el uso efectivo a realizar.• Un evento de alta latencia determina la cesión de recursos por parte del p pthread activo.

AC — Tema 5 4646

Page 47: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Rendimiento

Procesador Microarchitectura Fetch / FU Clock Transis Power

¿ Quien es mejor?

Procesador Microarchitectura Fetch / Issue / Execute

FU Clock Rate (GHz)

Transis-tores

Die size

Power

Intel Especulativo con 3/3/4 7 int. 1 3.8 125 M 115 WIntel Pentium 4 Extreme

Especulat vo con planificación dinámica; Pipe profundo; SMT

3/3/4 7 nt. FP

3.8 5 M 122 mm2

5 W

AMD Athlon Especulativo con 3/3/4 6 int. 3 2.8 114 M 104 W64 FX-57

pplanificación dinámica. FP 115

mm2

IBM Power5 Especulativo con 8/4/8 6 int. 2 1.9 200 M 80W (1 CPU only) planificación dinámica;

SMT2 CPU cores/chip

FP 300 mm2

(est.)

(est.)

I l Pl ifi ió á i 6/5/11 9 i 2 1 6 592 M 130 WIntel Itanium 2

Planificación estática VLIW-style

6/5/11 9 int. 2 FP

1.6 592 M 423 mm2

130 W

AC — Tema 5 4747

Page 48: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

N h l d t d l t

Rendimiento Conclusiones

No hay un claro ganador en todos los aspectos El AMD Athlon gana en SPECInt seguido por el

P i 4 I i 2 P 5Pentium4, Itanium 2, y Power5 Itanium 2 y Power5, tienen similares rendimientos en

PE FP d l l hl P 4 SPECFP, dominan claramente al Athlon y Pentium 4 Itanium 2 es el procesador menos eficiente en todas

las medidas menos en SPECFP/Watt. Athlon y Pentium 4 usan bien los transistores y el área

en términos de eficacia IBM Power5 es el mas eficaz en el uso de la energía

sobre los SPECFP y algo menos sobre SPECINT

AC — Tema 5 4848

Page 49: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Conclusiones -Limites del ILP

D bl h d i ió ( i ) b l Doblar en ancho de emisión ( issue rates) sobre los valores actuales 3-6 instrucciones por ciclo, a digamos 6 12 i t i i l d 6 a 12 instrucciones requiere en el procesador o de 3 a 4 accesos a cache de datos por ciclo,

P d i l d 2 3 lt i l o Predecir-resolver de 2 a 3 saltos por ciclo, o Renombrar y acceder a mas de 20 registros por ciclo, o Buscar de la cache de instrucciones de 12 a 24 instrucciones por o Buscar de la cache de instrucciones de 12 a 24 instrucciones por

ciclo.

La complejidad de implementar estas capacidades La complejidad de implementar estas capacidades implica al menos sacrificar la duración del ciclo e incrementa de forma muy importante el consumo.incrementa de forma muy importante el consumo.

AC — Tema 5 4949

Page 50: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Conclusiones -Limites del ILP

La mayoría de la técnicas que incrementan rendimiento incrementan también el consumo.

Una técnica es eficiente en energía si incrementa Una técn ca es ef c ente en energ a s ncrementa mas rendimiento que el consumo.

Todas las técnicas de emisión múltiple son poco Todas las técnicas de emisión múltiple son poco eficientes desde el punto de vista de la energía.

AC — Tema 5 5050

Page 51: TEMA 5 Lanzamiento múltiple, Límites de ILP, Multithreading · o Capítulo 3 y 4 de [HePa07] o Capítulos 4 , 6 y 7 de [SiFK97] ... o Puertas bloque de Registros ... (2001), 6 operaciones

Conclusiones -Limites del ILP

La arquitectura Itanium no representa un paso adelante en el incremento el ILP, eliminado los problemas de complejidad y consumo.

En lugar de seguir explotando el ILP, los diseñadores se han focalizado sobre multiprocesadores en un chip (CMP focalizado sobre multiprocesadores en un chip (CMP, multicores,..)

En el 2000, IBM abrió el campo con el 1º multiprocesador , p pen un chip, el Power4, que contenía 2 procesadores Power3 y una cache L2 compartida. A partir de este punto todos los d á f b i t h id l i i ( I t l demás fabricantes han seguido el mismo camino. ( Intel, AMD, Sun, Fujitsu,..).

El balance entre ILP y TLP a nivel de chip no es todavía El balance entre ILP y TLP a nivel de chip no es todavía claro, y probablemente será muy dependiente del tipo de aplicaciones a que se dedique el sistema.

AC — Tema 5 5151