Tema 7
Entrada / Salida
Problemática Entrada/Salida
Elementos claves en un computador: Procesador, memoria y módulos de E/S
Cada módulo de E/S se conecta al bus del sistema y controla a uno o a más periféricos
¿Por qué no se conectan directamente al bus? Respuesta:
Amplia variedad de dispositivos con distintos funcionamientos
Diferencia importante de velocidad. El periférico mucho más lento
Diferentes formatos y tamaños de palabras Se necesitan módulos de E/S para
Realizar la interfaz entre procesador (CPU) y memoria a través del bus del sistema
Realizar la interfaz entre uno o más dispositivos
Dispositivos externos: clasificación
De interacción con humanos Comunicación con el usuario. Ej: impresoras
De interacción con máquinas Comunicación con elementos del equipo. Ej:
discos magnéticos
Comunicación Comunicación entre dispositivos remotos. Ej:
modem
Funciones del módulo de E/S
Control y temporizaciónComunicación con la CPUComunicación con los dispositivosAlmacenamiento temporal de datosDetección de errores
Control y temporización
La CPU pregunta al módulo de E/S sobre el estado del dispositivo
El módulo de E/S devuelve el estado del dispositivo
Si el dispositivo está listo, la CPU solicita la transferencia de datos mediante una orden
El módulo de E/S obtiene un dato del dispositivo
El módulo de E/S transfiere el dato a la CPU
Comunicación con la CPU
Decodificador de órdenes. El módulo de E/S acepta órdenes de la CPU a través del bus de control
CPU y módulo intercambian datos a través del bus de datos
Información de estado. Indica si está o no preparado el periférico.
Reconocimiento de direcciones. Cada dispositivo de E/S tiene una dirección (igual que las palabras de memoria)
Comunicación con los dispositivos
Intercambio de órdenes, información del estado y datos
Almacenamiento temporal de datos
Los datos procedentes de la memoria se envían al módulo de E/S en ráfagas rápidas
Los datos se almacenan temporalmente (buffer) en el módulo de E/S
Los datos se envían al periférico a la velocidad del mismo, mucho más lenta
Al almacenarse los datos, no se mantiene ocupada a la memoria en una operación de transferencia lenta
El módulo de E/S puede trabajar a distintas velocidades
Detección de errores
El módulo de E/S suele ser el responsable de detectar errores y avisar de los mismos
Ejemplo: papel atascado en una impresora o pista defectuosa en un disco
También vigila los errores en la transmisión de bits
Utiliza un bit de paridad para comprobar si ha habido un error. Ejemplo: teclado, 7 bits de datos + 1 bit de paridad
Diagrama del módulo de E/S
Registro de datos
Registro de estado/control
Lógica del interfaz adispositivo externo
Lógica de E/S
Líneas de datos
Datos
Estado
Control
Datos
Estado
Control
Interfaz al bus del sistema
Líneas de dirección
Líneas de control
Interfaz a dispositivo externo
Lógica del interfaz adispositivo externo
Técnicas de operaciones de E/S
E/S programada E/S mediante interrupciones Acceso Directo a Memoria (DMA)
Sin interrupciones Con interrupciones
Transferencia de E/S a memoria a través de la CPU E/S programada
E/S mediante interrupciones
Transferencia directa de E/S a memoria
Acceso Directo a Memoria (DMA)
E/S PROGRAMADA
La CPU tiene el control directo sobre la E/S Comprobación del estado del dispositivo Envío de órdenes de lectura y escritura Transferencia de datos
La CPU espera que el módulo de E/S acabe la operación
Si la CPU es más rápida que el módulo, se PIERDE TIEMPO
E/S programada con detalle
Cuando la CPU está ejecutando un programa y encuentra una interrupción relacionada con E/S, ordena al módulo de E/S que la ejecute
El módulo de E/S realiza la acción solicitada El módulo de E/S activa los bits adecuados en el
registro de estado El módulo de E/S no informa directamente a la CPU
ni la interrumpe La CPU comprueba periódicamente los bits de
estado hasta que encuentra que la operación ha terminado
Órdenes de E/S
Al ejecutar una instrucción relacionada con E/S, la CPU proporciona una dirección especificando el módulo de E/S y el dispositivo externo
Además, la CPU proporciona una orden, que puede ser: Control – dice al módulo qué debe hacer
Ejemplo: rebobinar una cinta magnética Prueba – realización de comprobaciones
Ejemplo: ¿Encendido? ¿Error? Lectura
El módulo de E/S capta un dato de un periférico y lo sitúa en un buffer interno (registro de datos) y la CPU pide al módulo de E/S que lo ponga en el bus de datos
Escritura El módulo de E/S capta un dato del bus de datos y lo transmite
hacia el periférico
Direccionamiento de dispositivos de E/S
En la E/S programada hay una estrecha relación entre las instrucciones de E/S que la CPU capta de la memoria y las órdenes que la CPU envía al módulo de E/S
Normalmente hay varios dispositivos de E/S conectados al sistema a través de los módulos de E/S
Cada dispositivo tiene un único identificador o dirección
Las órdenes de la CPU contienen el identificador (la dirección)
Cuando la CPU, la memoria principal y las E/S comparten un bus común son posibles dos formas de direccionamiento: asignado en memoria y aislado
Formas de direccionamiento E/S
Asignado en memoria (memory mapping) Existe un único espacio de direcciones para las posiciones de
memoria y los dispositivos de E/S La CPU considera a los registros de estado y de datos de los
módulos de E/S como si fueran direcciones de memoria Utiliza las mismas instrucciones máquinas para acceder a
memoria y a direcciones de E/S Un sola línea de lectura y una sola línea de escritura en el bus
Aislado Líneas de lectura y escritura en memoria separadas de las
líneas de órdenes para E/S Órdenes específicas para E/S
Comparación “asignadas en memoria” – “aislada”
E/S ASIGNADA EN MEMORIA Se puede utilizar un amplio repertorio de
instrucciones Ventaja frente a E/S aislada: Programación más
eficiente
E/S AISLADA Existen pocas instrucciones de E/S Ventaja frente a E/S asignada en memoria: se
aprovecha mejor el espacio de direccionamiento de memoria
E/S MEDIANTE INTERRUPCIONES
En E/S programada, la espera de la CPU sobrecarga el sistema y degrada las prestaciones
Mejora: que la CPU no esté “parada” hasta que el módulo E/S esté preparado y mientras ésta puede seguir haciendo “algo útil”
El módulo de E/S interrumpe a la CPU cuando esté preparado para intercambiar datos. La CPU ejecuta la transferencia de datos
Funcionamiento básico de la E/S mediante interrupciones, visto por el módulo de E/S
El módulo de E/S recibe una orden READ de la CPUEl módulo de E/S lee el dato desde el periférico
asociado Una vez que el dato está en el registro de datos
del módulo de E/S, éste envía una interrupción a la CPU a través de una línea de control y se pone a la espera hasta la que la CPU solicite su dato
La CPU solicita datoEl módulo de E/S coloca el dato en el bus de datos
y queda preparado para futuras operaciones
Funcionamiento básico de la E/S mediante interrupciones, visto por la CPU
La CPU envía una orden READ de lectura Pasa a hacer “otro trabajo” Al final de cada ciclo de instrucción, la CPU
comprueba las interrupciones Si el módulo de E/S solicita la interrupción:
La CPU guarda el contexto del programa en curso (contador de programa y registros de la CPU)
Procesa la interrupción La CPU lee la palabra de datos del módulo de E/S y
la almacena en memoria Recupera el contexto del programa que estaba
ejecutando y continúa su ejecución
Cuestiones de diseño
Puesto que puede haber muchos dispositivos, ¿cómo sabe la CPU qué dispositivo ha provocado la interrupción?
¿Qué hacer si se solicitan varias interrupciones a la vez?
Identificación del dispositivo Líneas diferentes para cada módulo
Pueden ser insuficientes, hay que usar otro método Consulta por programa (software polling). Bifurcación a una rutina
de servicio de interrupción La CPU pregunta a cada módulo y uno de ellos le responde Lento
Conexión en cadena (daisy chain, interrupción vectorizada) Todos los módulos comparten una línea común para solicitar
interrupciones El módulo que solicitó la interrupción responde colocando una palabra
(llamada vector, que es un identificador específico) en la línea de datos Arbitraje del bus (también es una interrupción vectorizada)
El módulo debe disponer de control del bus previamente a solicitar la interrupción. Sólo un módulo puede activar la línea en un instante
Cuando la CPU reconoce la interrupción, responde mediante la línea de reconocimiento de la interrupción
El módulo sitúa su vector en la línea de datos
Interrupción múltiple
Líneas diferentes: cada línea de interrupción tiene una prioridad distinta
Polling: la prioridad la determina el orden de consulta
Daisy chain: igual que el anterior
ACCESO DIRECTO A MEMORIA (DMA)
Inconvenientes de la E/S programada y con interrupciones: NECESITAN LA PARTICIPACIÓN ACTIVA DE LA CPU para transferir datos entre memoria y el módulo E/S La velocidad de transferencia está limitada La CPU debe dedicarse a la gestión de
transferencias de E/S El módulo de E/S y la memoria intercambian
datos directamente, sin la intervención de la CPU
Para transferir grandes cantidades de datos, se utiliza el DMA
Funcionamiento del DMA (I)
Se necesita un módulo adicional de hardware en el bus del sistema
El módulo DMA toma el control de la CPU para E/S, liberando a la CPU
Transfiera datos a / desde memoria a través del bus del sistema
Utiliza el bus cuando la CPU no lo necesita o, cuando necesitándolo, fuerza a que lo deje
Funcionamiento del DMA (II)
Cuando la CPU necesita leer o escribir, envía una orden al módulo DMA, con la siguiente información: Mediante línea de control, si se solicita lectura o escritura La dirección del dispositivo de E/S propiamente Dirección de comienzo para leer / escribir Número de palabras a leer / escribir
La CPU continúa con otro trabajo Delega en el DMA el control de la transferencia El DMA transfiere el bloque completo de palabras,
sin la intervención de la CPU El DMA envía una señal de interrupción a la CPU
cuando acaba la transferencia De esta manera, la CPU sólo interviene al
principio y al final de la transferencia
Configuraciones DMA (I), DMA independiente
Bus único, el controlador DMA usa E/S programadaCada transferencia usa el bus dos veces
E/S a DMA y después DMA a Memoria Principal
Solución económica pero insuficiente
CPUControlador DMA
Disp. E/S
Memoria Principal
Disp. E/S
Bus del sistema
Configuraciones DMA (II), DMA-E/S integrados
Bus único, Funciones DMA y E/S integradas El controlador DMA puede soportar más de un
dispositivo, sin necesitar el bus Cada transferencia usa el bus sólo una vez
DMA a Memoria Principal
CPUControlador DMA
Controlador DMA
Disp. E/S
Disp. E/S
Disp. E/S
Memoria Principal
Bus del sistema
Configuraciones DMA (III), Bus de E/S
Bus E/S separado del bus del sistema Bus E/S soporta todos los dispositivos de E/S El intercambio de datos entre el controlador DMA y los
dispositivos de E/S NO necesita el bus del sistema Sólo se necesita 1 interfaz de E/S en el controlador
DMA. Configuración fácilmente ampliable
CPU Controlador DMA
Memoria Principal
Disp. E/S
Disp. E/S
Disp. E/S
Disp. E/S
Bus E/S
Bus del sistema
Canales de E/S
Los dispositivos de E/S se han ido complicando con el paso del tiempo. Ejemplo: tarjetas gráficas 3D
Evolución temporal: La CPU controla directamente al periférico Se añaden módulos de E/S. Se usa E/S programada Igual que el anterior, pero con interrupciones. Aumenta eficacia El módulo de E/S tiene acceso directo a memoria El módulo de E/S mejora, con su propio repertorio de
instrucciones orientados a E/S. La CPU se “desentiende” y deja trabajar al módulo. Sólo es avisada cuando se acaba la secuencia
El módulo de E/S tiene su propia memoria local. Es un computador en sí mismo. Se controla un amplio abanico de dispositivos sin la intervención de la CPU
Asumir cada vez más competencia lleva a que se hable de Canal de E/S, en general, más que módulo de E/S
Características de los canales de E/S
Es una ampliación del concepto de DMAEjecuta instrucciones de E/S, liberando a la CPULa CPU se limita a mandar al canal de E/S que
ejecute un programa en memoria principalEl programa especifica dispositivos, área de
memoria, prioridad y acciones en caso de errorEl canal de E/S sigue las instrucciones y
controla la transferencia de datos
Interfaz externa
Se adapta a la naturaleza del dispositivo Paralelo, varias líneas a la vez Serie, una sola línea
Diálogo con el periférico Módulo E/S envía señal de control solicitando permiso para
mandar o leer datos El periférico reconoce la solicitud El módulo transfiere los datos El periférico reconoce la recepción o envío de datos
Se necesita un registro interno (buffer) para almacenar datos, que compense la diferencia de velocidades
Tipos de conexiones: Conexión punto a punto: línea de E/S entre módulo y
dispositivo. Ejemplo: teclados, impresora, módem externo Conexión multipunto: Interfaz SCSI y FireWire
Interfaz SCSI (Small Computer System Interface)
Interfaz paralelo para CD-ROM, equipos de audio y almacenamiento masivo
Líneas de datos de 8, 16 y 32 bitsConexión en forma encadenada (daisy chain)Conectores independientes de entrada y de salidaLos dispositivos se conectan en cadena entre sí y
con el computador anfitrión (host) en un extremoLos dispositivos funcionan independientemente y
pueden intercambiar datos entre ellos
SCSI - 1
Principio de los 80’s8 bitsFrecuencia de reloj: 5 MHzVelocidad de transferencia: 5MBytes/sgHasta siete dispositivos en cadena
Ocho si se incluyen el computador host
SCSI - 2
1991Expansión a 16 y 32 bitsFrecuencia de reloj: 10MHzVelocidad de transferencia: 20 o 40
Mbytes/sg
Señalización SCSI
Entre iniciador y destino: habitualmente, el iniciador es el host, y el destino es el dispositivo
Bus libre: ningún dispositivo está usando el busArbitraje: permite a un dispositivo tomar el
control de bus para iniciar o reanudar un proceso de E/S
Selección: el iniciador elige un destino para leer o escribir
Reselección: permite que un dispositivo seleccionado se vuelva a conectar al iniciador para reanudar una operación previa que ha sido suspendida
Orden: el destino puede pedir una orden de información al iniciador
Solicitud de datos: el dispositivo puede solicitar la transferencia de un dato de dispositivo a iniciador o viceversa
Estado: permite que el dispositivo solicite que se envíe la información de estado desde el dispositivo al iniciador
Mensaje: permite que el dispositivo solicite la transferencia de uno o más mensajes desde el iniciador al dispositivo o viceversa
Señalización SCSI (continuación)
Fases en un bus SCSI
Inicio
ArbitrajeBus libre (Re) Selección
Órdenes,Datos, Estado,Mensaje
Después de conectarse al sistema o reinicio, el bus pasa a la fase de bus libreA continuación se pasa a arbitraje, un dispositivo toma el control del busSi el arbitraje falle, el bus vuelve a la fase de bus libreCuando el arbitraje termina con éxito, se pasa a la fase de selección, donde se designa un iniciador y un dispositivo para realizar la transferencia
Fases en un bus SCSI (continuación)
Se producen una o más fases de transferencia de información entre iniciador y dispositivo (orden, datos, estados y mensajes)
Finalmente, fase de entrada de mensaje, después mensaje de desconexión al iniciador y fase de bus libre
Inicio
ArbitrajeBus libre (Re) Selección
Órdenes,Datos, Estado,Mensaje
Especificación del SCSI-1
18 líneas de señal 9 líneas de datos 9 líneas de control
Líneas de control del SCSI-1
BSY: usada para indicar que el bus está ocupado SEL: usada por el iniciador para seleccionar el dispositivo
que debe responder a una orden C/D: usada por el dispositivo para indicar si el contenido del
bus de datos son órdenes (COMMAND) o datos (DATA) I/O: usada por el dispositivo para indicar si entran o salen
datos MSG: usada por el dispositivo para indicar que está
transfiriendo un mensaje REQ: usada por el dispositivo para solicitar una
transferencia de información ACK: usada por el iniciado para reconocer la señal REQ del
dispositivo ATN: usada por el iniciador para indicar que hay un mensaje
disponible para transferir RST: usada para inicial el bus
Bus serie FireWire
Bus serie de altas prestaciones. IEEE 1394Rápido: 100 MHzBaratoFácil de implementarUsado también en electrónica de consumo
Cámaras digitales Videograbadores Televisores
Configuración FireWire
Configuración en cadena “Daisy chain” Hasta 63 dispositivos a un único puerto
64 incluyendo a la propia interfaz Hasta 1022 buses pueden conectarse con
adaptadores (bridges) Se pueden conectar y desconectar periféricos sin
tener que reconfigurar el sistema No es necesario fijar manualmente los
identificadores de los dispositivos ni tener en cuenta la posición relativa de los mismos
Puede tener estructura de árbol
Las 3 capas del FireWire
Física Define los medios de transmisión y
características eléctricas y señales
Enlace Describe la transmisión de datos mediante
paquetes
Transacción Define el protocolo de petición/respuesta
ocultando a las aplicaciones los detalles de las capas inferiores
Capa física
Velocidades binarias de 25 a 400Mbps Dos formas de arbitraje. La forma más simple:
Basada en estructura de árbol El nodo (raíz) actúa como árbitro central Primero que llega, primero que se atiende En caso de solicitudes simultáneas, se aplica la
prioridad natural, que consiste en que se atiende antes la que está más cerca del nodo raíz, y en caso de igual distancia, la que tenga un identificador menor
Funciones adicionales: Arbitraje equitativo: evita que uno o más dispositivos de
alta prioridad monopolicen el uso del bus Arbitraje urgente: algunos dispositivos pueden tener
prioridad urgente, que les permite acceder al bus mayor porcentaje de tiempo
Capa de enlace
Define la transmisión de datos en forma de paquetes
Dos tipos de transmisiones Asíncrona
Un paquete con una cantidad variable de datos y varios bytes
A direcciones explícitasDevuelve información de reconocimiento
IsócronaUna cantidad variable de datos, con paquetes de
tamaño fijo, a intervalos regularesDireccionamiento simplificadoNo usa reconocimiento
Recommended