Académique Documents
Professionnel Documents
Culture Documents
de Computadores
TEMA 5
Lanzamiento mltiple, Lmites de ILP,
Multithreading
Curso 2010-2011
Contenidos
o Bibliografa
o Captulo 3 y 4 de [HePa07]
o Captulos 4 , 6 y 7 de [SiFK97]
AC Tema 5 2
Ms ILP: Lanzamiento mltiple
Introduccin
Por que limitar a una instruccin por ciclo?
Tenemos recursos?
AC Tema 5 3
Ms ILP: Lanzamiento mltiple
Alternativas
Procesador Superescalar con planificacin esttica
P
Procesadores
d VLIW ( very long
l instruction
i i processor))
S
Superescalar
l
Lanza de 1 a 8 instrucciones por ciclo
Reglas de ejecucin
o Ejecucin
en orden-planificacin esttica
o Ejecucin fuera de orden-planificacin dinmica
VLIW
Numero fijo de instrucciones por ciclo
Planificadas estticamente por el compilador
EPIC ( Explicitly Parallel Instruction Computing ) Intel/HP
AC Tema 5 4
Ms ILP: Lanzamiento mltiple
Alternativas
AC Tema 5 5
Ms ILP: Lanzamiento mltiple
SUPERESCALAR
Grado 2
2 Vas
V
AC Tema 5 6
Ms ILP: Lanzamiento mltiple
Cache de Instrucciones
Y adems... Efecto de
los saltos (delay slot)
REGISTROS
AC Tema 5 7
Ms ILP: Lanzamiento mltiple
El cdigo
di mquina
i est
t compacto
t en la
l memoria
i
AC Tema 5 8
Ms ILP: Lanzamiento mltiple
SUPERESCALAR Simple
Si l ( esttico,
tti en orden)
d )
Ventajas
Desventajas
AC Tema 5 9
Ms ILP: Lanzamiento mltiple
VLIW
El anlisis de dependencias en tiempo de compilacin
Muchas
M h operaciones i por instruccin
i t i ( IA64 packet,
k t T
Tramsmetat molecula)
l l )
Todas las operaciones de una instruccin se ejecutan en paralelo
Instrucciones con muchos bits
Muchas operaciones vacas (NOP)
IP
Bloque d
Bl de registros,
i t
3 puertas por ALU
AC Tema 5 10
Ms ILP: Lanzamiento mltiple
LOOP LD F0,0(R1)
ADDD F4,F0,F2
SD 0(R1),F4
SUBI
UBI R1 R1 #8
R1,R1,#8
BNEZ R1,LOOP
LOOP: LD F0, 0(R1)
LD F6, -8(R1)
Aplicar tcnicas conocidas para minimizar LD F10 -16(R1)
F10, 16(R1)
paradas LD F14,-24(R1)
ADDD F4, F0, F2
Unrolling
ADDD F8, F6, F2
Renombrado de registros
g ADDD F12 F10,
F12, F10 F2
ADDD F16, F14, F2
SD 0(R1), F4
Latencias de uso: LD a ADD 1 ciclo, ADD a SD 2 SD -8(R1), F8
ciclos SD -16(R1) F12
-16(R1),
Opcin: desarrollar 4 iteraciones y planificar: SUBI R1, R1, #32
BNEZ R1, LOOP
14 ciclos, 3.5 ciclos por iteracin
SD 8(R1), F16; 8-32 = -24
AC Tema 5 11
Ms ILP: Lanzamiento mltiple
VLIW
Loop unrolling en VLIW
LOOP: LD F0,0(R1) ; F0 = array element
ADDD F4,F0,F2 ; add scalar in F2
SD 0(R1),F4 ; store result
SUBI R1,R1,#8 ; decrement pointer
BNEZ
E R1, LOOP ; branchh if R1!=0
!
VLIW
VENTAJAS
Hardware
d muy simple
l
No detecta dependencias
Lgica de lanzamiento simple
Puede explotar paralelismo a todo lo largo del programa
DESVENTAJAS
AC Tema 5 13
Ms ILP: Lanzamiento mltiple
AC Tema 5 14
Ms ILP: Lanzamiento mltiple
SUPERESCALAR con Planificacin Dinmica
Dinmica.Fuera
Fuera de orden
Un Diseo Simple
Estaciones de reserva separadas
p para
p enteros (+reg)
g y PF (+reg)
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
Ejecucin Load: check
check direccin en cola de escritura para evitar LDE
Ejecucin Store: check direccin en cola de lecturas para evitar EDL
AC Tema 5 15
Ms ILP: Lanzamiento mltiple
emisin
decodificacin
+
bsqueda
q inst renombramiento ejecucin
+ reordenacin
registros
prediccin +
saltos finalizacin
ventana de
ejecucin
AC Tema 5 16
Ms ILP: Lanzamiento mltiple
AC Tema 5 17
Ms ILP: Lanzamiento mltiple
SPARC64 VI (2006/7)
AC Tema 5 18
Modelos de Ejecucin
E E E
LD F1, 0(R10) F D E M W F D E M W
MULD F4 F1,
F4, F1 F2 F D E E E W
SD 0(R10), F6 F D D E M W
SD 0(R12) F7
0(R12), F D E M W
BNE loop F D E M W
1 iteracin
AC Tema 5 19
Modelos de Ejecucin
Superescalar
Supe esca a de 4 vas,
as, Ejecucin
jecuc een o
orden,
de , Prediccin
ed cc de sa
saltos
os
F D
E M La lectura de operandos se sigue produciendo en la decodificacin
F D
C O L A Cola de instrucciones. Las instrucciones esperan a pasar al
F D decodificador
F D E E E Hay logica de cortocircuito en la etapa de memoria
Dos instrucciones pueden estar en M pero solo una puede acceder
Solo un load por ciclo. Una UF enteros y una de PF
LD F1, 0(R10)
F1 F D E M W
LD F2, 0(R11) F D E M W
LD F3, 0(R12) F D E M W
cola
MULD F4, F1, F2 F D E E E W
SD 0(R10), F6 F D E M W
ADDI R10, R10, #8 F D E M W
SD 0(R12), F7 cola D E M W
F
SUBI R13, R13, #1 F D E M W
BNE loop F D E M W
ADDI R12, R12, #8 F D E M W
cola
F D E M W
F cola E M W
D
AC Tema 5 20
Modelos de Ejecucin
S perescalar de 4 vas,
Superescalar as Ejec
Ejecucin
cin ffuera
era de orden
orden, Prediccin de saltos
Basado en Algoritmo de Tomasulo, las instrucciones esperan en ER
Solo un load por ciclo
Una UF entera y otra PF
LD F1, 0(R10) F D E M W
LD F2, 0(R11) F D E M W
LD F3, 0(R12) F D E M W
BNE loop F D E M W
Adelantan
F D E M W
F D E M W
AC Tema 5 21
Lmites del ILP
El lanzamiento mltiple permite mejorar el rendimiento sin
afectar al modelo de programacin
En los ltimos aos se ha mantenido el mismo ancho superescalar
que tenan los diseos del 1995
La
L diferencia
dif i entre rendimiento
di i pico
i y rendimiento
di i obtenido
b id crece
AC Tema 5 22
Lmites del ILP
AC Tema 5 23
Lmites del ILP
Modelo
M d l versus
v rsus procesador
pr c s d r rreall
Nuevo Modelo Modelo Power 5
Instrucciones
I st i s 64 (sin
(si I fi it s
Infinitas 4
lanzadas por restricciones )
ciclo
Ventana de Infinito vs. 256, Infinita 200
instrucciones 128, 32, 16
Registros para 64 Int + 64 FP Infinitos 48 enteros +
renombrado 40 Fl. Pt.
Prediccin de 1K 2-bit Perfecta Tournament
saltos
Cache Perfecto Perfecta 64KI, 32KD, 1.92MB
L2, 36 MB L3
Anlisis de HW Perfecto Perfecto
Memory Alias disambiguation
AC Tema 5 24
P6
P6 Pipeline ( 14 etapas )
Reserv. Reorder
Instr 16B Instr 6 uops Station Execu- Buffer Gradu-
Fetch Decode Renaming tion ation
16B 3 Instr 3 uops units 3 uops
/clk /clk /clk (5) /clk
(20) (40)
8 etapas para fetch,
fetch decodificacin y issue en orden
o 1 ciclo para determinar la longitud de la instruccin 80x86 in + 2 ms para
generar las microoperaciones
3 etapas para ejecucin fuera de orden en una de 5 unidades funcionales
3 etapas para la finalizacin de la instruccin (commit)
AC Tema 5 25
P6
3 por ciclo
6 por ciclo
AC Tema 5 26
Pentium 4 Microarchitecture
AC Tema 5 29
Multithreading
Procesador
Pr cesad r superescalar
La latencia de
memoria crece.
Como soportarla?
l
AC Tema 5 30
Multithreading
Multithreading
Fallo de cache
La tcnica multithreading
g no es ideal y se producen
p prdidas
p de rendimiento.
Por ejemplo, un programa puede ver incrementado su tiempo de ejecucin aunque el
nmero de programas ejecutados por unidad de tiempo sea mayor cuando se utiliza
multithreading.
AC Tema 5 31
Multithreading
Ejecucin Mulithreaded
AC Tema 5 32
Multithreading
AC Tema 5 33
Multithreading
o Conmuta
m entre threads solo en caso de largos
g stalls,, como
m
fallos de cache L2
j
o Ventajas
o No necesita conmutacin entre thread muy rpida.
o No retarda cada thread, la conmutacin solo se produce
cuando un thread no puede avanzar.
avanzar
Simultaneous Multi-threading
Motivacin: Recursos no usados en un procesador superescalar
2 2
3 3
4 4
5 5
6 6
7 7
8 8
9 9
AC Tema 5 36
Multithreading
Simultaneous multithreading
g
AC Tema 5 37
Multithreading
AC Tema 5 38
Multithreading
Predecesor Single
Single-threaded
threaded del Power 5.5
8 unidades de ejecucin fuera de orden
AC Tema 5 39
Power 4
2 commits
Power
P 5
2 fetch (PC),
(PC)
2 initial decodes
AC Tema 5 40
Multithreading
Cambios
b en Power
P 5 para soportar SMT
M
AC Tema 5 42
Multiprocesador en un Chip+ Multithreading grano fino
Niagara
Ni (SUN 2005)
Tolerar (soportar) la latencia de memoria mediante hilos concurrentes
AC Tema 5 43
Multiprocesador en un Chip+ Multithreading grano fino
Niagara:
Ni Mltiples
Mlti l cores-mltiples
lti l ththread
d
AC Tema 5 44
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
ell controll d
de seleccin
l i dde hil
hilo determina
d i ell hil
hilo en cada
d ciclo
i l dde reloj
l j
cada ciclo elige un hilo
AC Tema 5 45
VLIW EPIC-IA 64 +Multithreading grano grueso
AC Tema 5 46
Rendimiento
Quien es mejor?
AC Tema 5 47
Rendimiento Conclusiones
No
N hay
h un claro
l ganador
d en todos
t d los
l aspectos
t
El AMD Athlon gana en SPECInt seguido por el
P
Pentium4,
i 4 Itanium
I i 2
2, y P
Power5
5
Itanium 2 y Power5, tienen similares rendimientos en
SPECFP,
PE FP dominan
d claramente
l all Athlon
hl y Pentium
P 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 trminos de eficacia
IBM Power5 es el mas eficaz en el uso de la energa
sobre los SPECFP y algo menos sobre SPECINT
AC Tema 5 48
Conclusiones -Limites del ILP
D
Doblar
bl en anchoh de
d emisin
i i ( issue
i rates)) sobre
b los
l
valores actuales 3-6 instrucciones por ciclo, a digamos
6 a 12 instrucciones
i t i requiere
i en ell procesador
d
o de 3 a 4 accesos a cache de datos por ciclo,
o Predecir-resolver
P d i l de
d 2 a 3 saltos
lt por ciclo,
i l
o Renombrar y acceder a mas de 20 registros por ciclo,
o Buscar de la cache de instrucciones de 12 a 24 instrucciones por
ciclo.
AC Tema 5 49
Conclusiones -Limites del ILP
AC Tema 5 50
Conclusiones -Limites del ILP
AC Tema 5 51