Está en la página 1de 7

UNIVERSIDAD DE GUADALAJARA

CENTRO UNIVERSITARIO DE CIENCIAS EXACTAS E INGENIERÍAS


DIVISIÓN DE TECNOLOGÍAS PARA LA INTEGRACIÓN CIBER-HUMANA
PROGRAMACIÓN DE SISTEMAS EMBEBIDOS

ACTIVIDAD 13 – TIPOS DE INTERRUPCIONES Y SUS VECTORES

Presenta
Cortés Jacinto Axel David

Profesora de la Asignatura
Dra. Alicia García Arreola

Fecha
7 de abril de 2023

Guadalajara, Jalisco; abril, 2023


Una interrupción de programa se usa para manejar diversas situaciones que requieren una salida
de la secuencia normal del programa. Una interrupción transfiere el control del programa que
se está ejecutando a otro programa auxiliar, rutina de atención a la interrupción, como
consecuencia de una petición generada externa o internamente. El control vuelve al programa
original después de que la rutina de atención a la interrupción se ha ejecutado. Las rutinas de
atención a las interrupciones se caracterizan por:
• La interrupción se inicia en un punto impredecible del programa por una señal externa o
interna, en lugar de ejecutarse por una instrucción.
• La dirección de la rutina de atención que procesa la petición de interrupción se determina
por el hardware, en lugar de un campo de dirección de una instrucción.
• En respuesta a una interrupción, es necesario almacenar la información que contienen
todos o algunos de los registros del procesador, en lugar de almacenar solamente el
contador del programa.
Después de que el procesador ha sido interrumpido y la rutina de atención a la interrupción se
ha ejecutado, el procesador debe volverse exactamente al mismo estado que tenía antes de ser
interrumpido. Sólo si ocurre esto, el programa podrá seguir ejecutándose como si nada hubiera
sucedido. El estado del procesador al final de la ejecución de una instrucción se determina a
partir del contenido del conjunto de registros. El PSR (Program Status Registers), además de
contener información de los bits de status, puede especificar que interrupciones están permitidas
y si el sistema está en modo de usuario o en modo supervisor. La mayoría de los procesadores
tienen residente un sistema operativo que controla y supervisa el resto de programas. Si el
procesador está ejecutando un programa que es parte del sistema operativo, el procesador se
coloca en modo supervisor, en el que solo ciertas instrucciones tienen privilegios y solo se
pueden ejecutar en modo supervisor. El procesador esta en modo de usuario cuando se ejecutan
programas de usuario, en cuyo caso no se pueden ejecutar instrucciones con privilegios. El modo
del procesador en un instante dado se determina a partir de un bit o bits especiales del PSR.
Algunos procesadores solo almacenan el contador del programa cuando responden a una
interrupción. En dichos procesadores, el programa que realiza el procesado de los datos para dar
servicio a la interrupción debe incluir instrucciones para almacenar los contenidos importantes
del conjunto de registros. Otros procesadores almacenan el contenido de todos sus registros
automáticamente en respuesta a una interrupción. Algunos procesadores tienen dos conjuntos

Guadalajara, Jalisco; abril, 2023


