Publicado el 1 de Junio del 2018
821 visualizaciones desde el 1 de Junio del 2018
648,8 KB
52 paginas
Creado hace 6a (08/08/2017)
Arquitectura de Computadoras
Clase 3
Entrada/Salida
Problemas de Entrada/Salida
• Gran variedad de periféricos con varios métodos
de operación.
• Trasmisión de diferentes cantidades de datos.
• A diferentes velocidades.
• Usan diferentes formatos de dato y tamaño de palabra.
• Todos más lentos que la CPU y la RAM.
• Necesidad de módulos de E/S (con alguna
“inteligencia”)
Notas de Clase 3
2
Módulo de E/S
• Realiza la interfaz entre el procesador y la
memoria (bus) y los periféricos.
• Pueden manejar uno o más periféricos.
Notas de Clase 3
3
Dispositivos externos
• e/s básicos
• monitor/pantalla, mouse, teclado
• almacenamiento
• disco duro, CD, DVD
• impresión
• impresora, escáner
• comunicación con dispositivos remotos
• modem, acceso/interfaz de red
• multimedia
• micrófono, parlantes
• automatización y control
• Sensores, alarmas, adquisición de datos
Notas de Clase 3
4
Dispositivo externo tipo
Estado
Hacia el
módulo de E/S
Control
Desde el
módulo de E/S
Datos (bits)
Desde y hacia el
módulo de E/S
Lógica de
Control
Buffer
Transductor
Datos
Desde y hacia el exterior
Notas de Clase 3
5
Características de un puerto
• Interfase entre el periférico y el módulo de E/S
• Señales de Control, Estado y Datos
• Señal de Control: función a realizar
• Ej: INPUT ó READ, OUTPUT ó WRITE
• Señal de Estado: READY/NOT READY
• Control lógico: manejo de direccionamiento
• Transductor: conversión del datos
• Buffer: adaptación (1, 8 o 16 bits)
Notas de Clase 3
6
Código
ASCII
Notas de Clase 3
7
Funciones de un módulo de E/S
• Control y temporización de uno o más dispositivos
externos
• Interpretar las órdenes que recibe de CPU y transmitirlas
al periférico
• Comunicación con la CPU (registros) y Memoria
• Controlar las transferencias de datos entre CPU y el
periférico (convertir formatos, adaptar velocidades)
• Comunicación con los dispositivos (periféricos)
• Informar a la CPU del estado del periférico
• Almacenamiento temporal (buffering) de datos
• Detección de errores
Notas de Clase 3
8
Diagrama en bloques de un
módulo de E/S
Interfaz al bus del sistema
Interfaz a dispositivos externos
Líneas
de datos
Registro de datos
Registro de estado/control
Líneas de
dirección
Líneas de
control
Lógica
de E/S
Notas de Clase 3
Lógica del
interfaz a
dispositivo
externo
Lógica del
interfaz a
dispositivo
externo
Datos
Estado
Control
Datos
Estado
Control
9
Capacidades de un módulo de E/S
• Ocultar las propiedades del dispositivo a la CPU.
• Ej: temporizados, formatos, electromecanismos ...etc
• Ocuparse de uno o varios dispositivos.
• Controlar o no las funciones del dispositivo.
• Canales de E/S ó procesador de E/S (manejo de parte
importante de la carga del procesamiento). Presentes en
Mainframes.
• Controlador de E/S ó controlador de dispositivo (manejo
primitivo). Presentes en microcomputadoras.
Notas de Clase 3
10
Operación de Entrada ó Salida
Requiere:
• Direccionamiento
• E/S mapeada en memoria
• E/S aislada
• Transferencia de información
• Lectura ó escritura
• Gestión de la transferencia
• Mecanismos de sincronización y control de la
transferencia de datos
Notas de Clase 3
11 11
Direccionamiento de E/S
•E/S asignada en memoria (memory-mapped)
• Dispositivos de E/S y memoria comparten un único espacio
de direcciones.
• E/S se parece a la memoria de lectura/escritura.
• No hay órdenes específicas para E/S.
• Variedad de órdenes de acceso a memoria (programación eficiente)
•E/S aislada
• Espacios de direcciones separados.
• Necesidad de líneas especiales de E/S y de memoria.
• Órdenes específicas para E/S.
• Conjunto limitado de instrucciones.
Notas de Clase 3
12
Técnicas de gestión de E/S
• E/S Programada con espera de respuesta
• E/S con interrupciones
• E/S con acceso directo a memoria (DMA)
Notas de Clase 3
13
E/S programada
• Intercambio de datos entre la CPU y el módulo
• La CPU tiene control directo sobre la operación
de E/S
• Comprobación del estado del dispositivo
• Envío de comandos de lectura/escritura
• Transferencia de datos
• La CPU espera que el módulo E/S termine la
operación
• Por lo tanto la CPU permanece ociosa durante un
período de tiempo (no deseable)
Notas de Clase 3
14
Detalles de la E/S
programada
• La CPU solicita la operación de E/S al
módulo.
• El módulo E/S realiza la operación.
• El módulo E/S activa los bits de
estado del dispositivo direccionado y
espera.
• La CPU comprueba periódicamente
el estado de esos bits, hasta que
detecta que la operación fue
completada.
• En caso contrario la CPU espera y
vuelve a comprobarlo más tarde.
Notas de Clase 3
15
Órdenes (comandos) de E/S
• La CPU emite una dirección
• Especifica el módulo (y el dispositivo si hay más de
uno por módulo)
• La CPU da una orden
• Control: indica al módulo qué hacer
• Ejemplo: rebobinar una cinta magnética.
• Test: comprueba el estado del módulo y sus periféricos
• Ejemplo: ¿está conectado? ¿hubo algún error?
• Lectura/Escritura
• Transfiere datos desde o hacia el dispositivo por el bus de datos.
Notas de Clase 3
16
E/S con interrupciones
• La CPU no tiene que esperar la finalización de la
tarea de E/S, puede seguir procesando.
• No se repite la comprobación de los estados de
los módulos
• El módulo envía un pedido de interrupción a la
CPU cuando está listo nuevamente.
Notas de Clase 3
17
E/S mediante interrupciones:
¿qué hace la CPU ???
• La CPU envía una orden de lectura (READ).
• El módulo E/S obtiene los datos del periférico mientras que
la CPU realiza otro trabajo.
• La CPU chequea si hay pedidos de interrupciones
pendientes al final de cada ciclo de instrucción.
• El módulo E/S emite un pedido de interrupción a la CPU.
• La CPU detecta el pedido, guarda el contexto,
interrumpe el proceso y realiza la gestión de la
interrupción.
• La CPU solicita los datos.
• El módulo E/S transfiere los datos.
Notas de Clase 3
18
Cuestiones de diseño
• ¿Cómo saber qué dispositivo ha provocado la
interrupción?
• Con múltiples interrupciones ¿Cómo elegir la
interrupción que se debe atender? ¿Establecemos
prioridades?
• una rutina de interrupción que a su vez es interrumpida.
Notas de Clase 3
19
Identificación del módulo que
interrumpe
• Diferentes líneas para cada módulo
• PC
• Limita el número de dispositivos
• Consulta software (Poll o encuesta)
• Ocurrido un pedido de interrupción la CPU consulta a cada módulo para
determinar quien fue el demandante.
• Resulta lento.
• Conexión en cadena (daisy chain) “hard poll”
• La línea de reconocimiento de interrupción se conecta encadenando los
módulos, la línea de pedido es compartida.
• Una vez enviada la confirmación de parte de la CPU el módulo responderá
colocando un vector (palabra), en el bus, que lo identifica.
• La CPU emplea el vector como puntero para acceder a la rutina de
servicio.
Notas de Clase 3
20
Interrupciones múltiples
• Todas las líneas de interrupción tienen un orden de prioridad
• Las líneas con más prioridad pueden interrumpir a las líneas
con menor prioridad.
• Si existe un maestro del bus, solo él puede interrumpir.
Notas de Clase 3
21
Estructuras de interrupciones (1)
• El Intel 8086 tiene sólo una línea de petición de
interrupción (INTReq) y por lo tanto una sola de
confirmación (INTAck).
• Se deberá utilizar un árbitro o gestor de
interrupciones externo, el 8259A (PIC).
• Este chip tiene 8 líneas de interrupción, por lo
tanto podrá manejar 8 módulos de E/S.
• Usando conexión en cascada se puede gestionar hasta
64 módulos.
Notas de Clase 3
22
Estructuras de interrupciones (2)
• Puede ser útil tener una Interfase de Periféricos
Programable (PIO).
• El Intel 8255A es un chip para usar también en
entorno 8086.
• Es un módulo de E/S de propósito general.
• Posee 24 líneas de E/S programable vía los
registros de control.
• Usado para una variedad de periféricos.
• Ej: Teclado/Pantalla
Notas de Clase 3
23
Análisis
• Las operaciones de E/S mediante interrupciones
son más efectivas que las programadas.
• Pero ambas necesitan la intervención directa de la
CPU.
• La velocidad de transferencia es limitada.
• La CPU permanece ocupada mucho tiempo durante la
operación.
• ¿Qué sucede si el volumen a transferir es grande?
Notas de Clase 3
24 24
Ejemplo E/S con periférico lento
• Procesador a 200 MHz (tiempo ciclo reloj = 5 ns;
Ciclos por instrucción CPI = 2 , en promedio)
• Una instrucción tarda en promedio 2 x 5 ns = 10 ns =>
la computadora puede ejecutar ~100 Mips
• Queremos imprimir un archivo de 10 Kbytes en una
impresora láser de 20 páginas por minuto
• 1 página @ 3.000 caracteres (1 carácter = 1 byte)
• La impresora imprime 60.000 caracteres por minuto = 1
Kbyte/s
Notas de Clase 3
25 25
Ej. con periférico lento (2)
a) E/S con espera de respuesta
• La CPU entra en un bucle y envía un nuevo byte
cada vez que la impresora está preparada para
recibirlo
• La impresora tarda 10 seg en imprimir 10 Kbytes
• La CPU está ocupada con la operación de E/S
durante 10 seg.
(en ese tiempo la CPU podría haber ejecutado 1000
millones de instrucciones)
Notas de Clase 3
26 26
Ej. con periférico lento (3)
b) E/S con interrupciones
• La impresora genera una interrupción cada vez que
está preparada para recibir un nuevo byte.
• Si la gestión de interrupción (ATI) tiene 10 instrucciones
(salvar contexto, comprobar estado, transferir byte,
restaurar contexto, rti)
• Para transferir 10 Kbytes tenemos que ejecutar 10.000
veces la ATI
Comentarios de: Clase 3 - Entrada/Salida - Arquitectura de Computadoras (0)
No hay comentarios