Tema 2 ismo en Monoprocesadores (I): Arquitecturas segment calares y vectoriales. para reducir el número de instrucciones por ciclo (CPI):Arquitectura erescalares y vectoriales. básico de Arquitecturas segmentadas. Enfasis en “Trabas a la segmen turas superescalares: Recuerdo de hardware Límites y posibles remedios Enfasis en soluciones software: Planificación software Planificación de saltos Desenrolle de bucles Movimiento global de código turas vectoriales ones ía: tura de Computadores, J.L. Hennesst, D.A. Patterson, Mc Graw Hill alar Microprocessor design, M. Johnson, Prentice Hall
27
Embed
Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones.
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
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)
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
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)