Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

9 Sistemas de I-O

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 50

Arquitectura de

Computadores

Capítulo VI
SISTEMA DE ENTRADA/SALIDA
Capítulo VI – SISTEMA DE
ENTRADA/SALIDA

• INTRODUCCIÓN
• FUNCIONES DEL CONTROLADOR I/O
• ORGANIZACIÓN DEL SISTEMA DE I/O
• BUSES DE DATOS
• CONECTORES EN LA TARJETA MADRE
• PUERTOS CONECTORES DEL PANEL
TRASERO
INTRODUCCIÓN
Introducción
Aplicaciones
Sw
Compilador o
Sistema Operativo
Intérprete

Interfaz de Sw

CPU
Módulos
de
Sección
de
Entrada Fw
Control
Memoria y
Hw
Sección
Módulos
de de
Datos Salida
Introducción
• Entrada/Salida: permite al SC comunicarse con el
exterior
– Proporciona información al SC
– Entrega información procesada al usuario
• Las características del sistema I/O son determinadas por
la tecnología imperante
– Tarjetas de video actuales AGP
– Discos actuales UATA/133
– Memorias RAMBus
• Características claves en sistemas de I/O
– Desempeño
– Capacidad de expansión
– Reacción ante fallas
Arquitectura de un Sistema de
Entrada/Salida
• Dispositivos de I/O: monitor, teclado, etc.
• Controladores de I/O: DMA, controlador disco, etc.

Líneas de interrupción
CPU

Caché

Bus Memoria-I/O

Controlador Controlador Controlador Controlador


I/O I/O I/O I/O
Memoria
Principal

Sonido Red
Disco
Introducción
• Desempeño CPU aumenta un 60% al año
• El desempeño del sistema I/O está limitado por retardos
mecánicos, aumenta un 10% al año
• Ley de Amdahl: hacer más rápido el caso más frecuente
– Si la parte más lenta resulta ser cuello de botella
– Por lo tanto, el sistema I/O resulta una limitante para la velocidad
del SC
• Pero, ¿cuál es la importancia principal de I/O?
– Las CPU actuales son lo suficientemente rápidas
– Usuarios emplean los SC principalmente para almacenar y
distribuir información
• El uso del CPU es normalmente bajo en un PC: empleada en
simulaciones, compresión de video, audio, etc.
• Los requerimientos principales son memoria, disco y BW de la
conexión a Internet
Introducción
• Funciones del controlador I/O
– Control y timing
– Comunicación con CPU
– Comunicación con periféricos
– Almacenamiento temporal de datos
– Detección de errores
FUNCIONES DEL
CONTROLADOR I/O
Funciones del controlador I/O
• Control y timing
– Coordinar transferencia entre recursos internos
(memoria y bus) y externos (periféricos)
– Establecer la comunicación entre el controlador de
I/O y CPU
• CPU consulta al controlador de I/O para comprobar el estado
del periférico
• controlador de I/O entrega el estado del dispositivo
• CPU solicita la transferencia de los datos
• controlador de I/O obtiene el dato del dispositivo
• los datos se transfieren desde el controlador de I/O a la CPU
– Si se utiliza un bus, entonces cada una de las
interacciones entre CPU y el controlador de I/O
implican uno o más arbitrajes del bus
Funciones del controlador I/O

• Comunicación con CPU


– Decodificación de instrucciones
– Datos
– Información de estado
– Reconocimiento de dirección
• Comunicación con periféricos
– Intercambio de instrucciones, información de estado y
datos
Funciones del controlador I/O

• Almacenamiento temporal de datos


– Permite ajustar la velocidad de transferencia de los
dispositivos con la velocidad de trabajo del sistema
• Detección de errores
– Errores mecánicos y eléctricos.
– Errores en los datos
• utilización de códigos de detección
• utilización de códigos de detección y corrección errores
• utilización de bits de paridad
ORGANIZACIÓN DEL
SISTEMA DE I/O
Organización Sistema I/O
Debe responder las siguiente preguntas de
diseño:
1. ¿Cómo direccionar los dispositivos?
2. ¿Cómo sincronizar, a nivel de operación, los
controladores de I/O y el resto del Sistema
de Computo?
3. ¿Cómo transferir la información?
Organización Sistema I/O
¿Cómo direccionar los dispositivos?
Alternativas de diseño:
1. I/O aislada
2. I/O mapeada en memoria

