1 / 26

Unidad 2: Segmentación

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.

oriel
Download Presentation

Unidad 2: Segmentación

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Preámbulo • Clasesanteriores: • Procesadorsegmentadoadelanta la ejecución. • Dependenciasinherentes al solapamiento. • Riesgospordependencias: • Estructurales • Datos • Control

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

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

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

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

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

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

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

  10. Mejoras a nivel de Diseño(3/3) • Garantizar el bloqueo para evitarinconsistencias • (Interlock Hardware)

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

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

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

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

  15. Tratamiento de laslatencias(2) • Trestécnicasmáscomunes: • Salto Retardado (Método Software) • Apuestaporunarama (Sw + Hw) • Predicción del Salto (Hardware Predictor) • Apuestaporambasramas(Hardware BTB)

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

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

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

  19. Tratamiento de laslatencias(6) • Predicción del Salto: • En tiempo de ejecución. • Requieresoporte Hardware • Basado en el comportamiento de los saltosanteriores. • Variasversiones

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

  21. Tratamiento de laslatencias(8) • Predictor de salto de 2 bits: • 4 Estadosposibles. • Permitemejoraciertocuando cambia mucho el comportamiento de los saltos

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

  23. 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)

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

  25. Datapath del DLX Corregido

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

More Related