25
Organización del Computador I Verano Riegos de Control en la máquina segmentada Basado en el capítulo 6 del libro de Patterson y Hennessy Verano 2004 Profesora Borensztejn

Verano 2004

  • Upload
    cecily

  • View
    54

  • Download
    0

Embed Size (px)

DESCRIPTION

Organización del Computador I Verano Riegos de Control en la máquina segmentada Basado en el capítulo 6 del libro de Patterson y Hennessy. Verano 2004. Profesora Borensztejn. Dependencias de Control. - PowerPoint PPT Presentation

Citation preview

Page 1: Verano 2004

Organización del Computador I Verano

Riegos de Control en la máquina segmentada

Basado en el capítulo 6 del libro de Patterson y Hennessy

Verano 2004 Profesora Borensztejn

Page 2: Verano 2004

2

Dependencias de Control• Definen el secuenciamiento del programa. La estructura

segmentada asume secuenciamiento implícito (PC=PC+4).

40 beq $1, $3, 60

44 and $12, $2, $5

48 or $13, $6, $2

52 add $14, $2, $2

56 sw $15, 100($2)

60 lw $4,50($7)

• La presencia de una instrucción de salto representa un riesgo para el pipeline.

• Las instrucciones and, or, add y sw deben ejecutarse si la evaluación de la condición de salto es FALSE. En caso contrario, la ejecución continúa a partir de la instrucción lw (60)

Page 3: Verano 2004

3

Etapas de la instrucción de salto

IR<---MEM[PC]; PC<--PC+ 4;

BusA<--R[rs]; BusB<--R[rt];

dst<--- PC+4+ Signext(inm16)*4; Z<-- (BusA==BusB) ;

si (Z) entonces PC<---dst;

• Cálculo de la dirección efectiva: EX

• Evaluación de la condición : EX

• Ejecución del salto: cambio del PC: MEM

Page 4: Verano 2004

4

Camino de Datos con Señales de Control

ExtInm16

RegW

rs

rt

BusW

Registros

5

5

5

LRA

LRB

WR

RegDst

PC

instMemoria de Instrucciones

32

ALUctr

Memoria de Datos

WE

@

W_src

>>

2

Alusrc

Zero

4

32

32

32+

MU

X

PC+4

IF/ID ID/EX EX/MEM MEM/WB

rt

rd

Aluop

Control ALU

Salto

Page 5: Verano 2004

5

Riesgo de Control: Detener

M

M Reg MReg

M

M

M Reg M Reg

Beq $1, $3, 60

NOP

NOP

NOP

And $12, $2, $5

1 2 3 4 5 6 7 8ciclos

El CPI de la instrucción de salto es 4

Latencia

9

Page 6: Verano 2004

6

Reducir latencia: anticipar operaciones

M

M Reg MReg

M

M

M Reg M Reg

Beq $1, $3, 60

NOP

NOP

And $12, $2, $5

Or $13, $6, $2

1 2 3 4 5 6 7 8ciclos

El CPI de la instrucción de salto es 3

Latencia=2

9

Reg M Reg

Page 7: Verano 2004

7

Detección del riesgo y Detener

• La lógica está en ID.

• Hay una instrucción en IF que hay que detener ===> poner a 0 el registro IR de IF/ID y congelar el PC.

• Ecuaciones del Control de Riesgos:• Si (IF/ID.IR.cod==Salto ) PCWrite=0 ; IF.Flush=1

• Si (ID/EX.MEM.Salto=1 ) PCWrite=0 ; IF.Flush=1

• Si (EX/MEM.MEM.Salto=1 ) PCWrite=0 ; IF.Flush=1

Page 8: Verano 2004

8

Detección y DetenciónID/EX

EX/MEM

nop

IF/ID

Salto

Salto

Z

PCsrc

EX/MEM.Salto

ID/EX.Salto

IF/ID.IR.codop

IF.FlushPCWrite

Riesgos de Control

Page 9: Verano 2004

9

Mejora: Suponer Salto no Realizado

M Reg M Reg

M Reg MReg

M Reg M Reg

M Reg M Reg

M Reg M Reg

Beq $1, $3, 60

And $12, $2, $5

Or $13, $6, $2

Add $14, $2, $2

lw $4,50($7)

1 2 3 4 5 6 7 8ciclosSuponemos que el salto no se realiza

Si es correcto, CPI del salto es 1.

Si es incorrecto, hay que eliminar las instrucciones que están en el pipeline. CPI=4

Eliminar !!

Page 10: Verano 2004

10

Mejora: Suponer Salto no Realizado

M Reg

M Reg MReg

M Reg

M

M Reg M Reg

Beq $1, $3, 60

And $12, $2, $5

Or $13, $6, $2

Add $14, $2, $2

lw $4,50($7)

1 2 3 4 5 6 7 8ciclos

Eliminadas !!

Page 11: Verano 2004

11

Detección del error y cancelar

• La lógica está en ID.

• Hay una instrucción en IF, otra en ID, y otra en EX que hay que cancelar ===> señales IFFlush, IDFlush y EXFlush.

• Ecuaciones del Control para el Salto:• Si (EX/MEM.MEM.Salto=1 ) y (EX/MEM.Z=1)

IF.Flush=1; ID.Flush=1; EX.Flush=1;

Page 12: Verano 2004

12

Detección y Cancelar

ID/EX

EX/MEM

nop

IF/IDSalto

Z

PCsrc

EX/MEM.Salto

IR

IF.Flush

PCWrite

Unidad de Control

0M

UX

EX/MEM.Z

0

0

MU

X

MU

XM

UX

EXFlush

ID.Flush

Unidad de Riesgos

