Dispositivos E/S

ÍNDICE




RESUMEN


El siguiente ensayo se centra en el estudio del sistema de E/S y se mostrara las principales técnicas utilizadas y de qué características debe tener el hardware y el software necesario para gestionar las diferentes maneras de realizar la transferencia de información entre el computador y el periférico. Todo computador necesita llevar a cabo intercambio de información con personas u otras máquinas tecnológicas mediante unos dispositivos denominados dispositivos periféricos. Para hacer una operación de E/S entre el computador y un periférico, es necesario conectar estos dispositivos al computador y gestionar de manera efectiva la transferencia de datos. Para hacerlo, el computador dispone del sistema de entrada/salida (E/S).
Este sistema de E/S es la interfaz que tiene el computador con el exterior y el objetivo que tiene es facilitar las operaciones de E/S entre los periféricos y la memoria o los registros del procesador. Para gestionar las operaciones de E/S es necesario un hardware y la ayuda de un software.



CAPÍTULO I

MARCO TEÓRICO

1.1.  Dispositivos E/S

Se denominan dispositivos de E/S tanto las unidades periféricas en sí como aquellas "intermediarias”, que se encargan de efectuar una transferencia entre la memoria interna y la memoria externa en los periféricos. (Quiroga, 2010)
En toda transferencia se utilizan señales de control, dato y dirección, esta vez sobre los buses de E/S. Las señales de control y tiempo se utilizan para regular la transferencia elemental, indicando cómo y cuándo debe ocurrir

1.1.1.      Controladores

El término controlador se utiliza en gran medida para definir cualquier unidad hardware "que gobierne” a otra.
 Un controlador de periférico es un dispositivo asociado en forma directa al periférico, que puede estar físicamente integrado a él, o bien separado de éste, y está constituido por:
·         Un buffer interno (memoria RAM), que permite el almacenamiento de la información que "viaja” desde o hacia el soporte.
·         Una lógica de control, que interpreta comandos de periférico, genera señales para su ejecución y gobierna así la unidad. (Quiroga, 2010)
El trabajo del controlador es convertir el flujo de bits serial en un bloque de bytes y realizar cualquier corrección de errores necesaria. Por lo general, primero se ensambla el bloque de bytes, bit por bit, en un búfer dentro del controlador. Después de haber verificado su suma de comprobación y de que el bloque se haya declarado libre de errores, puede copiarse a la memoria principal.

1.1.2.      Adaptadores

Un adaptador provee una función para conectar y lograr la operación de un componente conectado a un bus. Un adaptador puede residir en una tarjeta o en la placa del sistema (integrado en un chip). Por ejemplo, un adaptador gráfico de video se usa para controlar la operación de un video y su relación con el bus.
Las unidades que constituyen este adaptador son básicamente el controlador de video (p.ej., trazado de rayos), el procesador de video (p.ej., procesa imágenes según estén codificadas; como rotarlas) y el conversor digital-analógico (p.ej., convierte la imagen digital a señal analógica y regula la frecuencia de refresco de pantalla). O sea que todo dispositivo que no cumpla la función por sí solo necesita su propio adaptador; por ejemplo, un adaptador de red es un dispositivo que, instalado en una placa principal de una computadora personal, conecta ésta físicamente a una red que puede ser pública o privada. (Quiroga, 2010)

1.1.3.      Puerto de E/S

Un puerto (port) es un área de almacenamiento alojada en una interface, que permite la comunicación de un periférico con la memoria para enviar o recibir una secuencia de bits.
El software de sistema la identifica con un nombre, por ejemplo, COMI, de la interfaz RS232 (el protocolo de transferencia puede "dar nombre" a la interfaz) al que nos referimos por su extendido uso, pero actualmente reemplazado por puertos más evolucionados como el USB. (Quiroga, 2010)

1.2.  Modalidades de entrada/salida

El sistema operativo cuenta con programas que gestionan las transferencias de entrada/salida, pero esta vez en un nivel superior o, si lo queremos ver de otro modo, un nivel más abstracto. Estos programas realizan funciones comunes a todos los dispositivos periféricos, más allá de las particularidades de cada uno de ellos; por ejemplo, la medida real de un sector de disco no es importante en este nivel, sino que se asume un tamaño lógico que involucre a uno o varios de ellos como bloque de información. Desde el punto de vista de un programa de aplicación, un proceso que ejecuta la CPU actualmente puede ir escribiendo datos en un “área de almacenamiento” hasta completar el bloque, en este momento recién se llama al servicio para realizar la transferencia del bloque completo; si seguimos con el mismo ejemplo, a su vez, este servicio pide la intervención del driver que gestiona la transferencia de unidades menores (sectores) “a la medida” del disco que se ha de acceder. (Quiroga, 2010)
La relación entre el programa de aplicación en estado de ejecución como peticionario del servicio de transferencia y el hardware de entrada/salida como su proveedor se muestra en el siguiente ciclo:
Aplicación Programa de E/S del nivel abstracto Driver Hardware
Una transferencia completa involucra varias transferencias elementales.
Para llevar a cabo la transferencia completa se pueden identificar modos o métodos los cuales se muestran a continuación:
·         Transferencia controlada por programa.
·         Transferencia iniciada por interrupción.
·         Transferencia con acceso directo a memoria.
·         Transferencia a través de un procesador IOP o modo canal

