Microarquitectura y q yParalelismo en este
Mil niMilenio
Francisco TiradoUniversidad Complutense de MadridUniversidad Complutense de Madrid
ÍndiceÍndiceEl motor: La Ley de Moore
Límites, problemas tecnológicos
P l l l d Th dParalelismo nivel de Thread
MultithreadingMu g
Multicores
2F. Tirado julio 2008
El motor
Eniac 1946
LLNL 1978LLNL 1978150 Mflops7600 & Cray1
IBM Roadrunner122400 cores
Itaniun Quad Tukvila+2000 Mtrans122400 cores
Opteron+Cell1,38Tflops
+2000 Mtrans8M 65nm,170w,2GHz30MB cache, 24MB L3 4 cores 2 thread/coreQuickPath ( 96GB/s)
3
QuickPath ( 96GB/s)
F. Tirado julio 2008
El motor
Top 500 Junio 2008
4F. Tirado julio 2008
La ley de Moorey
Electronic- Abril1965
5F. Tirado julio 2008
La Ley de MooreLa Ley de MooreLa Ley de Moore se ha cumplido
Tran
sist
ors
6F. Tirado julio 2008
La Ley de Moore se ha cumplido
7
Fuente: Intel CorporationF. Tirado julio 2008
La Ley de Moorey
HOYHOY
8
Fuente: Intel CorporationF. Tirado julio 2008
La Ley de Moorey
9F. Tirado julio 2008
La Ley de Moore
9
Manufacturing process details from 1997 to 2011Manufacturing process details from 1997 to 2011
10
Fuente: Intel Corporation
F. Tirado julio 2008
1º problema consumo
11
Fuente: Intel CorporationF. Tirado julio 2008
1º problema consumo
12
Fuente: Intel CorporationF. Tirado julio 2008
1º problema consumo
Té i P
1 problema consumo
Técnicas Power-aware
o Clock gating,
o Diferentes dominios de reloj,
o Cores simples,
o Voltage gating( UF, bloques de cache),
o Resizing adaptivo,
o Voltaje dinámico y escalado de frecuencia j y
13F. Tirado julio 2008
1º problema consumo
¿ Q h i j d l di i t d l
p
o ¿ Que hacer para seguir mejorado el rendimiento de los sistemas?
Mejora a nivel de un core. Balance power-performance
Integrar múltiples cores en un chip Balance complejidad del Integrar múltiples cores en un chip. Balance complejidad del core-numero de cores
Chip heterogéneos y aceleradores “on chip”
14F. Tirado julio 2008
2º problema retardo interconexiones
15F. Tirado julio 2008
2º problema retardo interconexiones
Ciclo
16
Multi - Many coresF. Tirado julio 2008
Retos de futuro 2015
17F. Tirado julio 2008
El punto de inflexiónE p f
M 17 2004 Int l th ld's l st chip m k publicl ckn l d d th t itMay 17, 2004 … Intel, the world s largest chip maker, publicly acknowledged that ithad hit a ''thermal wall'' on its microprocessor line. As a result, the company ischanging its product strategy and disbandingone of its most dvanced design groups.Intel also said that it would abandon two advanced chip development projects …p p p jNow, Intel is embarked on a course already adopted by some of its majorrivals: obtaining more computing power by stamping multiple processors on asingle chip rather than straining to increase the speed of a single processor …Intel's decision to change course and embrace a ''dual core'‘ processorIntel s decision to change course and embrace a ''dual core' processorstructure shows the challenge of overcoming the effects of heat generated by theconstant on-off movement of tiny switches in modern computers … some analystsand former Intel designers said that Intel was coming to terms with escalatingg g gheat problems so severe they threatened to cause its chips to fracture atextreme temperatures…
New York Times, May 17, 2004
18F. Tirado julio 2008
Microarquitectura en los 90sq
F d di iFuentes de rendimientoSegmentación. Ciclo de relojEjecución superescalar “out of order”
Especulación de datos y controlC h bl kiCaches non-blockingDesambiguación de memoriaMas ancho superescalarMas ancho superescalar……..
19F. Tirado julio 2008
Microarquitectura en los 90sq
Li iLimitesTecnológicos; consumo, ciclo-retardoILP limitadoCrecimiento muy rápido de la latencia de memoria
20F. Tirado julio 2008
Microarquitectura en los 90s
¿ Cuanto ILP existe en las aplicaciones ?
q
21F. Tirado julio 2008
Microarquitectura en los 90s
Acceso a Memoria
Microarquitectura en los 90s
100,000µProc
10,000
ce
µProc60%/año
100
1,000
erfo
rman Procesador Processor-Memory
Performance Gap:(crece 50% / año)
10
Pe
Memoria
(crece 50% / año)
DRAM7%/año.
11980 1985 1990 1995 2000 2005 2010
Año
7 /año.
22
Año
F. Tirado julio 2008
Microarquitectura en los 90sq
S l ió l li i l d Th dSolución; paralelismo a nivel de Thread
Estrategias
Múltiples threads por core; – “Simultaneous multithreading: maximizing on-chip parallelism”, Dean Tullsen, Susan Eggers, and Henry Levy, ISCA22, 1995.and Henry Levy, S , 995.
Múltiples cores ; – “The case for a single-chip l i ” K l Ol k B N f h L multiprocessor”, Kunle Olukotun, Basem Nayfeh, Lance
Hammond, Ken Wilson, and Kunyung Chang, ASPLOS-VII, 1996.
23F. Tirado julio 2008
Usar mejor los recursosPara la mayoría de las aplicaciones, la mayoría de las unidades de ejecución
desocupadas
j
8-way superscalar.
From: Tullsen, Eggers, and Levy,“Simultaneous Multithreading: Maximizing On-chip Parallelism, ISCA 1995.
24F. Tirado julio 2008
Usar mejor los transistoresj
The case for a single-chip multiprocessor, Kunle Olukotun, BasemKunle Olukotun, BasemNayfeh, Lance Hammond, Ken Wilson, and KunyungChang, ASPLOS-VII, 1996.
Retardo interconexiones ciclo consumo
25
Retardo, interconexiones, ciclo, consumoEj; Piranha (Isca2000), Hydra(Micro2000),..
F. Tirado julio 2008
Buscar paralelismo de mas de un threadp
o Hay mucho paralelismo en algunas aplicaciones (e.g., Database ori ifi d )Scientific codes)
o Thread Level Parallelism o Data Level Parallelismo Thread: proceso con sus propias instrucciones y datos
thread puede ser parte de un programa paralelo de múltiples i d di procesos, o un programa independiente.
Cada thread tiene todo el estado (instrucciones, datos, PC, i t t t ) i iti j ió register state, …) necesario para permitir su ejecución
MultiThreading y multi/many coresD t L l P ll li O i idé ti b d o Data Level Parallelism: Operaciones idénticas sobre grandes volúmenes de datos ( extensiones multimedia y arquitecturas vectoriales
26
vectoriales
F. Tirado julio 2008
MultithreadingEjecución Mulithreaded Multithreading: múltiples threads comparten los recursos del
g
o Multithreading: múltiples threads comparten los recursos del procesador
El procesados debe mantener el estado de cada thread e.g., una copia de bloque de registros, un Pc separado, tablas de paginas separadas. La memoria compartida ya soporta múltiples procesos La memoria compartida ya soporta múltiples procesos. HW para conmutación de thread muy rápido. Mucho mas rápido que entre procesos.
o ¿Cuando conmutar? Cada ciclo conmutar de thread (grano fino)Cuando un thread debe parar ( por ejemplo fallo de cache ) Cuando un thread debe parar ( por ejemplo fallo de cache )
o HEP ( 1978 ), Alewife , M-Machine , Tera-Computer
27
( ), , , p
F. Tirado julio 2008
Multithreading
Multithreading de Grano Fino
g
o Conmuta entre threads en cada instrucción, entrelazando la ejecución de los diferentes thread.
o Generalmente en modo “round-robin” los threads o Generalmente en modo round robin , los threads bloqueados 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 recursos recursos.
o Desventaja; retarda la ejecución de cada thread individual, ya que un thread sin stall es retrasado por reparto de recursos (ciclos) entre threadsreparto de recursos (ciclos) entre threads
o Ejemplo Niagara de SUN (Niagara 2 )
28F. Tirado julio 2008
MultithreadingMultithreading Grano GruesoConmuta entre threads solo en caso de largos stalls como o Conmuta entre threads solo en caso de largos stalls, como fallos de cache L2
o Ventajas o Ventajas No necesita conmutación entre thread muy rápida. No retarda cada thread, la conmutación solo se produce cuando un thread no puede avanzar.
o Desventajas; no elimina perdidas por stalls cortos. La conmutación es costosa en ciclos.
Como CPU lanza instrucciones de un nuevo thread el Como CPU lanza instrucciones de un nuevo thread, el pipeline debe ser vaciado. El nuevo thread debe llenar el pipe antes las las instrucciones empiecen a completarse. p p
o Ejemplos IBM AS/400, Montecio/Monvale ( Itanium 9000), 64 V
29
Spacr64 VI
F. Tirado julio 2008
MultithreadingSimultaneous Multi-threadingUn thread, 8 unidades Dos threads, 8 unidades
g
1
M M FX FX FP FP BR CCCiclo
1
M M FX FX FP FP BR CCCiclo,
2
3
2
3
4
5
4
5
6
7
6
7
8
9
7
8
9
30
M = Load/Store, FX = Fixed Point, FP = Floating Point, BR = Branch, CC = Condition Codes
9
F. Tirado julio 2008
MultithreadingSimultaneous Multithreading (SMT)
o Simultaneous multithreading (SMT): dentro de un procesador psuperescalar fuera de orden ya hay mecanismo Hw para soportar la ejecución de mas de un thread
Gran numero de registros físicos donde poder mapear los ist s it tó i s d l s dif t s th dsregistros arquitectónicos de los diferentes threads
El renombrado de registros proporciona un identificador único para los operandos de una instrucción, por tanto instrucciones de diferentes thread se pueden mezclar sin confundir sus de diferentes thread se pueden mezclar sin confundir sus operados La ejecución fuera de orden permite una utilización eficaz de los recursos. los recursos.
Solo necesitamos sumar una tabla de renombrado por thread y PC separados
Commit independiente se soporta con un ROB por thread ( mm p p u p (Lógico o físico)
Ojo conflictos en la jerarquía de memoriaEjemplos Pentium4, Power5, Power6, Nehalem,..
31
j p , , , ,
F. Tirado julio 2008
MultithreadingSimultaneous multithreading
g
32F. Tirado julio 2008
MultithreadingComparación
Superescalar Grano fino Grano Grueso MultiprocesamientoSimultaneousMultithreading
g
Grano f no p g
mpo
Tiem
Thread 1 Thread 3 Thread 5
33
Thread 1Thread 2
Thread 3Thread 4
Thread 5Idle slot
F. Tirado julio 2008
CMPCMP
[Amarasinghe06]
256
512
CiscoCSR-1
PicochipPC102
AmbricAM2045
[Amarasinghe06]
res 64
128 IntelTflops
CSR-1
# o
f co
8
16
32Raw
C ll
CaviumOcteon
RazaXLR
#
2
4
8
P 4 Opteron
Niagara
Tanglewood
Cell
Xbox360PA-8800
Boardcom 1480 Opteron 4PXeon MP
4004
8008
80868080 286 386 486 Pentium P2 P3P4Itanium
Itanium 21
2
Athlon
Power4 Opt ron
Power6Yonah
PExtreme
g
34
1985 199019801970 1975 1995 2000 2005 20??
F. Tirado julio 2008
CMPCMP
35F. Tirado julio 2008
CMPCMP
36F. Tirado julio 2008
Espacio de diseño CMPpDado un par área ( Mtrans) / consumo como se debe asignar a cores / thread / cachesasignar a cores / thread / caches
¿Cuantos thread por core?¿Como de complejo cada p j
core?Organización L1,L2,
tamaño, unificada o no,política de escritura, inclusiva o noinclusiva o no
Gestión de consumo/potenciaInterconexión
“BUENOS VECINOS”
37F. Tirado julio 2008
Espacio de diseño CMPpEscalar en orden NpMtN nº de I pipesM º d th d M nº de thread por core
Superescalar NsMtN ancho superescalarN ancho superescalar
38F. Tirado julio 2008
CMP: Techniques to improve throughput and latency K. Olukotum Morgan&Claypoll 2007
Paralelismo y aplicacionesy p
39F. Tirado julio 2008
CMP+ Multithreading grano fino
Niagara (UltraSparc T1)Tolerar (soportar) la latencia de memoria mediante hilos concurrentesTolerar (soportar) la latencia de memoria mediante hilos concurrentes
Incrementa la utilización del procesadorIncrementa la utilización del procesadorEs necesario un gran ancho de banda
4 accesos concurrentes a memoria
40
K Olukotun HydraChip (Stanford), Sun MAJC(2000)Afara (2000), Sun (2003)
F. Tirado julio 2008
CMP+ Multithreading grano fino
Niagara: Múltiples cores-múltiples thread
41F. Tirado julio 2008
CMP+ Multithreading grano fino
Niagara UltraSparc T1
1Ghz, 1 instrucción por ciclo, 4 thread por core, 60WI L1 16Kb(4W) D L1 8Kb (4W) it di t L2 3Mb(12W)
42
I-L1 16Kb(4W), D-L1 8Kb (4W), escritura directa, L2, 3Mb(12W)Crossbar no bloqueante, No predictor de saltos, no FP ( 1 por chip)
F. Tirado julio 2008
CMP+ Multithreading grano fino
Niagara UltraSparcT1
6 etapas4 thread independientesalgunos recursos x4: Banco de registros contador de programa store algunos recursos x4: Banco de registros, contador de programa, store
buffer, buffer de instruccionesel control de selección de hilo determina el hilo en cada ciclo de reloj
cada ciclo elige un hilo
43
cada c clo el ge un h loUna FPU por chip
F. Tirado julio 2008
CMP+ Multithreading grano finoNiagara 2 Throughput oriented
CMP Multithreading grano fino
8 Sparc cores, L2 tid 4MB 8 bL2 compartida 4MB, 8 bancos,
16WaysDos pipes de ejecución enteraDos pipes de ejecución entera
8 thread por core
Una FGU LSU SPU por coreUna FGU , LSU, SPU por core
Más AB con memoria 42,7GBs
65 11M 500Mt s 342 265nm, 11M, 500Mtrans, 342nm2
1 PCI-Ex8, 2 10/1 GB Enet port
44F. Tirado julio 2008
CMP+ Multithreading grano finoNiagara 2
CMP Multithreading grano fino
Busca 4 instrucciones por ciclopUn buffer de instrucciones por threadPredicción estatica, no tomado,
5 ciclos de penalizaciónPrefeching de instrucciones sobre missDos grupo de 4 Thread, una instrucción
por grupo y cicloC fli b L U d difi ió
45F. Tirado julio 2008
Conflictos sobre LSU,.. en decodificación8 etapas enteros, 12 etapas FP
CMP+ Multithreading grano fino3 Generación Rock
High Throughput y high single thread performance
CMP Multithreading grano fino
H gh hroughput y h gh s ngle thread performance65 nm, 16 cores, 2.3 GHz, 396mn2, 249w32 threads + 32 Scout-thread
I L1, 32KB, 4ways, compartida por 4 cores( elimina duplicación de código en aplicaciones)
F h 16 lFetch 16 instrucciones por ciclo2 predicciones de saltos por ciclo
( disagree gshare)
D L1, 32KB, 4ways, compartida 2 coresun load+ un store por core por ciclo.
L2, 4 bancos, 2MB, Operaciones de memoriaatómicas
46F. Tirado julio 2008
Dos full crossbar 5x5 a 2.3 GHz
CMP+ Multithreading grano fino3 Generación Rock
Core Cluster
CMP Multithreading grano fino
Core Cluster
Compartido
47F. Tirado julio 2008
CMP+ Multithreading grano fino3 Generación Rock
CMP Multithreading grano fino
Operaciones de alta latencia lanzan un Operaciones de alta latencia lanzan un Scout thread ( L1 miss, Div/sqt,..
El Scout threadEl Scout threadSe ejecuta antes de thread principalPredice y resuelve saltosPrebúsqueda instrucciones y datosrebúsqueda nstrucc ones y datosRegistros sombra para estado especulativoCheckpointing
Durante el scoutSe ejecutan y retiran instrucciones no
dependientesSe retrasan( defer) instrucciones no listas“Replay” solo instrucciones dependientes
48F. Tirado julio 2008
S Chaudhry et all “ High-performance throughput computing”, IEEE Micro, junio 05
CMP+ Multithreading grano fino3 Generación Rock
CMP Multithreading grano fino
49F. Tirado julio 2008
Intel Dual Core, Core2, Quad,…, , Q ,Tick-Tock “Donnington” Final 2008
6 Cores Penryn6 Cores PenrynFSB 1066MHz3MB L2 cada dos cores16MB L3 compartida
“Nahalen” Final 2008
16MB L3 compartida
FNuevo core 2 Threads SMT2 a 8 coresL2 256KB propietariap pL3 8MB compartida todos los cores(inclusiva)( 4 )128 Mi “on fly” (96 Penryn)
á 2 Level TLB y 2 level BTBMejores en prefech y Load/storesQuickPath 25GB/s“ hi ” l d d i
MásAtom x86, 24mn2,160mw, 2threadsLarrabee 2010, 16 a 24 cores
F. Tirado julio 2008 50
“on chip” controlador de memoria
AMD,…,
Susuka45nm 6MB L3
Istambul 6 cores ,…Fusion 2009
F. Tirado julio 2008 51
¿Preguntas?¿Preguntas?Muchas graciasMuchas gracias
52F. Tirado julio 2008