Vous êtes sur la page 1sur 51

Arquitectura

de Computadores

TEMA 5
Lanzamiento mltiple, Lmites de ILP,
Multithreading

Curso 2010-2011
Contenidos

o Introduccin: CPI < 1


o Lanzamiento mltiple de instrucciones: Superescalar, VLIW
o Superescalar
S l simple
i l
o VLIW
o Superescalar con planificacin dinmica
o Lmites de ILP
o Ejemplo: Implementaciones X86
o Thread Level Parallelism y Multithreading

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?

Objetivo: CPI < 1

Lanzar y ejecutar simultneamente mltiples instrucciones por


ciclo

Tenemos recursos?

Ms rea de silicio disponible


Tcnicas para resolver las dependencias de datos (planificacin )
Tcnicas p
para resolver las dependencias
p de control (especulacin)
p )

AC Tema 5 3
Ms ILP: Lanzamiento mltiple

Alternativas
Procesador Superescalar con planificacin esttica

Procesador Superescalar con planificacin dinmica+( especulacin)

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

Forma del Deteccin de


Tipo Planificacin Ejemplos
issue riesgos
Superescalar
S s l Embeded
Dinmico HW esttica
esttico MIPS, ARM
p
Superescalar Dinmico
HW dinmica ninguno
dinmico
P4, Core2,
Superescalar Dinmico Dinmica con
HW Power5,
Power5
especulativo especulacin
SparcVI
Bsicamente esttica TI C6x
VLIW Esttico
SW Itanium

AC Tema 5 5
Ms ILP: Lanzamiento mltiple

SUPERESCALAR
Grado 2
2 Vas
V

Duplicar todos los recursos:


o Puertas bloque de Registros
o Fus
o Puertas
P t ded memoria,..
i
o Control
Ideal CPI= 0.5 se reduce por:
o Saltos
o LOADs
o Dependencias verdaderas LDE
Necesita:
o Prediccin
P di i sofisticada
fi ti d
o Tratamiento de LOAD; Cargas especulativas, tcnicas de prebsqueda
Ms presin sobre la memoria
Efecto incremental de los riesgos
Se puede reducir complejidad con limitaciones ( Un acceso a memoria por ciclo)

AC Tema 5 6
Ms ILP: Lanzamiento mltiple

SUPERESCALAR Simple ( esttico,


esttico en orden)
Regla de lanzamiento: Una instruccin FP+ una instruccin de cualquier otro tipo
Buscar y decodificar dos instrucciones por
p ciclo ( 64 bits))
Ordenamiento y decodificacin
Se analizan en orden. Slo se lanza la 2si se ha lanzado la 1 ( conflictos)
Unidades funcionales segmentadas ( una ope. por ciclo ) mltiples (divisin, raz), ms
puertas en el bloque de registros
Lanzamiento simple, recursos no conflictivos ( diferentes reg y UF,.. ), excepto
Conflictos de recursos; load, store, move FP ms puertas en el bloque de reg.
Conflictos de datos LDE ms distancia entre instrucciones.

Cache de Instrucciones

Detector Solo detecta y


Buffer de Instrucciones Bloquea el lanzamiento
Azares

Y adems... Efecto de
los saltos (delay slot)
REGISTROS
AC Tema 5 7
Ms ILP: Lanzamiento mltiple

SUPERESCALAR Simple ( esttico,


en orden)

Instruccin entera Instruccin FP Ciclo


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

Separadas por 2 ciclos

Desarrollo para ejecucin superescalar: se desarrolla una iteracin ms.


12 ciclos, 2.4 ciclos por iteracin

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

No modifica cdigo. Compatibilidad binaria


No riesgos en ejecucin

Desventajas

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


Bloqueos en el lanzamiento
Planificacin fija: No puede adaptarse a cambios en ejecucin ( Fallos de cache )
Los cdigos deben de ser replanificados para cada nueva implementacin
(
(eficiencia)
)

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

Instruccin: Incluye varias instrucciones


convencionales de tres operandos
p
una por ALU

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

AC Tema 5 10
Ms ILP: Lanzamiento mltiple

VLIW Ejemplo Tema3

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
!

Mem ref 1 Mem ref 2 FP op FP op Int op/branch


LD 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,F2
LD F26,-48(R1) ADDD F12,F10,F2 ADDD F16,F14,F2
ADDD F20,F18,F2 ADDD F24,F22,F2
SD 0(R1),F4 SD -8(R1),F8 ADDD F28,F26,F2
SD -16(R1),F12 SD -24(R1),F16
SD -32(R1),F20
32(R1) F20 SD -40(R1),F24
40(R1) F24 SUBI R1,R1,#56
R1 R1 #56
SD 8(R1),F28 BNEZ R1, LOOP

