Transcript Tema03
3. Interfaces externas
de propósito general
Oliverio J. Santana Jaria
Periféricos e Interfaces
Ingeniería en Informática
Curso 2007 – 2008
Interfaces externas
La interfaz entre un controlador de E/S y un periférico
debe ajustarse a la naturaleza y a la forma de funcionar
del periférico
Interfaz serie vs. Interfaz paralela
Interfaz punto-a-punto vs. Interfaz multipunto
La interfaz debe soportar el diálogo entre el controlador
de E/S y el periférico
Envío de solicitud
Reconocimiento de solicitud
Transferencia de datos
Reconocimiento de recepción
[STALLINGS 7.7]
2
Registro de acoplo
Para el correcto funcionamiento de un controlador de
E/S es necesario disponer de un registro de acoplo
Este registro es un almacenamiento temporal (buffer)
de los datos a transferir entre el periférico y el resto
del sistema
Su objetivo principal es permitir que el controlador de
E/S pueda compensar las diferencias de velocidad entre
el bus del sistema y la interfaz externa
[STALLINGS 7.7]
3
Interfaces serie y paralela
La interfaz puede ser serie o paralela
Serie: solo hay una línea
de conexión, los bits se
transmiten de uno en uno
Paralela: hay varias líneas
de conexión, lo que permite
transmitir varios bits de forma
simultánea
Tradicionalmente se asocian las interfaces paralelas con
dispositivos de alta velocidad (cinta, disco…) y las interfaces
serie con dispositivos más lentos (impresoras, terminales…)
Hoy en día, las interfaces serie de alta velocidad hacen que
las paralelas sean cada vez menos frecuentes
[STALLINGS 7.7]
4
Configuraciones punto-a-punto
Una interfaz punto-a-punto proporciona una
línea específica entre el controlador de E/S y
el dispositivo externo
En los PCs tradicionales, las líneas punto-a-punto se
utilizan para dispositivos como el teclado, el ratón y
la impresora
Como ejemplos estudiaremos:
El puerto paralelo del PC – Centronics
El puerto serie del PC – RS232C
El bus serie universal: USB
[STALLINGS 7.7]
5
Configuraciones multipunto
Las interfaces externas multipunto cobran cada vez más
importancia, ya que se utilizan para dar soporte a:
Dispositivos de almacenamiento masivo (disco, cinta…)
Dispositivos multimedia (CD-ROM, equipos de audio,
equipos de video…)
Estas interfaces multipunto son, en realidad, buses
externos que poseen el mismo tipo de lógica que los
buses descritos en el Tema 2
Como ejemplos estudiaremos:
El bus serie FireWire
InfiniBand
[STALLINGS 7.7]
6
Estructura del tema
Introducción
Interfaces punto-a-punto
El puerto paralelo del PC – Centronics
El puerto serie del PC – RS232C
El bus serie universal: USB
Interfaces multipunto
El bus serie FireWire
InfiniBand
7
El puerto paralelo
El principal objetivo del puerto paralelo de un PC es
actuar como interfaz con la impresora
Los PCs actuales poseen al menos un puerto
paralelo, aunque suelen estar preparados
(DOS/BIOS) para manejar hasta cuatro distintos
Normalmente se denominan LPT1, LPT2, LPT3 y LPT4
(Line PrinTer)
La abreviatura PRN (PRiNter) se usa con frecuencia como
sinónimo de LPT1
[MESSMER 32]
8
Interfaz Centronics
La conexión entre el puerto paralelo del PC y la
impresora se realiza por medio de un cable Centronics
Normalmente, un cable Centronics está compuesto
por 36 líneas, por lo que los conectores también
tienen 36 pins
[MESSMER 32]
9
Interfaz Centronics
De las 36 líneas, sólo 17 están realmente mapeadas a
señales del protocolo de comunicación
Hay 18 líneas mapeadas como líneas de tierra
Dentro del cable, las líneas de tierra se tuercen alrededor
de las otras para evitar interferencias entre ellas
[MESSMER 32]
10
Interfaz Centronics
El conector de la impresora tiene 36 pins
Dado que no todas las líneas transmiten una señal, el
conector del PC suele reducirse a 25 pins
El conector es más pequeño y barato
Las líneas de tierra que faltan pueden recrearse de las otras
[MESSMER 32]
11
Interfaz Centronics
La longitud del cable no debe exceder los 5 metros o
empezarán a producirse errores de transmisión
Para distancias mayores sería necesario usar transmisión serie
El cable serie permite distancias de hasta 200 metros, pero
transmitir a través de él es más lento
[MESSMER 32]
12
Estructura del puerto paralelo
Cada puerto paralelo es accedido por el computador
utilizando la dirección a la que está mapeado
Los componentes centrales del puerto paralelo son
tres registros de ocho bits cada uno
Datos – dirección base + desplazamiento 00h
Estado – dirección base + desplazamiento 01h
Control – dirección base + desplazamiento 02h
[MESSMER 32.1.3]
13
Estructura del puerto paralelo
El registro de datos almacena los bits de datos que
deben ser transferidos
Este registro puede ser tanto leído como escrito por el
computador usando las instrucciones correspondientes
[MESSMER 32.1.3]
14
Estructura del puerto paralelo
El registro de estado es de solo lectura y permite al
computador comprobar el estado del dispositivo
[MESSMER 32.1.3]
15
Estructura del puerto paralelo
El registro de control permite al computador gestionar
el comportamiento del dispositivo
Por otro lado, también permite al dispositivo generar
interrupciones para solicitar la atención del computador
[MESSMER 32.1.3]
16
Estructura del puerto paralelo
La dirección
recibida por las
líneas A0…A9 es
decodificada si la
señal IOR o IOW
está activa
Los datos se
transmiten a nivel
de bytes por medio
de un registro
interno
[MESSMER 32.1.2]
17
Estructura del puerto paralelo
El computador
puede modifica el
registro de control
y responde a las
interrupciones
El computador
puede leer el
registro de estado
para comprobar
el estado de la
impresora
[MESSMER 32.1.2]
18
Estructura del puerto paralelo
Todas las señales
se mapean en el
conector
Centronics, ya
sea en su versión
de 36 pins o en
su versión de 25
[MESSMER 32.1.2]
19
Protocolo de comunicación
En total, el protocolo de
comunicación cuenta con
17 líneas
Datos: 8 líneas de salida
Estado: 5 líneas de entrada
(una invertida)
Control: 4 líneas de salida
(tres invertidas)
[MESSMER 32.1] [MESSMER 32.2]
20
Protocolo de comunicación
El protocolo necesario para que el computador
transmita un byte a la impresora utiliza principalmente
las señales Strobe, Ack y Busy
1. Introducir el byte a enviar en el registro de datos
2. Esperar a que la impresora no esté ocupada (Busy)
3. Activar Strobe para que la
impresora acepte el dato
4. La impresora activa Busy
para indicar que está
procesando el dato
5. La impresora activa Ack
para indicar que ha
terminado y se puede
regresar al primer paso
[MESSMER 32.1] [MESSMER 32.2]
21
Protocolo de comunicación
También es posible realizar un intercambio de datos
entre dos computadores usando el puerto paralelo
1. El emisor activa DSL para indicar que quiere enviar datos
2. El receptor contesta activando INI
La conexión está establecida y los papeles de emisor y receptor
han sido asignados
[MESSMER 32.2]
22
Protocolo de comunicación
También es posible realizar un intercambio de datos
entre dos computadores usando el puerto paralelo
3. El emisor carga el dato y realiza un pulso de STB,
lo que genera una interrupción en el receptor
4. La rutina de gestión de interrupción del receptor adquiere el dato
[MESSMER 32.2]
23
Protocolo de comunicación
También es posible realizar un intercambio de datos
entre dos computadores usando el puerto paralelo
5. El receptor realiza un pulso de STB,
lo que genera una interrupción en el emisor
6. La interrupción en el emisor devuelve el control a la rutina que
repetirá los pasos 3, 4 y 5 hasta que el último dato se transmita
[MESSMER 32.2]
24
Protocolo de comunicación
También es posible realizar un intercambio de datos
entre dos computadores usando el puerto paralelo
7. El transmisor desactiva DSL
8. El receptor desactiva INI
La conexión ha concluido y el proceso puede repetirse,
reasignándose los papeles de emisor y receptor
[MESSMER 32.2]
25
Puerto paralelo IEEE-1284
La funcionalidad del puerto paralelo integrado en
las placas madre de los computadores actuales ha
sido mejorada siguiendo el estándar IEEE-1284
Este estándar presenta cinco modos de operación:
Compatible: SPP – Standard Parallel Port
Byte
Nibble
Extendido: EPP – Extended Parallel Port
Capacidad mejorada: ECP – Enhanced Capability Mode
[MESSMER 32.3]
26
Puerto paralelo IEEE-1284
Las líneas utilizadas
por los cinco modos
de operación son las
mismas, pero con
diferentes
nombres/funciones
[MESSMER 32.3]
27
IEEE-1284 en modo SPP
El modo SPP se define para permitir la compatibilidad
con el modo unidireccional Centronics original
Se corresponde con una interfaz Centronics estándar
Permite que impresoras antiguas puedan ser conectadas
a un puerto que cumpla la norma IEEE-1284
Este modo sólo admite emisión de datos y, al ser
undireccional, está completamente controlador por
el procesador
[MESSMER 32.3]
28
IEEE-1284 en modo byte
El modo byte corresponde a un protocolo Centronics
bidireccional en el que los datos se transfieren byte a
byte a través del registro de datos
Es necesaria una señal de control adicional para indicar la
dirección de la transferencia
El valor del bit correspondiente del registro de control debe
establecerse antes de cada ciclo de transferencia
[MESSMER 32.3]
29
IEEE-1284 en modo nibble
El modo nibble permite la transferencia de datos en
grupos de 4 bits (nibble)
Cuatro de las líneas de estado se utilizan como líneas de datos
Una transferencia abarca siempre un byte completo
▫ En primer lugar se envía la primera mitad del byte
▫ Una vez que ha sido procesada, se envía la segunda mitad
[MESSMER 32.3]
30
IEEE-1284 en modo EPP
El modo EPP permite transferencias bidireccionales
de bloques de hasta 256 bytes
Al contrario que los modos anteriores, el protocolo de señales
no es controlado por software sino por hardware
▫ La programación es más eficiente
▫ El circuito necesario es más complejo y caro
Dispone de los 3
registros estándar,
lo que permite
compatibilidad
con el modo SPP
Además hay otros 4
registros adicionales
[MESSMER 32.3]
31
IEEE-1284 en modo ECP
Sus características son similares a las del modo EPP,
aunque está limitado a 128 bytes
El modo ECP permite compresión de datos
Una cola FIFO almacena los bits a transmitir
No se envían series de bits iguales, sino que se envía el
número de bits que compone la serie (run length codes)
La mayor complejidad
hace necesaria la
presencia de varios
registros adicionales,
aunque los equivalentes
a los 3 registros estándar
siguen presentes
[MESSMER 32.3]
32
Estructura del tema
Introducción
Interfaces punto-a-punto
El puerto paralelo del PC – Centronics
El puerto serie del PC – RS232C
El bus serie universal: USB
Interfaces multipunto
El bus serie FireWire
InfiniBand
33
El puerto serie
El puerto serie de un computador es de
gran importancia debido a su flexibilidad
El puerto paralelo transmite varios bits a la vez,
por lo que su funcionamiento dependerá de:
El formato de la línea de transmisión
La anchura de la línea de transmisión
El puerto serie trasmite la información a nivel de bits
Todos los datos son preprocesados y divididos en bits
Estos bits se transmiten siempre de uno en uno
El receptor procesa los bits recibidos para recomponer los datos
La línea de transmisión es siempre igual: 1 bit de ancho
[MESSMER 33]
34
Puerto serie vs. Puerto paralelo
El puerto paralelo:
Es teóricamente más rápido
Los datos no necesitan ser preprocesados
Es menos flexible
Es más costoso
Tiene predisposición a sufrir errores en distancias largas
El puerto serie:
Es teóricamente más lento
Los datos deben ser preprocesados (serializados/deserializados)
Es más flexible
Es mucho menos costoso por su menor número de líneas
Tiene una menor predisposición a sufrir errores, incluso en distancias largas
[MESSMER 33]
35
Transferencia serial síncrona
En una transferencia serial síncrona se intercambian
una o varias señales de control entre emisor y receptor
Las señales de control determinan cuando hay
un bit de datos válido en la línea de transmisión
Puede existir una señal de reloj que controle la sincronización
Si no hay una señal de reloj, la sincronización se realizará por
medio de un protocolo típico solicitud – reconocimiento
[MESSMER 33.1]
36
Transferencia serial asíncrona
En una transferencia serial síncrona, los propios datos
contienen la información de temporización necesaria
El receptor muestrea la línea a intervalos regulares para
detectar la llegada de datos
La transmisión se realiza a nivel de bloques de datos
(SDU – Serial Data Unit)
Un bit de comienzo (start) indica el principio de un SDU
Un bit de final (stop) indica que el SDU ha terminado
Se añaden bits de paridad para el control de errores
[MESSMER 33.1]
37
Transferencia síncrona vs. asíncrona
La transferencia síncrona
Permite mayores velocidades de transmisión
Permite que el receptor pueda interactuar con emisores de frecuencia
de reloj variada siempre que no sobrepasen su frecuencia máxima
Permite interconectar una menor variabilidad de dispositivos, ya que
emisor y receptor deben cumplir con el mismo protocolo de transmisión
La transferencia asíncrona
Es más lenta debido a que hay que transmitir información adicional
a través de la línea
Exige que emisor y receptor trabajen a la misma frecuencia de reloj,
pues el receptor muestrea la línea periódicamente
Permite interconectar una mayor variabilidad de dispositivos
[MESSMER 33.1]
38
Bits de paridad
Casi todos los puertos serie soportan la generación y
comprobación de bits de paridad a nivel hardware
El método más simple permite detectar errores en un solo bit
Métodos más complejos permiten detectar errores en varios
bits e incluso corregir algunos de ellos, pero a costa de tardar
más en generar el SDU e introducir más información adicional
Se utilizan cinco tipos de paridad distintos
Sin paridad: no se inserta información de paridad en el SDU
Paridad par: se inserta un bit de paridad tal que el número de 1s sea par
Paridad impar: se inserta un bit de paridad tal que el número de 1s sea impar
Marca (mark): el bit de paridad es siempre 1
Espacio (space): el bit de paridad es siempre 0
[MESSMER 33.1]
39
Velocidad de transferencia: baudios
El baudio es una unidad que mide el número de
cambios por segundo que se producen en una señal
En un puerto serie estándar, los baudios indican el
número de bits transmitidos por segundo
Los cambios de una señal se limitan a los valores 0 y 1
Estos cambios se producen con una frecuencia regular
Los bits de comienzo, fin y paridad se consideran bits
transmitidos a efectos de medir la velocidad
Si las condiciones no son éstas, el número de bits por
segundo no coincidirá con los baudios
[MESSMER 33.1]
40
Serialización
Antes de realizar una transferencia a través de un
puerto serie, el emisor y el receptor deben acordar
el formato de transmisión
Ejemplo:
Número de bits de datos
Tipo de paridad
Velocidad de
transmisión
[MESSMER 33.1]
2400 baudios
transmisión asíncrona
7 bits de datos + 1 de paridad
41
Serialización
La línea de comunicación se mantiene a un valor
determinado cuando no se utiliza (en el ejemplo: 1)
El bit de comienzo debe tener
el valor contrario para que pueda
ser detectado
El bit de final tendrá
el mismo valor
[MESSMER 33.1]
Ejemplo:
2400 baudios
transmisión asíncrona
7 bits de datos + 1 de paridad
42
Serialización: transmisión de un dato
Dado un dato, la circuitería SDU coloca el bit
de comienzo, calcula la paridad, añade los bits
correspondientes y coloca el bit de final
El SDU generado se almacena en un registro
de desplazamiento que actúa de acuerdo con
una señal de reloj interna
[MESSMER 33.1]
43
Serialización: recepción de un dato
Cuando se recibe el bit de comienzo, un registro de
desplazamiento recompone el dato a partir de los bits
recibidos siguiendo el ritmo del reloj interno
Una vez que el dato completo está disponible, la
circuitería SDU obtiene los bits de datos y comprueba
los bits de paridad
[MESSMER 33.1]
44
Serialización: errores de transmisión
Durante la transmisión de un SDU pueden
darse diversos tipos de errores
Error de estructura (frame): si el receptor detecta un bit de final
incorrecto significa que el SDU no se ha ajustado a la estructura
pactada al inicio de la transmisión
Error de rotura (break): si el receptor detecta que la línea está a
un valor distinto del por defecto durante más tiempo que la duración
de un SDU significa que la conexión se ha roto
Error de sobrescritura (overrun): si los datos llegan demasiado
rápido, un SDU recompuesto pero no leído puede ser sobrescrito
por un SDU posterior
Error de paridad (parity): si ninguno de los errores anteriores ha ocurrido,
el SDU ha llegado correctamente; sin embargo, todavía es necesario
comprobar la paridad, que podría ser incorrecta por problemas en la línea
o por una configuración errónea del tipo de paridad
[MESSMER 33.1]
45
La interfaz RS232C
La mayoría de las transferencias seriales realizadas en
los computadores modernos se realizan cumpliendo con
el estándar RS232C
Este estándar define la interfaz entre dos equipos
a nivel mecánico, eléctrico y lógico:
Equipo terminal de datos (DTE – Data Terminal equipment)
Equipo de transmisión de datos (DCE – Data Carrier Equipment)
La comunicación física entre dos DTE (ej. PCs) se realizará
por medio de sus correspondientes DCE (ej. módems)
[MESSMER 33.2]
46
La interfaz RS232C
El estándar RS232C define 25 líneas entre DTE y DCE,
por lo que los conectores deberían tener 25 pins
El típico uso de este protocolo en los computadores
actuales es el intercambio asíncrono de datos en serie
Sólo 11 señales son necesarias para este propósito
El resto (la mayoría) están reservadas para los intercambios
síncronos, aunque es un tema en el que no entraremos
El conector usado habitualmente tiene sólo 9 pins,
perdiéndose con ello una línea de tierra y la señal DSRD
[MESSMER 33.2]
47
La interfaz RS232C
[MESSMER 33.2]
48
La interfaz RS232C
La transferencia entre DTE y DCE
está controlada por cinco señales
Establecimiento de conexión
▫ DTR (data terminal ready): el DTE activa esta señal para indicar que
se encuentra preparado para enviar datos
▫ DSR (data set ready): el DCE activa esta señal para indicar que se
encuentra preparado para recibir datos
▫ DCD (data carrier detect): el DCE activa esta señal para indicar que
está conectado con el DCE remoto que recibirá la transmisión
Transferencia de datos (inútiles sin establecer la conexión)
▫ RTS (request to send): el DTE solicita al DCE que se
prepare para una transferencia de datos
▫ CTS (clear to send): el DCE indica al DTE que está
listo para recibir la transferencia de datos
[MESSMER 33.2]
49
La interfaz RS232C
Las otras cuatro señales también
tienen una función relacionada
con transferencias DTE – DCE
TD (transmitted data): datos transmitidos
RD (received data): datos recibidos
RI (ring indicator): el DCE activa esta señal,
independientemente de que se haya o no establecido
una conexión, para indicarle al DTE que un DCE
remoto desea realizar una transmisión
DSRD (data signal rate detector – sólo 25-pin): esta señal
bidireccional permite tanto al DTE como al DCE cambiar
la velocidad de transmisión (baudios)
[MESSMER 33.2]
50
Tipos de conexión RS232C
El protocolo RS232C permite establecer tres tipos
distintos de conexión:
Simplex: unidireccional
Half-duplex: bidireccional por turnos
Full-duplex: bidireccional simultánea
Cada uno de estos tres tipos de conexión difiere
de los demás en el uso que realiza de las líneas
Transmisión: TD y RD
Establecimiento de conexión: DTR, DSR, DCD y RI
Transferencia de datos: RTS y CTS
[MESSMER 33.2]
51
Tipos de conexión RS232C: simplex
Cuando la transferencia de datos se realiza desde el
DTE al DCE las líneas se usan de la siguiente forma:
TD: el DTE la usa para enviar datos al DCE
RD: no se usa
DTR: el DTE la usa para indicar que transmitirá datos
DSR: el DCE la usa para responder (o la tiene siempre activa)
DCD: el DCE la mantiene inactiva, no recibe del exterior
RI: en general, no tiene sentido (hay excepciones)
RTS: el DCE la ignora (o el DTE la mantiene activa)
CTS: el DTE la ignora (o el DCE la mantiene activa)
[MESSMER 33.2]
52
Tipos de conexión RS232C: simplex
Cuando la transferencia de datos se realiza desde el
DCE al DTE las líneas se usan de la siguiente forma:
TD: no se usa
RD: el DCE la usa para enviar datos al DTE
DCD: el DCE indica transmisión entrante al DTE
DSR: el DCE está listo para trasmitir (o siempre activa)
DTR: el DTE la usa para indicar que está listo para recibir
RI: permite al dispositivo externo llamar al DTE (vía DCE)
RTS: el DCE la ignora (o el DTE la mantiene activa)
CTS: el DTE la ignora (o el DCE la mantiene activa)
[MESSMER 33.2]
53
Tipos de conexión RS232C: half-duplex
En una conexión half-duplex, tanto el DTE como
el DCE pueden actuar como emisor y como receptor,
pero sólo uno a la vez
Por TD se transmiten datos y por RD se reciben datos,
pero de una forma estrictamente ordenada
El DTE indica que está listo usando la señal DTR,
mientras que el DCE hace lo propio con DSR
Cuando un DTE desea transmitir activa RTS y espera a que
el correspondiente DCE confirme la conexión usando CTS
La conexión puede cambiar de dirección
de nuevo por medio de RTS y CTS
La señal RI es importante para que el DTE detecte
que un dispositivo externo desea contactar con él
[MESSMER 33.2]
54
Tipos de conexión RS232C: full-duplex
El uso más generalizado de este protocolo es el
full-duplex, que permite transferir datos en ambas
direcciones al mismo tiempo
Dos conexiones físicas separadas
Una conexión física pero dos canales lógicos
Es importante que los extremos de la comunicación no
tengan que esperar a que el otro habilite la conexión
RI indica que un dispositivo externo desea conectar
El DTE confirma que está listo con DTR
El DCE responde con DSR (o está siempre activa)
RTS y CTS no se usan o permanecen siempre activas
[MESSMER 33.2]
55
Tipos de conexión RS232C: full-duplex
El estado normal de las señales en una
conexión RS232C full-duplex es el siguiente
[MESSMER 33.2]
56
Tipos de conexión RS232C: full-duplex
Cuando el DCE recibe una comunicación del exterior
activa la señal RI para comunicárselo al DTE
[MESSMER 33.2]
57
Tipos de conexión RS232C: full-duplex
El DTE detecta RI y contesta activando DTR para
indicar que está listo para la conexión
[MESSMER 33.2]
58
Tipos de conexión RS232C: full-duplex
Una vez que el módem ha completado los preparativos,
activa DSR para indicarlo
[MESSMER 33.2]
59
Tipos de conexión RS232C: full-duplex
Ahora que la conexión se ha establecido, el DCE
activa la señal DCD para indicárselo al DTE
[MESSMER 33.2]
60
Tipos de conexión RS232C: full-duplex
Opcionalmente, el DTE activa RTS para enviar datos y
el DCE lo reconoce con CTS; ambas permanecen activas
[MESSMER 33.2]
61
Tipos de conexión RS232C: full-duplex
La transferencia de datos bidireccional continuará
mientras las señales DTR, DSR y DCD estén activas
[MESSMER 33.2]
62
RS232C: conexión con una impresora
Es posible conectar una impresora a un computador
a través del puerto serie RS232C
En esta conexión no existe un DCE, por lo que el
significado de las señales cambia ostensiblemente
[MESSMER 33.3]
63
RS232C: conexión con una impresora
El computador no usa las señales DCD y RI,
dado que la impresora no puede llamarle
La línea TD del computador se conecta a la línea
RD de la impresora para transmitir los datos
[MESSMER 33.3]
64
RS232C: conexión con una impresora
La RTS del computador se conecta a la CTS para que
las peticiones de transmisión se habiliten directamente
Las líneas de la impresora se puentean para que DSR,
DCD y CTS estén activas durante la comunicación
[MESSMER 33.3]
65
RS232C: conexión con una impresora
El computador es más rápido que la impresora
Se toma un pin no usado (ej. 19) en el lado de la impresora
▫ Se le da el significado de “buffer de impresora lleno”
▫ Hay un problema de compatibilidad: pueden usarse pins distintos
Se conecta esta señal a la entrada DSR del computador
[MESSMER 33.3]
66
RS232C: conexión entre computadores
La conexión directa no es posible
Los dos dispositivos son DTEs
Los dos conectores son iguales y las señales coinciden
La solución es el esquema denominado módem nulo
[MESSMER 33.3]
67
RS232C: conexión entre computadores
La TD de cada DTE se conecta con la RD del otro
La entrada de datos de un DTE es la salida de datos del otro
Esto simula la tarea que normalmente realizarían los DCEs,
los cuales no existen en este tipo de conexión
[MESSMER 33.3]
68
RS232C: conexión entre computadores
La señal DTR de cada DTE se utiliza para solicitar la
conexión al otro, simulando la presencia de un DCE
Activa la señal RI del otro DTE
Activa la señal DSR del otro DTE
[MESSMER 33.3]
69
RS232C: conexión entre computadores
La señal RTS de cada DTE tiene dos funciones que, de
nuevo, simulan la presencia de los DCEs
Activa su propia CTS para habilitar la transmisión
Activa la DCD del otro para avisarle de la transmisión
[MESSMER 33.3]
70
UART 8250
El circuito que se encarga de las tareas complejas
de un puerto serie es denominado UART
(Universal Asynchronous Receiver and Transmitter)
Una UART es un emisor/receptor programable para
transmisiones asíncronas cuyas funciones son:
Conversión serie-paralelo: recibir transmisiones
serie y restituir los datos a su forma original
Conversión paralelo-serie: serializar datos internos del
computador para transmitirlos a través de una línea serie
[MESSMER 33.6]
71
UART 8250
Los PCs actuales utilizan el chip 8250 como UART
Encapsulado con 40 pins
Bus de datos de 8 bits
Su sucesor, el chip 16450,
mantiene la compatibilidad
pero permite mayores
velocidades de transmisión
Una versión posterior, el
chip 16550, incorpora un
buffer FIFO para los datos
entrantes/salientes que
permite compensar mejor
las diferencias de velocidad
[MESSMER 33.6]
72
UART 8250
El control de emisión toma el dato almacenado en el
registro de emisión
Se incorporan los
bits de comienzo,
fin y paridad
Un registro de
desplazamiento
permite serializar
el dato para su
transmisión
Solo el chip 16550
implementa la
funcionalidad FIFO
[MESSMER 33.6]
73
UART 8250
El control de recepción detecta y separa los bits de
comienzo, de fin y de paridad
Un registro de
desplazamiento va
almacenando los bits
de datos y, cuando el
dato está completo,
se pasa al registro
de recepción
Solo el chip 16550
implementa la
funcionalidad FIFO
[MESSMER 33.6]
74
UART 8250
La frecuencia de referencia proviene de un oscilador
externo y se divide por el contenido del registro divisor
La velocidad de
emisión condiciona
el funcionamiento
del control de emisión
(salida BAUDOUT)
El control de recepción
también tiene en cuenta
la velocidad del
dispositivo al otro lado
de la conexión
(entrada RCLK)
[MESSMER 33.6]
75
UART 8250
La frecuencia de referencia proviene de un oscilador
externo y se divide por el contenido del registro divisor
El registro divisor
permite configurar la
UART para operar a
distintas velocidades
Es frecuente que la
salida BAUDOUT se
conecte a la entrada
RCLK para garantizar
con ello que emisor y
receptor operen a la
misma velocidad
[MESSMER 33.6]
76
UART 8250
El registro divisor debe contener el valor adecuado
para obtener la velocidad deseada a partir de la
frecuencia de referencia
frecuencia_referencia
velocidad_deseada =
divisor * 16
En realidad se multiplica
el divisor por 16 para
muestrear un mismo bit
varias veces y reducir el
efecto de posibles distorsiones
[MESSMER 33.6]
77
UART 8250
La lógica de control del módem se encarga de
gestionar las señales del protocolo RS232C
Sin y Sout se
corresponden
con RD y TD
DTR, DSR, DCD,
RTS, CTS y RI
implementan las
señales de control
del protocolo
[MESSMER 33.6]
78
UART 8250
La lógica de control de interrupciones se encarga de
generar una interrupción cuando sea necesario
Detecta cambios en
las líneas del protocolo
y en los registros de
emisión y recepción,
así como posibles
errores de transmisión
Genera una interrupción,
comprobando el registro
máscara, y almacenando
su causa en el registro
de identificación
[MESSMER 33.6]
79
UART 8250
En total, el chip 8250 tiene 11 registros internos
Las tres líneas de dirección permiten seleccionar ocho
Las operaciones de lectura/escritura acceden a uno distinto
El bit DLAB permite seleccionar el registro divisor
[MESSMER 33.6]
80
UART 8250
Todos los registros están conectados
Entre sí por medio de un bus interno
Con el computador por medio de la interfaz externa
▫ Pueden ser direccionados (direcciones sucesivas desde la base)
▫ Pueden ser leídos y escritos
[MESSMER 33.6]
81
UART 8250
Diez de los registros actúan como registros
de control y/o registros de estado
El undécimo ( scratch-pad ) no tiene funcionalidad
Almacenamiento temporal
Sólo presente en los chips 16450 y 16550
[MESSMER 33.6]
82
Estructura del tema
Introducción
Interfaces punto-a-punto
El puerto paralelo del PC – Centronics
El puerto serie del PC – RS232C
El bus serie universal: USB
Interfaces multipunto
El bus serie FireWire
InfiniBand
83
USB
El USB (Universal Serial Bus) se creó para unificar
la gran variedad de conectores serie que existían
Facilmente configurable
▫ Permite la conexión en caliente (plug and play)
▫ El SO detecta la conexión y desconexión de dispositivos
▫ El SO identifica los dispositivos conectados y los configura
Facilmente ampliable
▫ Pueden conectarse tipos muy distintos de dispositivos
▪ Síncronos/asíncronos
▪ Diferentes velocidades de transferencia
▫ Se reduce el número de puertos necesarios
▪ Hasta 127 dispositivos pueden conectarse en un mismo puerto
▪ El propio puerto puede proporcionar alimentación a los dispositivos
[MESSMER 35]
84
USB: estructura
El bus USB tiene una estructura
estratificada con forma de árbol
La conexión de los dispositivos
sigue un esquema encadenado
(hardware polling)
La gestión del bus es centralizada
y se realiza desde el controlador
integrado en el computador (host)
Cada dispositivo USB tiene su propia dirección en el sistema
▫ El controlador inicia todas las actividades y se comunica
con el computador por medio de interrupciones
▫ Ningún dispositivo USB puede iniciar una transacción por
sí mismo para evitar sobrescribir datos presentes en el bus
[MESSMER 35]
85
USB: estructura
El host también actúa como un
distribuidor (hub) que permite
la conexión de varios dispositivos
USB (nodos)
Se reduce el número de
conexiones necesarias
Se reduce la cantidad de
recursos del computador
ocupados (canales E/S, canales DMA, interrupciones…)
Se pueden añadir hubs adicionales para ampliar la
estructura del sistema y permitir la conexión de un
mayor número de dispositivos (hasta 127)
[MESSMER 35]
86
USB: hub
La principal funcionalidad de un hub es extender el
sistema proporcionando nuevos puertos de conexión
Cada hub proporciona un puerto de conexión con el
host (upstream) y varios puertos de
conexión con dispositivos u otros
hubs (downstream)
Al igual que cualquier otro dispositivo USB, un hub
debe ser configurado, recibiendo su propia dirección
[MESSMER 35]
87
USB: hub
Un hub USB no es sólo un distribuidor de datos,
también dispone de cierta inteligencia
Repetidor: distribuye el tráfico entre el host (puerto upstream)
y los dispostivisos USB (puertos downstream)
Controlador: se encarga
de regular el tráfico de
datos de acuerdo con
los dispositivos USB
conectados
El controlador del hub
proporciona la interfaz
de configuración al exterior
[MESSMER 35]
88
USB: conectores
Existen dos tipos de conectores USB
La serie A se
utiliza para
realizar
conexiones
hacia el host
La serie B se
utiliza para
realizar
conexiones
hacia un
dispositivo
[MESSMER 35.1]
89
USB: cables
El cable USB contiene solo cuatro líneas
GND: tierra
VBus: alimentación (no es suficiente para algunos dispositivos)
D+ D–: líneas diferenciales de transmisión
La longitud máxima del cable es de 5 metros y su
ancho de banda máximo es 60 Mbytes (USB 2.0)
[MESSMER 35.1]
Pin 1
VBus
rojo
Pin 2
D–
blanco
Pin 3
D+
verde
Pin 4
GND
negro
90
USB: cables
Los datos se transmiten en serie por las línea D+ D–
No hay una señal de reloj
La sincronización se obtiene a partir de los propios datos
utilizando condificación NRZI (Non Return to Zero Inverted)
▫ Un uno se representa manteniendo el nivel de voltaje
▫ Cada vez que aparece un cero se cambia la polaridad
Si aparecen seis unos seguidos se inserta un cero (bit-stuffing)
para forzar cambios de polaridad frecuentes y evitar, con ello,
pérdidas de sincronización
[MESSMER 35.1]
91
USB: transmisión de datos
Las transferencias de datos se realizan estableciendo
canales de comunicación virtuales (pipes)
Los canales son creados por el host
Cada canal ocupa parte del ancho de banda disponible
Los canales terminan en un punto de final
Cada dispositivo puede soportar varios puntos de final
y, por tanto, varios canales distintos
La prioridad de los dispositivos viene dada por la
conexión en cadena
[MESSMER 35.2]
92
USB: transmisión de datos
Cuando se conecta un dispositivo, el canal de control
por defecto se establece con el punto de final 0
Durante la inicialización, el host determina:
El formato de datos que soporta
el dispositivo conectado
El tipo de dispositivo y la
dirección de la transferencia
Los requerimientos de frecuencia
y latencia de bus
El ancho de banda necesario
El tamaño máximo de los paquetes
Finalizado este proceso, el host
asigna una dirección al dispositivo
[MESSMER 35.2]
93
USB: transmisión de datos
Las transmisiones se dividen en tramas de tiempo (frame)
Durante las tramas se producen transacciones
compuestas por paquetes
Existen tres tipos de paquetes:
▫ Inicialización (token)
▫ Datos (data)
▫ Protocolo (handshake)
Cada paquete comienza con un
campo de sincronización (SYNC)
que maximiza el número de
transiciones en la línea
El tipo de paquete se diferencia
con un identificador (PID)
[MESSMER 35.2]
94
USB: transmisión de datos
Podemos distinguir dos tipos distintos de canales
Los canales de mensaje tienen un formato concreto
El esquema que siguen es: Petición – Dato – Estado
Cada petición debe ser completamente resuelta antes
de pasar a la siguiente
Implican un movimiento de datos bidireccional
Los canales de flujo (stream) no tienen un formato
Los datos se envían de forma secuencial
El movimiento de datos es unidireccional
[MESSMER 35.2]
95
USB: transmisión de datos
Se definen 4 tipos posibles de transferencias
Control (canal mensaje): utilizadas para
configurar los dispositivos que se conectan
Se garantiza la correcta emisión/recepción de datos
No se garantiza la latencia o el ancho de banda
Masivas (canal flujo): transferencias esporádicas
de grandes cantidades de datos que pueden esperar
(impresoras, escáners…)
Se garantiza la correcta emisión/recepción de datos
No se garantiza la latencia o el ancho de banda
[MESSMER 35.2]
96
USB: transmisión de datos
Se definen 4 tipos posibles de transferencias
Por interrupciones (canal flujo): transferencias
esporádicas de pocos datos que requieren atención
inmediata (teclado, ratón…)
Se garantiza la correcta emisión/recepción de datos
Se garantiza la latencia y el ancho de banda
Alta velocidad (canal flujo): grandes cantidades de
información que se transmiten de forma continua
(audio/video en tiempo real…)
No se garantiza la correcta emisión/recepción de datos
Se garantiza una latencia y un ancho de banda constante
[MESSMER 35.2]
97
Estructura del tema
Introducción
Interfaces punto-a-punto
El puerto paralelo del PC – Centronics
El puerto serie del PC – RS232C
El bus serie universal: USB
Interfaces multipunto
El bus serie FireWire
InfiniBand
98
FireWire
La mejora del rendimiento de los procesadores ha
generado un gran aumento en las necesidades de E/S
de los PCs
El uso de procesadores específicos de E/S es
prohibitivamente caro para sistemas pequeños
Además, los PCs son cada vez más pequeños
(portátiles…) por lo que no solo tienen mayores
necesidades de E/S, sino que también disponen de
menos espacio para conectores
[STALLINGS 7.7]
99
FireWire
El bus serie de altas prestaciones FireWire, definido
por el estándar IEEE 1394, es la alternativa planteada
para esta situación
Su objetivo es proporcionar una única interfaz de E/S
con un conector sencillo que permita manejar diversos
dispositivos a través de un único puerto
Por ejemplo, un único puerto FireWire puede
reemplazar los conectores del ratón, la impresora,
la red, el disco externo, etc…
[STALLINGS 7.7]
100
Ventajas de FireWire
Al ser un bus serie, FireWire presenta las ventajas
tradicionales de la transmisión en serie:
Menos líneas
Líneas más estrechas y más baratas
Conectores más estrechos y más baratos
No se necesita protección para evitar
interferencias entre líneas
No se necesita sincronización entre líneas,
por lo que el cable puede ser más largo sin
que surjan problemas
[STALLINGS 7.7]
101
Ventajas de FireWire
Además, FireWire presenta tres ventajas importantes:
Es fácil de implementar
Su implementación tiene un bajo costo
Alcanza una velocidad muy alta
Debido a estas ventajas, se utiliza no sólo en PCs sino
también en dispositivos que usan el bus para transmitir
vídeo que procede, cada vez con más frecuencia, de
fuentes digitalizadas (cámaras, VCR, TV…)
[STALLINGS 7.7]
102
Configuración de FireWire
Los periféricos conectados a FireWire siguen un
esquema de conexión en cadena (hardware polling)
El sistema soporta tantos periféricos como sea necesario
Hasta 63 dispositivos conectados con un puerto
Hasta 1022 buses FireWire conectados por medio de
adaptadores (bridge)
[STALLINGS 7.7]
103
Configuración de FireWire
No se trata de una conexión en cadena estricta
Estructura en árbol (la conexión lineal es un caso particular)
No hay terminadores
FireWire soporta conexión rápida: permite conectar y
desconectar periféricos sin reconfigurar el sistema
[STALLINGS 7.7]
104
Configuración de FireWire
FireWire soporta configuración rápida
No es necesario fijar manualmente los identificadores
de dispositivo o tener en cuenta la posición relativa de
los dispositivos
El sistema realiza automáticamente la configuración
para asignar las direcciones
[STALLINGS 7.7]
105
Protocolo FireWire
FireWire especifica un conjunto de protocolos de tres
capas para estandarizar la forma en que el computador
anfitrión interactúa
con los periféricos a
través del bus serie
Capa física:
define los medios
de transmisión
permitidos y
las señales y
características
eléctricas de
cada uno
[STALLINGS 7.7]
106
Protocolo FireWire
FireWire especifica un conjunto de protocolos de tres
capas para estandarizar la forma en que el computador
anfitrión interactúa
con los periféricos a
través del bus serie
Capa de enlace:
describe la
transmisión de
datos por medio
de paquetes
[STALLINGS 7.7]
107
Protocolo FireWire
FireWire especifica un conjunto de protocolos de tres
capas para estandarizar la forma en que el computador
anfitrión interactúa
con los periféricos a
través del bus serie
Capa de transacción:
define un protocolo
solicitud-respuesta
que oculta a las
aplicaciones los
detalles de las
capas inferiores
[STALLINGS 7.7]
108
Protocolo FireWire: capa física
La capa física FireWire transforma los datos
binarios en las señales eléctricas necesarias para
diversos medios físicos
Define velocidades de transmisión
Especifica distintos medios de transmisión alternativos
▫ Conectores
▫ Propiedades físicas y de transmisión
La capa física proporciona también el servicio
de arbitraje que garantiza que sólo un dispositivo
transmitirá datos por el bus en cada momento
[STALLINGS 7.7]
109
Protocolo FireWire: arbitraje
La forma más simple de arbitraje se basa en
la estructura tipo árbol de los nodos del bus
La capa física incluye la lógica que permite que todos
los dispositivos conectados se configuren para que:
▫ Un nodo sea designado como raíz del árbol
▫ Los otros nodos se organicen mediante relaciones padre-hijo
El nodo raíz actúa como un árbitro central
y procesa las solicitudes de acceso al bus
▫ Primero en llegar, primero en atenderse
▫ En caso de solicitudes simultáneas se cede
el acceso al nodo de mayor prioridad natural
▪ La prioridad es mayor para los nodos más cercanos a la raíz
▪ A igual distancia, tiene prioridad aquel con el identificador menor
[STALLINGS 7.7]
110
Protocolo FireWire: arbitraje
Por lo general, FireWire sigue una política de arbitraje
equitativo para evitar que uno o más dispositivos de
prioridad alta monopolicen el bus
El tiempo de bus se organiza en intervalos de equidad
Al comienzo de un intervalo, cada nodo activa un bit de
autorización de arbitraje
Durante el intervalo, cada nodo con el bit de autorización de
arbitraje activo puede competir por el acceso al bus
Cuando un nodo gana el acceso al bus desactiva su bit
de autorización de arbitraje, por lo que no puede volver
a competir por el acceso al bus durante el intervalo actual
[STALLINGS 7.7]
111
Protocolo FireWire: arbitraje
El arbitraje equitativo se complementa
con una política de arbitraje urgente
Algunos dispositivos se pueden configurar para que
tengan prioridad urgente
Estos dispositivos pueden ganar el acceso al bus varias
veces durante un mismo intervalo de equidad
El número de accesos por parte de dispositivos de prioridad
urgente se controla y limita de forma que, como máximo,
hagan uso del 75% del tiempo de bus durante un intervalo
En otras palabras, por cada paquete no urgente se pueden
transmitir hasta tres paquetes urgentes
[STALLINGS 7.7]
112
Protocolo FireWire: capa de enlace
La capa de enlace FireWire define la transmisión
de los datos en forma de paquetes
Se permiten dos tipos de transmisión
Asíncrona
▫ Se transmite un único paquete de tamaño variable
▫ La transmisión se realiza a una dirección específica
▫ Se devuelve información de reconocimiento
Isócrona
▫ Se transmite una secuencia de paquetes de tamaño fijo
▫ Los paquetes se transmiten a intervalos regulares
▫ Se utiliza un direccionamiento simplificado y no hay reconocimiento
[STALLINGS 7.7]
113
Protocolo FireWire: transacciones asíncronas
La transmisión asíncrona se utiliza para datos que
no necesitan una velocidad de transferencia fija
Por defecto se usa el arbitraje equitativo
Los dispositivos que necesitan más capacidad de bus o son
exigentes con los retardos pueden usar arbitraje urgente
En una transacción asíncrona típica, el proceso
de enviar un paquete se denomina subacción
[STALLINGS 7.7]
114
Protocolo FireWire: transacciones asíncronas
Una subacción consta de cinco periodos de tiempo
1. Secuencia de arbitraje: es el intercambio de señales
necesario para ceder el control del bus a un dispositivo
2. Transmisión de paquete
▫ Cabecera: incluida en todos los paquetes
▪ Identificadores de la fuente y el destino
▪ Tipo de paquete y parámetros específicos
▪ Código de redundancia cíclica (CRC)
▫ Bloque de datos: es opcional e incluye otro código CRC
[STALLINGS 7.7]
115
Protocolo FireWire: transacciones asíncronas
Una subacción consta de cinco periodos de tiempo
3. Intervalo de reconocimiento: retardo necesario para que
el destino reciba un paquete y genere el reconocimiento
4. Reconocimiento: el receptor devuelve un paquete de
reconocimiento con un código que indica la acción
realizada por el receptor
5. Intervalo de subacción: periodo forzoso de inactividad para
asegurar que ningún dispositivo empiece el arbitraje antes de
que el paquete de reconocimiento se haya transmitido
[STALLINGS 7.7]
116
Protocolo FireWire: transacciones asíncronas
En el momento en el que se envía un reconocimiento,
el nodo que lo envía tiene el control del bus
Dado que el intercambio es una interacción
petición-respuesta, el nodo que responde puede
transmitir inmediatamente el paquete de respuesta
sin tener que realizar una secuencia de arbitraje
[STALLINGS 7.7]
117
Protocolo FireWire: transacciones isócronas
La transmisión isócrona se utiliza con los dispositivos
que generan o consumen datos de manera regular
(sonido o video digital…)
Este método asegura que los datos pueden generarse
dentro de unos intervalos especificados para garantizar
cierta velocidad
[STALLINGS 7.7]
118
Protocolo FireWire: transacciones isócronas
Los paquetes isócronos se etiquetan con números de
canal de 8 bits que se asignan previamente mediante
un diálogo entre los dos nodos que intercambian datos
La cabecera de los paquetes isócronos es más corta
que la de los paquetes asíncronos e incluye
Un campo de longitud de datos
Un código CRC para la cabecera
[STALLINGS 7.7]
119
Protocolo FireWire: transacciones isócronas
Para permitir una carga mixta de tráfico de datos
isócronos y asíncronos, uno de los dispositivos
debe designarse como maestro de ciclo
Periódicamente, el maestro genera un paquete de comienzo
de ciclo para indicar a los otros dispositivos el comienzo de
un ciclo isócrono
Durante este ciclo sólo se pueden enviar paquetes isócronos
Las distintas fuentes isócronas conectadas compiten
por el acceso al bus y el ganador transmite un paquete
[STALLINGS 7.7]
120
Protocolo FireWire: transacciones isócronas
Para permitir una carga mixta de tráfico de datos
isócronos y asíncronos, uno de los dispositivos
debe designarse como maestro de ciclo
No existe reconocimiento para los paquetes enviados, por lo
que las otras fuentes isócronas compiten por el acceso al bus
inmediatamente después de la transmisión del paquete
Debido a esto, hay un pequeño intervalo, determinado por
los retardos del bus, entre la transmisión de un paquete y
el periodo de arbitraje del siguiente (intervalo isócrono)
[STALLINGS 7.7]
121
Protocolo FireWire: transacciones isócronas
Para permitir una carga mixta de tráfico de datos
isócronos y asíncronos, uno de los dispositivos
debe designarse como maestro de ciclo
El intervalo isócrono será siempre menor que el de subacción
Una vez que todas las fuentes isócronas han transmitido, el
bus permanecerá inactivo el tiempo suficiente para que se
produzca un intervalo de subacción
Esta es la señal para que las fuentes asíncronas compitan por
acceder al bus hasta que comience el siguiente ciclo isócrono
[STALLINGS 7.7]
122
Estructura del tema
Introducción
Interfaces punto-a-punto
El puerto paralelo del PC – Centronics
El puerto serie del PC – RS232C
El bus serie universal: USB
Interfaces multipunto
El bus serie FireWire
InfiniBand
123
InfiniBand
InfiniBand es una especificación de E/S orientada a los
servidores de gama alta que tenía por objetivo sustituir
a PCI en ese mercado
Más capacidad
Más posibilidades de expansión
Más flexibilidad para el diseño de equipos
El estándar InfiniBand describe la arquitectura y
las especificaciones para el flujo de datos entre
procesadores y dispositivos de E/S inteligentes
[STALLINGS 7.7]
124
InfiniBand
InfiniBand permite que servidores, equipos de
almacenamiento remoto y otros dispositivos de
red se puedan conectar a través de un sistema de
conmutadores (switch fabric) y enlaces
Esta arquitectura puede conectar hasta 64000 dispositivos
No es necesario que el hardware de interfaz de E/S se
encuentre dentro del chasis del servidor
▫ Los servidores pueden hacerse más compactos
▫ Aumenta la flexibilidad y escalabilidad de los centros de cálculo
La velocidad de transmisión puede alcanzar los 30Gbps y la
distancia entre dispositivos puede ser incluso de kilómetros
[STALLINGS 7.7]
125
InfiniBand: arquitectura
En lugar de un conjunto de ranuras PCI, un servidor
necesita una interfaz con un HCA (Host Channel Adapter)
que conecta el servidor a un conmutador InfiniBand
El HCA se conecta
al servidor a través
de un controlador
de memoria
El HCA lee y
escribe en
memoria por
medio de DMA
[STALLINGS 7.7]
126
InfiniBand: arquitectura
El controlador de memoria gestiona el bus del sistema
Controla el tráfico entre el procesador y la memoria
Controla el tráfico entre el HCA y la memoria
Los sistemas de
almacenamiento
y el resto de
dispositivos se
conectan a un
conmutador
InfiniBand por
medio de un TCA
(Target Channel Adapter)
[STALLINGS 7.7]
127
InfiniBand: arquitectura
Los adaptadores HCA y TCA son dispositivos
inteligentes que gestionan todas las funciones de E/S
sin necesidad de interrumpir al procesador del servidor
Los servidores y los dispositivos se comunican
con el conmutador de InfiniBand
a través de ellos
Para añadir nuevos
dispositivos al
sistema basta con
conectar sus
adaptadores al
conmutador
[STALLINGS 7.7]
128
InfiniBand: arquitectura
El conmutador InfiniBand proporciona conexiones
físicas punto-a-punto a un conjunto diverso de
dispositivos y conmuta el tráfico entre enlaces
La lógica del conmutador gestiona las
comunicaciones sin interrumpir a
los servidores
La detección de
nuevos dispositivos
y la asignación de
direcciones lógicas
se realiza de forma
transparente
[STALLINGS 7.7]
129
InfiniBand: arquitectura
El conmutador de InfiniBand abre temporalmente los
canales entre el procesador y los dispositivos con los
que se está comunicando
Los dispositivos no tienen que compartir la capacidad
del canal, por lo que no hay
necesidad de
procedimientos
de arbitraje
adicionales
entre dispositivos
[STALLINGS 7.7]
130
InfiniBand: arquitectura
Los enlaces conectan a un conmutador y a un
adaptador HCA/TCA o a dos conmutadores
El encaminador conecta subredes InfiniBand o conecta
un conmutador InfiniBand a una red de área local, de
área amplia o de
dispositivos de
almacenamiento
[STALLINGS 7.7]
131
InfiniBand: arquitectura
Una subred consiste en uno o más conmutadores
interconectados más los enlaces que los conectan
a otros dispositivos
Los administradores de sistemas pueden confinar las
transmisiones de
uno a muchos
(multicast) y de
uno a todos
(broadcast) dentro
de una subred
[STALLINGS 7.7]
132
InfiniBand: funcionamiento
Cada enlace físico entre un conmutador y un
adaptador HCA o TCA conectado a él puede incluir
hasta 16 canales lógicos denominados líneas virtuales
Una línea se reserva para la gestión del conmutador
Las otras líneas se reservan para la transmisión de datos
Los datos se envían en forma de secuencia de paquetes,
conteniendo cada paquete:
Información de direccionamiento
Información de control
Una parte del volumen de datos a transmitir
[STALLINGS 7.7]
133
InfiniBand: funcionamiento
La transferencia de datos se gestiona mediante los
correspondientes protocolos de comunicación
Una línea virtual se dedica temporalmente a transferir
los datos desde un nodo a otro a través del conmutador
InfiniBand
El conmutador asigna el tráfico que llega a través
de una línea a alguna de las líneas de salida según
el camino que deben seguir los datos entre los nodos
que se comunican
[STALLINGS 7.7]
134
InfiniBand: funcionamiento
La arquitectura lógica del protocolo tiene cuatro capas
Física: define el medio físico de transmisión (cobre, fibra
óptica…) y la velocidad de conexión (1X, 4X ó 12X)
Enlace: abarca tres elementos
▫ Definición de la estructura básica de los paquetes utilizados
para intercambiar datos, incluyendo un código de detección
de error para proporcionar fiabilidad
▫ Esquema para asignar una única dirección de
enlace a cada dispositivo de una subred
▫ Lógica para configurar las líneas virtuales para la conmutación
de los datos entre origen y destino a través de los conmutadores
Red: encamina los paquetes entre subredes diferentes
Transporte: proporciona un mecanismo de fiabilidad para las
transferencias punto-a-punto a través de una o más subredes
[STALLINGS 7.7]
135
InfiniBand: funcionamiento
Algunos dispositivos pueden enviar datos más rápido
de lo que pueden ser recibidos en el destino
Para solucionarlo, en los extremos de cada enlace existe
una pareja de colas
(envío y recepción)
que almacenan el
exceso de
datos de salida
y de entrada
[STALLINGS 7.7]
136
InfiniBand: funcionamiento
Cada línea virtual utiliza una pareja de colas diferente
Las colas pueden situarse en el adaptador o en la
memoria del dispositivo conectado al adaptador
Las transacciones
que el computador
envía a su cola
de envío o
de recepción
se denominan
WQE
(Work Queue Entry)
[STALLINGS 7.7]
137
InfiniBand: funcionamiento
Los dos WQE más importantes son las transacciones
SEND (enviar) y RECEIVE (recibir)
En una transacción SEND el WQE especifica un
bloque de datos en el
espacio de memoria
que es el que hay
que enviar
al destino
[STALLINGS 7.7]
138
InfiniBand: funcionamiento
Los dos WQE más importantes son las transacciones
SEND (enviar) y RECEIVE (recibir)
En una transacción RECEIVE el WQE especifica la
ubicación donde hay
que colocar los datos
que se reciban
desde otro
dispositivo
[STALLINGS 7.7]
139
InfiniBand: funcionamiento
El adaptador procesa cada WQE enviado según el
orden de prioridad establecido y genera un CQE
(Completion Queue Entry) para almacenarlo en la cola de
trabajos concluidos
El CQE indica
al servidor
el estado
del trabajo
finalizado
[STALLINGS 7.7]
140
Bibliografía
[MESSMER]
The indispensable PC hardware book
Hans-Peter Messmer
Pearson Education – Addison-Wesley, 2002 (4ª edición)
[STALLINGS]
Organización y arquitectura de computadores
William Stallings
Pearson Education – Prentice Hall, 2005 (7ª edición)
141