1ª Alternativas de diseño I/O aislada


– Espacio de direcciones que utiliza la memoria y el I/O son
independientes
– Datos que se transfieren entre la CPU y el periférico
pueden tener longitud distinta de los que se transfieren
entre memoria y CPU
– CPU dispone de líneas de control específicas para indicar
si se trata de una operación con memoria o una operación
de E/S
– Existen instrucciones específicas de E/S
– ej.: arquitectura Intel x86
Organización Sistema I/O
¿Cómo direccionar los dispositivos?

2ª Alternativas de diseño: I/O mapeada en


memoria
• I/O y memoria comparten el mismo espacio de direcciones
• no se requieren instrucciones específicas de I/O
• no existen líneas especiales en el bus para distinguir
operaciones con memoria de operaciones de I/O
• datos que se transfieren entre CPU y periférico deben tener
la misma longitud que los que se transfieren entre memoria y
la CPU
• ej.: Motorola 68000
Organización Sistema I/O
¿Cómo sincronizar I/O y SC?
– Sincronización de I/O: si CPU desea Tx/Rx datos
a/desde un periférico tiene que asegurarse que el
dispositivo está preparado para realizar la
transferencia.
– Existen tres mecanismos básicos de sincronización:
1. I/O programada por polling (consulta de estado)
2. I/O por interrupciones
3. I/O utilizando DMA
Organización Sistema I/O
¿Cómo sincronizar I/O y SC?

1. I/O por polling:


• CPU se encarga de realizar una consulta periódica para
comprobar el estado del dispositivo
• en las operaciones de entrada se verifica si el dato a leer
ya se encuentra en el registro de datos.
• en las operaciones de salida se verifica si el dispositivo
está listo para recibir un nuevo dato.
– Ventaja:
• sencillo de implementar pues no requiere Hw específico
– Desventajas:
• CPU no hace trabajo útil durante el loop de espera
• resulta difícil atender varios periféricos
Organización Sistema I/O
¿Cómo sincronizar I/O y SC?
2. I/O por interrupciones:
controlador de I/O avisa a CPU en las siguientes situaciones:
• en operaciones de entrada cuando tiene un nuevo dato
disponible
• en las operaciones de salida cuando ha finalizado la operación
requerida por CPU
– Ventajas:
• periférico solicita la atención de la CPU sólo cuando está
preparado
• no existe loop de espera
• CPU puede realizar otras tareas mientras tanto
– Desventaja:
• requiere que CU permita la administración de interrupciones
Organización Sistema I/O
¿Cómo sincronizar I/O y SC?
2. I/O por interrupciones:
• Identificación de la fuente de interrupción
• a una misma línea de interrupción es posible conectar
varios periféricos
• si existen varias fuentes de interrupción es necesario
mecanismo para identificar que periférico interrumpió y
ejecutar la rutina de atención de interrupción adecuada
– Soluciones:
• Peticiones de interrupción simultáneas
Organización Sistema I/O
¿Cómo sincronizar I/O y SC?

2. I/O por interrupciones:


