Salida - Polling e Interrupciones - Departamento de ...

8 jun. 2010 - Utilizado en las primeras computadoras (Apple II) o en algunos sistemas embebidos. La CPU sondea periódicamente al dispositivo para ver ...
329KB Größe 101 Downloads 36 vistas
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

Dispositivos de E/S ¿Qu´e son los dispositivos de E/S?

Dispositivos de E/S ¿Qu´e son los dispositivos de E/S? Los dispositivos de E/S son aquellos que interactuan con la unidad central de procesamiento de una computadora. Entrada: Teclado, Mouse, Joystick, Webcam, Esc´aner, Micr´ofono, ... Salida: Monitor, Auriculares, Impresora, Plotter, Proyector, ... Entrada/Salida: Unidades de almacenamiento, M´odem, Placa de red, USB, ...

Esquemas de E/S

Esquemas de E/S E/S por encuesta (Polling) o Programada:

Utilizado en las primeras computadoras (Apple II) o en algunos sistemas embebidos. La CPU sondea peri´ odicamente al dispositivo para ver cu´al es su estado. Sencillo pero claramente ineficiente.

Esquemas de E/S E/S por encuesta (Polling) o Programada:

Utilizado en las primeras computadoras (Apple II) o en algunos sistemas embebidos. La CPU sondea peri´ odicamente al dispositivo para ver cu´al es su estado. Sencillo pero claramente ineficiente. E/S por interrupciones:

Es el dispositivo quien establece el momento en que se realizar´a la transferencia de datos. Cuando la CPU recibe notificaci´ on de la interrupci´on detiene el programa en ejecuci´ on, ejecuta la RAI y finalmente devuelve el control al programa.

Esquemas de E/S E/S por encuesta (Polling) o Programada:

Utilizado en las primeras computadoras (Apple II) o en algunos sistemas embebidos. La CPU sondea peri´ odicamente al dispositivo para ver cu´al es su estado. Sencillo pero claramente ineficiente. E/S por interrupciones:

Es el dispositivo quien establece el momento en que se realizar´a la transferencia de datos. Cuando la CPU recibe notificaci´ on de la interrupci´on detiene el programa en ejecuci´ on, ejecuta la RAI y finalmente devuelve el control al programa. E/S por acceso directo a memoria (DMA)

Pr´ oxima clase con Maria Elena.

Polling: Ejercicio 1 Enunciado Debido a la gran cantidad de personas que utilizan la l´ınea de Subte B los d´ıas de semana. Nos han pedido el desarrollo de un sistema que permita contar el n´ umero de personas ingresadas a la estaci´on Los Incas de forma autom´atica. Para ello contamos con una computadora con arquitectura ORGA1 y un dispositivo de E/S llamado molinex (muy similar al famoso molinete que todos conocemos). Molinex cuenta con un registro de estado mapeado a la direcci´on de E/S 0xFFF0, en el cu´al se refleja el paso de las personas. El registro inicialmente se encuentra en el valor 0, y cambia a 1 con el ingreso de una persona. Escribir una rutina en ensamblador para satisfacer el sistema pedido, guardando el n´ umero de personas ingresadas en R0.

Polling: Ejercicio 1

Soluci´on ciclo:

llegoPers:

MOV R0, 0x0000 CMP [0xFFF0], 0x0001 JE llegoPers JMP ciclo ADD R0, 0x0001 MOV [0xFFF0], 0x0000 JMP ciclo

Polling: Ejercicio 2 Enunciado Se desea dotar a un estacionamiento de un sistema autom´ atico de iluminaci´ on. Este sistema debe controlar la entrada y salida de veh´ıculos a trav´ es de la u ´nica entrada al estacionamiento, apagando las luces cuando no hay veh´ıculos dentro, y enciendi´ endolas cuando los hay. Para esto, se dispone de una computadora ORGA1 y 2 dispositivos de entrada-salida: Un controlador del sistema de iluminaci´ on, que tiene 1 registro de estado mapeado en la direcci´ on 0xFFF0 (CTRL) que permite apagar y encender todas las luces del lugar (0: apagado; 1: prendido). Un sensor de aproximaci´ on, ubicado en la u ´nica puerta de entrada al estacionamiento, y cuenta con 2 registros de estado, mapeados en las direcciones 0xFFF5 (S1) y 0xFFF7 (S2). Cada registro representa el estado de un rayo infrarrojo que se ubica lo suficientemente lejos uno del otro para determinar si un veh´ıculo est´ a entrando o saliendo (El rayo S1 es el que se encuentra m´ as cerca de la calle). Para ambos registros la constante 1 indica que el rayo fue interrumpido (y hay un veh´ıculo pasando) y con 0 que no. Escribir una rutina en pseudoc´ odigo que controle estos dispositivos. Para simplificar el problema suponga que ning´ un auto es indeciso (siempre que pasa por uno de los rayos, pasa por el otro)

