La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Excepciones e interrupciones

Presentaciones similares


Presentación del tema: "Excepciones e interrupciones"— Transcripción de la presentación:

1 Excepciones e interrupciones
Pipelining Excepciones e interrupciones

2 Excepciones e interrupciones
Son eventos, que no son branches ni jumps, que cambian el flujo normal de ejecución de las instrucciones. Fueron creadas para manejar eventos inesperados dentro de la CPU. Algunas arquitecturas no distinguen entre excepciones e interrupciones Universidad de Sonora Arquitectura de Computadoras

3 Excepciones e interrupciones
En MIPS (y otras arquitecturas): Se llama excepción si la causa del evento es interna. Se llama interrupción si la causa del evento es externa. Ejemplos: Fuente: COD 5, p. 326. Universidad de Sonora Arquitectura de Computadoras

4 Excepciones e interrupciones
Para no estar escribiendo “excepciones e interrupciones” en el resto de esta presentación se habla solo de “excepciones.” Universidad de Sonora Arquitectura de Computadoras

5 Excepciones en MIPS Cuando se produce una excepción:
Se guarda la dirección de la instrucción actual en el registro EPC (Exception Program Counter). Se transfiere en control al sistema operativo en alguna dirección específica. El sistema operativo maneja la excepción. El sistema operativo puede: Abortar el programa. Continuar la ejecución usando el EPC para regresar. Universidad de Sonora Arquitectura de Computadoras

6 Manejo de excepciones En el paso 3 “El sistema operativo maneja la excepción.” El sistema operativo debe saber cuál fue la excepción. Hay dos formas de saber: Usar un registro de status. Usar interrupciones vectorizadas (vectored interrupts). Universidad de Sonora Arquitectura de Computadoras

7 Registro de status El registro de status tiene un campo que indica la razón de la excepción. En MIPS se llama “registro Causa” (Cause register). La rutina de manejo de excepciones tiene una dirección. El sistema operativo brinca a esa dirección y analiza el registro Causa para saber la razón de la excepción. Universidad de Sonora Arquitectura de Computadoras

8 Interrupciones vectorizadas
Cada interrupción tiene su propio manejador (handler). Las direcciones se guardan en una tabla. Por ejemplo: Tipo de excepción Dirección (hex) Instrucción no definida 0x Overflow 0x Etc. Universidad de Sonora Arquitectura de Computadoras

9 Interrupciones vectorizadas
El sistema operativo sabe la causa de la excepción por la dirección. Como parte del manejo de la excepción, el sistema operativo guarda en alguna parte la causa de la excepción. Universidad de Sonora Arquitectura de Computadoras

10 Implementación Se supone que la rutina que maneja excepciones está en la dirección 0x Se necesitan agregar dos registros: EPC. Registro de 32 bits para guardar la dirección donde se produjo la excepción. Causa. Registro de 32 bits que registra la causa de la excepción en un campo de 5 bits. Suponer que 10 representa una instrucción indefinida y 12 un overflow. Una excepción se trata igual que un brinco mal adividado. Universidad de Sonora Arquitectura de Computadoras

11 Implementación Se hacen dos cosas:
Eliminar (flush) las instrucciones que sigan a la instrucción que provocó la excepción. Empezar a sacar instrucciones de la dirección de la rutina de manejo de excepciones (0x en el ejemplo). El pipeline se limpia poniendo a ceros las señales de control. Universidad de Sonora Arquitectura de Computadoras

12 Implementación Se agregan dos señales de control:
ID.Flush para eliminar la instrucción en la etapa ID. EX.Flush para eliminar la instrucción en la etapa EX. Se debe evitar que la instrucción que provocó la excepción escriba en WB. Por último, se guarda la dirección de la instrucción que provocó la excepción en el registro EPC. Se muestra el datapath para manejar excepciones. Universidad de Sonora Arquitectura de Computadoras

13 Datapath Fuente: COD 5, p. 329. Universidad de Sonora
Arquitectura de Computadoras

14 Explicación La dirección 0x entra al mux que controla lo que se guarda en el PC. Si se genera una excepción, se comienza a sacar instrucciones de la dirección 0x El registro Causa registra la causa de la excepción. El registro EPC guarda la dirección de la instrucción que provocó la excepción. Universidad de Sonora Arquitectura de Computadoras

15 Ejemplo Dado el siguiente código 0x40 sub $11, $2, $4
0x44 and $12, $2, $5 0x48 or $13, $2, $6 0x4C add $1, $2, $1 0x50 slt $15, $6, $7 0x54 lw $16, 50($7) Universidad de Sonora Arquitectura de Computadoras

16 Ejemplo Suponer que la rutina de manejo de excepciones comienza con:
0x sw $26, 1000($0) 0x sw $27, 1004($0) Mostrar que pasa si la instrucción add produce un overflow. Universidad de Sonora Arquitectura de Computadoras

17 Antes Antes. Fuente: COD 5, p. 330. Universidad de Sonora
Arquitectura de Computadoras

18 Después Después. Fuente: COD 5, p. 330. Universidad de Sonora
Arquitectura de Computadoras

19 Temas avanzados Manejo de excepciones múltiples.
Excepciones imprecisas. Universidad de Sonora Arquitectura de Computadoras


Descargar ppt "Excepciones e interrupciones"

Presentaciones similares


Anuncios Google