e/s asignada en memoria

Anuncio
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ón
Comunicación con la CPU
Comunicación con los dispositivos
Almacenamiento temporal de datos
Detecció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
Interfaz a
dispositivo externo
Interfaz al bus
del sistema
Líneas
de datos
Lógica del
interfaz a
dispositivo
externo
Registro de datos
Registro de estado/control
Líneas
de dirección
Líneas
de control
Lógica
de E/S
Lógica del
interfaz a
dispositivo
externo
Datos
Estado
Control
Datos
Estado
Control
Técnicas de operaciones de E/S
 E/S programada
 E/S mediante interrupciones
 Acceso Directo a Memoria (DMA)
Transferencia de E/S a
memoria a través de la CPU
Transferencia directa de E/S a
memoria
Sin interrupciones
Con interrupciones
E/S programada
E/S mediante
interrupciones
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 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
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
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 del sistema
CPU
Controlador
DMA
Disp.
E/S
Disp.
E/S
Memoria
Principal
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
Configuraciones DMA (II),
DMA-E/S integrados
CPU
Controlador
DMA
Disp.
E/S
Bus del
sistema Controlador
DMA
Disp.
E/S
Memoria
Principal
Disp.
E/S
 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
Configuraciones DMA (III),
Bus de E/S
Bus del sistema
Controlador
DMA
CPU
Bus E/S
Disp.
E/S
Disp.
E/S
Disp.
E/S
Memoria
Principal
Disp.
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
Descargar