ES2395955B2 - Método de encaminamiento adaptativo en redes jerárquicas - Google Patents

Método de encaminamiento adaptativo en redes jerárquicas Download PDF

Info

Publication number
ES2395955B2
ES2395955B2 ES201200715A ES201200715A ES2395955B2 ES 2395955 B2 ES2395955 B2 ES 2395955B2 ES 201200715 A ES201200715 A ES 201200715A ES 201200715 A ES201200715 A ES 201200715A ES 2395955 B2 ES2395955 B2 ES 2395955B2
Authority
ES
Spain
Prior art keywords
local
global
ports
routers
router
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
ES201200715A
Other languages
English (en)
Other versions
ES2395955A1 (es
ES2395955A8 (es
Inventor
Enrique VALLEJO GUTIÈRREZ
Miguel ODRIOZOLA OLAVARRÍA
Marina GARCÍA GONZÁLEZ
Ramón BEIVIDE PALACIO
Mateo VALERO CORTÉS
Jesús LABARTA MANCHO
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Universidad de Cantabria
Barcelona Supercomputing Center
Original Assignee
Universidad de Cantabria
Barcelona Supercomputing Center
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Universidad de Cantabria, Barcelona Supercomputing Center filed Critical Universidad de Cantabria
Priority to ES201200715A priority Critical patent/ES2395955B2/es
Publication of ES2395955A1 publication Critical patent/ES2395955A1/es
Publication of ES2395955A8 publication Critical patent/ES2395955A8/es
Priority to PCT/ES2013/000167 priority patent/WO2014006242A1/es
Application granted granted Critical
Publication of ES2395955B2 publication Critical patent/ES2395955B2/es
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/32Flow control; Congestion control by discarding or delaying data units, e.g. packets or frames
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/46Cluster building

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Método de encaminamiento de paquetes en una red directa jerárquica formada por una pluralidad de encaminadores, cada uno con puertos de tipo local y puertos de tipo global; cada puerto comprende una pluralidad de canales virtuales; dichos encaminadores forman grupos, donde los diferentes encaminadores de un mismo grupo están interconectados mediante una topología conexa empleando enlaces de tipo local uniendo parejas de puertos de tipo local, y los diferentes grupos están interconectados mediante una topología conexa empleando enlaces de tipo global uniendo parejas de puertos de tipo global. El método está configurado para emplear saltos por dichos enlaces de acuerdo a rutas mínimas y no mínimas; los saltos que implican rutas no mínimas pueden realizarse tanto a través de enlaces globales como locales. El número de canales virtuales necesarios en cada puerto local y global viene determinado solamente por la longitud de una ruta máxima permitida que no emplea misrouting de tipo local, empleando para ello un orden total en el recorrido de los canales virtuales, que se viola cuando se realiza un misrouting local.

Description

MÉTODO DE ENCAMINAMIENTO ADAPTATIVO EN REDES .JERÁRQUICAS
CAMPO DE LA INVENCIÓN 5 La presente invención pertenece al campo de las redes para comunicaciones~ más concretamente, es especialmente aplicable al campo de las redes de interconexión para computadores paralelos (multiprocesadores o multicomputadores).
ANTECEDENTES DE LA INVENCIÓN 10 En una red de comunicaciones basada en conmutación de paquetes, una serie de clientes (o nodos de cómputo) se comunican entre sí intercambiándose mensajes; cada uno de estos mensajes se divide en uno o más paquetes, que constituyen la unidad básica de conmutación en la red. Cada paquete tiene un cliente origen y uno o múltiples clientes destino (esto último, en el caso de paquetes mullicast). A grandes rasgos, la red 15 está compuesta por una serie de encaminadores (también conocidos como conmutadores, o roUlers o switches según los ténninos en inglés) que son los elementos activos de la red. Estos encaminadores están unidos mediante enlaces de comunicaciones, es decir, cables por los que se envían señales eléctricas u ópticas que transportan los paquetes de la red. Cada cliente se conecta mediante su interfaz de red a 20 uno O más encaminadores utilizando el o los enlaces correspondientes, y a su vez los encaminadores se conectan entre sí mediante otros enlaces. Un encaminador dispone de múltiples puertos, a los que se conectan los enlaces correspondientes a otros encaminadores o clientes. Los clientes envían paquetes a los encaminadores, que se encargan de transportarlos de un encaminador a otro hasta llegar al cliente destino. La 25 topología de la red es una descripción matemática de la fonna en la que se conectan los diferentes encaminadores y clientes de la red.
Para que la comunicación sea posible, un encaminador debe ser capaz de recibir cada paquete que llegue por un cierto puerto de entrada, almacenarlo temporalmente,
procesarlo para detenninar la ruta a seguir, y reenviarlo por el puerto de salida correspondiente. Para todo ello, los encaminadores 10 suelen tener una estructura interna similar al esquema presentado en la figura 1. Cada puerto de entrada Pin tiene asociada una llilidad de entrada ti con una o más memorias (también denominadas bujJeres o colas) 12 en las que se almacenan datos correspondientes a los paquetes que se reciben por ese puerto pino Estos múltiples bufferes 12 se suelen utilizar para separar diferentes paquetes según su prioridad, tipo, o según una política de evitación de bloqueos (como se explica más adelante). Los paquetes almacenados en los bufferes 12 comparten el mismo enlace fisico y puerto de entrada al switch; por ello, cuando hay varios de estos bufferes 12 se suelen denominar eanaJes virtuaJes o "clases de buffer". Existe una lógica de encaminamiento que se encarga de detenninar por qué puerto de salida Pool es apropiado reenviar cada paquete de los canales virtuales de entrada 12, y si acaso, en cuál de los canaJes virtuales del puerto de entrada del siguiente encaminador hay que introducir el paquete. A su vez, cada puerto de saJida pout puede tener o no una cierta memoria para almacenar los paquetes que tienen que salir por dicho puerto. La conexión entre los bufferes 12 de los puertos de entrada pi" y los puertos de salida Poul se realiza típicamente mediante un crossbar 13(en ocasiones traducido como matriz de cruces) que puede unir en cada ciclo de corunutación cualesquiera parejas de buffer de entradas y puerto de salida, una a lUla. Cada pareja de puertos de entrada y salida se conecta con un único enlace bidireccional. Un asignador ("allocator'~) regula el uso de recursos compartidos. Múltiples paquetes pueden solicitar Wl mismo puerto de salida, pero sólo se concede a uno de ellos cada vez. Un asignador C'allocator") puede ser de tipo dividido (es decir, separable) o no dividido (es decir, unificado). En caso de que el arbitraje sobre los recursos compartidos esté implementado mediante un asignador no separable, de acuerdo con William Dally y Brian Towles en Principies and Practices o/lnterconnection Networks. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2003, el asignador (allocator) asigna los puertos de salida P OIII en función de todas las rutas posibles que pueda seguir cada paquete en un puerto de entrada pino Para ello, se calcula para cada paquete el conjunto de rutas (puertos de salida POOl y canal virtual) por el que puede salir, y se pasan al asignador todos aquellas en las que hay hueco suficiente para el paquete. Después, el asignador busca la asignación de salidas a cada paquete que maxImIce el throughput del router. En caso de que el arbitraje esté implementado mediante un asignador dividido, de acuerdo con William Dally y Brian Towles en PrincipIes and Practices ollnterconnection Nelworks. Morgan Kaufrnann Publishers Inc., San Francisco, CA, USA, 2003, cada puerto de entrada Pin elige uno de los canales virtuales que tengan un paquete listo para avanzar (por ejemplo, mediante una política round-robin), y el paquete decide, de entre todas las rutas posibles proJX)rcionadas por la lógica de encaminamiento, la que más le interese. Después, se pasa la ruta seleccionada al asignador, que realiza la asignación de los puertos de salida pout a los solicitantes. Para poder enviar datos de un paquete a través de un puerto de salida sin pérdida de datos, es necesario que exista espacio de almacenamiento suficiente en el buffer, cola O canal virtual 12 del puerto de entrada Pin correspondiente del siguiente conmutador o encaminador. Existen dos mecanismos típicos de control de flujo para gestionar dicho espacio en el buffer de entrada del siguiente encaminador: virtual cUI-through (Ve1) (en ocasiones denominado paso a través en castellano) pennite el avance de W1 paquete solo si existe espacio disponible para almacenarlo completo; wormhole (WH) (encaminamiento de agujero de gusano, aunque el nombre en castellano no se suele emplear) divide los paquetes enflits (flow control dígit, en español unidad de control de flujo), y permite que avancen tantosjlits como hueco haya en el siguiente buffer. Así, WH pennite que un paquete se quede parado en la red ocupando dos o más canales virtuales o bufferes de entrada de diferentes encaminadores consecutivos. De hecho, VCT requiere que los bufferes o canales virtuales tengan una capacidad igualo superior al tamaño máximo de un paquete mientras que WH solo precisa que tengan capacidad para uno o más flits. De esta manera, WH se suele emplear en entornos en los que el área del chip o el consumo energético (generado por dichos bufferes) resulta crítico, como redes dentro del chip. Sin embargo, en redes de sistema, es habitual el uso de VCT al ser más sencilla su implementación. En cualquiera de los dos casos, si no existe espacio suficiente en el siguiente buffer o canal virtual, típicamente es necesario esperar a que los datos del dicho buffer avancen hacia su destino, y se libere espacio. En este caso, se dice que existe una dependencia entre un conmutador y el siguiente.
En una red, el interbloqueo (habitualmente denominado deadJock según el ténnino inglés, o simplemente bloqueo) es la situación en la que ningún paquete de un conjunto de paquetes dado no puede avanzar hacia su destino porque se produce una dependencia cíclica entre los recursos solicitados para implementar dicho avance. Por ejemplo, cada paquete está ocupando un hueco en W13 cola de un encaminador, y para poder avanzar necesita que se libere un hueco en la cola correspondiente del siguiente encaminador, que a su vez está esperando a que se libere un hueco en un tercer encaminador, etc., fonnándose al final un ciclo de colas llenas en el que ninguno de los paquetes puede avanzar y nunca se libera un hueco. Esta situación es crítica para una red, ya que provoca una parada completa de su funcionamiento de la que no se puede salir. Para evitar este problema del interbloqueo (deadlock), se han desarrollado diferentes técnicas, que o bien detectan y solventan esta situación (por ejemplo, descartando alguno de los paquetes que conforman la dependencia cíclica y liberando su "hueco" en el buffer) o bien no permiten que se llegue a ella (por ejemplo, mediante restricciones en el encaminamiento de los paquetes en la red que no permiten que se generen dependencias cíclicas). Las primeras técnicas se dcnominan dc resolución de bloqueos, y son más frecuentes en las redes con pérdidas, que son aquellas que se aswnen poco fiables y que no garantizan la entrega de los datos en el destino (como Ethernet). En cambio, las técnicas del segundo tipo se denominan de evitación de bloqueos, y son preferibles en redes sin pérdidas ya que no precisan de la retransmisión de los datos. Los mecani smos de evitación de bloqueos están en muchos casos Íntimamente relacionados con la topología de la red, el mecanismo de control de flujo (VCT o WH), y con el uso de los diferentes canales virtuales de cada puerto de entrada.
Una topología propuesta recientemente para su uso en redes de interconexión de sistemas de alta escala es la denominada Dragonjly , descrita en la solicitud de patente estadounidense US201O/0049942 Al y en Technology-driven, highly-scalable dragonfiy topology publicada en ISeA '08: Proceedings 01 ¡he 35th annual Internalional Symposium on Computer Architeclure, pages 77-88, 2008, por John Kim et al., o red directa jerárquica, descrita por B. Arimilli el al. en The PERCS HighPerformance Interconnect. In Proceedings 01 18th Symposium on High-Performance
lnterconnects (Hot lnterconnects 2010). IEEE, Aug. 2010. Se muestra un caso concreto de esta topología en la figura 2. La idea general de esta topología es emplear encaminadores 20 de alto número de puertos unidos en "grupos" 21. En el ejemplo mostrado en la figura 2 cada grupo 21 está formado por un mismo número de encaminadores 20, pero no tiene por qué ser así. Globalmente, todos los grupos 21 están unidos entre sí. con un único enlace entre cada pareja de grupos, de acuerdo a lo que se denomina topología de grafo completo. La figura 2 muestra en trazo discontinuo los enlaces globales 22. Localmente, los conmutadores de cada grupo también están conectados entre sí, típicamente también con una topología de grafo completo con un único enlace entre cada pareja de conmutadores. La figura 2 muestra en trazo continuo los enlaces locales 23. Por tanto, un grupo 21 está formado por un conjunto de corunutadores o encaminadores 20 cercanos y por los clientes del sistema que están conectados a ellos (nodos 24). Todo ello se ubica típicamente en un mismo cabinet o varios cabinets vecinos. Los enlaces que unen corunutadores de diferentes grupos se denominan enlaces globales 22 y emplean típicamente tecnología óptica, debido a su mayor longitud. Los enlaces entre los conmutadores de un grupo se denominan enlaces locales 23, y pueden utilizar tecnología eléctrica gracias a su menor longitud.
El mecanismo de encaminamiento de la red es el que determina la ruta que siguen los paquetes desde un nodo origen (o, de manera equivalente, desde un conmutador origen) hasta un nodo (o conmutador) destino. El mecanismo de encanunamiento propuesto para estas redes en la bibliografia pennite dos tipos de rutas: i) La ruta mínima, que utiliza la única ruta más corta entre cualquier pareja de encaminadores origen y destino. Considerando las topologías de grafo completo tanto a nivel local de los grupos como global, la ruta mínima atraviesa a 10 sumo tres enlaces: local -global -local. Un ejemplo de ruta mínima está mostrado en la figura 3, en la que para enrotar un paquete desde el encarninador origen "O" hasta el encaminador destino '''D'' el paquete da un primer salto local 23-1 seguido de un salto global 22-1 y un segundo salto local 23-2. ii) Una ruta no-mínima, o ruta Valiant, tal y como se describe por L. G. Valiant en A scheme foc fast parallel communication. Journal on Computing, 11(2):350-361, 1982, en la que primero se envía el paquete a un grupo intermedio (diferente del grupo origen
y destino) para balancear el tráfico, empleando hasta dos enlaces, local y global, y a partir de ahí hasta el destino, utilizando la ruta mínima. Por tanto~ este mecanismo permite rutas de longitud máxima 5: local -global -local -global -local. Este encaminamiento no-mínimo tiene sentido cuando el enlace global de la ruta mínima correspondiente está saturado, ya que aunque se recorren más enlaces de la red, se sortea el enlace saturado. Este encaminamiento está representado en el ejemplo de la figura 4, en el que se numera la secuencia de encaminadores atravesados para enrutar un paquete desde el encaminador origen "O" hasta el encarninador destino "D": El paquete, que se encuentra en un encaminador origen "O" que pertenece a un grupo origen Co da un primer salto local 43-1 hasta un encaminador ")" del mismo grupo origen Ca. A continuación, se produce un primer salto global 42-1 hasta un nodo "2" perteneciente a un grupo intermedio G/. Seguidamente el paquete recorre un segundo camino local 43-2 hasta llegar a un encaminador "3" del mismo grupo intennedio G/. Entonces el paquete sigue un segundo salto global 42-2 hasta un encaminador "4" perteneciente al grupo destino GD. Finalmente el paquete toma un camino local 43-3 hasta el nodo destino "D".
En el caso general, es deseable que el encaminamiento se adapte a las circunstancias de ocupación de la red mediante un mecanismo adaptativo que seleccione entre una ruta mínima O no-mínima en función del estado de los enlaces de la red. El problema de estos mecanismos es que, para tomar la decisión de utilizar la ruta mínima o una nomínima en el router o encaminador de origen, necesitan infonnación del estado del enlace global de la ruta mínima que no necesariamente está conectado a este routee de origen, como ocurre en los ejemplos de las figuras 3 y 4. Por ello, esta decisión debe tomarse mediante una estimación del estado de la red a partir de infonnación remota. Entre estos mecanismos están, por ejemplo, UGAL, Piggybacking (PB), Credit RoundTrip Time (CRT) o Reservation (RES) propuestos por Nan Jiang et al. en Indieect adaptive routing on large scale interconnection networks en ISCA '09: Proceedings 01 (he 36th annual lnlernational Symposium on Compuler Architeclure, pages 220-231, 2009 Y por John Kim et al. en el anterionnente citado Technology-driven, highlyscalable dragonfly topology. In ¡Se A '08: Proceedings 01the 35th annuallnternational Symposium on Compuler Architecture, pages 77-88, 2008. El mecanismo Progressive Adaptive Routing (PAR), introducido por Nan Jiang el al., permite que cuando se elige una ruta mínima, tras el primer saJto se modifique a una ruta no-mínima comenzando en el router en curso (el segundo de la ruta mínima) y utilizando la información local del rouler en curso. Este mecanismo con adaptatividad en tránsito es interesante porque perrnite adaptar el encaminamiento más rápido en presencia de cambios del tráfico de la red, pero a costa de rutas máximas más largas ya que permite un primer salto local adicional.
El hecho de realizar un salto por un enlace de la red que no acerca el paquete a su destino final se denomina técnicamente misrouting. En el caso anterior del encaminamiento no-mínimo, el primer salto global 42-1 (entre los encaminadores numerados como ''' 1'' y "2") es un misrouting global~ que se utiliza para sortear un enlace global saturado. Esta saturación de enlaces globales puede ser fi'ecuente en una topología DragonfIy, ya que existe un único enlace global entre cada pareja de grupos, con múltiples nodos en cada grupo. Cuando los nodos de estos grupos se comunican entre sí, el único enlace global que los une tiende a saturarse, y mediante el misrouting dicho enlace se puede evitar a costa de pasar por un grupo intennedio aleatorio. Nótese que, en ftmción del grupo elegido, se puede necesitar un primer salto local previo al misrouting global (en la figura 4, el salto local 43-1 entre los encamÍnadores numerados como "O" y " 1 "). De manera análoga se define un misrouting local como un salto a través de un enlace local (por tanto, que no sale del grupo en que se encuentra el paquete) que no acerca el paquete a su destino. El misroUling local tiene el objetivo de sortear enlaces locales saturados dentro de un grupo. En la solicitud de patente europea EP2451127AI se sugiere el uso de misrouting local en cualquier grupo de la ruta del paquete. La figura 5 muestra un ejemplo de una ruta no mínima, con un misrouting global 52-1 seguido de un misrouting local 53-1 en el grupo intennedio G •.
El mecanismo de evitación de bloqueos propuesto para esta topología Dragonfly en Technology-driven, highly-scalable dragonfly topology en ¡SeA '08: Proceedings oJ the 35th annual Internalional Symposium un Computer Architecture, pages 77-88, 2008, por John Kim el al. y en B. Arimilli el al. en The PERCS High-Performance Interconnect en Proceedings 01 18th Symposium on High-Performance Interconnecls (Ho! Inlerconnects 2010). IEEE, Aug. 2010, se basa en una técnica original propuesta por K. Günther en Prevention ofdeadlocks in packet-switched data transport systems en Communications. IEEE Transactions on, 29(4):512 -524, Abril 1981. Dicho mecanismo evita la aparición de bloqueos en base al uso ordenado de tantos canales virtuales (Virtual Channels, Ves) en los puertos de entrada de los encaminadores como la longitud en saltos de la ruta más larga pennitida en la red. La idea clave es que cada vez que un encaminador reenvía un paquete, se incrementa el índice del canal virtual utilizado para ello. Dicho de otra manera, se impone una relación de orden total en el uso de los recursos de la red, en este caso los canaJes virtuales en cada uno de los puertos de entrada de los diferentes encaminadores. De esta manera se evita el interbloqueo o deadlock, lo que puede demostrarse intuitivamente de manera recursiva: Los paquetes en el canal virtual con el índice más alto no se bloquean, porque van a conswnirse; los paquetes en un cierto canal virtual no se bloquean, porque o bien van a conswnirse, o bien dependen del inmediatamente superior que está libre de bloqueo.
El problema de esta implementación es que, en general, requiere un elevado número de canales virtuales, lo que se traduce en una elevada área de silicio y una mayor complejidad de diseño de los encaminadores. Si se permite el encaminamiento nomínimo con una ruta local -global -local -global -local como la mostrada en la figura 4, entonces son necesarios 5 canales virtuales, denominados veo a VC4. Sin embargo, al coincidir que cada salto de la ruta recorre siempre el mismo tipo de enlace, local en el caso de los saltos impares y global en de los pares, la implementación del encaminador puede hacerse con solo 3 ves en los puertos locales y 2 ves en los globales. En el caso de que un paquete siga una ruta más corta, basta con omitir los canales correspondientes a los saltos que no aparecen en la ruta. En el caso de emplear el encaminamiento PAR, introducido por Nao Jiang et al., como permite rutas de longitud 6, es necesario un ve más, en concreto en los puertos locales (en total, 4 ves locales y 2 ves globales).Previamente se ha argumentado el interés de que el mecanismo de encaminamiento permita misrouling local. Sin embargo, es evidente que
este misrouting alarga la ruta máxima permitida en la red, y por tanto aumenta, según el mecanismo de evitación de bloqueos anterior, el número de canales virtuales necesarios. Si no se restringe el número de misroutings locales pennitidos, hace falta un número ilimitado de canales virtuales con el mecanismo anterior, lo que claramente es
5 no implementable. En concreto, si se limita a un máximo de un misrouting local por cada grupo que atraviesa el paquete, la ruta se alargará en hasta tres saltos locales (por los tres grupos que puede atravesar el paquete: origen, intennedio y destino) lo que daría lugar a 6 ves para los enlaces locales y 2 ves para los globales.
10 En resumen, no se conoce ningún mecanismo de encaminamiento en el estado del arte que pennita el uso de misrou/ings locales, con adaptatividad completa en tránsito sin restringir el encaminamiento y sin emplear un elevado níunero de canaJes virtuales. De existir, dicho mecanismo seria muy deseable, ya que permitiria obtener un elevado rendimiento (por el misrouting local que permite sortear enlaces locales saturados), se
15 adaptaria rápidamente a cambios en el tipo de tráfico (por la adaptatividad en tránsitoJ, utilizaría de manera balanceada los recursos de la red por la adapatatividad completa y no emplearía recursos adicionales.
20 RESUMEN DE LA INVENCIÓN
La presente invención trata de resolver los inconvenientes mencionados anteriormente mediante un método de encaminamiento para redes directas jerárquicas.
25 Concretamente, en un primer aspecto de la presente invención, se proporciona unmétodo de encaminamiento de paquetes en una red directa jerárquica formada por una pluralidad de encaminadores, cada uno de ellos con una pluralidad de puertos de tipo local y una pluralidad de puertos de tipo global, donde cada uno de los puertos comprende una pluralidad de canales virtuales, y donde los encaminadores forman
30 grupos, donde los diferentes encaminadores de un mismo grupo están
interconectados mediante una topología conexa empleando enlaces de tipo local uniendo parejas de puertos de tipo local, y a su vez los diferentes grupos están interconectados mediante una topología conexa empleando enlaces de tipo global uniendo parejas de puertos de tipo global. El método está configurado para emplear 5 saltos por esos enlaces de acuerdo a rutas mínimas y no mínimas, donde los saltos que implican rulas no mínimas pueden realizarse tanto a través de enlaces globales como locales. Además, el número de canaJes virtuales necesarios en cada puerto local y global viene determinado solamente por la longitud de una ruta máxima permitida que no emplea misrouJing de tipo local, empleando para ello un orden total
10 en el recorrido de los canales virtuales, que se viola cuando se realiza un misrouting local.
En una realización particular, la conexión entre los diferentes encaminadores de un mismo grupo se realiza de acuerdo a un grafo completo, y la conexión entre los
1 5 diferentes grupos también se realiza de acuerdo a un grafo completo, y cada puerto local comprende solo 3 canales virtuales y cada puerto global comprende solo 2 canales virtuales.
En una realización particular, para cada paquete situado en un canal virtual de un 20 puerto de un encaminador, el método comprende:
-
calcular al menos un salto de acuerdo a un encaminamiento mínimo entre el encaminador en que se encuentra dicho paquete y el encaminador al que está conectado el nodo al que dicho paquete está dirigido;
-
calcular al menos un salto de acuerdo a un encaminamiento no-mínimo que
25 comprende un misrouting global, a través de un grupo de encaminadores intermedio diferente del grupo al que pertenecen el encaminador de origen y el encaminador al que está conectado el nodo destino del paquete;
-
calcular, si no se ha alcanzado un detenninado límite de misrouting locales y el encaminamiento mínimo ha calculado saltos de tipo local, al menos un salto local 00mínimo diferente a dichos saltos calculados mediante el encaminamiento mínimo;
-
seleccionar uno de dichos saltos en función de un detenninado criterio.
En la realización anterior, el método puede emplear un asignador unificado en cada encaminador para llevar a cabo la selección de uno de dichos saltos para que avance un paquete.
Alternativamente, se selecciona una ruta para cada paquete en cada ciclo de arbitraje mediante una comparación de la ocupación del canal virtual de entrada en el siguiente encaminador correspondiente a una ruta mínima seleccionada, frente a la ocupación de los canales virtuales de entrada de los encaminadores correspondientes a otras rutas.
Alternativamente, se selecciona una ruta para cada paquete en cada ciclo de arbitraje mediante una comparación de los valores de una pluralidad de contadores de contención, existiendo tantos contadores como puertos de salida tiene el encaminador, registrando dichos contadores el número de paquetes de los puertos de entrada cuya ruta mínima avanza por el puerto de salida correspondiente.
Alternativamente, se selecciona una ruta para cada paquete en cada ciclo de arbitraje de acuerdo a una combinación tanto de la infonnación obtenida de la ocupación de los canales virtuales de entrada de los encaminadores vecinos como de una pluralidad de contadores de contención~ registrando dichos contadores el número de paquetes de los puertos de entrada cuya ruta mínima avanza por el puerto de salida correspondiente.
En otra realización particular, se emplea control de flujo wormhole en todos los saltos en que se respeta el orden total establecido para los canales virtuales, y control de flujo virtual cUI-through en los saltos en que se hace un misrouling local que viola dicho orden total, pennitiendo que todos los canales virtuales tengan un tamaño
inferior al tamaño máximo del paquete menoS los correspondientes al primer canal virtual.
En otra realización particular, el orden total puede ser un orden ascendente o un orden descendente.
5 En otro aspecto de la invención, se proporciona una red directa jerárquica formada por una pluralidad de encaminadores, cada uno de ellos con una pluralidad de puertos de tipo local y una pluralidad de puertos de tipo global, donde cada uno de los puertos comprende una pluralidad de canales virtuales, donde los encaminadores forman grupos, donde los diferentes encaminadores de un mismo grupo están
10 interconectados mediante una topología conexa empleando enlaces de tipo local uniendo parejas de puertos de tipo local, y a su vez los diferentes grupos están interconectados mediante una topo logia conexa empleando enlaces de tipo global uniendo parejas de puertos de tipo global. La red directa jerárquica comprende medios para llevar a cabo el método anterior.
15 Como puede apreciarse, este método de encaminamiento pennite evitación de bloqueos, adaptatividad en tránsito y el uso de misrouting local, sin requerir para ello más de los 3 ves locales y los 2 VCs globales necesarios en mecanismos de encaminamiento del estado del arte previo.
20 Otras ventajas de la invención se harán evidentes en la descripción siguiente.
BREVE DESCRIPCIÓN DE LAS FIGURAS
25 Con objeto de ayudar a una mejor comprensión de las características de la invención, de acuerdo con un ejemplo preferente de realización práctica del mismo, y para complementar esta descripción, se acompaña como parte integrante de la misma, un juego de dibujos, cuyo carácter es ilustrativo y no limitativo. En estos dibujos:
La figura I muestra un esquema de la arquitectura de un encaminador.
La figura 2 muestra un ejemplo de la topología Dragonf1y o red directa jerárquica.
5 La figura 3 muestra un ejemplo de encaminamiento en una red directa jerárquica, siguiendo una ruta mínima entre dos grupos.
La figura 4 muestra un ejemplo de encaminamiento en una red directa jerárquica, siguiendo una ruta Valiant o ruta no-mínima entre dos grupos, en la que se numera la 10 secuencia de encaminadores atravesados.
La figura 5 muestra un ejemplo de encaminamiento no-mínimo con misrouting global y loca1 en el grupo intennedio.
15 La figura 6 muestra un esquema de un encaminador de la red sobre la que se implementa el método de encaminamiento de la invención.
La figura 7 muestra siete ejemplos de encaminamiento entre dos grupos y rutas resultantes del método de encaminamiento de la invención, desde un encaminador 20 origen O hasta el destino D. En concreto, se ejemplifica: a) Ruta mínima. b) Primer y segundo salto ruta no mínima y, a continuación, ruta mínima hasta alcanzar el destino. e) Primer salto ruta no mínima y, a continuación, ruta mínima hasta alcanzar el destino. d) Primer salto ruta mínima, a continuación ruta no mínima y por último ruta mínima hasta alcanzar el destino. e) Misma ruta que en el caso e, con misrouting local en el
25 grupo intennedio. f) Misma ruta que en el caso e, con misrouting local en el grupo destino. g) Misma ruta que en el caso b, con misrouting local en el grupo intermedio.
La figura 8 muestra tres ejemplos de orden en el uso de los canales virtuales, de acuerdo con una posible implementación del método de encaminamiento de la invención, 30 considerando las rutas empleadas en las figuras 7-b. 7-g Y 7-[; La primera a) tiene todos los saltos ascendentes, la segunda b) tiene un único misrouting local que viola dicho
orden ascendente y la tercera e) tiene 3 misroutings locales que violan dicho orden ascendente.
DESCRIPCIÓN DETALLADA DE LA INVENCIÓN
En este texto, el término "comprende" y sus variantes no deben entenderse en un sentido excluyente, es decir, estos ténninos no pretenden excluir otras características técnicas, aditivos, componentes o pasos.
Además, Jos términos "aproximadamente", "sustancialmente", "alrededor de", ""unos", etc. deben entenderse como indicando valores próximos a los que dichos términos acompañen, ya que por errores de cálculo o de medida, resulte irnJX>sible conseguir esos valores con total exactitud.
Se defme misrouling como el acto de realizar un salto por un enlace de la red que no acerca el paquete a su destino fmal. En español podría llamarse "desvío", aunque suele utilizarse el término inglés.
Cuando ese misrouting se realiza entre encaminadores de diferente grupo, se trata de un misrouting global, que se utiliza para sortear un enlace global saturado.
Cuando ese misrouting se realiza entre encaminadores del mismo grupo, se trata de un misrouting local, que se utiliza para sortear un enlace local saturado dentro de un mismo grupo.
Las siguientes realizaciones preferidas se proporcionan a modo de ilustración, y no se pretende que sean limitativas de la presente invención. Además, la presente invención cubre todas las posibles combinaciones de realizaciones particulares y preferidas aquí indicadas. Para los expertos en la materia, otros objetos, ventajas y características de la invención se desprenderán en parte de la descripción y en parte de la práctica de la invención.
El método de encaminamiento de la invención es aplicable a redes directas jerárquicas, tal y como se esquematiza de [onna general en la figura 2, donde cada uno de los encaminadores 20 responde de forma general a la arquitectura representada en la figura
6. La red está fonnada por una pluralidad de encaminadores 20, cada uno de los cuales comprende varios puertos de inyección y consumo a los que se conectan o pueden conectarse nodos de cómputo 24. Los encaminadores 20 se agrupan fonnando grupos 21 mediante una topología conexa, es decir, en la que existe al menos un camino para comunicar cualquier pareja de nodos. Igualmente, los diferentes grupos se interconectan mediante una topología conexa. Aunque en la figura 2 todos los grupos tienen un mismo níunero de encaminadores, en general grupos diferentes pueden tener un número diferente de encaminadores. La figura 2 muestra también los enJaces locales 23, es decir, entre encaminadores de un mismo grupo, y los enlaces globales 22, es decir, entre encaminadores de gruJXlS diferentes. Preferentemente, el presente método de encaminamiento es aplicable cuando la conexión entre encaminadores de un mismo grupo se corresponde, al menos, con un grafo completo (también conocido como f1allened butterfly de 1 dimensión), con al menos un enlace entre cada pareja de encaminadores. Además, en caso de disponer de puertos adicionales en los encaminadores pueden existir enlaces locales 23 paraJelos entre una misma pareja de encaminadores del mismo grupo. También preferentemente, el presente método de encaminamiento es aplicable cuando la conexión entre grupos se corresponde, al menos, con un grafo completo.
En la arquitectura del encaminador se asume que al menos el canal virtual veo tiene capacidad suficiente para albergar un paquete del tamaño máximo pennitido en la red.
La figura 6 muestra un esquema de un encaminador 60 de la red sobre la que se implementa el método de encaminamiento de la invención. Cada encaminador 60 necesita tres canales virtuales (VeO, VC2 y VC4, referenciados en la figura como 62-0, 62-2 Y 62-4) en los puertos locales 62, y dos canales virtuales (VCI y VC3, referenciados en la figura como 61-1 y 61-3) en los puertos globales 61. El etiquetado concreto de los canales virtuales puede variar mientras se mantenga la cantidad de puertos y el orden relativo. El puerto que comunica cada nodo de cómputo con un encaminador de la red se denomina puerto de inyección, no ilustrado en la figura 6 Dicho puerto no precisa estar dividido en canales virtuales, y si se especifica un índice
5 para el mismo, es irrelevante para la evitación de bloqueos. A efectos del orden, los paquetes en un puerto de inyección se considera que están en el canal virtual -l.
El método o mecanismo propuesto proporciona, en cada encaminador de la red, el conjunto de rutas que puede seguir un paquete. Estas rutas se corresponden con rutas 10 mínimas (desde el encaminador en curso hasta el destino, independientemente de la ruta seguida previamente por el paquete), rutas no-mínimas que utilizan un misrouling global para pasar por un grupo intennedio, así como los misrouting locales internos a un grupo. Después, alguna lógica del encaminador en curso se encarga de seleccionar una opción entre todas las posibles para realizar el avance del paquete; es decir, se
15 permite adaptatividad en tránsito, Esta lógica puede utilizar información del estado de la red para seleccionar la ruta más apropiada. La ocupación de los bufferes o canales virtuales de los diferentes caminos, que se deriva de la cuenta de créditos de las salidas de los encaminadores, es un ejemplo de un indicador del estado de la red.
20 Como se explica más adelante, el mecanismo de encaminamiento está libre de interbloqueo. Para garantizarlo, las rutas mínima y Valiant (no-mínima con misrouling global) siguen un orden ascendente de índices en los canales virtuales utilizados, lo que garantiza que los paquetes se pueden encaminar hasta el destino utilizando dichas rutas sin bloqueo. En un caso general, se puede seguir cualquier orden total en el uso de los
2 5 canales virtuales, no necesariamente el citado orden ascendente. Por el contrario, el misrouting local viola dicha relación de orden total, reutilizando el mismo canal en curso, o uno inferior. Esta violación hace que no se pueda garantizar el avance de los paquetes para las rutas que emplean misrouting local, y únicamente se pueda realizar este avance cuando exista hueco en un enlace local apropiado; sin embargo, en la 30 práctica esto es frecuente, y se consigue así sortear los enlaces locales saturados. El mecanismo de encaminamiento propuesto, R, es del tipo R: C X N 1---+ P(C) , es
decir: el mecanismo de encaminamiento R se implementa como una función que, dado un paquete situado en un canal virtual e de un puerto de entrada de un encarninador dado, y para un nodo destino N, devuelve el conjunto de canales virtuales de los puertos de salida P(C) por los que puede avanzar el paquete. Así, R no especifica únicamente el puerto por el que puede salir un paquete, sino también el canal virtual por el que debe avanzar en el encaminador vecino si sale por dicho puerto. Para calcular las posibles rutas a seguir, R emplea la identificación del encaminador en curso (su índice Ej en la red y el grupo al que pertenece Gi ), el puerto y canal virtual en los que se encuentra el paquete (denominados puerto de entrada y canal virtual de entrada) así como la información de encaminamiento presente en los metadatos del paquete (el nodo de origen Norigen, que está conectado al encaminador Eorigen perteneciente al grupo de origen Gorigen; Y el nodo de destino Ndestino. conectado al encaminador Edestino en el grupo Gdestino). Esta información de encaminamiento puede aparecer de forma explícita en los metadatos del paquete, o bien pueden ser calculados (por ejemplo, si E y G se derivan matemáticamente a partir de N y de las propiedades de la red, como el número de nodos por encaminador, encaminadores por grupo, etc). Además, asumimos que el paquete dispone de unosflags o contadores para limitar la cantidad de veces que se puede hacer misrouting tanto local como global, y que existen unos límites al número de veces que se permite usar misrouting: Llocal-misrouting Y L.global-misrouting. L¡OCal-misrouting puede referirse al número de veces que se permite el misrouting local bien en toda la ruta del paquete, o bien por grupo. Aunque se podría generalizar, asumimos L.global-misrouting :;;:; 1, al igual que en todos los trabajos previos.
El mecanismo de encaminamiento propuesto R se puede expresar como la unión de tres subfunciones de encaminamiento separadas: R :;;:; RminURnon-minURlocal-misr. Cada uno de estos tres mecanismos devuelve un conjunto de puertos y canales virtuales de salida para un paquete en un nodo dado y un canal virtual dado, independientes de la ruta seguida previamente por el paquete. En general, para
,.
alcanzar su destino, el paquete puede seguir cualquiera de las rutas proporcionadas por el mecanismo de encaminamiento. Sin embargo, en [unción del estado de la red (ocupación de las colas o algún otro indicador), la lógica de los encaminadores puede seleccionar un subconjunto de opciones para conseguir el mejor rendimiento.
5 Nótese que en caso de emplear una topología de grafo completo (sin enlaces paralelos) tanto entre los encaminadores de un grupo como entre grupos, existe una única ruta mínima Rmino Sin embargo, si se han empleado enlaces adicionales para aprovechar puertos disponibles en los encaminadores, entonces dicha ruta no será
10 única.
El mecanismo propuesto R se define completamente si se definen cada una de sus tres componentes, lo que se hace a continuación. Se considera la siguiente tenninología: E¡ (encaminador en el que se encuentra el paquete), G¡ (grupo al que 15 pertenece el encaminador en el que se encuentra el paquete), Norigen (nodo origen), Eorigen (encaminador al que se encuentra conectado Norigen), Gorigen (grupo al que pertenece Eor¡gen), Ndestino (nodo destino), Edestino (encaminador al que se encuentra conectado Ndestino), Gdestino (grupo al que pertenece Edestino), Eout
(conjunto de encaminadores de Gi que disponen de un enlace global que conecta 20 directamente con Gdestino).
• Rmin se corresponde con el encaminamiento mínimo de un paquete desde Ei hasta Ndestino. Así, Rmin genera un conjunto de rutas (al menos una) de acuerdo a la primera de las siguientes condiciones que sea cierta:
25 a) Si El = Edestino. En este caso la ruta viene dada por el puerto que conecta a Ndestino. b) Si G¡ = Gdestino. En este caso, las rutas (al menos una) vienen dadas por el conjunto de puertos que conectan directamente Ei con Edestino. e) Si Ei tiene al menos un enlace global que lo conecta directamente con 30 Gdestino. En este caso las rutas (al menos una) vienen dadas por el
conjunto de puertos que conectan directamente con Gdestino
d) Si G¡ * Gorigen' Entonces Rmin comprende todas las rutas (al menos una)
que unen con Eaut.
e) Si G¡ = Gorigen' Rmin comprende todas las rutas (al menos una) que
5
unen con Eout• pero además se debe emplear explícitamente el canal
virtual veo.
El índice del canal virtual de la salida en los casos a)-d) depende del tipo de
puerto por el que se recibe el paquete (local o global) y por el que se tiene que
reenviar en cada encaminador por el que pase, así como del índice del canal
10
virtual en el que está el paquete en el puerto de entrada. Si ambos puertos
(entrada y salida) del encaminador en curso, son del mismo tipo (local-local o
global-global) el índice se aumenta en dos unidades; en otro caso, se aumenta
en una unidad.
15
• Rnon-min se corresponde con el encaminamiento no-mínimo de un paquete a
través de un grupo intennedio, sin misrouling locaL Rnon-min genera un
conjunto de rutas (al menos una) de acuerdo a la primera de las siguientes
condiciones que sea cierta:
f) Si G¡ '* Gorigen. Rnon-min devuelve el mismo resultado que Rmin.
20
g) Si Ei '* Eor¡gen Y Ei no dispone de un enlace global que le conecta
directamente con Gdestino. entonces el paquete puede salir por cualquiera
de los puertos globales de Ei. utilizando el canal virtual VCl.
h) En otro caso, o bien Ei = Eorigen o bien Ei '* Eorigen Y además dispone
de un enlace global que lo conecta directamente con Gdestino. En este
25
caso el paquete puede salir por cualquiera de los puertos locales de Ei
utilizando el canal virtual veo o por cualquiera de los puertos globales de
Ei utilizando el canal virtual VCl.
Se propone una implementación alternativa a la descrita en las reglas f), g) h),
30
que es más restrictiva en la generación de las rutas de Rnon-min con el
objetivo de balancear el tráfico saliente por los diferentes enlaces del grupo GOTigen a la vez que se minimiza la longitud de las rutas recorridas, de acuerdo a las siguientes reglas (alternativas a f)-h), nótese que i) coincide con 1): i) Si C¡ '* Corigen. Rnon-min devuelve el mismo conjunto de rutas que
Rmino
j) Si E¡ = Eorigen Y el paquete se encuentra en el puerto de inyección, el paquete puede salir por cualquiera de los enlaces globales de E¡ utilizando el canal virtual Vel.
k) Si E¡ no dispone de un enlace global que le conecta directamente con Gdestino, entonces el paquete puede salir por cualquiera de los pueMos globales de E" utilizando el canal virtual ve!.
1) Si E¡ sí dispone de un enlace global que le conecta directamente con Gdestino, enlOnceS el paquete puede salir por cualquiera de los puertos locales de Ei, utilizando el canal virtual veo.
• Rlocal-misr se corresponde con el misrouting local en el grupo destino o un grupo intennedio. En el grupo de origen, Rnon-min es el que permite realizar un misrouling (global, en dicho caso) cuando se detecta congestión. Rlocal-misr genera sus rutas de acuerdo a la primera de las siguientes condiciones que sea cierta: m) Si Ci = Cdestino' y además E¡ "* Edestino , Y la cuenta de misrou/ings locales del paquete es menor que L¡Ocal-misrouting, entonces Rlocal-misr comprende todos los enlaces locales de Ej. n) Si C¡ "* Gdestjno , C¡ "* Corigen, y además Ei no tiene un enlace global que conecta con Cdestino y la cuenta de misroutings locales del paquete es menor que Llocal-misrouting. entonces Rlocal-misr comprende todos los enlaces locales de Ei'
o) En otro caso, no se genera ninguna ruta. En ambos casos, el canal virtual utilizado es el mismo que el que contiene el
paquete en el puerto de entrada (si éste es de tipo local) o una unidad inferior (si es global).
A continuación se muestran algunos ejemplos de posibles rutas generadas por el mecanismo ilustradas en la figura 7.
La figura 7-a muestra una ruta desde EOriaen (O) hasta Edestino (D) en la que todos los saltos vienen dados por el encaminamiento mínimo (condiciones a-e). La figura 7-b muestra una ruta desde Eorigen (O) hasta Edestino (O). Estando un paquete en Eorigen, éste sale por uno de sus puertos locales devueltos por Rnon-min utilizando el canal virtual veo (condición h», 71. Seguidamente, en el encaminador 1 el paquete sale por uno de los puertos globales devueltos por Rnon-min, utilizando el canal virtual Ve1 (condición h», 72. A partir de ahí, el paquete se encamina por la ruta mínima hasta Edestino (condiciones a) a d». La figura 7·c muestra el encaminamiento desde Eorigen(O) hasta Eaestino (D) cuando se realiza un misrouling global 73 para un paquete que se encuentra en uno de los puertos de inyección de Eor¡gen (condición j). A partir de ahí. el paquete se encamina por la ruta mínima hasta Edestino (condiciones a) a d». La figura 7-d muestra una ruta desde Eorigen (O) hasta Edestino (O) en la que se realiza un salto local (no mínimo) previo a un misrouting global. Estando un paquete en Eorigen. éste sale por uno de los puertos locales 74 de Eorigen devueltos por Rmin utilizando el canal virtual veo (condición e». A continuación. estando el paquete en el encaminador 1, motivado por ejemplo por la congestión en el enlace global marcado por Rmin. el paquete sale por uno de sus puertos locales devueltos por Rnon-min 75. utilizando el canal virtual VCO (condición 1). Seguidamente, en el encaminador 2 el paquete sale por uno de los puertos globales devueltos por Rnon-min, utilizando el canal virtual VCI (condición k», 76. A partir de ahí, el paquete se encamina por la ruta mínima hasta Edestino. Nótese que los dos saltos locales 74 y 75 son t:!quivalentes a haber hecho un misrouJing local en el grupo de origen (previo a un salto global no mínimo), aunque la ruta haya sido generada por
Rmin YRnon-min' La figura 7-e muestra una ruta desde Eorigen (O) hasta Edestino (D). El paquete es encaminado del mismo modo que en la figura 7.d pero con un misrouting local adicional 77 en el grupo intermedio (condición n». La figura 7-[ muestra una ruta desde EOTigen (O) hasta Edestino (D). El paquete es encaminado del mismo modo que en la figura 7.e pero con un mjsrouling local adicional 78 en el grupo destino (condición m». La figura 7-g muestra el encaminamiento desde Eorigen (O) hasta Edestino (D). El paquete es encaminado del mismo modo que en la figura 7.b pero con un misrouling local adicional 79 en el grupo intermedio (condición n).
La figura 8 muestra el orden seguido en la secuencia de canales virtuales atravesados, en la que los bloques grises representan los encaminadores de la ruta. Las flechas continuas representan saltos con orden ascendente de canales virtuales, mientras que las flechas con trazo discontinuo representan aquellos saltos que violan dicho orden ascendente de canales virtuales. Se muestran tres ejemplos: a) una ruta que no emplea misrouting local (como la ruta de la figura 7-b) que sigue un orden estrictamente ascendente; b) una ruta que emplea un misrouJing local (como la ruta de la figura 7-g), donde los saltos correspondientes al misrouting local violan dicho orden estrictamente ascendente, mientras que el resto de saltos respeta tal orden~ c) una ruta que emplea varios misroutings locales (como la ruta de la figura 7-f), donde se emplean tres saltos locales que no incrementan el índice de canal virtual, manteniéndolo o decrementándolo respecto al salto anterior, mientras que el resto de saltos sí que incrementan el índice empleado.
El criterio de elección de una ruta concreta entre las diferentes permitidas por el mecanismo admite múltiples implementaciones. De forma no limitativa, éstas pueden basarse por ejemplo, en la asignación por parte de un allocaJor unificado, en los créditos disponibles por cada puerto de salida, o en contadores de contención sobre los puertos de salida. Algunas implementaciones se muestran en los ejemplos de aplicación 1 a 3.
El mecanismo de encaminamiento R == RminURnon-minUR/ocal-misr permite encaminar tráfico entre cualquier pareja de nodos origen y destino en ausencia de deadlock. Para demostrarlo, es suficiente demostrar que existe una subfunción de routing que es libre de deadlock, de acuerdo con William Dally y Brian Towles en PrincipIes and Practices ollnterconnection Network-s. Morgan Kaufmann Puhlishers lnc., San Francisco, CA, USA, 2003. En concreto, mostraremos que Rnon-min es capaz de encaminar cualquier paquete hasta el destino sin bloqueos. Para ello, se define inicialmente un invariante, que es una propiedad que pennanece constante en la red con cualquier movimiento que se realice. Se define entonces el siguiente invariante:
Invariante 1: Dado un paquete en un canal virtual Vei de un puerto de entrada de un encaminador o routcr, la suma de i (el índice dc su canal virtual) más su distancia hasta el encaminador de destino es siempre menor o igual que 4.
El invariante l se prueba de manera constructiva. De acuerdo a los casos e) y h) ó 1) se deduce que los enlaces locales de Gortgen solo pueden utilizarse por el canal veo, y de acuerdo a los casos e), y g) y h) ó j) y k), resulta que los paquetes solo pueden salir del grupo de origen a través del canal Vel de un enlace global. De manera similar, si se atraviesa un grupo intermedio, de acuerdo con d), f) ó i) y n) resulta que solo se pueden utilizar los enlaces locales de índice veo para el misrouling local y Ve2 para llegar a Eout , Y por tanto, de acuerdo con c) y t) ó i), resulta que los paquetes pueden utilizar Vel ó Ve3 para atravesar el enlace global con el que llegan al grupo de destino. Finalmente, en el grupo de destino de acuerdo con b), f) o m) los paquetes pueden utilizar cualquier cana] virtual de los enlaces locales (VeO, VC2 o VC4) para llegar al encaminador de destino, en donde se consume el paquete.
Basta entonces considerar que el diámetro de la Dragonfly es 3 y las distancias hasta el destino para comprobar que el invariante es cierto. Consideremos un paquete en un puerto de entrada de un encaminador E¡ en un grupo Gi '* Gdest¡no' Entonces, si el encaminador está directamente conectado a Gdestino, a lo sumo se habrá llegado por el canal virtual VC2, y su distancia a Edestino será a lo sumo 2 (por los dos saltos, global -local, que le separan del destino). En cualquier otro encaminador de G¡ la distancia hasta Edestino será 3, pero el paquete estará en un canal virtual de entrada veo (si el puerto es local) o Vel (si es global). Por otra parte, en el grupo de destino Edestino es el único encaminador que puede alcanzarse por el canal virtual VC4; los demás encaminadores están a distancia 1 de Edestino Y se alcanzan, a lo sumo, por el canal virtual Ve3, por lo que en todos los casos se mantiene el invariante l.
A partir del invariante 1 se puede demostrar la ausencia de deadlock. Una función de routing R: e x N .......... P(C) es libre de deadlock si contiene una subfunción de routing, en este caso Rnon-min. que es conexa y sin ciclos en el grafo extendido de dependencias. Rnon-min es conexa ya que permite encaminar cualquier paquete hasta el destino gracias al invariante 1: siempre existe una ruta ya que un paquete nunca está en un canal virtual demasiado alto para no poder llegar al destino. Por otra parte, cuando el modelo se usa bajo control de flujo virtual cut-through, el grafo de dependencias extendido se reduce al grafo de dependencias; y dado que las relaciones a) -d) Y g) -h) (o j) -1) ) definen un recorrido estrictamente creciente de los índices de los canales virtuales, entonces no existen ciclos.
Además de esta implementación para control de flujo Virtual Cut-through, bajo ciertas condiciones que se explican a continuación el mecanismo es aplicable a redes con control de flujo wormhole. Los saltos que violan el orden estrictamente ascendente de canales virtuales generan dependencias extendidas entre los canales involucrados. En el caso mostrado en la figura 8 b), un paquete puede quedarse parado repartido entre los canales virtuales veo en los encaminadores marcados como 1 y 3, Y el Vel en el encaminador 2. Por tanto, el paquete está ocupando el canal virtual Ve! de un encaminador, por lo que puede estar parando a otro paquete que se encuentre en el veo de otro encaminador; por ello, aparece una dependencia circular que puede bloquear la red. Para evitar dicho bloqueo, es suficiente emplear control de flujo ver solo en los canales virtuales locales que pueden ser el destino de un misrouting local (VeO y Ve2 únicamente), exigiendo que haya hueco para el paquete completo antes de permitir el misrouting Jacal. De esta manera, el mecanismo propuesto puede funcionar en wormhole en el caso general en que se sigue un orden ascendente en los índices de canal virtual empleado~ y permitiendo el rnisrouting local solo si existe hueco para el paquete completo en el buffer de destino. Evidentemente, para emplear este mecanismo es necesario que los butTeres
5 correspondientes al misrouting local (al menos, VeO) tengan capacidad para el tamaño máximo del paquete. Por tanto, dicha implementación permite reducir el tamaño total de los bufferes de la red, ya que solo se precisa hueco para el paquete completo en un único buffer.
A continuación se listan algunos ejemplos de aplicación del mecanismo propuesto en 10 diferentes implementaciones para mejor comprensión de su funcionamiento.
Ejemplo de aplicación 1: En este ejemplo de aplicación se considera una red con una topología Dragonfly en la que el arbitraje de los encaminadores está implementado mediante un al/ocalor ("asignador") no separable (es decir, unificado). Esta configuración aprovecha el misrouting local y el encaminamiento en
15 tránsilo, pero tiene el problema de no favorecer el aprovechamiento de rutas cortas para reducir la latencia y aumentar el throughput.
Ejemplo de aplicación 2: En este ejemplo de aplicación se considera una red con topología Dragonfiy en la que cada encaminador utiliza un asignador del tipo dividido (o separable). La selección de la ruta es crítica para conseguir un buen 20 rendimiento. En general, es recomendable que las rutas sean lo más cortas posibles para reducir la carga de tráfico en la red. Sin embargo, en situaciones de saturación de los enlaces correspondientes a las rutas mínimas, resulta más interesante tomar una ruta más larga que sortee el enlace saturado. Por ello, debe existir una lógica que seleccione entre una de las rutas mínimas proporcionadas por Rmfn, o una rula no25 mínima proporcionada por Rnon-min o Rtocat-misr' Una implementación posible es comparar la ocupación de los bufferes: Si la ocupación de la cola mínima seleccionada supera un cierto umbral, entonces se permite la elección de una salida no-mínima cuya ocupación sea inferior a la de la cola mínima seleccionada escalada por un factor de ajuste. Si no existe ninguna cola no-mínima disponible, o bien la
ocupación de la cola mínima sleccionada es inferior al umbral fijado, entonces se utiliza la ruta mínima seleccionada de entre aquellas rutas fijadas por Rmin' Esta decisión se repite en cada ciclo en que el paquete siga esperando, porque el asignador no le asignó la salida elegida en el ciclo de arbitraje anterior.
Ejemplo de aplicación 3: Al igual que en el ejemplo 2, se emplea una topología Dragonfly con encaminadores con asignador separable. Para seleccionar la ruta mínima o no-mínima en cada salto, se emplea la siguiente estrategia. Existe un "contador de contención" por cada puerto de salida. Cuando se calculan las rutas para un paquete de un puerto de entrada (bien al entrar en la cola, o bien cuando alcanza la cabecera de dicha cola de entrada), se incrementa el contador de contención correspondiente a la salida mínima seleccionada, de entre aquellas indicadas por Rmin. Dicho contador se vuelve a decrementar cuando el paquete consigue avanzar y salir completamente del nodo. La lógica de encaminamiento utiliza los contadores de contención (opcionalmente, junto con el estado de ocupación de las colas) para seleccionar en cada encaminador entre una de las rutas mínimas indicadas por Rmin o una de las rutas indicadas por Rnon-min o
Rtocal-misr' Un modelo concreto podría utilizar un umbral estático a partir del cual, si la ruta mínima seleccionada tiene más contención, se selecciona una ruta nomínima al azar. Otro modelo concreto podría comparar la contención del contador de la ruta mínima seleccionada con el promedio de todos los contadores del encaminador para tomar esta decisión.

