1 / 27

PREDICCIÓN DINÁMICA DE SALTOS

PREDICCIÓN DINÁMICA DE SALTOS. 1. PREDICCIÓN DINÁMICA DE SALTOS. 2. Introducción Buffer de Predicción de Saltos (BPB) Buffer de Destinos de Saltos (BTB) Predictores Globales Predictores Adaptativos. PREDICCIÓN DINÁMICA DE SALTOS. 3. Introducción. Introducción.

corbin
Download Presentation

PREDICCIÓN DINÁMICA DE SALTOS

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. PREDICCIÓN DINÁMICA DE SALTOS 1

  2. PREDICCIÓN DINÁMICA DE SALTOS 2 • Introducción • Buffer de Predicción de Saltos (BPB) • Buffer de Destinos de Saltos (BTB) • Predictores Globales • Predictores Adaptativos

  3. PREDICCIÓN DINÁMICA DE SALTOS 3 • Introducción

  4. Introducción Los riesgos de control se dan más a menudo que los de datos Mucha influencia en el tiempo de ejecución Vamos a estudiar técnicas que permitan determinar si se va a saltar o no La predicción se hará en la etapa IF 4 Predicción dinámica de saltos

  5. PREDICCIÓN DINÁMICA DE SALTOS 5 • Buffer de Predicción de Saltos (BPB)

  6. Buffer de Predicción de Saltos (BPB) Salto No Salto Predice el salto atendiendo a la historia. BPB ETQ1 . . . . . . . . . . ETQ2 . . . . . . . . . . . . . . . 20032 Bcc ETQ2 . . . . . . . . . . 20156 Bcc ETQ1 32 1 56 0 . . . . . . . . . . . . . . . . . . 34056 Bcc ETQ3 . . . . . . . . . . ¡OJO! ¡Puede haber colisiones! 6 Predicción dinámica de saltos

  7. Buffer de Predicción de Saltos (BPB) ¿Se predice saltar? SI NO Ejecutar la instrucción del salto Ejecutar la instrucción siguiente ¿Predicción fallada? SI NO Buscar la instrucción adecuada Invertir la predicción del buffer Continuar la ejecución 7 Predicción dinámica de saltos

  8. Buffer de Predicción de Saltos (BPB) ETQ1 . . . . . . . . . . ETQ2 . . . . . . . . . . . . . . . Bcc ETQ2 . . . . . . . . . . Bcc ETQ1 x 99 x 1000 A veces, un solo bit de predicción no da buen resultado. El bucle interior salta en 99 ocasiones (y no lo hace en 1) de cada 100. Sin embargo, la predicción no sólo fallará la vez que no salta sino también la siguiente vez que se vuelva a ejecutar la instrucción de salto. ¡Habrá 2000 fallos en vez de los 1000 que cabría esperar! 8 Predicción dinámica de saltos

  9. Buffer de Predicción de Saltos (BPB) Fallo Predicción de SALTO Predicción de SALTO Acierto 11 10 Acierto Fallo Fallo Acierto Predicción de NO SALTO Predicción de NO SALTO Acierto 01 00 Fallo Solución: aumentar la “memoria histórica”. Se aumenta a dos el número de bits de predicción del BPB y se actúa según el siguiente diagrama de estados: Pueden implementarse predictores de más de 2 bits aunque la práctica ha demostrado que no merecen la pena. 9 Predicción dinámica de saltos

  10. Buffer de Predicción de Saltos (BPB) • No Saltar. • Se continúa con la siguiente instrucción y no hay retardo. • Saltar. • Hasta la fase ID no se conoce la dirección de salto (cuando éste ya se ha resuelto). No se puede evitar el retardo. Predicción en MIPS Para este tipo de procesadores el BPB no tiene utilidad. Solución: Predecir también la dirección a la que saltar. 10 Predicción dinámica de saltos

  11. PREDICCIÓN DINÁMICA DE SALTOS 11 • Buffer de Destinos de Saltos (BTB)

  12. Buffer de Destinos de Saltos (BTB) Dirección de la última vez que saltó No está  Predicción de NO salto Predice el salto y la dirección destino. BTB ETQ1 . . . . . . . . . . ETQ2 . . . . . . . . . . . . . . . 20032 Bcc ETQ2 . . . . . . . . . . 20156 Bcc ETQ1 . . . . . . . . . . 34056 Bcc ETQ3 . . . . . ETQ3 . . . . . . . . . . 19850 20032 19800 20156 Predictor de 1 bit . . . . . . . . 12 Predicción dinámica de saltos

  13. Buffer de Destinos de Saltos (BTB) ¿Entrada en el BTB? NO SI IF Enviar PC a memoria y BTB ID Enviar el PC predicho ¿Es un salto y se toma? NO SI ¿Se realiza el salto? NO SI Ejecución normal EX • Abortar la ejecución errónea y reiniciar lectura de instrucción. • Introducir en BTB la dirección del salto y de la instrucción. • Abortar la ejecución errónea y reiniciar lectura de instrucción. • Eliminar entrada en BTB Ejecución normal 13 Predicción dinámica de saltos

  14. Buffer de Destinos de Saltos (BTB) Usando el BTB con MIPS, si se acierta no hay retardo. Si se predice NO SALTO y se ACIERTA: BNE ETQ IF ID EX MEM WB XOR R1,R2,R3 IF ID EX MEM WB . . . . . . ETQ AND R1,R2,R3 Si se predice SALTO y se ACIERTA: BNE ETQ IF ID EX MEM WB XOR R1,R2,R3 . . . . . . ETQ AND R1,R2,R3 IF ID EX MEM WB 14 Predicción dinámica de saltos

  15. Buffer de Destinos de Saltos (BTB) Se conoce el error de predicción ID IF Se predice “no salto” MEM WB IF ID Se aborta la ejecución No se puede extraer la siguiente instrucción porque hay que actualizar el BTB Si se falla la predicción habrá 2 ciclos de retardo. Si se predice NO SALTO y se FALLA: BNE ETQ XOR R1,R2,R3 . . . . . . ETQ AND R1,R2,R3 IF EX MEM WB EX 15 Predicción dinámica de saltos

  16. Buffer de Destinos de Saltos (BTB) Si la predicción es de SALTO y se FALLA, el proceso es similar. Se puede ahorrar un ciclo de retardo si se consigue consultar el BTB y modificarlo en un solo ciclo. Dos posibles formas son: • Dotar al BTB de un puerto de lectura y otro de escritura para poder superponer ambas operaciones. • Dividir la etapa IF en 2 subciclos de forma que en uno se consulte la dirección en el BTB (Lectura) y en otro se actualice (escritura). 16 Predicción dinámica de saltos

  17. Buffer de Destinos de Saltos (BTB) BTB 19850 20032 1 19800 20156 0 . . . . . . . . . . . . Bit de predicción Se puede añadir un bit de predicción. Permite utilizarlo como si fuera un predictor de 2 bits. 17 Predicción dinámica de saltos

  18. Buffer de Destinos de Saltos (BTB) BTB J ETQ IF . . . . . . ETQ AND R1,R2,R3ID EX MEM WB AND ... 20032 ADD ... 20156 . . . . . . . . Se ahorra la etapa IF Para los saltos incondicionales se puede utilizar la técnica denominada Branch Folding. En este caso el BTB contiene la instrucción destino del salto en vez de su dirección. 18 Predicción dinámica de saltos

  19. PREDICCIÓN DINÁMICA DE SALTOS 19 • Predictores Globales

  20. Predictores Globales BNE ETQ1 . . . . . . BEQ ETQ2 . . . . . . BEQ ETQ3 Los predictores vistos hasta ahora son locales ya que sólo tienen en cuenta información referente a la instrucción de salto objeto de la predicción. BNE ETQ1 . . . . . . BEQ ETQ2 . . . . . . BEQ ETQ3 Los predictores globales, además tienen en cuenta la información sobre otras instrucciones de salto del programa. 20 Predicción dinámica de saltos

  21. Predictores Globales Se describen mediante el par (G, L) Donde G indica el número saltos globales a evaluar y L el número de bits del predictor local. Los predictores locales que hemos visto hasta ahora se pueden considerar: (0, 1)  predictor de 1 bit (0, 2)  predictor de 2 bits 21 Predicción dinámica de saltos

  22. Predictores Globales Predictor (1, 1) ¿El último salto global se tomo? SI NO ETQ1 . . . . . . . . . . ETQ2 . . . . . . . . . . . . . . . 20032 Bcc ETQ2 . . . . . . . . . . 20156 Bcc ETQ1 . . . . . . . . . . 34088 Bcc ETQ3 . . . . . ETQ3 . . . . . . . . . . 20032 1 0 1 20156 1 Predicción de 1 bit . . . . . . . . . . . . 34088 0 1 22 Predicción dinámica de saltos

  23. Predictores Globales Predictor (1, 2) ¿El último salto global se tomo? SI NO ETQ1 . . . . . . . . . . ETQ2 . . . . . . . . . . . . . . . 20032 Bcc ETQ2 . . . . . . . . . . 20156 Bcc ETQ1 . . . . . . . . . . 34088 Bcc ETQ3 . . . . . ETQ3 . . . . . . . . . . 20032 10 00 11 20156 01 Predicción de 2 bits . . . . . . . . . . . . 34088 01 10 23 Predicción dinámica de saltos

  24. Predictores Globales Predictor (2, 2) ¿Se tomaron los 2 últimos saltos globales? NO NO NO SI SI NO SI SI ETQ1 . . . . . . . . . . ETQ2 . . . . . . . . . . . . . . . 20032 Bcc ETQ2 . . . . . . . . . . 20156 Bcc ETQ1 . . . . . . . . . . 34088 Bcc ETQ3 . . . . . ETQ3 . . . . . . . . . . 20032 11 00 01 00 10 11 20156 00 10 . . . . . . . . . . . . . . . . . . . . 00 01 34088 10 10 24 Predicción dinámica de saltos

  25. PREDICCIÓN DINÁMICA DE SALTOS 25 • Predictores Adaptativos

  26. Predictores Adaptativos Dependiendo de los programas a ejecutar, habrá veces en las que funcionará mejor un predictor que otro. Los predictores adaptativos tienen la capacidad de “adaptarse” a la situación eligiendo el tipo de predictor más adecuado a cada situación, por ejemplo, local o global. Se hace implementando un diagrama de estados como el del ejemplo que se muestra a continuación. Las transiciones se muestran con pares con el siguiente significado: ( X, Y ) A  Acierto F  Fallo Evento del predictor A Evento del predictor B 26 Predicción dinámica de saltos

  27. Predictores Adaptativos ( F, F ) ( A, F ) ( A, A ) ( F, F ) ( F, A ) ( A, A ) Utilizar Predictor A Utilizar Predictor B Utilizar Predictor A Utilizar Predictor B ( A, F ) ( F, A ) ( A, F ) ( F, A ) ( F, A ) ( A, F ) ( F, F ) ( A, A ) ( F, F ) ( A, A ) 27 Predicción dinámica de saltos

More Related