Você está na página 1de 65

ARQUITECTURA DE COMPUTADORES

Explotacin de Paralelismo a Nivel de Instruccin

Contenido

Introduccin a la segmentacin (pipeline). Riesgos.


Riesgos estructurales. Riesgos de datos. Riesgos de control.
Alternativas en tiempo de compilacin. Alternativas en tiempo de ejecucin.

Operaciones multi-ciclo.
Arquitectura de Computadores - Curso 2012

Introduccin a la segmentacin

Arquitectura de Computadores - Curso 2012

Estructura de un computador elemental

Arquitectura de Computadores - Curso 2012

Arquitectura del MIPS


Instruction Fetch
Next PC

Instr. Decode Reg. Fetch

Execute Addr. Calc

Memory Access MUX

Write Back

Adder

Next SEQ PC
Zero?
RS1

4
Address Address

MUX MUX MUX

Memory Memory

Reg File Reg File

RS2

Arquitectura de Computadores - Curso 2012

Inst

ALU ALU

Data Memory

RD

L M D

MUX

Imm

Sign Extend

WB Data

Arquitectura del MIPS


Instruction Fetch
Next PC

Captacin (Instruction Fetch)


Envo de PC a memoria. Lectura de instruccin. Actualizacin de PC.

Instr. Decode Reg. Fetch

Execut e Addr. Calc


Zero?

Memory Access MUX

Next SEQ PC
RS1

Wr ite Ba ck

Adder

4
Address

MUX MUX

Memory

Reg File

RS2

ALU

I ns t
RD Imm

Data Memory

L M D

MUX

Sign Extend

Decodificacin (Instruction Decode)


Decodificacin de instruccin. Lectura de registros. Extensin de signo de desplazamientos. Clculo de posible de direccin de salto.

WB Data

Arquitectura de Computadores - Curso 2012

Arquitectura del MIPS


Instruction Fetch Instr. Decode Reg. Fetch Execut e Addr. Calc
Zero?
RS1

Memory Access MUX

Ejecucin (Execution)
Operacin de ALU sobre registros. Alternativamente, clculo de direccin efectiva.

Next PC

Next SEQ PC

Wr ite Ba ck

Adder

4
Address

MUX MUX

Ciclo de acceso a memoria (Memory)


Lectura o escritura sobre memoria.

Memory

Reg File

RS2

ALU

I ns t
RD Imm

Data Memory

L M D

MUX

Sign Extend

WB Data

Post-escritura (Write Back)


Escritura de resultado en banco de registros.

Arquitectura de Computadores - Curso 2012

Segmentacin

Idea: solapar la ejecucin de mltiples instrucciones. Idea similar a una lnea de ensamblaje de automviles.

Segmentacin Tcnica de implementacin en la que la ejecucin de mltiples instrucciones se solapan en el tiempo.


Se divide una operacin costosa en varias sub-operaciones simples. Ejecucin de las sub-operaciones por etapas.

Efectos:
Aumenta el throughput. No disminuye la latencia.

Arquitectura de Computadores - Curso 2012

10

Segmentacin

Ciclo 1 Ciclo 2 Ciclo 3 Ciclo 4 Ciclo 5 Ciclo 6 Ciclo 7 Ciclo 8

IF1 IF2 IF3 IF4 IF5 IF6 IF7 IF8 DE1 DE2 DE3 DE4 DE5 DE6 DE7 EX1 EX2 EX3 EX4 EX5 EX6 M1 M2 M3 M4 M5 W1 W2 W3 W4

Llenado del pipeline

Latencia

5 ciclos 1 instruccin por ciclo

Trhoughput (ideal)

Arquitectura de Computadores - Curso 2012

11

El pipeline a lo largo del tiempo


Time (clock cycles)
Cycle 1 Cycle 2 Cycle 3 Cycle 4 Cycle 5 Cycle 6 Cycle 7

ALU

I n s t r. O r d e r

ALU

Ifetch

Reg

DMem

Reg

Ifetch

Reg

DMem

Reg

ALU

Ifetch

Reg

DMem

Reg

ALU

Ifetch

Reg

DMem

Reg

Arquitectura de Computadores - Curso 2012

12

Efectos del pipeline Un pipeline de profundidad n, multiplica por n el ancho de banda necesario de la versin sin pipeline con la misma frecuencia de reloj.
Cachs,

