Вы находитесь на странице: 1из 11

Buses y Perifricos 99/00 Entrada/Salida

Sistema de entrada/salida
Un computador se compone de tres elementos bsicos: el procesador, el sistema de memoria y el sistema de entrada/salida. El sistema de entrada/salida es la parte del computador que interacta con el medio externo. Lo hace a travs de una variedad de dispositivos cuyo objetivo bsico es la transmisin de datos. El cometido de un dispositivo de entrada salida es el de traduccin de un lenguaje externo y variado a un cdigo ms prximo al computador ( y a la inversa).

1.- Caractersticas de diseo.


As como en el diseo del procesador el objetivo principal (adems del coste) es el rendimiento, en el diseo del sistema de entrada/salida se han de tener en cuentas otras y tan importantes consideraciones: Expansin. Dada la variedad de entornos en los que se puede insertar, un computador se encontrar ante una amplia variedad de lenguajes, lo que le exigir incorporar nuevos dispositivos. Recuperacin ante problemas. La comunicacin entre el computador y el dispositivo externo no siempre va a ser fiable, dependiendo del medio en el que este se ubique; el sistema de entrada/salida debe ser capaz de recuperarse ante errores de comunicacin y de cualquier otra clase de carcter impredecible; lo que significa que deben poder restablecerse conexiones cortadas, determinar situaciones de error...

En cuanto al rendimiento. Dado que su principal objetivo es la transmisin de datos, el rendimiento de un dispositivo se determina por dos parmetros relacionados con ello. Latencia: o tiempo de respuesta de un dispositivo Potencia: o capacidad del dispositivo para transmitir datos por unidad de tiempo.

La valoracin de estos dos parmetros no dependen completamente del dispositivo, sino tambin de su interrelacin con el computador: Caractersticas del dispositivo. Interaccin con el procesador. Interaccin con el sistema operativo. influyen de una manera u otra en la determinacin del rendimiento del sistema de entrada/salida. Medidas de rendimiento. Para evaluar el rendimiento de un dispositivo se utiliza principalmente la medida de ancho de banda. Sin embargo esta medida puede tener varias interpretaciones: a) Cuanta cantidad de datos es capaz de transmitir el dispositivo por unidad de tiempo. b) Cuantos accesos es capaz de admitir el dispositivo por unidad de tiempo. En ambos casos se trata de transmisin de datos, pero ambas interpretaciones se diferencian en matices. a) pide al dispositivo capacidad de transmisin de datos, esto es, potencia, mientras que b) le pide capacidad de atencin, esto es, baja latencia. Segn el medio en el que se vaya a emplear el computador y el tipo de problemas a que se vaya a enfrentar se favorecer una definicin u otra. La primera definicin favorece a problemas en los que prime la transferencia de grandes flujos de datos, mientras que la segunda definicin favorece a problemas en los que sea importante el uso compartido de ese recurso.

Buses y Perifricos 99/00 Entrada/Salida

2.- Clasificacin de dispositivos.


Previo al diseo de un sistema de entrada/salida, es importante determinar el tipo de dispositivos que se prev van a ser conectados. Esto permitir dar una orientacin al sistema hacia determinados entornos o favorecer una disposicin genrica. Por ejemplo determinar qu tipo de bus es ms conveniente utilizar o en qu niveles de una jerarqua de buses sera ms conveniente situar cada dispositivo. A ello ayudara una taxonoma de los diversos tipos de dispositivos de entrada/salida que nos podemos encontrar. Por el comportamiento en cuanto a su uso: lectura escritura lectura/escritura

En este caso el punto de referencia es el procesador. Los dispositivos de lectura son aquellos de los cuales, exclusivamente, el procesador puede obtener datos (aparte dejamos el hecho de que el procesador pueda programarlos de alguna manera escribiendo en sus registros). Los de escritura, aquellos en los que el procesador solo puede depositar datos (salvo posibilidad de leer registros de estado). Los ltimos son dispositivos de almacenamiento o de comunicacin principalmente. Por el tipo de comunicante (siendo uno el procesador) De interaccin con humanos De interaccin con mquinas De comunicacin

