estructura de computadores módulo d. el subsistema de e/s · 2 estructura de computadores tema 5....

32
Estructura de Computadores Estructura de Computadores Módulo D. El subsistema de E/S Módulo D. El subsistema de E/S Tema 5. Organización de la E/S. Gestión de interrupciones Tema 5. Organización de la E/S. Gestión de interrupciones 1. Organización del subsistema de E/S 2. Mecanismos básicos de E/S 3. Gestión de interrupciones 4. Ejemplos

Upload: others

Post on 24-Jul-2020

7 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

1

Estructura de ComputadoresEstructura de Computadores

Módulo D. El subsistema de E/SMódulo D. El subsistema de E/S

Tema 5. Organización de la E/S. Gestión de interrupciones Tema 5. Organización de la E/S. Gestión de interrupciones

1. Organización del subsistema de E/S2. Mecanismos básicos de E/S3. Gestión de interrupciones4. Ejemplos

Page 2: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

2

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

⌦ La E/S permite al computador interactuar con el “mundo exterior”

⌦ Dispositivos típicos de E/S (PERIFÉRICOS)

Ø Dispositivos de E/S básica ð teclado, ratón, pantalla

Ø Dispositivos de almacenamiento ð discos, disquetes, CD-ROM, cintas,

discos magneto-ópticos, ...

Ø Dispositivos de impresión y escáner ð impresoras, plotters, scanners, ...

Ø Dispositivos de comunicaciónð redes, módems, ...

Ø Dispositivos multimediað audio, video, ...

Ø Dispositivos de automatizacióny controlð sensores, alarmas,

sistemas de adquisición de datos, ...

Necesidad de la E/S

CPU MEMORIA

E/S

8085

8085

8085

8085

8085

8085

1. organización del subsistema de E/S1. organización del subsistema de E/S

Page 3: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

3

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

1. organización del subsistema de E/S1. organización del subsistema de E/SFunciones básicas 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 periférico

Ø Tipos de transferenciað Lectura: computador ← periféricoð Escritura: computador → periférico

Ø Puede requerir ciertas conversiones de formato de los datosð Conversión de niveles eléctricos

ð TTL: 1 → V > 2,0 Volt; 0 → V < 0,8 Voltð RS-232-C: 1 → V < -3.0 Volt; 0 → V > +3.0 Volt

ð Conversión del tipo de codificación ð Caracteres (ASCII, EBCDIC)ð Enteros (magnitud y signo, C’1, C’2, ...)ð Reales (punto fijo punto flotante, simple precisión, doble precisión, ...)

ð Conversión serie-paralelo / paralelo-serieð Conversión digital-analógico / analógico-digital

⌦ Sincronización y control de la transferenciaØ Necesario un mecanismo de sincronización de la transferencia

ð El computador debe conocerð Si el periférico está preparado para enviar o recibir datosð Si el periférico ha terminado de realizar una transferencia y puede iniciar una nueva

Ø No confundir con la sincronización elemental a nivel de transferencias de palabras a través del bus

Page 4: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

4

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

Conexión de dispositivos de E/S al computador⌦ Los dispositivos periféricos se conectan al computador a través de un INTERFAZ de E/S

Ø Interfaz = Controlador = Adaptador = Tarjeta de E/S

Ordenes CPU → InterfazLeer N bytes a partir de

Superficie SCilindro CSector T

Ordenes Interfaz → periféricoPosicionar cabezales en cilindro CPosicionar cabezales en sector TSeleccionar cabezal de superficie SLeer N bytesRetirar cabezales

Ejemplo8 0 8 5 8085

INTERFAZ PERIFÉRICOConexión

con periféricos

BUS Sistemao de E/S

CPU

CPU

⌦ Interpretar las órdenes que recibe de la CPU y transmitirlas al periférico⌦ Controlar la transferencia de datos entre la CPU y el periférico

Ø Conversión de formatosØ Adaptar la diferencia de velocidades entre CPU y periférico (mediante buffers de

almacenamiento)⌦ Informar a la CPU del estado del periférico

Funciones del interfaz de E/S

1. organización del subsistema de E/S1. organización del subsistema de E/S

Page 5: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

5

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

⌦ La comunicación entre la CPU y el periférico se realiza a través de los registros del interfaz

⌦ Registro de datos de salidaØ Cuando la CPU quiere enviar datos

al periférico los escribe sobre el registro(s) de datos de salida

⌦ Registro de datos de entradaØ Cuando la CPU quiere recibir datos

del periférico los lee desde el registro(s) de datos de entrada

⌦ Registro de estado Ø Cuando la CPU quiere conocer el

