La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Unidad 2: Segmentación Dependencias de Control Docente: ing. José Díaz Chow.

Presentaciones similares


Presentación del tema: "Unidad 2: Segmentación Dependencias de Control Docente: ing. José Díaz Chow."— Transcripción de la presentación:

1 Unidad 2: Segmentación Dependencias de Control Docente: ing. José Díaz Chow

2 Clases anteriores: Procesador segmentado adelanta la ejecución. Dependencias inherentes al solapamiento. Riesgos por dependencias:  Estructurales  Datos  Control

3

4 C15 - Contenido: 2.8 Dependencias de Control Dependencias y Riesgos de Control Mejoras a nivel de Diseño DD en Brx tras adelantamiento Tratamiento de Latencias Datapath del DLX sin Dependencias de Control

5 Las instrucciones de saltos generan dependencias de control cuando éste es efectivo. Riesgos: Incoherencias: Cambio del estado del CPU  Bloqueo imprescindible Latencias: Reducción de la eficiencia.  Técnicas de Mejoramiento por Diseño

6 Latencias Generadas y baja del desempeño: if (cond) pc = pc + d BRx ir = Mi(pc) pc = pc + 4 decodificar A = pc B = d A’ = rf1 mar = A + B cond = (A’ cmp 0) if (cond) pc = mar - Ejemplo para 20% instrucciones de salto:  r = 0.2(  + 3  ) + 0.8  1.6 

7 Contenido: 2.8 Dependencias de Control Dependencias y Riesgos de Control Mejoras a nivel de Diseño DD en Brx tras adelantamiento Tratamiento de Latencias Datapath del DLX sin Dependencias de Control

8 Adelantar la definición del salto a ALU. if (cond) pc = pc + d BRx ir = Mi(pc) pc = pc + 4 decodificar A = pc B = d A’ = rf1 mar = A + B if = (A’ cmp 0) pc = A + B - -  r = 0.2(  + 2  ) + 0.8  1.4 

9 Adelantar la definición del salto a D/L. Requerimientos estructurales: Sumador en D/L, Comparador a D/L, quizas  sea mayor. if (cond) pc = pc + d BRx ir = Mi(pc) pc = pc + 4 decodificar if = (Rf1 cmp 0) pc = pc + d - - -  r = 0.2(  +  ) + 0.8  1.2 

10 Garantizar el bloqueo para evitar inconsistencias (Interlock Hardware)

11 Contenido: 2.8 Dependencias de Control Dependencias y Riesgos de Control Mejoras a nivel de Diseño DD en Brx tras adelantamiento Tratamiento de Latencias Datapath del DLX sin Dependencias de Control

12 Los cambios estructurales de Diseño crean nuevas dependencias de datos en Brx. Instrucciones Involucradas EscenarioTratamiento OP - BRx OP(i) – BRx(i+1) S(ALU)  E(Cmp) Debe estudiarse si queda tiempo para que se dé, caso contrario, parar. OP(i) – BRx (i+2)S(MAR)  E(Cmp) OP(i) – BRx (i+3)S(MDRin)  E(Cmp) LOAD - BRx LOAD(i) – BRx(i+1)Parar el cauce: IR=BRx y IR2=LOAD y IR2(Rd)= IR(Rf1) LOAD(i) – BRx (i+2) S(Md)  E(Cmp) Debe estudiarse si queda tiempo para que se dé, caso contrario, parar. LOAD(i) – BRx (i+3)S(MDRin)  E(Cmp)

13 Contenido: 2.8 Dependencias de Control Dependencias y Riesgos de Control Mejoras a nivel de Diseño DD en Brx tras adelantamiento Tratamiento de Latencias Datapath del DLX sin Dependencias de Control

14 No todos los segmentados adelantan el salto ni implementan interlock. El Programador y compilador tienen la responsabilidad de introducir NOPs por Sw. No todos los saltos son efectivos y por tanto se pierden ciclos inutilmente. Algunos CPUs tratan de “especular” sobre el destino del salto para minimizar pérdidas.

15 Tres técnicas más comunes: Salto Retardado (Método Software) Apuesta por una rama (Sw + Hw) Apuesta por ambas ramas (Hardware BTB) Predicción del Salto (Hardware Predictor)

16 Salto Retardado: En tiempo de compilación. Se introducen instrucciones de relleno (Delay Slots o ranuras de retardo) que pueden ser útiles o al menos válidas. Selección de rellenos no es trivial (dd específicas) Rellenos del Bloque básico, salto o continuación En caso de no encontrar rellenos, usa NOPs

17 Ejemplo: … 1) MUL R1, R2, R9 2) ADD R7, R1, R9 3) DIV R7, R1, R9 4) SUB R4, R4, R6 5) BRx R4, d (i) 6) MUL R5, R13, R13 (i+1) 7) SUB R12, R7, R8 8) SUB R12, R5, R6 … 9 ) SUB R12, R7, R1 (k) 10) ADD R13, R12, R5 11) ADD R6, R5, R6 … Bloque básico Bloque de ContinuaciónBloque del salto Podemos usar la inst 3 pero no 1 ni 4 (R-D) ni 2 (R-R con 3). No dd con siguientes del bloque. Solo 7 es elegible (6 –10,11; 8 - 6 tienen R-D y 8 – 7 tienen R- R). No dd con anteriores del bloque ni R-D con salto. Solo 9 es apropiada (10-9 y11-8 tienen R-D). No dd con anteriores del bloque ni R-D con continuación.

18 Apuesta por una rama: Mejora del simple interlock. Se apuesta por una rama y se emite NOP o bloquean escrituras en caso de fallo Si se apuesta Continuación. CU debe: Si IR2 = BRx y (Rf1 cmp 0)  IR = NOP Si se apuesta Salto, Compilador inserta relleno y modifica d para que el salto sea a k+1. CU verifica: Si IR2 = BRx y !(Rf1 cmp 0)  IR = NOP

19 Predicción del Salto: En tiempo de ejecución. Requiere soporte Hardware Basado en el comportamiento de los saltos anteriores. Varias versiones

20 Predictor de salto de 1 bit: Se tiene 1 bit indicando si el salto se tomó o no en la ocasión anterior. Si la predicción no se cumple se cambia el estado del bit Pobre desempeño cuando se cambia mucho el comportamiento de los saltos

21 Predictor de salto de 2 bits: 4 Estados posibles. Permite mejor acierto cuando cambia mucho el comportamiento de los saltos

22 Apuesta por ambas ramas (BTB): Apuesta al caracter repetitivo de los saltos. Se emplea un Branch Target Buffer asociativo (BTB). Tag es la dirección de la instrucción. BTB almacena instrucciones de los últimos destinos de salto (k). En caso de instrucción de salto en D/L, se busca dirección @(k) en el BTB

23 Apuesta por ambas ramas (BTB): Si el salto se había tomado anteriormente y instrucción destino k se encuentra en BTB, entonces tenemos un acierto (hit) BTB hit  IR = BTB(@k) mediante un MUX y PC = @k + 4 para cargar la siguiente. BTB miss  IR = NOP, PC = @k, cuando se trae k, se almacena: BTB  (@k, k) Si el salto no se había tomado anteriormente, k no se encuentra en BTB, entonces tenemos un fallo (miss)

24 Contenido: 2.8 Dependencias de Control Dependencias y Riesgos de Control Mejoras a nivel de Diseño DD en Brx tras adelantamiento Tratamiento de Latencias Datapath del DLX sin DC

25

26


Descargar ppt "Unidad 2: Segmentación Dependencias de Control Docente: ing. José Díaz Chow."

Presentaciones similares


Anuncios Google