Está en la página 1de 20

Entrada / Salida

Problemas de Entrada/Salida

Gran cantidad de periféricos


Trasmisión de diferentes cantidades de datos.
A diferentes velocidades.
En diferentes formatos.
Todos más lentos que la CPU y la RAM
Necesidad de módulos de E/S

1
Módulo de E/S

Realiza la interfaz entre el procesador y la


memoria.
Realiza la interfaz entre uno o más periféricos.
Modelo genérico de un módulo de E/S.

Módulo de E/S

2
Módulo de E/S

Dispositivos externos

De interacción con humanos


Pantalla, impresora, teclado
De interacción con máquinas
Control y supervisión
De comunicación
Módem
Tarjeta de la interfaz de red (NIC)

3
Funciones de un 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

Pasos de la E/S

La CPU comprueba el estado del dispositivo


preguntando al módulo de E/S.
E/S devuelve el estado del dispositivo.
Si el dispositivo está preparado, la CPU solicita la
trasferencia de datos.
E/S obtiene el dato del dispositivo externo.
E/S transfiere los datos a la CPU.
Variaciones de salida, DMA, etc.

4
Diagrama de un módulo de E/S
Interfaz al bus del sistema Interfaz a dispositivo externo

Lógica del Datos


Líneas Registro de datos interfaz a
de datos dispositivo Estado
Registro de estado/control externo
Control

Líneas de
dirección Lógica del Datos
Lógica
interfaz a
Líneas de de E/S dispositivo Estado
control externo
Control

Decisiones de un módulo de E/S

Ocultar o mostrar las propiedades del dispositivo


a la CPU.
Ocuparse de uno o varios dispositivos.
Controlar las funciones del dispositivo o
dejárselo a la CPU.
También decisiones sobre sistemas operativos.
Ej: Unix considera como archivos todo lo que puede.

5
Técnicas de E/S

Programada
Mediante interrupciones
Acesso directo a memoria (DMA)

E/S programada

La CPU tiene control directo sobre la E/S


Comprobación del estado del dispositivo
Órdenes de lectura/escritura
Transferencia de datos
La CPU espera a que el módulo E/S acabe la
operación
Hace perder tiempo a la CPU

6
Detalles de la E/S programada

La CPU solicita la operación de E/S.


El módulo E/S realiza la operación.
El módulo E/S activa los bits de estado.
La CPU comprueba periódicamente el estado de
los bits.
El módulo E/S no informa a la CPU directamente.
El módulo E/S no interrumpe a la CPU.
La CPU puede esperar o volver más tarde.

Órdenes de E/S

La CPU proporciona una dirección