estado del periférico, lo hace leyendo el registro de estado:ð Dispositivo preparado/no preparadoð Reg. datos lleno/vacíoð Transferencia finalizada/no finalizada, etc.

⌦ Registro de control Ø Cuando la CPU quiere transmitir una orden al periférico lo hace escribiendo en el registro de

controlð Leer/escribir N bytes en cilindro C, pista P, sector S (para discos)ð Rebobinar / avanzar / leer N bytes (para cintas)ð Imprimir carácter / saltar de línea / saltar de página (para impresoras), etc.

Estructura del interfaz de E/S

Reg. Control

Reg. Estado

Reg. Datos Salida

Reg. Datos Entrada

CPU INTERFAZ PERIFÉRICO

CONTROL

ESTADO

DATOS

DIREC.

DATOS

CONTROL

BusSistema

o E/S

Comunicación CPU-Interfaz

Comunicación Interfaz-periférico

1. organización del subsistema de E/S1. organización del subsistema de E/S

Page 6: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

6

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

Ejemplo de conexión de un interfaz de E/S al bus

INTERFAZ DE LA IMPRESORADESCODIFICADOR

A7

A1

...

A0

RD*

WR*

BUSDATOS

SEL*LD*

ST*

LD*

DATOS

ESTADO

CONTROL

Dirección Registro Estado/Control: 10111100 ($BC)Dirección Registro Datos: 10111101 ($BD)

⌦ Enviar un carácter almacenado en el registro R1 a la impresora

Ø MOVE R1, $BD

Ø OUT R1, $BD

⌦ Enviar una orden almacenada en el registro R2 a la impresora

Ø MOVE R2, $BC

Ø OUT R2,$BC

⌦ Leer estado de la impresora y almacenarlo en el registro R3

Ø MOVE $BC, R3

Ø IN $BC, R3

1. organización del subsistema de E/S1. organización del subsistema de E/S

Nota: los registros del interfaz de E/S también se llaman puertos de E/S

Page 7: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

7

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

Alternativas de diseño del subsistema de E/S

1. organización del subsistema de E/S1. organización del subsistema de E/S

⌦ La E/S y la memoria utilizan un espacio de direcciones distintoØ El conjunto de direcciones que utiliza la memoria y el que utiliza la E/S son independientes

⌦ Existen instrucciones específicas de E/SØ IN dir_E/S, Ri (CPU ← Periférico)Ø OUT Ri, dir_E/S (Periférico ← CPU)

⌦ El bus dispone de líneas de control específicas (MEM/IO*) para indicar si se trata de una operación con memoria o una operación de E/SØ Si MEM/IO* = 1

ð Operación con memoria (MOVE, LOAD, STORE) ⇒ La dirección del bus corresponde a una posición de memoria

Ø Si MEM/IO* = 0 ð Operación de E/S (IN, OUT) ⇒ La dirección del bus corresponde a un puerto de E/S

Ø Un puerto de E/S puede tener asignada la misma dirección que una posición de memoria válidað Es imposible que exista ambigüedad gracias a la existencia de la línea MEM/IO*

⌦ EjemplosØ i8086 y demás computadores de la familia intel x86

E/S aislada

E/S aislada

E/S localizada en memoria

Page 8: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

8

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

1. organización del subsistema de E/S1. organización del subsistema de E/S

⌦ La E/S y la memoria comparten el mismo espacio de direcciones⌦ No se requieren instrucciones específicas de E/S

Ø Las mismas instrucciones que se utilizan para movimiento de datos con memoria (MOVE) pueden utilizarse para realizar operaciones de E/Sð MOVEdir_E/S, Ri (CPU ← Periférico)ð MOVERi, dir_E/S (Periférico ← CPU)

⌦ En el bus no existe una línea especial para distinguir operaciones con memoria de operaciones de E/SØ Un puerto de E/S no puede tener asignada la misma dirección que una posición de memoria

válidaØ Normalmente se asigna a los dispositivos de E/S una porción contigua del espacio de

direcciones que no se utiliza para la memoria⌦ Ventajas de la E/S localizada en memoria

Ø Es más flexible que la E/S aislada ya que permite realizar distintos tipos de operaciones sobre los puertos de E/S (aritméticas, lógicas, manipulación de bits, etc.) y no sólo de movimiento de datos

⌦ EjemploØ MC68000

ð 24 líneas de dirección ⇒ 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 )

E/S localizada en memoria

Page 9: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

9

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

2. mecanismos básicos de E/S2. mecanismos básicos de E/S