Peticiones de interrupción simultáneas:
• se puede dar que se hayan generado varias peticiones de
interrupción simultáneas
• se debe establecer un sistema de prioridades que permita
seleccionar a quien atender primero
– Soluciones:
• Sw: mediante polling en la rutina de atención de interrupción
• Hw: según el tipo de conexionado: prioridades verticales,
horizontales o mixtas
Organización Sistema I/O
¿Cómo sincronizar I/O y SC?
2. I/O por interrupciones:
Interrupciones no vectorizadas SW:
• dirección de la rutina de atención de interrupción es fija para cada
línea de petición de interrupción de CPU
• si existen varias dispositivos conectados a una línea de interrupción
es la rutina de manejo de la interrupción la que debe averiguar cuál
es la que ha activado la interrupción
Interrupciones vectorizadas HW:
• cada dispositivo posee un vector de interrupción prefijado pero
independiente de la línea de petición de interrupción en la que está
conectado
• el dispositivo se identifica enviando su vector de interrupción a
través del bus de datos
• inicialización de los vectores de interrupción se realiza en la fase de
carga del OS
Organización Sistema I/O
¿Cómo sincronizar I/O y SC?
3. I/O utilizando DMA:
• Hw capaz de realizar Tx/Rx liberando CPU
• direcciona memoria y puertas y maneja líneas R/W
• OS programa el controlador de I/O y el controlador de DMA
indicando cuántos datos transferir, de qué puerta(s) de I/O y a qué
dirección(es)
• en una transferencia por DMA el controlador de DMA solicita a la
CPU el control de los buses
• CPU puede seguir entonces trabajando con caché
• DMA toma control de los buses temporalmente y transfiere los
datos entre controlador de I/O y memoria.
• luego DMA deja de solicitar los buses cuando ha finalizado y OS
devuelve control al programa que solicitó I/O
– Ventajas:
• más eficiente: Tx/Rx más rápida
• útil para transferencias grandes
– Desventajas:
• requiere apoyo de Hw adicional
Organización Sistema I/O
¿Cómo transferir la información?
¿Cómo se realiza la Tx/Rx de datos entre el
controlador de I/O y el SC?
– Transferencia programada:
• se puede realizar entre CPU y el controlador de I/O o entre memoria y el
controlador de I/O
• requiere intervención directa de la CPU
• se puede utilizar en dispositivos con un BW muy bajo
• los métodos de sincronización y control utilizados son polling e interrupción
– Transferencia por DMA
• permite Tx/Rx de datos entre un periférico y la memoria sin intervención de
la CPU (salvo en la fase de inicialización de los parámetros de la Tx/Rx)
• controlador de DMA es un dispositivo capaz de controlar la Tx/Rx entre un
periférico y la memoria sin intervención de la CPU.
• se utiliza en dispositivos con un BW alto
Organización Sistema I/O
¿Cómo transferir la información?
Etapas de una transferencia por DMA
– Inicialización de la transferencia:
• CPU debe enviar al controlador de I/O del periférico y al controlador
de DMA los parámetros de la transferencia: cantidad de Bytes a
Tx/Rx, tipo de transferencia, dirección de memoria inicial para la
transferencia, etc.
• después de la inicialización la CPU retorna a sus trabajo
– Realización de la transferencia:
• cuando el periférico está preparado se lo indica al controlador DMA
• controlador DMA pide el control del bus y se realiza la transferencia
entre el periférico y la memoria
– Finalización de la transferencia:
• controlador DMA libera el bus y devuelve el control a la CPU
• controlador DMA suele activar una señal de interrupción para
indicar a la CPU la finalización de la operación de E/S solicitada.
BUSES DE DATOS
Buses de Datos
• Bus: camino de datos compartido
• Ventajas:
– Flexible
– Bajo costo
• Desventajas:
– Crean un cuello de botella en el sistema
– La velocidad del bus está limitada por el largo de éste, la
cantidad de elementos conectados y la necesidad de soportar
diversos tipos de elementos.
• Organización de un bus
– Líneas de control: típicamente son peticiones y confirmaciones
– Líneas de datos: típicamente son datos y direcciones.
Buses de Datos

• Tipos de buses de datos:


– Backplane:
• bus único para todo el SC
• provee interconexión con chasis
• conecta múltiples dispositivos
– Procesador-memoria:
• bus dedicado para Tx/Rx entre memoria y CPU
• corto y de alta velocidad
• los periféricos disponen de sus propios buses
– De I/O:
• buses que conectan periféricos al resto del SC
• largos y de baja velocidad
• se conectan al backplane o al bus de memoria
Buses de Datos
Bus Backplane

