lunes, 10 de diciembre de 2012

8.1.2 Direcciones de entrada/salida (E/S)


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

No hay comentarios:

Publicar un comentario