21
Entrada/Salida Polling e Interrupciones Francisco Garc´ ıa Eij´ o Organizaci´on del Computador I Departamento de Computaci´on - FCEyN UBA 8 de Junio del 2010

Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

  • Upload
    trananh

  • View
    218

  • Download
    1

Embed Size (px)

Citation preview

Page 1: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

Entrada/SalidaPolling e Interrupciones

Francisco Garcıa Eijo

Organizacion del Computador IDepartamento de Computacion - FCEyN

UBA

8 de Junio del 2010

Page 2: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

Dispositivos de E/S

¿Que son los dispositivos de E/S?

Los dispositivos de E/S son aquellos que interactuan con la unidadcentral de procesamiento de una computadora.

Entrada: Teclado, Mouse, Joystick, Webcam, Escaner,Microfono, ...Salida: Monitor, Auriculares, Impresora, Plotter, Proyector, ...Entrada/Salida: Unidades de almacenamiento, Modem,Placa de red, USB, ...

Page 3: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

Dispositivos de E/S

¿Que son los dispositivos de E/S?

Los dispositivos de E/S son aquellos que interactuan con la unidadcentral de procesamiento de una computadora.

Entrada: Teclado, Mouse, Joystick, Webcam, Escaner,Microfono, ...Salida: Monitor, Auriculares, Impresora, Plotter, Proyector, ...Entrada/Salida: Unidades de almacenamiento, Modem,Placa de red, USB, ...

Page 4: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

Esquemas de E/S

E/S por encuesta (Polling) o Programada:

Utilizado en las primeras computadoras (Apple II) o en algunossistemas embebidos.La CPU sondea periodicamente al dispositivo para ver cual essu estado.Sencillo pero claramente ineficiente.

E/S por interrupciones:

Es el dispositivo quien establece el momento en que serealizara la transferencia de datos.Cuando la CPU recibe notificacion de la interrupcion detiene elprograma en ejecucion, ejecuta la RAI y finalmente devuelve elcontrol al programa.

E/S por acceso directo a memoria (DMA)

Proxima clase con Maria Elena.

Page 5: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

Esquemas de E/S

E/S por encuesta (Polling) o Programada:

Utilizado en las primeras computadoras (Apple II) o en algunossistemas embebidos.La CPU sondea periodicamente al dispositivo para ver cual essu estado.Sencillo pero claramente ineficiente.

E/S por interrupciones:

Es el dispositivo quien establece el momento en que serealizara la transferencia de datos.Cuando la CPU recibe notificacion de la interrupcion detiene elprograma en ejecucion, ejecuta la RAI y finalmente devuelve elcontrol al programa.

E/S por acceso directo a memoria (DMA)

Proxima clase con Maria Elena.

Page 6: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

Esquemas de E/S

E/S por encuesta (Polling) o Programada:

Utilizado en las primeras computadoras (Apple II) o en algunossistemas embebidos.La CPU sondea periodicamente al dispositivo para ver cual essu estado.Sencillo pero claramente ineficiente.

E/S por interrupciones:

Es el dispositivo quien establece el momento en que serealizara la transferencia de datos.Cuando la CPU recibe notificacion de la interrupcion detiene elprograma en ejecucion, ejecuta la RAI y finalmente devuelve elcontrol al programa.

E/S por acceso directo a memoria (DMA)

Proxima clase con Maria Elena.

Page 7: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

Esquemas de E/S

E/S por encuesta (Polling) o Programada:

Utilizado en las primeras computadoras (Apple II) o en algunossistemas embebidos.La CPU sondea periodicamente al dispositivo para ver cual essu estado.Sencillo pero claramente ineficiente.

E/S por interrupciones:

Es el dispositivo quien establece el momento en que serealizara la transferencia de datos.Cuando la CPU recibe notificacion de la interrupcion detiene elprograma en ejecucion, ejecuta la RAI y finalmente devuelve elcontrol al programa.

E/S por acceso directo a memoria (DMA)

Proxima clase con Maria Elena.

Page 8: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

Polling: Ejercicio 1

Enunciado

Debido a la gran cantidad de personas que utilizan la lınea deSubte B los dıas de semana. Nos han pedido el desarrollo de unsistema que permita contar el numero de personas ingresadas a laestacion Los Incas de forma automatica.Para ello contamos con una computadora con arquitectura ORGA1

y un dispositivo de E/S llamado molinex (muy similar al famosomolinete que todos conocemos).Molinex cuenta con un registro de estado mapeado a la direccionde E/S 0xFFF0, en el cual se refleja el paso de las personas. Elregistro inicialmente se encuentra en el valor 0, y cambia a 1 con elingreso de una persona.

Escribir una rutina en ensamblador para satisfacer el sistemapedido, guardando el numero de personas ingresadas en R0.

Page 9: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

Polling: Ejercicio 1

Solucion

MOV R0, 0x0000

ciclo: CMP [0xFFF0], 0x0001

JE llegoPers

JMP ciclo

llegoPers: ADD R0, 0x0001

MOV [0xFFF0], 0x0000

JMP ciclo

Page 10: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

Polling: Ejercicio 2

Enunciado

Se desea dotar a un estacionamiento de un sistema automatico de iluminacion. Estesistema debe controlar la entrada y salida de vehıculos a traves de la unica entrada alestacionamiento, apagando las luces cuando no hay vehıculos dentro, yenciendiendolas cuando los hay. Para esto, se dispone de una computadora ORGA1 y 2dispositivos de entrada-salida:

Un controlador del sistema de iluminacion, que tiene 1 registro de estadomapeado en la direccion 0xFFF0 (CTRL) que permite apagar y encender todaslas luces del lugar (0: apagado; 1: prendido).

