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