Professional Documents
Culture Documents
Sistemas de Entrada/Salida
Introduccin
Mdulos de Entrada/Salida
Mapa de Entrada/Salida: comn y separado
Mtodos de Entrada/Salida
E/S programada
E/S por interrupciones
Acceso directo a memoria
Ejemplo de dispositivo de E/S
Operaciones de E/S desde el SO
Bibliografa
Organizacin y Arquitectura de Computadores, William Stalling
Linux Device Drivers, Alessandro Rubini and Jonathan Corbet, OReilly
Arquitectura de Sistemas Paralelos (2)
Entrada/Salida
Introduccin (II)
Existen dos esquemas diferentes para la
implementacin del subsistema de E/S:
a) Disearlo a medida utilizando
componentes bsicos
b) Utilizar dispositivos genricos de E/S y
programarlos convenientemente
(b)
(a)
Arquitectura de Sistemas Paralelos (4)
Mdulos de E/S
Definiciones
Dispositivo externo: elementos que permiten la transferencia de informacin
entre la CPU y el mundo exterior. Funcionan a modo de interface
transformando la informacin asncrona y analgica del mundo exterior a la
informacin sncrona y codificada del computador
Mdulo de E/S: elementos que permiten la conexin de un dispositivo externo
al bus del sistema. Los trminos controlador, procesador de E/S y mdulo
de E/S son equivalentes desde el punto de vista funcional:
Los controladores son mdulos de E/S muy sencillos que tienen el
hardware necesario para que funcione el dispositivo externo
Los procesadores de E/S son autnticos procesadores con un juego
especializado de instrucciones orientado a operaciones de E/S, que son
programados por la CPU, permitiendo un funcionamiento autnomo
Un dispositivo externo conectado a un mdulo de E/S se denomina dispositivo
perifrico o simplemente perifrico
Arquitectura de Sistemas Paralelos (5)
Mdulos de E/S
Diagrama de bloques de un dispositivo externo
Mdulos de E/S
Diagrama de bloques de un mdulo de E/S
Mdulos de E/S
Funciones (I)
Las funciones de un mdulo de E/S son:
Control y temporizacin
Comunicacin con el procesador
Comunicacin con los dispositivos
Almacenamiento temporal
Deteccin de errores
Mdulos de E/S
Funciones (II)
Control y temporizacin
Son necesarios para coordinar el trfico entre dispositivos internos y externos
Por ejemplo, el control de la transferencia de datos desde un dispositivo
externo al procesador podra implicar la siguiente secuencia de pasos:
1. El procesador pregunta por el estado del dispositivo
2. El mdulo de E/S devuelve el estado del dispositivo
3. Si el dispositivo est listo, el procesador solicita la transferencia al mdulo de E/S
4. El mdulo de E/S obtiene los datos
5. Los datos se transfieren del mdulo de E/S al procesador
Decodificacin de rdenes
Datos
Informacin de estado
Reconocimiento de direccin
Mdulos de E/S
Funciones (III)
La comunicacin con el dispositivo implica:
rdenes
Informacin de estado
Datos
Deteccin de errores
Errores debidos a defectos mecnicos o elctricos
Errores en la transmisin de informacin (cdigos de deteccin de errores)
Arquitectura de Sistemas Paralelos (10)
Mdulos de E/S
Funciones (IV)
Velocidades tpicas de transferencia en dispositivos de E/S (bps)
(Almacenamiento temporal de datos)
Y como inconveniente:
se desperdicia parte del espacio de direcciones
Mtodos de Entrada/Salida
Clasificacin
Debido a la diferencia de velocidad entre procesador y
perifricos es necesario proporcionar mecanismos para
sincronizar las operaciones de E/S
A la hora de clasificar los diferentes mtodos para llevar
a cabo las operaciones de E/S hay que tener en cuenta los
siguientes factores:
Inicio de la transferencia (quin comienza la transferencia?)
Transferencia (quin realiza la transferencia?)
Mtodos de Entrada/Salida
E/S programada
Tambin llamada por sondeo o encuesta (polling)
La CPU tiene el control absoluto de la operacin de E/S: inicia
y lleva a cabo la transferencia
El procesador ejecuta un programa que controla directamente
la operacin de E/S :
Comprobacin del estado
Envo de una orden de lectura o escritura
Transferencia de datos
E/S programada
Ejemplo de programacin
void main ()
{
unsigned char estado;
...
inicializar_periferico_X();
...
while (!fin_operacion) {
estado = inportb (PUERTO_REG_ESTADO_X);
if ((estado & MASCARA_BIT_LISTO)!= 0)
hacer_operacion(); activo en alta
}
}
((estado | ~ MASCARA_BIT_LISTO)!= 0xFFFF)
activo en baja
Arquitectura de Sistemas Paralelos (18)
Mtodos de Entrada/Salida
E/S por interrupciones
CPU
Perifrico 0
Perifrico 1
INT0
INT1
...
INTN
Perifrico N
Bus nico,
DMA-E/S
Bus de E/S
Mtodos de E/S
Resumen
Caractersticas
Diagrama de bloques
Direcciones y registros de control
Modos de funcionamiento:
Modo 0 (E/S programada)
Modo 1 (E/S por interrupciones)
Modo 2 (E/S bidireccional)
5
3
4
Comienzo de la
ejecucin de los
manejadores de
interrupcin
1
2
4
5
3
Mdulo
Los mdulos que se encuentran cargados en un momento dado pueden conocerse con el
comando lsmod o cat /proc/modules
Los dispositivos del sistema pueden conocerse con el comando cat /proc/devices
Arquitectura de Sistemas Paralelos (62)
Existen funciones para leer y escribir en los puertos una palabra (operaciones
simples) o ms (operaciones complejas). Ej: inb, outb, insb, ..
Existen funciones para leer y escribir en memoria (operaciones simples y
complejas). Ej: readb, writeb, memcpy_fromio, memcpy_toio,
Algunas plataformas reservan un espacio de memoria no paginable para la E/S
mapeada en memoria (no ocurre en ISA/PCI x86). Si el acceso a la memoria
asignada est virtualizado se requiere el uso de funciones especiales (ioremap y
iounmap)
Arquitectura de Sistemas Paralelos (64)