Entrada/Salida - Departamento de Computación

Anuncio
Entrada/Salida
Polling e Interrupciones
Francisco Garcı́a Eijó
Organización del Computador I
Departamento de Computación - FCEyN
UBA
8 de Junio del 2010
Dispositivos de E/S
¿Qué son los dispositivos de E/S?
Dispositivos de E/S
¿Qué 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áner,
Micrófono, ...
Salida: Monitor, Auriculares, Impresora, Plotter, Proyector, ...
Entrada/Salida: Unidades de almacenamiento, Módem,
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ódicamente al dispositivo para ver cuál 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ódicamente al dispositivo para ver cuál es
su estado.
Sencillo pero claramente ineficiente.
E/S por interrupciones:
Es el dispositivo quien establece el momento en que se
realizará la transferencia de datos.
Cuando la CPU recibe notificación de la interrupción detiene el
programa en ejecución, 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ódicamente al dispositivo para ver cuál es
su estado.
Sencillo pero claramente ineficiente.
E/S por interrupciones:
Es el dispositivo quien establece el momento en que se
realizará la transferencia de datos.
Cuando la CPU recibe notificación de la interrupción detiene el
programa en ejecución, ejecuta la RAI y finalmente devuelve el
control al programa.
E/S por acceso directo a memoria (DMA)
Próxima 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úmero de personas ingresadas a la
estación Los Incas de forma automática.
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ón
de E/S 0xFFF0, en el cuál 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úmero de personas ingresadas en R0.
Polling: Ejercicio 1
Solución
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ático de iluminación. Este
sistema debe controlar la entrada y salida de vehı́culos a través de la única entrada al
estacionamiento, apagando las luces cuando no hay vehı́culos dentro, y
enciendiéndolas cuando los hay. Para esto, se dispone de una computadora ORGA1 y 2
dispositivos de entrada-salida:
Un controlador del sistema de iluminación, que tiene 1 registro de estado
mapeado en la dirección 0xFFF0 (CTRL) que permite apagar y encender todas
las luces del lugar (0: apagado; 1: prendido).
Un sensor de aproximación, ubicado en la ú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á entrando o saliendo (El rayo S1 es el que se encuentra más
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ódigo que controle estos dispositivos. Para simplificar el
problema suponga que ningún auto es indeciso (siempre que pasa por uno de los rayos,
pasa por el otro)
Polling: Ejercicio 2
Solución
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ón de un único dispositivo de E-S.
Indicar claramente qué cosas son responsabilidad del hardware y
qué del software.
Interrupciones: Ejercicio 3
Solución
Enunciado del ejercicio 2 de la práctica 6.
Interrupciones: Ejercicio 4
Enunciado
El sistema de navegación de un robot está compuesto por 5 dispositivos de E-S:
un componente de visión,
un motor,
un receptor de
actualizaciones,
un detector de explosivos.
un radio receptor,
Tı́picamente, el procesador del robot recupera información del sistema de visión y la
suministra al motor para gobernar su movimiento. El componente de radio-recepción
solicita la interrupción de este ciclo al recibir información especı́fica desde la base de
control. Adicionalmente, el dispositivo de detección de explosivos solicita la
interrupción cuando se encuentra en la cercanı́a de un artefacto peligroso. El receptor
de correo electrónico 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ón 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ón
inicial del sistema.
b) ¿Qué acciones se llevan a cabo (tanto desde el hardware como desde el software)
en el sistema cuando el componente Detector solicita una interrupción?
c) Escriba la rutina de atención de interrupción del radio receptor.
Aclaración: Es posible completar el enunciado en los aspectos que estimemos
necesarios.
Interrupciones: Ejercicio 4
Solución a)
Armamos un PIC 8259A (simplificado) que posee con 2 registros de Entrada-Salida para configurarlo y obtener
información de su estado:
IMR (Interrupt Mask Register): Se encuentra el registro con la máscara 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ón de la rutina de atención de la interrupción del detector (esta rutina deberá llamar a
EludirExplosivo).
0x0002: la dirección de la rutina de atención de la interrupción del radio (esta rutina deberá contener el
llamado a la rutina TratarMensajeRadial).
0x0004: la dirección de la rutina de atención de la interrupción del actualizador (esta rutina
deberá contener el llamado a las rutinas RecibirActualizacion).
Los componentes están 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ón normal del sistema es la que sigue:
IF=1
IMR = (0000 0111)2
Interrupciones: Ejercicio 4
Solución 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ón 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áscara 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ón
¿Preguntas?
Descargar