⌦ Cuando la CPU quiere enviar/recibir datos a/desde un periférico tiene asegurarse de que el disp. está preparado para realizar la transferencia: sincronización entre la CPU y el dispositivo de E/S

⌦ Existen dos mecanismos básicos de sincronización de la E/S

Ø E/S programada con espera de respuesta

Ø E/S por interrupciones

Sincronización de la 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 periférico hasta que éste está preparado para realizar la transferencia

⌦ Problemas

Ø 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 espera que el usuario puse una tecla o mueva el jostick

Ø 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

Examinar bits de estado

¿Periférico preparado ?

Transferir datos hacia/desde periférico

¿Realizar otra transferencia?

NO

NO

FIN

Leer registro de estado

Page 10: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

10

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

2. mecanismos básicos de E/S2. mecanismos básicos de E/SE/S por interrupciones

⌦ No existe bucle de espera

⌦ Cuando un periférico está listo para transmitir se lo indica a la CPU activando una línea especial del bus de control denominada LÍNEA DE PETICIÓN INTERRUPCIÓN

Ø La CPU decide qué periféricos tienen capacidad para interrumpir

⌦ RUTINA DE TRATAMIENTO DE INTERRUPCIONES (RTI)

Ø Cuando la CPU recibe una señal de petición de interrupción salta a ejecutar una RTI

Ø La RTI se encarga de atender al periférico que interrumpió y realizar la operación de E/S

Programa

Periférico listo para la transmisión ⇒Activa petición interrupción (INTR)

Rutina de Tratamiento de Interrupción(La CPU realiza la operación de E/S)

Programa

MEM

E/SUCP

BUS

INTR

Page 11: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

11

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

⌦ Analogías entre una subrutina y una RTI

Ø Se rompe la secuencia normal de ejecución

Ø Cuando terminan de ejecutarse se debe retornar al punto de rupturað Debemos guardar el PC en

la pila en ambos casos

⌦ 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 guardar el registro de estado en la pila y restaurarlo al retornar de la RTI

ð Normalmente se realiza automáticamente

ð Necesario guardar los registros que utiliza la RTI en la pila y restaurarlos al retornar de la RTI

ð Normalmente hay que realizarlo de forma manual

2. mecanismos básicos de E/S2. mecanismos básicos de E/SE/S por interrupciones (cont.)

Instrucción 1Instrucción 2Instrucción 3Instrucción 4Instrucción 5Instrucción 6Instrucción 7Instrucción 8Instrucción 9....................

PROGRAMA

INTR

Instrucción 1Instrucción 2Instrucción 3Instrucción 4Instrucción 5....................RTE

RTI

Instrucción de Retorno de Interrupción

Page 12: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

12

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

3. gestión de interrupciones3. gestión de interrupcionesSecuencia de eventos en el tratamiento de una interrupción

Programa Programa

1 Periférico activa petición interrupción (INTR)

2 CPU termina de ejecutar la instrucción en curso y comprueba si hay interrupciones pendientes

3 CPU salva automát. contexto en pila (PC y reg. de estado), descapacita las interrupciones y salta a la RTI

RTI

4 CPU ejecuta la RTI, durante la cual:• Informa al periférico que se ha reconocido su

interrupción (por software o por hardware)⇒ El periférico desactiva INTR

• Salva en pila todos los registros de datos y/o direcciones utilizados por la RTI (manual)

• 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)

5 CPU capacita las interrupciones, restaura contexto (PC y reg. estado) y retorna al programa

6 CPU continúa con la ejecución del programa

Cuestiones planteadas• ¿Cuándo comprueba la CPU si hay interrupciones pendientes?• ¿Por qué es necesario descapacitar las interrupciones?• ¿Cómo se informa al periférico que se ha reconocido su

interrupción?⇒ Identificación de la fuente de interrupción

• ¿Qué ocurre si se produce una segunda interrupción durante la ejecución de la RTI?

⇒ Interrupciones multinivel y anidamiento de interrupciones

Page 13: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

13

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

3. gestión de interrupciones3. gestión de interrupciones

Comprobación de peticiones de interrupción pendientes

⌦ 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

ð Reg. de instrucción, registros de dirección de datos, registros de datos de memoria, etc.

Ø Excepciones:ð Instrucciones de larga duración

ð Por ejemplo, en instrucción de movimiento múltiple (MOVEM), se comprueba si hay 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

Page 14: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

14

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

3. gestión de interrupciones3. gestión de interrupcionesInhibició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ð 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

ð Antes de finalizar la RTI hay que asegurarse de que el periférico desactivado la línea de petición INTR

ð Por software: accediendo al registro de estado o de datos del interfaz

