OPERACIONES DE ENTRADA Y SALIDA
Tanto en la E/S programada como la basada en
interrupciones, la CPU debe encargarse de la transferencia de datos una vez que
sabe que hay datos disponibles en el controlador. Una mejora importante para
incrementar la concurrencia entre la CPU y la E/S consiste en que el
controlador del dispositivo se pueda encargar de efectuar la transferencia de
datos, liberando de este trabajo a la UCP, e interrumpir a la UCP sólo cuando
haya terminado la operación completa de E/S. Esta técnica se denomina acceso
directo a memoria (DMA, Direct Memory Access).
Cuando se utiliza acceso directo a
memoria, es el controlador el que se encarga directamente de transferir los
datos entre el periférico y la memoria principal, sin requerir intervención
alguna por parte del procesador. Esta técnica funciona de la siguiente manera:
cuando el procesador desea que se imprima un bloque de datos, envía una orden
al controlador indicándole la siguiente información:
- Tipo de operación: lectura o escritura.
- Periférico
involucrado en la operación.
- La dirección de
memoria desde
la que se va a leer o a la que va a escribir directamente con el
controlador de dispositivo (dirección).
- El número de
bytes a
transferir (contador).
Donde el campo Operación corresponde al
código de operación de las instrucciones máquina normal. Especifica la
operación que debe realizar la CCW. La unidad de control decodifica este campo
y envía las señales adecuadas de control al dispositivo. Existen varias operaciones,
las más importantes son las siguientes:
- Lectura: el canal transfiere a memoria
principal un bloque de palabras de tamaño especificado en el campo nº de
palabras, en orden ascendente de direcciones, empezando en la dirección
especificada en el campo dirección del dato.
- Escritura: el canal transfiere datos de
memoria principal al dispositivo. Las palabras se transfieren en el mismo
orden que en la operación de lectura.
- Control: se utiliza esta orden para
enviar instrucciones específicas al dispositivo de E/S, como rebobinar una
cinta magnética, etc.
- Bifurcación: cumple en el programa de canal
la misma función que una instrucción de salto en un programa normal. El
canal ejecuta las CCW en secuencia, salvo cuando aparece una CCW de este
tipo, que utiliza el campo dirección del dato como la dirección de la
siguiente CCW a ejecutar.
Los pasos a seguir en una operación de E/S con DMA son los
siguientes:
1. Programación de la operación de E/S. Se indica
al controlador la operación, los datos a transferir y la dirección de memoria
sobre la que se efectuará la operación.
2. El controlador contesta aceptando la petición
de E/S.
3. El controlador le ordena al dispositivo que
lea (para operación de lectura) una cierta cantidad de datos desde una posición
determinada del dispositivo a su memoria interna.
4. Cuando los datos están listos, el controlador
los copia a la posición de memoria que tiene en sus registros, incrementa dicha
posición de memoria y decremento el contador de datos pendientes de transferir.
5. Los pasos 3 y 4 se repiten hasta que no quedan
más datos por leer.
6. Cuando el registro de contador está a cero, el
controlador interrumpe a la UCP para in dicar que la operación de DMA ha
terminado.
Inicio y control de los programas de canal
Hemos visto cómo se utilizan los programas
de canal para realizar operaciones de E/S. Estos programas residen en la
memoria principal del computador y se ejecutan en el canal. Vamos a examinar
ahora la forma en que la CPU inicia y supervisa las operaciones de E/S, es
decir, el programa de canal. En el IBM S/370 existen cuatro instrucciones
máquina que la CPU puede utilizar para estos fines. Son las siguientes:
- START I/O
Inicia una operación de E/S. El campo de dirección de la instrucción se
emplea para especificar el canal y el dispositivo de E/S que participa en
la operación.
- HALT I/O Finaliza
la operación del canal.
- TEST CHANNEL
Prueba el estado del canal.
- TEST I/O Prueba el
estado del canal, el subcanal y el dispositivo de E/S.
Una operación de E/S se inicia con la instrucción START I/O. La
ubicación del programa de canal en la memoria principal viene definida en la
palabra de dirección de canal (CAW: Channel Address word),
que siempre está almacenada en la posición 72 de la memoria principal.
Funciones implicadas en las
operaciones de entrada/salida
Para que un computador
pueda ejecutar un programa debe ser ubicado previamente en la memoria, junto
con los datos sobre los que opera, y para ello debe existir una unidad
funcional de entrada de información capaz de escribir en la memoria desde el
exterior. Análogamente, para conocer los resultados de la ejecución de los
programas, los usuarios deberán poder leer el contenido de la memoria a través
de otra unidad de salida de datos. La unidad de Entrada/Salida (E/S)
soporta estas funciones, realizando las comunicaciones del computador (memoria)
con el mundo exterior (periféricos). Los dispositivos periféricos que se pueden
conectar a un computador se suelen clasificar en tres grandes grupos:
Dispositivos
de presentación de datos. Son dispositivos con los que interactúan los
usuarios, portando datos entre éstos y la máquina, por ejemplo, ratón, teclado,
pantalla, impresora, etc.
- Dispositivos de
almacenamiento de datos. Son dispositivos que forman parte de la jerarquía
de memoria del computador. Interactúan de forma autónoma con la máquina,
aunque también sirven para el intercambio de datos con el usuario, por
ejemplo, los discos magnéticos.
- Dispositivos de
comunicación con otros procesadores. Permiten la comunicación con
procesadores remotos a través de redes, por ejemplo, las redes de área
local o global.
- Dispositivos de adquisición de datos. Permiten la comunicación con sensores y actuadores que operan de forma autónoma en el entorno del computador. Se utilizan en sistemas de control automático de procesos por computador y suelen incorporar conversores de señales A/D y D/A.

