You are on page 1of 19

Estructura de Computadores El subsistema de Entrada/Salida

Tema 9. Organizacin de la E/S. Gestin de interrupciones

Contenido
1. Funciones implicadas en una operacin de E/S
1. Direccionamiento 2. Transferencia 3. Sincronizacin

2. Conexin de un dispositivo de E/S al computador 3. Interfaces de E/S. 4. Estructura del sistema de E/S:
1. Localizada en memoria 2. Aislada

5. Mecanismos bsicos de E/S:


1. Espera de respuesta 2. Interrupciones

6. Gestin de interrupciones 7. Ejemplos

estructura de computadores

1. Organizacin del subsistema de E/S


Necesidad de la E/S
La E/S permite al computador interactuar con el mundo exterior Dispositivos tpicos de E/S o perifricos Dispositivos de E/S bsica Dispositivos de almacenamiento Dispositivos de impresin y escner Dispositivos de comunicacin Dispositivos multimedia Dispositivos de control Los perifricos se caracterizan: Diversas formas de funcionamiento Dispar velocidad de transferencia Datos con formatos y long. de palabra diferente.
CPU Memoria

Entrada/Salida

109 bps

104 bps

10 bps 108 bps

estructura de computadores

1. Organizacin del subsistema de E/S


Funciones bsicas del subsistema de E/S
Direccionamiento
Necesario seleccionar el dispositivo de E/S con el que se realiza la transferencia

Transferencia de datos entre el computador y el perifrico


Tipos de transferencia Lectura: computador perifrico Escritura: computador perifrico Puede requerir ciertas conversiones de formato de los datos Niveles elctricos (Ej. TTL RS-232) Tipo de codificacin (Ej. Little-endian Big-endian) digital-analgico / analgico-digital

Sincronizacin y control de la transferencia


Necesario un mecanismo de sincronizacin de la transferencia No confundir con la sincronizacin elemental a travs del bus

estructura de computadores

2. Conexin de un perifrico al computador


Conexin de dispositivos de E/S al computador
Los dispositivos perifricos se conectan al computador a travs de un Interfaz de E/S (Interfaz = Controlador = Adaptador = Tarjeta de E/S)

CPU
BUS de E/S

INTERFAZ
Conexin con perifricos

PERIFRICO

Funciones del interfaz de E/S


Control y temporizacin de la transferencia de datos entre la CPU y el dispositivo Comunicacin con el dispositivo Almacenamiento temporal de datos Deteccin de errores

estructura de computadores

3. Interfaz de Entrada/Salida
Estructura del interfaz de E/S
La comunicacin entre la CPU y el perifrico se realiza a travs de los registros del interfaz Permite enviar rdenes al perifrico: imprime carcter, salto de lnea CPU INTERFAZ
Bus E/S Reg. Control DIREC. Reg. Estado DATOS Reg. Datos Salida Reg. Datos Entrada DATOS ESTADO

Informa sobre el estado del perifrico: listo, fin transf PERIFRICO


CONTROL

CONTROL

Comunicacin CPU-Interfaz
Nota: los registros del interfaz de E/S tambin se llaman puertos de E/S

Comunicacin Interfaz-perifrico CPU enva datos al perifrico escribiendo sobre el registro(s) de datos de salida

CPU recibe datos del perifrico leyendo el registro(s) de datos de entrada

estructura de computadores

3. Interfaz de Entrada/Salida
Ejemplo de conexin de un interfaz de E/S al bus
Disear la lgica de direccionamiento necesaria para conectar el interfaz de un dispositivo a un bus de 8 bits de direcciones. Las direcciones de los registros del interfaz son:
Registro de Estado (slo lectura): $BC (1011 1100) Registro de Control (slo escritura): $BC (1011 1100) Registro de Datos: $BD (1011 1101)
DESCODIFICADOR
A7

INTERFAZ DE LA IMPRESORA LD* DATOS

SEL*

RD* LD* WR* BUS DATOS

estructura de computadores

4. Estructura del sistema de Entrada/Salida


Alternativas de diseo de la E/S
Existen dos formas de direccionamiento de los dispositivos de E/S:
E/S aislada E/S localizada en memoria

estructura de computadores

...
A1 A0

ST* ESTADO

CONTROL

La direccin de los controladores La direccin de los controladores no puede ser fija, ya que podra no puede ser fija, ya que podra solaparse: solaparse: mediante jumpers mediante jumpers plug & play (se fijan en el plug & play (se fijan en el arranque) arranque)

