Tema 2Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales.
-Técnicas para reducir el número de instrucciones por ciclo (CPI):Arquitecturas segmenta- das, superescalares y vectoriales.
- Recuerdo básico de Arquitecturas segmentadas. Enfasis en “Trabas a la segmentación”
- Arquitecturas superescalares: Recuerdo de hardware Límites y posibles remedios Enfasis en soluciones software:
Planificación softwarePlanificación de saltosDesenrolle de buclesMovimiento global de código
- Arquitecturas vectoriales
- Conclusiones
Bibliografía:- Arquitectura de Computadores, J.L. Hennesst, D.A. Patterson, Mc Graw Hill- Superescalar Microprocessor design, M. Johnson, Prentice Hall
Computador de von Neumann
Memoria Principal
Unidad
Aritmética
Unidad deControl
Procesador
controlEntrada/ Salida
Dispositivos Periféricos
datos instrucciones
control
control
Propiedades Clave:•Las instrucciones y los datos se almacenan en la misma memoria•Las instrucciones utilizan operandos escalares•La ejecución del programa es inherentemente secuencial
(Micro-) Procesador Escalar1a Generación
Ejecución secuencial de instrucciones
F: búsquedaD: decodificación
D ALU ALUD ALUDF F F
Instrucción 1 Instrucción 2 Instrucción 3
• Años 70• <10K transistores; 4-8 bits; <10MHz• Ejemplos: i4004,i8008/80, MC6800, MCS6502, Z80, F8 …• Los primeros computadores personales eran juguetes• (Altair 8800, Sphere 310, Kim-1, Apple II ….)
N. Tredennick, Microprocessor-Based Computers, IEEE Computer, 29(10), Oct. 96, p.27-37
Procesador Escalar: Organización Básica
Memoria Principal
Control
datos
instrucciones
Procesador
load: Rx M[]Store: M[] Rx
Ri Rj <op> Rk
R1
Rn
Aritmética
(Micro-) Procesador Escalar2a Generación
Ejecución segmentada (superpuesta)de instrucciones, con pocas etapas
F: búsquedaD: decodificación
D ALU
D ALU
F D ALU
F D ALU
D ALU
Instrucción 1
Instrucción 2
Instrucción 3
Instrucción 4
Instrucción 5
• Principios de años 80• < 150K transistores; 16 bits; < 20 MHz• Ejemplos: MC68000, i8086/286, Z8000 …• Primeros computadores personales (PC in ´81) y estaciones de trabajo (HP, DEC,Sun,SGI)
N. Tredennick, Microprocessor-Based Computers, IEEE Computer, 29 (10), Oct. 96, p.27-37
F
F
F
Procesador Escalar Segmentado
Una unidad segmentada es una secuencia de etapas con la propiedad de queNuevas operaciones pueden iniciarse mientras otras están en proceso
H. Stone, High Performance Computer Architecture, Addison-Wesley, MS,1993
T = NP *
1IPC * tc
Objetivos:* Reducir tc
* Emitir una instrucción por ciclo ( IPC=1 )
Rendimiento limitado por:* Instrucciones no numéricas* Dependencias de control y datos
Memoria Principal
Control
datos
instrucciones
Procesador
R1
Rn
Aritmética
Procesador Escalar Segmentado
Organización Básica
(Micro-) Procesador Escalar3a Generación
Ejecución segmentada (superpuesta)de instrucciones, con muchas etapas (supersegmentación)F: búsquedaD: decodificación
D E Instrucción 1
Instrucción 2
Instrucción 3
Instrucción 4
Instrucción 5
• Mediados de los años 80• ~ 300K transistores; 16-32 bits; < 50 MHz• Ejemplos: MC68020, i80386, R2000/3000 …• Microprocesadores con cache interna; primeros procesadores RISC
F
EA: dirección efectivaE: ejecución
M: memoriaWB: postescritura
EA M WB
D EF EA M WB
D EF EA M WB
D EF EA M WB
D EF EA M WB
N. Tredennick, Microprocessor-Based Computers, IEEE Computer, 29(10), Oct. 96, p.27-37
(Micro-) Procesador Escalar4a GeneraciónEjecución segmentada (superpuesta)
de instrucciones, con muchas etapas (supersegmentación)F: búsquedaD: decodificación
D EInstrucción 1
Instrucción 2
Instrucción 3
Instrucción 4
Instrucción 5
• Finales de los años 80, principios de los 90• < 2M transistores; 32-64 bits; < 100 MHz• Ejemplos: MC68040, i80486, MC88110, i80860,PA-RISC, Sparc, R6000 ...• La mayoría de microprocesadores usan arquitectura RISC, casi todos los fabricantes de workstations usan su propio microprocesador.
F
EA: dirección efectivaE: ejecución
M: memoriaWB: postescritura
EA M WB
D EF EA M WB
D EF EA M WB
D EF EA M WB
D EF EA M WB
N. Tredennick, Microprocessor-Based Computers, IEEE Computer, 29(10), Oct. 96, p.27-37
D EF EA M WB Instrucción 6
Procesador Superescalar
M. Johnson, Superscalar Microprocessor Design, Prentice Hall, NJ, 1991
T = NP *
1IPC * tc
Objetivos:* Reducir tc
* Emitir mas de una instrucción por ciclo ( IPC>1 )
Rendimiento limitado por:* Instrucciones no numéricas* Dependencias de control y datos
Permite la ejecución concurrente de instrucciones en la misma o en distintas “pipelines”
Procesador Superescalar
Organización básica
(Micro-) Procesador Escalar5a GeneraciónEjecución paralela y segmentada de
instrucciones (superescalar desacoplado)
D EF EA WB E E
DF EA E E
DF EA E E
E E
E E EDF EA
DF EA
DF EA M
WB
WB
WB
WB
WB
Instrucción 1
Instrucción 2
Instrucción 3
Instrucción 4
Instrucción 5
Instrucción 6
• Mediados de 1990 y...• < 10M transistores; 32-64 bits; < 500 MHz• Ejemplos: iP5/6, Hyper/Ultra Sparc, Alpha 21164, MIPS 8K/10K, PA-RISC 7K3/8K• Computadores personales dominados principalmente por una familia de microprocesadores, fragmentación del mercado de las estaciones de trabajo, se aproximan ambos mercados.
N. Tredennick, Microprocessor-Based Computers, IEEE Computer, 29(10), Oct. 96, p.27-37
Dependencias de Control y Datos
Dependencia de datos:
WAW
Ri ...
... Ri op Rj
RAW
WARRi ...
Dependenciareal
Antidependencia
Dependenciade salida
Dependencia de control:
Nivel: ...
Nivel Branch (cond) ...
Actuación
•Cuando se produce un riesgo hay que “parar” el sistema•En un procesador segmentado hay que:
* Parar la instrucción que produce el riesgo* Parar las instrucciones que siguen a la que produce el riesgo* Continuar ejecutando instrucciones anteriores a la que produce el riesgo* No se buscan más instrucciones mientras permanece el riesgo
parar
detección del riego
continuar
ciclos deparada
Ejemplo de riesgosCódigo original
R3:= R3 op R5 (1)R4:= R3 + 1 (2)R3:= R5 + 1 (3)R7:= R3 op R4 (4)
Riesgos:
1) RAW (dependencia verdadera)La salida de (1), R3, es uno de los operandos en (2)
2) WAW (dependencia de salida)(1) y (3) intentan escribir en R3
3) WAR (antidependencia)La instrucción (3) no puede comenzar hasta que la instrucción (2) haya obtenidouno de sus operandos (R3)
Ejemplo de riesgosCódigo modificado
R3b:= R3a op R5a (1)R4a:= R3b + 1 (2)R3c:= R5 + 1 (3)R7a:= R3c op R4a (4)
Riesgos:
Sólo quedan los riesgos RAW (dependencia verdadera).La salida de (1), R3b, es uno de los operandos en (2)La salida de (3), R3c, es uno de los operandos en (4)
Paralelismo a nivel de instrucciónIpc: media del número de instrucciones por ciclo de un programa suponiendo recursos hardware ilimitados (= 1/CPI) Factores que determinan ipc:
1) Dependencias de datos2) Dependencias de flujo3) Conflicto de recursos
Determinación de ipc para distintos benchmarksLatencias: Ld, SUMF 2 ciclos; MULF 4; DIVF y fallo cache, 12
0
2
4
6
8
10
5diff
awk
ccom
compress
doduc
espressognuches
grep
irsim
latex
linpack
nroff
simplespice2g6
troff
whetstone
wolf
yacc
ipc varía entre 1,3 (linpack) y 9 (troff). Media 3,3
Instructions/Cycle
0
2
4
6
8
10
5diff
awk
ccom
compress
doduc
espresso
grep
irsim
latex
linpack
nroff
simple
troff
whetstone
wolf
yacc
Speedup
> Benchmarks de propósito general no se pueden emitir muchas instrucciones
en paralelo.
12
Aceleración (speed up) esperada = ipc (superescalar)/ipc(escalar)Media aceleración: 5,5 -> límite de rendimiento óptimo.
gnuchess spice2g6
Efecto de los Saltos y la Dep. de Datos
Percentage of Zero-Issue and Single-Issue Cycles in an Ideal Supescalar Processor with Given Latencies and Caches
Percentage ofAll Cycles
0
10
20
30
40
50
60
70
80
90
100
5diff aw
k
ccom
com
press
doduc
espre
sso
gnuches
s
grep
irsim
late
x
linpac
k
nroff
sim
ple
spice2
g6
troff
whet
ston
ewol
f
yacc
0
5
10
15
20
25
30
35
40
Percentage
1 2 3 4 5 6 7 8+Run Length (instructions)
Dynamic Run-Length Distribution of Taken Branches
ccom irsim troff yacc
Paralelismo a nivel de máquina
Ipcm: media del número de instrucciones por ciclo para programas con paralelismo deinstrucciones óptimo.
Factores que determinan el paralelismo de máquina:
- Número de instrucciones buscadas por ciclo- Número de Ufs- Mecanismos para encontrar instrucciones indep
Emisión-finalización fuera de ordenRenombre de registrosVentana de instrucciones
Determinación del paralelismo máquina para distintos benchmarks
Procesador base: procesador escalar con emisión fuera de orden, renombrede registros y Ufs Ld/St, SUMAF, MULF/DIVF
Benchmarks: muy pocas instrucciones PFNo hay fallos en cache
0
0,5
1
1,5
2
2,5
3
3,5
4
base +ld/st +Alu +Both
8 16 32
0
0,5
1
1,5
2
2,5
3
3,5
4
4,5
base +ld/st +Alu +Both
8 16 32
+ ld//st, + alu, +both: procesador con dos unidades Ld/St, dos alus, ambas cosas.
Duplicar ALU: mejora el rendimiento (más si ventanas de instrucciones grandes): 40% inst usan ALU
Duplicar Ld/St: más costoso y menos justificable
Without renamingSpeedup
Window size (instructions) Window size (instructions)
With renamingSpeedup
Superescalares: Modelo de desarrollo
4 decodificadores paralelos2 ALUs1 Shifter1 L/S1 Branch Unit2 Write Back
Issue Latency (cycles) Result Latency (cycles)
single double single doubleFunctional Unit
Integer ALU (2)
Barrel Shifter
Branch Unit
Load Unit
Store Unit
Memory (cache reload)
Float Add
Float Multiply
Float Divide
Float Convert
1 n/a 1 n/a
1 n/a
1
1
1
1
1
1
1
n/an/a
n/a1
13
2
2
2 3
n/a n/a
n/a 12 n/a
2 2 3
2 4 6
12 27 12 27
2 2 4
Superescalares: Ejemplos de esquema de estudio
Supóngase un conjunto de 6 instrucciones con las siguientes características:
•I1 tarda dos ciclos en ejecutarse•I3 e I4 requieren la misma unidad funcional•I5 depende el valor producido por I4•I5 e I6 requieren la misma unidad funcional
I1 I2
I3 I4
I3 I4I4
I6I5
I6
I1
I1
I2
I3
I4
I5
I6
I1 I2
I3 I4
I5 I6
Decode Execute Writeback Cycle
1
2
3
4
5
6
7
8
Superscalar Pipeline with In-Order Issue and In-Order Completion
I1 I2
I3 I4
I4I6
I6
I5
I1
I1
I2
I3
I4I5
I6
I1
I2
I3I4
I5
I6
Decode Execute Writeback Cycle
1
2
3
4
5
6
7
Superscalar Pipeline with In-Order Issue and Out-of-Order Completion
Cycle
1
2
3
4
5
6
I1 I2
I3 I4
I5 I6
I1, I2
I3, I4
I4, I5, I6
I5
I1 I2
I1 I3
I6 I4
I5
I2
I1 I3
I4 I6
I5
Decode Window Execute Writeback
Superscalar Pipeline with Out-of-Order Issue and Out-of-Order Completion
Planificación software
Objetivo: Reordenar el código para mejorar el tiempo de ejecución
Ayudar al hardware a descubrir instrucciones que se pueden ejecutar juntas Comenzar antes la secuencia de instrucciones que más tarde
Evitar conflictos de recursos que aumenten el tiempo de ejecución
Características del procesador superescalar
Ejecución fuera de orden 2 ALUs, 1 UF desplazamiento, 1 UF saltos (latencias: 1 ciclo) 1 UF Load/Store completamente segmentada (latencia 2)
* Loads se ejecutan en orden Cortocircuitos: en el último ciclo de ejecución leen el resultado las instrucciones dependientes. Escritura (en BR): en el ciclo siguiente el último ciclo de ejecución (máximo: dos escrituras por ciclo)
Top Related