Claims (11)

  1. REIVINDICACIONES
    l. Un método de encaminamiento de paquetes en una red directa jerárquica formada por una pluralidad de encaminadores, cada uno de ellos con una pluralidad de puertos de tipo local y una pluralidad de puertos de tipo global, donde cada uno de dichos puertos comprende una pluralidad de canales virtuales, donde dichos encaminadores forman grupos, donde los diferentes encaminadores de un mismo grupo están interconectados mediante una topología conexa empleando enlaces de tipo local uniendo parejas de puertos de tipo local, y a su vez los diferentes grupos están interconectados mediante una topología conexa empleando enlaces de tipo global uniendo parejas de puertos de tipo global, estando el método configurado para emplear saltos por dichos enlaces de acuerdo a rutas mínimas y no mínimas, donde los saltos que implican rutas no mínimas pueden realizarse tanto a través de enlaces globales como locales,
    estando el método caracterizado por que el número de canales virtuales necesarios en cada puerto local y global viene determinado solamente por la longitud de una ruta máxima pennitida que no emplea misroUling de tipo local, empleando para ello un orden total en el recorrido de los canales virtuales, que se viola cuando se realiza un misrouting local.
  2. 2.
    El método de la reivindicación 1, donde la conexión entre los diferentes encaminadores de un mismo grupo se realiza de acuerdo a un grafo completo, y la conexión entre los diferentes grupos también se realiza de acuerdo a un grafo completo, y cada puerto local comprende solo 3 canales virtuales y cada puerto global comprende solo 2 canales virtuales.
  3. 2.
  4. 3.
    El método de cualquiera de las reivindicaciones anteriores, donde para cada paquete situado en un canal virtual de un puerto de un encaminador, comprende:
    -
    calcular al menos un salto de acuerdo a un encaminamiento mínimo entre el encaminador en que se encuentra dicho paquete y el encaminador al que está conectado el nodo al que dicho paquete está dirigido;
    -
    calcular al menos un salto de acuerdo a un encaminamiento no-mínimo que comprende un misrouting global, a través de un grupo de encaminadores intermedio diferente del grupo al que pertenecen el encaminador de origen y el encaminador al que está conectado el nodo destino del paquete;
    -
    calcular, si no se ha alcanzado un deternlinado límite de misrouting locales y el encaminamiento mínimo ha calculado saltos de tipo local, al menos un salto local nomínimo diferente a dichos saltos calculados mediante el encaminamiento mínimo;
    -
    seleccionar uno de dichos saltos en función de un determinado criterio.
  5. 4.
    El método de la reivindicación 3, que emplea un asignador unificado en cada encaminador para llevar a cabo la selección de uno de dichos saltos para que avance un paquete.
  6. 5.
    El método de la reivindicación 3, seleccionándose una ruta para cada paquete en cada ciclo de arbitraje mediante una comparación de la ocupación del canal virtual de entrada en el siguiente encaminador correspondiente a una ruta mínima seleccionada, frente a la ocupación de los canales virtuales de entrada de los encaminadores correspondientes a otras rutas.
  7. 6.
    El método de la reivindicación 3, seleccionándose una ruta para cada paquete en cada ciclo de arbitraje mediante una comparación de los valores de una pluralidad de contadores de contención, existiendo tantos contadores como puertos de salida tiene el encaminador, registrando dichos contadores el número de paquetes de los puertos de entrada cuya ruta mínima avanza por el puerto de salida correspondiente.
  8. 7.
    El método de la reivindicación 3, seleccionándose una ruta para cada paquete en cada ciclo de arbitraje de acuerdo a una combinación tanto de la información obtenida de la ocupación de los canales virtuales de entrada de los encaminadores vecinos como de una pluralidad de contadores de contención, registrando dichos
    5 contadores el número de paquetes de los puertos de entrada cuya ruta mínima avanza por el puerto de salida correspondiente.
  9. 8.-El método de cualquiera de las reivindicaciones anteriores, en el que se emplea
    control de flujo de agujero de gusano o wormhole en todos los saltos en que se
    respeta el orden total establecido para los canales virtuales, y control de flujo de paso
    10 a través o virtual cUl-lhrough en los saltos en que se hace un misrouting local que viola dicho orden total, permitiendo que todos los canales virtuales tengan un tamaño inferior al tamaño máximo del paquete menos los correspondientes al primer canal virtual.
  10. 9.-El método de cualquiera de las reivindicaciones anteriores, donde dicho orden 15 total puede ser un orden ascendente o un orden descendente.
  11. 10.-Una red directa jerárquica formada por una pluralidad de encaminadores, cada uno de ellos con una pluralidad de puertos de tipo local y una pluralidad de puertos de tipo global, donde cada uno de dichos puertos comprende una pluralidad de canales virtuales, donde dichos encaminadores forman grupos, donde los diferentes 20 encaminadores de un mismo grupo están interconectados mediante una topología conexa empleando enlaces de tipo local uniendo parejas de puertos de tipo local, y a su vez los diferentes grupos están interconectados mediante una topología conexa empleando enlaces de tipo global uniendo parejas de puertos de tipo global, estando dicha red directa jerárquica caracterizada por que comprende medios para llevar a
    25 cabo el método según cualquiera de las reivindicaciones de la 1 a la 9.