de registros, de forma que cuando el programa conmuta del modo usuario al modo supervisor,
como respuesta de una interrupción, no es necesario almacenar el contenido de los registros del
procesador puesto que cada modo utiliza su propio conjunto de registros.
El procedimiento hardware para procesar interrupciones es muy similar a la ejecución de una
instrucción de llamada a subrutina. El contenido del conjunto de los registros del procesador se
almacena temporalmente en la memoria, típicamente en la memoria de pila y la dirección de la
primera instrucción de la rutina de atención a la interrupción se almacena en el PC. La dirección
de la rutina de atención a la interrupción la escoge el hardware. Algunos procesadores asignan
una posición de memoria para guardar la dirección de la rutina de atención, dicha rutina debe
determinar la fuente de la interrupción y proceder a atenderla. Otros procesadores asignan una
posición de memoria aparte para cada una de las posibles fuentes de interrupción. A veces, la
propia fuente de interrupción de hardware proporciona la dirección de comienzo de la rutina de
atención.
Tipos de interrupciones
• Internas
• Externas
• Software
Las interrupciones externas proceden de dispositivos de entrada y salida, de temporización de
circuito que monitorizan la fuente de alimentación o de cualquier fuente externa. Las situaciones
que provocan interrupciones son peticiones de dispositivos I/O que solicitan una transferencia
de datos, la no finalización de un evento (time-out) o una amenaza de fallo de alimentación. La
interrupción de time-out puede ocurrir cuando hay un bucle sin fin que excede cierto tiempo.
Una interrupción por fallo de alimentación puede tener en su rutina de atención algunas
instrucciones, pocas, que transfiera la información de todos los registros en una memoria no
volátil en pocos milisegundos antes de que caiga la alimentación.
Las interrupciones internas surgen del uso erróneo de una instrucción o dato. A las instrucciones
internas también se les llama traps. Ejemplos de estas interrupciones causadas por
circunstancias internas son: overflow aritmético, un intento de división por cero, un código de
operación no válido, un overflow de la memoria de pila o una violación de protección. Esta
última se produce cuando hay un intento de acceso a un área de la memoria a la que el programa

Guadalajara, Jalisco; abril, 2023


en curso no puede acceder. Las rutinas de atención que procesan las interrupciones internas
determinan las medidas correctivas que se deben de tomar en cada caso.
Las interrupciones externas e internas son iniciadas por el hardware del procesador. Por el
contrario, una interrupción de software se inicia mediante la ejecución de una instrucción. La
interrupción software es una instrucción especial de llamada que se comporta como una
interrupción en lugar de una llamada a subrutina. Se puede utilizar por el programador para
iniciar una interrupción en un punto concreto del programa. El uso típico de esta interrupción se
asocia con una instrucción de llamada del sistema. Esta instrucción proporciona un medio para
cambiar de modo usuario a modo operación. Ciertas operaciones dentro del procesador se
pueden efectuar mediante el sistema operativo solo en modo supervisor. Por ejemplo, una
subrutina compleja de entrada o salida se hace en modo supervisor. Por otro lado, un programa
escrito por el usuario debe correr en modo usuario. Cuando hay una petición de transferencia de
I/O, el programa de usuario provoca una interrupción de software, la cual almacena el contenido
del PSR (en modo usuario), carga el nuevo contenido del PSR (en modo supervisor), e inicia la
ejecución de un programa del supervisor. La llamada del programa debe pasar información al
sistema operativo para especificar la tarea concreta que está solicitando.
Vectores de interrupción
Los vectores de interrupción y la tabla de vectores son elementos imprescindibles para
comprender las interrupciones de hardware y de software. La tabla de vectores de interrupción
se encuentra en los primeros 1024 bytes de memoria, en las direcciones 000000H-0003FFH.
Esta tabla contiene 256 vectores de interrupción de 4 bytes distintos. Un vector de interrupción
contiene la dirección (segmento y desplazamiento) del procedimiento del servicio de
interrupciones.
La ilustración 1 muestra la tabla de vectores de interrupción para el microprocesador. Intel
reserva los primeros 32 para usarlos en diversos miembros de su familia de microprocesadores.
Los últimos 224 vectores están disponibles para el usuario. Cada vector tiene 4 bytes de longitud
en el modo real y contiene la dirección inicial del procedimiento de servicio de interrupciones.
Los primeros dos bytes del vector contienen la dirección de desplazamiento y los últimos dos
bytes contienen la dirección de segmento.
La siguiente lista describe la función de cada interrupción dedicada en el microprocesador:

Guadalajara, Jalisco; abril, 2023


