Entrada/Salida - Polling e Interrupciones

Anuncio
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Entrada/Salida
Polling e Interrupciones
Francisco Garcı́a Eijó
Organización del Computador I
Departamento de Computación - FCEyN
UBA
31 de Mayo del 2011
Preguntas
Introducción
Ejercicios
PIC: Intel 8259
Dispositivos de E/S
¿Qué son los dispositivos de E/S?
Más ejercicios
Preguntas
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
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, ...
Introducción
Ejercicios
Esquemas de E/S
PIC: Intel 8259
Más ejercicios
Preguntas
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
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.
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
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.
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
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 Esteban.
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
Registros de los dispositivos de E/S
Los registros de los dispositivos son su medio de comunicación más
común con el resto de los componentes del sistema.
Pueden ser leı́dos o escritos por un tercero (por ej.: el CPU)
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
Registros de los dispositivos de E/S
Los registros de los dispositivos son su medio de comunicación más
común con el resto de los componentes del sistema.
Pueden ser leı́dos o escritos por un tercero (por ej.: el CPU)
de lectura su contenido no puede ser modificado desde
afuera.
de escritura sólo se puede escribir en ellos.
de lectura y escritura se pueden leer y escribir.
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
Registros de los dispositivos de E/S
Los registros de los dispositivos son su medio de comunicación más
común con el resto de los componentes del sistema.
Pueden ser leı́dos o escritos por un tercero (por ej.: el CPU)
de lectura su contenido no puede ser modificado desde
afuera.
de escritura sólo se puede escribir en ellos.
de lectura y escritura se pueden leer y escribir.
Dependiendo de la arquitectura:
E/S independiente. (a través de instrucciones especiales IN y OUT).
E/S mapeada en memoria.
ORGA1 reserva las direcciones de memoria FFF0h a FFFFh para
E/S.
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
Polling: Ejercicio 1
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.
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Polling: Ejercicio 1
Pregunta
Si en lugar de tener direcciones mapeadas a memoria tuviéramos
un espacio de direcciones distinto para E/S.
¿Cómo cambiarı́a el programa?
Preguntas
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
Interrupciones: Ejercicio 2
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.
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
Interrupciones: Ejercicio 3
Una computadora Orga I se encuentra conectada a 3 dispositivos
de E/S que actúan como sensores. Cada sensor posee un registro
de E/S que reporta información climática. Los sensores son:
Temperatura: Mide temperatura en grados celsius
(TEMP STATUS)
Presión Atmosférica: Mide presión en HectoPascales
(ATM STATUS)
Intensidad del Viento: Mide intensidad en Metros/Segundo
(WIND SPEED)
Las etiquetas MAX TEMP, MAX ATM, MAX WIND SPEED son
constantes de 16 bits.
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
Interrupciones: Ejercicio 3
a) Mapear los registros de E/S a direcciones de E/S de Orga I y
completar el siguiente código:
sensar: CMP [...], MAX_TEMP ;alcanzó temperatura máxima?
JG alarma
CMP [...], MAX_ATM ;alcanzó presión atmosférica máxima?
JG alarma
CMP [...], MAX_WIND_SPEED ;alcanzó velocidad máxima?
JG alarma
JMP sensar
alarma: CALL sonarAlarma ;invoca rutina de alarma
JMP sensar
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Interrupciones: Ejercicio 3
b) Suponiendo que el ciclo de instrucción de cada instrucción del
programa tarda t sg y los valores máximos nunca se alcanzan
¿cuál es la frecuencia (en Hz) de muestreo (lectura) de los
registros de E/S?
Preguntas
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
Interrupciones: Ejercicio 3
c) Suponga que el CPU cuenta con soporte para una interrupción.
El sensor de temperatura solicita una interrupción si se alcanza
la temperatura máxima.
i. Modificar el programa presentado para aprovechar esta
caracterı́stica de modo que la frecuencia de muestreo sea mayor.
ii. Escribir la rutina de atención de la interrupción del sensor de
temperatura.
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
Controlador de Interrupciones
Es un módulo cuyo objetivo es gestionar la entrada/salida
para el procesador.
El controlador recibe un conjunto de señales de los distintos
dispositivos, toma la decisión cual es la más prioritaria y envı́a
una señal al procesador.
Introducción
Ejercicios
PIC: Intel 8259
Controlador de Interrupciones
Más ejercicios
Preguntas
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Controlador de Interrupciones: Intel 8259
Preguntas
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Controlador de Interrupciones: Intel 8259
Preguntas
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
Estructura del controlador
Algunos de los registros internos del controlador y sus funciones:
IRR (Interrupt Request Register): Cuando se activan una o
varias de las entradas IR, estas quedan reflejadas en los bits
correspondientes del IRR.
ISR (Interrupt Service Register): De aquellos bits activados
en el IRR, el más prioritario queda reflejado en el ISR.
IMR (Interrupt Mask Register): El programador puede
enmascarar algunas interrupciones de manera que si se
activase la IR correspondiente, el controlador la ignorará.
Introducción
Ejercicios
PIC: Intel 8259
Ciclo de reconocimiento de interrupción
Más ejercicios
Preguntas
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Ciclo de reconocimiento de interrupción
1
Tras la activación de una lı́nea IR, el controlador activa la
salida INTR señalándole a la CPU la existencia de una
interrupción activada.
Preguntas
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
Ciclo de reconocimiento de interrupción
1
Tras la activación de una lı́nea IR, el controlador activa la
salida INTR señalándole a la CPU la existencia de una
interrupción activada.
2
Al recibir la señal, el procesador da un pulso en su salida
INTA indicando que comienza un ciclo de reconocimiento de
interrupción.
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
Ciclo de reconocimiento de interrupción
1
Tras la activación de una lı́nea IR, el controlador activa la
salida INTR señalándole a la CPU la existencia de una
interrupción activada.
2
Al recibir la señal, el procesador da un pulso en su salida
INTA indicando que comienza un ciclo de reconocimiento de
interrupción.
3
Al recibir el controlador el pulso por su entrada INTA
comienza a arbitrar las interrupciones recibidas y selecciona la
más prioritaria.
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
Ciclo de reconocimiento de interrupción
1
Tras la activación de una lı́nea IR, el controlador activa la
salida INTR señalándole a la CPU la existencia de una
interrupción activada.
2
Al recibir la señal, el procesador da un pulso en su salida
INTA indicando que comienza un ciclo de reconocimiento de
interrupción.
3
Al recibir el controlador el pulso por su entrada INTA
comienza a arbitrar las interrupciones recibidas y selecciona la
más prioritaria.
4
El controlador indica en el ISR que dispositivo debe ser
atendido (la interrupción de mayor prioridad).
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
Ciclo de reconocimiento de interrupción
1
Tras la activación de una lı́nea IR, el controlador activa la
salida INTR señalándole a la CPU la existencia de una
interrupción activada.
2
Al recibir la señal, el procesador da un pulso en su salida
INTA indicando que comienza un ciclo de reconocimiento de
interrupción.
3
Al recibir el controlador el pulso por su entrada INTA
comienza a arbitrar las interrupciones recibidas y selecciona la
más prioritaria.
4
El controlador indica en el ISR que dispositivo debe ser
atendido (la interrupción de mayor prioridad).
5
El procesador obtiene la dirección de la rutina de interrupción
a partir de este dato y salta a ella. Atómicamente almacena el
registro de flags y el PC.
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
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.
Introducción
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
Interrupciones: Ejercicio 4
Enunciado
a) Describa la configuración inicial del sistema suponiendo que se usa un PIC Intel
8259.
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. Suponiendo que el
registo IMR se encuentra mapeado en la dirección 0xFFFA.
Introducción
¿Preguntas?
Ejercicios
PIC: Intel 8259
Más ejercicios
Preguntas
Descargar