270 likes | 428 Views
Unidad 2: Segmentación. Dependencias de Control. Docente: ing. José Díaz Chow. Preámbulo. Clases anteriores : Procesador segmentado adelanta la ejecución . Dependencias inherentes al solapamiento . Riesgos por dependencias : Estructurales Datos Control. Objetivos.
E N D
Unidad 2: Segmentación Dependencias de Control Docente: ing. José Díaz Chow
Preámbulo • Clasesanteriores: • Procesadorsegmentadoadelanta la ejecución. • Dependenciasinherentes al solapamiento. • Riesgospordependencias: • Estructurales • Datos • Control
Objetivos Explicar qué son las dependencias de control en la ejecución de programas en CPUs Segmentados. Analizar los riesgos asociados a las dependencias de control en la ejecución y la importancia de eliminarlos. Proponer alternativas de diseño para minimizar las latencias por Dependencias de control y para evitar cambios en el estado de la máquina por parte de instrucciones ejecutándose ilícitamente. Explicar las técnicas de tratamiento empleadas para reducir el impacto de las latencias por dependencias de control.
Unidad 2: Segmentación C15 - Contenido: • 2.8 Dependencias de Control • Dependencias y Riesgos de Control • Mejoras a nivel de Diseño • DD en Brxtrasadelantamiento • Tratamiento de Latencias • Datapath del DLX sin Dependencias de Control
Dependencias y Riesgos • Las instrucciones de saltosgenerandependencias de control cuandoésteesefectivo. • Riesgos: • Incoherencias:Cambio del estado del CPU • Bloqueoimprescindible • Latencias: Reducción de la eficiencia. • Técnicas de MejoramientoporDiseñ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 - Dependencias y Riesgos de Control. • LatenciasGeneradas y baja del desempeño: Ejemplo para 20% instrucciones de salto: tr = 0.2( t + 3t) + 0.8 t = 1.6 t
Unidad 2: Segmentación Contenido: • 2.8 Dependencias de Control • Dependencias y Riesgos de Control • Mejoras a nivel de Diseño • DD en Brxtrasadelantamiento • Tratamiento de Latencias • Datapath del DLX sin Dependencias de Control
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 - - Mejoras a nivel de Diseño(1/3) • Adelantar la definición del salto a ALU. tr = 0.2( t + 2t) + 0.8 t = 1.4 t
if (cond) pc = pc + d BRx ir = Mi(pc) pc = pc + 4 decodificar if = (Rf1 cmp 0) pc = pc + d - - - Mejoras a nivel de Diseño(2/3) • Adelantar la definición del salto a D/L. • Requerimientosestructurales: Sumador en D/L, Comparador a D/L, quizast sea mayor. tr = 0.2( t + t) + 0.8 t = 1.2 t
Mejoras a nivel de Diseño(3/3) • Garantizar el bloqueo para evitarinconsistencias • (Interlock Hardware)
Unidad 2: Segmentación Contenido: • 2.8 Dependencias de Control • Dependencias y Riesgos de Control • Mejoras a nivel de Diseño • DD en Brxtrasadelantamiento • Tratamiento de Latencias • Datapath del DLX sin Dependencias de Control
Instrucciones Involucradas Escenario Tratamiento 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) Dependencias de Datos en Brxtrasadelantamiento • Los cambiosestructurales de Diseñocreannuevasdependenciasde datos en Brx.
Unidad 2: Segmentación Contenido: • 2.8 Dependencias de Control • Dependencias y Riesgos de Control • Mejoras a nivel de Diseño • DD en Brxtrasadelantamiento • Tratamiento de Latencias • Datapath del DLX sin Dependencias de Control
Tratamiento de laslatencias(1) • No todos los segmentadosadelantan el saltoniimplementan interlock. • El Programador y compiladortienen la responsabilidad de introducir NOPs por Sw. • No todos los saltos son efectivos y portanto se pierdenciclosinutilmente. • AlgunosCPUs tratande “especular” sobre el destino del saltoparaminimizarpérdidas.
Tratamiento de laslatencias(2) • Trestécnicasmáscomunes: • Salto Retardado (Método Software) • Apuestaporunarama (Sw + Hw) • Predicción del Salto (Hardware Predictor) • Apuestaporambasramas(Hardware BTB)
Tratamiento de laslatencias(3) • Salto Retardado: • En tiempo de compilación. • Se introduceninstrucciones de relleno(Delay Slots o ranuras de retardo) quepuedenserútiles o al menosválidas. • Selección de rellenos no es trivial (ddespecíficas) • Rellenos del Bloquebásico, salto o continuación • En caso de no encontrarrellenos, usa NOPs
Tratamiento de laslatencias(4) … 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) • Podemosusar la inst 3 pero no 1 ni 4 (R-D) ni 2 (R-R con 3). No dd con siguientes del bloque. • Ejemplo: Bloque básico 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 … • Solo 7 eselegible (6 –10,11; 8 - 6 tienen R-D y 8 – 7 tienen R-R). No dd con anteriores del bloqueni R-D con salto. Bloque de Continuación Bloque del salto • Solo 9 esapropiada (10-9 y11-8 tienen R-D). No dd con anteriores del bloqueni R-D con continuación.
Tratamiento de laslatencias(5) • Apuestaporunarama: • Mejora del simple interlock. Se apuestaporunarama y se emite NOP o bloqueanescrituras en caso de fallo • Si se apuestaContinuación. CU debe: • Si IR2 = BRx y (Rf1 cmp 0) IR = NOP • Si se apuestaSalto, Compiladorinsertarelleno y modifica d para que el salto sea a k+1. CU verifica: • Si IR2 = BRx y !(Rf1 cmp 0) IR = NOP
Tratamiento de laslatencias(6) • Predicción del Salto: • En tiempo de ejecución. • Requieresoporte Hardware • Basado en el comportamiento de los saltosanteriores. • Variasversiones
Tratamiento de laslatencias(7) • Predictor de salto de 1 bit: • Se tiene 1 bit indicandosi el salto se tomó o no en la ocasión anterior. • Si la predicción no se cumple se cambia el estado del bit • Pobredesempeñocuando se cambia mucho el comportamiento de los saltos
Tratamiento de laslatencias(8) • Predictor de salto de 2 bits: • 4 Estadosposibles. • Permitemejoraciertocuando cambia mucho el comportamiento de los saltos
Tratamiento de laslatencias(9) • Apuestaporambasramas (BTB): • Apuesta al caracterrepetitivo de los saltos. • Se emplea un Branch Target Buffer asociativo (BTB). Tag es la dirección de la instrucción. • BTB almacenainstrucciones de los últimosdestinos de salto(k). • En caso de instrucción de salto en D/L, se buscadirección @(k) en el BTB
Tratamiento de laslatencias(9) • Apuestaporambasramas (BTB): • Si el salto se habíatomadoanteriormentey instruccióndestino k se encuentra en BTB, entoncestenemos un acierto (hit) • BTB hit IR = BTB(@k) medianteun MUX y • PC = @k + 4 paracargar la siguiente. • Si el salto no se habíatomadoanteriormente, k no se encuentra en BTB, entoncestenemos un fallo (miss) • BTB miss IR = NOP, PC = @k, cuando se traek, se almacena: BTB (@k, k)
Unidad 2: Segmentación Contenido: • 2.8 Dependencias de Control • Dependencias y Riesgos de Control • Mejoras a nivel de Diseño • DD en Brxtrasadelantamiento • Tratamiento de Latencias • Datapath del DLX sin DC
Enlaces útiles o interesantes: Intel :.Técnicas de Predicción: http://software.intel.com/en-us/articles/branch-and-loop-reorganization-to-prevent-mispredicts/ Ejemplo real :. Caso de mala predicción: http://stackoverflow.com/questions/11227809/why-is-processing-a-sorted-array-faster-than-an-unsorted-array#11227902 Tesis de Juan Carlos Moure :. Mejora de prestaciones de la predicción: http://www.tdx.cat/bitstream/handle/10803/5763/jcml1de1.pdf;jsessionid=3BD18B0B782FFEE4D14DD4D1D4D6A70C.tdx2?sequence=1