ð Por hardware: activando una señal de reconocimiento de interrupción (INTA)

⌦ Alternativas

Ø Descapacitación globalð 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

ð Véase interrupciones multinivel y anidamiento de interrupciones

Programa Programa

RTI

Petición de interrupción (INTR activada)

INTR activada Si no descapacitamos

⇒ Salta a RTI

Page 15: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

15

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

3. gestión de interrupciones3. gestión de interrupcionesIdentificación de la fuente de interrupción⌦ A una misma línea de interrupción es posible conectar varios periféricos

Ø Normalmente se utiliza lógica negativa (INTR*) y cableada (en colector abierto, “open collector”)ð Sí INTR* = 1 ⇒ No hay interrupción pendiente

ð Sí INTR* = 0 ⇒ Sí hay interrupción pendiente

Ø La señal INTR* se calcula como la Y lógica cableada de cada una de las líneas de petición de interrrupción individuales:ð INTR = INTR 1 · INTR 2 · INTR 3 · ....... · INTR n

⌦ Cuando existen varias fuentes de interrupción es necesario un mecanismo para identificar al periférico que interrumpió y ejecutar la RTI adecuada para atender a ese periférico particular

Ø Identificación software: por encuesta (polling)

Ø Identificación hardware: por vectores

.....INTR 1

E/S 1

INTRR

CPUINTR 2

E/S 2

INTR 3

E/S 3

Vcc

.....INTR 1

E/S 1

INTR

CPU

INTR 2

E/S 2

INTR 3

E/S 3

Page 16: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

16

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

3. gestión de interrupciones3. gestión de interrupcionesIdentificación software por encuesta (polling)

⌦ La RTI examina uno a uno los bits de estado de cada periférico hasta hallar el que tiene activado su bit de petición de interrupción

Ø Una vez detectado el periférico que interrumpió se ejecuta una subrutina particular para atender a ese periférico en cuestión

Ø Durante la ejecución de esa rutina se debe desactivar el bit de petición de interrupción del periférico ð Normalmente se pone automáticamente a cero cuando

se lee o escribe el registro de datos del interfaz

⌦ Prioridades

Ø El método de encuesta introduce un mecanismo de prioridades softwareð En caso de peticiones simultáneas se atiende

por orden de encuesta

ð La RTI se suele diseñar de manera quese pregunta primero a los dispositivos más prioritarios

⌦ Problemas del método de encuesta

Ø Se desperdicia tiempo consultando a losque no han solicitadoservicio

RTI

¿Ha interrumpidoperiférico 1?

NO

¿Ha interrumpidoperiférico 2?

¿Ha interrumpidoperiférico n?

NO

Subrutina tratamiento periférico 1

Subrutina tratamiento periférico 2

Subrutina tratamiento periférico n

NO

Mensaje deERROR

RTE

Page 17: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

17

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

3. gestión de interrupciones3. gestión de interrupcionesIdentificación hardware por vectores: interrupciones vectorizadas

⌦ El periférico que ha interrumpido envía un código o número de vector a la CPU a partir del cual se puede calcular la dirección de comienzo de la RTI de ese periférico particular

Ø Cuando el periférico recibe una señal de confirmación o reconocimiento de interrupción INTA (“Interruption Ack.”) envía el nº de vector a través del bus de datos

Ø A partir del nº de vector se calcula una dirección de memoria (vector) donde está almacenada la dirección de comienzo de la RTI

.....E/S 1

INTR

CPU E/S 2 E/S 3

Bus Datos

INTA

Page 18: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

18

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

3. gestión de interrupciones3. gestión de interrupcionesIdentificación hardware por vectores: interrupciones vectorizadas

Secuencia de eventos en el tratamiento de una interrupción vectorizada

1. El periférico activa la señal de interrupción (INTR*=0)

2. La CPU activa la señal de confirmación de interrupción (INTA=1) que se conecta a

los dispositivos de forma encadenada (daisy-chain)

3. Un periférico que no ha interrumpido, cuando recibe la señal INTA, la propaga al

siguiente

4. Cuando el periférico que interrumpió recibe la señal INTA vuelca su número de

vector sobre el bus de datos y desactiva la señal de petición de interrupción. Este

periférico no propaga INTA

5. La CPU calcula la dirección de comienzo de la RTI a partir del nº de vector

6. La CPU salva el contexto en pila (CPU y reg. de estado) y salta a la RTI

7. Se guardan los registros accesibles por programa, se ejecuta la operación de E/S

y se retorna de la interrupción al programa principal restaurando previamente

todo el contexto

Page 19: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

19

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