Polling: Ejercicio 2

Soluci´ on 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

Interrupciones: Ejercicio 3

Enunciado Modificar la arquitectura de ORGA1 para dotarla de la capacidad de atender la interrupci´on de un u ´nico dispositivo de E-S. Indicar claramente qu´e cosas son responsabilidad del hardware y qu´e del software.

Interrupciones: Ejercicio 3

Soluci´on Enunciado del ejercicio 2 de la pr´actica 6.

Interrupciones: Ejercicio 4 Enunciado El sistema de navegaci´ on de un robot est´ a compuesto por 5 dispositivos de E-S: un componente de visi´ on, un motor,

un receptor de actualizaciones,

un detector de explosivos. un radio receptor, T´ıpicamente, el procesador del robot recupera informaci´ on del sistema de visi´ on y la suministra al motor para gobernar su movimiento. El componente de radio-recepci´ on solicita la interrupci´ on de este ciclo al recibir informaci´ on espec´ıfica desde la base de control. Adicionalmente, el dispositivo de detecci´ on de explosivos solicita la interrupci´ on cuando se encuentra en la cercan´ıa de un artefacto peligroso. El receptor de correo electr´ onico posibilita al robot actualizar el estado del sistema. Estos componentes se encuentran coordinados por un sistema que permite administrar las prioridades de las solicitudes de interrupci´ on del dispositivo radio y del dispositivo detector. Existen 4 rutinas ya programadas: TratarMensajeRadial,

CalcularMovimientoRobot.

EludirExplosivo,

RecibirActualizacion.

Controlador de Interrupciones

Controlador de Interrupciones

Interrupciones: Ejercicio 4

Enunciado a) Describa las caracter´ıticas del controlador de interrupciones y la configuraci´ on inicial del sistema. b) ¿Qu´ e acciones se llevan a cabo (tanto desde el hardware como desde el software) en el sistema cuando el componente Detector solicita una interrupci´ on? c) Escriba la rutina de atenci´ on de interrupci´ on del radio receptor. Aclaraci´ on: Es posible completar el enunciado en los aspectos que estimemos necesarios.

Interrupciones: Ejercicio 4 Soluci´ on a) Armamos un PIC 8259A (simplificado) que posee con 2 registros de Entrada-Salida para configurarlo y obtener informaci´ on de su estado: IMR (Interrupt Mask Register): Se encuentra el registro con la m´ ascara de interrupciones. Es de lectura y de escritura. IRR (Interrupt Request Register): Las solicitudes actuales de los dispositivos. De lectura solamente. La memoria tiene los siguiente valores: 0x0000: la direcci´ on de la rutina de atenci´ on de la interrupci´ on del detector (esta rutina deber´ a llamar a EludirExplosivo). 0x0002: la direcci´ on de la rutina de atenci´ on de la interrupci´ on del radio (esta rutina deber´ a contener el llamado a la rutina TratarMensajeRadial). 0x0004: la direcci´ on de la rutina de atenci´ on de la interrupci´ on del actualizador (esta rutina deber´ a contener el llamado a las rutinas RecibirActualizacion). Los componentes est´ an 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 configuraci´ on normal del sistema es la que sigue: IF=1 IMR = (0000 0111)2

Interrupciones: Ejercicio 4

Soluci´on 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. b. c. d.

Apila PSW Apila PC responde INTA Obtiene ID del dipositivo y coloca PC = InicioVector + ID (indexado como tenga que ser)

Interrupciones: Ejercicio 4

Soluci´ on c) RAI Radio: CLI ; Guarda la mascara actual PUSH AX IN AX, INTMASK PUSH AX ; Setear nueva mascara MOV AX , 0x0001 OUT INTMASK, AX STI

; apila el registro AX ; copia el contenido del reg. de ES INTMASK en AX ; apila la m´ ascara actual

;copia el contenido de AX en el reg. de ES INTMASK

CALL TratarMensajeRadial CLI POP AX OUT INTMASK, AX POP AX STI IRET

; Restauro mascara y el registros AX

; volver de la interrupci´ on

¿Preguntas?