22 pipelining control hazards...
TRANSCRIPT
![Page 1: 22 Pipelining control hazards shorteuler.mat.uson.mx/~havillam/ca/Slides/22-Pipelining-control-hazards-short.pdf · Universidad de Sonora Arquitectura de Computadoras 3 Brinco no](https://reader030.vdocuments.site/reader030/viewer/2022041200/5d40e55388c993aa1e8d2bcc/html5/thumbnails/1.jpg)
PipeliningPeligros de control
![Page 2: 22 Pipelining control hazards shorteuler.mat.uson.mx/~havillam/ca/Slides/22-Pipelining-control-hazards-short.pdf · Universidad de Sonora Arquitectura de Computadoras 3 Brinco no](https://reader030.vdocuments.site/reader030/viewer/2022041200/5d40e55388c993aa1e8d2bcc/html5/thumbnails/2.jpg)
Universidad de Sonora Arquitectura de Computadoras 2
Peligros de control� Detener (stall) el pipeline no es práctico.
� Soluciones:
1. Suponer que el brinco no será tomado.
2. Reducir el retraso de los brincos.
3. Predicción dinámica de brincos.
4. Decisión retrasada.
![Page 3: 22 Pipelining control hazards shorteuler.mat.uson.mx/~havillam/ca/Slides/22-Pipelining-control-hazards-short.pdf · Universidad de Sonora Arquitectura de Computadoras 3 Brinco no](https://reader030.vdocuments.site/reader030/viewer/2022041200/5d40e55388c993aa1e8d2bcc/html5/thumbnails/3.jpg)
Universidad de Sonora Arquitectura de Computadoras 3
Brinco no tomado� Si el brinco no se toma, el pipeline continúa a toda
velocidad.
� Si el brinco se toma, se descartan las instrucciones
que hayan entrado después del brinco y se comienzan a tomar del destino del brinco.
� Si los brincos se toman el 50% de las veces, esta estrategia reduce el costo de los peligros de control
a la mitad.
![Page 4: 22 Pipelining control hazards shorteuler.mat.uson.mx/~havillam/ca/Slides/22-Pipelining-control-hazards-short.pdf · Universidad de Sonora Arquitectura de Computadoras 3 Brinco no](https://reader030.vdocuments.site/reader030/viewer/2022041200/5d40e55388c993aa1e8d2bcc/html5/thumbnails/4.jpg)
Universidad de Sonora Arquitectura de Computadoras 4
Brinco no tomado� Para descartar las instrucciones se cambian las
señales de control a 0.
� Al siguiente ciclo se saca la instrucción del lugar
correcto.
![Page 5: 22 Pipelining control hazards shorteuler.mat.uson.mx/~havillam/ca/Slides/22-Pipelining-control-hazards-short.pdf · Universidad de Sonora Arquitectura de Computadoras 3 Brinco no](https://reader030.vdocuments.site/reader030/viewer/2022041200/5d40e55388c993aa1e8d2bcc/html5/thumbnails/5.jpg)
Universidad de Sonora Arquitectura de Computadoras 5
Reducir el retraso de los brincos� El resultado de un brinco se conoce al final de la
etapa EX.
� Se puede agregar hardware para conocer el
resultado al final de la etapa ID.
� Por ejemplo, una instrucción tipo:
bltz $r, etiqueta # brinca si r < 0
� Sólo necesita checar el signo del registro y se podría
hacer en la etapa ID.
![Page 6: 22 Pipelining control hazards shorteuler.mat.uson.mx/~havillam/ca/Slides/22-Pipelining-control-hazards-short.pdf · Universidad de Sonora Arquitectura de Computadoras 3 Brinco no](https://reader030.vdocuments.site/reader030/viewer/2022041200/5d40e55388c993aa1e8d2bcc/html5/thumbnails/6.jpg)
Universidad de Sonora Arquitectura de Computadoras 6
Reducir el retraso de los brincos� Si la condición es igual (beq) se puede sacar un XOR
de los dos registros y luego un OR al resultado.
� Otras condiciones son más complicadas.
� De todos modos, hay que agregar hardware de bypass y de detección de peligros.
� Es posible que el brinco dependa de un resultado que todavía está dentro del pipeline.
![Page 7: 22 Pipelining control hazards shorteuler.mat.uson.mx/~havillam/ca/Slides/22-Pipelining-control-hazards-short.pdf · Universidad de Sonora Arquitectura de Computadoras 3 Brinco no](https://reader030.vdocuments.site/reader030/viewer/2022041200/5d40e55388c993aa1e8d2bcc/html5/thumbnails/7.jpg)
Universidad de Sonora Arquitectura de Computadoras 7
Reducir el retraso de los brincos� Por ejemplo, en la siguiente secuencia:
add $t0, $t1, $t2
beq $t0, $s0, etiqueta
� El pipeline se tiene que detener 1 ciclo.
� Para la siguiente secuencia:
lw $t0, 0($t1)
beq $t0, $s0, etiqueta
� El pipeline se tiene que detener 2 ciclos.
� Conclusión: no es práctico intentar reducir el retraso.
![Page 8: 22 Pipelining control hazards shorteuler.mat.uson.mx/~havillam/ca/Slides/22-Pipelining-control-hazards-short.pdf · Universidad de Sonora Arquitectura de Computadoras 3 Brinco no](https://reader030.vdocuments.site/reader030/viewer/2022041200/5d40e55388c993aa1e8d2bcc/html5/thumbnails/8.jpg)
Universidad de Sonora Arquitectura de Computadoras 8
Predicción dinámica de brincos� En base a la historia de la instrucción, predecir si
habrá o no brinco.
� Se necesita una tabla de historia de brincos, llamada
también buffer de predicción de brincos.
� La tabla es una memoria pequeña indexada por la
parte baja de la dirección de la instrucción de brinco.
� La tabla contiene uno o mas bits indicando si el
brinco fue recientemente tomado o no.
� La predicción se hace en la etapa IF del brinco.
![Page 9: 22 Pipelining control hazards shorteuler.mat.uson.mx/~havillam/ca/Slides/22-Pipelining-control-hazards-short.pdf · Universidad de Sonora Arquitectura de Computadoras 3 Brinco no](https://reader030.vdocuments.site/reader030/viewer/2022041200/5d40e55388c993aa1e8d2bcc/html5/thumbnails/9.jpg)
Universidad de Sonora Arquitectura de Computadoras 9
Tabla de 1 bit� Un bit que indica si la última vez el brinco fue
tomado o no.
� Desventaja: mala precisión aun con brincos que son
casi siempre tomados.
� Ejemplo: suponer la segunda vez que se ejecuta un
brinco de un ciclo. El brinco se toma 9 veces seguidas y luego no se toma.
� El sistema de 1 bit se equivoca dos veces.
![Page 10: 22 Pipelining control hazards shorteuler.mat.uson.mx/~havillam/ca/Slides/22-Pipelining-control-hazards-short.pdf · Universidad de Sonora Arquitectura de Computadoras 3 Brinco no](https://reader030.vdocuments.site/reader030/viewer/2022041200/5d40e55388c993aa1e8d2bcc/html5/thumbnails/10.jpg)
Universidad de Sonora Arquitectura de Computadoras 10
Tabla de 1 bit� Se equivoca en la primera iteración. El bit se quedó
en 0 al final de la primera ejecución y predice no tomado, pero el brinco se toma.
� Se equivoca en la última iteración. El bit está en 1 porque el brinco se ha tomado 9 veces consecutivas
y predice tomado, pero el brinco no se toma.
� Precisión: 80% en un brinco que se toma el 90%.
![Page 11: 22 Pipelining control hazards shorteuler.mat.uson.mx/~havillam/ca/Slides/22-Pipelining-control-hazards-short.pdf · Universidad de Sonora Arquitectura de Computadoras 3 Brinco no](https://reader030.vdocuments.site/reader030/viewer/2022041200/5d40e55388c993aa1e8d2bcc/html5/thumbnails/11.jpg)
Universidad de Sonora Arquitectura de Computadoras 11
Tabla de 2 bits� La predicción debe estar mal dos veces antes de
cambiarla.
� Se modela usando una máquina de estados finitos.
� Hay dos estados que predicen que el brinco serátomado.
� Hay dos estados que predicen que el brinco no serátomado.
![Page 12: 22 Pipelining control hazards shorteuler.mat.uson.mx/~havillam/ca/Slides/22-Pipelining-control-hazards-short.pdf · Universidad de Sonora Arquitectura de Computadoras 3 Brinco no](https://reader030.vdocuments.site/reader030/viewer/2022041200/5d40e55388c993aa1e8d2bcc/html5/thumbnails/12.jpg)
Universidad de Sonora Arquitectura de Computadoras 12
Tabla de 2 bits
Fuente: COD 5, p. 322.
![Page 13: 22 Pipelining control hazards shorteuler.mat.uson.mx/~havillam/ca/Slides/22-Pipelining-control-hazards-short.pdf · Universidad de Sonora Arquitectura de Computadoras 3 Brinco no](https://reader030.vdocuments.site/reader030/viewer/2022041200/5d40e55388c993aa1e8d2bcc/html5/thumbnails/13.jpg)
Universidad de Sonora Arquitectura de Computadoras 13
Tabla de 2 bits� Se puede programar como un contador de 0 a 3.
� 0 y 1 son los estados que predicen que el brinco se toma.
� 2 y 3 predicen que el brinco no se toma.
� Cada vez que el brinco no se toma, el contador se incrementa en 1.
� Cada vez que el brinco se toma, el contador se decrementa en 1.
� En el ejemplo anterior, este método tiene precisión del 90%, solo se equivoca en la última iteración.
![Page 14: 22 Pipelining control hazards shorteuler.mat.uson.mx/~havillam/ca/Slides/22-Pipelining-control-hazards-short.pdf · Universidad de Sonora Arquitectura de Computadoras 3 Brinco no](https://reader030.vdocuments.site/reader030/viewer/2022041200/5d40e55388c993aa1e8d2bcc/html5/thumbnails/14.jpg)
Universidad de Sonora Arquitectura de Computadoras 14
Otras mejoras� Buffer de destinos de brincos. Memoria cache para
guardar el destino de los últimos brincos.
� Predictor de correlación. Combina comportamiento
local de un brinco en particular con información global acerca del comportamiento de algunos
brincos recientemente ejecutados.
� Predictor de brincos estilo torneo. Tiene varias
predicciones para un mismo brinco y un mecanismo para seleccionar que predictor usar para un brinco en particular.
![Page 15: 22 Pipelining control hazards shorteuler.mat.uson.mx/~havillam/ca/Slides/22-Pipelining-control-hazards-short.pdf · Universidad de Sonora Arquitectura de Computadoras 3 Brinco no](https://reader030.vdocuments.site/reader030/viewer/2022041200/5d40e55388c993aa1e8d2bcc/html5/thumbnails/15.jpg)
Universidad de Sonora Arquitectura de Computadoras 15
Otras mejoras� Un predictor estilo torneo típico tiene dos
predicciones para cada brinco, uno basado en información global de brincos y otro en información
local. El selector escoge que predictor usar para un brinco en particular. El selector se puede
implementar parecido a las tablas de 1 y 2 bits, favoreciendo al predictor que haya sido mas preciso.
![Page 16: 22 Pipelining control hazards shorteuler.mat.uson.mx/~havillam/ca/Slides/22-Pipelining-control-hazards-short.pdf · Universidad de Sonora Arquitectura de Computadoras 3 Brinco no](https://reader030.vdocuments.site/reader030/viewer/2022041200/5d40e55388c993aa1e8d2bcc/html5/thumbnails/16.jpg)
Universidad de Sonora Arquitectura de Computadoras 16
Decisión retrasada� Se utiliza en MIPS.
� Consiste en poner después del brinco una instrucción independiente.
� Hay 3 formas de escoger la instrucción:
a) De antes del brinco.
b) Del destino del brinco.
c) Del else del brinco.
![Page 17: 22 Pipelining control hazards shorteuler.mat.uson.mx/~havillam/ca/Slides/22-Pipelining-control-hazards-short.pdf · Universidad de Sonora Arquitectura de Computadoras 3 Brinco no](https://reader030.vdocuments.site/reader030/viewer/2022041200/5d40e55388c993aa1e8d2bcc/html5/thumbnails/17.jpg)
Universidad de Sonora Arquitectura de Computadoras 17
Decisión retrasada
Fuente: COD 5, p. 323.
![Page 18: 22 Pipelining control hazards shorteuler.mat.uson.mx/~havillam/ca/Slides/22-Pipelining-control-hazards-short.pdf · Universidad de Sonora Arquitectura de Computadoras 3 Brinco no](https://reader030.vdocuments.site/reader030/viewer/2022041200/5d40e55388c993aa1e8d2bcc/html5/thumbnails/18.jpg)
Universidad de Sonora Arquitectura de Computadoras 18
Decisión retrasada� La opción a) es la preferida.
� Las opciones b) y c) se usan si a) no se puede emplear.
� La opción b) puede preferirse para brincos con alta probabilidad de ser tomados.
� Para que b) y c) funcionen la instrucción no debe afectar en caso de que no haberse debido
ejecutado.
![Page 19: 22 Pipelining control hazards shorteuler.mat.uson.mx/~havillam/ca/Slides/22-Pipelining-control-hazards-short.pdf · Universidad de Sonora Arquitectura de Computadoras 3 Brinco no](https://reader030.vdocuments.site/reader030/viewer/2022041200/5d40e55388c993aa1e8d2bcc/html5/thumbnails/19.jpg)
Universidad de Sonora Arquitectura de Computadoras 19
Conclusión� Detener el pipeline no es opción.
� Suponer que el brinco no será tomado tiene una mala precisión.
� Decisión retrasada es práctica en MIPS que tiene un pipeline de solo 5 etapas.
� Las CPUs modernas pueden tener pipelines de 20 o 30 etapas.
� La opción preferida en la actualidad es la predicción dinámica de brincos.
![Page 20: 22 Pipelining control hazards shorteuler.mat.uson.mx/~havillam/ca/Slides/22-Pipelining-control-hazards-short.pdf · Universidad de Sonora Arquitectura de Computadoras 3 Brinco no](https://reader030.vdocuments.site/reader030/viewer/2022041200/5d40e55388c993aa1e8d2bcc/html5/thumbnails/20.jpg)
Universidad de Sonora Arquitectura de Computadoras 20
Conclusión� Más información en:
� Smith, J. E. A Study of Branch Prediction Techniques. IEEE (1981)
http://euler.mat.uson.mx/~havillam/ca/Common/JSmith.pdf
� Michaud, P., Seznec, André. A Comprehensive
Study of Dynamic Global History Branch Prediction. INRIA (2001)
http://euler.mat.uson.mx/~havillam/ca/Common/RR-4219.pdf