ES201200715A 2012-07-05 2012-07-05 Método de encaminamiento adaptativo en redes jerárquicas Expired - Fee Related ES2395955B2 (es)

Priority Applications (2)

Application Number Priority Date Filing Date Title
ES201200715A ES2395955B2 (es) 2012-07-05 2012-07-05 Método de encaminamiento adaptativo en redes jerárquicas
PCT/ES2013/000167 WO2014006242A1 (es) 2012-07-05 2013-07-05 Método de encaminamiento adaptativo en redes jerárquicas

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
ES201200715A ES2395955B2 (es) 2012-07-05 2012-07-05 Método de encaminamiento adaptativo en redes jerárquicas

Publications (3)

Publication Number Publication Date
ES2395955A1 ES2395955A1 (es) 2013-02-18
ES2395955A8 ES2395955A8 (es) 2013-03-22
ES2395955B2 true ES2395955B2 (es) 2014-01-22

Family

ID=47625614

Family Applications (1)

Application Number Title Priority Date Filing Date
ES201200715A Expired - Fee Related ES2395955B2 (es) 2012-07-05 2012-07-05 Método de encaminamiento adaptativo en redes jerárquicas

Country Status (2)

Country Link
ES (1) ES2395955B2 (es)
WO (1) WO2014006242A1 (es)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113748648A (zh) * 2019-05-23 2021-12-03 慧与发展有限责任合伙企业 权重路由