Los primeros se caracterizan por ser relativamente lentos en comparacin con las velocidades a que los procesadores ejecutan instrucciones. Los dispositivos de comunicacin pueden alcanzar velocidades de transmisin prximas a las del procesador. En cuanto a la interaccin con mquinas hay una amplia variedad dependiendo de qu tipo de mquinas sean. Por la tasa de transferencia de datos. El dispositivo se caracteriza sencillamente por una medida de su capacidad de transmitir datos por unidad de tiempo. En ltima instancia esta es la medida que ms interesa en el momento del diseo.

3.- Controladores
Los dispositivos no se conectan directamente al computador sino que lo hacen a travs de una interfaces llamadas controladores. Esto favorece caractersticas del sistema de entrada/salida tales como la expansin. Los controladores proporcionan, entre otras cosas, una homogeneizacin de las conexiones, adems de ofrecer tambin un traduccin entre el protocolo empleado por el dispositivo y el exigido por el procesador. Algunas de sus labores son las siguientes 1. 2. 3. 4. 5. Establecimiento, Control y Temporizacin de las comunicaciones. Comunicacin con la CPU. Comunicacin con dispositivos. Almacenamiento temporal de datos. Deteccin de errores.

Elemento muy importante para lograr una comunicacin eficaz es el protocolo. Un controlador se enfrenta a dos protocolos diferentes de comunicacin, el que emplea con el procesador y el que emplea con el dispositivo. El Controlador es la interfaz entre ambos, encargndose no solo de comunicarlos sino tambin de transmisor/ejecutor/generador de rdenes e informacin de estado sobre el dispositivo o el estado de las transacciones . As mismo el controlador puede servir al procesador disfrazando las particularidades del dispositivo ante el procesador, a este respecto la posibilidad de almacenamiento temporal de datos o la ejecucin de rdenes procedentes de ste que el controlador traduce en acciones sobre el dispositivo.

Buses y Perifricos 99/00 Entrada/Salida

Estructura de un controlador.
Un controlador es un circuito de dos caras. Por un lado se enfrenta al procesador, posiblemente conectado a un bus, y por ello debe incorporar todas las seales que se le exigen: lneas de datos, lneas de direcciones y lneas de control -bsicamente de seleccin, lectura y escritura. Para almacenar datos intermedios o informacin de estado, el controlador posee varios registros, algunos accesibles desde el procesador y otros de uso exclusivo. Pese a ser un nico dispositivo fsico, el controlador puede acaparar ms de una direccin de entrada salida que utilizar el procesador segn la tarea que vaya a realizar sobre el controlador. Por el lado del dispositivo el controlador intercambiar con ste las lneas que sean necesario segn la clase. Exigirn generalmente un conjunto de lneas de datos para transmitir la informacin y un conjunto de lneas de control para regular el protocolo de esa transaccin. Por el nmero de lneas de datos se pueden distinguir dos tipos de controladores: Comunicacin serie: Existe una nica lnea de transmisin y la informacin la atraviesa bit a bit. Es una interfaz de baja velocidad y bajo coste que puede ser adecuada para dispositivos lentos. Comunicacin paralela: El paquete de datos se enva en conjunto disponiendo de una lnea por cada bit a transmitir. Proporciona mayor velocidad de transmisin y tambin menor complejidad a un mayor coste.

Comunicacin CPU-Controlador
El procesador se comunica con el controlador para establecer contacto a su travs con el dispositivo. Con su intercesin, el procesador enviar al dispositivo rdenes de control y recibir de l informacin de estado, adems de datos. Por lo tanto los tipos de transacciones son estas cuatro: Control Estado Lectura Escritura

Las transacciones de control son aquellas en las que el procesador enva rdenes de actuacin al controlador. Algunas de estas rdenes modificarn el comportamiento del controlador, y otras son reenviadas, adecuadamente traducidas, al dispositivo para programar su conducta. El dispositivo y el propio controlador pueden responder con informacin de estado que dar a conocer su situacin al procesador.

4.- Instrucciones de entrada/salida