4. Estructura del sistema de Entrada/Salida


E/S aislada
La E/S y la memoria utilizan un espacio de direcciones distinto El conjunto de direcciones de que utiliza la memoria y el que utiliza la E/S son independientes Existen instrucciones especficas de E/S IN dir_E/S, Ri (CPU Perifrico) OUT Ri, dir_E/S (Perifrico CPU) El bus dispone de lneas de control especficas (MEM/IO*) para indicar si se trata de una operacin con memoria o una operacin de E/S Ejemplos i8086 y dems computadores de la familia Intel x86

estructura de computadores

4. Estructura del sistema de Entrada/Salida


E/S localizada en memoria
La E/S y la memoria comparten el mismo espacio de direcciones No se requieren instrucciones especficas de E/S Las mismas instrucciones que se utilizan para movimiento de datos con memoria (MOVE) pueden utilizarse para realizar operaciones de E/S MOVE dir_E/S, Ri (CPU Perifrico) MOVE Ri, dir_E/S (Perifrico CPU) En el bus no existe una lnea especial para distinguir operaciones con memoria de operaciones de E/S Ventajas de la E/S localizada en memoria Es ms flexible que la E/S aislada ya que permite realizar distintos tipos de operaciones sobre los puertos de E/S y no slo de movimiento de datos Ejemplo MC68000
24 lneas de direccin espacio de direcciones de 16 Mbytes Podemos dividir el espacio de direcciones en dos partes, por ejemplo: Direcciones asignadas a memoria: de $000000 a $BFFFFF (primeros 12 Mbytes) Direcciones asignadas a E/S: de $C00000 a $FFFFFF (ltimos 4 Mbytes)

estructura de computadores

5. Mecanismos bsicos de E/S


Sincronizacin de la E/S
Cuando la CPU quiere enviar/recibir datos a/desde un perifrico tiene asegurarse de que el dispositivo est preparado para realizar la transferencia: sincronizacin entre la CPU y el dispositivo de E/S E/S programada con espera de respuesta E/S por interrupciones

estructura de computadores

5. Mecanismos bsicos de E/S


E/S programada con espera de respuesta
Cada vez que la CPU quiere realizar una transferencia entra en un bucle en el que consulta una y otra vez el estado del perifrico hasta que ste est preparado para realizar la transferencia Problemas La CPU no hace trabajo til durante el bucle de espera La dinmica del programa se detiene durante la operacin de E/S Dificultades para atender a varios perifricos
NO Perifrico preparado ? S Transferir datos hacia/desde perifrico S Leer registro de estado Examinar bits de estado

Realizar otra transferencia? NO FIN

estructura de computadores

5. Mecanismos bsicos de E/S


E/S por interrupciones
No existe bucle de espera Cuando un perifrico est listo para transmitir se lo indica a la CPU activando una lnea especial del bus de control denominada Lnea de Peticin Interrupcin La CPU decide qu perifricos tienen capacidad para interrumpir Rutina de Tratamiento de Interrupciones (RTI) Cuando la CPU recibe una seal de peticin de interrupcin salta a ejecutar una RTI La RTI atiende al perifrico que interrumpi y realiza la operacin de E/S
MEM BUS Perifrico listo para la transmisin Activa peticin interrupcin (INTR) Programa Programa

UCP

INTR

E/S

Rutina de Tratamiento de Interrupcin (la CPU realiza la operacin de E/S)

estructura de computadores

5. Mecanismos bsicos de E/S


