Title: EntradaSalida Manejo de dispositivos
1Entrada/SalidaManejo de dispositivos
- Arquitectura de Computadoras II
- Fac. Cs. Exactas
- UNCPBA
2Introducción
Sistemas de ( I/O ) están limitados por la
tecnología
diseñadores de procesadores deben preocuparse
solo de la performance diseñadores de sistemas
de I/O deben considerar la expandibilidad
factibilidad de recuperación de errores la
performance.
3Introducción
- La performance depende de varios aspectos del
sistema - las características del dispositivo
- la conexión entre el dispositivo y el resto del
sistema - la jerarquía de memoria
- el sistema operativo.
La performance de un sistema de I/O es mucho mas
difícil de medir que la de un procesador En
algunos dispositivos importa la latencia de
acceso, en otros el throughput es mas importante
4Estructura del sistema de I/O
5Características
- Todos los componentes, desde los dispositivos
individuales - de I/O hasta el procesador, afectarán la
performance de las - tareas que incluyan I/O
- Las conexiones entre los dispositivos,
procesador y memoria - son llamadas buses
- La comunicación entre dispositivos y procesador
usan ambos protocolos - Buses
- Interrupciones
6Ejemplo
Supongamos un benchmark que ejecuta en 100
segundos, usa 90 segundos de tiempo de CPU y el
resto es tiempo de I/O. Si el tiempo de CPU es
mejorado en un 50 por año, por 5 años seguidos
mientras que la I/O no. Cuanto más rápido
correrá nuestro programa sobre la máquina del 5to
año ? Sabemos que TiempoTotal CPUtime
I/Otime 100 90 I/Otime I/Otime 10
segundos
7Ejemplo
Nuevos tiempos de CPU y tiempo total Año T
CPU T I/O T total I/O
0 90 seg. 10 seg. 100
seg. 10 1 60 seg. (90/1.5) 10
seg. 70 seg. 14 2 40
seg. (60/1.5) 10 seg. 50 seg.
20 3 27 seg. (40/1.5) 10 seg.
37 seg. 27 4 18 seg.
(27/1.5) 10 seg. 28 seg. 36
5 12 seg. (18/1.5) 10 seg. 22
seg. 45
8Ejemplo
Ganancia de performance de la CPU luego de los 5
años 7.5 90 / 12 Ganancia real de todo el
sistema, considerando la I/O 4.5 100 /
22 Incremento del porcentaje de tiempo de I/O
10 a 45.
9Rendimiento del sistema I/O
Problema El trabajo de la CPU y de la I/O se
superponen Nuevo concepto de rendimiento
T carga de trabajo T cpu T i/o - T solapado
Si mejoramos CPU T carga de trabajo T
cpu T i/o - T solapado
mejora CPU
mejora CPU Si mejoramos I/O T carga de
trabajo T cpu T i/o - T solapado
mejora I/O mejora I/O
10Ejemplo
Una carga de trabajo emplea 50 seg., estando la
CPU ocupada 30 seg. Y la I/O ocupada 30
seg. Cuál es la nueva carga de trabajo con una
CPU que cuadriplique el rendimiento?
T carga 30/4 30 - 10/4 35 seg.
11Problema
Qué parte del nuevo tiempo de carga en que se
usa la CPU nueva se solapa con I/O?
Original
T i/o
T cpu
T solapado
12Posibilidades de solapado
A) Solapado máximo (30 segundos)
T i/o
T solapado 7,5 seg.
T cpu
13Posibilidades de solapado
B) Solapado escalado (35 segundos)
T i/o
T solapado 2,5 seg.
T cpu
14Posibilidades de solapado
A) Solapado mínimo (37,5 segundos)
T i/o
T solapado 0 seg.
T cpu
15Tipos y características de I/O
- 3 características principales
- Comportamiento entrada, salida, o
almacenamiento - (múltiples entradas y salidas)
- Involucrados humano o máquina. Quien está al
final - de la línea del dispositivo de I/O, o
alimentando - datos de entrada o leyendo datos de salida.
- Velocidad de Transmisión. Velocidad en que los
datos - pueden ser transferidos entre el dispositivo y
la memoria - principal o el procesador
16Dispositivos de I/O estandares
Dispositivo Comportamiento
Involucrados KB/seg. Teclado
Entrada Humano
0.01 Mouse
Entrada Humano
0.02 Entrada de voz Entrada
Humano
0.02 Scanner Entrada
Humano 200.00 Salida de
voz Salida
Humano 0.60 Impresora de
líneas Salida Humano
1.00 Impresora láser
Salida Humano
100.00 Pantalla gráfica Salida
Humano 30
000.00 Terminal Entrada o
Salida Máquina 0.05 Red
LAN Entrada o Salida
Máquina 200.00 Disketera
Almacenamiento Máquina
50.00 Disco óptico
Almacenamiento Máquina
500.00 Cinta magnética
Almacenamiento Máquina 2
000.00 Disco magnético
Almacenamiento Máquina 2
000.00
17Buses
La comunicación entre memoria, procesador y
dispositivos de I/O es realizada por medio de un
bus Bus vínculo de comunicación compartido usa
un conjunto de cables para conectar múltiples
subsistemas.
RAM
CPU
I/O
I/O
I/O
Bus
18Ventajas y desventajas
- Ventajas de una organización por bus
- versatilidad Definiendo un esquema simple de
conexión, pueden ser agregados nuevos
dispositivos - bajo costo los periféricos pueden ser
intercambiados entre máquinas que utilicen el
mismo tipo de bus. - Desventaja de un bus
- cuello de botella en las comunicaciones
- limita el máximo throughput de I/O, debido a que
todo el tráfico debe pasar por un simple bus - sistemas donde las operaciones de I/O son muy
frecuentes, como en supercomputadoras y sistemas
comerciales de alta performance
19Tipos de buses
- Tres categorías (según que partes comunican)
- Buses procesador-memoria
- cortos
- de alta velocidad
- cercanos al sistema de memoria
- (para maximizar el ancho de banda
procesador-memoria) - Buses de I/O
- largos
- pueden conectarse varios tipos de dispositivos
- pueden trabajar en un amplio rango de anchos de
banda - Por lo general no se comunica directamente con la
memoria, lo hace por medio del bus
procesador-memoria o del bus backplane.
20Tipos de buses
- Buses backplane
- diseñados para permitir que el procesador, la
memoria, y los dispositivos de I/O puedan
coexistir sobre un simple bus - equilibra las demandas de comunicación
- procesador - memoria
- dispositivo I/O - memoria.
21Notas
Los buses procesador-memoria son diseños
específicos, mientras que los buses de I/O y
backplane son frecuentemente reutilizados en
diferentes máquinas buses backplane y de I/O
son casi siempre considerados buses estándares
(usados por distintos fabricantes de computadoras
y dispositivos) El diseñador del bus
procesador-memoria conoce todos los tipos de
dispositivos a los cuales se conectará el
bus Los diseñadores de buses backplane o de I/O
deben diseñar un bus para manejar dispositivos
desconocidos que pueden variar en características
tales como latencia y ancho de banda
22Ejemplos de conexionado
Bus Backplane
el bus backplane requiere lógica adicional para
interface entre el bus y un dispositivo
23Ejemplos de conexionado
Bus procesador-memoria y buses de I/O
un bus de I/O presenta una interface para
conectar dispositivos de bajo nivel directamente
24Ejemplos de conexionado
Sistema con todos los buses
25Buses sincrónicos y asincrónicos
Bus sincrónico
- incluye una señal de reloj entre las líneas de
control - un protocolo fijo para comunicación (relativo al
reloj) - altas velocidades de ejecución
- lógica e la interface pequeña
- Los buses procesador-memoria son por lo general
de tipo sincrónico, porque los dispositivos a
comunicar son una pequeña cantidad, conocidos, y
preparados para operar a altas frecuencias de
reloj - 2 desventajas principales
- todos los dispositivos sobre el bus deben
ejecutar a la misma - frecuencia de reloj.
- puede ocasionar problemas de detección de
flancos del reloj si el - bus es muy largo y rápido.
26Buses sincrónicos y asincrónicos
Bus asincrónico
- no trabaja con el reloj
- puede trabajar con una amplia gama de
dispositivos - el bus puede ser alargado sin importar la señal
de reloj - y los problemas de sincronismo.
- Uso de un protocolo de handshaking
- coordina la transmisión de datos entre
dispositivos - consiste de una serie de pasos, en los cuales el
- transmisor y el receptor, luego de acordar
pasan a la - siguiente etapa de la transmisión.
27Buses sincrónicos y asincrónicos
Protocolo de handshaking
- utiliza un grupo de lineas de control
adicionales - tres señales de control básicas
- ReadReq
- DataReady
- Ack.
ReadReq
ReadReq
Mem
I/O
Ack
DataReady
DataReady
Ack
Ack
28Más notas...
- La elección entre un bus sincrónico y asincrónico
afecta - el ancho de banda
- la capacidad del sistema de I/O (por el largo
del bus) - el número y tipo de dispositivos a los cuales
puede - conectarse
- Los buses asincrónicos mejoraron con los cambios
tecnoló- - gicos y pueden soportar una gran variedad de
dispositivos con distintas velocidades de
respuesta.
29Ancho de banda de un bus
- Definido por el protocolo (sincrónico o
asincrónico) y las características de
temporización del bus - Factores que afectan el ancho de banda
- Ancho del bus de datos incrementando el ancho
del bus de datos, la transferencia de múltiples
palabras requieren menos ciclos. - Líneas de direcciones y de datos separadas VS
multiplexadas incluyendo líneas de dirección
separadas provocarán un incremento en la
performance, porque las direcciones y datos
pueden ser transmitidos en un solo ciclo de
reloj. - Transferencia de bloques permitiendo la
transferencia de múltiples palabras encadenadas,
evitando enviar todas las direcciones el bus
reducirá el tiempo necesario para la
transferencia del bloque.
30Acceso al bus
Caos
Sin un protocolo de control cualquier dispositivo
puede tomar control del bus
Solución
- Se define un esquema de acceso maestro -
esclavo - Se introducen uno o más maestros del bus
Un maestro controla el acceso a el bus
inicializa y controla todos los pedidos al bus.
31Acceso al bus
Maestro entidad activa capaz de iniciar un
requerimiento a la memoria o I/O
Esclavo entidad activa o pasiva responde a
los requerimiento de un maestro
CPU siempre maestro
Memoria siempre esclavo
I/O disco maestro o esclavo
32Número de masters
- 1 maestro de bus procesador
- desventaja todo requerimiento debe ser
controlado por el - procesador.
- varios maestros procesador, DMA, discos, etc
- debe existir un mecanismo que decida quien
accede al bus - trabajo en forma cooperativa
- se definen diferentes esquemas de arbitración de
bus. - cada dispositivo debe tener una prioridad de
acceso al bus, donde el - dispositivo con prioridad mas alta accede
primero. - cualquier dispositivo, incluso uno con baja
prioridad, nunca debe ser - privado del acceso al bus.
33Esquemas de arbitración
- Daisy Chain
- línea de grant (acceso, permiso)
- se recorren los dispositivos desde la mas alta
prioridad - hasta la mas baja (las prioridades son
determinadas por - la posición en el bus)
Ack/nak
Bus driver
grant
grant
grant
grant
grant
34Esquemas de arbitración
- Centralizado/paralelo
- múltiples líneas de requerimientos
- centralizado,
- el arbitro selecciona el dispositivo al cual se
le dará acceso y - le notifica que pasa a ser el maestro del bus
- desventaja puede crear un cuello de botella.
request
Bus driver
ack
35Esquemas de arbitración
- Distribuido por selección propia (self-selection)
- múltiples líneas de requerimientos
- los dispositivos determinan cual tiene el acceso
- Cada dispositivo que necesite acceder al bus,
pone un código que - lo identifica en el bus, y luego al examinar
el bus, el dispositivo - puede determinar cual es el dispositivo de
prioridad mas alta que - solicitó acceso
- no necesita arbitro, pero necesita más líneas de
- requerimiento de acceso
Códigos de identificación
36Esquemas de arbitración
- Distribuido por detección de colisiones
- cada dispositivo independientemente solicita el
- acceso al bus
- Múltiples accesos simultáneos producen colisión
- una vez detectada se inicia un mecanismo para
- solicitar nuevamente el acceso
- Ethernet usa este esquema.
37Estándares
Un bus estándar asegura al diseñador de la
computadora que periféricos tendrá disponible la
nueva máquina asegura al constructor de
dispositivos que los usuarios podrán incorporar
el periférico a su equipo
- Algunos estándares
- IBM PC-AT
- IPI, Intelligent Peripheral Interface
(fabricantes) - SCSI, Small Computer System Interface
(fabricantes) - Ethernet, (fabricantes)
- FutureBus (IEEE)
38Notas sobre performance
Buses mas cortos pueden ser más rápidos, pero no
serán tan expandibles Buses más anchos puede
tener un ancho de banda mayor pero son más
caros Dividir una transacción de bus incrementa
el ancho de banda, pero incrementa el
costo Buses con líneas separadas de direcciones
y datos brindan una alta performance, pero
incrementa mucho el costo si lo comparamos con
las lineas de datos y direcciones multiplexadas
39Interacción con el sistema
- características principales del sistema de I/O
- El sistema de I/O es compartido por los
múltiples - programas que usan el procesador
- El sistema de I/O frecuentemente usa
interrupciones - para comunicar información acerca de
operaciones de - I/O.
- El control de bajo nivel de un dispositivo de
I/O es - complejo, porque requiere manejar un conjunto
de - eventos concurrentes y porque los
requerimientos para - el correcto control del dispositivo son muchos.
40Funciones del S.O.
- El S.O. debe ser capaz de enviar comandos a los
- dispositivos.
- lectura y escritura
- seek sobre un disco
- etc.
- El dispositivo debe ser capaz de informar al
S.O. - cuando la operación ha sido completada o ha
- detectado un error (seek completado).
- Debe ser posible realizar transferencias de
datos - entre el dispositivo y la memoria (si un
bloque está - siendo leído, debe ser transferido a memoria).
41Comandos a los dispositivos I/O
- 2 tipos
- I/O de memoria mapeada en esta técnica,
porciones del espacio de direccionamiento es
asignado a dispositivos de I/O. Lecturas y
escrituras sobre esas áreas de memoria son
interpretadas como comandos para el dispositivo.
El procesador puede también verificar el estado
del dispositivo. - Instrucciones especiales de I/O. Estas
instrucciones dedicadas pueden especificar el
número de dispositivo y la palabra comando (o la
ubicación de la palabra comando en la memoria
42Transferencia de datos
- Tres técnicas
- Polling
- El procesador realiza la transferencia de datos
entre el - dispositivo y la memoria
- El procesador debe efectuar lecturas de los
registros - para obtener los datos a almacenar
- Controlado por interrupciones
- El S.O. transfiere datos, en pequeños grupos de
bytes, - de/al dispositivo
- como la transferencia es controlada por
interrupciones, - el S.O. trabaja con otras tareas mientras los
datos son - leídos o escritos de/a el dispositivo
43Transferencia de datos
- Acceso directo a memoria (DMA Direct Memory
Access) - controlador especializado que transfiere los
datos entre el - dispositivo de I/O y la memoria
- independiente del procesador.
- el controlador de DMA es el maestro y dirige las
lecturas o - escrituras sobre sí mismo y sobre la memoria.
- 3 pasos en una transferencia DMA
- El procesador configura el DMA, enviándole la
identidad del dispositivo, la operación a
realizar, la dirección de memoria que es fuente o
destino de los datos transferidos, y el número de
bytes a transferir. - El DMA comienza la operación sobre el
dispositivo y arbitra el acceso al bus - Al terminar, el controlador interrumpe al
procesador, el cual determina interrogando al DMA
si la operación entera fue realizada
satisfactoriamente.
44Bus IBM PC
I/o ch ck d7 d6 d5 d4 d3 d2 d1 d0 i/o ch
rdy AEN A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9
A8 A7 A6 A5 A4 A3 A2 A1 A0
B1 A1 B10 A10 B20
A20 B31 A31
Gnd reset drv 5 V irq 2 -5 V drq 2 -12
V reserved 12 V gnd memW memR ioW ioR dack3 drq
3 dack1 drq 1 dack0 clock irq 7 irq 5 irq 4 irq
3 dack2 T/C ALE 5 V Osc Gnd
A0..A19 dirección D0..D7 datos irq0..irq7
interrupciones drq1..drq3 DMA dack0..dack3 DMA
ACK memW, memR requerimiento de memoria ioW,
ioR requerimiento de I/O ALE address latch
enable (80x86) AEN address enable Osc reloj 14
Mhz (70 ns) clock reloj de 4,77 Mhz (210
ns) reset drv reset de inicialización i/o ch
rdy señal usada para generar wait states (para
i/o lentas) i/o ch ck error de paridad en i/o o
memoria T/C fin de ciclo de DMA
45Bus IBM PC
- Características eléctricas
- /- 12 V - 5 A
- /- 5 V - 4 A
- Reglas prácticas de uso
- No conectar lógica MOS (NMOS) directo al bus
- No conectar más de 2 cargas TTL a cada pin del
bus - Evitar que las señales del bus recorran grandes
- distancias en la placa (capacitancia,
distorsión, retraso, etc.)
46Conexión al IBM PC
Data bus
Bus
3-state buffer input port
3-state buffer output port
Adr bus
ioR
ioW
Chip select
Chip select
Decode logic
47Ejemplo
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
32 posibles puertos a usar
A9 1 Dir a partir de 200 h
A8 A7 A6 A5 200h 0
0 0 0 220h 0 0
0 1 240h 0 0 1
0 280h 0 1 0 0 300h
1 0 0 0
48Lógica de decodificación
5 V
gnd
A5
A6
Habilitación placa
A7
A8
1
A9
49Lógica de los buffers
D0
BD0
D0
BD0
D0
BD0
Dir 1 - salida 0 - entrada
50Buffer comercial
74LS245
D0
BD0
D1
BD1
D2
BD2
D3
BD3
D4
BD4
D5
BD5
D6
BD6
Habilitación de placa
D7
BD7
DIR
G
IOR
IOW
74LS245 8 bit bus transeiver with tristate
51Decodif. De A0..A4 (selección de registro)
BD0
.
BD7
W/R
enable
IOR
Registro 0
IOW
D e c o d 4 a 32
A0
A1
IOR IOW W/R
D0..D7
A2
A3
0 0 0 0 1 1 1
0 0 1 1 0
A4
enable
W/R
Registro 31