Desde dentro del procesador la asociacin controlador-dispositivo de entrada salida es vista como un conjunto de direcciones de entrada/salida. El procesador enva comandos y datos a tales direcciones y recibe informacin de estado y tambin datos procedentes de ellas. Estas direcciones componen lo que se denomina el espacio de direcciones de entrada/ salida del procesador. Es una cuestin de diseo el decidir cmo se va a organizar este conjunto de direcciones en relacin con el espacio de direcciones de memoria. Segn esto hay dos opciones para el espacio de direcciones de entrada/salida Mapeado en memoria: Existe un nico conjunto de direcciones en el sistema computador, una parte de este conjunto de direcciones pertenece al sistema de entrada/salida, y el resto son direcciones de memoria. En el circuito esto significa que nicamente las lneas de direccin son utilizadas para

Buses y Perifricos 99/00 Entrada/Salida seleccionar a los controladores conectados al bus. Dentro, el procesador no utiliza instrucciones especiales para distinguir entre un acceso a memoria y un acceso a entrada salida. Mapeado en e/s: Esto significa que existen dos espacios de direcciones, el de memoria y el de entrada/salida. Lo que distingue a una direccin situada en el bus de pertenecer a uno u otro espacio de direcciones es una lnea de control (IO/M en 8086). Esto quiere decir que adems del conjunto de lneas de direccin, los controladores deben comprobar el estado de esta otra lnea antes de sentirse aludidos. Ahora existen instrucciones especficas para memoria o para entrada/salida. Estas ltimas son las que activaran aquella lnea de control cada vez que son ejecutadas.

5.- Esquemas de comunicacin Procesador-entrada/salida.


Ya estamos en la accin misma. El procesador - un conjunto de instrucciones ejecutndose en l- tiene que atravesar tres fases para cumplir una transaccin de entrada/salida. La primera es la programacin del controlador y del dispositivo para prepararlos para la transaccin. El controlador puede ser programado para el tipo de datos que va trasegar o la cantidad de ellos. El dispositivo para comportarse de una de varias maneras posibles de hacerlo en la captura o emisin de informacin. La segunda fase es la transmisin de datos que puede conllevar una serie de comprobaciones del estado del controlador y/o dispositivo. Por ltimo podr ser necesaria una finalizacin con un nuevo acceso de control. 1. 2. 3. Programacin transmisin/comprobacin de estado finalizacin.

No es necesario puntualizar el grado de implicacin que tiene el procesador en una transaccin de entrada salida. stas, sin embargo, consisten generalmente en un trasiego de datos entre un dispositivo y el sistema de memoria. Posteriormente, el procesador acceder a memoria en busca de esos datos si le son necesarios. Queremos con esto demostrar que el papel del procesador en una transaccin de entrada salida es secundario. Sin embargo necesario porque es el elemento inteligente que pone en marcha, controla y da por finalizado el proceso. Si se consiguiera reducir la relevancia de la actuacin del procesador en tales transacciones, conseguiramos mejorar el rendimiento del sistema, ya que ste dispondra de ese tiempo para ejecutar instrucciones. Este es el objetivo de los diferentes esquemas de comunicacin entre el procesador y el sistema de entrada/salida. Esquema programado. Este es el esquema bsico que sigue las tres fases descritas al pi de la letra. El procesador debe dedicarse por entero a cada transaccin de entrada salida. Durante la fase de transmisin, el procesador entra en un bucle de lecturas y escrituras entre dispositivo y memoria en el cual su nica funcin es la de trasegador. Este es un tiempo de computacin considerado no til porque no se realiza ningn tipo de transformacin sobre los datos.

Uso de interrupciones. La utilidad de las interrupciones es principalmente que liberan al procesador de una espera intil, aprovechando ese tiempo en realizar una computacin ms provechosa, si la hay. En relacin con los sistema de entrada/salida estas esperas se producen principalmente debido a la menor velocidad de respuesta de los dispositivos en comparacin con la del procesador ( en trminos de ejecucin de instrucciones). En el esquema anterior el procesador debera engolfarse en un bucle comprobando constantemente el estado del dispositivo hasta que este culmine su actuacin, para pasar a la siguiente transmisin. Ahora el procesador indica al dispositivo que le avise cuando tal suceso ocurra y no entra nunca en aquel bucle, sino que se ocupa de la ejecucin de otro conjunto de instrucciones no relacionadas con el tema. Cuando el dispositivo activa la seal, el procesador vuelve a atenderle y prepararlo para una nueva transaccin. La primera consideracin a tener en cuenta es que los controladores deben incorporar esta capacidad de interrumpir al procesador. Por tanto es otra de las posibles funcionalidades de un controlador. En segundo lugar no todo tipo de transacciones pueden ser adecuadas para este esquema. Con esto quirese decir que la asuncin de un esquema de interrupciones no implica el

