En electrónica, telecomunicaciones y hardware, una interfaz es el puerto (circuito físico) a través del que se envían o reciben señales desde un sistema o subsistemas hacia otros. No existe una interfaz universal, sino que existen diferentes estándares (Interfaz USB, interfaz SCSI, etc.) que establecen especificaciones técnicas concretas (características comunes), con lo que la interconexión sólo es posible utilizando la misma interfaz en origen y destino. Así también, una interfaz puede ser definida como un intérprete de condiciones externas al sistema, a través de transductores y otros dispositivos, que permite una comunicación con actores externos, como personas u otros sistemas, a través de un protocolo común a ambos. Una interfaz es una Conexión física y funcional entre dos aparatos o sistemas independientes.
La computación de entrada salida, o E/S, se refiere a la comunicación entre un sistema de procesamiento de información (como un computador), y los agentes humanos u otro sistema de procesamiento de información. Las entradas son las señales o datos recibidos por el sistema, y salidas son las señales enviadas por este.
Un dispositivo de E/S es un componente electrónico que permite la transmisión y/o recepción de información de/hacia el ordenador. Como ejemplo el ratón y el teclado son dispositivos de entrada, y el monitor y la impresora son dispositivos de salida. Los dispositivos para comunicación entre computadores son típicamente dispositivos de entrada y de salida.
En la arquitectura de computadores la combinación entre la CPU y la memoria principal está considerada el cerebro de la computadora y desde este punto de vista cualquier transferencia de información desde el computador es considerada entrada, y hacia el computador es considerada Salida.
El objetivo principal es interconectar la mayor cantidad de dispositivos a un computador pero hay que atender a las distintas características que presentan cada uno de ellos y que a menudo suelen diferir de las propias del procesador, podemos destacar:
La interfaz de E/S es requerida cuando los dispositivos son ejecutados por el procesador. La interfaz debe ser necesariamente lógica para interpretar la dirección de los dispositivos generados por el procesador. El Handshaking deberá ser implementado por la interfaz usando los comandos adecuados (BUSY, READY, WAIT…), y el procesador puede comunicarse con el dispositivo de E/S a través de la interfaz. Si se intercambian diferentes formatos de datos, la interfaz debe ser capaz de convertir datos en serie a paralelo y viceversa. Los dispositivos de E/S se comunican por interrupciones con el procesador, si una interrupción es recibida, el procesador la atenderá con la rutina de interrupción correspondiente a dicha interrupción.
Un ordenador que usa E/S mapeados en memoria por lectura y escritura accede al hardware a través de la posición de memoria específica, usando el mismo lenguaje ensamblador que el procesador usa para el acceso a memoria.
Los sistemas operativos y lenguajes de programación de alto nivel facilitan el uso separado de más conceptos y primitivas abstractas de E/S. Por Ejemplo: la mayoría de sistemas operativos proporcionan aplicaciones con el concepto de fichero. Los lenguajes de programación C y C++, y los sistemas operativos de la familia unix, tradicionalmente abstraen ficheros y dispositivos como streams, los cuales pueden ser leídos o escritos, o ambas cosas. La librería estándar de C proporciona funciones para la manipulación de streams para E/S.
Actualmente se usan multitud de interfaces o controladores para las conexiones entre el procesador y los distintos periféricos (cada uno de estos últimos suele tener su propio controlador). En ocasiones se puede interconectar los periféricos con la memoria principal directamente sin pasar por el procesador para lo cual se utilizan dispositivos más avanzados como los DMA que son procesadores dedicados a dichas transferencias.
Estos dispositivos tratan de permitir la transferencias de datos hacia/desde el periférico determinado. Entre sus principales características podemos destacar:
Un sistema de E/S debe poder, como mínimo, direccionar los diferentes periféricos con los que puede establecer comunicación, establecer un sistema de comunicación entre el procesador y los controladores, y sincronizar los dispositivos de manera que no se produzcan inconsistencias o errores. Además, debería ser capaz de convertir los datos entre diferentes formatos, controlar el estado de los periféricos, llevar la cuenta de las transmisiones y tener un sistema de detección de errores.
A la hora de comunicarse con un dispositivo, el procesador sitúa su dirección asociada en el bus de direcciones. De esta forma, selecciona el dispositivo con el que quiere iniciar una transferencia de datos. La forma de identificar cada periférico es el llamado direccionamiento.
Tiene las siguientes características:
El bus de direcciones comunica el procesador con los periféricos, seleccionando aquel con el que se desea interaccionar. Este puede ser:
En función del tipo de sistema E/S, podemos encontrar diferentes formas de direccionamiento:
Existen distintas formas de interconexión que se pueden dar entre controlador y procesador. Las más destacadas son las basadas en buffer tri-estado y en las MUX/DEMUX indicando sus ventajas/inconvenientes.
Se suele usar más la alternativa basada en buffer tri-estado pues permite un mejor aprovechamiento de los dispositivos de E/S y la mejora de los mismos al dedicar mayor área de estos en la mejora de prestaciones y no en el interconexionado.
Se implementan usando un bus compartido y buffer tri-estado para cada puerto y evitar así el "volcado" de información por parte de dos o más periféricos en el bus. Las características principales de este tipo de interconexión son:
Se emplean MUX y DEMUX para seleccionar el periférico que podrá usar el bus compartido en un momento dado, impidiendo al resto de dispositivos acceder a este último. Las características principales de este tipo de interconexión son:
La sincronización con el procesador o la memoria de los dispositivos de E/S consiste en la acomodación de velocidades de ambos, ya que los periféricos suelen ser más lentos. A fin de que no se imponga el ritmo del dispositivo más lento se establecen mecanismos para saber cuándo se deben enviar/recibir datos y es común que los controladores dispongan de buffers de almacenamiento temporal de palabras y permitan aceptar señales de control de conformidad que reflejan el estado del periférico en un momento dado (listo, petición, reconocimiento, ocupado, etc).
La temporización de las operaciones de E/S puede ser de dos tipos:
Existe otra definición de los términos Sincrono/Asincrono que se puede encontrar en diferentes textos/escritos de diferentes autores dichos términos refiriéndose a las distintas definiciones:
En la temporización síncrona, la aparición de un evento está determinada por el reloj. El bus incluye una línea de reloj que es común a todos los dispositivos, y se suelen sincronizar durante el flanco de subida. Casi todos los eventos duran un único ciclo de reloj.
Este tipo de temporización sólo funciona si el dispositivo de E/S es suficientemente rápido para responder a la espera que le brinda el procesador, en caso contrario se producirán errores en la escritura de los puertos y se leerán datos no válidos del bus, por lo que las operaciones de E/S no serían correctas. Otro tema importante es que, si no se incorporan rutinas para detectar hardware inexistente, el programa podría fallar por tratar de direccionar un dispositivo que o bien no existe o bien ha sido "desconectado" del equipo.
Las operaciones de lectura y escritura funcionan de la siguiente manera:
La traducción de "handshaking" es "apretón de manos" y viene a significar que el procesador y los periféricos intercambian señales de control que les permiten sincronizar sus acciones y "colaborar" conjuntamente en la transferencia de información. Generalmente se suele considerar que existe sólo una señal de sincronización llamada ACK (aunque puede haber tantas señales de sincronización como se necesiten y esto depende del hardware del dispositivo en cuestión).
Con este procedimiento mejoramos el rendimiento de las operaciones de E/S e impedimos que se produzcan los fallos en la escritura/lectura que podían suceder con la temporización síncrona para un dispositivo existente. Sin embargo al igual que en el caso sincrono se han de incorporar rutinas que determinen si se intenta acceder a un dispositivo inexistente o "desconectado" puesto que esto si provocaría errores (entraría en un bucle infinito esperando a ACK). La solución que generalmente se adopta es que el procesador da un tiempo límite de espera por encima del cual se genera una excepción y se aborta la operación E/S.
El funcionamiento de las operaciones de lectura y escritura es el siguiente:
Además de las funciones principales, existen otras tareas de las que un sistema de E/S debe hacerse cargo. Estas son las más importantes:
Escribe un comentario o lo que quieras sobre Interfaz (electrónica) (directo, no tienes que registrarte)
Comentarios
(de más nuevos a más antiguos)