Professional Documents
Culture Documents
Índice
1. Introducción a la E/S
2. Estructura y funciones del sistema de E/S
3. Sincronización de la E/S
4. E/S programada
5
5. E/S por interrupción
E/S por interrupción
EC - IS
1
ec
T3
Necesidad de la E/S
Para que un computador pueda ejecutar un programa debe ser ubicado previamente en la
memoria, junto con los datos sobre los que opera, y para ello debe existir una unidad funcional
i j t l d t b l ll d b i ti id d f i l
de entrada de información capaz de escribir en la memoria desde el exterior.
Para conocer los resultados de la ejecución de los programas, los usuarios deberán poder leer
j p g , p
el contenido de la memoria a través de otra unidad de salida de datos.
La unidad de Entrada/Salida (E/S) soporta estas funciones, realizando las comunicaciones del
computador con el mundo exterior a través de una variedad de periféricos
t d l d t i t é d i d dd ifé i
CPU MEMORIA
5 5 5 5 5
8 8 8 8 8
0 0 0 0 0
8
0
8
5
8
0
8
5
8
0
8
5
8
0
8
5
8
0
8
5
8 8 8 8 8
EC - IS
ec
T3
Ejemplos de periféricos
EC - IS
ec
T3
Tipos de periféricos
Dispositivos de presentación de datos.
– Interaccionan con los usuarios, transportando datos entre éstos y la máquina
I t i l i t t d d t t ét l á i
– Ratón, teclado, pantalla, impresora, etc.
Dispositivos de comunicación con otros procesadores.
– Permiten la comunicación con procesadores remotos a través de redes
– Tarjeta de red, módem...
Dispositivos de adquisición de datos.
Dispositivos de adquisición de datos
– Permiten la comunicación con sensores y actuadores que operan de forma
autónoma.
– Se utilizan en sistemas de control automático de procesos por computador
– Suelen incorporar conversores de señales A/D y D/A.
Dispositivos de almacenamiento de datos.
– Forman parte de la jerarquía de memoria: interactúan de forma autónoma
Forman parte de la jerarquía de memoria: interactúan de forma autónoma
con la máquina
– Discos magnéticos y cintas magnéticas…
EC - IS
4
ec
T3
Parámetros principales de los dispositivos periféricos
Ancho de banda: cantidad de datos que se pueden transferir por unidad de
tiempo (medido en Mbit/s, MB/s…)
– Los dispositivos de almacenamiento (discos SATA) y red (Gigabit Ethernet)
p p
proporcionan un gran ancho de banda
g
Latencia: tiempo requerido para obtener el primer dato (medido en
segundos)
– La latencia de la mayoría de los dispositivos de E/S es muy alta en
comparación con la velocidad del procesador
EC - IS
5
ec
T3
ec
T3
A pesar de sus diferencias, los dispositivos periféricos presentan las funciones comunes:
Necesidad de una identificación única del dispositivo por parte de la CPU
Capacidad de envío y/o recepción de datos
Sincronización de la transmisión, exigida por la diferencia de velocidad de los
dispositivos de E/S con la CPU
dispositivos de E/S con la CPU
EC - IS
ec
T3
Funciones básicas de los dispositivos periféricos
Las 3 funciones comunes de los dispositivos periféricos determinan su estructura básica:
línea s de control
línea s de datos
línea s de direcciones
envio/
recep ción
Registros de
estado y control
identificación Circuitos de
sincronización
Dispositivo periférico
Estas funciones básicas se pueden realizar a través del bus del sistema que conecta la
memoria y la CPU, o bien se puede utilizar un bus específico para las operaciones de E/S
memoria y la CPU, o bien se puede utilizar un bus específico para las operaciones de E/S
EC - IS
Estas alternativas se traducen en dos formas de organización de los espacios de direcciones
ec
T3
Espacio de direcciones de E/S (1)
/ ( )
Dos alternativas:
1) Espacio de direcciones unificado con el espacio de memoria
Existe un único bus al que se conectan los dispositivos de E/S y la memoria
La memoria y los dispositivos de E/S comparten el espacio de direcciones
L i l di iti d E/S t l i d di i
bus del sistema
Unidad Unidad
CPU Memoria de E/S 1 de E/S n
En estos procesadores no existen instrucciones específicas de E/S
Se utilizan las instrucciones de referencia a memoria tipo load/store
S tili l i t i d f i i ti l d/ t (l / )
(lw/sw)
LOAD Ri, dir_E/S (CPU Periférico)
STORE Ri, dir
, _E/S (Periférico
/ ( CPU))
Ejemplo: ARM
Cada registro de un módulo de E/S es una dirección de memoria dentro de un rango
reservado
EC - IS
9
ec
T3
Espacio de direcciones de E/S (2)
2) Espacio de direcciones independiente del de memoria (buses independientes)
Existen buses independientes para la memoria y los dispositivos de E/S
bus de memoria
CPU
Memoria
bus de E/S
En estos procesadores sí existe un grupo de instrucciones específico para la E/S
Ejemplo: Intel x86
Cada registro de un módulo de E/S es un puerto
g / p
EC - IS
10
ec
T3
Módulos de E/S y controladores
Para solventar la variedad de dispositivos periféricos, la unidad de E/S de un computador se
organiza en torno a dos tipos de elementos:
Módulos de E/S: soportan las características comunes a muchos dispositivos
Controladores de dispositivo: son específicos para cada periférico
8259
82
59
DISCO
Los módulos de E/S permiten que el procesador gestione una amplia gama de dispositivos
periféricos
El controlador se adapta a las peculiaridades específicas del periférico, actuando sobre
elementos electromecánicos (impresoras de línea), sobre elementos ópticos (CD‐ROM), o
magnéticos (discos), etc.
g ( )
EC - IS
ec
T3
Estructura de un módulo de E/S
Se conecta al procesador a través de un conjunto de líneas de datos, dirección y control.
Los datos que se transfieren se almacenan temporalmente en un registro de datos.
El estado del módulo se refleja en los bits de un registro de estado.
El registro de control permite programar diferentes funciones en el módulo.
Datos
Líneas Registro de datos Lógica de
de Datos interfaz con Estado
el dispositivo
ex terno Control
Registro de estado
Registro de control
Líneas de
dirección Datos
Lógica de
Líneas Lógica interfaz con Estado
de control de E/S el dispositivo
ex terno Control
EC - IS
12
ec
T3
Módulos de E/S serie y paralelo
ó /
La conexión entre módulo y dispositivo se puede realizar en forma serie o paralela
La E/S
/ serie
Se emplea cuando módulo y dispositivo están a una distancia media o larga y el coste del
medio de transmisión resulta importante
Utiliza una única línea de transmisión
La transmisión
i ió tiene
i l
lugar h i d que la
haciendo l línea
lí adquiera
d i sucesivamente
i a lo
l largo
l d l
del
tiempo el estado de cada uno de los bits constitutivos del mensaje
El tiempo asignado a cada bit determina la velocidad de transmisión en bits/segundo
Módulo Dispositivo
de periférico
E/S
La E/S paralela
Se utiliza para conectar módulos de E/S que se encuentran relativamente cerca
del dispositivo periférico
Utiliza un conjunto de líneas por las que se transmiten en paralelo los bits del mensaje
Módulo Dispositivo
EC - IS
de periférico
E/S
13
ec
T3
Sincronización: mecanismos básicos
Las diferencias de velocidad entre la CPU y los periféricos de E/S, y la no
previsibilidad del tiempo de respuesta de estos últimos, hace necesario un
previsibilidad del tiempo de respuesta de estos últimos, hace necesario un
mecanismo de sincronismo que permita coordinar adecuadamente las transferencias
de datos entre ambas unidades
Antes de enviar/recibir datos a/desde un periférico hay que asegurarse de que el
Antes de enviar/recibir datos a/desde un periférico hay que asegurarse de que el
dispositivo está preparado para realizar la transferencia, es decir, hay que
sincronizarlo
Existen dos mecanismos básicos para sincronizar las operaciones de E/S con las de
la CPU: sincronización por programa (E/S programada) y sincronización por
interrupción
La E/S programada es la más sencilla de implementar, pero presenta el
inconveniente de la pérdida de tiempo: el computador no realiza trabajo útil en el
bucle de espera
p
La E/S por interrupción aprovecha mejor el tiempo de CPU, permitiendo la
ejecución concurrente de un programa principal y la operación de E/S
EC - IS
14
ec
T3
Operación básica Orden de
lectura al
CPU E/S
módulo de E/S
Cada vez que la CPU quiere realizar
C d l CPU i li
Leer el estado E/S CPU
una transferencia: del módulo
1. Entra en un bucle en el que lee
una y otra vez el registro de
l i d
Bucle de
estado del periférico (encuesta no ¿estado indica
preparado? sincronización
o “polling”) hasta que esté
preparado para realizar la
preparado para realizar la sii
no
¿final?
si
EC - IS
ec
T3
Problemas de la E/S programada
La CPU no hace trabajo útil durante el bucle de espera
• Con dispositivos lentos el bucle podría repetirse miles/millones de veces
La dinámica del programa se detiene durante la operación de E/S
• Ejemplo: en un vídeo‐juego no se puede detener la dinámica del juego a
Ejemplo: en un vídeo juego no se puede detener la dinámica del juego a
espera que el usuario pulse una tecla
Dificultades para atender a varios periféricos
• Mientras se espera a que un periférico esté listo para transmitir, no se puede
atender a otro
EC - IS
16
ec
T3
d j ?
¿Hay margen de mejora? Orden de
lectura al
CPU E/S
módulo de E/S
E/S programada:
E/S programada:
– El bucle de SINCRONIZACIÓN ejecuta Leer el estado E/S CPU
instrucciones inútiles del módulo
¿Y si el dispositivo avisase a la CPU
cuando haya terminado su operación? no ¿estado indica
– La CPU podría hacer trabajo útil preparado?
mientras el periférico hace la operación
solicitada si
no
¿final?
EC - IS
si
ec
T3
E/S
E/S mediante interrupción
di t i t ió
Orden de lectura CPU E/S
al módu lo de
E/S
1. La CPU hace la petición de operación de Ejecutar otra tarea
E/S y pasa a ejecutar otros programas
No existe bucle de espera Leer el estado
Interrupción
del módulo
E/S CPU
2. Cuando un periférico está listo para
transmitir se lo indica a la CPU activando no
una LÍNEA DE PETICIÓN INTERRUPCIÓN ¿es tad o indica
preparado?
Error
si
3. Cuando la CPU recibe una señal de
petición de interrupción salta a una Leer el dato E/S CPU
del módulo
RUTINA DE TRATAMIENTO DE
RUTINA DE TRATAMIENTO DE de E/S
INTERRUPCIONES (RTI), que se encarga
de atender al periférico que interrumpió Escribir el CPU Memoria
y realizar la operación de E/S
y realizar la operación de E/S dato en
memoria
no
¿final?
fi l?
EC - IS
si
ec
T3
Concepto de interrupción (1)
Una interrupción viene determinada por la ocurrencia de una señal externa que
provoca la bifurcación a una dirección especifica de memoria interrumpiendo
provoca la bifurcación a una dirección especifica de memoria, interrumpiendo
temporalmente la ejecución del programa principal
A partir de esa dirección se encuentra la rutina de tratamiento
p que se encarga de
q g
realizar la operación de E/S propiamente dicha, devolviendo después el control al
punto interrumpido del programa principal
Programa principal
I1
I2
. señal de interrupción
.
.Ii
Ii+1 línea de interrupción
.
.
.In
Rutina de tratamiento
i1
i2
.
.
EC - IS
im
ec
T3
Concepto de interrupción (2)
Una interrupción es como un salto a subrutina (rutina de tratamiento) ocasionado por
una señal externa, y no por una instrucción del programa.
Las interrupciones eliminan los tiempos muertos de consulta de la E/S programada
La implementación de un sistema de interrupciones implica introducir una fase de
consulta
l ded las
l líneas
lí d interrupción
de ó all final
f l ded la
l ejecución
ó de
d cada
d instrucción
ó
En un procesador sin sistema de interrupciones, se podría conseguir un efecto similar
introduciendo una instrucción de consulta y la correspondiente de salto sobre el valor de la
consulta,
l detrás
d á de
d cadad instrucción
i ió útil
ú il del
d l programa
Esta solución garantizaría la respuesta al dispositivo de E/S en el momento que pasa
a estado disponible, al tiempo que la CPU ejecuta instrucciones útiles del programa
El precio a pagar sería el recargo introducido por la ejecución de las parejas
de instrucciones (consulta y salto) detrás de cada instrucción útil del programa
UnU sistema
i d interrupciones
de i i podemos
d verlo
l como la l integración
i ió en hardware
h d d l
del
supuesto software anterior, es decir, la integración de la consulta y posible salto dentro de la
ejecución de cada instrucción del repertorio
EC - IS
ec
T3
Generalización de las interrupciones: excepciones
Interrupción de E/S:
– Señal externa al procesador que provoca la detención del programa en curso para que la CPU
realice otra actividad. El mecanismo de interrupciones fue motivado por la E/S aunque
posteriormente se generalizó a eventos producidos internamente en el procesador
Extensión de una interrupción: Excepción:
– Evento inesperado que provoca un cambio en el flujo de control normal del programa
Ti
Tipos de excepciones:
d i
– Excepciones hardware
• Internas: producidas por la CPU (división por cero, desbordamiento, instrucción ilegal,
dirección ilegal raíz cuadrada de negativos etc )
dirección ilegal, raíz cuadrada de negativos, etc.)
• Externas: producidas por los dispositivos de E/S (Interrupciones de E/S)
– Excepciones software
E i ft (t )
(trap): producidas por la ejecución de instrucciones de la CPU
d id l j ió d i t i d l CPU
EC - IS
21
ec
T3
Diferencias entre excepciones e interrupciones de E/S
Una excepción interna se produce
p p Una interrupción
p se produce
p
debido a la ejecución (incorrecta) de debido a una señal externa al
instrucciones del programa procesador
– Siempre
Siempre que se ejecute esa
que se ejecute esa – Es
Es un evento asíncrono, que avisa
un evento asíncrono que avisa
instrucción se producirá la al procesador de que necesita su
excepción. atención.
– Ejemplo del ARM:
Ejemplo del ARM: – Ejemplo de interrupción debida a
Ejemplo de interrupción debida a
• Si se intenta acceder a un dato de una operación de entrada/salida:
tamaño palabra usando una • En el ejemplo de lectura de
dirección que no es múltiplo de 4 se
dirección que no es múltiplo de 4 se pulsadores se podría programar el
pulsadores se podría programar el
produce un DATA ABORT controlador para que cada vez
• El procesador bifurca a la subrutina que se pulse el botón genere una
asociada a esa excepción ISR_Dabort interrupción por IRQ
ldr r0,=0x0a333333
ARM Controlador
l d
str r1,[r0] @ genera Data Abort
EC - IS
IRQ de E/S
ec
T3
Flujo de ejecución de instrucciones cuando se produce una interrupción
Periférico listo para la transmisión
Activa petición interrupción (INTR)
Programa Programa
MEM
BUS
Rutina de Tratamiento de
Interrupción
CPU INTR E/S (La CPU realiza la operación de E/S)
EC - IS
23
ec
T3
Rutina de tratamiento de interrupción
Analogías entre una subrutina y una RTI
– Se
Se rompe la secuencia normal de ejecución
rompe la secuencia normal de ejecución
– Cuando terminan de ejecutarse se debe retornar al punto de ruptura
• Debemos guardar el PC
Diferencias entre una subrutina y una RTI
– En una subrutina el programador sabe en qué punto exacto se rompe la secuencia
– Una RTI puede ejecutarse en cualquier momento, sin control del programador
• Necesario
Necesario guardar el registro de estado y todos los registros que usa la RTI y
guardar el registro de estado y todos los registros que usa la RTI y
restaurarlos al retornar de la RTI
PROGRAMA RTI
Instrucción 1
Instrucción 1 Instrucción 1
Instrucción 1
Instrucción 2 Instrucción 2
Instrucción 3 Instrucción 3
INTR
Instrucción 4 Instrucción 4
Instrucción 5 Instrucción 5
Instrucción 6 ....................
Instrucción 7 RTE
Instrucción 8
EC - IS
Instrucción 9 Instrucción de Retorno
de Interrupción
ec ....................
T3
Eventos en el tratamiento de una interrupción
1 El programa activa el sistema de interrupciones
2 Periférico activa petición 3 CPU termina de ejecutar la instrucción en curso y
interrupción (INTR) comprueba si hay interrupciones pendientes
Programa Programa
RTI 7 CPU continúa con la
4 CPU salva automát. contexto (PC y ejecución del programa
reg. de estado), descapacita las
p y
interrupciones y salta a la RTI
6 CPU capacita las interrupciones,
restaura contexto (PC y reg. estado) y
retorna al programa
5 CPU ejecuta la RTI, durante la cual realiza la
j ,
operación de E/S
EC - IS
ec
T3
Eventos en el tratamiento de una interrupción
1 El
El programa activa el sistema de interrupciones
el sistema de interrupciones
Programa Programa
RTI
Para que pueda producirse una interrupción la CPU debe permitir que un dispositivo le
interrumpa, capacitando las interrupciones:
Localmente: se indica al controlador del dispositivo que puede generar una señal
p q p g
de interrupción
Globalmente: en el registro de estado de la CPU se activa el bit correspondiente a
la línea de interrupción
Ej: registro CPSR del ARM IRQ FIQ
31 8 7 6 5 4 0
N Z C V Q J U n d e f i n e d I F T mode
EC - IS
f s x c
ec
T3
Eventos en el tratamiento de una interrupción
2 Periférico activa petición 3 CPU termina de ejecutar la instrucción en curso y
interrupción (INTR) comprueba si hay interrupciones pendientes
Programa Programa
RTI
CPU E/S
INTR
EC - IS
ec
T3
Comprobación de peticiones de interrupción pendientes
La CPU comprueba si hay interrupciones pendientes (línea INTR activada) al
La CPU comprueba si hay interrupciones pendientes (línea INTR activada) al
final de la ejecución de cada instrucción
– Motivo:
• Sólo es necesario guardar el PC, el reg. de estado y los registros accesibles por
programa (registros de datos y/o direcciones)
• Si se interrumpiese una instrucción en mitad de la ejecución sería necesario guardar el
valor de todos los registros internos de la CPU
valor de todos los registros internos de la CPU
– Reg. de instrucción, registros de dirección de datos, registros de datos de
memoria, etc.
– Salvo para:
Salvo para:
• Instrucciones de larga duración
– Por ejemplo, en instrucción de movimiento múltiple (STM), se comprueba si hay
interrupciones pendientes después de mover cada una de las palabras
interrupciones pendientes después de mover cada una de las palabras
• Interrupciones muy prioritarias
– Por ejemplo, una interrupción por fallo de página, en la que hay que acceder a
disco para traer los operandos en memoria de la instrucción
disco para traer los operandos en memoria de la instrucción
EC - IS
28
ec
T3
Eventos en el tratamiento de una interrupción
Programa Programa
RTI
4 CPU salva automát. contexto (PC y reg. de estado),
descapacita las interrupciones y salta a la RTI
Salvar el estado:
El procesador guarda automáticamente el contexto del programa en ejecución (PC y registro de
estado) en una zona de la pila distinta de la del programa o en registros especiales
t d ) d l il di ti t d l d l it i l
Descapacitar las interrupciones:
En el registro de estado se inhabilitan automáticamente
En el registro de estado se inhabilitan automáticamente las interrupciones por la línea INTR
las interrupciones por la línea INTR
¿Por qué?
Saltar a RTI:
Se obtiene la dirección de la RTI que corresponda al periférico que ha interrumpido
¿Cómo se identifica al periférico?
EC - IS
ec
T3
Inhibición o descapacitación de las interrupciones
Antes de saltar a la RTI es necesario inhibir o descapacitar las interrupciones
– Motivo: Si no se inhiben la CPU puede entrar en un bucle infinito
hb l d b l f
• Cuando se entra en la RTI el periférico todavía no ha desactivado su petición
• Si las interrupciones están capacitadas la CPU detecta una interrupción pendiente y
vuelve saltar a la RTI una y otra vez
y
• Antes de finalizar la RTI hay que asegurarse de que el periférico ha desactivado la línea
de petición INTR
Petición de interrupción (INTR activada)
Programa Programa
INTR activada RTI
Si no descapacitamos
Si no descapacitamos
Salta a RTI
– Alternativas
• Descapacitación
ó global
l b l
– Se inhiben todas las interrupciones ningún otro periférico podrá interrumpir durante la
ejecución de la RTI
• Descapacitación o enmascaramiento selectivo
– Cuando hay varios niveles de interrupción se pueden descapacitar las interrupciones por el
nivel que interrumpe, pero no necesariamente por el resto de niveles
EC - IS
– Véase interrupciones multinivel y anidamiento de interrupciones
30
ec
T3
Eventos en el tratamiento de una interrupción
Programa Programa
RTI
5 La CPU ejecuta la RTI
la RTI:
•Salva en pila todos los registros que utiliza (manual)
•Informa al periférico que se ha reconocido su interrupción
•¿Cómo?
Por software: accediendo al registro de estado o de datos del controlador
Por hardware: activando una señal de reconocimiento de interrupción (INTA)
•Una vez informado el periférico desactiva INTR
•Realiza la operación de E/S con el periférico
•Restaura los registros de datos/direcciones
•Ejecuta la instrucción de retorno de interrupción (RTE)
EC - IS
ec
T3
Eventos en el tratamiento de una interrupción
Programa Programa
RTI 7 CPU
CPU continúa con la
i ú l
ejecución del programa
6 CPU
CPU capacita las interrupciones, restaura
capacita las interrupciones restaura
contexto (PC y reg. estado) y retorna al
programa
Cuestiones planteadas
• ¿Cómo se informa al periférico que se ha reconocido su interrupción?
• ¿Cómo se identifica la fuente de interrupción y, por tanto, la RTI que hay que ejecutar?
• ¿Qué
¿Qué ocurre si se produce una segunda interrupción durante la ejecución de la RTI?
ocurre si se produce una segunda interrupción durante la ejecución de la RTI?
Interrupciones multinivel y anidamiento de interrupciones
EC - IS
ec
T3
Eventos en el tratamiento de una interrupción
1 El programa activa el sistema de interrupciones
2 Periférico activa petición 3 CPU termina de ejecutar la instrucción en curso y
interrupción (INTR) comprueba si hay interrupciones pendientes
P
Programa Programa
RTI 7 CPU continúa con la
4 CPU salva automát. contexto
CPU salva automát contexto (PC y
(PC y
ejecución del programa
reg. de estado), descapacita las
interrupciones y salta a la RTI
6 CPU capacita las interrupciones,
restaura contexto (PC y reg. estado) y
restaura contexto (PC y reg estado) y
retorna al programa
5 CPU ejecuta la RTI, durante la cual:
•Informa al periférico que se ha reconocido su
interrupción (por software o por hardware)
interrupción (por software o por hardware) Cuestiones planteadas
Cuestiones planteadas
El periférico desactiva INTR • ¿Cómo se informa al periférico que se ha reconocido su interrupción?
•Salva en pila todos los registros de datos y/o • ¿Cómo se identifica la fuente de interrupción y, por tanto, la RTI que
direcciones utilizados por la RTI (manual) hay que ejecutar?
•Realiza
Realiza la operación de E/S con el periférico
la operación de E/S con el periférico • ¿Qué ocurre si se produce una segunda interrupción durante la
•Restaura los registros de datos/direcciones ejecución de la RTI?
EC - IS
•Ejecuta la instrucción de retorno de interrupción Interrupciones multinivel y anidamiento de interrupciones
(RTE)
ec
T3
Di
Dirección de la rutina de tratamiento: vectores de interrupción
ió d l ti d t t i t t d i t ió
Cada computador dispone de una tabla en memoria con las direcciones de las rutinas de
tratamiento asociadas a cada interrupción, denominada tabla de vectores de interrupción
Memoria
d.r.t. interrupción 1
d
d.r.t. iinterrupción
ió 2
Autovectorizadas
d.r.t. interrupción 3
vector de interrupción
d.r.t. interrupción i
Vectorizadas
d.r.t. interrupción N-1
d.r.t. interrupción N
En función de la forma de obtener el vector de interrupción existen dos tipos de líneas de
interrupción:
Interrupciones autovectorizadas (no vectorizadas): el vector de interrupción es fijo, una
posición de memoria asociada a la línea de interrupción.
Interrupciones vectorizadas: el vector de interrupción o parte de él lo suministra
EC - IS
Interrupciones autovectorizadas
Interrupciones autovectorizadas
Cuando se conectan a la misma línea de interrupción autovectorizada (no vectoriazadas)
más de un dispositivo periféricos, la CPU debe identificar por software el dispositivo que
produce la interrupción y establecer el orden de prioridad en caso de que sean más de uno
produce la interrupción, y establecer el orden de prioridad en caso de que sean más de uno
La identificación se realiza consultando los registros de estado de cada módulo de E/S
El orden de la consulta determina el orden de prioridad
Leer estado de E/S 1
Programa
Eliminar fuente
de interrupción
i t
interrupción
ió
Leer estado de E/S n
RTI
Eliminar fuente
RTI de interrupción
EC - IS
RTI
35
ec
T3
Interrupciones vectorizadas
Disponen de dos líneas, una de petición (INT) y otra de reconocimiento (RINT).
El vector de interrupción es generado por el dispositivo que produce la interrupción.
Utiliza un mecanismo de daisy chaining para transmitir la señal de reconocimiento.
El dispositivo de E/S genera la petición de interrupción activando INT.
La CPU la reconoce activando RINT.
Los módulos que reciben RINT y no han interrumpido, la transmiten al siguiente módulo.
El módulo que recibe RINT y realizó petición pone el vector de interrupción n en el bus de datos.
A partir del vector n la CPU bifurca a la rutina de tratamiento correspondiente al dispositivo
+ prioridad -
36
ec
T3
Prioridades (1)
Interrupciones no vectorizadas: la prioridad la establece el software de consulta con el
orden de recorrido de todos los dispositivos
p de E/S
/ salida conectados a una línea.
Cuando existen más de una línea de interrupción, la prioridad viene establecida por
hardware en el diseño del procesador:
INT1
INT2
.
. prioridad
.
INTn
CPU
EC - IS
37
ec
T3
Prioridades (2)
En ocasiones, cada línea de interrupción tiene su propia señal de reconocimiento
Para minimizar el número de pines del chip dedicados a las interrupciones, las diferentes
líneas pueden entrar codificadas a la CPU, siendo necesario el uso de un codificador externo:
INT1
INT1 INT2
INT2 INT3
. COD
.
.
INTm
m = log2 n INT n-1
INT n
CPU RINT (reconocimiento)
m
código reconocido
EC - IS
38
ec
T3
Enmascaramiento de interrupciones
El sistema de interrupciones de un procesador dispone de la posibilidad de ser inhibido.
Esta p
posibilidad hayy q
que utilizarla en determinadas ocasiones en las q
que p
por ningún
g
concepto se puede interrumpir el programa en ejecución.
Existe también la posibilidad de enmascarar individualmente algunas de las líneas de
p
interrupción utilizando un registro
g de máscara:
CPU
RE I
INT 0
0
Unidad DEC INT 1
de Prioridad 1
C t l
Control
INT 2
1
INT 3
0
Registro de Máscara
La descapacitación también se puede realizar en el módulo de E/S.
También se pueden inhibir las interrupciones en la rutina de tratamiento.
T bié d i hibi l i t i l ti d t t i t
EC - IS
39
ec
T3
Anidamiento de interrupciones
Lo determina el sistema de prioridades:
Cuando las prioridades lo permiten, el anidamiento es análogo al que se produce con las
subrutinas:
40
ec
T3
Ej
Ejemplo
l de
d anidamiento
id i t de d interrupciones
i t i (1)
CPU con tres líneas de interrupción: INT0, INT1, INT2, siendo la primera la más prioritaria, y
la última la menos prioritaria.
prioritaria
La CPU dispone de tres bits en su registro de estado para la inhibición de cada línea:
CPU
INT0
INT1
prioridad
INT2
tiempo
EC - IS
41
ec
T3
dir1 INT0
dir1+1
INT1
dir
dir+1
d2 Rutina INT2
llega INT1 llega INT2 llega INT0 fin INT0 fin INT1 atiende INT2 fin INT2
dir1+1
011
42
ec
T3
Los threads en los lenguajes de alto nivel
Temporizador
Temporizador IRQ
CPU
Tiempo
Rutina de
Tratamiento
GESTOR
EC - IS
43
ec