Beruflich Dokumente
Kultur Dokumente
Entrada/Salida
Importancia Se considera a los modulos de E/S como los siguiente en impor tancia despues del CPU y la memoria. Cada modulo se conecta al bus del sistema o a un conmutador central y controla uno o mas dispoisitivos perifericos. El modulo de E/S tiene la logica necesaria para permitir la comunicacion entre el periferico y el bus. Las razones por las cuales los perifericos no se conectan directamente al bus del sistema son: Por la amplia variedad existente de perifericos que tienen for mas de funcionamiento diferentes. No justica colocar la logica en el CPU para controlar tal diversidad.
Por su velocidad de transferencia de datos (que es mucho menor que la memoriao o el CPU)
Por lo anterior se requieren de modulos de E/S, debiendo cumplir las siguientes funciones: Interfaz entre la CPU y la memoria a traves del bus del sistema o un conmutador central. Interfaz entre uno o mas disposistivos perifericos.
Dispositivos Externos Las operaciones de E/S se realizan a traves de dispositivos que proporcionan una forma de intercambiar datos entre el exterior y la computadora. Los dispositivos se conectan al computador median te un enlace a un modulo de E/S, con el que intercambia senales de control (que debe realizar), estado y datos. A estos dispositivos se les conoce como dispositivo periferico. Los dispositivos externos se pueden clasicar en: De interaccion con humanos (terminales de vdeo, impresoras). De interaccion con maquinas (discos magneticos, sistemas de cinta). De comunicacion
Teclado/Monitor La forma de interaccion mas comun entre computadora/usuario se hace a traves del teclado/monoitor. La unidad basica de intercam bio es el caracter, y para cada caracter hay un codigo de 7 u 8 bits conocido como ASCII. Los caracteres son de dos tipos: impri mibles (alfabeticos, numericos y especiales) y de control (formato, transmision, separadores de informacion y otros).
Controlador de disco (Disk Drive) Contiene la electronica necesaria para intercambiar senales de da tos, control, y estado, ademas la electroncia para el control de lectura/escritura. En un disco de cabeza ja, el transductor hace la converion entre los patrones magneticos y los bits del buffer, en un disco de cabeza movil se mueve radialmente el brazo del disco.
Modulos de E/S Funcion Es el responsable del control de uno o mas dispositivos externos, y del intercambio de datos con la memoria principal o los registros del CPU. Tiene una interfaz interna a la computadora (con el CPU y la memoria) y una interfaz externa (para los dispositivos). Las principales funciones son: Control y temporizacion. Comunicacion con la CPU. Comunicacion con los dispositivos.
Almacenamiento temporal de datos.
Deteccion de errores.
El CPU puede comunicarse con uno o mas dispositivos externos en cualquier orden, de acuerdo a las necesidades de E/S. La memoria principal y el bus del sistema, deben compartirse para diversas ac tividades. El control y la temporizacion permiten coordinar el traco entre los recursos internos y externos. Los siguientes pasos permiten el control de la transferencia de datos de un dispositivo externo al CPU:
1. El CPU revisa el estado del dispositivo preguntando al m odulo de E/S a traves del cual esta conectado. 2. El modulo de E/S indica el estado del dispositivo. 3. Si el dispositivo est funcionando y preparado para transmitir, el CPU a solicita la transferencia del dato mediante una orden al m odulo de E/S. 4. El modulo de E/S obtiene un dato del dispositivo externo. 5. Los datos se traseren desde el m odulo de E/S a la CPU.
Se establece una comunicacion con el CPU y con el dispositivo externo que implica: 1. Decodicacion de ordenes Las ordenes dadas por el CPU al modulo de E/S se envan usando el bus de control. 2. Datos Usan el bus de datos el CPU y los modulos de E/S para intercambio de datos. 3. Informacion de Estado Indica el estado (BUSY, READY) y posi blemente senales para informar ciertas situaciones de error. 4. Reconocimiento de Direccion Al igual que las palabras de me moria, cada dispositivo de E/S tiene una direccion unica para cada uno de los perifericos que controla.
Funciones del modulo de E/S El modulo de E/S tambien se debe comunicar con el dispositivo, con el que intercambia ordenes, informacion del estado y datos. Otra actividad importante del modulo de E/S es el almacenamiento temporal de datos (data buffering), ya que la conexion de elementos de alta velocidad (memoria, CPU) y perifericos lentos, hara que las prestaciones del sistema se degraden, por los tiempos de espera para los perifericos lentos. El modulo de E/S es responsable de la deteccion de errores y de informarlos al CPU. Una clase de errores son por defectos mecani cos y electricos (papel atascado, pista de disco defectuosa) y otra clase esta constituida por la modicacion en los bits transmitidos.
. . . .
Lneas de direcciones Lgica de E/S Lneas de control
. .
Estructura del Modulo de E/S Un modulo de E/S permite que el CPU vea una amplia gama de dispositivos de una forma sencilla, encargandose de ocultar los de talles de temporizacion, formatos, y electromecanica de los dispositivos externos. Se conoce como canal de E/S o procesador de E/S al modulo que hace la mayora de los detalles de procesamiento, y al modulo sim ple que requiere un control detallado se de denomina controlador de E/S o controlador de dispositivo.
Acceso directo a memoria (DMA) El modulo de E/S y la memoria principal intercambian datos directamente, a diferencia de las dos tecnicas anteriores donde el CPU es responsable de extraer y almacenar los datos.
Posgrado de Ingeniera Electrica
E/S Programada Ordenes de E/S Al ejecutar una instruccion relacionada con una E/S, el CPU pro porciona una direccion, especicando el modulo de E/S particular y el dispositivo externo, y una orden de E/S. Los tipos de ordenes de E/S que puede recibir un modulo son: Control Se usa para activar el periferico (rebobinar cinta, avance de registro) e indicarle que hacer y dependen del tipo particular de dispositivo periferico.
Test Se usa para comprobar las diversas condiciones de estado entre el modulo de E/S y sus perifericos, por lo que el CPU puede saber si el periferico esta conectado y disponible, o si la operacion de E/S ha terminado.
Lectura Hace que el modulo de E/S capte un dato de un pe riferico y lo situe en un buffer interno, para que despues el CPU obtenga el dato solicitado indicando al modulo que lo ponga en el bus de datos. Escritura Hace que el modulo de E/S tome un dato (byte o palabra) del bus de datos y despues los transmita al periferico.
E/S programada
Mandar orden de lectura al mdulo de E/S CPU E/S
E/S
CPU
No pre parado Comprobar el estado Preparado Leer una pala bra del mdu lo de E/S
Condicin de error
E/S
CPU
CPU
Memoria
No
Instrucciones de E/S La correspondencia entre las instrucciones de E/S que la CPU cap ta de memoria y las ordenes de E/S que la CPU enva a un modulo de E/S es estrecha y frecuentemente hay una relacion de uno a uno. Cada dispositivo tiene asociado un identicador unico o direccion, cuando el CPU manda una orden de E/S, en la orden va la direccion del dispositivo, por lo que cada modulo de E/S debe interpretar las lneas de direccion para saber si la orden es para el. Si el CPU, memoria principal y los modulos de E/S comparten un bus comun, se puede direccionar en los siguientes modos: asigna do en memoria (memory-mapped) y aislado.
En las E/S asignadas en memorias se tiene un unico espacio de direcciones para las posiciones de memoria y los dispositivos de E/S. El CPU considera a los registros de estado y de datos de los modulos de E/S como posiciones de memoria y utiliza las mismas instrucciones de maquina para acceder tanto a memoria como a los dispositivos de E/S. Se requiere una sola lnea de lectura y una sola lnea de escritura en el bus Si se disponen de lneas adicionales para ordenes de entrada y salida, indican si la direccion se reere a una posicion de memoria o a un dispositivo de E/S, con lo que se logra separar el espacio de direcciones, y se le conoce como E/S aislada.
Comentario Comenzar la lectura del teclado Obtener el byte de estado Repetir bucle hasta estar preparado
516 Cargar un byte de datos E/S asignada en Memoria Operando 5 5 201 5 Comentario Comenzar la lectura del teclado Comprobar si se ha acabado Repetir el bucle hasta acabar Cargar un byte de datos E/S aislada
Comprobar el estado Preparado Leer una pala bra del mdu lo de E/S
Condicin de error
E/S
CPU
CPU
Memoria
No
E/S mediante interrupciones Con la E/S programada se tiene el problema de que el CPU tiene que esperar un tiempo para recibir o transmitir los datos, mientras el CPU espera, debe comprobar repetidamente el estado del modulo de E/S, y como consecuencia se degrada el nivel de prestaciones. Otra forma es que el CPU tras enviar una orden de E/S, continue realizando algun trabajo util. Despues el modulo de E/S interrum pira al CPU cuando este preparado para intercambiar datos, enton ce el CPU ejecuta la transferencia de datos y despues continua con el procesamiento previo. Con lo anterior se eliminan las esperas innecesarias, pero se consume gran cantidad del tiempo del CPU, ya que cada palabra de datos que va de la memoria al modulo de E/S o viceversa debe pasar a traves del CPU.
Desde el punto de vista del modulo de E/S, recibe una orden READ del CPU, luego lee el dato desde el periferico asociado. Cuando el dato esta en el registro de datos del modulo, le enva una interrup cion al CPU usando la lnea de control. Despues el modulo espera hasta que el CPU le solicita el dato. Al recibir la solicitud, el modulo situa su dato en el bus de datos y se prepara para otra operaci on de E/S. Desde el punto de vista del CPU para una entrada, el CPU enva una orden READ y pasa a realizar otro trabajo. Al nal de cada ci clo de instruccion, el CPU comprueba las interrupciones, cuando el modulo de E/S la pide, el CPU guarda el contexto (contador de pro grama y registros del CPU) y procesa la interrupcion. La CPU lee la palabra de datos del modulo de E/S y la almacena en memoria. Despues recupera el contexto y continua su ejecucion.
SOFTWARE
Procesar la interrupcin
HARDWARE
Inicio
T+M
Pila de control
N+1
T Registros
Inicio
T+M
N+1
Pila de control
Diseno Identicacion del dispositivo que provoco la interrupcion por el CPU. Multiples lneas de interrupcion entre el CPU y los modulos de E/S. Es una aproximacion directa que no resulta practica, a menos que sean pocas lneas, y aun as se conectan varios dispositivos, por lo que se debe usar alguna de las siguientes tecnicas.
Consulta software (Software poll) Una rutina de servicio de interrupcion se encarga de consultar a cada modulo de E/S para saber el que la ha provocado. La consulta la hace el CPU activando la lnea TEST E/S y situando la direccion del modulo de E/S en el buffer de direccion. El modulo de E/S respon de armativamente si solicito la interrupcion. Otra forma es que cada modulo de E/S disponga de un registro de estado direccionable, por lo que el CPU debera leer el de cada modu Posgrado de Ingeniera Electrica
lo. Despues de haberlo identicado se produce una bifurcacion para ejecutar la rutina de servicio. Una desventaja es el tiempo que consume. La Conexion en cadena (Daisy Chain) de los modulos de E/S es una consulta hardware, donde todos los modulos comparten una lnea comun para solicitar interrupciones. La lnea de reconocimiento de interrupcion se conecta encadenando los modulos uno tras otro, que es activada por el CPU al recibir una interrupcion, y que se va propagando hasta alcanzar el modu lo que la solicito. El modulo responde colacando una palabra (llamada vector ) en las lneas de datos y es la direccion del modulo. El CPU usa el vector como un puntero a la rutina de servicio del dispositivo, para evitar la ejecucion de una rutina de servicio general primeramente. Se conoce como interrupciones vectorizadas.
Posgrado de Ingeniera Electrica
Arbitraje de bus hace uso de las interrupciones vectorizadas y el modulo de E/S debe de disponer en 1er lugar del control del bus antes de poder activar la lnea de peticion de interrupcion, por lo que un solo modulo puede activar la lnea en un instan te. El CPU al detectar la interrupcion responde usando la lnea de reconocimiento de interrupcion, despues el modulo situa su vector en las lneas de datos.
Las tecnicas mencionadas identican al modulo que solicito la inte rrupcion, ademas asignan prioridades cuando mas de un dispositi vo pide que se atienda su interrupcion. Con varias lneas, el CPU selecciona la lnea con mas prioridad. Con la consulta software, el orden de consulta determina la prioridad, al igual que la cone xion en cadena. El arbitarje de bus puede emplear un esquema de prioridad.
Controlador de Interrupciones Intel 8259A El 8086 tiene una lnea de peticion de interrupcion (INTR Interrupt Acknowquest) y una lnea de Reconocimiento de Interrupcion (IN TA Interrupt Acknowledge). El 8086 se congura con un arbitor de interrupciones externo, el 8259A. Los dispositivos externos se conectan al 8259A, que a su vez se conecta al 8086. Cada 8259A puede manejar hast 8 modulos, se pueden disponer en cascada para manejar hasta 64 modulos. La funcion del 8259A es la gestion de interrupciones, determina que interrupcion tiene la prioridad mas alta activando la senal INTR, y el CPU reconoce la solicitud usando la lnea INTA, con lo que el 8259 situa el vector apropiado en el bus de datos, y el CPU inicia el procesamiento de la interrupcion y comunicacion directa con el modulo.
Posgrado de Ingeniera Electrica
Esquema de prioridad El 8259A es programable y el 8086 determina el esquema de prioridad a usar cargando una palabra de control. Se tienen los siguientes modos: Completamente anidado Las solicitudes de interrupcion se ordenan segun un nivel de prioridad (0-7).
Rotatorio Al haber dispositivos con prioridades iguales, en este modo, un dispositivo pasa a tener la menor prioridad del grupo despues de ser servido.
Con mascara especial El CPU puede inhibir selectivamente las interrrupciones de ciertos dispositivos.
Interfaz Programable de Perifericos Intel 8255A Puede usarse para la E/S programada y la E/S mediante interrup ciones. Disenado para ser usado con el 8086. Las 24 lneas de E/S son programables por el 8086 usando un re gistro de control, se dividen en tres grupos de 8 bits ( , , ). Cada grupo puede funcionar como un puerto de E/S de 8 bits. El grupo se subdivide en grupos de 4 bits ( y ) que pueden usarse conjuntamente con los puertos de E/S y . Los grupos contienen senales de control y estado. Tiene una interfaz interna con el bus del 8086. Usando dos lneas de direcciones e indica uno de los tres puertos de E/S o el registro de control. Para una transferencia se requiere que la lnea de seleccion de chip (CHIP SELECT) se active junto con la lnea de lectura (READ) o escritura (WRITE). Con la lnea RESET se inicia el modulo.
Posgrado de Ingeniera Electrica
CA CB
8 /
8 /
Buffer de datos
Diagrama de bloques
Terminales
8255A
Fuente de alimentacin
+5 voltios tierra
4 /
PA3 PA2 PA1 PA0 Read Chip Sel Tierra A1 A0 PC7 PC6 PC5 PC4 PC3 PC2 PC1 PC0 PB0 PB1 PB2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21
PA4 PA5 PA6 PA7 Write Reset D0 D1 D2 D3 D4 D5 D6 D7 V PB7 PB6 PB5 PB4 PB3
Modos de operacion El registro de control que es cargado por el CPU dene el modo de operacion y las senales, en el modo 0, los 3 grupos de 8 lneas externas funcionan como 3 puertos de E/S de 8 bits, cada uno como entrada o salida, caso contrario, los grupos y son puertos sirve para control de y . Las funciones de E/S y el grupo de la lneas de control sirven para la sincronizacion mediante con formidad de senales (handshaking) y la peticion de interrupciones. El emisor usa una lnea de control como lnea de Datos Listos (DATA READY) para indicar que hay un dato en las lneas de E/S. El receptor usa otra lnea de reconocimiento como reconocimien to (ACKNOWLEDGE), para indicar que el dato se ha ledo y que se pueden liberar las lneas de datos. Otra lnea se designa como lnea de Peticion de Interrupcion (INTERRUPT REQUEST).
Puerto de Entrada
C4 C5
Puerto de Salida
C0 Peticion de Interrupcion
C1 C2 C6 C7