Also Published As

Publication number Publication date
ES2395955A1 (es) 2013-02-18
WO2014006242A1 (es) 2014-01-09
ES2395955A8 (es) 2013-03-22
WO2014006242A8 (es) 2014-03-06

Similar Documents

Publication Publication Date Title
García et al. Efficient routing mechanisms for dragonfly networks
Kumar et al. Token flow control
Ebrahimi et al. Minimal-path fault-tolerant approach using connection-retaining structure in networks-on-chip
Ebrahimi et al. MAFA: Adaptive fault-tolerant routing algorithm for networks-on-chip
US9450888B2 (en) Providing a bufferless transport method for multi-dimensional mesh topology
Kim et al. Router microarchitecture and scalability of ring topology in on-chip networks
Ahmed et al. Deadlock-recovery support for fault-tolerant routing algorithms in 3d-noc architectures
Wang et al. Bubble coloring: Avoiding routing-and protocol-induced deadlocks with minimal virtual channel requirement
Sancho et al. Effective methodology for deadlock-free minimal routing in InfiniBand networks
Holsmark et al. Deadlock free routing algorithms for irregular mesh topology NoC systems with rectangular regions
ES2395955B2 (es) Método de encaminamiento adaptativo en redes jerárquicas
Daya et al. Towards high-performance bufferless nocs with scepter
Kim et al. Transportation-network-inspired network-on-chip
Nitin et al. On a deadlock and performance analysis of ALBR and DAR algorithm on X-Torus topology by optimal utilization of Cross Links and minimal lookups
Cheng et al. Packet pump: Overcoming network bottleneck in on-chip interconnects for GPGPUs
Touati et al. Reliable routing schemes in 3D network on chip
García et al. Global misrouting policies in two-level hierarchical networks
Ebrahimi et al. Partitioning methods for unicast/multicast traffic in 3D NoC architecture
Charif et al. MUGEN: A high-performance fault-tolerant routing algorithm for unreliable Networks-on-Chip
Ghidini et al. Topological impact on latency and throughput: 2D versus 3D NoC comparison
US9491102B1 (en) Traffic load balancing in a multi-connect topology
Kim et al. Design and analysis of hybrid flow control for hierarchical ring network-on-chip
Bahrebar et al. Adaptive multicast routing method for 3D mesh-based Networks-on-Chip
Daneshtalab Exploring adaptive implementation of on-chip networks
Chen et al. Enabling vertical wormhole switching in 3D NoC-Bus hybrid systems

Legal Events

Date Code Title Description
FG2A Definitive protection

Ref document number: 2395955

Country of ref document: ES

Kind code of ref document: B2

Effective date: 20140122

FD2A Announcement of lapse in spain

Effective date: 20220826