Un sensor de aproximacion, ubicado en la unica puerta de entrada alestacionamiento, y cuenta con 2 registros de estado, mapeados en lasdirecciones 0xFFF5 (S1) y 0xFFF7 (S2). Cada registro representa el estado de unrayo infrarrojo que se ubica lo suficientemente lejos uno del otro para determinarsi un vehıculo esta entrando o saliendo (El rayo S1 es el que se encuentra mascerca de la calle). Para ambos registros la constante 1 indica que el rayo fueinterrumpido (y hay un vehıculo pasando) y con 0 que no.

Escribir una rutina en pseudocodigo que controle estos dispositivos. Para simplificar elproblema suponga que ningun auto es indeciso (siempre que pasa por uno de los rayos,pasa por el otro)

Page 11: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

Polling: Ejercicio 2

Solucion

While (True)

If S1 y Despues S2

Espero que se apaguen S1 y S2

NroAutos++

ElseIf S2 y Despues S1

Espero que se apaguen S1 y S2

NroAutos--

Endif

If NroAutos==0 y LuzEncendida

ApagarLuz()

ElseIf NroAutos>0 y LuzApagada

PrenderLuz()

Endif

EndWhile

Page 12: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

Interrupciones: Ejercicio 3

Enunciado

Modificar la arquitectura de ORGA1 para dotarla de la capacidad deatender la interrupcion de un unico dispositivo de E-S.Indicar claramente que cosas son responsabilidad del hardware yque del software.

Page 13: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

Interrupciones: Ejercicio 3

Solucion

Enunciado del ejercicio 2 de la practica 6.

Page 14: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

Interrupciones: Ejercicio 4

Enunciado

El sistema de navegacion de un robot esta compuesto por 5 dispositivos de E-S:

un componente de vision,

un motor,

un radio receptor,

un receptor deactualizaciones,

un detector de explosivos.

Tıpicamente, el procesador del robot recupera informacion del sistema de vision y lasuministra al motor para gobernar su movimiento. El componente de radio-recepcionsolicita la interrupcion de este ciclo al recibir informacion especıfica desde la base decontrol. Adicionalmente, el dispositivo de deteccion de explosivos solicita lainterrupcion cuando se encuentra en la cercanıa de un artefacto peligroso. El receptorde correo electronico posibilita al robot actualizar el estado del sistema.Estos componentes se encuentran coordinados por un sistema que permite administrarlas prioridades de las solicitudes de interrupcion del dispositivo radio y del dispositivodetector.Existen 4 rutinas ya programadas:

TratarMensajeRadial,

EludirExplosivo,

CalcularMovimientoRobot.

RecibirActualizacion.

Page 15: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

Controlador de Interrupciones

Page 16: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

Controlador de Interrupciones

Page 17: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

Interrupciones: Ejercicio 4

Enunciado

a) Describa las caracterıticas del controlador de interrupciones y la configuracioninicial del sistema.

b) ¿Que acciones se llevan a cabo (tanto desde el hardware como desde el software)en el sistema cuando el componente Detector solicita una interrupcion?

c) Escriba la rutina de atencion de interrupcion del radio receptor.

Aclaracion: Es posible completar el enunciado en los aspectos que estimemosnecesarios.

Page 18: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

Interrupciones: Ejercicio 4

Solucion a)

Armamos un PIC 8259A (simplificado) que posee con 2 registros de Entrada-Salida para configurarlo y obtenerinformacion de su estado:

IMR (Interrupt Mask Register): Se encuentra el registro con la mascara de interrupciones. Es de lectura yde escritura.

IRR (Interrupt Request Register): Las solicitudes actuales de los dispositivos. De lectura solamente.

La memoria tiene los siguiente valores:

0x0000: la direccion de la rutina de atencion de la interrupcion del detector (esta rutina debera llamar aEludirExplosivo).

0x0002: la direccion de la rutina de atencion de la interrupcion del radio (esta rutina debera contener elllamado a la rutina TratarMensajeRadial).

0x0004: la direccion de la rutina de atencion de la interrupcion del actualizador (esta rutinadebera contener el llamado a las rutinas RecibirActualizacion).

Los componentes estan conectados a las siguientes lıneas de solicitud del PIC

IRQ 0: Componente Detector

IRQ 1: Componente Radio

IRQ 2: Componente Receptor de Actualizaciones

La configuracion normal del sistema es la que sigue:

IF=1

IMR = (0000 0111)2

Page 19: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

Interrupciones: Ejercicio 4

Solucion b)

1. Detector levanta IRQ0

2. CI (8259A) estima si corresponde enviar solicitud de int. al CPU(INTR)

3. CPU termina ciclo

4. Si IF=1 entonces

a. Apila PSWb. Apila PCc. responde INTAd. Obtiene ID del dipositivo y coloca PC = InicioVector + ID

(indexado como tenga que ser)

Page 20: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

Interrupciones: Ejercicio 4

Solucion c)

RAI Radio:CLI; Guarda la mascara actualPUSH AX ; apila el registro AXIN AX, INTMASK ; copia el contenido del reg. de ES INTMASK en AXPUSH AX ; apila la mascara actual; Setear nueva mascaraMOV AX , 0x0001OUT INTMASK, AX ;copia el contenido de AX en el reg. de ES INTMASKSTI

CALL TratarMensajeRadial

CLIPOP AX ; Restauro mascara y el registros AXOUT INTMASK, AXPOP AXSTIIRET ; volver de la interrupcion

Page 21: Entrada/Salida - Polling e Interrupciones · PDF fileDepartamento de Computaci on - FCEyN UBA 8 de Junio del 2010. ... dispositivos de entrada-salida: Un controlador del sistema de

¿Preguntas?