7 iteraciones en 9 ciclos: 1.3 ciclos por iteracin


23 operaciones
i en 45 slots
l t (~50%
( 50% ded ocupacin)
i )
Muchos registros necesarios
AC Tema 5 12
Ms ILP: Lanzamiento mltiple

VLIW
VENTAJAS
Hardware
d muy simple
l
No detecta dependencias
Lgica de lanzamiento simple
Puede explotar paralelismo a todo lo largo del programa

DESVENTAJAS

Planificacin esttica; 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 cdigo
Capacidad y AB de la cache de instrucciones
Compilador muy complejo
No binario compatible
Operacin sncrona para todas las operaciones de una instruccin

AC Tema 5 13
Ms ILP: Lanzamiento mltiple

EPIC: Explicitly Parallel Instruction Computing IA64


Instrucciones de 128 bits
Operaciones de tres operandos
TMP codifica dependencias entre las operaciones
g
128 registros enteros (64bits),
( ) 128 registros
g FP (82bits)
( )
Ejecucin predicada. 64 registros de predicado de 1 bit
Cargas especulativas
Hw para chequeo de dependencias

Instruccin 1 Instruccin 2 Instruccin 3 TMP 128 bits

Ope Reg1 Reg2 Reg3 Predicado 41 bits

Primera implementacin Itanium (2001), 6 operaciones por ciclo, 10 etapas, 800Mhz

Segunda implementacin Itanium2 (2005), 6 operaciones por ciclo, 8 etapas, 1,66Ghz

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

Rendimiento del procesador

Iteracin Instruccin Lanzada Ejecutada Escribe resultado


no. (nmero de ciclo)
1 LD F0
F0,0(R1)
0(R1) 1 2 4
1 ADDD F4,F0,F2 1 5 8
1 SD 0(R1),F4 2 9
1 SUBI R1,R1,#8 3 4 5
4 ciclos por
1 BNEZ R1
R1,LOOP
LOOP 4 6
2 LD F0,0(R1) 5 6 8 iteracin
2 ADDD F4,F0,F2 5 9 12
2 SD 0(R1),F4 6 13
2 SUBI R1
R1,R1,#8
R1 #8 7 8 9
2 BNEZ R1,LOOP 8 10

AC Tema 5 15
Ms ILP: Lanzamiento mltiple

SUPERESCALAR con Planificacin Dinmica y Especulacin


Ejecucin fuera de orden. Finalizacin en orden

emisin
decodificacin
+
bsqueda
q inst renombramiento ejecucin
+ reordenacin
registros
prediccin +
saltos finalizacin

ventana de
ejecucin

programa flujo dinmico planificacin dinmica y escritura


esttico instrucciones ejecucin fuera de en orden
orden

AC Tema 5 16
Ms ILP: Lanzamiento mltiple

EV7 ALPHA 21364 Core (2003)


FETCH MAP QUEUE REG EXEC DCACHE
Stage: 0 1 2 3 4 5 6
Branch Int Int Reg Exec
Predictors Reg Issue File
Map Queue (80) E
Exec
Addr
dd
(20)
L1
Reg Data L2 cache
80 in-flight instructions
Exec 1.75MB
File Cache
plus 32 loads and 32 stores Addr 7-Set
(80) 64KB
Next-Line Exec
Address
2-Set
L1 Ins
Ins. 4 Instructions / cycle
Cache FP ADD
64KB FP Reg
FP File
Div/Sqrt
2-Set Issue Victim
Reg
g (72) Buffer
Q
Queue FP MUL
Map
(15) Miss
Address

AC Tema 5 17
Ms ILP: Lanzamiento mltiple

SPARC64 VI (2006/7)

AC Tema 5 18
Modelos de Ejecucin

Ejecucin escalar con una unidad entera y una de PF


Una instruccin entera y una PF pueden escribir en el mismo ciclo
E M
Los saltos se resuelven en D
F D W Bancos de registros separados para enteros y flotantes

E E E

LD F1, 0(R10) F D E M W F D E M W

LD F2, 0(R11) F D E M W F D E M W ....


LD F3, 0(R12) F D E M W F D E M W

MULD F4 F1,
F4, F1 F2 F D E E E W

MULD F5, F2, F3 F D E E E W

ADDI R11, R11, #8 F D E M W

ADDD F6, F4, F3 F D E E E W

SUBD F7, F4, F5 F D E E E W

SD 0(R10), F6 F D D E M W

ADDI R10, R10, #8 F D E M W

SD 0(R12) F7
0(R12), F D E M W

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

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

MULD F5,, F2,, F3 F D E E E W

ADDI R11, R11, #8 F D E M W