Los dispositivos de transporte y presentación de
datos representan una carga muy baja de trabajo para el procesador
comparados con los dispositivos de almacenamiento. La siguiente tabla muestra
las velocidades de transferencia típicas para diferentes dispositivos.

- Los gráficos
requieren una gran capacidad de procesamiento de datos, hasta el punto que
se han diseñado procesadores de propósito especial para manejar de forma
eficiente las representaciones gráficas (GPU: Graphic Processor
Unit).
- El problema del
vídeo es simplemente la animación de los problemas gráficos, ya que debe
crearse una nueva imagen cada 1/30 de segundo (33 milisegundos).
- El procesamiento
de la voz es también elevado porque exige la creación o el reconocimiento
de varios fonemas en tiempo real. De hecho es el medio que más capacidad
de procesamiento requiere debido a que presenta el mayor grado de
intolerancia por retrasos en el usuario.
Los
dispositivos periféricos que pueden conectarse a un computador para realizar
entrada y salida de información presentan, pues, las siguientes
características:
- Tienen formas de
funcionamiento muy diferentes entre sí, debido a las diferentes funciones
que realizan y a los principios físicos en los que se basan.
- La velocidad
de transferencia de datos es también diferente entre sí y diferente de la
presentada por la CPU y la memoria.
- Suelen
utilizar datos con formatos y longitudes de palabra diferentes
No obstante estas
diferencias, existen una serie de funciones básicas comunes a todo dispositivo
de E/S:
- Identificación
única del dispositivo por parte de la CPU
- Capacidad de
envío y recepción de datos
- Sincronización de
la transmisión, exigida por la diferencia de velocidad de los dispositivos de
E/S con la CPU
La identificación
del dispositivo se realiza con un decodificador de direcciones. El envío y
la recepción de datos tienen lugar a través de registros de entrada
y salida de datos. Los circuitos de sincronización se manipulan por medio de
registros de estado y control. El siguiente esquema representa
gráficamente estas funciones:
Las tres funciones
básicas se pueden realizar a través del bus del sistema que conecta
la memoria y la CPU, o bien se puede utilizar un bus específico para
las operaciones de E/S. Estas alternativas se traducen en dos formas de
organización de los espacios de direcciones:
Espacios de direcciones
unificados
·
Las unidades de E/S se ubican en el espacio único de direcciones
como si fuesen elementos de Memoria.
· A cada unidad de E/S se le
asigna un conjunto de direcciones (suficiente para diferenciar todos sus
registros internos).
La interacción entre CPU y unidad de E/S se
realiza a través de instrucciones de referencia a memoria. El bus del sistema
es único.
Espacios
de direcciones independientes (Memoria y E/S)
· Las unidades de E/S se ubican en un espacio de direcciones
diferente al de memoria.
· La interacción entre CPU y unidad de E/S se realiza a través de
instrucciones específicas de E/S. La separación de espacios de direcciones
puede soportarse con un bus único de uso compartido entre Memoria y E/S en
función del estado de una línea de control MEM/IO:
Pero el desdoblamiento de
espacios de direcciones puede responder a la existencia de dos buses
independientes, uno para memoria (bus del sistema) y otro para E/S:
Funcionalmente son equivalentes, pero desde el
punto de vista de la codificación de programas difieren en el uso de las
instrucciones. En el caso de E/S asignada en memoria se utilizan instrucciones
de referencia a memoria, mientras que para E/S aislada existe un grupo
particular de instrucciones para realizar esta función.
No hay comentarios.:
Publicar un comentario