Buses y Perifricos 99/00 Entrada/Salida abandono del esquema programado. Obsrvese que en ambos casos las fases por las que pasa una transmisin de entrada salida son las mismas, programacin, transmisin/comprobacin de estado, finalizacin. La diferencia estara en la fase de transmisin, durante la cual el procesador no espera activamente, interrogando al controlador, sino que espera pasivamente al que el controlador le avise. Una vez lo ha hecho la tarea del procesador seguir siendo recoger el dato que se le ofrece y depositarlo en la correspondiente celda de memoria o viceversa. Por lo tanto este esquema es ms bien un complemento del anterior ms que una alternativa. Implantacin. El esquema de interrupciones exige un apoyo en el hardware. Tanto en el lado del procesador como en el lado de los dispositivos. Estos deben tener capacidad para enviar una seal al procesador y aquel debe tenerla para recibir esa seal y responder al dispositivo que la origin. La respuesta del procesador es la ejecucin de una serie de instrucciones (Rutina de atencin a la interrupcin) encargadas de atender a las tareas relacionadas con el dispositivo. Por cada uno de los dispositivos que pueden interrumpir al procesador debe existir un conjunto separados de instrucciones (una rutina de atencin diferente). Una de las tareas del procesador al responder a una interrupcin es identificar el dispositivo que la origin. Se han planteado dos esquemas: Mtodo vectorizado: es, de alguna manera, el propio dispositivo el que se identifica ante el procesador. Generalmente lo hace envindole un ndice dentro de una lista de rutinas de atencin (vector de interrupciones), que apunta a la rutina que sirve para atender a este dispositivo. Mtodo de consulta: el procesador determina, preguntando a cada uno de los dispositivos, cual es el que gener la interrupcin.

Puede ocurrir que varios controladores generen al mismo tiempo una interrupcin, entonces el procesador se ve obligado a seleccionar uno de ellos. Algunos esquemas que resuelven este problema son: Mltiples lneas de interrupcin: por lo tanto cada controlador est plenamente identificado y priorizado por la lnea por la que avisan al procesador. Consulta software: como todos los dispositivos utilizan la misma lnea de interrupcin, el procesador, al recibir un aviso debe acceder dispositivo por dispositivo inquiriendo cual ha sido el autor de la seal, el rden en que realiza las consultas establece la prioridad. Consulta hardware: Los propios dispositivos se auto seleccionan conforme a un esquema de prioridades ya previsto (ejemplo daisy chain) Arbitraje de bus: Igualmente son los propios dispositivos los que se autorregulan, en este caso compitiendo por el acceso al bus para proporcionarle al procesador el ndice en el vector de interrupciones.

Esquemas de interrupcin. Cuando queremos que un controlador tenga capacidad de disparar una interrupcin en el procesador, los elementos de que debemos disponer son los siguientes

Procesador

Controlador

ruti na Int Intrq

Buses y Perifricos 99/00 Entrada/Salida El procesador debe tener una entrada de interrupcin, consistente en una entrada que cuando se activa el contador de programa salta a una direccin determinada de memoria y comienza a ejecutar cdigo. El controlador debe tener una salida de peticin de interrupcin que se activar cuando el controlador est dispuesto a interactuar con el procesador. La rutina de atencin a la interrupcin es la que se debe ejecutar cuando se activa la interrupcin y debe estar situada en la direccin asociada con la interrupcin. Qu pasa cuando hay ms de un controlador con capacidad para interrumpir? Pues que hay ms de una rutina esperando ser disparada cuando el controlador correspondiente genere su interrupcin. Por lo tanto el procesador debe tener un medio para identificar al controlador que gener la interrupcin. Una forma de resolverlo es teniendo ms de una entrada de interrupcin.

PROCESADOR I1 I2 I3 INT1 INT2 INT3