3. gestión de interrupciones3. gestión de interrupcionesIdentificación hardware por vectores (cont.)

⌦ Ventajas

Ø La transmisión de INTA es totalmente hardware ⇒ es mucho más rápido que el método de

encuesta

⌦ Desventajas

Ø El nº de dispositivos que se pueden identificar con este método depende del nº de bits que

utilicemos para el nº vector

ð Ejemplo: con un nº de vector de 4 bits podemos identificar 16 dispositivos

Ø Solución: pueden utilizarse códigos de grupo

ð Un mismo nº de vector puede utilizarse para identificar a un grupo de varios dispositivos

ð Cuando la CPU recibe un nº de vector de grupo, la RTI debe identificar al dispositivo particular de

ese grupo mediante encuesta

Page 20: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

20

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

3. gestión de interrupciones3. gestión de interrupciones

⌦ Interrupciones multinivel

Ø Existen varias líneas o niveles de petición de interrupción

Ø Cada nivel tiene asignado una prioridad distinta

Ø A cada línea de interrupción se pueden conectar uno o varios dispositivos

⌦ Resolución de conflictos de peticiones de interrupción simultáneas

Ø Peticiones simultáneas por la misma líneað Se resuelve con alguno de los mecanismos estudiados anteriormente

ð Mediante encuesta (software)

ð Mediante vectores (hardware)

Ø Peticiones simultáneas por líneas distintasð Se suele resolver mediante un codificador de prioridades ⇒ Se atiende a la línea más prioritaria

Interrupciones multinivel y anidamiento de interrupciones

Cod

ifica

dor

de

prio

ridad

es

INTR0INTR1

INTRn-1

•••

Menor prioridad

Mayorprioridad

••

Código de la línea más prioritaria (k bits, siendo n = 2k)

INTR Se activa si alguna entrada está activada

Page 21: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

21

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

3. gestión de interrupciones3. gestión de interrupciones

⌦ Enmascaramiento selectivo de niveles de interrupción

Ø Los sistemas de interrupciones multinivel permiten enmascarar o descapacitarselectivamente las interrupciones por determinados niveles

Ø Para ello se utiliza un registro de máscarað 1 bit de máscara bk por nivel

⌦ Anidamiento de interrupcionesØ En general, en los sistemas de interrupciones multinivel se permite el anidamiento de

interrupcionesð Mientras se ejecuta la RTI de un determinado nivel se inhiben las interrupciones por el mismo nivel o

inferiores, pero se pueden atender petición de interrupción de mayor nivelØ El anidamiento se controla mediante el registro de máscara

ð Cuando se produce una interrupción de prioridad Pk se enmascaran todas las interrupciones de prioridad P ≤ Pk

Interrupciones multinivel y anidamiento de interrupciones (cont.)

Cod

ifica

dor

de

prio

ridad

es

INTR0

INTR1

INTRn-1

•••

••

Código de la línea más prioritaria no enmascarada

INTR Se activa si alguna entrada está activada

b0 b1 ··· bn-1 Registro de máscara

Si bk = 1 → Nivel INTRk capacitadoSi bk = 0 → Nivel INTRk descapacitado o enmascarado

Page 22: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

22

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

3. gestión de interrupciones3. gestión de interrupciones

Sistema con 3 niveles de interrupción:

Ejemplo de anidamiento de interrupciones

INTR0INTR1INTR2

(INTR0 < INTR1 < INTR2)

b2 b1 b0

Registro de estado

Bits de máscaraSi bk = 1 → Nivel INTRk capacitadoSi bk = 0 → Nivel INTRk enmascarado

SR:

nn+1

INTR1

INTR0RTI Nivel 1

dir1Prog. Principal

qq+1

INTR2

RTI Nivel 2dir2

RTI Nivel 0dir0

RTE

RTE

RTE

SE ATIENDE INTR0

FIN INTR0

Evolución de PC, SR y Pila

Supongamos que se producen 3 peticiones de interrupción en el orden INTR1 - INTR0 - INTR2

LLEGA INTR0LLEGA INTR1

PC (n+1)SR (111)

dir1100

PCSR

SP→

LLEGA INTR2

PC (n+1)SR (111)

dir2000

PCSR

SP→PC (q+1)SR (100)

FIN INTR2

PC (n+1)SR (111)

q+1100

PCSR

SP→

FIN INTR1

n+1111

PCSR

SP→

PC (n+1)SR (111)

dir0110

PCSR

SP→

n+1111

PCSR

SP→

Pila PilaPila Pila Pila Pila

(No hay alteración)

Page 23: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

23

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

