Sie sind auf Seite 1von 14

13/08/2012

Arquitectura de Computadoras
Clase 2 Interrupciones

Interrupciones
Mecanismo mediante el cual se puede interrumpir el procesamiento normal de la CPU.
Ejecucin secuencial de instrucciones de un programa

Pueden ser de origen interno o externo a la CPU.

13/08/2012

Porqu Interrumpir?
Por resultado de una ejecucin de una instruccin.
Ej: desbordamiento aritmtico (overflow), divisin por cero

Por un temporizador interno del procesador.


Permite al S.O. realizar ciertas funciones de manera regular.

Por una operacin de E/S.


Ej: para indicar la finalizacin normal de una operacin.

Por un fallo de hardware.


Ej: error de paridad en la memoria, prdida de energa.

Jerarqua de interrupciones
Si hay mltiples fuentes se establece cuales son mas importantes No enmascarables: No pueden ignorarse.
Indican eventos peligrosos o de alta prioridad.

Enmascarables: Pueden ser ignoradas.


Con instrucciones inhibimos su ocurrencia.

13/08/2012

Ciclo de instruccin
Tres pasos:
Captacin Ejecucin Gestin de interrupciones
Ciclo de captacin Ciclo de ejecucin Ciclo de interrupcin
INICIO Captar la siguiente instruccin
PARADA

Ejecutar la instruccin

I Hab

Hay interrupcin? Interrumpir proceso

I Deshab

Ciclo de interrupcin
Se comprueba si se ha generado alguna interrupcin.
indicada por la presencia de una seal de interrupcin.

Si no hay seales se capta la siguiente instruccin. Si hay alguna interrupcin pendiente:


Se suspende la ejecucin del programa en curso Guarda su contexto (prxima instruccin a ejecutar y el estado del procesador) Carga el PC con la direccin de comienzo de una rutina de gestin de Interrupcin(ISR). Se inhiben otras interrupciones. Finalizada la rutina de gestin, el procesador retoma la ejecucin del programa del usuario en el punto de interrupcin.

13/08/2012

3 - salto
Manejador de la interrupcin (4)

cmo trabajan?
Pila

1- int

Programa en 5 - desapilar ejecucin 2 - apilar

PC PSW

Vectores de interrupcin
2008 Notas de Arquitectura de Computadoras - Clase 2 7

Diagrama de estados de un ciclo de instruccin con interrupciones

Captacin de instruccin

Captacin de operando

Almacenamiento del operando

Operandos mltiples Clculo de la direccin de instruccin


Decodificacin de la operacin de la instruccin

Resultados mltiples Clculo de la direccin del operando Comprobacin de interrupcin

Clculo de la direccin del operando

Operacin con los datos Cadena o vector

Interrupcin

Instruccin siguiente

No interrupcin

13/08/2012

Interrupciones por hardware


Son las generadas por dispositivos de E/S. Son las verdaderas interrupciones. El sistema de cmputo tiene que manejar estos eventos externos no planeados asincrnicos. No estn relacionadas con el proceso en ejecucin en ese momento. Son conocidas como interrupt request .

Traps
Interrupciones por hardware creadas por el procesador en respuesta a ciertos eventos como:
Condiciones excepcionales: overflow en punto flotante. Falla de programa: tratar de ejecutar una instruccin no definida. Fallas de hardware: error de paridad de memoria.

13/08/2012

Interrupciones por software


Muchos procesadores tienen instrucciones explcitas que afectan el estado del procesador en la misma manera que las interrupciones por hardware. Generalmente usadas para hacer llamadas a funciones del SO.
Esta caracterstica permite que las subrutinas del sistema se carguen en cualquier lugar.

No requieren conocer la direccin de la rutina en tiempo de ejecucin.

Interrupciones por software (2)


Hay sistemas que no permiten hacer una llamada directa a una direccin de la funcin del SO, por estar en una zona reservada. Qu pasa si no las tuviera?
Debera escribir todas las funciones que necesito Al cargar un programa habra que mirar todas las llamadas a funciones del BIOS y SO y reemplazar en el cdigo las direcciones de todas estas funciones invocadas.

13/08/2012

Un ejemplo de uso de interrupciones


Un programa realiza una operacin de E/S
Hay que esperar al dispositivo

Mejor solucin: cuando el dispositivo termina su tarea, enva una seal al procesador: produce una interrupcin.
Este mecanismo permite procesar en vez de esperar. Tener en cuenta la velocidad del dispositivo externo.