Especifica el módulo (y el dispositivo si >1 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
⌧Ejemplo: ¿está conectado? ¿ha habido algún error?
Lectura/Escritura
⌧Transfiere datos desde y hacia el dispositivo a través del bus
de datos.

7
Órdenes a dispositivos de E/S
La transferencia de datos con E/S programada es muy
parecida al acesso de memoria (desde el punto de vista
de la CPU).
Cada dispositivo tiene un único identificador.
Las órdenes de la CPU contienen identificadores
(direcciones).

Instrucciones de E/S

E/S asignada en memoria


Dispositivos 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.
⌧Gran variedad de órdenes de acceso a memoria.
E/S aislada
Espacios de direcciones separados.
Necesidad de líneas especiales de E/S o de memoria.
Órdenes específicas para E/S.
⌧Conjunto limitado de instrucciones.

8
E/S mediante interrupciones

La CPU no tiene que esperar.


No se repite la comprobación del sistema.
El módulo E/S envía una interrupción cuando
está listo.

E/S mediante interrupciones:


operaciones básicas

La CPU envía una orden READ de lectura.


El módulo E/S obtiene los datos del periférico
mientras que la CPU realiza otro trabajo.
El módulo E/S interrumpe a la CPU.
La CPU solicita los datos.
El módulo E/S transfiere los datos.

9
Punto de vista de la CPU

Genera una orden READ.


Pasa a realizar otro trabajo.
Comprueba las interrupciones al final de cada
ciclo de instrucción.
Si es interrumpida:
Guarda el contexto (registros).
Interrumpe el proceso.
⌧Búsqueda y almacenamiento de instrucciones
Considera los sistemas operativos.

Cuestiones de diseño

¿Cómo saber qué dispositivo ha provocado la


interrupción?
¿Cómo elegir la interrupción que se debe
atender?
Ej. una rutina de interrupción que es interrumpida.

10
Identificación del módulo que
interrumpe (1)
Diferentes líneas para cada módulo
PC
Limita el número de dispositivos
Consulta software
La CPU consulta a cada módulo
Resulta lenta

Identificación del módulo que


interrumpe (2)

Conexión en cadena o consulta hardware


La línea de reconocimiento de interrupción se
conecta encadenando los módulos.
El módulo que responde coloca un vector en el bus.
La CPU emplea el vector para identificar la rutina de
servicio.
Arbitraje de bus
El módulo debe disponer del control del bus antes de
lograr la interrupción.
Ej: bus PCI y puerto SCSI

11
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 menos.
Si existe un maestro del bus, sólo el maestro
puede interrumpir.

Interrupciones (contexto más


general)
Mecanismo mediante el que otros módulos
(Ejemplo: E/S) pueden interrumpir el
procesamiento normal de la CPU.
Programa
Ejemplo: desbordamiento aritmético (“overflow”), división por
cero
Temporización
Generadas por un temporizador interno al procesador.
Permite realizar ciertas funciones de manera regular.
E/S
Generadas por un controlador E/S.
Fallo de hardware

12
Ciclo de interrupción
Añadido al ciclo de instrucción.
El procesador comprueba si se ha generado alguna
interrupción,
indicada por la presencia de una señal de interrupción.
Si no hay señales de interrupción, capta la siguiente
instrucción.
Si hay alguna interrupción pendiente:
Se suspende la ejecución del programa en curso
Guarda su contexto
Carga el PC con la dirección de comienzo de una rutina de gestión de
interrupción
Proceso interrumpido
Volver a almacenar el contexto y continuar con el programa interrupido

Interrupciones múltiples
Interrupciones inhabilitadas
El procesador puede y debe ignorar la señal de petición de
interrupción si se produce una interrupción en ese
momento.
La interrupción se mantiene pendiente y se examinará una
vez se haya activado la primera interrupción.
Las interrupciones se manejan en un orden secuencial
estricto.
Definir prioridades
Una interrupción de prioridad más alta puede interrumpir
a un gestor de interrupción de prioridad menor.
Cuando se ha generado la interrupción de prioridad más
alta, el procesador vuelve a la interrupción previa.

13
Procesamiento de una
secuencia de interrupciones
Gestor de
Programa de usuario interrupción X

Gestor de
interrupción Y

Procesamiento de
interrupciones anidadas
Gestor de
Programa de usuario interrupción X

Gestor de
interrupción Y

14
Interconexión del módulo E/S (1)

Desde un punto de vista interno (al


computador), la E/S es funcionalmente similar a
la memoria.
Salida
Recibe datos del computador
Envía datos al periférico
Entrada
Recibe datos del periférico
Envía datos al computador

Interconexión del módulo E/S (2)

Recibe señales de control del computador.


Envía las señales de control a los periféricos.
Ejemplo: disco
Recibe direcciones del computador.
Ejemplo: el número del puerto para identificar el
periférico
Envía señales de interrupción (de control).

15
Acceso directo a memoria

La E/S programada y con interrupciones


necesita la intervención directa de la CPU.
La velocidad de transferencia es limitada.
La CPU permanece ocupada mucho tiempo.
El DMA es la solución.

Funcionamiento del DMA

Requiere un módulo adicional (hardware) en el


bus.
El módulo del DMA obtiene el control de la CPU
para transferir datos.

16
Mecanismo del DMA

La CPU envía una orden al módulo de DMA:


Lectura/Escritura
Dirección del dispositivo
Dirección inicial de memoria para datos
Cantidad de datos que hay que transferir
La CPU continua con otro trabajo.
El módulo del DMA realiza la transferencia.
El módulo del DMA envía una señal de
interrupción cuando ha acabado.

Transferencia del DMA


Robo de ciclo

El módulo de DMA roba el bus durante un ciclo.


Transfiere una palabra.
No es una interrupción.
El procesador no guarda el contexto.
El procesador se detiene justo antes de acceder
al bus.
Ejemplo: Antes de un operando o una carga de
datos.
La CPU es más lenta pero no tanto como si
relizara la transferencia.

17
Configuraciones del DMA (1)

Módulo de
CPU DMA E/S E/S Memoria

Bus único, DMA independiente.


Cada transferencia utiliza dos veces el bus.
E/S va a DMA y el DMA a la memoria.
La CPU se interrumpe dos veces.

Configuraciones del DMA (2)

Módulo de Módulo de
CPU Memoria
DMA DMA

E/S
E/S E/S
Bus único, DMA integrado.
El módulo puede controlar más de un dispositivo.
Cada transferencia usa el bus una vez.
Del DMA a la memoria.
La CPU se interrumpe solo una vez.

18
Configuraciones del DMA (3)

CPU Módulo
Memoria
de DMA

E/S E/S E/S E/S


Bus de E/S separado.
El bus se encarga de todos los dispositivos.
activados del DMA.
Cada transferencia usa el bus una vez.
Del DMA a la memoria.
La CPU se interrumpe solo una vez.

Canales de E/S

Los dispositivos de E/S cada vez son más


sofisticados.
Por ejemplo, las tarjetas gráficas 3D.
La CPU ordena al módulo E/S realizar la
transferencia.
El módulo E/S realiza toda la transferencia.
Aumenta la velocidad.
Libera de carga a la CPU
El procesador especializado es más rápido

19
Tipos de interfaces

Conecta los dispositivos entre sí.


¿Hay un procesador, memoria o buses
especializados?
Ejemplos: SCSI, FireWire.

20

También podría gustarte