La separacin de cach de datos e instrucciones elimina algunos conflictos de memoria. Las instrucciones que estn en el pipeline no deberan intentar usar el mismo recurso en el mismo momento.
Introduccin de registros de pipeline entre etapas sucesivas.

Arquitectura de Computadores - Curso 2012

13

Comunicacin entre etapas


Instruction Fetch
Next PC

Instr. Decode Reg. Fetch


Next SEQ PC

Execute Addr. Calc


Next SEQ PC

Memory Access MUX

Write Back

Adder
RS1

4
Address Address

Zero?

MUX MUX MUX

MEM/WB MEM/WB

Imm

Sign Extend

RD

RD

RD

Arquitectura de Computadores - Curso 2012

WB Data

Memory Memory

EX/MEM EX/MEM

Reg File Reg File

RS2

ID/EX ID/EX

IF/ID IF/ID

ALU ALU

Data Memory

MUX

14

Ejemplo

Un procesador no segmentado:
Ciclo de reloj: 1ns Operaciones ALU (40%) y bifurcaciones (20%): 4 ciclos. Operaciones de memoria (40%): 5 ciclos. Sobrecoste de segmentacin: 0.2 ns

Qu aceleracin se obtiene con la segmentacin?


torig = ciclo de reloj CPI = 1ns (0.6 4 + 0.4 5) = 4.4ns t seg = 1ns + 0.2ns 4.4ns S= = 3.7 1.2ns
Arquitectura de Computadores - Curso 2012

15

Riesgos de segmentacin
Riesgos estructurales Riesgos de datos Riesgos de control

Arquitectura de Computadores - Curso 2012

16

Riesgos Un riesgo es una situacin que impide que la siguiente instruccin pueda comenzar en el ciclo de reloj previsto.
Los riesgos reducen el rendimiento de las arquitecturas segmentadas.

Tipos de riesgos:
Riesgo estructural. Riesgo de datos. Riesgo de control.

Aproximacin simple ante riesgos:


Detener (stall) el flujo de instrucciones. Las instrucciones que ya han iniciado continan.
Arquitectura de Computadores - Curso 2012

17

Riesgos estructurales: Ejemplo

Ciclo 1 Ciclo 2

Ciclo 3
ALU

Ciclo 4 Ciclo 5
DMem Reg

Ciclo 6 Ciclo 7

LOAD

Ifetch

Reg

ALU

Instr i+1 Instr i+2 Instr i+3 Instr i+4


Asumiendo memoria de un nico puerto

Ifetch

Reg

DMem

Reg

ALU

Ifetch

Reg

DMem

Reg

ALU

Ifetch

Reg

DMem

Reg

ALU

Ifetch

Reg

DMem

Reg

Arquitectura de Computadores - Curso 2012

18

Ejemplo de stall

Ciclo 1 Ciclo 2

Ciclo 3
ALU

Ciclo 4 Ciclo 5
DMem Reg

Ciclo 6 Ciclo 7

Instr

Ifetch

Reg

ALU

Instr i+1 Instr i+2 Instr i+3 Instr i+3


Asumiendo memoria de un nico puerto

Ifetch

Reg

DMem

Reg

ALU

Ifetch

Reg

DMem

Reg

ALU

Ifetch

Reg

DMem

Reg

Ifetch

Reg

ALU

DMem

Arquitectura de Computadores - Curso 2012

19

Riesgo estructural

Se produce cuando el hardware no puede soportar todas las posibles secuencias de instrucciones.
En un mismo ciclo dos etapas de la segmentacin necesitan hacer uso del mismo recurso.

Razones:
Unidades funcionales no totalmente segmentadas. Unidades funcionales no duplicadas.

Este tipo de riesgos es evitable pero encarece el hardware.


Arquitectura de Computadores - Curso 2012

20

Dnde se accede a memoria?


Instruction Fetch
Next PC

Instr. Decode Reg. Fetch


Next SEQ PC

Execute Addr. Calc


Next SEQ PC

Memory Access MUX

Write Back

Adder
RS1

4
Address Address

Zero?

MUX MUX MUX

MEM/WB MEM/WB

Imm

Sign Extend

RD

RD

RD

Arquitectura de Computadores - Curso 2012

WB Data

Memory Memory

EX/MEM EX/MEM

