38 UNIDAD 3 Interfaz de E/S Básica, Interrupciones y E/S Controlada por DMA Por muy poderosa que sea una unidad central de procesamiento (CPU), la utilidad de una computadora depende esencialmente de sus capacidades de entrada y salida. Es decir sin ellas, no habría por ejemplo entrada desde el teclado, ni salida desde la pantalla, ni salida impresa y ni siquiera almacenamiento y recuperación en disco. Para ello se requiere utilizar rutinas y medios especializados que permitan procesar la entrada y la salida. Motivado a esto, se presenta en esta unidad y sus interfaces, específicamente con el introducen dos técnicas avanzadas de E/S, memoria, además de los componentes y posibles. el estudio de los componentes de E/S microprocesador. Posteriormente se las interrupciones y acceso directo a las configuraciones que las hacen Objetivo de la Unidad 3: Resolver problemas de atención a los dispositivos de E/S, haciendo uso de interfases básicas programables y/o por interrupción y/o controladas por DMA. Contenido de la Unidad 3: El contenido de la unidad contempla el estudio de los siguientes temas: Interfaz básica de E/S. Interrupciones. Acceso directo a la memoria. E/S controlada por DMA. 39 Actividades recomendadas para el estudio del contenido de la unidad 3. 1.- Examine la tabla 3.1, en ella contentivos de la unidad 3: TÍTULO puede identificar las MATERIAL DE REFERENCIA lecturas de los temas CAPITUL O CONTENIDO Introducción a la interfaz de E/S. Decodificación de dirección de un puerto de E/S. texto Los La interfaz de El entrada/salida Microprocesadores básica. Intel, B. B. Brey. La interfaz programable. 11 periférica La interfaz programable de teclado/pantalla tipo 8279. Procesamiento interrupciones. básico de Interrupciones por hardware. Expansión de la estructura de interrupciones.. Interrupciones. El texto Los Microprocesadores Intel, B. B. Brey. Controlador de interrupción programable 8259A . 12 Ejemplos de interrupción. Acceso directo a Operación básica del DMA y texto Los memoria y E/S El el controlador del DMA 8237. controlada por Microprocesadores Intel, B. B. Brey. DMA. Operación del bus compartido. Tabla 3.1 13 40 a) Ampliación de conocimientos: El contenido Interfaz programable de comunicaciones 16550, incluido en el capítulo 11 sección 11-6, del texto Los Microprocesadores Intel, no es objeto de evaluación del curso Microprocesadores, sin embargo, se recomienda su lectura, ya que ésta es utilizada para conectarse prácticamente a cualquier tipo de interfaz serial. Atención: Para el establecimiento de una interfaz se requieren ciertos conocimientos de electrónica, el texto del curso examina algunos hechos relacionados con ella, los cuales se recomienda leer, a objeto de obtener una mejor comprensión del contenido. 2.- Lea los siguientes aspectos teóricos, a través de los cuales reforzará los conocimientos adquiridos. Buffer de tres estados (o buffer triestado). Un dispositivo lógico semiconductor que puede tener tres estados: (1) un estado lógico 0, (2) un estado lógico 1 y (3) un estado en el que la salida está, efectivamente, desconectada del resto del circuito y no tiene influencia sobre él. [Lameda,1984]. Tecnología TTL Acrónimo en Inglés de Transistor-Transistor Logic o "Lógica Transistor a Transistor". Tecnología de construcción de circuitos electrónicos digitales, en los que los elementos de entrada de la red lógica son transistores, así como los elementos de salida del dispositivo. Las características de la tecnología utilizada, en la familia TTL, condiciona los parámetros que se describen en sus hojas de características según el fabricante: Su tensión de alimentación característica se halla comprendida entre los 4.75 V y los 5.25 V como se ve un rango muy estrecho debido a esto, los niveles lógicos vienen definidos por el rango de tensión comprendida entre 0.2 V y 0.8 V para el estado L (bajo) y los 2.4 V y Vcc para el estado H (alto). La velocidad de transmisión entre los estados lógicos es su mejor baza, ciertamente esta característica le hacer aumentar su consumo siendo su mayor enemigo. Motivo por el cual han aparecido diferentes versiones de TTL como FAST, LS, S, etc y últimamente los TTL: HC, HCT y HCTLS. En algunos casos puede alcanzar poco más de los 250 Mhz. [http://es.wikipedia.org/wiki/Tecnolog%C3%ADa_TTL]. Nota: Vcc es el nivel de 5 V (voltios). 41 LED (siglas en inglés de Diodo Emisor de Luz). Semiconductor especial que emite luz, cuando lo recorre una corriente eléctrica. [Sayers 1995]. Interfaces con el microprocesador. La mayoría de los microprocesadores tiene poco valor funcional por si mismos. Muchos no contienen una memoria sustancial, y pocos tienen puertos de entrada y salida que los conecten directamente a dispositivos periféricos. Los microprocesadores operan como parte de un sistema. La interconexión, o enlace, de las partes en este sistema se denomina interfaz. [Tokheim, 1995]. E/S asignada a memoria y E/S aislada. Cuando el procesador, la memoria principal y la E/S comparten un bus común, son posibles dos modos de direccionamiento: asignado en memoria (memorymapped) y aislado. Con las E/S asignadas a memoria, existe un único espacio de direcciones para las posiciones de memoria y los dispositivos de E/S. La CPU considera los registros de estado y de datos de los módulos de E/S como posiciones de memoria, y utiliza las mismas instrucciones máquina para acceder tanto a la memoria como a los dispositivos de E/S. Así por ejemplo, con 10 líneas de dirección se puede acceder a un total de 1024 posiciones de memoria y direcciones de E/S, en cualquier combinación. Con la E/S asignadas en memoria, se necesita una sola línea de lectura y una sola línea de escritura en el bus. Alternativamente, el bus puede disponer de líneas de lectura y escritura en memoria junto con líneas para órdenes de entrada y salida. En este caso, las líneas de órdenes especifican si la dirección se refiere a una posición de memoria o a un dispositivo de E/S. El rango completo de direcciones está disponible para ambos. De nuevo, con 10 líneas de dirección, el sistema puede soportar ahora 1024 posiciones de memoria y 1024 direcciones de E/S. Puesto que el espacio de direcciones de E/S está aislado del de memoria, éste se conoce con el nombre de E/S aislada. [Stallings, 2000]. Protocolo con respuesta (Handshaking) Un típico sistema de comunicación en paralelo puede ser de una dirección (unidireccional) o de dos direcciones (bidireccional). El más simple mecanismo utilizado en un puerto paralelo de una PC es de tipo unidireccional y es el que analizaremos en primer lugar. Distinguimos dos elementos: la parte transmisora y la parte receptora. La parte transmisora coloca la información en las líneas de datos e informa a la parte receptora que la información (los datos) están disponibles; entonces la parte receptora lee la información en las líneas de datos e informa a la parte transmisora que ha tomado la información (los datos). Observe que ambas partes sincronizan su respectivo acceso a las líneas de 42 datos, la parte receptora no leerá las líneas de datos hasta que la parte transmisora se lo indique en tanto que la parte transmisora no colocará nueva información en las líneas de datos hasta que la parte receptora remueva la información y le indique a la parte transmisora que ya ha tomado los datos, a ésta coordinación de operaciones se le llama acuerdo ó entendimiento. Bien, en éstos ámbitos tecnológicos es recomendable utilizar ciertas palabras en inglés que nos permiten irónicamente un mejor entendimiento de los conceptos tratados. Repito: a la coordinación de operaciones entre la parte transmisora y la parte receptora se le llama handshaking, que en español es el acto con el cual dos partes manifiestan estar de acuerdo, es decir, se dan un apretón de manos. El handshaking Para implementar el handshaking se requieren dos líneas adicionales. La línea de estroboscopio (en inglés strobe) es la que utiliza la parte transmisora para indicarle a la parte receptora la disponibilidad de información. La línea de admisión (acknowledge) es la que utiliza la parte receptora para indicarle a la parte transmisora que ha tomado la información (los datos) y que está lista para recibir más datos. El puerto paralelo provee de una tercera línea de handshaking llamada en inglés busy (ocupado), ésta la puede utilizar la parte receptora para indicarle a la parte transmisora que está ocupada y por lo tanto la parte transmisora no debe intentar colocar nueva información en las líneas de datos. Una típica sesión de transmisión de datos se parece a lo siguiente: Parte transmisora: La parte transmisora chequea la línea busy para ver si la parte receptora está ocupada. Si la línea busy está activa, la parte transmisora espera en un bucle hasta que la línea busy esté inactiva. La parte transmisora coloca la información en las líneas de datos. La parte transmisora activa la línea de strobe. La parte transmisora espera en un bucle hasta que la línea acknowledge está activa. La parte transmisora inactiva la línea de strobe. La parte transmisora espera en un bucle hasta que la línea acknowledge esté inactiva. La parte transmisora repite los pasos anteriores por cada byte a ser transmitido. Parte receptora: La parte receptora inactiva la línea busy (asumiendo que está lista para recibir información). La parte receptora espera en un bucle hasta que la línea strobe esté activa. La parte receptora lee la información de las líneas de datos (y si es necesario, procesa los datos). La parte receptora activa la línea acknowledge. o La parte receptora espera en un bucle hasta que esté inactiva la línea de strobe. La parte receptora inactiva la línea acknowledge. La parte receptora repite los pasos anteriores por cada byte que debe recibir. 43 Se debe ser muy cuidadoso al seguir éstos pasos, tanto la parte transmisora como la receptora coordinan sus acciones de tal manera que la parte transmisora no intentará colocar varios bytes en las líneas de datos, en tanto que la parte receptora no debe leer más datos que los que le envíe la parte transmisora, un byte a la vez. [http://www.modelo.edu.mx/univ/virtech/circuito/paralelo.htm]. CHIP Pequeña placa o pastilla de material semiconductor usado para producir un circuito integrado. [Lameda, 1984]. Tipos de interfaces La interfaz entre el periférico y el módulo de E/S debe ajustarse a la naturaleza y la forma de funcionar del periférico. Una de las principales características de la interfaz es si es serie o paralela. En una interfaz paralela, hay varias líneas que conectan el módulo de E/S y el periférico, y se transfieren varios bits simultáneamente a través del bus de datos. En una interfaz serie, hay sólo una línea para transmitir los datos, y los bits deben transmitirse uno a uno . Las interfaces paralelas se utilizan usualmente para los dispositivos de alta velocidad, como una cinta o disco. Las interfaces serie son más propias de impresoras y terminales. [Stallings, 2000]. Técnica de E/S mediante interrupciones. Es aquella en la que el programa genera una orden de E/S y después continúa ejecutándose hasta que el hardware de E/S interrumpe para indicar que la operación de E/S ha concluido. [Stallings, 2000]. Líneas de interrupción del microprocesador Intel 80386. El microprocesador 80386 de Intel posee una línea de petición de interrupción (INTR, Interrup request) y una sola línea de reconocimiento de interrupción (INTA, Interrup Acknowledge). [Stallings, 2000]. Funcionamiento del DMA. El DMA requiere un módulo adicional en el bus del sistema. El módulo DMA (ver figura 3.1) es capaz de imitar al procesador y, de hecho, es capaz de recibir el control del sistema cedido por el procesador. Necesita dicho control para transferir datos a, y desde, memoria a través del bus del sistema. Para hacerlo, el módulo DMA debe utilizar el bus sólo cuando el procesador no lo necesita, o debe forzar al procesador a que suspenda temporalmente su funcionamiento. Ésta última técnica es la más común y se denomina robo de ciclo (cycle stealing), puesto que, en efecto, el módulo DMA roba un ciclo de bus. 44 Contador de datos Líneas de datos Líneas de direcciones DMA REQ Registro de datos Registro de dirección DMA ACK INTR Lógica de control Read Write Figura 3.1. Diagrama típico de un módulo de DMA. Cuando el procesador desea leer o escribir un bloque de datos, envía a una orden al módulo de DMA, incluyendo la siguiente información: Si se solicita una lectura o una escritura, utilizando la línea de control de lectura o escritura entre el procesador y el módulo DMA. La dirección del dispositivo de E/S en cuestión, indicada a través de la línea de datos. La posición inicial de memoria a partir de donde se lee o se escribe, indicada a través de las líneas de datos y almacenada por un módulo de DMA en su registro de direcciones. El número de palabras a leer o escribir, también indicando a través de las líneas de datos y almacenado en el registro de cuenta datos. Después el procesador continúa con otro trabajo. Ha delegado la operación de E/S al módulo de DMA, que se encargará de ella El módulo de DMA, transfiere el bloque completo de datos palabra a palabra, directamente desde, o hacia, la memoria, sin que tenga que pasar a través del procesador. Cuando la transferencia se ha terminado, el módulo de DMA envía una señal de interrupción al procesador. Así pues, el procesador sólo interviene al comienzo y al final de la transferencia (ver figura 3.2). [Stallings, 2000]. 45 CPU Mandar orden de lectura de bloque al módulo DMA Leer el estado del módulo DMA DMA Hacer otra cosa DMA CPU Figura 3.2. Acceso directo a memoria 3.- Estudie el ejemplo 3.1, en cual presenta la descripción y funcionamiento de la interfaz programable de periféricos (IPP) Intel 82C55A. Ejemplo 3.1: Descripción y funcionamiento de la programable 82C55A Intel. interfaz de periférico Este tipo de interfaz se utiliza para la E/S programada y para la E/S mediante interrupciones. El 82C55A es un módulo de E/S de propósito general integrado en un solo chip y diseñado para ser usado con el procesador Intel 8086. [Stallings,2000]. La figura 3.3 muestra el diagrama general de bloques de la IPP 82C55A de Intel. 46 Buffer de datos Bus de datos del 8086 8 Bus interno de 8 bits 8 8 A + 5 V (Vdd) Fuente de alimentación 4 Tierra (GND) CA 4 A0 A1 Read Write Reset Chip select CB Lógica de control 8 Registro de control B Buffer de datos Figura 3.3 Diagrama de bloques de la IPP 82C55A de Intel. Las 24 líneas de E/S son programables por el 8086 mediante un registro de control. El 8086 puede fijar el valor del registro de control para especificar los diversos modos de operación y configuraciones. Las 24 líneas se dividen en tres grupos de 8 bits (A, B, C). Cada grupo puede funcionar como un puerto de E/S de 8 bits. Además, el grupo C se subdivide en grupos de 4 bits (CA y CB), que pueden usarse conjuntamente con los puertos de E/S de A y B. El diagrama de la figura 3.3 es la interfaz interna con el bus del 8086. Ésta incluye un bus de datos bidireccional de 8 bits (D0 a D7), usado para transferir datos a y desde, los puertos de E/S, y para transferir la información al registro de control. Las dos líneas de direcciones (A0 y A1) especifican uno de los dos puertos de E/S o el registro de control. Una transferencia se producirá cuando la línea de selección de 47 chip (CHIP SELECT) se activa junto con la línea de lectura (READ) o escritura (WRITE). La línea RESET se utiliza para iniciar el módulo. El procesador escribe en el registro de control para seleccionar el modo de operación y para definir las señales, en su caso. En el modo 0 de operación, los tres grupos de 8 líneas externan funcionan como tres puertos de E/S de 8 bits. Cada puerto puede ser designado como de entrada o de salida. En caso contrario, los grupos A y B funcionan como puertos de E/S, y las líneas del grupo C sirven de líneas de control para A y B. Las líneas de control tiene dos funciones principales: la sincronización mediante conformidad de señales (handshaking) y la petición de interrupciones. La conformidad de un mecanismo sencillo de temporización. El emisor utiliza una línea de control como línea de datos listos (DATA READY) para indicar que hay un dato en las líneas de datos de E/S. El receptor utiliza otra línea como reconocimiento (ACKNOLEDGE), para indicar que el dato se ha leído y que las líneas de datos se pueden liberar. Se puede seginar otra línea como línea de petición de interrupción (INTERRUPT REQUEST) en el bus del sistema. 4.- En el ejemplo 3.2, se presenta una aplicación de la interfaz 82C55A, para controlar un terminal con teclado y pantalla. Ejemplo 3.2: Uso de la interfaz 82C55A para controlar la conexión de un teclado y una pantalla al microprocesador. En la figura 3.4, se ilustra el uso de la interfaz programable de periféricos Intel 82C55A. El teclado proporciona 8 bits de entrada, dos de estos bits, SHIFT y CONTROL, tienen un significado especial para el programa de gestión de teclado que ejecuta el procesador. Sin embargo este significado es transparente para el 82C55A, que simplemente acepta los 8 bits de datos y los pone en el bus de datos del sistema. Existen dos líneas para la sincronización del teclado mediante conformidad (handshaking). La pantalla también está conectada a un puerto de datos de 8 bits. De nuevo, dos de los bits tiene un significado específico que es transparente para el 82C55A. Junto a las dos líneas para la sincronización mediante conformidad, hay dos líneas más para funciones de control adicionales. 48 Petición de interrupción C3 A0 A0 A1 A2 A3 A4 A5 A6 C4 C5 R0 R1 R2 R3 R4 R5 Shift (deslazamiento) Control Dato preparado Reconocimiento 82C55A C0 B0 B1 B2 B3 B4 B5 B6 B7 S0 S1 S2 S3 S4 S5 Backspace Borrar C1 C2 C6 C7 Dato preparado Reconocmiento Blanking Borrar línea Petición de Interrupción Figura 3.4 Interfaz teclado/pantalla en el 82C55A 5.- En el ejemplo 3.3 se muestra el uso de la E/S mediante interrupciones, para leer un bloque de datos desde un dispositivo periférico y almacenarlo en la memoria. Ejemplo 3.3: E/S con interrupciones para leer un bloque de datos. En la figura 3.5 se muestra el conjunto de acciones que deben desarrollarse para procesar una E/S haciendo uso de las interrupciones. El procesador tras enviar una orden de E/S a un módulo, continúa realizando algún trabajo útil. Después, el módulo de E/S interrumpirá al procesador para solicitar su servicio cuando esté preparado para intercambiar datos con él. El procesador ejecuta entonces la transferencia de datos, y después continúa con el procesamiento previo. 49 Mandar orden de lectura al módulo de E/S CPU I/O Hacer otra cosa Leer el estado del módulo de E/S Interrupción E/S Comprobar el estado CPU Condición de error Preparado Leer una palabra del módulo de E/S Escribir una palabra en memoria No E/S CPU CPU Memoria Comprobar el estado Si Instrucción siguiente Figura 3.5. Entrada de un bloque de datos mediante interrupciones. 6.- En el ejemplo 3.4, se presenta una aplicación del PIC (controlador de interrupciones programable) 82C59A para conectar varios módulos de E/S con el microprocesador Intel 80386. 50 Ejemplo 3.4: Uso del PIC 82C59A para gestionar la interrupción de 64 módulos de E/S. En la figura 3.6 se ilustra el uso del PIC 82C59A para conectar 64 módulos de E/S. Debido a que un 82C59A sólo puede manejar hasta 8 módulos, es necesario disponer de un sistema en cascada para controlar los 64 módulos de E/S. La única responsabilidad del 82C59A es la gestión de interrupciones. Acepta la solicitud de interrupción de los dispositivos conectados a él, determina qué interrupción tiene la prioridad más alta, y se lo indica entonces al procesador activando la señal INTR. El procesador reconoce la solicitud mediante la línea INTA. Esto hace que el 82C59 sitúe el vector apropiado en el bus de datos. Entonces, el procesador puede iniciar el procesamiento de la interrupción y comunicarse directamente con el módulo de E/S para leer o escribir datos. Si se precisa controlar más de 8 módulos, se puede disponer en cascada para manejar para conectar 51 Controlador de interrupciones 82C59A esclavo Dispositivo externo 00 Dispositivo externo 01 Dispositivo externo 07 IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 INT Controlador de interrupciones 82C59A esclavo Dispositivo externo 08 Dispositivo externo 09 IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 INT Concentrador de interrupciones 82C59A maestro IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 INT Procesador 80386 INTR Dispositivo externo 15 Controlador de interrupciones 82C59A esclavo Dispositivo externo 56 Dispositivo externo 57 Dispositivo externo 63 IR0 IR1 IR2 IR3 IR4 IR5 IR6 IR7 INT Figura 3.6. Uso del controlador de interrupciones 82C59A. Entrada de un bloque de datos mediante interrupciones. 52 7.- En el ejemplo 3.5, se presenta una aplicación del funcionamiento de un módulo DMA, para escribir un bloque de 32 bytes de la dirección de memoria 100 en una terminal (un terminal de computadora consta de dos partes: un teclado y un monitor). Ejemplo 3.5: Transferencia de un bloque de 32 bytes desde memoria a un terminal de computadora, usando la técnica de E/S de DMA. La E/S controlada por interrupciones es un gran adelanto en comparación con la E/S programada [TANENBAUM, 2000]. El problema es que se requiere una interrupción por cada carácter transmitido. El procesamiento de interrupciones es costoso. Razón por la cual es necesario una forma de reducir la mayor parte de las interrupciones. La solución es regresar a la E/S programada, pero encargársela a otro dispositivo que no sea el CPU. La figura 3.7 muestra como se logra esto. Se ha añadido un nuevo chip al sistema, un controlador de acceso directo a la memoria (DMA), con acceso directo al bus. Dirección CPU DMA Memoria 100 Cuenta Controlador RS232C 32 4 100 1 Dispositivo Sentido Bus Figura 3.7. Sistema controlador DMA El chip DMA contiene al menos cuatro registros, todos los cuales pueden ser cargados por software que se ejecuta en la CPU. El primero contiene la dirección de memoria que se leerá o en la que se escribirá. El segundo contiene el número de bytes (o palabras) que se transferirán. El tercero específica el número de 53 dispositivo o espacio de direcciones de E/S que se usará, con lo que se especifica qué dispositivo de E/S se desea. El cuarto indica si los datos se escribirán en el dispositivo de E/S o se leerán de él. Para escribir un bloque de 32 bytes de la dirección 100 en una terminal (por ejemplo, el dispositivo 4), la CPU escribe los números 100, 32 y 4 en los primeros tres registros del DMA, y luego el código de escribir ( por ejemplo, 1) en el cuarto, como se muestra en la figura 3.7. Una vez inicializado con estos valores, el controlador DMA emite una solicitud de bus para leer el byte 100 de la memoria, del mismo modo como la CPU leería de la memoria. Una vez que obtiene el byte, el controlador de DMA emite una solicitud de E/S al dispositivo 4, para escribir el byte en él. Una vez completadas ambas operaciones, el controlador de DMA incrementa en 1 su registro de dirección y decrementa en 1 su registro de cuenta. Si el registro de cuenta sigue siendo mayor que 0, se lee otro byte de la memoria y se escribe en el dispositivo. Cuando la cuenta por fin llega a 0, el controlador de DMA deja de transferir data y habilita la línea de interrupción en el chip del CPU. Con DMA, la CPU solo tiene que inicializar unos cuantos registros. Una vez hecho eso, queda libre para hacer otras cosas hasta que se completa la transferencia, Ejercicios propuestos 1.- Asuma que un procesador de 16 bits y dos de 8 bits deben conectarse a un bus del sistema. Considere los siguientes detalles: • Todos los microprocesadores tiene el hardware necesario para cualquier tipo de transferencia: E/S programada, E/S mediante interrupciones y DMA. • Todos los microprocesadores tienen un bus de direcciones de 16 bits. • Hay dos tarjetas de memoria, de 64 Kbytes cada una, conectada al bus. El diseñador desea que se comparta la mayor cantidad de memoria posible. • El bus del sistema permite un máximo de cuatro líneas de interrupción y una de DMA. Haga las suposiciones adicionales que necesite, y: a) Establezca las especificaciones del bus en términos del número de líneas. b) Explique cómo es la interfaz de los dispositivos indicados arriba para conectarse al bus. 2.- Una impresora de caracteres simples podría usar razonablemente bien una entrada/salida programada, pues su velocidad es lenta. Comparada con la unidad central de procesamiento. Sin embargo, la mayoría de las impresoras modernas utiliza el acceso directo a la memoria. ¡Por qué?. 3.- ¿Por qué el acceso directo a la memoria (DMA) sería inútil si la computadora careciera de la capacidad de interrupción? 54 Consulta en otros libros [Stallings, 2000] Dedica un capítulo a los distintos aspectos de la organización de E/S, también describe la interfaz entre los módulos de E/S y los dispositivos externos. [Tokheim, 1995] Hace una presentación de las interfaces con el microprocesador. [Tanenbaum, 2000] Cubre algunos aspectos de los temas de esta unidad. [Lameda, 1984] Presenta un estudio de los métodos para introducir y extraer datos del computador, también incluye el estudio de las interfaces con dispositivos para entrada/salida. [Sayers 1995] Contiene aspectos orientados al estudio de problemas externos de interfaz de un microprocesador con el mundo real. Se sugiere consultar también los otros textos recomendados en la bibliografía. Consulta en la Web http://www.modelo.edu.mx/univ/virtech/circuito/paralelo.htm: Contiene información sobre el puerto paralelo del PC. http://www.iuma.ulpgc.es/users/armas/asignaturas/fundamentos/tutorial/entradas_y_ salidas/index.htm: Es un tutorial con información asociada a la E/S del sistema. Ejercicios de Autoevaluación 1.- Un dispositivo periférico junto con su controlador de E/S se conectará a un computador mediante el uso de un controlador DMA. Todos los módulos que conforman el sistema comparten el mismo bus “master”. El periférico solicita una transferencia al controlador de DMA, el cual a su vez solicita el bus a la CPU. Si la CPU no está utilizando el bus ni está en estado LOCK, lo concede al 55 controlador de DMA, el cual a su vez informa al periférico para que prepare los datos a transferir. En una transferencia de entrada, los datos se mueven desde el periférico (I/O) a la memoria por el bus de datos sin pasar por el controlador de DMA y sin intervención de la CPU. Las líneas de control para leer la I/O (IOR) y para escribir la memoria (MEMW) son manejadas por el controlador de DMA. De la misma forma, en una transferencia de salida los datos se mueven desde la memoria a la I/O y el controlador de DMA maneja las líneas de control para leer la memoria (MEMR) y para escribir en el periférico (IOW). Con base a lo anteriormente expuesto, solucione la manera en que debe configurarse el sistema para el control de la E/S mediante el uso de la técnica DMA y que cumpla con las especificaciones dadas. 2.- La conexión a periféricos en un sistema de microcomputador puede hacerse mediante el uso de chips especializados de entradas y salidas. Estos chips tienen como característica común su programabilidad por software y su conexión directa a los buses del sistema sin lógica auxiliar. Parta de la información dada anteriormente y resuelva el problema de la conexión de la PPI (interfaz periférica programable) tipo 82C55, en un sistema de microprocesador directamente ligados a los buses. Respuesta a los Ejercicios de Autoevaluación 1.- En la siguiente figura se presenta una solución que permite el control de la E/S, mediante el uso de un controlador DMA. 56 Se observa que el sistema configurado, consta de un periférico con su controlador de E/S, un controlador de DMA y las señales de pedido y concesión del bus que permiten alternar el "bus master" entre la CPU y el controlador de DMA 2.- La disposición de la PPI 82C55 en este tipo de sistema, se muestra a continuación: Bus de datos (8 bits) Bus de direcciones (16 bits)s) 8 CS A0 A1 Puerto A 8 D0 D7 82C55 Puerto C 8 A1 A0 __ CS Puerto B __ RD I/OR __ WR 8 RESET I/OW RESET Bus de control