Naturalmente este esquema est limitado al nmero de entradas de interrupcin de que disponga el procesador. Un esquema ms genrico intentara que los dispositivos se identificaran a s mismos cuando generan la interrupcin (vectorial) o en su defecto que el procesador procediera, despus de haber recibido la interrupcin a identificar al dispositivo que la gener (consulta). As el nmero de dispositivos que pueden invocar una accin en el procesador no se ve limitado por el hardware.

Esquema vectorial En el esquema vectorial el dispositivo se identifica a s mismo. El proceso de activar una interrupcin ocurre en dos fases: generar la interrupcin, reconocimiento de la interrupcin

Ack PROCE SADOR I1 I2 I3 INT 1 2 3

Una vez generada la inerrupcin, el procesador inicia un ciclo de reconocimiento. Durante este ciclo el dispositivo con mayor prioridad de los que han pedido simultneamente una interrupcin se identifica ante el procesador y este utiliza esta informacin para invocar a la rutina correspondiente.

Buses y Perifricos 99/00 Entrada/Salida El concepto de prioridad en cualquier esquema de interrupcin es muy importante, en primer lugar porque hay que tomar una decisin cuando varios dispositivos realizan una peticin simultneamente y en segundo lugar porque hay dispositivos que requieren una atencin inmediata mientras que otros pueden verse postergados sin perjuicio relevante. Una forma de resolver este problema es el daisy chain. Durante el ciclo de reconocimiento el procesador genera el reconocimiento y el primer dispositivo que lo detecte es el que se identifica colocando su identificador en el bus que el procesador leera a continuacin. Procesador BUS Ack INT 1 2 3

Otro esquema es el utilizado por el 8086 en el que la tarea de identificar al dispositivo que gener la interrupcin es realizada por un controlador.

Bus PROCE SADOR INT

Contro lador de interru pcione s

1 2 3

El esquema por consulta obliga al procesador, durante el ciclo de reconocimiento a explorar uno por uno los dispositivos hasta dar con el que gener la interrupcin. Para ello va leyendo uno por uno el estado de cada dispositivo en el que figurar si el dispositivo ha solicitado la interrupcin

Procesador 1 2 3

BUS 1 Int ack INT 2 3

Cuando recibe la peticin de interrupcin, el procesador activa una rutina de atencin genrica que se encarga de preguntar a cada controlador su estado. Como los explorar secuencialemente el controlador que tenga la direccin ms baja ser el de mayor prioridad. Cuando haya detectado el controlador de mayor prioridad de los que hayan solicitado la interrupcin invocar a su rutina correspondiente. Acceso directo a memoria. DMA. Este es el tercer esquema que igualmente es complementario y no antagonista con los mencionados antes. Considerando que el papel de procesador en una transaccin de entrada/salida es meramente de trasladador de datos, el esquema DMA propone

Buses y Perifricos 99/00 Entrada/Salida que exista otro controlador con cierto grado de inteligencia que realice estas labores en lugar del procesador. Este esquema por lo tanto exige que exista un controlador que pueda leer datos de memoria o un dispositivo y posteriormente escribirlos en un dispositivo o memoria sin la ayuda del procesador. De manera que para un procesador una transaccin e/s consistira en programar tal controlador de DMA para indicarle: Dnde estn los datos de origen. Dnde estn los datos de destino. Cunta cantidad de datos es.

y posteriormente liberarle para que actuase por su cuenta. Al final de la transaccin el controlador de DMA avisara al procesador, por medio de una interrupcin, y este comprobara que la transaccin completa se ha realizado satisfactoriamente, frotndose la manos. Una de las funcionalidades que ha de tener este controlador, entonces, es la de tener capacidad de interrumpir al procesador para que ste no se tenga que ver obligado a quedarse esperando en un bucle de consulta al controlador, lo que eliminara toda la operatividad del asunto. Acceso al bus. Un controlador de DMA es un maestro de bus. Quirese decir que debe tener capacidad de iniciar una transaccin. Para ello ha de robarle el bus al procesador, impidindole su uso a este durante el cumplimiento de su labor. Esto puede perjudicar al procesador si el nmero de transacciones es muy alto por lo que dichos controladores operan siguiendo una poltica de robo de ciclos. Consiste esta poltica en esperar a que el procesador haya liberado el bus, al final de un ciclo de acceso, obtener el bus entonces, realizar una nica transaccin y devolverlo, para esperar a la siguiente oportunidad. Mientras el procesador no usa el bus, el controlador de DMA lo aprovecha para realizar sus transacciones, pero nunca le disputara el bus al procesador cuando este tratase de utilizarlo.