Page 13: Verano 2004

13

Salto Retardado• Aproximación basada en el compilador• Redefine el comportamiento del salto: se

ejecuta después de la siguiente instrucción.• El compilador debe insertar instrucciones

después de la instrucción de salto que siempre se ejecutarán.

• Cuantas? Dependiendo de la latencia del salto, la arquitectura define cuantos “branch delay slots”debe rellenar el compilador.

Page 14: Verano 2004

14

Instrucción de Salto Retardado

36 beqd $1, $3, 64

40 sub $10, $4, $8

44 and $12, $2, $5

48 or $13, $6, $2

52 add $14, $2, $2

56 sw $15, 100($2)

60 j 90

64 lw $4,50($7)

36 sub $10, $4, $8

40 beq $1, $3, 64

44 and $12, $2, $5

48 or $13, $6, $2

52 add $14, $2, $2

56 sw $15, 100($2)

60 j 90

64 lw $4,50($7)

Page 15: Verano 2004

15

Salto Retardado

M Reg M Reg

M Reg MReg

M Reg M Reg

Beqd $1, $3, 60

NOP

NOP

lw $4,50($7)

1 2 3 4 5 6 7 8ciclos

La instrucción que sigue al salto siempre se ejecuta

La latencia del salto es 2.

Latencia 2!!

sub $10, $4, $8

Page 16: Verano 2004

16

Salto Retardado: Elección de la instrucción

• Instrucción del Bloque Básico al que pertenece la instrucción de salto

• Instrucción de uno de los dos posibles Bloques Básicos que se ejecutará.

Beqd $1, $3, 60

sub $10, $4, $8

lw $4,50($7)

And $12, $2, $5

or $13, $6, $2

add $14, $2, $2

sw $15, 100($2)

lw $4,50($7)

j 90

Page 17: Verano 2004

17

Salto Retardado: Elección de la instrucción

• Instrucción del Bloque Básico al que pertenece la instrucción de salto

Beqd $1, $3, 60

add $10, $4, $8

Beqd $1, $3, 60

add $10, $4, $8

• La instrucción elegida no debe ser fuente de dependencia con la instrucción que evalúa la condición.

Page 18: Verano 2004

18

Salto Retardado: Elección de la instrucción

• Instrucción perteneciente al Bloque Básico que se ejecuta si se cumple la condición.

#1 : add $10, $4, $8

sub $2, $7, $8

Beq $1, $3, #1

#1: sub $2, $7, $8

Beqd $1, $3, #1

add $10, $4, $8

• La instrucción elegida no debe afectar el estado si no se salta.

add $10, $4, $8

#1: sub $2, $7, $8

Beqd $1, $3, #1

add $10, $4, $8

add $10, $5,$7

add $10, $4, $8

#1: sub $2, $7, $8

Beqd $1, $3, #1

add $10, $4, $8

add $4, $10,$7

Page 19: Verano 2004

19

Salto Retardado: Elección de la instrucción

• Instrucción perteneciente al Bloque Básico que se ejecuta si no se cumple la condición.

Beqd $1, $3, #1

And $12, $2, $5

or $13, $6, $2

add $14, $2, $2

#1:

Beq $1, $3, #1

And $12, $2, $5

or $13, $6, $2

add $14, $2, $2

#1:

• La instrucción elegida no debe afectar el estado si se salta.

And $12, $2, $5

or $13, $6, $2

add $14, $2, $2

#1: Sub $6, $7, $12

Beqd $1, $3, #1

And $12, $2, $5

or $13, $6, $2

add $14, $2, $2

#1: Sub $12, $2, $5

Beqd $1, $3, #1

Page 20: Verano 2004

20

Evaluación de las alternativas de salto

65% (Taken) Realizados Saltos de Frecuencia

14% Saltos de Frecuencia

Esquema Penalización CPI medio Mejora respecto a detener

Detener 3

Suponer

No Efectivo 3

Salto

Retardado 2

Page 21: Verano 2004

21

Salto Retardado• Introducido en 1952! MANIAC I

• Usado en microprogramación

• Reinventado en la RISC-I (Patterson y Sequin, 1981)

• MIPS (1982), RISC-II(1983), MIPS-R desde 1987 hasta ahora ) y AMD 29000 (1987)

• Compiladores llenan el 60 % de los slots con instrucciones útiles.

• Ventajas: cerca de un 10% de mejora

• Desventajas:– aumento en el código: en algunos casos hay que replicar

instrucciones, se insertan NOP’s.

– problemas con las interrupciones: salvar múltiples PC’s

– problemas cuando el procesador se vuelve superescalar:

Page 22: Verano 2004

22

Saltos IncondicionalesIR<---MEM[PC]; PC<--PC+ 4;

dst<--- (inm26)*4;

PC<---dst;

• Cálculo de la dirección efectiva: D

• Ejecución del salto: cambio del PC: D

Page 23: Verano 2004

23

Salto Incondicional

M

M Reg MReg

M Reg M Reg

M Reg M Reg

M Reg M Reg

J 60

nop

60: lw $4,50($7)

Add $14, $2, $2

sw $6,50($7)

1 2 3 4 5 6 7 8ciclos

Un ciclo de latencia

Page 24: Verano 2004

24

EstadísticasDistancia entre Saltos % de Saltos

eqntott 2.86 35%

espresso 4.81 20.8%

li 6.06 16.5%

Media 4.57 21.9%

doduc 10.59 9.4%

matrix 3000 5.05 19.8%

nasa 7 10.72 9.3%

spice 2g6 3.27 30.6%

tomcatv 16.28 6.0%

Media 9.18 10.9%

Page 25: Verano 2004

FIN Riesgos de Control