Reg File Reg File

RS2

ID/EX ID/EX

IF/ID IF/ID

ALU ALU

Data Memory

MUX

21

Riesgos estructurales: Ejemplo

Ciclo 1 Ciclo 2

Ciclo 3
ALU

Ciclo 4 Ciclo 5
DMem Reg

Ciclo 6 Ciclo 7

LOAD

Ifetch

Reg

ALU

Instr i+1 Instr i+2 Instr i+3 Instr i+3


Asumiendo memoria de un nico puerto

Ifetch

Reg

DMem

Reg

ALU

Ifetch

Reg

DMem

Reg

ALU

Ifetch

Reg

DMem

Reg

Arquitectura de Computadores - Curso 2012

22

Impacto de detenciones Speedup de la segmentacin:

tiempo medio instruccin no segmentado CPI no segmentado ciclo de relojno segmentado S= = tiempo medio instruccin segmentado CPI segmentado ciclo de relojsegmentado
En el caso ideal el CPI segmentado es 1.
Hay que aadir los ciclos de detencin por instruccin

El procesador no segmentado:
CPI es 1 con ciclo de reloj mucho mayor. Ciclo de reloj n veces el ciclo del segmentado.
N es profundidad del pipeline.

profundidad pipeline S= 1 + detenciones por instruccin


Arquitectura de Computadores - Curso 2012

23

Ejemplo Dos diseos alternativos:


A: Sin riesgos estructurales. Ciclo de reloj de 1ns. B: Con riesgos estructurales. Ciclo de reloj de 0.9 ns. Instrucciones de acceso a componentes con riesgo: 40% (introduce ciclo extra).

Qu alternativa es ms rpida?
tinst ( A) = CPI ciclo = 1 1ns = 1ns tinst ( B) = CPI ciclo = (0.6 1 + 0.4 (1 + 1)) 0.9 = 1.4 0.9 = 1.26ns

Arquitectura de Computadores - Curso 2012

24

Riesgos de segmentacin
Riesgos estructurales Riesgos de datos Riesgos de control

Arquitectura de Computadores - Curso 2012

25

Riesgos de datos Se produce un riesgo de datos cuando la segmentacin modifica el orden de accesos de lectura/escritura a los operandos. I1: DADD R1, R2, R3 I2: DSUB R4, R1, R5 I3: AND R6, R1, R7 I4: OR R8, R1, R9 I5: XORR10, R1, R11
I2 lee R1 antes de que I1 la modifique. I3 lee R1 antes de que I1 la modifique. I4 obtiene valor correcto BR ledo en segunda mitad de ciclo. I5 obtiene valor correcto.

Arquitectura de Computadores - Curso 2012

26

Riesgos de datos

IF

ID/RF
Reg

EX
ALU

MEM
DMem

WB
Reg

DADD R1, R2, R3

Ifetch

ALU

SUB R4, R1, R5

Ifetch

Reg

DMem

Reg

ALU

AND R6, R1, R7

Ifetch

Reg

DMem

Reg

ALU

OR R8,R1,R9 XOR R10, R1, R11

Ifetch

Reg

DMem

Reg

ALU

Ifetch

Reg

DMem

Reg

Arquitectura de Computadores - Curso 2012

27

Detenciones en riesgos de datos

ALU

DADD R1, R2, R3

IF

Reg

DM

Reg

SUB R4, R1, R5

ALU

IF

Reg

DM

Reg

ALU

AND R6, R1, R7

IF

Reg

DM

Reg

ALU

OR R8,R1,R9 XOR R10, R1, R11

IF

Reg

DM

Reg

ALU

IF

Reg

DM

Reg

Arquitectura de Computadores - Curso 2012

28

Riesgos de datos: RAW Lectura despus de escritura (Read After Write).


La instruccin i+1 trata de leer un dato antes de que la instruccin i lo escriba.

i: i+1:

add r1, r2, r3 sub r4, r1, r3

Hay dependencia de datos:


Las instrucciones no pueden ejecutarse en paralelo ni solaparse completamente. Soluciones: Deteccin hardware. Control por el compilador.
Arquitectura de Computadores - Curso 2012

29

Riesgos de datos: WAR Escritura despus de lectura (Write After Read)


Instruccin i+1 modifica operando antes de que instruccin i lo lea.

i: i+1: i+2:

