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