Está en la página 1de 38

UNIVERSIDAD NACIONAL DE SAN ANTONIO ABAD DEL CUSCO

Facultad de Cs. Qumicas, Fsicas y Matemticas


C.P. Ingeniera Informtica y de Sistemas
Organizacin y Arquitectura del Computador Integrantes:
-

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.

ASUMIR QUE LA DERIVACIN NO SE TOMA


Explicacin
Como ya se explic antes, esperar hasta que la derivacin este totalmente completa demanda demasiado tiempo debido a la lentitud de este mismo. Una solucin comn a este problema es asumir que la derivacin NO VA SER TOMADA y as continuar la ejecucin por el flujo de instrucciones secuenciales.

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

DESCARTAR INSTRUCCIONES EXPLICACIN


Al descartar instrucciones , nosotros simplemente cambiamos el valor de controles originales a 0 segundos, tanto como lo hicimos para detener a un riesgo de uso de carga de datos. La diferencia radica en que nosotros debemos cambiar tambin las 3 instrucciones en las etapas de : IF, ID y EX cuando la derivacin alcanza la etapa MEM. Descartar la funcin significa entonces que debemos ser capaces de eliminar instrucciones dentro de las etapas de IF,ID y EX de la fuente de informacin (pipeline).

REDUCIR EL DELAY O RETRASO DE LAS RAMAS


Explicacin
Una manera de mejorar el rendimiento de las derivaciones es reducir el costo la derivacin extrada. Hasta el momento asumimos que la siguiente rama seleccionada por la PC es seleccionada por la etapa MEM, pero si nosotros movemos la ejecucin de la derivacin a un momento mas temprano en la fuente de informacin (pipeline), entonces algunas instrucciones necesitaran ser renovadas pero el costo seria menor.

ACLARACIONES SOBRE EL FUNCIONAMIENTO EN LA PC


Para este caso daremos uso de la Arquitectura MIPS que fue diseada para dar apoyo rpido a cada ciclo particular de la derivaciones que podra ser transformado a canales con una pequea penalidad. Los diseadores observaron que muchas ramas confan solo en un nico test (igualdad de seales, por ejm) y que cada test no requiere una completa operacin ALU pero no puede ser hecha a la sumo con algunas puertas. Cuando una decisin mas compleja en una derivacin es requerida una separacin de instrucciones que usa un ALU para realizar una comparacin es requerida una situacin similar al uso de cdigos condicionales para cada rama.

REQUERIMIENTOS PARA REALIZAR ESTE PROCESO


Mover la derivacin a una etapa mas temprana requiere que 2 acciones ocurran antes:
1) La parte fcil de este cambio es mover arriba la direccin de calculo. Esto debido a que nosotros ya tenemos los valores de la PC y el campo inmediato en el registro de tubera IF/ID entonces nosotros solo movemos la derivacin agregada del campo EX al campo ID , por supuesto el blanco de la derivacin por el calculo de direccin va ser realizado por todas las instrucciones, pero solo usado cuando sea necesario. 2) La parte mas difcil es la decisin de la rama por si misma. Para cada rama igual, nosotros compararamos los 2 registros ledos durante el campo ID para ver si ellos son iguales. Igualmente puede ser probada por los primeros respetivos bits de ORing y todos los resultados de ORing. Mover el test de un campo ID implica un reenvi adicional y deteccin de errores de hardware, ya que la derivacin depende del resultado, la fuente de informacin(pipeline) debe trabajar apropiadamente con esta optimizacin.

PREDICCIN DINMICA DE DERIVACIONES


Asumir que una derivacin no es tomada es una forma simple de prediccin de ramas, en ese caso nosotros predecimos que ramas no sern tomadas y renovamos o actualizamos la fuente de informacin (pipeline) cuando esta esta equivocada, por la simple distribucin de fuente de informacin (pipeline) en cinco etapas, tal enfoque, posiblemente junto con la prediccin basada en compilador, es probablemente adecuada. Con mas fuentes de informacin(pipelines) la penalidad de la derivacin incrementa cuando se mide los ciclos de reloj. Similarmente, con mltiples problemas, la penalidad de la derivacin incrementa en trminos de instrucciones perdidas. Esta combinacin significa que en una fuente de informacin (pipeline) agresiva, un simple esquema de prediccin esttica probablemente demande demasiado rendimiento. Como se menciono: con mas hardware es posible intentar predecir comportamiento de ramas durante la ejecucin del programa

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