Flujo de control del programa del ejemplo


Programa de usuario Programa de E/S Programa de usuario Programa de E/S Programa de usuario Programa de E/S

Comando de E/S

Comando de E/S

Comando de E/S

Gestor de interrupcin

Gestor de interrupcin

2008

(a) Sin interrupcin

(b) Interrupcin, de E/S corta - Clase ( c) Notas de Arquitectura de espera Computadoras 2 Interrupcin, espera de E/S larga14

13/08/2012

Interrupciones mltiples (1)


Interrupciones inhabilitadas
El procesador puede y debe ignorar la seal de peticin de interrupcin si se produce una interrupcin en ese momento. Si se hubiera generado una interrupcin se mantiene pendiente y se examinar luego una vez que se hayan habilitado nuevamente. Ocurre una interrupcin, se inhabilitan, se gestiona la misma y luego se habilitan otra vez. Por lo tanto las interrupciones se manejan en un orden secuencial estricto.

Interrupciones mltiples (2)


Definir prioridades
Una interrupcin de prioridad ms alta puede interrumpir a un gestor de interrupcin de prioridad menor. Cuando se ha gestionado la interrupcin de prioridad ms alta, el procesador vuelve a las interrupciones previas (de menor prioridad). Terminadas todas las rutinas de gestin de interrupciones se retoma el programa del usuario.

13/08/2012

Procesamiento de interrupciones secuenciales


Programa de usuario Gestor de interrupcin X

Gestor de interrupcin Y

Procesamiento de interrupciones anidadas (priorizacin)


Programa de usuario Gestor de interrupcin X

Gestor de interrupcin Y

13/08/2012

Reconocimiento de interrupciones
Interrupciones multinivel
Cada dispositivo que puede provocar interrupcin tiene una entrada de interrupcin conectada a la CPU. Es muy sencillo, pero muy caro.

Linea de interrupcion nica


Una entrada de interrupcin a la que estan conectados todos los dispositivos. Tiene que preguntar a cada dispositivo si ha producido la interrupcion (tcnica Polling).

Reconocimiento de interrupciones (2)


Interrupciones vectorizadas
El dispositivo que quiere pedir interrupcin ademas de la seal de interrupcin, debe colocar en el bus de datos un identificador (vector). Lo puede poner el perifrico directamente, o bien un controlador de interrupciones (que se ocupa de todo).

10

13/08/2012

Escenario de trabajo
El procesador tiene una nica entrada de interrupciones. Si tenemos varios productores de interrupciones Cmo lo solucionamos?
Dispositivo controlador de interrupciones (PIC)

Conexionado
Dispositivos externos

IR0 IR7

Int PIC IntA

Procesador

Memoria Vectores Bus del sistema

11

13/08/2012

Interrupciones del MSX88


Hardware
Lnea INT
Como respuesta de reconocimiento INTA

Lnea NMI
Su proceso de atencin es por salto indirecto

Software
Instruccin INT xx
Para retorno debe usarse la instruccin IRET

Proceso de atencin vectorizado

Tabla de vectores de Interrupcin


Nexo entre tipo de interrupcin (0...255) y el procedimiento designado para atenderla. Cada entrada es una doble palabra (4 bytes).
Direccin del procedimiento que brinda el servicio. Ej: 0000yyyy, donde yyyy es la direccin lgica/fsica.

Vectores preasignados
Tipo Tipo Tipo Tipo 0 3 6 7 finaliza ejecucin de programa punto de parada para depuracin/seguimiento lectura de entrada std. Requiere el uso de BX. escritura de salida std. Requiere BX y AL

12

13/08/2012

Controlador de Interrupciones
Registros internos PIC EOI: Reg comandos
Para fin de int escribir 20H

IMR: mscara de int


enmascara con 1

IRR: peticin de int


Indica con bit en 1

ISR: int en servicio


Indica con bit en 1

INT0...INT7
c/u con su vector

Conexionado y direccionamiento
Los registros internos del PIC se sitan a partir de la direccin 20H. Son accedidos con operaciones lectura y escritura en el espacio de E/S (IN y OUT). Interrupciones hardware asignadas
INT0 INT1 INT2 INT3 INT4 tecla F10 Timer Handshake DMA a INT7 no usadas

13

13/08/2012

Referencias
William Stallings, Captulo 3. MSX88, Manual de usuario.

14

Das könnte Ihnen auch gefallen