sub r4, r1, r3 add r1, r2, r3 mul r6, r1, r7

Conocido como anti-dependencia en compiladores.


Reutilizacin de nombre. No puede ocurrir en un MIPS con pipeline de 5 etapas. Todas las instrucciones 5 etapas. Lecturas siempre en etapa 2. Escrituras siempre en etapa 5.
Arquitectura de Computadores - Curso 2012

30

Riesgos de datos: WAW Escritura despus de escritura(Write After Write)


Instruccin i+1 modifica operando antes de que instruccin i lo modifique.

i: i+1: i+2:

sub r1, r4, r3 add r1, r2, r3 mul r6, r1, r7

Conocido como dependencia de salida en compiladores.


Reutilizacin de nombre. No puede ocurrir en un MIPS con pipeline de 5 etapas. Todas las instrucciones 5 etapas. Escrituras siempre en etapa 5.
Arquitectura de Computadores - Curso 2012

31

Soluciones a los riesgos de datos

Dependencias WAR y WAW:


Renombrado de registros.
Estticamente por el compilador. Dinmicamente por el hardware

i: i+1: i+2:

sub r4, r1, r3 add r9, r2, r3 mul r6, r9, r7

i: i+1: i+2:

sub r1, r4, r3 add r9, r2, r3 mul r6, r9, r7

Dependencias RAW:
Envo adelantado (forwarding).
Arquitectura de Computadores - Curso 2012

32

Forwarding Tcnica para evitar algunas detenciones de datos. Idea bsica:


No hace falta esperar a que el resultado se escriba en el banco de registros. El resultado est en los registros de segmentacin. Se puede usar ese valor en vez del que hay en el banco de registros.

Implantacin:
Los resultados de las fases EX y MEM se escriben en registros de entrada a ALU. La lgica de forwarding selecciona entre entradas reales y registros de forwarding.
Arquitectura de Computadores - Curso 2012

33

Forwarding

ALU

DADD R1, R2, R3

IM

Reg

DM

Reg

SUB R4, R1, R5

ALU

IM

Reg

DM

Reg

ALU

AND R6, R1, R7

IM

Reg

DM

Reg

ALU

OR R8,R1,R9 XOR R10, R1, R11

IM

Reg

DM

Reg

ALU

IM

Reg

DM

Reg

Arquitectura de Computadores - Curso 2012

34

Limitaciones del forwarding No todos los riesgos se pueden evitar con forwarding.
No se puede viajar hacia atrs en el tiempo!

I1: LD R1, (0)R2 I2: DSUB R4, R1, R5 I3: AND R6, R1, R7 I4: OR R8, R1, R9 I5: XORR10, R1, R11

ALU

IM

Reg

DM

Reg

ALU

IM

Reg

DM

Reg

En este caso es necesario introducir una detencin

Arquitectura de Computadores - Curso 2012

35

Detenciones en acceso a memoria

ALU

LD R1, 0(R2)

IM

Reg

DM

Reg

DSUB R4, R1, R5

ALU

IM

Reg

DM

Reg

ALU

AND R6, R1, R7

IM

Reg

DM

Reg

ALU

OR R8,R1,R9 XOR R10, R1, R11

IM

Reg

DM

Reg

ALU

IM

Reg

DM

Reg

Arquitectura de Computadores - Curso 2012

36

Riesgos de segmentacin
Riesgos estructurales Riesgos de datos Riesgos de control Alternativas en tiempo de compilacin Alternativas en tiempo de ejecucin

Arquitectura de Computadores - Curso 2012

37

Riesgos de control Un riesgo de control se produce en una instruccin de alteracin del PC. Terminologa:
Bifurcacin tomada: Si se modifica el PC. Bifurcacin no tomada: Si no se modifica el PC.

Problema:
La segmentacin asume que lo bifurcacin no se tomar. Qu hacer si despus de la etapa ID se determina que hay que tomar la bifurcacin?

I1: LD R1, (0)R2 I2: IF R1=0 JUMP I5 I3: AND R6, R1, R7 I4: ELSE R8, R1, R9 I5: XORR10, R1, R11

Arquitectura de Computadores - Curso 2012

38

Alternativas ante riesgos de control

Tiempo de compilacin: Prefijadas durante toda la ejecucin del programa.


