Flit (redes de computadoras)


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 es seguido por cero o más movimientos del cuerpo, que contienen la carga útil real de datos. El movimiento final, llamado movimiento 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 

La creciente necesidad de rendimiento de los sistemas informáticos llevó a la industria al campo de múltiples 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 lo tanto, una red de interconexión escalable de alto rendimiento se encuentra en el núcleo deArquitectura informática paralela .

"Una red de interconexión I está representada por un multigrafo 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 tan baja como sea posible, es decir, el tiempo necesario para transferir un mensaje de un nodo a otro debe ser mínimo, permitiendo al mismo tiempo que una gran cantidad de estas transacciones tengan lugar 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.


Un ejemplo de cómo funciona Flits en una red.