cola
ADDD F6, F4, F3 F D E E E W

SUBD F7, F4, F5 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

MULD F4, F1, F2 F D E E E W Unidad funcional segmentada


MULD F5,, F2,, F3 F D E E E W

ADDI R11, R11, #8 F D E M W Adelanta


ADDD F6, F4, F3 F D E E E W

SUBD F7, F4, F5 F D E E E W Unidad funcional segmentada


SD 0(R10),
( ), F6 F D E M W

ADDI R10, R10, #8 F D E M W


SD 0(R12), F7 F D E M W

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

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

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 22
Lmites del ILP

Cuanto ILP hay en las aplicaciones?

Supongamos un procesador superescalar fuera de orden con


especulacin y con recursos ilimitados
o Infinitos registros para renombrado
o Prediccin perfecta de saltos
o Caches perfectas
o Lanzamiento
L n mi nt n no limit
limitado
d
o Desambiguacin de memoria perfecta

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)

Parameter 80x86 microops


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

AC Tema 5 25
P6

3 por ciclo

6 por ciclo

AC Tema 5 26
Pentium 4 Microarchitecture

BTB = Branch Target Buffer (branch predictor)


I-TLB
I TLB = Instruction TLB,
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
AC Tema 5 27
Lmites del ILP

Buscar paralelismo de ms de un thread


o Hay mucho paralelismo en algunas aplicaciones ( Bases de datos,
cdigos cientficos)
o Thread Level Parallelism
o Thread: proceso con sus propias instrucciones y datos
Cada thread puede ser parte de un programa paralelo de
mltiples procesos,
procesos o un programa independiente.
independiente
Cada thread tiene todo el estado (instrucciones, datos,
PC register state,
PC, state )) necesario para permitir su ejecucin
Arquitecturas( multiprocesadores, MultiThreading y
multi/many
mu t /many cores)
o Data Level Parallelism: Operaciones idnticas sobre grandes
volmenes de datos ( extensiones multimedia y arquitecturas
q
vectoriales
AC Tema 5 28
Lmites del ILP

Thread Level Parallelism (TLP) versus ILP

ILP explota paralelismo implcito dentro de un segmento


de cdigo
lineal o un bucle
TLP representa el uso de mltiples thread que son
i h
inherentemente
t t paralelos.
l l
Objetivo: Usar mltiples streams de instrucciones para
mejorar;
o Throughput de computadores que ejecutan muchos
programas diferentes.
diferentes
o Reducir el tiempo de ejecucin de un programa multi-
threaded
TLP puede ser ms eficaz en coste que ILP

AC Tema 5 29
Multithreading

Por que multithreading ?

Procesador
Pr cesad r superescalar

La latencia de
memoria crece.
Como soportarla?
l

AC Tema 5 30
Multithreading

Multithreading

Fallo de cache

Incrementar el trabajo procesado por unidad de tiempo

Si los hilos son del mismo trabajo se reduce el tiempo de ejecucin

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

o Multithreading: mltiples threads comparten los


recursos del procesador
o El procesador debe mantener el estado de cada thread e.g.,
una copia de bloque de registros,
registros un PC separado
separado, tablas de
pginas separadas.
o La memoria compartida ya soporta mltiples procesos.
o HW para conmutacin de thread muy rpido. Mucho mas
rpido que entre procesos.
o Cundo
C nd conmutar?
nm t ?
o Cada ciclo conmutar de thread (grano fino)
o Cuando un thread debe parar ( por ejemplo fallo de cache )

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


p

AC Tema 5 32
Multithreading

Multithreading de Grano Fino


o Conmuta entre threads en cada instruccin,,
entrelazando la ejecucin de los diferentes thread.
o Generalmente en modo round-robin, los threads
bl
bloqueados
d se saltan
lt
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
q los otros usan los
recursos.
o Desventaja; retarda la ejecucin de cada thread
i di id l ya que un th
individual, threadd si
sin st
stall
ll ess retrasado
t s d por
reparto de recursos (ciclos) entre threads
o Ejemplo Niagara y Niagara 2 ( SUN )

AC Tema 5 33
Multithreading

Multithreading Grano Grueso

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

o Desventajas; no elimina perdidas por stalls cortos. La


conmutacin es costosa en ciclos.
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
instrucciones empiecen a completarse.

o Ejemplos; IBM AS/400


AS/400, Montecito ( Itanium 9000),
9000)
Spacr64 VI
AC Tema 5 34
Multithreading

Simultaneous Multi-threading
Motivacin: Recursos no usados en un procesador superescalar

Un thread, 8 unidades Dos threads, 8 unidades


Ciclo M M FX FX FP FP BR CC Ciclo M M FX FX FP FP BR CC
1 1

