Unidad 4: ADMINISTRACION DE ENTRADA / SALIDA
ADMINISTRACIÓN DE ENTRADA / SALIDA
Tanto en la E/S
programada como la basada en interrupciones, la UCP 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
UCP 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 decrementa el contador de
datospendientes 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 como 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.
Comentarios
Publicar un comentario