E/S por interrupciones (cont.)
Analogas entre una subrutina y una RTI Se rompe la secuencia normal de ejecucin Cuando terminan de ejecutarse se debe retornar al punto de ruptura (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, es necesario: Guardar el registro de estado en la pila y restaurarlo al retornar de la RTI Guardar los registros que utiliza la RTI en la pila y restaurarlos al retornar de la RTI RTI PROGRAMA Instruccin 1 Instruccin 2 Instruccin 3 Instruccin 4 Instruccin 5 Instruccin 6 .................... Instruccin 1 Instruccin 2 Instruccin 3 Instruccin 4 .................... RTE Instruccin de Retorno
de Interrupcin

INTR

estructura de computadores

5. Mecanismos bsicos de E/S


Secuencia de eventos en el tratamiento de una interrupcin
1 Perifrico activa peticin
interrupcin (INTR) Programa

2 CPU termina de ejecutar la instruccin en curso y


comprueba si hay interrupciones pendientes Programa

3 CPU salva contexto en pila


(PC y reg. de estado), descapacita las interrupciones y salta a la RTI

RTI

6 CPU contina con la


ejecucin del programa

5 CPU capacita las interrupciones,


restaura contexto (PC y reg. estado) y retorna al programa Cuestiones planteadas
Cundo comprueba la CPU si hay interrupciones pendientes? Por qu es necesario descapacitar las interrupciones? Cmo se informa al perifrico que se ha reconocido su interrupcin? Identificacin de la fuente de interrupcin Qu ocurre si se produce una segunda interrupcin durante la ejecucin de la RTI? Interrupciones multinivel y anidamiento de interrupciones

4 CPU ejecuta la RTI, durante la


cual:
Informa al perifrico que se ha reconocido su interrupcin (por software o por hardware) El perifrico desactiva INTR Salva en pila todos los registros de datos y/o direcciones utilizados por la RTI (manual) Realiza la operacin de E/S con el perifrico Restaura los registros de datos/direcciones Ejecuta la instruccin de retorno de interrupcin (RTE)

estructura de computadores

6. Gestin de interrupciones
Comprobacin de peticiones de interrupcin pendientes
La CPU comprueba si hay interrupciones pendientes (lnea INTR activada) al final de la ejecucin de cada instruccin Motivo: Si se interrumpiese una instruccin en mitad de la ejecucin sera necesario guardar el valor de todos los registros internos de la CPU. Excepciones: Instrucciones de larga duracin (Ej. Instruccin MOVEM del repertorio del 68K) Interrupciones muy prioritarias (Ej. excepcin de fallo de pgina)
Lectura de instruccin Lectura de operando Escritura de resultado

Clculo de EA de instruccin

Decodificacin de instruccin

Clculo de EA de operando

Operacin

Clculo de EA de resultado

estructura de computadores

6. Gestin de interrupciones
Inhibicin o descapacitacin 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 Antes de finalizar la RTI hay que asegurarse de que el perifrico ha desactivado la lnea de peticin INTR

Por software (registro de estado o de datos del interfaz) Por hardware (seal de reconocimiento de interrupcin, INTA)
Programa
INTR activada Si no descapacitamos Salta a RTI Peticin de interrupcin (INTR activada)

Programa

RTI

Alternativas Descapacitacin global: Se inhiben todas las interrupciones Descapacitacin o enmascaramiento selectivo (Varios niveles de interrupcin) estructura de computadores

6. Gestin de interrupciones
Identificacin de la fuente de interrupcin
A una misma lnea de interrupcin es posible conectar varios perifricos Normalmente se utiliza lgica negativa (INTR*) y cableada (en colector abierto, open collector) La seal INTR* se calcula como la Y lgica cableada de cada una de las lneas de peticin de interrrupcin individuales:
INTR* = INTR1* INTR2* INTR3* ... INTRn*
Vcc R INTR* E/S 2 INTR 2 E/S 3 INTR 3 CPU INTR 1 E/S 1 INTR 2 E/S 2 INTR 3 E/S 3

INTR* CPU E/S 1 INTR 1

Es necesario identificar el perifrico que interrumpi y ejecutar la RTI adecuada Identificacin software: por encuesta (polling) Identificacin hardware: por vectores estructura de computadores

6. Gestin de interrupciones
Identificacin software por encuesta (polling)
La RTI examina uno a uno los bits de estado de cada perifrico hasta hallar el que tiene activado su bit de peticin de interrupcin Se ejecuta una subrutina particular para atender a ese perifrico en cuestin Desactivar el bit de peticin de interrupcin del perifrico por software Prioridades (implcitas por el orden de encuesta) Desventajas: Consulta de dispositivos que no han solicitado servicio
NO Ha interrumpido perifrico 2? S NO

RTI
Ha interrumpido perifrico 1? S Subrutina tratamiento perifrico 1

Subrutina tratamiento perifrico 2

NO Mensaje de ERROR

Ha interrumpido perifrico n?

Subrutina tratamiento perifrico n

RTE

estructura de computadores

6. Gestin de interrupciones
Identificacin hardware por vectores: interrupciones vectorizadas
El perifrico que ha interrumpido enva un cdigo o nmero de vector a la CPU El n vector permite calcular la direccin de comienzo de la RTI de ese perifrico Cuando el perifrico recibe una seal de reconocimiento de interrupcin INTA (Interruption Ack.) enva el n de vector a travs del bus de datos A partir del n de vector se calcula una direccin de memoria (vector) donde est almacenada la direccin de comienzo de la RTI N de Vector Direccin Memoria

Perifrico

0 1 2 3

0 2 4 6 00 A4

RTI = n vector * 2
00A4 00A6

estructura de computadores

10

6. Gestin de interrupciones
Identificacin hardware por vectores (cont.)
Secuencia de eventos en el tratamiento de una interrupcin vectorizada 1. El perifrico activa la seal de interrupcin (INTR*=0) 2. La CPU activa la seal de confirmacin de interrupcin (INTA=1), se conecta a los dispositivos de forma encadenada (daisy-chain): 1. Un perifrico que no ha interrumpido propaga INTA 2. El perifrico que interrumpi vuelca su vector cuando recibe INTA (no la propaga) 3. La CPU calcula la direccin de comienzo de la RTI a partir del n de vector 4. La CPU salva el contexto en pila (CPU y reg. de estado) y salta a la RTI 5. Se guardan los registros accesibles por programa, se ejecuta la operacin de E/S y se retorna de la interrupcin al programa principal restaurando previamente todo el contexto
Bus Datos INTR INTA

CPU estructura de computadores

E/S 1

E/S 2

E/S 3

.....

6. Gestin de interrupciones
Identificacin hardware por vectores (cont.)
Ventajas La transmisin de INTA es totalmente hardware, ms rpido que el mtodo de encuesta Desventajas El n de dispositivos que se pueden identificar con este mtodo depende del n de bits que utilicemos para el n vector Solucin: cdigos de grupo, combinado con el mtodo de encuesta

estructura de computadores

11

6. Gestin de interrupciones
Interrupciones multinivel y anidamiento de interrupciones
Interrupciones multinivel Existen varias lneas o niveles de peticin de interrupcin, cada una con un nivel de prioridad A cada lnea de interrupcin se pueden conectar uno o varios dispositivos Resolucin de conflictos de peticiones de interrupcin simultneas Peticiones simultneas por la misma lnea Mediante encuesta (software) Mediante vectores (hardware) Peticiones simultneas por lneas distintas, se suele resolver mediante un codificador de prioridades
Menor prioridad
INTR0 INTR1 INTRn-1

Codificador de prioridades

Cdigo de la lnea ms prioritaria (k bits, siendo n = 2k)

Mayor prioridad

INTR* Se activa si alguna

entrada est activada

estructura de computadores

6. Gestin de interrupciones
Interrupciones multinivel y anidamiento de interrupciones (cont.)
Enmascaramiento selectivo de niveles de interrupcin Los sistemas de interrupciones multinivel permiten enmascarar las interrupciones de cada nivel Para ello se utiliza un registro de mscara 1 bit de mscara bk por nivel
Si bk = 1 Nivel INTRk capacitado Si bk = 0 Nivel INTRk descapacitado o enmascarado

Anidamiento de interrupciones En general, en los sistemas de interrupciones multinivel se permite el anidamiento de interrupciones El anidamiento se controla mediante el registro de mscara
Codificador de prioridades INTR0 INTR1 INTRn-1

Cdigo de la lnea ms prioritaria no enmascarada Se activa si alguna entrada est activada

INTR

b0 b1 bn-1 Registro de mscara

estructura de computadores

12

6. Gestin de interrupciones
Ejemplo de anidamiento de interrupciones
Sistema con 3 niveles de interrupcin (INTR0 < INTR1 < INTR2):
Registro de estado SR: b2 b1 b0 Bits de mscara Si bk = 1 Nivel INTRk capacitado Si bk = 0 Nivel INTRk enmascarado

Se produce la siguiente secuencia de peticiones de interrupcin INTR1 - INTR0 - INTR2:


Prog. Principal INTR1 n n+1 RTI Nivel 0 dir0
RTE

RTI Nivel 1 dir1 q q+1


RTE

INTR0 INTR2

RTI Nivel 2 dir2


RTE

Evolucin del contador de programa, registro de estado y pila:


LLEGA INTR1 LLEGA INTR0
Pila SP PC (n+1) SR (111) PC SR dir1 100

LLEGA INTR2
SP Pila PC (q+1) SR (100) PC (n+1) SR (111) dir2 000

FIN INTR2
Pila SP PC (n+1) SR (111)

FIN INTR1
Pila

SE ATIENDE INTR0
Pila SP PC (n+1) SR (111)

FIN INTR0
Pila

(No hay alteracin)


PC SR

SP PC SR q+1 100 PC SR n+1 111 PC SR dir0 110

SP PC SR n+1 111

estructura de computadores

3. Gestin de interrupciones
Interrupciones autovectorizadas
La mayora de sistemas de interrupciones multinivel asignan un vector de interrupcin por defecto a cada nivel de interrupcin denominada autovector El autovector almacena la direccin de comienzo de la RTI asignada por defecto a ese nivel Si un perifrico conectado a un determinado nivel no es capaz de generar su propio n de vector entonces se utiliza el autovector para saltar a la RTI por defecto de ese nivel La RTI por defecto utilizar un mecanismo de encuesta para identificar al perifrico que interrumpi

Ejemplo
Computador con 4 niveles de interrupcin y direcciones de 32 bits: INTR0 autovector $00000010 MEMORIA INTR1 autovector $00000014 INTR2 autovector $00000018 $00000010 dir. Inicio RTI Nivel 0 INTR3 autovector $0000001C
$00000014 $00000018 $0000001C dir. Inicio RTI Nivel 1 dir. Inicio RTI Nivel 2 dir. Inicio RTI Nivel 3

estructura de computadores

13

4. Ejemplos: MC68000
Caractersticas generales del MC68000
Procesador de 16 bits de datos y 24 de direcciones (espacio de direcciones de 16 Mbytes) 16 registros de propsito general de 32 bits cada uno (8 para datos y 8 para direcciones) 7 niveles de interrupcin (6 de ellos enmascarables) Registro de estado (SR):
Byte del Supervisor 15 T Bit Traza Bit Supervisor 13 S 10 8 I2 I1 I0 Mscara Interrupciones Byte del Usuario (CCR) 4 X 0 N Z V C

Cdigos de Condicin

estructura de computadores

4. Ejemplos: MC68000
Excepciones del MC68000
Excepcin: Cualquier evento que requiera la interrupcin de la ejecucin normal del programa Internas (Traps) Externas (Interrupciones)
Excepciones del MC68000 Internas Externas

Error de ejecucin

Traza

Instruccin
TRAP TRAPV CHK

Peticin de interrupcin

Reset

Error de bus

Divisin por cero Violacin privilegio Emulador Instruccin ilegal Error de direccin

Vectorizadas Autovectorizadas

estructura de computadores

14

4. Ejemplos: MC68000
Vectores de excepcin
Cada tipo de excepcin tiene asignado uno o varios autovectores Existen 255 vectores/autovectores distintos Cada uno se identifica por un n de vector de 8 bits La direccin del vector se calcula multiplicando por 4 (desplaz. 2 bits a izda.) el n de vector dir_vector = n_vector * 4 Interrupciones tenemos dos alternativas Vectores de interrupcin de usuario (vectorizadas) Autovectores de interrupcin (autovectorizadas)
N Vector 0 2 3 4 5 6 7 8 9 10 11 12 13 14 15 24 25 26 27 28 29 30 31 32-47 48-63 Direccin vector Decimal Hex. 0 000 4 004 8 008 12 00C 16 010 20 014 24 018 28 01C 32 020 36 024 40 028 44 02C 48 030 52 034 56 038 60 03C 96 060 100 064 104 068 108 06C 112 070 116 074 120 078 124 07C 128-188 192-252 080-0BC 0C0-0FC Asignacin Reset: SSP inicial Reset: PC inicial Error de Bus Error en Direccin Instruccin Ilegal Divisin por Cero Instruccin CHK Instruccin TRAP Violacin de Privilegio Traza Emulador Lnea 1010 Emulador Lnea 1111 (No asignado, reservado) (No asignado, reservado) (No asignado, reservado) Vector de Int. no Inicializado Interrupcin esprea Autovector Int. Nivel 1 Autovector Int. Nivel 2 Autovector Int. Nivel 3 Autovector Int. Nivel 4 Autovector Int. Nivel 5 Autovector Int. Nivel 6 Autovector Int. Nivel 7 Vectores Instruccin TRAP (No asignado, reservado) Vectores Interrupcin de Usuario

64-255 256-1020 100-3FC

estructura de computadores

4. Ejemplos: MC68000
Secuencia de eventos en el procesamiento de una excepcin del MC68000
1. Se copia el SR en un registro interno y luego se modifican los siguientes campos
Se pasa a modo supervisor (S=1) Se desactiva el modo traza (T=0) Se actualiza el valor de la mscara (I2-I0) descapacitando las int. de menor o igual prioridad

2.

Se determina el n de vector de excepcin


Por lgica interna si se trata de una excepcin interna o una interrupcin autovectorizada Por hardware de reconocimiento de interrupcin si se trata de una interrupcin vectorizada

3. 4.

Se calcula la direccin del vector de excepcin a partir del n de vector


dir_vector = n_vector * 4

Se salva el contexto en la pila del supervisor


Se guarda en pila el PC actual (estar apuntando a la siguiente ejecucin a ejecutar) Se guarda en pila el SR que se salv en el paso 1

5. 6. 7.

Se carga en el PC la direccin de comienzo de la RTI Se ejecuta la rutina de tratamiento de excepcin La ltima instruccin de esta rutina debe ser RTE (retorno de excepcin)

estructura de computadores

15

4. Ejemplos: MC68000
Niveles de prioridad
El MC68000 dispone de 7 niveles de interrupcin de distinta prioridad, que se codifican en las lneas IPL2*-IPL0*. IRQ7* > IRQ6* > IRQ5* > IRQ4* > IRQ3* > IRQ2* > IRQ1*
Mayor prioridad

Codificador de prioridades

IRQ7 IRQ6 IRQ1

Menor prioridad

7 6 5 4 3 2 1 0

2 1 0

IPL2 IPL1 IPL0 MC68000

Lnea de interrupcin activada IRQ7 IRQ6 IRQ5 IRQ4 IRQ3 IRQ2 IRQ1 No interrup.

Nivel de prioridad codificado (Seales) ____ ____ ____ IPL2 IPL1 IPL0 L L L L L H L H L L H H H L L H L H H H L H H H

estructura de computadores

4. Ejemplos: MC68000
Enmascaramiento de interrupciones
Se realiza mediante bits de mscara I2 - I1 - I0 del registro de estado El nivel 7 no es enmascarable Permite anidamiento
Mscara I2 I1 I0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 Niveles Enmascarados Ninguno IRQ1 IRQ1, IRQ2 IRQ1, IRQ2, IRQ3 IRQ1, IRQ2, ..., IRQ4 IRQ1, IRQ2, ..., IRQ5 IRQ1, IRQ2, ..., IRQ6 IRQ1, IRQ2, ..., IRQ6

estructura de computadores

16

4. Ejemplos: MC68000
Identificacin de la fuente de interrupcin
Segn el tipo de interrupcin: Interrupcin autovectorizada: identificacin mediante encuesta (polling) Interrupcin vectorizada: identificacin mediante el n de vector proporcionado por el perifrico Para distinguir si el perifrico es capaz o no de generar un n vector se utiliza una lnea especial del bus, VPA* (Valid Peripheral Address)
Si VPA* activada interrupcin autovectorizada (el perifrico no puede generar un n de vector) Si VPA* desactivada interrupcin vectorizada (el perifrico proporcionar el n de vector)

Interrupciones vectorizadas

IRQ7 IRQ6 IRQ1 IRQ7 IRQ6 IRQ1

Codificador de prioridades

PROBLEMA: No es conveniente mezclar interrupciones vectorizadas y autovectorizadas en la mismas lneas de peticin de interrupcin EJEMPLO: Simultneamente se solicitan dos interrupciones Una vectorizada por IRQ7* y otra autovectorizada por IRQ4* (Activa VPA*) La CPU atender la interrupcin de IRQ7*, pero al detectar VPA* activada tomar el autovector del nivel 7 en lugar del vector proporcionado por el perifrico SOLUCIN: Utilizar lneas de peticin de interrupcin distintas para interrupciones vectorizadas y autovectorizadas

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

VPA
3 2 1 0

Interrupciones autovectorizadas

IPL2 IPL1 IPL0

MC68000

estructura de computadores

4. Ejemplos: MC68000
Identificacin de la fuente en interrupciones autovectorizadas Si produce una interrupcin y la CPU detecta la seal VPA* activada, se producen las siguientes acciones
La CPU genera automticamente un n de vector en funcin del nivel que interrumpe La CPU calcula la direccin del autovector (n_vector * 4) y toma de memoria la direccin de comienzo de la RTI por defecto especfica para ese nivel La RTI (comn a todos los dispositivos de ese nivel) determinar por encuesta el perifrico que interrumpi

estructura de computadores

17

4. Ejemplos: MC68000
Identificacin de la fuente en interrupciones vectorizadas
Si se produce una interrupcin y la CPU detecta VPA desactivada, se producen las siguientes acciones La CPU pone sus lneas de estado (FC2, FC1, FC0) en Reconocimiento de Interrupcin, configuracin (1,1,1). (FC2, FC1, FC0) = (1, 1, 1) La CPU utiliza las lneas de direcciones A3-A2-A1 para codificar el nivel de interrupcin que se reconoce (codificacin de la seal INTA) El perifrico que interrumpi, al recibir INTA realiza las siguientes acciones: Enva su vector de interrupcin de usuario a travs de las lneas D7-D0 del bus de datos. (Nota: vector [64, 255]) Desactiva su seal de peticin de interrupcin

estructura de computadores

4. Ejemplos: MC68000
Ejemplo de conexin para interrupciones vectorizadas por el nivel 4
1.Un perifrico conectado a IRQ4* activa INTR* 2.Si nivel 4 no esta enmascarado la CPU confirma la interrupcin
FC2, FC1, FC0 = 1 1 1 (estado de reconocimiento de interrupcin) A3, A2, A1 = 1 0 0 (reconocimiento de nivel 4)

3.El perifrico que gener la peticin reconoce INTA4 y enva su n de vector por D0-D7
IRQ7

IRQ4 IRQ1
INTR INTR INTR

7 6 5 4 3 2 1 0

Codificador de prioridades

2 1 0

IPL2 IPL1 IPL0

Bus datos

MC68000
Bus dir.

FC0

FC1 FC2
E Decod. 1 3a8 0
2

A3 A2 A1

E/S 1

INTA

E/S 2

INTA

E/S 3

INTA

N vector

N vector Bus datos (D7-D0)

N vector

INTA7 INTA4 INTA1


7 6 5 4 3 2 1 0

estructura de computadores

18

4. Ejemplos: i8086
Caractersticas generales del sistema de interrupciones del i8086
Procesador de 16 bits de datos y 20 de direcciones (espacio de direcciones de 1 Mbytes) Se distinguen 2 tipos de interrupciones Internas
Se deben a errores producidos durante la ejecucin normal de instrucciones

Externas
Se deben a peticiones realizadas por dispositivos externos

Dentro de las interrupciones externas se distingue a su vez dos tipos Interrupciones no enmascarables Se producen a travs de la lnea NMI (Non-Maskable Interrupt) Son autovectorizadas (vector n 2) Son de mayor prioridad que las enmascarables Interrupciones enmascarables Se producen a travs de la lnea INTR Son vectorizadas Se reconocen a travs de la lnea INTA El perifrico debe enva un n de vector (entre 32 y 255) a travs del bus de datos La direccin del vector se calcula multiplicando por 4 el n de vector: dir_vector = n_vector * 4
N Direccin Vector Hex. 0 000 1 004 2 008 3 00C 4 010 5-31 014-07E Asignacin Divisin por cero Traza Interrupcin no enmascarable Breakpoint Overflow Reservados por Intel Vectores Interrupcin de Usuario

32-255 07C-3FC

estructura de computadores

4. Ejemplos: i8086
Controlador de interrupciones i8259
Permite convertir la lnea de peticin de interrupcin enmascarable (INTR) en 8 niveles de interrupcin distintos (INTR0-INTR7) Cada lnea tiene asignado un nivel de prioridad que puede ser fija o rotante El controlador i8259 dispone de un conjunto de registros para almacenar un n de vector por cada nivel Estos registros son programables desde la CPU Cuando se produce una interrupcin por un determinado nivel el controlador pone el n vector asignado a ese nivel en el bus de datos El controlador i8259 permite encadenar en cascada dos niveles de controladores Esto permite disponer de hasta 64 niveles de prioridad distintos (8x8)
INTR INTA INTR7 INTR6

i8086
RD*

D7-D0

i8259

INTR0

WR*

estructura de computadores

19

You might also like