3. gestión de interrupciones3. gestión de interrupcionesInterrupciones autovectorizadas

⌦ La mayoría de sistemas de interrupciones multinivel asignan un vector de interrupción por defecto a cada nivel de interrupción denominada autovectorØ El autovector almacena la dirección de comienzo de la RTI asignada por defecto a ese nivel Ø Si un periférico 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 periférico que

interrumpió

EjemploComputador con 4 niveles de interrupción:(direcciones de 32 bits)

INTR0 → autovector $00000010INTR1 → autovector $00000014INTR2 → autovector $00000018INTR3 → autovector $0000001C

MEMORIA

$00000010

$00000014

$00000018

$0000001C

dir. Inicio RTI Nivel 0

dir. Inicio RTI Nivel 1

dir. Inicio RTI Nivel 2

dir. Inicio RTI Nivel 3

••

••

Page 24: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

24

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

4. Ejemplos: MC680004. Ejemplos: MC68000Características generales del MC68000

⌦ Procesador de 16 bits de datos y 24 de direcciones (espacio de direcciones de 16 Mbytes)

⌦ 16 registros de propósito general de 32 bits cada uno (8 para datos y 8 para direcciones)

⌦ 7 niveles de interrupción (6 de ellos enmascarables)

⌦ Registro de estado (SR):

15 13 10 8 4 0T S I I I2 1 0 X N Z V C

Byte del Supervisor Byte del Usuario (CCR)

Bit TrazaBit Supervisor Máscara

InterrupcionesCódigos deCondición

Excepciones del MC68000⌦ Noción de excepción:

Ø Cualquier evento que requiera la interrupción de la ejecución normal del programa

⌦ Tipos de excepciónØ Internas o TRAPS

ð Se deben a errores producidos durante la ejecución normal de instrucciones

Ø Externas o INTERRUPCIONESð Se deben principalmente a

peticiones realizadas por dispositivos externos

ð También pueden producirse por un error de bus o una señal de RESET

Excepciones del MC68000

Internas Externas

Error de ejecución

Traza Instrucción Reset Error de bus

Petición deinterrupción

— División por cero— Violación privilegio— Emulador— Instrucción ilegal— Error de dirección

— TRAP— TRAPV— CHK

— Vectorizadas— Autovectorizadas

Page 25: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

25

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

4. Ejemplos: MC680004. Ejemplos: MC68000Vectores de excepción

⌦ Cada tipo de excepción tiene asignado uno o varios autovectores donde se almacena la dirección de comienzo de la rutina de tratamiento de la excepción

⌦ Para el caso particular de las interrupciones tenemos dos alternativasØ Vectores de interrupción de usuario

ð Posiciones de memoria reservadas para aquellos periféricos capaces de generar su propio nº de vector

ð Interrupciones vectorizadas

Ø Autovectores de interrupciónð Cada nivel de interrupción tiene asignado por

defecto un autovector, que se utiliza cuando el periférico no es capaz de generar su propio nº de vector

ð Interrupciones autovectorizadas

⌦ Existen 255 vectores/autovectores distintos

Ø Cada uno se identifica por un nº de vector de 8 bits

Ø La dirección del vector se calcula multiplicando por 4 (desplaz. 2 bits a izda.) el nº de vectorð dir_vector = nº_vector * 4

Nº Dirección vector AsignaciónVector Decimal Hex.

0 0 000 Reset: SSP inicial- 4 004 Reset: PC inicial2 8 008 Error de Bus3 12 00C Error en Dirección4 16 010 Instrucción Ilegal5 20 014 Div isión por Cero6 24 018 Instrucción CHK7 28 01C Instrucción TRAP8 32 020 Violación de Priv ilegio9 36 024 Traza

10 40 028 Emulador Línea 101011 44 02C Emulador Línea 111112 48 030 (No asignado, reservado)13 52 034 (No asignado, reservado)14 56 038 (No asignado, reservado)15 60 03C Vector de Interrupción

no Inicializado

16-23 64-92 040-05C (No asignado, reservado)

24 96 060 Interrupción espúrea25 100 064 Autovector Interrupción Nivel 126 104 068 Autovector Interrupción Nivel 227 108 06C Autovector Interrupción Nivel 328 112 070 Autovector Interrupción Nivel 429 116 074 Autovector Interrupción Nivel 530 120 078 Autovector Interrupción Nivel 631 124 07C Autovector Interrupción Nivel 7

32-47 128-188 080-0BC Vectores Instrucción TRAP

48-63 192-252 0C0-0FC (No asignado, reservado)

64-255 256-1020 100-3FC Vectores Interrupción deUsuario

