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.
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:
Aunque la velocidad de transferencia de los dispositivos de presentación de datos ha sido tradicionalmente lenta comparada con la de los dispositivos de almacenamiento, en los últimos tiempos la situación está cambiando. Cada vez más, los computadores se utilizan para manejar documentos multimedia que constan de gráficos, vídeos y voz. La siguiente tabla presenta algunos parámetros de transferencia para los dispositivos modernos de E/S multimedia:
- 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
No hay comentarios.:
Publicar un comentario