Los módulos de entrada/salida (E/S) tienen las
siguientes funciones básicas:
•
Conectar con la CPU y memoria vía bus del
sistema.
•
Conectar con los periféricos mediante conexiones
de datos particularizadas.
Las
funciones o requerimientos principales de los módulos de E/S se agrupan en las
Siguientes
categorías:
•
Control y temporización.
•
Comunicación con la CPU.
•
Comunicación con los periféricos.
•
Buffer de datos.
•
Detección de errores.
Los recursos
internos del sistema, tales como memoria o bus, están compartidos por distintas
actividades, entre las que está E/S. Por ello, los módulos E/S tienen
requerimientos de control y temporización. Por ejemplo, el control de
transferencia de datos entre un periférico y la CPU debe seguir la siguiente
secuencia:
1.
La CPU pide al módulo E/S el estado del
periférico deseado.
2.
El módulo E/S proporciona el estado.
3.
Si el periférico está listo, la CPU solicita la
transferencia de datos por medio de un comando al módulo E/S.
4.
El módulo E/S obtiene el dato del periférico.
5.
El dato se transfiere desde el módulo a la CPU.
Si el
sistema emplea un bus, cada interacción entre CPU y E/S implica uno o más arbitrajes
de bus.
Una tarea
esencial del módulo E/S es servir de buffer de datos. Mientras la transferencia
es muy rápida entre éste y la CPU, con los periféricos es mucho más lenta. El E/S
realiza así la conversión de velocidades de transmisión. Finalmente, el módulo
E/S es frecuentemente responsable de realizar una detección de errores, que
pueden ser avisados por el periférico (por ejemplo, falta de papel en una impresora)
o producirse por fallos de transmisión (error de paridad de un carácter transmitido).
En la figura se muestra el diagrama
general de un módulo E/S. Los datos transferidos
desde o hacia el módulo se almacenan en uno o más registros de datos. Puede haber
también uno o más registros de estados que proporcionan información sobre el
estado actual. Un registro de estado puede actuar también como un registro de
control, aceptando información de control de la CPU. La lógica del módulo
interactúa con la CPU mediante un conjunto de líneas de control, que utiliza la
CPU para ordenar funciones al módulo (lectura/escritura), o por éste mismo
(líneas de arbitraje y estado). El módulo puede también reconocer y generar
direcciones asociadas con los dispositivos que controla. Cada módulo tiene una
única dirección o, si controla más de un periférico, un único conjunto de direcciones
(dirección base + direcciones para los distintos registros internos) El bus de direcciones
es bidireccional para módulos E/S que pueden actuar de master del bus (DMA). Finalmente,
el módulo E/S contiene lógica específica para conectar con el periférico que controla.
Un módulo
de E/S permite a la CPU controlar al
periférico únicamente con operaciones de lectura/escritura, ocultando otras
funciones más específicas (por ejemplo, rebobinar la cinta para acceder al
dato). Cuando el módulo asume funciones de alto nivel, se denomina canal E/S o
procesador E/S. Los módulos de bajo nivel, que requieren control detallado, se
denominan controladores E/S o controlador de periféricos. Cuando la CPU,
memoria principal e E/S comparten un bus común, hay dos modos de direccionamiento
posibles: mapeado de memoria y aislado. Con E/S mapeado de memoria existe un
único espacio de direcciones para las posiciones de memoria y los módulos E/S.
La CPU trata los registros de datos y estado de los módulos como posiciones de
memoria, y utiliza las mismas instrucciones máquina para acceder a memoria y
E/S. Las líneas del bus de direcciones dan un número máximo de posiciones a
direccionar, que estarán repartidas entre memoria y E/S en alguna proporción.
En el otro
caso, el bus de control dispone de líneas de lectura/escritura en memoria más otras
en entrada/salida. En este caso, el comando especifica cuándo una dirección se refiere
a memoria o E/S. Se puede utilizar todo el rango del bus de direcciones para direccionar
memoria y E/S de forma independiente, de ahí el nombre de E/S aislada. La
ventaja del primer tipo es que generalmente existen muchas más instrucciones referidas
a memoria que a E/S, lo cual permite una programación más eficiente. Por
contra, utiliza espacio del mapa de memoria.
Edgar Cesar Hernández
Edgar Cesar Hernández
No hay comentarios:
Publicar un comentario