1.2.1.      Transferencia controlada por programa

Cuando la transferencia se denomina controlada por programa (en inglés, Program I/O, en siglas PIO), la que ejecuta el programa de E/S es la CPU, que para comunicarse utiliza un bloque hardware denominado interfaz. De esta manera, es la CPU la que controla el acceso a memoria para ubicar el dato, a través de sus propios registros internos (p. ej., el acumulador) y los de la interfaz (p. ej., un número de puerto). En esta modalidad la CPU debe verificar el estado de la interfaz a través del puerto de control en forma continua. (Quiroga, 2010)
Los datos se intercambian entre el CPU y el módulo de E/S. El CPU ejecuta un programa que controla directamente la operación de E/S, incluyendo la comprobación del estado del dispositivo, el envío de la orden de lectura o escritura y la transferencia del dato. Cuando el CPU envía la orden debe esperar hasta que la operación de E/S concluya. Si el CPU es más rápido, éste estará ocioso. El CPU es el responsable de comprobar periódicamente el estado del módulo de E/S hasta que encuentre que la operación ha finalizado.
Normalmente habrá muchos dispositivos de E/S conectados al sistema a través de los módulos de E/S. Cada dispositivo tiene asociado un identificador o dirección. Cuando el CPU envía una orden de E/S, la orden contiene la dirección del dispositivo deseado.

1.2.2.      Transferencia iniciada por interrupción.

Una transferencia iniciada por interrupción proporciona una mejora al procedimiento anterior, que implica que la CPU, que es quien solicita la transferencia, no verifique de manera continua el estado de un dato listo para transferirse desde el dispositivo externo, sino que la interfaz asociada genere un aviso que indique que está preparada para transferir. En este caso se expresa que la interfaz provoca una interrupción y, por supuesto, esto se indica con un bit de estado denominado bit de interrupción (Interrupt Request Query o IRQ). Por cada ciclo de ejecución de una instrucción la CPU consulta por interrupciones externas; si es así, guarda la información suficiente del estado del proceso que va a interrumpir, para luego poder reanudarlo. (Quiroga, 2010)
Cuando un sistema operativo admite multiprogramación o multitask (varias tareas compartiendo los recursos) y se requiere una transferencia de datos desde un dispositivo externo para continuar con el procesamiento del programa en ejecución, se genera una llamada al sistema y se coloca el programa en ejecución en estado "en espera”; así, la CPU sigue con otro proceso. El servicio convocado se coloca en una cola de ejecución y cuando detecta por interrupción que el dispositivo ya tiene los datos solicitados y está listo para la transferencia, almacena los contenidos de los registros de CPU actuales en la memoria (resguardo de contexto), y ejecuta el servicio de E/S que atiende este tipo de transferencia.

1.2.3.      Transferencia con acceso directo a memoria.


El acceso directo a memoria (DMA, del inglés direct memory access) permite a cierto tipo de componentes de una computadora acceder a la memoria del sistema para leer o escribir independientemente de la unidad central de procesamiento (CPU). Muchos sistemas hardware utilizan DMA, incluyendo controladores de unidades de disco, tarjetas gráficas y tarjetas de sonido. DMA es una característica esencial en todos los ordenadores modernos, ya que permite a dispositivos de diferentes velocidades comunicarse sin someter a la CPU a una carga masiva de interrupciones.
Una transferencia DMA consiste principalmente en copiar un bloque de memoria de un dispositivo a otro. En lugar de que la CPU inicie la transferencia, la transferencia se lleva a cabo por el controlador DMA. Un ejemplo típico es mover un bloque de memoria desde una memoria externa a una interna más rápida. Tal operación no ocupa al procesador y, por ende, éste puede efectuar otras tareas. Las transferencias DMA son esenciales para aumentar el rendimiento de aplicaciones que requieran muchos recursos.

CONCLUSIONES


·         La E/S se implementa mediante periféricos los cuales permiten la transferencia de información entre la CPU y el mundo exterior.
·         En la E/S programada La CPU tiene el control absoluto de la operación de E/S: por lo cual este inicia y lleva a cabo la transferencia.


·         Los dispositivos periféricos están conectados al controlador de dispositivo el cual admite comandos abstractos de la CPU y se encarga de transmitirlos al dispositivo



RECOMENDACIONES

·         Si se quiere evitar que la CPU sea la encargada de transferir datos entre la memoria y el periférico es recomendable utilizar el DMA.
·         Es necesario conocer que al usar E/S con interrupciones, esta consume mucha CPU ya que cada byte leído/escrito pasa por la CPU desde/hacia la memoria.


BIBLIOGRAFÍA

Quiroga, P. (2010). Arquitectura de Computadoras. Buenos Aires: Alfaomega.

Comentarios

Entradas más populares de este blog

Máquinas multinivel, máquinas virtuales, compiladores, intérpretes y ensamblador.

Funcionamiento de la memoria RAM, Cache, ROM, tipos de memoria internas y externas

Memoria externa, Memoria óptica y funcionamiento de dispositivos.