Documente Academic
Documente Profesional
Documente Cultură
interrupciones
Control: Se utiliza para activar el periférico e indicarle qué hacer. Por ejemplo, puede
indicarse a una unidad de cinta magnética que se obtiene o que avance al registro
siguiente. Estas órdenes son específicas del tipo particular de periférico.
Test: Se utiliza para comprobar diversas condiciones de estado asociadas con el módulo
de E/S y sus periféricos. El procesador podrá comprobar si el periférico en cuestión está
conectado y dispone para su uso. También podrá saber si la operación de E/S más reciente
ha terminado y si se ha producido algún error.
Lectura: Hace que el módulo de E/S capte un dato de un periférico y lo sitúe en un buffer
interno. Después, el procesador puede obtener el dato solicitando que el módulo de E/S
lo ponga en el bus de datos.
Escritura: Hace que el módulo de E/S capte un dato (byte o palabra) del bus de datos y
posteriormente lo transmita al periférico.
INSTRUCCIONES DE E/S
Las instrucciones se pueden hacer corresponder fácilmente con las órdenes de E/S, y a menudo
hay una simple relación de uno a uno. La forma de la instrucción depende de la manera de
direccionar los dispositivos externos.
Normalmente, habrá muchos dispositivos do E/S conectados al sistema a través de los módulos
de E/S. Cada dispositivo tiene asociado un identificador único o dirección. Cuando el procesador
envía una orden de E/S, la orden contiene la dirección del dispositivo deseado. Asi, cada módulo
de E/S debe interpretar las líneas de dirección para determinar si la orden es para él.
Cuando el procesador, la memoria principal, y las E/S comparten un bus común, son posibles dos
modos do direccionamiento: asignado en memoria (memory-mapped) y aislado. Con las E/S
asignadas en memoria, existe un único espacio de direcciones para las posiciones de memoria y
los dispositivos de E/S. El procesador considera a los registros de estado y de datos de los módulos
de E/S como posiciones de memoria y utiliza las mismas instrucciones máquina para acceder
tanto a memoria como a los dispositivos de E/S. Asi. por ejemplo, con diez líneas de dirección,
se puede acceder a un total de 210 = 1024 posiciones de memoria y direcciones de E/S, en cualquier
combinación.
Con las E/S asignadas en memoria, se necesita una sola línea de lectura y una sola línea de
escritura en el bus. Alternativamente, el bus puede disponer de líneas de lectura y escritura en
memoria junto con líneas para órdenes de entrada y salida. En este caso, las líneas de órdenes
especifican si la dirccción se refiere a una posición de memoria o a un dispositivo de E/S. El rango
completo de direcciones está disponible para ambo. De nuevo, con diez líneas de dirección el
sistema puede soportar ahora 1024 posiciones de memoria y 1024 direcciones de E/S. Puesto que
el espacio de direcciones de E/S está aislado del de memoria, éste se conoce con el nombre de
E/S aislada.
En la parte “a” de la siguiente figura se muestra cómo podría ver el programador la interfaz con
un dispositivo de entrada sencillo, tal cono un teclado, cuando se utiliza E/S asignada en memoria.
Se asumen direcciones de diez bits, con una memoria de 512 palabras (posiciones 0-511) y hasta
512 direcciones de E/S (posiciones 512-1023). Se dedican dos direcciones a la entrada de teclado
desde un terminal concreto. La dirección 516 se refiere al registro de datos y la dirección 517 al
registro de estado, que además funciona como registro de control para recibir las órdenes del
procesador. Obsérvese cómo el procesador ejecuta un bucle hasta que el byte de datos está
disponible.
Con E/S aislada los puertos de E/S son accesibles mediante una orden específica de E/S, que
activa las líneas de órdenes de E/S del Bus.
La mayor parte de procesadores disponen de un conjunto relativamente grande de instrucciones
distintas para acceder a memoria. Si se utiliza E/S aislada, solo existen unas pocas instrucciones
de E/S. Por eso, una ventaja de la E/S asignada en memoria es que puede utilizar este amplio
repertorio de instrucciones, permitiendo una programación más eficiente. Una desventaja es que
se utiliza parte del valioso espacio de direcciones de memoria. Tanto la E/S asignada en memoria
como la aislada se usan comúnmente.
De entrada, el procesador no sabe en qué momento se producirá esta petición; por lo tanto, ha de
comprobar periódicamente si el módulo de E/S pide la atención del procesador, sin que ello afecte
a la dedicación que tiene. Esta comprobación el procesador la hace dentro del ciclo de ejecución
de cada instrucción. Es una operación muy rápida que incluso se puede encabalgar con el
comienzo de la lectura de la instrucción siguiente para que no afecte al rendimiento del
procesador. Los procesadores que han de gestionar interrupciones deben tener en el ciclo de
ejecución de instrucción una fase de comprobación de interrupciones.
Ciclo de ejecución de instrucción
1) Lectura de Instrucción.
2) Lectura de operandos fuente.
3) Ejecución de la instrucción y almacenamiento del operando destino.
4) Comprobación de interrupciones.
En el momento en el que el procesador reconoce que ha llegado una petición de interrupción,
empieza un ciclo de reconocimiento de interrupción para detener la ejecución del programa
actual y transferir el control a la rutina de servicio de la interrupción (RSI), rutina que accede
al módulo de E/S correspondiente para llevar a cabo la transferencia de datos y, una vez se acabe
la ejecución de la RSI, continuar la ejecución del programa que habíamos detenido haciendo el
retorno de interrupción.
Como hacemos la encuesta de todos los módulos por programa, es muy flexible
determinar las prioridades porque podemos implementar diferentes políticas de
prioridades simplemente modificando el código de la RSI.
No hay que hacer cambios en el hardware.
Las desventajas principales son que:
La ejecución del código para hacer la encuesta de los módulos y la gestión de prioridades
es muy costosa en tiempo, ya que estamos ejecutando un pequeño programa que accede
a todos los módulos de E/S conectados a la línea.
Como hay una sola línea de petición de interrupción, se tienen que inhibir las
interrupciones y, por lo tanto, mientras atendemos una petición no podemos atender otras,
aunque sean más prioritarias.
SISTEMA CON UNA LÍNEA DE PETICIÓN DE INTERRUPCIÓN Y UNA LÍNEA DE
RECONOCIMIENTO CON ENCADENAMIENTO
Los módulos de E/S se conectan al procesador con una línea de petición de interrupción (INT) en
colector abierto y una línea de reconocimiento de interrupción (INTA) que genera el procesador
para indicar al módulo de E/S que se atiende la petición que ha hecho. Esta señal INTA se propaga
mediante los módulos.
Es un sistema de conexión que permite, por una parte, reducir el tiempo necesario para gestionar
las prioridades si más de un módulo de E/S ha pedido atención al mismo tiempo y, por otra parte,
identificar qué periférico pide atención, sin tener que ejecutar un programa de encuesta que accede
a todos los módulos de E/S.
La gestión de una interrupción en este sistema es análoga a la gestión de una interrupción con un
único módulo de E/S, y varía el ciclo de reconocimiento de la interrupción para gestionar las
prioridades si más de un módulo de E/ S ha pedido atención al mismo tiempo e identificar qué
periférico demanda atención.
SISTEMA CON LÍNEAS INDEPENDIENTES DE PETICIÓN DE INTERRUPCIONES Y
DE RECONOCIMIENTO
En este sistema tenemos una línea de petición de interrupción y una de reconocimiento de
interrupción para cada módulo de E/S. De esta manera conseguimos que la identificación del
periférico sea inmediata y permitimos la nidificación de interrupciones, es decir, una
interrupción puede interrumpir la ejecución de una RSI que atiende una petición menos prioritaria
que se ha producido con anterioridad.
Enmascaramiento individual.
Enmascaramiento por nivel
SISTEMA CON CONTROLADORES DE INTERRUPCIONES
En un sistema con controladores de interrupciones se añade un nuevo elemento especializado para
gestionar las peticiones de interrupción que denominamos controlador de interrupciones. Las
líneas de petición de interrupción y de reconocimiento de cada módulo de E/S están conectadas
al controlador de interrupciones. De esta manera el procesador solo debe tener una línea de
petición de interrupción y una de reconocimiento conectadas al controlador de interrupción para
gestionar las peticiones provenientes de los módulos de E/S.
Las funciones del controlador de interrupción son las siguientes:
• Definir una política de prioridades para los módulos de E/S conectados al controlador.
• Identificar qué módulo de E/S pide atención e informar el procesador.
Las principales ventajas de este sistema con un controlador de interrupción son que la
identificación del periférico es bastante rápida y la gestión de prioridades flexible, y también que
el procesador solo necesita disponer de una línea INT y una INTA para gestionar múltiples
módulos de E/S.
La desventaja principal es que a causa de la gestión de prioridades que hace el controlador no se
puede hacer la salvaguarda del nivel de ejecución de manera automática, sino que se debe realizar
ejecutando un pequeño programa que acceda al controlador de interrupciones y hace el proceso
de salvaguarda del estado más lento.
Bibliografía
Orenga, M. A. (s.f.). Sistema de entrada / salida. En G. E. Manonellas. Universidad Oberta de
Catalunya.