Presentation is loading. Please wait.

Presentation is loading. Please wait.

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 2004Profesora.

Similar presentations


Presentation on theme: "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 2004Profesora."— Presentation transcript:

1 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 2004Profesora Borensztejn

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

3 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

4 4 Camino de Datos con Señales de Control Ext Inm16 RegW rs rt BusW Registros 5 5 5 LRA LRB WR RegDst PC inst Memoria de Instrucciones 32 ALUctr Memoria de Datos WE @ W_src >>2 Alusrc Zero 4 32 3232 + MUX PC+4 IF/ID ID/EX EX/MEMMEM/WB rt rd Aluop Control ALU Salto

5 5 Riesgo de Control: Detener M M Reg M M M M M Beq $1, $3, 60 NOP And $12, $2, $5 12345678 ciclos El CPI de la instrucción de salto es 4 Latencia 9

6 6 Reducir latencia: anticipar operaciones M M Reg M M M M M Beq $1, $3, 60 NOP And $12, $2, $5 Or $13, $6, $2 12345678 ciclos El CPI de la instrucción de salto es 3 Latencia=2 9 Reg M

7 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

8 8 Detección y Detención ID/EX EX/MEM nop IF/ID Salto Z PCsrc EX/MEM.Salto ID/EX.Salto IF/ID.IR.codop IF.Flush PCWrite Riesgos de Control

9 9 Mejora: Suponer Salto no Realizado M Reg M M M M M M M M M Beq $1, $3, 60 And $12, $2, $5 Or $13, $6, $2 Add $14, $2, $2 lw $4,50($7) 12345678 ciclos Suponemos 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 !!

10 10 Mejora: Suponer Salto no Realizado M Reg M M M M M M Beq $1, $3, 60 And $12, $2, $5 Or $13, $6, $2 Add $14, $2, $2 lw $4,50($7) 12345678 ciclos Eliminadas !!

11 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;

12 12 Detección y Cancelar ID/EX EX/MEM nop IF/ID Salto Z PCsrc EX/MEM.Salto IR IF.Flush PCWrite Unidad de Control 0 MUX EX/MEM.Z 0 0 MUX EXFlush ID.Flush Unidad de Riesgos

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

14 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 j90 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 j90 64 lw $4,50($7)

15 15 Salto Retardado M Reg M M M M M Beqd $1, $3, 60 NOP lw $4,50($7) 12345678 ciclos La instrucción que sigue al salto siempre se ejecuta La latencia del salto es 2. Latencia 2!! sub $10, $4, $8

16 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

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

18 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

19 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

20 20 Evaluación de las alternativas de salto Esquema Penalización CPI medio Mejora respecto a detener Detener3 Suponer No Efectivo3 Salto Retardado2

21 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:

22 22 Saltos Incondicionales IR<---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

23 23 Salto Incondicional M M Reg M M M M M M M J 60 nop 60: lw $4,50($7) Add $14, $2, $2 sw $6,50($7) 12345678 ciclos Un ciclo de latencia

24 24 Estadísticas Distancia entre Saltos% de Saltos eqntott2.8635% espresso4.8120.8% li6.0616.5% Media4.5721.9% doduc10.599.4% matrix 30005.0519.8% nasa 710.729.3% spice 2g63.2730.6% tomcatv16.286.0% Media9.1810.9%

25 FIN Riesgos de Control


Download ppt "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 2004Profesora."

Similar presentations


Ads by Google