Documentos de Académico
Documentos de Profesional
Documentos de Cultura
001 Entrada Salida
001 Entrada Salida
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).
En cuanto al rendimiento.
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:
influyen de una manera u otra en la determinacin del rendimiento del sistema de entrada/salida.
Medidas de rendimiento.
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.
1
Buses y Perifricos 99/00
Entrada/Salida
- 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.
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.
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
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.
2
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 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.
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
3
Buses y Perifricos 99/00
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.
1. Programacin
2. transmisin/comprobacin de estado
3. 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.
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
4
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.
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:
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
ru
ti
n
a Int Intrq
5
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.
1
PROCESADOR
I
1 INT1
2
INT2
I INT3
2
I 3
3
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
Ack
PROCE SADOR
1
INT
I
I 1 2
2
3
I
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.
6
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 1 2 3
INT
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 Contro 1
INT lador
de
2
interru
pcione
s 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 BUS
1 2 3
1
Int
ack INT
2
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
7
Buses y Perifricos 99/00
Entrada/Salida
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.
8
Buses y Perifricos 99/00
Entrada/Salida
Estructura de un teclado
5V
output 5V Pro
1 Ce
Sa
0 Dor
1
1
1 0 1 1
input
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 Pro
Ce
El controlador puede muy bien hacer la conversin, aunque esto le Sa Controlador
resta flexibilidad al procesador Dor
Cdigo de usuario
Leer del controlador cdigo ascii (esperar)
Cdigo de usuario
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.
9
Buses y Perifricos 99/00
Entrada/Salida
Pro
Ce
Sa Controlador
Dor
INT
memor
ia
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 Drq Controlador
memor
ia
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