Entrada / Salida
Interfase con el mundo externo
No es posible pensar un sistema real sin E/S
Influye (y mucho!) sobre la performance total del sistema.
Ejemplo Ley de Amdahl
Componentes
CPU
Dispositivos de E/S (Disco magnético, teclado, mouse, red, video, etc)
Memoria
BUS de E/S
(Gp:) Memoria
(Gp:) Procesador
I/O Device
I/O Device
I/O Device
Ejemplo básico de E/S: Carga de dato desde disco
Proceso hace llamada al SO.
SO envía comandos al controlador de disco
El controlador prepara el disco para la transferencia.
Cuando el controlador tiene el dato, escribe en memoria y genera una interrupción.
El SO atiende la interrupción
El proceso retoma el control
¿Cómo evaluar perfomance?
¿De qué factores depende el rendimiento de E/S?
Tiempo de preparación del disco
Tiempo de transferencia desde el disco hacia el controlador
Eficiencia de la comunicación Procesador / Dispositivo
¿¿¿QUÉ ES MEJOR EN E/S???
¿Latencia? ¿Ancho de banda?
¿Cantidad de operaciones simultáneas?
¡Todo depende!
Según la aplicación, podremos elegir qué característica es deseable…
Alta interactividad, transferencias pequeñas: LATENCIA!
Grandes transferencias de datos: ANCHO DE BANDA!
Muchas transferencias independientes entre si: # DE OPERACIONES SIMULTANEAS
Ejercicio: pensar un escenario donde sea deseable tener baja latencia yalta cantidad de operaciones simultaneas.
Dispositivos de Entrada/Salida
SubDiscos Magnéticos, Interfases de Red y Buses
Discos Magnéticos
Platos
Pista
Sector
Sector
Pista
Head
Plato
Cilindro: todas las pistas bajo las cabezas en un punto determinado de todas las superficies
Discos magnéticos: tiempo de acceso
Tiempo de acceso = Tiempo de posicionamiento (seek time) +
Retardo medio de rotación +
Tiempo de transferencia +
Overhead del controlador
Ejemplo:
Usando los datos del disco anterior, calcular el tiempo medio requerido para leer o escribir un sector de 512 bytes. Suponer que el disco está inactivo y un overhead del controlador de 1 ms.
Ejemplo (cont)
Tpo acceso = Tpo Búsqueda + Retardo medio de rotación + Tpo Transferencia + Overhead del controlador
Tpo acceso = 4.5ms + 1.5ms + 0.005 ms + 1 ms = 7.005 ms
Retardo medio de rotación=(20000rpm/60s)
20000revs -> 1min1 rev -> 1min/20000 = 60s/20000 = 60000ms/20000 = 3 ms½ rev -> 1.5 ms
Tiempo de trasferencia =
816Mbit => 1s512*8 bits => 1s/(816*106)*4096 = 0.005 ms
Redes
Medio mas popular de comunicación entre computadoras.
Mucha variedad de características (distancia, velocidad, topología, latencia
)
Ejemplos:
RS-232
Ethernet
ATM
Buses de E/S
Medio de comunicación entre los distintos subsistemas.
BUS: enlace de comunicación COMPARTIDO, que utiliza un conjunto de cables para conectar múltiples subsistemas.
Vantajas: barato, simple, versátil.Desventajas: escalabilidad (medio de acceso compartido), velocidad limitada por la longitud, # y tipo de dispositivos a conectar.
Espacio de diseño: ancho de banda, buffers, tamaño de bloque, tipo de dispositivos a conectar, protocolo.
BUS = Lineas de Control + Lineas de Datos
Organización de un Bus
Líneas de control:
Indican requests y acknowledgments
Indican que tipo de información hay en las líneas de datos
Líneas de datos llevan la información entre el origen y el destino:
Datos y direcciones
Comandos complejos
Tipos de buses
Bus Procesador-Memoria (bus propietario)
Short and high speed
Only need to match the memory system
Maximize memory-to-processor bandwidth
Connects directly to the processor
Optimized for cache block transfers
Bus de E/s (buses standard)
Usually is lengthy and slower
Need to match a wide range of I/O devices
Connects to the processor-memory bus or backplane bus
Bus Backplane (standard o propietario)
Backplane: an interconnection structure within the chassis
Allow processors, memory, and I/O devices to coexist
Cost advantage: one bus for all components
A single bus (the backplane bus) is used for:
Processor to memory communication
Communication between I/O devices and memory
Advantages: Simple and low cost
Disadvantages: slow and the bus can become a major bottleneck
Example: IBM PC – AT
Processor
Memory
I/O Devices
Backplane Bus
Sistema con un único bus
I/O buses tap into the processor-memory bus via bus adaptors:
Processor-memory bus: mainly for processor-memory traffic
I/O buses: provide expansion slots for I/O devices
Apple Macintosh-II
NuBus: Processor, memory, and a few selected I/O devices
SCSI Bus: the rest of the I/O devices
(Gp:) Processor
(Gp:) Memory
(Gp:) I/O
Bus
(Gp:) Processor Memory Bus
(Gp:) Bus
Adaptor
(Gp:) Bus
Adaptor
(Gp:) Bus
Adaptor
(Gp:) I/O
Bus
(Gp:) I/O
Bus
Sistema con dos buses
Sistema con dos buses
A small number of backplane buses tap into the processor-memory bus
Processor-memory bus is only used for processor-memory traffic
I/O buses are connected to the backplane bus
Advantage: loading on the processor bus is greatly reduced
(Gp:) Processor
(Gp:) Memory
(Gp:) Processor Memory Bus
(Gp:) Bus
Adaptor
(Gp:) Bus
Adaptor
(Gp:) Bus
Adaptor
(Gp:) I/O Bus
(Gp:) Backside
Cache bus
(Gp:) I/O Bus
(Gp:) L2 Cache
Buses sincrónicos y asincrónicos
Síncronos: incluyen señal de reloj (clk) en las líneas de control. Protocolo muy simple (maquina de estados finitos), relacionado al clk. Todos los dispositivos tienen la misma velocidad de reloj Problema de sesgo de reloj!
Asíncrono: Sin señal de reloj (clk) Puede alojar gran variedad de dispositivos. Mayor longitud Protocolo mucho mas complicado (handshaking)
Transferencia sincrónica
BReq
BG
Cmd+Addr
R/W
Address
Data1
Data2
Data
Transferencia asincrónica
Address
Data
Read
Req
Ack
Master Asserts Address
Next Address
t0 t1 t2 t3 t4 t5
t0 : Master has obtained control and asserts address, direction, data
Waits a specified amount of time for slaves to decode target.
t1: Master asserts request line
t2: Slave asserts ack, indicating ready to transmit data
t3: Master releases req, data received
t4: Slave releases ack
Slave Data
Otros factores
Ancho del bus de datos
Líneas de dirección separadas versus multiplexadas
Transferencias en bloque
Arbitración del bus
Arbitración paralela centralizada
Arbitración distribuida por autoselección
Arbitración distribuida por detección de colisiones