1 / 46

Tema 7

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:

bebe
Download Presentation

Tema 7

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Tema 7 Entrada / Salida

  2. 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

  3. 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

  4. Funciones del módulo de E/S • Control y temporización • Comunicación con la CPU • Comunicación con los dispositivos • Almacenamiento temporal de datos • Detección de errores

  5. 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

  6. 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)

  7. Comunicación con los dispositivos • Intercambio de órdenes, información del estado y datos

  8. 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

  9. 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

  10. Diagrama del módulo de E/S Interfaz a dispositivo externo Interfaz al bus del sistema Datos Lógica del interfaz a dispositivo externo Registro de datos Líneas de datos Estado Registro de estado/control Control Líneas de dirección Datos Lógica de E/S Lógica del interfaz a dispositivo externo Estado Líneas de control Control

  11. Técnicas de operaciones de E/S • E/S programada • E/S mediante interrupciones • Acceso Directo a Memoria (DMA)

  12. 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

  13. 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

  14. Ó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

  15. 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

  16. 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

  17. 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

  18. 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

  19. 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 CPU • El 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 dato • El módulo de E/S coloca el dato en el bus de datos y queda preparado para futuras operaciones

  20. 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

  21. 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?

  22. 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

  23. 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

  24. 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

  25. 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

  26. 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

  27. Configuraciones DMA (I), DMA independiente • Bus único, el controlador DMA usa E/S programada • Cada transferencia usa el bus dos veces • E/S a DMA y después DMA a Memoria Principal • Solución económica pero insuficiente Bus del sistema Controlador DMA Memoria Principal Disp. E/S Disp. E/S CPU

  28. Configuraciones DMA (II), DMA-E/S integrados Bus del sistema • 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 Controlador DMA Memoria Principal Controlador DMA CPU Disp. E/S Disp. E/S Disp. E/S

  29. Configuraciones DMA (III), Bus de E/S Bus del sistema • 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 Controlador DMA Memoria Principal CPU Bus E/S Disp. E/S Disp. E/S Disp. E/S Disp. E/S

  30. 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

  31. Características de los canales de E/S • Es una ampliación del concepto de DMA • Ejecuta instrucciones de E/S, liberando a la CPU • La CPU se limita a mandar al canal de E/S que ejecute un programa en memoria principal • El programa especifica dispositivos, área de memoria, prioridad y acciones en caso de error • El canal de E/S sigue las instrucciones y controla la transferencia de datos

  32. 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

  33. 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 bits • Conexión en forma encadenada (daisy chain) • Conectores independientes de entrada y de salida • Los dispositivos se conectan en cadena entre sí y con el computador anfitrión (host) en un extremo • Los dispositivos funcionan independientemente y pueden intercambiar datos entre ellos

  34. SCSI - 1 • Principio de los 80’s • 8 bits • Frecuencia de reloj: 5 MHz • Velocidad de transferencia: 5MBytes/sg • Hasta siete dispositivos en cadena • Ocho si se incluyen el computador host

  35. SCSI - 2 • 1991 • Expansión a 16 y 32 bits • Frecuencia de reloj: 10MHz • Velocidad de transferencia: 20 o 40 Mbytes/sg

  36. 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 bus • Arbitraje: 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

  37. Señalización SCSI (continuación) • 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

  38. Inicio Órdenes, Datos, Estado, Mensaje Bus libre Arbitraje (Re) Selección Fases en un bus SCSI • Después de conectarse al sistema o reinicio, el bus pasa a la fase de bus libre • A continuación se pasa a arbitraje, un dispositivo toma el control del bus • Si el arbitraje falle, el bus vuelve a la fase de bus libre • Cuando 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

  39. Inicio Órdenes, Datos, Estado, Mensaje Bus libre Arbitraje (Re) Selección 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

  40. Especificación del SCSI-1 • 18 líneas de señal • 9 líneas de datos • 9 líneas de control

  41. 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

  42. Bus serie FireWire • Bus serie de altas prestaciones. IEEE 1394 • Rápido: 100 MHz • Barato • Fácil de implementar • Usado también en electrónica de consumo • Cámaras digitales • Videograbadores • Televisores

  43. 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

  44. 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

  45. 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

  46. 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ícitas • Devuelve información de reconocimiento • Isócrona • Una cantidad variable de datos, con paquetes de tamaño fijo, a intervalos regulares • Direccionamiento simplificado • No usa reconocimiento

More Related