• Tipo 0: El error de división
se presenta cada vez que se
desborda el resultado de una
división o cuando se produce un
intento de dividir entre cero.
• Tipo 1: Paso individual o
atrapamiento ocurre después de la
ejecución de cada instrucción, si
el bit de bandera de atrapamiento
(TF) está activo. Al aceptar la
interrupción el bit TF se borra, de
manera que el procedimiento de
servicio de interrupciones se
ejecute a toda su velocidad.
• Tipo 2: La interrupción no
enmascarable se produce cuando
se coloca un 1 lógico en la
terminal de entrada NMI que va
al microprocesador. No
enmascarable significa que la
entrada no puede deshabilitarse.
• Tipo 3: Una instrucción
especial de un byte (INT 3) que
Ilustración 1 - a) Tabla de vectores de interrupción para el procesador b)
Contenido de un vector de interrupción utiliza el vector para acceder a su
procedimiento de servicio de
interrupciones. La instrucción INT 3 se utiliza a menudo para almacenar un punto de
interrupción en un programa, para su depuración.
• Tipo 4: Desbordamiento es un vector especial que se utiliza con la instrucción INTO.
Esta instrucción interrumpe el programa su existe una condición de desbordamiento,
como lo indica la bandera de desbordamiento (OF).

Guadalajara, Jalisco; abril, 2023


• Tipo 5: La instrucción BOUND compara un registro con los límites almacenados en la
memoria. Si el contenido del registro es mayor o igual que la primera palabra en
memoria, y menor o igual que la segunda palabra, no se produce interrupción ya que el
contenido del registro está dentro de los límites. Si el contenido del registro está fuera
de los limites se produce una interrupción tipo 5.
• Tipo 6: Una interrupción de código invalido se produce cada vez que se encuentra un
código de operación no definido en el programa.
• Tipo 7: La interrupción coprocesador no disponible se produce cuando no se encuentra
un coprocesador en el sistema, como lo indican los bits de control del coprocesador de
la palabra de estado del equipo (MSW o CR0). Si se ejecuta una instrucción ESC o
WAIT y no se encuentra el coprocesador, se produce una interrupción de tipo 7.
• Tipo 8: Una interrupción doble fallo se activa cada vez que se producen dos
interrupciones separadas durante la misma instrucción.
• Tipo 9: La interrupción saturación del segmento del coprocesador se produce si el
operando de memoria de la instrucción ESC (código de operación del coprocesador) se
extiende más allá de la dirección de desplazamiento FFFFH en modo real.
• Tipo 10: Una interrupción segmento de estado de tarea inválido se produce en el modo
protegido si el TSS es invalido debido a que el campo limite de segmento no es 002BH
o mayor. En la mayoría de los casos se debe a que el TSS no se inicializa.
• Tipo 11: La interrupción segmento no está presente se produce cuando el bit P (P=0) en
modo protegido en un descriptor indica que el segmento no está presente o no es válido.
• Tipo 12: La interrupción saturación del segmento de pila se produce si el segmento de
pila no está presente (P=0) en el modo protegido o si excede el límite del segmento de
pila.
• Tipo 13: La interrupción fallo de protección general se produce en la mayoría de las
violaciones de protección en el sistema.
• Tipo 14: Las interrupciones fallo de página ocurren para cualquier fallo de página de
acceso a memoria o al código.
• Tipo 16: La interrupción error del coprocesador se produce cada vez que ocurre un error
en el coprocesador (ERROR=0) para las instrucciones ESC o WAIT para los
procesadores de INTEL 80386, 80486 y Pentium-Pentium 4.
Guadalajara, Jalisco; abril, 2023
• Tipo 17: Las interrupciones comprobaciones de alineación indican que se están
direccionando datos de tipo palabra y doble palabra en una posición de memoria impar,
o en una posición incorrecta para el caso de una doble palabra.
• Tipo 18: Una comprobación de equipo activa una interrupción en modo de
administración de memoria del sistema para los procesadores Pentium-Pentium 4.

Bibliografía

[1] M. M. Mano y C. R. Kime, Fundamentos de diseño lógico, Madrid: Pearson , 2005.


[2] B. B. Brey, Microprocesadores Intel, Ciudad de México: Pearson, 2006.

Guadalajara, Jalisco; abril, 2023

También podría gustarte