Articulo de referencia

Flit (redes informáticas)

En redes informáticas , un flit ( unidad de control de flujo o dígito de control de flujo ) es una pieza atómica de nivel de enlace que forma un paquete o flujo de red . [ 1 ] E...

En redes informáticas , un flit ( unidad de control de flujo o dígito de control de flujo ) es una pieza atómica de nivel de enlace que forma un paquete o flujo de red . [ 1 ] El primer flit, llamado flit de encabezado, contiene información sobre la ruta de este paquete (es decir, la dirección de destino) y establece el comportamiento de enrutamiento para todos los flits subsiguientes asociados con el paquete. Al flit de encabezado le siguen cero o más flits de cuerpo, que contienen la carga útil real de datos. El flit final, llamado flit de cola, realiza algunas tareas de contabilidad para cerrar la conexión entre los dos nodos .

Una conexión virtual contiene el estado necesario para coordinar el manejo de los flits de un paquete. Como mínimo, este estado identifica el puerto de salida del nodo actual para el siguiente salto de la ruta y el estado de la conexión virtual (inactiva, esperando recursos o activa). La conexión virtual también puede incluir punteros a los flits del paquete que están almacenados en búfer en el nodo actual y la cantidad de búferes de flits disponibles en el siguiente nodo. [ 2 ] : 237

Red de interconexión: conceptos básicos

La creciente necesidad de mejorar el rendimiento de los sistemas informáticos impulsó a la industria hacia la arquitectura multinúcleo . En esta configuración, la ejecución de un núcleo (un programa) se distribuye entre varios procesadores y el cálculo se realiza en paralelo, lo que garantiza un buen rendimiento en cuanto al tiempo de ejecución. Sin embargo, esto implica que los procesadores deben poder comunicarse entre sí e intercambiar datos y señales de control sin problemas. Un enfoque sencillo es la interconexión basada en bus , un conjunto de cables que conectan todos los procesadores. No obstante, este enfoque no es escalable a medida que aumenta el número de procesadores en el sistema. Por lo tanto, una red de interconexión escalable de alto rendimiento constituye la base de la arquitectura de computación paralela .

Terminología básica de redes y antecedentes

Definiciones de una red de interconexión

La definición formal de una red de interconexión

"Una red de interconexión I está representada por un multigrafo dirigido fuertemente conectado, I = G(N,C) . El conjunto de vértices del multigrafo N incluye el conjunto de nodos de elementos de procesamiento P y el conjunto de nodos de enrutadores RT . El conjunto de arcos C representa el conjunto de canales unidireccionales (posiblemente virtuales) que conectan los elementos de procesamiento con los enrutadores o los enrutadores entre sí". [ 3 ]

La principal expectativa de una red de interconexión es lograr la menor latencia posible; es decir, que el tiempo necesario para transferir un mensaje de un nodo a otro sea mínimo, permitiendo al mismo tiempo que se realicen numerosas transacciones simultáneamente. [ 4 ] Como en cualquier otro diseño de ingeniería, la red de interconexión debe cumplir con estas características manteniendo el costo de implementación lo más bajo posible. Habiendo analizado lo que se espera de una red, veamos algunos aspectos del diseño que se pueden ajustar para obtener el rendimiento necesario.

Los componentes básicos de una red de interconexión son su topología , el algoritmo de enrutamiento , la estrategia de conmutación y el mecanismo de control de flujo.

Topología : Se refiere a la infraestructura general de la red de interconexión; el patrón en el que se conectan los distintos procesadores. Este patrón puede ser regular o irregular, aunque muchas arquitecturas multinúcleo actuales utilizan redes de interconexión muy regulares.

Algoritmo de enrutamiento : Este determina la ruta que debe seguir el mensaje para garantizar su entrega al nodo de destino. La elección de la ruta se basa en diversas métricas, como la latencia, la seguridad y el número de nodos involucrados, entre otras. Existen muchos algoritmos de enrutamiento diferentes, que ofrecen distintas garantías y presentan diferentes compensaciones en cuanto al rendimiento.

Estrategia de conmutación : El algoritmo de enrutamiento solo determina la ruta que debe seguir un mensaje para llegar a su nodo de destino. El recorrido real del mensaje dentro de la red es responsabilidad de la estrategia de conmutación. Básicamente, existen dos tipos de estrategias de conmutación: una red de conmutación de circuitos , donde una ruta se reserva y se bloquea para otros mensajes hasta que el mensaje se entrega a su nodo de destino. Un ejemplo famoso de red de conmutación de circuitos son los servicios telefónicos, que establecen un circuito a través de múltiples conmutadores para una llamada. El enfoque alternativo es la red de conmutación de paquetes , donde los mensajes se dividen en entidades compactas más pequeñas llamadas paquetes . Cada paquete contiene una parte de los datos, además de un número de secuencia. Esto implica que cada paquete se puede transferir individualmente y ensamblar en el destino según su número de secuencia.

Control de flujo: Cabe destacar que ya hemos establecido que varios mensajes pueden circular por la red de interconexión simultáneamente. El mecanismo de control de flujo implementado a nivel del enrutador es responsable de decidir qué mensaje fluye y cuál se retiene.

Características y métricas de una red

Cada red tiene un ancho wy una tasa de transmisión f, que deciden el ancho de banda de una red como b = w*f . La cantidad de datos transferidos en un solo ciclo se llama unidad física o phit . Como se puede observar, el ancho de una red también es igual al tamaño del phit. Por lo tanto, el ancho de banda de la red también se puede definir en términos de phit/seg. Cada mensaje que se va a transferir se puede dividir en fragmentos más pequeños de entidades de longitud fija llamados paquetes . Los paquetes a su vez se pueden dividir en unidades de control de flujo de mensajes o flits .