UTILIZANDO UN LENGUAJE DE DESCRIPCIN DE HARDWARE PARA DESCRIBIR Y MODELAR UNA TUBERA


El modelo inicial ignora los peligros y adiciones a un modelo mas destacado de los cambios para el desvo, los peligros de datos y los peligros derivados.

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

Tratar con ellos sin sacrificar el desempeo es difcil

MOTIVOS POSIBLES DE LAS EXCEPCIONES


Peticin de un Dispositivo de E/S Requerimiento de un servicio del sistema por parte de un programa de usuario Uso de una instruccin no definida Mal funcionamiento de la circuitera

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

Guardar la indicacin del problema Saltar al administrador en 8000 00180

ACCIONES DEL ADMINISTRADOR


Leer la causa, y transferir el administrador relevante Determinar la accin requerida Si se restablece
Tomar la accin correctiva Usar EPC(registro que contiene la direccin de la instruccin afectada) para regresar al programa

De otra manera
Terminar el programa Reportar el error usando EPC

SEGMENTADO CON EXCEPCIONES

PROPIEDADES DE LAS EXCEPCIONES


Podemos ver una nueva entrada con el valor 8000 0180 en el multiplexor que proporciona el nuevo PC; un registro de causa, para guardar el motivo de la excepcin y un registro de PC de la excepcin, para guardar la direccin de la instruccin que a provocado la excepcin. La entrada 8000 0180 al multiplexor es la direccin inicial donde se debe empezar la bsqueda de instrucciones cuando ocurre una excepcin. A pesar de que no se muestra la seal de desbordamiento de la ALU es una entrada de control.

PROPIEDADES DE LAS EXCEPCIONES


Excepciones que vuelven a comenzar
El segmentador puede tirar la instruccin El administrador se ejecuta, entonces regresa a la instruccin
Vuelve a buscar y se ejecuta desde lo eliminado

El CP se guarda en el registro EPC


Se identifica la instruccin causante

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)

Administrador 80000180 sw $25, 1000($0) 80000184 sw $26, 1004($0)

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

PARALELISMO A NIVEL DE INSTRUCCIONES (ILP)


Segmentado: ejecutar mltiples instrucciones en paralelo. Para incrementar el ILP:
Segmentado profundo
Menos trabajo por etapa => ciclos de reloj mas cortos

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

Comn a los casos mltiples estticos y dinmicos

ESPECULACIN DEL COMPILADOR/HARDWARE


El compilador puede reordenar las instrucciones
Puede incluir instrucciones de reparacin para recuperarse de decisiones incorrectas

El hardware puede mirar adelante para instrucciones a ejecutar


Almacenar los resultados en un buffer hasta que determine que son necesitados Limpiar los buffer en caso de especulacin incorrecta

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)

CASOS MLTIPLES ESTTICOS


El compilador agrupa instrucciones dentro de paquetes de casos
Grupos de instrucciones que pueden ser resueltas en un mismo ciclo Determinados por los recursos de pipeline requeridos

Pensar que un paquete de caso es una muy larga instruccin


Especifica operaciones concurrentes mltiples => palabra de instruccin muy larga: Very Long Instruction Word (VLIW)

CRONOGRAMANDO LOS CASOS MLTIPLES ESTTICOS


El compilador debe remover la mayora o todos los peligros
Reordenar instrucciones dentro de paquetes de casos No existen dependencias con un paquete Posiblemente haya dependencias entre algunos paquetes

CASOS MLTIPLES DINMICOS


En procesadores llamados superescalares El CPU decide si emitir 0,1 o ms instrucciones cada ciclo
Se evitan los peligros de datos y estructurales

Se evita la necesidad de que el compilador cronograme


Aun as, todava puede ayudar La semntica del cdigo es asegurada por el CPU

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.

También podría gustarte