tema 2 paralelismo en monoprocesadores (i): arquitecturas segmentadas, superescalares y vectoriales....

27
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

Upload: pedro-sanchez-munoz

Post on 23-Jan-2016

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

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

Page 2: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

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

Page 3: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

(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

Page 4: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

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

Page 5: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

(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

Page 6: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

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

Page 7: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

Memoria Principal

Control

datos

instrucciones

Procesador

R1

Rn

Aritmética

Procesador Escalar Segmentado

Organización Básica

Page 8: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

(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

Page 9: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

(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

Page 10: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

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”

Page 11: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

Procesador Superescalar

Organización básica

Page 12: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

(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

Page 13: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

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) ...

Page 14: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

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

Page 15: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

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)

Page 16: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

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)

Page 17: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

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

Page 18: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

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

Page 19: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

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

Page 20: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

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

Page 21: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

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

Page 22: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

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

Page 23: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

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

Page 24: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

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

Page 25: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

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

Page 26: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

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

Page 27: Tema 2 Paralelismo en Monoprocesadores (I): Arquitecturas segmentadas, superescalares y vectoriales. -Técnicas para reducir el número de instrucciones

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)