La necesidad de moscas

Los flits representan unidades lógicas de información , mientras que los phits representan el dominio físico, es decir, los phits representan la cantidad de bits que se pueden transferir en paralelo en un solo ciclo. Consideremos el Cray T3D . [ 5 ] Tiene una red de interconexión que utiliza control de flujo de mensajes a nivel de flit, donde cada flit se compone de ocho phits de 16 bits. Esto significa que su tamaño de flit es de 128 bits y el tamaño de phit es de 16 bits. Consideremos también el conmutador IBM SP2. [ 6 ] También utiliza el control de flujo de mensajes a nivel de flit, pero su tamaño de flit es igual a su tamaño de phit, que está configurado en 8 bits.

Determinación del ancho de vuelo

Cabe señalar que el tamaño del mensaje es el factor determinante principal (entre muchos otros) para decidir el ancho de los flits. Según el tamaño del mensaje, existen dos opciones de diseño contradictorias:

  • Al mantener pequeño el tamaño de cada paquete, aumentará el número de paquetes, incrementando así el número total de transacciones, a la vez que se reduce el tamaño de cada transacción individual.
  • Mantener el tamaño de cada paquete grande, en cuyo caso el número de paquetes disminuirá, reduciendo así el número total de transacciones, al tiempo que aumenta el tamaño de cada transacción individual.

En función del tamaño de los paquetes, se debe determinar el ancho del enlace físico entre dos enrutadores. Es decir, si el tamaño del paquete es grande, el ancho del enlace también debe ser grande; sin embargo, un ancho de enlace mayor implica mayor área y mayor disipación de potencia. En general, los anchos de enlace se mantienen al mínimo. El ancho del enlace (que también determina el ancho de phit) ahora influye en la determinación del ancho de flit. [ 7 ]

Aunque las transferencias entre enrutadores se construyen necesariamente en términos de phits, las técnicas de conmutación operan en términos de flits. [ 7 ] Para más detalles sobre las diversas técnicas de conmutación, consulte la conmutación de agujero de gusano y la conmutación de corte . Dado que la mayoría de las técnicas de conmutación operan con flits, también tienen un gran impacto en la determinación del ancho de flit. Otros factores determinantes incluyen la fiabilidad, el rendimiento y la complejidad de la implementación.

Ejemplo

Un ejemplo de cómo funcionan los flits en una red.

Consideremos un ejemplo de cómo se transmiten los paquetes en términos de flits. En este caso, tenemos un paquete que se transmite entre A y B en la figura. El proceso de transmisión del paquete se desarrolla en los siguientes pasos.

  • El paquete se dividirá en los flits W, X, Y y Z.
  • El búfer de transmisión en A cargará el primer flit Z y lo enviará a B.
  • Después de que B reciba Z, B moverá el flit fuera del búfer.
  • El búfer de transmisión en A cargará entonces el siguiente flit Y y lo enviará a B.
  • Continúe realizando las acciones anteriores hasta que todos los flits se hayan transmitido a B.
  • Luego, B juntará todas las piezas para obtener el paquete completo.

Resumen

Un flit (unidad de control de flujo/dígitos) es una unidad de datos que se transmite durante la comunicación a nivel de enlace. El receptor puede aceptar o rechazar el flit según el protocolo de control de flujo y el tamaño del búfer de recepción. El mecanismo de control de flujo a nivel de enlace permite al receptor enviar un flujo continuo de señales para controlar si debe seguir enviando flits o dejar de hacerlo. Cuando se transmite un paquete a través de un enlace, este debe dividirse en varios flits antes de que comience la transmisión.

Véase también

Referencias

  1. "Copia archivada" (PDF) . Archivado del original (PDF) el 20 de marzo de 2015. Consultado el 25 de octubre de 2018 .{{cite web}}: CS1 mantenimiento: copia archivada como título ( enlace )
  2. William James Dally; Brian Towles (2004). "13.2.1". Principios y prácticas de las redes de interconexión . Morgan Kaufmann Publishers, Inc. ISBN 978-0-12-200751-4.
  3. Duato, J.; Lysne, O.; Pang, R.; Pinkston, TM (1 de mayo de 2005). "Una teoría para la reconfiguración dinámica de redes sin interbloqueos. Parte I". IEEE Transactions on Parallel and Distributed Systems . 16 (5): 412– 427. doi : 10.1109/TPDS.2005.58 . ISSN 1045-9219 . S2CID 15354425 .  
  4. Elsevier (agosto de 1998). Arquitectura de computadoras paralelas - 1.ª edición . ISBN 978-1-55860-343-1. Consultado el 3 de diciembre de 2016 .{{cite book}}: |website=ignorado ( ayuda )
  5. Scott, Steven L.; Thorson, Greg (1994-01-01). "Enrutamiento optimizado en el Cray T3D" . Enrutamiento y comunicación de computadoras paralelas . PCRCW '94. Vol. 853. Londres, Reino Unido: Springer-Verlag. págs. 281–294 . doi : 10.1007/3-540-58429-3_44 . ISBN   978-3540584292.{{cite book}}: |journal=ignorado ( ayuda )
  6. "El software de comunicación y el entorno paralelo del IBM SP2" . domino.research.ibm.com . 23 de febrero de 2001. Consultado el 29 de noviembre de 2016 .
  7. ^ Duato, José (6 de agosto de 2011) . Redes de Interconexión . Morgan Kaufman. ISBN 9780123991805.