You are on page 1of 43

T3

Í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

Ancho de banda y latencia de algunos dispositivos periféricos


 Los dispositivos tradicionales de transporte y presentación de datos representan una carga
relativamente
l i baja
b j ded trabajo
b j para ell procesador
d :

Dispositivos Ancho de banda


Sensores 1 Bps – 1 KBps
Teclado 10 Bps
Línea de comunicaciones 30 Bps – 200 KBps
Pantalla (CRT) 2 KBps
Impresora de línea 1 – 5 KBps
Cinta (cartridge) 0.5 – 2 MBps
Disco 4.5 MBps
Cinta 3-6 MBps

 Los dispositivos de E/S multimedia demandan mayores exigencias de velocidad:

Medio Ancho de banda Latencia max.


max permitida
Gráficos 1 MBps 1 - 5 segundos
Vídeo 100 MBps 20 milisegundos
Voz 64 KBps 50 - 300 milisegundos
EC - IS

ec
T3

Características generales de los dispositivos periféricos


 Los dispositivos periféricos presentan las siguientes características:
 Tienen formas de funcionamiento muy diferentes entre sí, debido a las diferentes
funciones que realizan y a los principios físicos en los que se basan
 La velocidad de transferencia de datos es también diferente entre sí y diferente de la
presentada por la CPU y la memoria
 Suelen utilizar datos con formatos y longitudes de palabra diferentes

 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

Decodificador Registros de datos


de direcciones (envio y/o recepció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

Unidad Unidad Unidad


de E/S 1 de E/S 2 de E/S n

En estos procesadores sí existe un grupo de instrucciones específico para la E/S

IN      dir_E/S, Ri (CPU  Periférico) 


OUT Ri di E/S
OUT   Ri, dir_E/S (P ifé i
(Periférico  CPU)

 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

Módulo de E/S Controlador de dispositivo

 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

transferencia Leer el dato E/S  CPU


del módulo
2. Realiza la transferencia de E/S
Transferencia
Escribir el CPU  Memoria
dato en
memoria

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

– Sólo  tendría que retomar el control de  Leer el dato E/S  CPU


la operación cuando el periférico  del módulo
hubiese terminado de E/S

 Este mecanismo se denomina E/S por  Escribir el CPU  Memoria


interrupciones dato en
memoria

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

Tabla de vectores de Interrupción d.r.t. interrupción 0

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

el propio periférico cuando se le reconoce la interrupción.


34
ec
T3

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

INT Rutina de tratamiento E/S 1


activo

Eliminar fuente
de interrupción
i t
interrupción

Leer estado de E/S n

RTI

INT Rutina de tratamiento E/S n


activo

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

línea de petición de interrupción


INT
bus de datos

RINT línea de reconocimiento de interrupción


vector

CPU E/S 1 E/S 2 E/S n

INT1 estado INT2 estado INTn estado

control control control


EC - IS

+ 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.

 Interrupciones vectorizadas: la prioridad la determina el orden de proximidad a la CPU


establecido por la línea de retorno de interrupción Es decir, se establece por hardware.

 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

RINT3 INT3 RINT3 INT3 RINT3 INT3


CPU

E/S 1 E/S 1 E/S 1

 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:

Un dispositivo sólo puede interrumpir a otro cuando su nivel de prioridad es mayor


que el que se está atendiendo.

 Cuando las prioridades lo permiten, el anidamiento es análogo al que se produce con las
subrutinas:

Programa Rutina INT2 Rutina INT4 Rutina INT7

INT2 INT4 INT7


EC - IS

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:

Si INTi = 0 nivel capacitado


INT0 INT1 INT2
Si INTi = 1 nivel descapacitado

 Supongamos que llegan tres peticiones de interrupción en el orden temporal siguiente:


prioridad

CPU
INT0

INT1
prioridad
INT2

tiempo
EC - IS

41
ec
T3

Ejemplo de anidamiento de interrupciones (2)


Ejemplo de anidamiento de interrupciones (2)
Rutina INT1 Rutina INT0
d1 INT2 d0
Programa

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

Pila dir+1 dir+1 dir+1 dir+1

000 000 000 000

CP d1 d1+ n d0 dir1+1 dir+1 d2 dir+1

RE 011 011 111 011 000 001 000


EC - IS

42
ec
T3

Soporte de las interrupciones a niveles superiores


Soporte de las interrupciones a niveles
 El sistema de interrupciones se puede utilizar para ejecutar concurrentemente varios programas 
residentes simultáneamente en memoria
 Para ello la rutina de tratamiento se convierte en un gestor encargado de pasar el control de 
ejecución a un programa diferente cada vez que se produce una interrupción.
 Las interrupciones las genera un temporizador a intervalos regulares o programables por el 
gestor.
 Esta posibilidad del sistema de interrupciones hace posible:
 Los procesos del S.O.
Los procesos del S O Memoria
i

 Los threads en los lenguajes de alto nivel

Programa1 Programa2 ... Programan

Temporizador
Temporizador IRQ
CPU
Tiempo

Rutina de 
Tratamiento
GESTOR
EC - IS

43
ec

You might also like