Buses y Perifricos 99/00 Entrada/Salida

Ejemplo de evolucin del sistema de entrada/salida a partir de un teclado


Un teclado es una matriz de lneas elctricas. La pulsacin de una tecla comunica una fila con una columna. La identificacin de la fila y la columna correspondientes nos proporciona un cdigo de tecla pulsada. A continuacin el procesador debe traducir ese cdigo a un cdigo reconocible, sea ASCII, (consultando unas tablas que asocian cdigos de tecla pulsada con cdigo ASCII). La interfaz de un procesador con un dispositivo de este tipo es en el ejemplo un puerto de 4 lneas de salida y otro puerto de 4 lneas de entrada. Y las tareas que tiene que realizar el procesador son, suponiendo que en medio de el cdigo de usuario que est ejecutando necesite leer un carcter de teclado

Estructura de un teclado
5V output 1 0 1 1 1 0 1 input 1 5V
Pro Ce Sa Dor

Cdigo de usuario Explorar el teclado (implica esperar hasta que haya una tecla pulsada) Convertir cdigo de tecla pulsada a cdigo ascii Cdigo de usuario El siguiente paso es facilitarle la tarea al procesador. Para ello trasladamos la accin de explorar el teclado a un dispositivo fuera del procesador, el controlador. Cada vez que lo desee el procesador se limitar a leer del controlador la tecla pulsada. Si no hay tecla pulsada (cdigo FF) el procesador esperar hasta que se pulse una (lo que implica lecturas sucesivas de la salida del controlador). La interfaz del procesador con el controlador se ha simplificado, nicamente ocho bits de entrada. Ahora el cdigo se reduce a:

Cdigo de usuario Leer del controlador (esperar hasta que haya tecla pulsada) Convertir cdigo de tecla pulsada a cdigo ascii Cdigo de usuario El controlador puede muy bien hacer la conversin, aunque esto le resta flexibilidad al procesador Cdigo de usuario Leer del controlador cdigo ascii (esperar) Cdigo de usuario

Pro Ce Sa Dor

Controlador

A continuacin introducimos las interrupciones. Preferimos que el cdigo de usuario no espere por la tecla pulsada, sino que pueda continuar su ejecucin si no se ha pulsado ninguna tecla. Para ello el cdigo de ususario lee la tecla de un buffer. Puede decidir, en el caso de que el buffer est vaco, esperar o continuar la ejecucin en la confianza de que si se pulsa una tecla esta ser almacenada hasta su uso.

Buses y Perifricos 99/00 Entrada/Salida

Pro Ce Sa Dor INT

Controlador

memo ria Cdigo de usuario Consultar el buffer de teclado Cdigo de usuario Interrupcin (Cada vez que el teclado genera una interrupcin) Leer cdigo ascii de la tecla pulsada Escribir en la memoria (buffer)

Ahora lo que ocurre es que cada vez que se pulsa una tecla, el cdigo de usuario se ve desplazado del procesador para que el cdigo de interrupcin lea el valor de la tecla del controlador y lo escriba en memoria. El cdigo de interrupcin no elabora el valor ledo sino que se limita a trasladarlo desde el controlador a su localizacin de memoria. Introduccin de DMA El mecanismo de DMA intercepta la interrupcin del controlador de teclado, lee la tecla que le proporciona y la escribe en su localizacin de memoria. En todo el proceso el procesador no se ve interrrumpido y permanece ejecutando cdigo de usuario. Al final de la realizacin, el controlador DMA puede avisar al procesador de que la tarea ha sido realizada.

Pro Ce Sa Dor INT DMA memo ria Drq Controlador

10

Buses y Perifricos 99/00 Entrada/Salida BIBLIOGRAFA: Organizacin y arquitectura de computadores. Diseo para optimizar prestaciones William Stallings Prentice Hall 4 edicin 1997 Computer, organization and Design. The hardware/software interface David A. Patterson. John L. Hennessy Morgan Kaupfman. 1998

11

Вам также может понравиться