En las redes de computadoras , un flit ( unidad de control de flujo o dígito de control de flujo ) es una pieza atómica a nivel de enlace que forma un paquete o flujo de red . [1] El primer revoloteo, llamado revoloteo 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 movimientos subsiguientes asociados con el paquete. El movimiento del encabezado va seguido de cero o más movimientos del cuerpo, que contienen la carga útil real de datos. El revoloteo final, llamado el revoloteo de la cola, lleva a cabo un mantenimiento de libros para cerrar la conexión entre los dos nodos .
Una conexión virtual mantiene el estado necesario para coordinar el manejo de los movimientos 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 (inactivo, esperando recursos o activo). La conexión virtual también puede incluir punteros a los movimientos del paquete que se almacenan en búfer en el nodo actual y el número de búferes de movimiento disponibles en el siguiente nodo. [2] : 237
Red de interconexión: conceptos básicos
La creciente necesidad de rendimiento de los sistemas informáticos llevó a la industria al ámbito de varios núcleos y muchos núcleos . En esta configuración, la ejecución de un kernel (un programa) se divide en varios procesadores y el cálculo se realiza en paralelo, lo que garantiza el rendimiento con respecto al tiempo de ejecución. Sin embargo, esto implica que los procesadores ahora 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 grupo de cables que conecta todos los procesadores. Sin embargo, este enfoque no es escalable a medida que aumenta el número de procesadores en el sistema. [3] Por tanto, una red de interconexión escalable de alto rendimiento se encuentra en el núcleo de la arquitectura informática paralela .
Terminologías y antecedentes básicos de la red
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 multigraph dirigido fuertemente conectado, I = G (N, C) . El conjunto de vértices del multigraph N incluye el conjunto de nodos de elementos de procesamiento P y el conjunto de nodos de enrutador RT . El conjunto de arcs C representa el conjunto de canales unidireccionales (posiblemente virtuales) que conectan los elementos de procesamiento a los enrutadores o los enrutadores entre sí ". [4]
La expectativa principal de una red de interconexión es tener una latencia lo más baja posible, es decir, el tiempo necesario para transferir un mensaje de un nodo a otro debe ser mínimo, permitiendo al mismo tiempo que se lleve a cabo una gran cantidad de tales transacciones al mismo tiempo. [5] Al igual que con cualquier otra compensación de diseño de ingeniería, la red de interconexión debe lograr estos rasgos manteniendo el costo de implementación lo más bajo posible. Habiendo discutido lo que se espera de una red, veamos algunos puntos de diseño que se pueden modificar para obtener el rendimiento necesario.
Los componentes básicos de una red de interconexión son su topología , algoritmo de enrutamiento , estrategia de conmutación y 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 varios procesadores. Este patrón puede ser regular o irregular, aunque muchas arquitecturas multinúcleo hoy en día utilizan redes de interconexión muy regulares.
Algoritmo de enrutamiento : determina qué ruta debe tomar el mensaje para garantizar la entrega al nodo de destino. La elección de la ruta se basa en múltiples métricas, como la latencia, la seguridad y el número de nodos involucrados, etc. Hay muchos algoritmos de enrutamiento diferentes, que brindan diferentes garantías y ofrecen diferentes compensaciones de rendimiento.
Estrategia de conmutación : el algoritmo de enrutamiento solo determina la ruta que debe tomar 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 es una red en la que se reserva una ruta y se bloquea a otros mensajes, hasta que el mensaje se entrega a su nodo de destino. Un ejemplo famoso de red de circuitos conmutados son los servicios telefónicos, que establecen un circuito a través de muchos 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 ahora cada paquete puede transferirse individualmente y ensamblarse en el destino según el número de secuencia.
Control de flujo: tenga en cuenta que hemos establecido previamente el hecho de que varios mensajes pueden fluir a través de la red de interconexión en cualquier momento. Es responsabilidad del mecanismo de control de flujo implementado a nivel de enrutador decidir qué mensaje fluye y qué mensaje se retiene.
Características y métricas de una red
Cada red tiene un ancho w , y 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 denomina unidad física o phit . Como se puede observar, el ancho de una red también es igual al tamaño de 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 trozos más pequeños de entidades de longitud fija llamadas paquetes . Los paquetes, a su vez, pueden dividirse en unidades de control de flujo de mensajes o flits .
La necesidad de revolcones
Es importante señalar que los flits representan unidades lógicas de información, mientras que los phits representan el dominio físico, es decir, los phits representan el número de bits que se pueden transferir en paralelo en un solo ciclo. Considere el Cray T3D. [6] Tiene una red de interconexión que utiliza un control de flujo de mensajes a nivel de flit en el que cada flit se compone de ocho phits de 16 bits. Eso significa que su tamaño de revoloteo es de 128 bits y el tamaño de phit es de 16 bits. Considere también el conmutador IBM SP2. [7] También utiliza el control de flujo de mensajes de nivel de flit, pero su tamaño de flit es igual a su tamaño de phit, que se establece en 8 bits.
Determinación del ancho de flit
Tenga en cuenta que el tamaño del mensaje es el factor decisivo dominante (entre muchos otros) a la hora de decidir los anchos de flit. Según el tamaño del mensaje, hay dos opciones de diseño en conflicto:
- Mantener el tamaño de cada paquete pequeño, en cuyo caso aumentará el número de paquetes, aumentando así el número total de transacciones, mientras que disminuye 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á, disminuyendo así el número total de transacciones, mientras aumenta el tamaño de cada transacción individual.
En función del tamaño de los paquetes, se debe decidir 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 mantenerse grande, sin embargo, un ancho del enlace más grande implica más área y una mayor disipación de energía. En general, los anchos de los enlaces se mantienen al mínimo. El ancho del enlace (que también decide el ancho del phit) ahora influye en la decisión del ancho del flit. [8]
En este punto, es importante tener en cuenta que aunque las transferencias entre enrutadores se construyen necesariamente en términos de phits, las técnicas de conmutación tratan en términos de flits. [8] Para obtener más detalles sobre las diversas técnicas de conmutación, consulte Conmutación por agujero de gusano y Conmutación por corte . Dado que la mayoría de las técnicas de cambio funcionan en movimientos, también tienen un gran impacto a la hora de decidir el ancho del movimiento. Otros factores determinantes incluyen la confiabilidad, el desempeño y la complejidad de la implementación.
Ejemplo
Considere un ejemplo de cómo se transmiten los paquetes en términos de flits. En este caso tenemos un paquete transmitiendo entre A y B en la figura. El proceso de transmisión de paquetes se lleva a cabo en los siguientes pasos.
- El paquete se dividirá en flits W, X, Y y Z.
- El búfer de transmisión en A cargará el primer revoloteo 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á el siguiente movimiento Y y lo enviará a B.
- Siga realizando las acciones anteriores hasta que todos los movimientos se hayan transmitido a B.
- Luego, B reunirá todos los movimientos para obtener el paquete completo.
Resumen
Un revoloteo (unidades de control de flujo / dígitos) es una cantidad unitaria de datos cuando el mensaje se transmite a nivel de enlace. El revoloteo se puede aceptar o rechazar en la base del lado del receptor en 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 que el receptor envíe un flujo de señales continuo para controlar si debe seguir enviando movimientos o dejar de enviarlos. Cuando un paquete se transmite a través de un enlace, el paquete deberá dividirse en varios movimientos antes de que comience la transmisión. [3]
Ver también
Referencias
- ^ https://www.springer.com/cda/content/document/cda_downloaddocument/9781461407904-c1.pdf
- ^ 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.
- ^ a b Solihin, Yan (2009). Fundamentos de Arquitectura de Computadores Paralelos, Sistemas Multichip y Multicore . Solihin Publishing & Consulting LLC. pag. 363.
- ^ Duato, J .; Lysne, O .; Pang, R .; Pinkston, TM (1 de mayo de 2005). "Una teoría para la reconfiguración de redes dinámicas sin interbloqueo. Parte I". Transacciones IEEE en sistemas paralelos y distribuidos . 16 (5): 412–427. doi : 10.1109 / TPDS.2005.58 . ISSN 1045-9219 .
- ^ Elsevier. "Arquitectura de Computadores Paralelos - 1ª Edición" . www.elsevier.com . Consultado el 3 de diciembre de 2016 .
- ^ Scott, Steven L .; Thorson, Greg (1 de enero de 1994). "Enrutamiento optimizado en el Cray T3D" . Actas del Primer Taller Internacional sobre Enrutamiento y Comunicación Computacionales Paralelos . PCRCW '94. Londres, Reino Unido, Reino Unido: Springer-Verlag: 281–294. ISBN 978-3540584292.
- ^ "El software de comunicación y el entorno paralelo del IBM SP2" . domino.research.ibm.com . 2001-02-23 . Consultado el 29 de noviembre de 2016 .
- ^ a b Duato, José (6 de agosto de 2011). Redes de interconexión . Morgan Kaufmann. ISBN 9780123991805.