CPU
Sonido Red
Memoria Disco
Principal

CPU Memoria
Bus de memoria

Bus de adaptación

Controlador Controlador Controlador Controlador


I/O I/O I/O I/O
I/O

I/O

I/O

I/O
Bus

Bus

Bus

Bus

Sonido Red
Disco
Buses de Datos
• Formas de Tx/Rx información
– Sincrónica: todas las operaciones y protocolos son manejados con un
reloj
• normalmente usado entre memoria y CPU
– Ventaja: protocolo simple
– Desventaja: reloj compartido por periféricos de múltiples velocidades

CK
BusReq

BusGrant

R/W Addr Cmd+Addr

Wait

Data Data1 Data1 Data2


Buses de Datos
Transacción de Escritura
• Formas de Tx/Rx
Addr Master Provee Addr Sgte. Addr
información
Data Master Provee Datos
– Asincrónica: utiliza Read
handshaking Req
– Ventaja: flexible entre Ack
dispositivos distintos
– Desventaja: protocolo Transacción de Lectura

más complejo Addr Master Provee Addr Sgte. Addr

Data

Read

Req

Ack
Buses de Datos

IDE SCSI PCI PCI-X IBM SP


Ancho [b] 16 8-16 32-64 32-64 128
fCK,Max [MHz] 133 160 66 133 111
Bus masters 1 n n n n
BWPk[MBy/s] 200 320 520 1040 14200
Sincronismo Asinc Sinc Sinc Sinc Sinc
Buses de Datos
CPU Caché
Pentium® L. II

Bus de memoria

Memoria
Controlador
DMA
(82439HX)

Bus PCI

Controlador
IDE USB
(PIIX3) Red
IDE 0

IDE 1

Disco
Sonido
DVD
ISA
DVD-ROM
Modem
Buses de Datos

• Preguntas de diseño de buses


– ¿Cómo incrementar el BW de un bus?
– ¿Cómo obtener acceso al bus?
• ¿Cómo incrementar el BW de un bus?
– Aumentar el ancho del bus
• permite que Tx/Rx tomen menos ciclos
– Permitir que direcciones y datos multiplexen o no las líneas
• buses separados implican más líneas de control
– Tx/Rx bloques de datos
• Tx/Rx múltiples datos enviando sólo 1 dirección
– Buffering
• disminuyen la diferencia de velocidad entre dispositivos
Buses de Datos

• ¿Cómo obtener acceso al bus?


– ¡Se necesita un árbitro!, es decir, un Bus Master
• en el esquema más simple, el Bus Master es la CPU
– Esquema de arbitrio de bus:
• dispositivo desea utilizar los buses y hace una petición
• dispositivo espera hasta que el Bus Master acepte su petición
• dispositivo avisa al Bus Master que terminó de usar los buses
– Problemas adicionales:
• ¿existen o pueden existir dispositivos que tengan mayor control de
los buses que otros?
• ¿es justo?
Buses de Datos

• Esquema tradicionales de arbitrio de bus:


– Daisy chain: encadenamiento (serie) de dispositivos basados en
prioridades
– Arbitrio centralizado en paralelo: único administrador de buses
donde el acceso o petición del bus por parte de los periféricos
puede ser simultáneo
– Arbitrio distribuido por auto selección: múltiples candidatos a
Bus Master de los cuales se obtiene el Bus Master para las
Tx/Rx
– Arbitrio distribuido con detección de colisión: acceso aleatorio a
los buses detectando si existe uno o más dispositivos que,
simultáneamente intentaron hacer uso del recurso compartido
Buses de Datos

Característica Alto desempeño Bajo costo


Líneas Separadas Multiplexadas

Ancho bus Ancho Delgado

Transferencia Múltiples Wds Wds Pequeñas

Bus master n 1

Reloj Sincrónico Asincrónico

Protocolo Pipelined Serial


CONECTORES EN LA
TARJETA MADRE
PUERTOS CONECTORES
DEL PANEL TRASERO

También podría gustarte