Page 26: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

26

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

4. Ejemplos: MC680004. Ejemplos: 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 máscara (I2-I0) descapacitando las interrupciones de menor o

igual prioridad⌦ 2.Se determina el nº de vector de excepción

Ø Por lógica interna si se trata de una excepción interna o una interrupción autovectorizadaØ Por hardware de reconocimiento de interrupción si se trata de una interrupción vectorizada

⌦ 3. Se calcula la dirección del vector de excepción a partir del nº de vectorØ dir_vector = nº_vector * 4

⌦ 4. Se salva el contexto en la pila del supervisorØ Se guarda en pila el PC actual (estará apuntando a la siguiente ejecución a ejecutar)

ð Orden: primero PC-H (palabra más significativa) y luego PC-L (palabra menos significativa) Ø Se guarda en pila el SR que se salvó en el paso 1

⌦ 5. Se carga en el PC la dirección de comienzo de la rutina de tratamiento de excepción⌦ 6. Se ejecuta la rutina de tratamiento de excepción

Ø Se deben guardar en pila (manualmente) los registros de propósito general utilizados en esta rutina

Ø La última instrucción de esta rutina debe ser RTE (retorno de excepción)Ø Cuando se ejecuta la instrucción RTE se restaura el contexto y se continúa con la

ejecución normal del programa en el punto donde se interrumpió

Secuencia de eventos en el procesamiento de una excepción del MC68000

Page 27: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

27

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

4. Ejemplos: MC680004. Ejemplos: MC68000Niveles de prioridad

⌦ El MC68000 dispone de 7 niveles de interrupción de distinta prioridad

Ø IRQ7 > IRQ6 > IRQ5 > IRQ4 > IRQ3 > IRQ2 > IRQ1

Ø Estas líneas se conectan al procesador a través de un codificador de prioridades

Ø El nivel que activado más prioritario se codifica mediante 3 líneas: IPL2 - IPL1 - IPL0

Línea de Nivel de prioridad codificado (Señales)interrupción

activada____IPL2

____IPL1

____IPL0

IRQ7 L L LIRQ6 L L HIRQ5 L H LIRQ4 L H HIRQ3 H L LIRQ2 H L HIRQ1 H H L

No interrup. H H H

⌦ Se realiza mediante bits de máscara I2 - I1 - I0 del registro de estado

Ø El nivel 7 no es enmascarable

Ø Cuando se produce una interrupción por un cierto nivel se enmascaran automáticamente las interrupciones de prioridad menor e igual

Enmascaramiento de interrupcionesMáscara NivelesI2 I1 I0 Enmascarados0 0 0 Ninguno0 0 1 IRQ10 1 0 IRQ1, IRQ20 1 1 IRQ1, IRQ2, IRQ31 0 0 IRQ1, IRQ2, ..., IRQ41 0 1 IRQ1, IRQ2, ..., IRQ51 1 0 IRQ1, IRQ2, ..., IRQ61 1 1 IRQ1, IRQ2, ..., IRQ6

Cod

ifica

dor

de

prio

ridad

es

IRQ7

IRQ6

IRQ1

•••

Mayor prioridad

Menorprioridad

76543210

IPL2IPL1

IPL0

2

1

0MC68000

Page 28: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

28

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

4. Ejemplos: MC680004. Ejemplos: MC68000Identificación de la fuente de interrupción

⌦ El mecanismo de identificación del dispositivo que interrumpió depende del tipo de interrupciónØ Interrupción autovectorizada: identificación mediante encuesta (“polling”)Ø Interrupción vectorizada: identificación mediante el nº de vector proporcionado por el

periférico⌦ Para distinguir si el periférico es capaz o no de generar un nº vector se utiliza una línea especial

del bus Ø Línea VPA (Valid Peripheral Address)

ð Si VPA activada ⇒ interrupción autovectorizada (el periférico no puede generar un nº de vector)ð Si VPA desactivada ⇒ interrupción vectorizada (el periférico proporcionará el nº de vector)

PROBLEMA: No es conveniente mezclar interrupciones vectorizadas y autovectorizadas en la mismas líneas de petición de interrupciónEJEMPLO: Simultáneamente se solicitan dos interrupciones

Ø Una vectorizada por IRQ7* y otra autovectorizada por IRQ4* (Activa VPA*)

Ø La CPU atenderá la interrupción de IRQ7*, pero al detectar VPA* activada tomará el autovector del nivel 7 en lugar del vector proporcionado por el periférico

SOLUCIÓN: Utilizar líneas de petición de interrupción distintas para interrupciones vectorizadas y autovectorizadas

