Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Castro Del Carpio, Cristian Cuchillo Huaman, Javier Hermoza Salcedo, Fahed Huarhua Callaaupa, Lino Dario Paredes Rios, Conrad Humberto Cusco, octubre 2013.
6.5
DATA HAZARDS AND STALLS
6.6
BRANCH HAZARDS
INTRODUCCION
Como se vio en exposiciones anteriores existen tambin problemas de fuente de informacin (pipeline hazards) los cuales se relacionan o involucran derivaciones, este punto dar a conocer mas de estas particularidades y tratara de explicar como mejorar estos casos.
ACLARACIONES
Si la derivacin es tomada , las instrucciones que han sido extradas y decodificadas deben ser descartadas. La ejecucin sigue con el objetivo de salto. Si las derivaciones no son tomadas en la mitad del tiempo y cuesta poco descartar la instruccin, esta optimizacin reduce a la mitad el costo de el riesgo de control (control hazard).
Una aproximacin es mirar la direccin de instrucciones y ver si la derivacin que fue tomada la ultima vez fue ejecutada y si es as empezar a captar nuevas instruccin del mismo lugar como la ultima vez. Esta tcnica es llamada PREDICCION DINAMICA DE DERIVACIONES
IMPLEMENTACIN
Una implementacin de este enfoque es la Prediccin de ramas en buffer o implementacin por tabla de historial. Una prediccin de ramas en buffer es una pequea memoria indexada por la mas baja porcin de direccin de la rama de instrucciones. La memoria contiene un bit que dice cuando la rama fue recientemente tomada o no.
6.7
UTILIZANDO UN LENGUAJE DE DESCRIPCIN DE HARDWARE PARA DESCRIBIR Y MODELAR UNA TUBERA
6.8
EXCEPCIONES
EXCEPCIONES E INTERRUPCIONES
Los eventos inesperados requieren de un cambio en el control del flujo Excepcin
Surge dentro del CPU
Interrupciones
Desde un controlador externo de E/S
MANEJO DE EXCEPCIONES
En el MIPS, las excepciones son administradas por un Coprocesador de Control del Sistema Guarda el PC interrupciones) de instrucciones ofensivas (o
De otra manera
Terminar el programa Reportar el error usando EPC
EJEMPLO DE EXCEPCIN
Excepcin sobre add en 40 44 48 4C 50 54 sub $11, $2, $4 and $12, $2, $5 or $13, $2, $6 add $1, $2, $1 slt $15, $6, $7 lw $16, 50($7)
EJEMPLO DE EXCEPCIN
EJEMPLO DE EXCEPCIN
LA CIRCUITERA
La mquina y el sistema operativo deben trabajar conjuntamente para que la excepciones se comporten tal como se espera La tarea de la circuitera es normalmente parar la instruccin que causa la excepcin en el medio de flujo de instrucciones:
dejando que las anteriores se completen eliminar todas la instrucciones posteriores activar un registro para mostrar la causa de la excepcin salvar la direccin de la instruccin que la ha provocado saltar a una direccin predefinida
EL SISTEMA OPERATIVO
El sistema operativo debe considerar la causa de la excepcin y actuar en consecuencia. Para el caso de una instruccin no definida, mal funcionamiento de la circuitera o una excepcin por desbordamiento, el sistema operativo normalmente detiene la ejecucin del programa y devuelve un indicador de la razn Para una peticin de un dispositivo de E/S o una llamada a una rutina de servicio del sistema operativo, este salva el estado del programa, realiza la tarea deseada y entonces reanuda la ejecucin del programa
6.9
PIPELINING AVANZADO: EXTRAYENDO MAYOR DESEMPEO
Mltiples casos
Etapas de segmentado replicadas => mltiples segmentados Comenzar mltiples instrucciones por ciclo de reloj
MLTIPLES CASOS
Casos mltiples estticos: es un enfoque para implementar un procesador multitarea cuando las decisiones las toma el compilador antes de la ejecucin.
Compilar grupos de instrucciones para ser tomadas juntas en cuenta Empaquetarlos en ranuras por casos El compilador las detecta y evita peligros
Casos mltiples dinmicos: es un enfoque para implementar un procesador multitarea donde las decisiones las toma el procesador durante la ejecucin.
El CPU examina la trama de instrucciones para separar cada caso por ciclo El compilador puede ayudar a reordenar las instrucciones El CPU resuelve peligros utilizando tcnicas avanzadas en tiempo de ejecucin
ESPECULACIN
Adivinar que hacer con una instruccin
Comenzar la operacin lo mas pronto posible Comprobar si lo adivinado fue correcto
Completar la operacin si fue correcto Si no, volver atrs y hacer la operacin correcta
ESPECULACIN Y EXCEPCIONES
Y, si ocurriera una excepcin en una instruccin ejecutada especulativamente?
Ej.: carga especulativa antes de comprobar un puntero a null
Especulacin esttica
Puede aadir soporte ISA (Industry Standard Architecture) para diferir las excepciones
Especulacin dinmica
Puede almacenar las excepciones en un buffer hasta que se complete la instruccin (lo que puede no ocurrir)
CONCLUSIONES
CONCLUSIONES
Poner burbujas en un PIPELINE es, en muchos casos, necesario aunque afecta al rendimiento. Mejorar rendimiento en derivaciones de procesos bsicamente para un mejor manejo. El manejo de excepciones tiene que trabajar conjuntamente entre la maquina y el sistema operativo, para que se comporte tal como se espera. Existen dos tipos de pipelining avanzados:
Casos multiples esttico Casos mltiples dinmico
Los dos tipos son muy utilizados, pero el que se impone es el esttico.