entrada/salida - polling e interrupciones · pdf filedepartamento de computaci on - fceyn uba...

Post on 01-Feb-2018

222 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Entrada/SalidaPolling e Interrupciones

Francisco Garcıa Eijo

Organizacion del Computador IDepartamento de Computacion - FCEyN

UBA

8 de Junio del 2010

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

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

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.

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.

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.

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.

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.

Polling: Ejercicio 1

Solucion

MOV R0, 0x0000

ciclo: CMP [0xFFF0], 0x0001

JE llegoPers

JMP ciclo

llegoPers: ADD R0, 0x0001

MOV [0xFFF0], 0x0000

JMP ciclo

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)

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

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.

Interrupciones: Ejercicio 3

Solucion

Enunciado del ejercicio 2 de la practica 6.

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.

Controlador de Interrupciones

Controlador de Interrupciones

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.

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

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)

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

¿Preguntas?

top related