6. Entrada y Salida Explicación de la interfaz entre el computador y el mundo exterior. 6.1. El subsistema de E/S ¿Qué es E/S en un sistema computador? Aspectos en el diseño del subsistema de E/S: localización de los datos, transferencia de los datos y sincronización. Estandarización de las interfaces de E/S; formas de sincronización: E/S programada, interrupciones de E/S y acceso directo a memoria. Estructuras del bus de E/S: conexión procesador-interfase E/S. 1 / 16 6.2. E/S programada El procesador inicia y controla cuando finaliza la operación de E/S. 6.3. Interrupciones de E/S El procesador inicia la operación de E/S y el dispositivo lo interrumpe cuando termina. 6.4. Acceso directo a memoria (DMA) El dispositivo lee y escribe directamente en memoria. 2 / 16 6. Entrada y Salida 6.1. El subsistema de E/S ¿Qué es E/S en un sistema computador? Un teclado es un dispositivo de entrada, una impresora de salida. Un disco también: la información pasa por un subsistema de E/S que conecta el procesador y la memoria con los dispositivos. Estos dispositivos tienen características físicas muy diferentes, sobre todo con lo que respecte a la velocidad de transferencia y al tiempo de acceso. 3 / 16 El subsistema de E/S maneja comunicaciones que son asíncronas respecto a la CPU y que varían mucho en la cantidad de datos: - El procesador y la memoria funcionan en un mundo artificial regulado completamente por el reloj. - En los dispositivos de entrada la información se genera en cualquier momento. Estudiaremos las interfaces de E/S que soportan los requerimientos de transmisión de datos de los distintos periféricos. 4 / 16 Aspectos en el diseño del subsistema de E/S: (1) Localización de los datos: selección del dispositivo, dirección de los datos dentro del dispositivo. (2) Transferencia de los datos: cantidad de datos, velocidad de transmisión y sentido de la transferencia (entrada y/o salida). (3) Sincronización: salida de datos cuando el dispositivo esté preparado para recibirlos, entrada cuando los datos estén disponibles. 5 / 16 Diferentes con respecto a la transferencia de datos entre el procesador y la memoria: (1) Memoria: localización = dirección entera sin signo; E/S: 1º hay que especificar el dispositivo, y según el tipo, la localización puede ser tan compleja como un plato, pista y sector en un disco. (2) Cantidad de datos: memoria: byte, media palabra, palabra y doble palabra; E/S: varía desde 1 bit para un clic con el ratón hasta 4096 para un bloque de disco. (3) Donde realmente son diferentes. 6 / 16 Fig. 8.1, una petición a disco puede demorarse 20 ms (~106 ciclos del procesador), antes de empezar a transmitir 4096 bytes a una tasa de transferencia de un byte cada pocos ciclos de reloj. Tanto la demora, latencia, como la tasa de transferencia, ancho de banda, son independientes del reloj del procesador, viniendo determinados por el movimiento de elementos mecánicos. 7 / 16 Este ancho de banda se llama punta, el número de bytes por segundo trasferidos desde que comienza la transmisión. El ancho de banda medio, que incluye el tiempo de latencia, es mucho menor. Ejemplo: Se lee un bloque de datos de 4 Kbytes desde un disco. ¿Cuál es el ancho de banda medio de la transmisión si el disco tiene una latencia de 9ms, y un ancho de banda punta de 1 Mbyte por segundo? 8 / 16 Estandarización de las interfaces de E/S Las 3 características de una transferencia de datos de E/S dependen del tipo de dispositivo. Para conseguir cierta estandarización se utilizan las interfaces de E/S, cuya función principal es armonizar la velocidad y el protocolo del bus del procesador con los requerimientos del dispositivo. Desde el punto de vista de la CPU y del dispositivo de E/S, la interfase del dispositivo consiste en un conjunto de registros de datos y de control en el espacio de direcciones de E/S. 9 / 16 Figura 8.4: Estructura de la interfase de un dispositivo de E/S. 10 / 16 Se usan diferentes formas de sincronización para diferentes rangos de velocidad de los dispositivos: (1) E/S programada: un bit en un registro de salida indica al dispositivo que comience una operación determinada, y un bit en un registro de entrada indica al procesador la finalización de la operación. Es suficiente cuando el dispositivo ni es demasiado rápido para que el procesador lea y escriba los bits indicadores ni es demasiado lento para que el procesador espere por él. Las impresoras están en esta categoría. 11 / 16 (2) E/S por interrupción: el procesador inicia la operación de E/S y el dispositivo interrumpe al procesador cuando está listo para transferir datos. Necesaria cuando los tiempos de latencia son largos y variables. Las conexiones de red estarían en esta categoría. (3) Acceso directo a memoria (DMA): permitir al dispositivo de E/S leer y escribir en memoria directamente, sin usar el procesador. Necesaria para anchos de bada pico grande. Los discos duros estarían en esta categoría. 12 / 16 Estructuras del bus de E/S Hemos reducido los tres requerimientos de localización, transferencia de datos y sincronización a mover información de control y datos a y desde registros de E/S desde y a registros del procesador. Nos centramos entonces en el bus de conexión entre el procesador y los registros del dispositivo de E/S. Se comporta como un bus de memoria: especificación de la operación, lectura o escritura, y de la fuente o destino de la misma. 13 / 16 Puede diferenciarse en la temporización y la sincronización, o puede dejarse esas diferencias a las interfaces de E/S. Diferentes computadores tienen distintos grados de separación entre la transmisión de datos de E/S y de memoria: 14 / 16 (1) E/S aislada: subbuses de dirección, datos y control separados. (2) E/S compartida: en común los subbuses de datos y direcciones. (3) E/S mapeada en memoria: se utiliza un solo bus para E/S y memoria. Un rango de direcciones de memoria se reserva para los registros de E/S, y estos registros son leídos y escritos utilizando las instrucciones estándar de carga y almacenamiento. Se utiliza en la mayoría de los procesadores modernos. 15 / 16 Fig. 8.3 muestra el espacio de direcciones de un sistema con E/S mapeada en memoria. 16 / 16