2 2

3 3

4 4

5 5

6 6

7 7

8 8
9 9

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


AC Tema 5 35
Multithreading

Simultaneous Multithreading (SMT)

Simultaneous multithreading (SMT): dentro de un procesador


superescalar
l fuera
f d
de orden
d ya hhay mecanismos Hw para
soportar la ejecucin de ms de un thread
o Gran numero de registros
g fsicos donde poder
p mapear
p los registros
g
arquitectnicos de los diferentes threads
o El renombrado de registros proporciona un identificador nico para los
operandos de una instruccin, por tanto instrucciones de diferentes thread
se pueden
d mezclarl sini confundir
f di sus operadosd
o La ejecucin fuera de orden permite una utilizacin 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 ( Lgico o fsico)
Ojo conflictos en la jerarqua de memoria
Ejemplos; Pentium4, Power5 y 6, Nehalem (2008)

AC Tema 5 36
Multithreading
Simultaneous multithreading
g

AC Tema 5 37
Multithreading

Comparacin Simultaneous Multiprocesamiento


Superescalar Grano fino Grano Grueso Multithreading
Tiempo

Thread 1 Thread 3 Thread 5


Thread 2 Thread 4 Idle slot

AC Tema 5 38
Multithreading

Power 4 (IBM 2000)

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

Power 5 (IBM 2005)

Por qu slo 2 threads? Con 4, los recursos


compartidos ( registros fsicos , cache, AB a
memoria) son un cuello de botella.
AC Tema 5 41
Multithreading

Cambios
b en Power
P 5 para soportar SMT
M

Incrementar asociatividad de la L1 de instrucciones y


del TLB
Una cola de load/stores por thread
Incremento de tamao de la L2 (1.92 vs. 1.44 MB) y L3
Un
U buffer
b ff de
d prebusqueda
b d separado
d por thread
h d
Incrementar el numero de registros fsicos de 152 a
240
Incrementar el tamao de la colas de emisin
El Power5 core es 24% mayor que el del Power4 para
soportar SMT

AC Tema 5 42
Multiprocesador en un Chip+ Multithreading grano fino

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

Incrementa la utilizacin del procesador


Es necesario un gran ancho de banda
4 accesos concurrentes a memoria

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

Itanium2 9000 Multi


Multi-Threading
Threading
Dinmicamente asigna recursos en funcin del el uso efectivo a realizar.
Un evento de alta latencia determina la cesin de recursos p
por parte
p del
thread activo.

AC Tema 5 46
Rendimiento

Quien es mejor?

Procesador Microarchitectura Fetch / FU Clock Transis Power


Issue / Rate -tores
Execute (GHz) Die size
Intel Especulat vo con
Especulativo 3/3/4 7 int.
nt. 1 3.8 125
5M 115
5W
Pentium 4 planificacin dinmica; FP 122
Extreme Pipe profundo; SMT mm2
AMD Athlon Especulativo
p con 3/3/4 6 int. 3 2.8 114 M 104 W
64 FX-57 planificacin dinmica. FP 115
mm2
IBM Power5 Especulativo con 8/4/8 6 int. 2 1.9 200 M 80W
(1 CPU only) planificacin dinmica; FP 300 (est.)
SMT mm2
2 CPU cores/chip (est.)
Intell
I Planificacin
Pl ifi i esttica
i 6/5/11 9 int.
i 2 16
1.6 592 M 130 W
Itanium 2 VLIW-style FP 423
mm2

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.

La complejidad de implementar estas capacidades


implica al menos sacrificar la duracin del ciclo e
incrementa de forma muy importante el consumo.

AC Tema 5 49
Conclusiones -Limites del ILP

La mayora de la tcnicas que incrementan


rendimiento incrementan tambin el consumo.
tcn ca es ef
Una tcnica eficiente
c ente en energa
energ a ssi incrementa
ncrementa
mas rendimiento que el consumo.
Todas las tcnicas de emisin mltiple son poco
eficientes desde el punto de vista de la energa.

AC Tema 5 50
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 diseadores se han
focalizado sobre multiprocesadores en un chip (CMP,
(CMP
multicores,..)
En el 2000,, IBM abri el campo
p con el 1 multiprocesador
p
en un chip, el Power4, que contena 2 procesadores Power3
y una cache L2 compartida. A partir de este punto todos los
d fabricantes
dems f b i t han
h seguidoid ell mismo
i camino.
i (I
Intel,
t l
AMD, Sun, Fujitsu,..).
El balance entre ILP y TLP a nivel de chip no es todava
claro, y probablemente ser muy dependiente del tipo de
aplicaciones a que se dedique el sistema.

AC Tema 5 51

Vous aimerez peut-être aussi