Cod

ifica

dor

de

prio

ridad

es

IRQ7

IRQ6

IRQ1

•••

1514131211109876543210

IPL2

IPL1

IPL0

3

2

1

0

MC68000

IRQ7

IRQ6•••

IRQ1

VPA

Inte

rrup

cion

esve

ctor

izad

asIn

terr

upci

ones

auto

vect

oriz

adas

Page 29: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

29

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

4. Ejemplos: MC680004. Ejemplos: MC68000Identificación de la fuente en interrupciones autovectorizadas

⌦ Si produce una interrupción y la CPU detecta la señal VPA activada, se producen las siguientes acciones

Ø La CPU genera automáticamente un nº de vector en función del nivel que interrumpe

Ø La CPU calcula la dirección del autovector (nº_vector * 4) y toma de memoria la dirección de comienzo de la RTI por defecto específica para ese nivelð La RTI es común a todos los periféricos autovectorizados conectados a ese nivel

ð La RTI debe encuestar a estos periféricos para hallar cual de ellos solicitó la interrupción

Identificación de la fuente en interrupciones vectorizadas

⌦ Si se produce una interrupción y la CPU detecta VPA desactivada, se producen las siguientes acciones

Ø La CPU pone sus líneas de estado (FC2, FC1, FC0) en “Reconocimiento de Interrupción”ð (FC2, FC1, FC0) = (1, 1, 1)

Ø La CPU utiliza las líneas de direcciones A3-A2-A1 para codificar el nivel de interrupción que se reconoce (codificación de la señal INTA)

⌦ El periférico que interrumpió, al recibir INTA realiza las siguientes acciones:

Ø Envía su vector de interrupción de usuario a través de las líneas D7-D0 del bus de datosð El nº de vector debe ser un nº entre 64 y 255

Ø Desactiva su señal de petición de interrupción

Page 30: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

30

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

1. Un periférico conectado a IRQ4* activa INTR*2. Si nivel 4 no esta enmascarado la CPU confirma la interrupción

FC2, FC1, FC0 = 1 1 1 (estado de reconocimiento de interrupción)A3, A2, A1 = 1 0 0 (reconocimiento de nivel 4)

3. El periférico que generó la petición reconoce INTA4 y envía su nº de vector por D0-D7

4. Ejemplos: MC680004. Ejemplos: MC68000Ejemplo de conexión para interrupciones vectorizadas

⌦ Suponemos varios periféricos conectados al nivel 4

Cod

ifica

dor

de

prio

ridad

es

IRQ7

IRQ4

IRQ1

••76543210

IPL2IPL1

IPL0

2

1

0

MC68000••

E/S 1 E/S 2 E/S 3 FC

0

FC

1F

C2

Bus dir.

E

Decod.3 a 8

210

76543210

A3 A2 A1

INTA7

INTA4

INTA1

••

••

INTAINTAINTA

Bus datos (D7-D0)

Nº vector Nº vector Nº vector

INTR INTR INTR

Bus datos

Page 31: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

31

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

4. Ejemplos: i80864. Ejemplos: i8086Características 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 ejecución 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 través de la línea NMI (Non-Maskable Interrupt)

ð Son autovectorizadas (vector nº 2)

ð Son de mayor prioridad que las enmascarables

Ø Interrupciones enmascarablesð Se producen a través de la línea INTR

ð Son vectorizadas

ð Se reconocen a través de la línea INTA

ð El periférico debe envía un nº de vector (entre 32 y 255) a través del bus de datos

ð La dirección del vector se calcula multiplicando por 4 el nº de vector: dir_vector = nº_vector * 4

Nº Dirección AsignaciónVector Hex.

0 000 División por cero1 004 Traza2 008 Interrupción no enmascarable3 00C Breakpoint4 010 Overflow

5-31 014-07E Reservados por Intel

32-255 07C-3FC Vectores Interrupción deUsuario

Page 32: Estructura de Computadores Módulo D. El subsistema de E/S · 2 Estructura de Computadores Tema 5. Organización de la E/S. Gestión de interrupciones ÖLa E/S permite al computador

32

Estructura de ComputadoresEstructura de Computadores

Tema 5. Organización de la E/S. Gestión de interrupciones

4. Ejemplos: i80864. Ejemplos: i8086Controlador de interrupciones i8259⌦ Permite convertir la línea de petición de interrupción enmascarable (INTR) en 8 niveles de

interrupción distintos (INTR0-INTR7)

⌦ Cada línea 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 interrupción 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

D7-D0

RD*WR*

INTR7

INTR6

INTR0

•••i8086 i8259