El software puede intentar minimizar su impacto si conoce el comportamiento del hardware. El compilador puede hacer este trabajo.

Alternativas en tiempo de ejecucin: Comportamiento variable durante la ejecucin del programa.


Intentan predecir qu har el software.

Arquitectura de Computadores - Curso 2012

39

Riesgos de control: Soluciones estticas Alternativas


Congelacin de pipeline. Prediccin prefijada.
Siempre no tomado. Siempre tomado.

Bifurcacin con retraso.

En muchos casos el compilador necesita saber qu se va a hacer para reducir el impacto.

Arquitectura de Computadores - Curso 2012

40

Congelacin de pipeline

Idea: Si la instruccin actual es una bifurcacin entonces parar o eliminar del pipeline instrucciones posteriores hasta que se conozca el destino.
Penalizacin en tiempo de ejecucin conocida. El software (compilador) no puede hacer nada.

El destino de la bifurcacin se conoce en la etapa ID.


Repetir el FETCH de la siguiente instruccin.

Arquitectura de Computadores - Curso 2012

41

Repeticin de FETCH

Ciclo 1 Ciclo 2
Ifetch Reg

Ciclo 3
ALU

Ciclo 4 Ciclo 5
DMem Reg

Ciclo 6 Ciclo 7

ALU

Instr i+1 Branch i+2 Instr i+3 Instr i+3


Asumiendo memoria de un nico puerto

Ifetch

Reg

DMem

Reg

ALU

Ifetch

Reg

DMem

Reg

Ifetch

ALU

Ifetch

Reg

DMem

Reg

Arquitectura de Computadores - Curso 2012

42

Repeticin de FETCH

Instr Bifurc. Instr i+1 Instr i+2

ALU

IF

Reg

DM

Reg

ALU

IF

IF

Reg

DM

Reg

ALU

IF

Reg

DM

Reg

Se repite IF

Instr i+3

ALU

IF

Reg

DM

Reg

Arquitectura de Computadores - Curso 2012

43

Prediccin prefijada: no tomado

Idea: Asumir que la bifurcacin ser no tomada.


Se evita modificar el estado del procesador hasta que se tiene la confirmacin de que la bifurcacin no se toma. Si la bifurcacin se toma, las instrucciones siguientes se retiran del pipeline y se capta la instruccin en el destino del salto. Transformar instrucciones en NOP.

Tarea del compilador:


Organizar cdigo poniendo la opcin ms frecuente como no tomada e invirtiendo condicin si es necesario.

Arquitectura de Computadores - Curso 2012

44

Prediccin prefijada: tomado Idea: Asumir que la bifurcacin ser tomada.


Tan pronto como se decodifica la bifurcacin y se calcula el destino se comienza a captar instrucciones del destino. En pipeline de 5 etapas no aporta ventajas. No se conoce direccin destino antes que decisin de bifurcacin. til en procesadores con condiciones complejas y lentas.

Tarea del compilador:


Organizar cdigo poniendo la opcin ms frecuente como tomada e invirtiendo condicin si es necesario.

Arquitectura de Computadores - Curso 2012

45

Prediccin prefijada: no tomado

Instr Bifurc. Instr i+1 Instr i+2 Instr i+3

ALU

IM

Reg

DM

Reg

ALU

IM

Reg

DM

Reg

ALU

IM

Reg

DM

Reg

ALU

IM

Reg

DM

Reg

Arquitectura de Computadores - Curso 2012

46

Prediccin prefijada: no tomado

Instr Bifurc. Instr i+1 Destino bifurcacin Instr i+1

ALU

IM

Reg

DM

Reg

IM

Inactivo

ALU

IM

Reg

DM

Reg

ALU

IM

Reg

DM

Reg

Arquitectura de Computadores - Curso 2012

47

Bifurcacin retrasada Idea: La bifurcacin se produce despus de ejecutar las n instrucciones posteriores a la propia instruccin de bifurcacin.
En pipeline de 5 etapas: 1 ranura de retraso.

Instruccin branch Instruccin suc1 Instruccin suc2 Instruccin sucn Instruccin cond
Arquitectura de Computadores - Curso 2012

Retraso de longitud n

48

Bifurcacin retrasada: Compilador


DADD R1, R2, R3 BEQZ R2, ETIQ
Ranura de retraso

ETIQ:

DADD R1, R2, R3 XOR R5, R6, R7 BEQZ R5, ETIQ


Ranura de retraso

DADD R1, R2, R3 BEQZ R1, ETIQ


Ranura de retraso

ETIQ:

XOR R5, R6, R7 AND R8, R9, R10

AND R8, R5, R10

ETIQ:

XOR R5, R6, R7 AND R8, R9, R10

DADD R1, R2, R3 BEQZ R2, ETIQ


DADD R1, R2, R3

ETIQ: ETIQ:

DADD R1, R2, R3 XOR R5, R6, R7 BEQZ R5, ETIQ


DADD R1, R2, R3

DADD R1, R2, R3 BEQZ R1, ETIQ


XOR R5, R6, R7

ETIQ:

XOR R5, R6, R7 AND R8, R9, R10

AND R8, R5, R10

ETIQ:

XOR R5, R6, R7 AND R8, R9, R10

Preferible

XOR no puede pasar a ranura por dependencia de datos Arquitectura de Computadores - Curso 2012

Solamente si R5 no se usa despus de ETIQ

49

Bifurcacin retrasada

Instr Bifurc. Instruccin retrasada

ALU

IM

Reg

DM

Reg

ALU

IM

Reg

DM

Reg

Instruccin siguiente o destino

ALU

IM

Reg

DM

Reg

Arquitectura de Computadores - Curso 2012

50

Bifurcaciones retrasadas

Efectividad del compilador para el caso de 1 slot:


Rellena alrededor del 60% de slots. En torno al 80% de instrucciones ejecutadas en slots tiles para computacin. En torno al 50% de slots rellenados de forma til.

Al usarse pipelines ms profundos y emisin mltiple hacen falta ms slots.


En desuso a favor de enfoque dinmicos.

Arquitectura de Computadores - Curso 2012

51

Rendimiento de pipeline con prediccin prefijada de bifurcaciones

El nmero de detenciones de bifurcaciones depende de:


Frecuencia de las bifurcaciones. Penalizacin por bifurcacin.
ciclos detencin por bifurcacin = frecuencia de bifurcacin penalizacin por bifurcacin

profundidad de pipeline S= 1 + frecuencia bifurcacin penalizacin de bifurcacin

Arquitectura de Computadores - Curso 2012

52

Ejemplo MIPS R4000 (pipeline ms profundo).


3 etapas antes de conocer destino de bifurcacin. 1 etapa adicional para evaluar condicin. Asumiendo que no hay detenciones de datos en comparaciones. Frecuencia de bifurcaciones:
Bifurcacin incondicional: 4%. Bifurcacin condicional, no-tomada: 6% Bifurcacin condicional, tomada: 10%

Esquema de bifurcacin Vaciar pipeline Predecir tomada Predecir notomada

Penalizacin incondicional 2 2 2

Penalizacin notomada 3 3 0

Penalizacin tomada 3 2 3

Arquitectura de Computadores - Curso 2012

53

Solucin
Bifurcacin incondicional 4% 0.04 x 2 = 0.08 0.04 x 2 = 0.08 Bifurcacin no tomada 6% 0.06 x 3=0.18 0.06 x 3 = 0.18 Bifurcacin tomada 10% 0.10 x 3=0.30 0.10 x 2 = 0.20 Total 20% 0.56 0.46 0.38

Esquema de bifurcacin Frecuencia Vaciar pipeline Predecir tomada Predecir no tomada

0.04 x 2 = 0.08 0.06 x 0 = 0.00 0.10 x 3 = 0.30 Contribucin sobre CPI ideal

Speedup de predecir tomada sobre vaciar pipeline

1 + 0.56 S= = 1.068 1 + 0.46

1 + 0.56 S= = 1.130 1 + 0.38

Speedup de predecir no tomada sobre vaciar pipeline

Arquitectura de Computadores - Curso 2012

54

Riesgos de segmentacin
Riesgos estructurales Riesgos de datos Riesgos de control Alternativas en tiempo de compilacin Alternativas en tiempo de ejecucin

Arquitectura de Computadores - Curso 2012

55

Bifurcaciones y tiempo de ejecucin

Cada bifurcacin condicional est fuertemente sesgada.


O se toma la mayora de las veces, O no se toma la mayora de las veces.

Prediccin basada en perfil de ejecucin:


Se ejecuta una vez para recoger estadsticas. Se utiliza la informacin recogida para modificar el cdigo y aprovechar la informacin.

Arquitectura de Computadores - Curso 2012

56

Prediccin con perfil de ejecucin


25%
Misprediction Rate

22% 18% 15% 12% 11% 12% 4% 6%

20% 15% 10% 5% 0%

9% 10%

Enteros

Coma flotante

SPEC92: Frecuencia de bifurcaciones Coma flotante. Enteros.

3% a 24%

Fallo de prediccin. Media: 9%. Desviacin estndar: 4% Fallo de prediccin. Media: 15%. Desviacin estndar: 5%
Arquitectura de Computadores - Curso 2012

57

Prediccin dinmica: BHT Tabla histrica de saltos (Branch History Table)


ndice: Bits menos significativos de direccin (PC). Valor: 1 bit (salto tomado o no la ltima vez).

Mejoras: Uso de ms bits para mejorar la precisin.


T NT Predict Taken (11) T Predict Not Taken (01) T NT T Predict Taken (10) NT Predict Not Taken (00) NT
Arquitectura de Computadores - Curso 2012

58

BHT: Precisin Fallos de prediccin:


Prediccin errnea para el salto. Historia de otro salto en la entrada de la tabla.

Resultados BHT de 2 bits y 4K entradas:


20% 18% 16% 14% 12% 10% 8% 6% 4% 2% 0% 18% Misprediction Rate

12% 10% 5% 9% 5% 0%
c c 30 0 li pp ice ice

9%

9%

1%

eq nt ot es t pr es so

gc

do du

Arquitectura de Computadores - Curso 2012

at ri x

na sa

fp p

sp

sp

59

Prediccin dinmica de bifurcacin Por qu funciona la prediccin de saltos?


El algoritmo presenta regularidades. Las estructuras de datos presenta regularidades.

Es mejor la prediccin dinmica que la prediccin esttica?


Parecer serlo. Hay un pequeo nmero de bifurcaciones importantes en programas con comportamiento dinmico.

Arquitectura de Computadores - Curso 2012

60

Operaciones multi-ciclo

Arquitectura de Computadores - Curso 2012

61

Operaciones de coma flotante Operaciones de coma flotante en un ciclo?


Tener un ciclo de reloj extremadamente largo.
Impacto en rendimiento global.

Lgica de control de FPU muy compleja.


Consumo excesivo de recursos de diseo.

Alternativa: Segmentacin de coma flotante.


La etapa de ejecucin se puede repetir varias veces. Mltiples unidades funcionales en EX.
Ejemplo: Unidad entera, multiplicador FP y entero, sumador FP, divisor FP y entero.

Arquitectura de Computadores - Curso 2012

62

Segmentacin con coma flotante EX


Unidad entera

EX IF ID
Multiplicacin int/FP

WB

EX
Sumador FP

EX
Divisor int/FP

La etapa EX pasa a tener una duracin mayor que 1 ciclo de reloj


Arquitectura de Computadores - Curso 2012

63

Latencia e intervalo de iniciacin


Latencia: Nmero de ciclos entre la instruccin que produce un resultado y la instruccin que usa ese resultado. Intervalo de iniciacin: Nmero de ciclos entre la emisin de dos instrucciones que usan la misma unidad funcional.

Operacin ALU entera Loads Suma FP Multiplicacin FP Divisin FP

Latencia 0 1 3 6 24

Intervalo de iniciacin 1 1 1 1 25

Arquitectura de Computadores - Curso 2012

64

Importante
Una arquitectura segmentada requiere mayor ancho de banda de memoria. Los riesgos en el pipeline provocan detenciones.
Degradacin del rendimiento.

Las detenciones de riesgos de datos se pueden mitigar con tcnicas de compilacin. Las detenciones de riesgos de control se pueden reducir con:
Alternativas en tiempo de compilacin. Alternativas en tiempo de ejecucin.

Las operaciones multiciclo permiten mantener ciclos de reloj cortos.

Arquitectura de Computadores - Curso 2012

65

Referencias

Computer Architecture. A Quantitative Approach. Fifth Edition. Hennessy y Patterson. Secciones C.1, C2 y C5. Ejercicios recomendados:
C.1, C.2, C.3, C.4, C.5

Arquitectura de Computadores - Curso 2012