You are on page 1of 3

Operaciones 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 slo cuando haya terminado la operacin
completa de EIS. Esta tcnica 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 perifrico y la memoria
principal, sin requerir intervencin alguna por parte del procesador. Esta tcnica
funciona de la siguiente manera: cuando el procesador desea que se imprima un
bloque de datos, enva una orden al controlador indicndole la siguiente
informacin:
Tipo de operacin: lectura o escritura.
Perifrico

involucrado en la operacin.

La

direccin de memoria desde la que se va a leer o a la que va a escribir


directamente con el controlador de dispositivo (direccin).

El

nmero de bytes a transferir (contador).

Donde el campo Operacin corresponde al cdigo de operacin de las


instrucciones mquinas normales. Especifica la operacin que debe realizar la
CCW. La unidad de control decodifica este campo y enva las seales adecuadas
de control al dispositivo. Existen varias operaciones, las ms importantes son las
siguientes:
Lectura: el canal transfiere a memoria principal un bloque de palabras de
tamao especificado en el campo n de palabras, en orden ascendente de
direcciones, empezando en la direccin especificada en el campo direccin del
dato.
Escritura: el canal transfiere datos de memoria principal al dispositivo. Las
palabras se transfieren en el mismo orden que en la operacin de lectura.
Control: se utiliza esta orden para enviar instrucciones especficas al dispositivo de
E/S, como rebobinar una cinta magntica, etc.

Bifurcacin: cumple en el programa de canal la misma funcin que una


instruccin 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
direccin del dato como la direccin de la siguiente CCW a ejecutar.
Flags: Los bits de este campo indican lo siguiente:
CC (Encadenamiento de comando): cuando este bit est a 1, indica al
canal que la siguiente CCW especifica una nueva operacin de E/S que debe
realizarse con el mismo dispositivo. El canal ejecuta primero la operacin de E/S
especificada en la CCW que tiene a 1 el flag CC. Despus ejecuta la siguiente
sobre el mismo dispositivo. Desde el punto de vista del dispositivo, las dos
operaciones resultantes de la primera y segunda CCW aparecen como dos
comandos de E/S separados.
CD (Encadenamiento de datos): una CCW con el bit CD a 1, indica al
canal que la siguiente CCW contiene una nueva direccin del dato y un nuevo n
de palabras. stos deben utilizarse para transferir un segundo bloque de datos
hacia o desde el dispositivo de E/S, mediante la orden especificada por la CCW
actual. Cuando el canal termina la transferencia de datos especificada en la CCW
con el bit CD a 1, no corta la conexin con el dispositivo de E/S, contina la
transferencia utilizando la direccin y el n de palabras de la siguiente CCW.
SKIP (Salto): este bit, cuando est a 1, hace que el programa de canal
salte un nmero de palabras igual al especificado en el campo n de palabras.
Cuando se utiliza con la orden de lectura, este flag hace que los datos se lean del
dispositivo sin que se transfieran a la memoria principal.
PCI (Interrupcin controlada por programa): el canal produce una
interrupcin cuando ejecuta una CCW con el flag PCI a 1. Si esta CCW va
precedida por otra CCW con encadenamiento de comandos, la interrupcin se
genera despus de que hayan concluido todas las transferencias de datos.
Una vez emitida la orden, el procesador contina realizando otro trabajo sin
necesidad de transferir el bloque de datos. Es el propio controlador el que se
encarga de transferir el bloque de datos del perifrico a memoria. La transferencia
se realiza palabra a palabra. Cuando el controlador ha completado la
transferencia, genera una interrupcin que activa la rutina de tratamiento
correspondiente, de tal manera que se sepa que la operacin ha concluido.
Utilizando acceso directo a memoria el procesador nicamente se ve
involucrado al inicio y al final de la transferencia. Por tanto, cuando el sistema
operativo despierta al proceso que pidi la E/S, no tiene que copiar el bloque a
memoria porque ya est all. El DMA requiere una etapa de almacenamiento

intermedio en el controlador del dispositivo para armonizar la velocidad del


dispositivo de EIS con la copia de los datos en memoria principal. La razn para
este almacenamiento intermedio reside en que una vez que el dispositivo empieza
la transferencia de datos, sta debe hacerse a velocidad constante para evitar
transferencias parciales y nuevas esperas de posicionamiento del dispositivo
sobre los datos (latencia). Una vez transferidos los datos a la memoria del
controlador, ste los copia en memoria principal aprovechando el ancho de banda
libre del bus.
Los pasos a seguir en una operacin de E/S con DMA son los siguientes:
1. Programacin de la operacin de E/S. Se indica al controlador la operacin, los
datos a transferir y la direccin de memoria sobre la que se efectuar la operacin.
2. El controlador contesta aceptando la peticin de E/S.
3. El controlador le ordena al dispositivo que lea (para operacin de lectura) una
cierta cantidad de datos desde una posicin determinada del dispositivo a su
memoria interna. 7.3.
4. Cuando los datos estn listos, el controlador los copia a la posicin de memoria
que tiene en sus registros, incrementa dicha posicin de memoria y decrementa el
contador de datos pendientes de transferir.
5. Los pasos 3 y 4 se repiten hasta que no quedan ms datos por leer.
6. Cuando el registro de contador est a cero, el controlador interrumpe a la UCP
para in dicar que la operacin de DMA ha terminado.

You might also like