Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
ES2395955B2 - Adaptive routing method in hierarchical networks - Google Patents
[go: Go Back, main page]

ES2395955B2 - Adaptive routing method in hierarchical networks - Google Patents

Adaptive routing method in hierarchical networks 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
Spanish (es)
Other versions
ES2395955A1 (en
ES2395955A8 (en
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/en
Publication of ES2395955A1 publication Critical patent/ES2395955A1/en
Publication of ES2395955A8 publication Critical patent/ES2395955A8/en
Priority to PCT/ES2013/000167 priority patent/WO2014006242A1/en
Application granted granted Critical
Publication of ES2395955B2 publication Critical patent/ES2395955B2/en
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.Method of routing packets in a hierarchical direct network consisting of a plurality of routers, each with local type ports and global type ports; each port comprises a plurality of virtual channels; said routers form groups, where the different routers of the same group are interconnected by means of a connected topology using local type links joining pairs of local type ports, and the different groups are interconnected by a related topology using global type links joining pairs of Global type ports. The method is configured to employ jumps over said links according to minimum and non-minimum routes; jumps that involve non-minimal routes can be done both through global and local links. The number of virtual channels required in each local and global port is determined only by the length of a maximum allowed route that does not use local-type misrouting, using a total order in the virtual channel path, which is violated when perform a local misrouting.

Description

MÉTODO DE ENCAMINAMIENTO ADAPTATIVO EN REDES .JERÁRQUICAS ADAPTIVE ROADING METHOD IN NETWORKS.

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). FIELD OF THE INVENTION 5 The present invention belongs to the field of communication networks ~ more specifically, it is especially applicable to the field of interconnection networks for parallel computers (multiprocessors or multicomputers).

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. BACKGROUND OF THE INVENTION 10 In a communications network based on packet switching, a series of clients (or compute nodes) communicate with each other by exchanging messages; Each of these messages is divided into one or more packets, which constitute the basic switching unit in the network. Each package has an origin client and one or multiple destination clients (the latter, in the case of mullicast packages). Broadly speaking, network 15 is composed of a series of routers (also known as switches, or roUlers or switches according to the English terms) that are the active elements of the network. These routers are linked through communications links, that is, cables through which electrical or optical signals are sent that carry the packets of the network. Each client connects through its network interface to one or more routers using the corresponding link (s), and in turn the routers connect to each other through other links. A router has multiple ports, to which the corresponding links are connected to other routers or clients. Customers send packets to routers, which are responsible for transporting them from one router to another until they reach the destination customer. The topology of the network is a mathematical description of the network in which the different routers and clients of the network are connected.

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, For communication to be possible, a router must be able to receive each packet that arrives through a certain port of entry, store it temporarily,

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. process it to determine the route to follow, and forward it through the corresponding exit port. For all this, the routers 10 usually have an internal structure similar to the scheme presented in Figure 1. Each Pin input port has an associated input speed ti with one or more memories (also called spark plugs or tails) 12 in which they store data corresponding to the packets that are received by that pine port These multiple buffers 12 are usually used to separate different packets according to their priority, type, or according to a block avoidance policy (as explained below). The packets stored in buffers 12 share the same physical link and input port to the switch; Therefore, when there are several of these buffers 12, they are usually called virtuous eanaJes or "buffer classes". There is a routing logic that is responsible for determining by which Pool output port it is appropriate to resend each packet of the virtual input channels 12, and if any, in which of the virtual channels of the input port of the next router you must enter the package. In turn, each port of saJida pout may or may not have a certain memory to store the packets that have to exit through that port. The connection between the buffers 12 of the pi "input ports and the Poul output ports is typically made by a crossbar 13 (sometimes translated as a cross matrix) that can join in each corunutation cycle any pairs of input buffer and Outbound port, one to each. Each pair of inbound and outbound ports is connected with a single bidirectional link. An allocator ("allocator '~) regulates the use of shared resources. Multiple packets may request the same output port, but only one of them is granted at a time. A C'allocator ") allocator may be of a split (ie separable) or non-divided (ie unified) type. In the event that arbitration over shared resources is implemented through a non-separable allocator, according to William Dally and Brian Towles in Principies and Practices o / lnterconnection Networks Morgan Kaufmann Publishers Inc., San Francisco, CA, USA, 2003, the allocator allocates the P OIII output ports based on all possible routes it can follow each package in a pine input port To do this, the set of routes (POOl output ports and virtual channel) through which it can exit is calculated for each package, and all those in which there is enough room for the space are passed to the allocator package, then the allocator searches for the allocation of outputs to each package that maxImIce the router throughput in case the arbitration is implemented by a split allocator, according to William Dally and Brian Towles in P rincipIes and Practices ollnterconnection Nelworks. Morgan Kaufrnann Publishers Inc., San Francisco, CA, USA, 2003, each Pin input port chooses one of the virtual channels that have a package ready to go forward (for example, through a round-robin policy), and the package decides, among all the possible routes proJX) driven by the routing logic, the one that most interests you. Then, the selected route is passed to the mapper, which assigns the pout output ports to the applicants. In order to send data from a packet through an output port without loss of data, it is necessary that there is sufficient storage space in the buffer, queue or virtual channel 12 of the corresponding Pin input port of the next switch or router. There are two typical flow control mechanisms to manage this space in the input buffer of the following router: virtual cUI-through (Ve1) (sometimes called pass-through in Spanish) pennite the advance of W1 packet only if there is space available for store it complete; wormhole (WH) (wormhole routing, although the name in Spanish is not usually used) divides the enflits packages (flow control digit, in Spanish flow control unit), and allows as many jlits to advance as there is a gap in the following buffer. Thus, WH allows a packet to stand on the network occupying two or more virtual channels or input buffers of different consecutive routers. In fact, VCT requires that virtual buffers or channels have a capacity equal to or greater than the maximum size of a package while WH only requires that they have capacity for one or more flits. In this way, WH is usually used in environments where the area of the chip or energy consumption (generated by these buffers) is critical, such as networks within the chip. However, in system networks, it is common to use VCT as its implementation is easier. In either case, if there is not enough space in the next buffer or virtual channel, it is typically necessary to wait for the data in said buffer to advance to its destination, and space is freed. In this case, it is said that there is a dependency between one switch and the next.

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. In a network, interlocking (usually called deadJock according to the English language, or simply blocking) is the situation in which no packet of a given set of packets cannot move towards its destination because a cyclic dependence occurs between the resources requested for Implement this progress. For example, each packet is occupying a hole in a router's queue W13, and in order to move forward it needs to be released a hole in the corresponding tail of the next router, which in turn is waiting for a hole in a third router to be released. , etc., at the end of the day a cycle of full queues in which none of the packages can advance and a gap is never released. This situation is critical for a network, since it causes a complete shutdown of its operation that cannot be exited. To avoid this problem of deadlock, different techniques have been developed, which either detect and solve this situation (for example, discarding any of the packages that make up the cyclic dependence and releasing its "hole" in the buffer) or they do not allow it to be reached (for example, through restrictions on the routing of packets on the network that do not allow cyclic dependencies to be generated). The first techniques are called blocking resolution, and they are more frequent in networks with losses, which are those that are unreliable and do not guarantee the delivery of data at the destination (such as Ethernet). On the other hand, the techniques of the second type are called block avoidance, and are preferable in networks without losses since they do not require the retransmission of the data. The mechanisms to avoid blockages are in many cases closely related to the network topology, the flow control mechanism (VCT or WH), and the use of the different virtual channels of each input port.

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 A recently proposed topology for use in high-scale systems interconnection networks is called Dragonjly, described in US patent application US201O / 0049942 Al and in Technology-driven, highly-scalable dragonfiy topology published in ISeA '08: Proceedings 01 he 35th Annual Internalional Symposium on Computer Architeclure, pages 77-88, 2008, by John Kim et al., Or direct hierarchical network, described by B. Arimilli el al. in 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. lnterconnects (Hot lnterconnects 2010). IEEE, Aug. 2010. A specific case of this topology is shown in Figure 2. The general idea of this topology is to use routers 20 of high number of ports linked in "groups" 21. In the example shown in Figure 2 each Group 21 is made up of the same number of routers 20, but it doesn't have to be that way. Globally, all groups 21 are linked together. with a single link between each pair of groups, according to what is called a complete graph topology. Figure 2 shows in broken lines the global links 22. Locally, the switches of each group are also connected to each other, typically also with a complete graph topology with a single link between each pair of switches. Figure 2 shows in a continuous line the local links 23. Therefore, a group 21 is formed by a set of nearby corunators or routers 20 and by the clients of the system that are connected to them (nodes 24). All this is typically located in the same cabinet or several neighboring cabinets. The links that link corunitors of different groups are called global links 22 and typically employ optical technology, due to their greater length. The links between the switches in a group are called local links 23, and can use electrical technology due to their shorter length.

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 The routing mechanism of the network is what determines the route that packets follow from a source node (or, equivalently, from a source switch) to a destination node (or switch). The mechanism of encanunamiento proposed for these networks in the pennite bibliography two types of routes: i) The minimum route, which uses the only shortest route between any pair of origin and destination routers. Considering the complete graph topologies both at the local level of the groups and globally, the minimum route crosses 10 sumo three links: local -global -local. An example of a minimum route is shown in Figure 3, in which to pack a packet from the originator "O" to the destination router '' 'D' 'the packet takes a first local jump 23-1 followed by a jump global 22-1 and a second local jump 23-2. ii) A non-minimum route, or Valiant route, as described by L. G. Valiant in A scheme foc fast parallel communication. Journal on Computing, 11 (2): 350-361, 1982, in which the package is first sent to an intermediate group (different from the origin group

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". and destination) to balance traffic, using up to two links, local and global, and from there to the destination, using the minimum route. Therefore ~ this mechanism allows routes of maximum length 5: local -global -local -global -local. This non-minimum routing makes sense when the overall link of the corresponding minimum route is saturated, since although more links in the network are traversed, the saturated link is drawn. This routing is depicted in the example of Figure 4, in which the sequence of routers traversed is routed to route a packet from the originating router "O" to the destination router "D": The packet, which is located in a router origin "O" that belongs to a group origin Co gives a first local hop 43-1 to a router ")" of the same origin group Ca. Next, a first global jump 42-1 takes place to a node "2" belonging to an intermediate group G /. Then the package travels a second local road 43-2 until it reaches a router "3" of the same group G /. Then the packet follows a second global jump 42-2 to a router "4" belonging to the destination group GD. Finally the packet takes a local path 43-3 to the destination node "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. In the general case, it is desirable that the routing be adapted to the circumstances of network occupation through an adaptive mechanism that selects between a minimum or non-minimum route depending on the state of the network links. The problem with these mechanisms is that, in order to make the decision to use the minimum route or a name in the router or source router, they need information on the state of the global link of the minimum route that is not necessarily connected to this source router, as in the examples of figures 3 and 4. Therefore, this decision must be made by estimating the state of the network from remote information. Among these mechanisms are, for example, UGAL, Piggybacking (PB), Credit RoundTrip Time (CRT) or Reservation (RES) proposed by Nan Jiang et al. in Indieect adaptive routing on large scale interconnection networks in ISCA '09: Proceedings 01 (he 36th annual International Symposium on Compuler Architeclure, pages 220-231, 2009 And by John Kim et al. in the aforementioned Technology-driven, highly scalable dragonfly topology In A '08: Proceedings 01the 35th annual International Symposium on Compuler Architecture, pages 77-88, 2008. The Progressive Adaptive Routing (PAR) mechanism, introduced by Nan Jiang al., Allows when a minimum route is chosen, after the first step, change to a non-minimum route starting at the current router (the second of the minimum route) and using the local information of the current router.This mechanism with traffic adaptability is interesting because it allows you to adapt the routing more fast in the presence of network traffic changes, but at the expense of longer maximum routes since it allows an additional first local jump.

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 •. The fact of making a jump through a network link that does not bring the packet to its final destination is technically called misrouting. In the previous case of non-minimum routing, the first global jump 42-1 (between routers numbered as' '' 1 '' and "2") is a global misrouting ~ that is used to circumvent a saturated global link. This saturation of global links can be consistent in a DragonfIy topology, since there is a single global link between each pair of groups, with multiple nodes in each group. When the nodes of these groups communicate with each other, the only global link that unites them tends to become saturated, and by misrouting this link can be avoided at the cost of going through a randomly intentional group. Note that, depending on the chosen group, a first local jump may be required prior to global misrouting (in Figure 4, local jump 43-1 between the routers numbered "O" and "1"). Similarly, a local misrouting is defined as a jump through a local link (therefore, it does not leave the group in which the package is located) that does not bring the package closer to its destination. The local misroUling aims to circumvent saturated local links within a group. European patent application EP2451127AI suggests the use of local misrouting in any group of the package route. Figure 5 shows an example of a non-minimal route, with a global misrouting 52-1 followed by a local misrouting 53-1 in the G • group.

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. The block avoidance mechanism proposed for this Dragonfly topology in Technology-driven, highly-scalable dragonfly topology in ¡SeA '08: Proceedings oJ the 35th annual Internalional Symposium a Computer Architecture, pages 77-88, 2008, by John Kim el al . and in B. Arimilli el al. in The PERCS High-Performance Interconnect in Proceedings 01 18th Symposium on High-Performance Interconnecls (Ho! Inlerconnects 2010). IEEE, Aug. 2010, is based on an original technique proposed by K. Günther in Prevention ofdeadlocks in packet-switched data transport systems in Communications. IEEE Transactions on, 29 (4): 512-524, April 1981. This mechanism prevents the occurrence of blockages based on the orderly use of so many virtual channels (Virtual Channels, Ves) in the router's input ports such as the length in jumps of the longest route pennitida in the network. The key idea is that every time a router resends a packet, the virtual channel index used for it increases. In other words, a total order relationship is imposed in the use of network resources, in this case the virtual channels in each of the different ports of entry of the different routers. This prevents interlock or deadlock, which can be demonstrated intuitively recursively: Packages in the virtual channel with the highest index are not blocked, because they are going to get used up; packets in a certain virtual channel are not blocked, because they will either be consigned, or they depend on the immediately superior that is free from blocking.

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 The problem with this implementation is that, in general, it requires a high number of virtual channels, which translates into a high area of silicon and a greater complexity of router design. If the nominal routing is allowed with a local -global -local -global -local route as shown in Figure 4, then 5 virtual channels are required, called I see VC4. However, by coinciding that each jump in the route always runs the same type of link, local in the case of odd jumps and global in pairs, the router implementation can be done with only 3 times in local ports and 2 You see in the global. In the case that a package follows a shorter route, it is enough to skip the channels corresponding to the jumps that do not appear in the route. In the case of using the PAR routing, introduced by Nao Jiang et al., As it allows routes of length 6, one more time is necessary, specifically in the local ports (in total, 4 local times and 2 global times). The interest that the routing mechanism allows local misrouling has been argued. However, it is clear that

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 This misrouting lengthens the maximum route allowed on the network, and therefore increases, according to the previous block avoidance mechanism, the number of virtual channels required. If the number of local misroutings is not restricted, an unlimited number of virtual channels are required with the previous mechanism, which is clearly

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. 5 not implementable. Specifically, if it is limited to a maximum of one local misrouting for each group that crosses the package, the route will be extended by up to three local jumps (for the three groups that the package can go through: origin, intent and destination) which would give place 6 times for local links and 2 times for global ones.

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 10 In summary, there is no known routing mechanism in the state of the art that pennita the use of local misrou / ings, with complete adaptability in transit without restricting the routing and without employing a high number of virtual channels. If there is, such a mechanism would be very desirable, since it would allow to obtain a high performance (due to the local misrouting that allows to overcome saturated local links),

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. 15 would quickly adapt to changes in the type of traffic (due to the adaptability in transit), it would use the network resources in a balanced way because of the complete adaptivity and would not use additional resources.

20 RESUMEN DE LA INVENCIÓN 20 SUMMARY OF THE INVENTION

La presente invención trata de resolver los inconvenientes mencionados anteriormente mediante un método de encaminamiento para redes directas jerárquicas. The present invention seeks to solve the aforementioned drawbacks by a routing method for direct hierarchical networks.

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 Specifically, in a first aspect of the present invention, a packet routing method is provided in a hierarchical direct network formed by a plurality of routers, each with a plurality of local type ports and a plurality of type ports. global, where each of the ports comprises a plurality of virtual channels, and where the routers form

30 grupos, donde los diferentes encaminadores de un mismo grupo están 30 groups, where the different routers of the same group are

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 interconnected by a connected topology using local type links joining pairs of local type ports, and in turn the different groups are interconnected by a connected topology using global type links joining pairs of global type ports. The method is configured to employ 5 jumps for these links according to minimum and non-minimum routes, where jumps involving non-minimum rollers can be performed both through global and local links. In addition, the number of virtual channels needed in each local and global port is determined only by the length of a maximum allowed route that does not use misrouJing of local type, using a total order

10 en el recorrido de los canales virtuales, que se viola cuando se realiza un misrouting local. 10 in the virtual channels route, which is violated when a local misrouting is performed.

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 In a particular embodiment, the connection between the different routers of the same group is made according to a complete graph, and the connection between the

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. 1 5 different groups are also performed according to a complete graph, and each local port comprises only 3 virtual channels and each global port comprises only 2 virtual channels.

En una realización particular, para cada paquete situado en un canal virtual de un 20 puerto de un encaminador, el método comprende: In a particular embodiment, for each packet located in a virtual channel of a router's port 20, the method comprises:

--
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; calculate at least one hop according to a minimum routing between the router in which said packet is located and the router to which the node to which said packet is directed is connected;

--
calcular al menos un salto de acuerdo a un encaminamiento no-mínimo que calculate at least one jump according to a non-minimum routing that

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; 25 comprises a global misrouting, through an intermediate router group different from the group to which the originating router and the router to which the destination node of the packet is connected;

--
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; calculate, if a local misrouting boundary limit has not been reached and the minimum routing has calculated local-type breaks, at least one minimum local hop 00 different from those jumps calculated by the minimum routing;

--
seleccionar uno de dichos saltos en función de un detenninado criterio. select one of these jumps based on a determined criteria.

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. In the previous embodiment, the method may employ a unified allocator at each router to carry out the selection of one of said jumps to advance a packet.

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. Alternatively, a route is selected for each packet in each arbitration cycle by comparing the occupancy of the virtual input channel on the next router corresponding to a selected minimum route, versus the occupancy of the virtual input channels of the corresponding routers. to other routes.

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. Alternatively, a route is selected for each packet in each arbitration cycle by comparing the values of a plurality of containment counters, there being as many counters as output ports the router has, said counters registering the number of packets of the ports of entry whose minimum route advances through the corresponding exit port.

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. Alternatively, a route is selected for each packet in each arbitration cycle according to a combination of both the information obtained from the occupation of the virtual input channels of the neighboring routers and a plurality of containment counters ~ registering said counters the number of packets of the input ports whose minimum route advances through the corresponding output port.

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 In another particular embodiment, wormhole flow control is used in all the jumps in which the total order established for the virtual channels is respected, and cUI-through virtual flow control in the jumps in which a local misrouling is made that violates said order. total, allowing all virtual channels to have a size

inferior al tamaño máximo del paquete menoS los correspondientes al primer canal virtual. less than the maximum size of the menoS package corresponding to the first virtual channel.

En otra realización particular, el orden total puede ser un orden ascendente o un orden descendente. In another particular embodiment, the total order may be an ascending order or a descending order.

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 In another aspect of the invention, a hierarchical direct network is provided formed by a plurality of routers, each with a plurality of local type ports and a plurality of global type ports, where each of the ports comprises a plurality of virtual channels, where routers form groups, where different routers of the same group are

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. 10 interconnected by means of a connected topology using local type links joining pairs of local type ports, and in turn the different groups are interconnected by a connected topography using global type links joining pairs of global type ports. The direct hierarchical network comprises means to carry out the above method.

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. 15 As can be seen, this method of routing pennite avoidance of blockages, adaptability in transit and the use of local misrouting, without requiring more than the 3 local times and the 2 global VCs required in routing mechanisms of the prior art.

20 Otras ventajas de la invención se harán evidentes en la descripción siguiente. Other advantages of the invention will become apparent in the following description.

BREVE DESCRIPCIÓN DE LAS FIGURAS BRIEF DESCRIPTION OF THE FIGURES

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: In order to help a better understanding of the features of the invention, according to a preferred example of practical realization thereof, and to complement this description, a set of drawings is attached as an integral part thereof. It is illustrative and not limiting. In these drawings:

La figura I muestra un esquema de la arquitectura de un encaminador. Figure I shows a schematic of a router's architecture.

La figura 2 muestra un ejemplo de la topología Dragonf1y o red directa jerárquica. Figure 2 shows an example of the Dragonf1y topology or direct hierarchical network.

5 La figura 3 muestra un ejemplo de encaminamiento en una red directa jerárquica, siguiendo una ruta mínima entre dos grupos. 5 Figure 3 shows an example of routing in a direct hierarchical network, following a minimum route between two groups.

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. Figure 4 shows an example of routing in a direct hierarchical network, following a Valiant route or non-minimum route between two groups, in which the 10 sequence of routers traversed is numbered.

La figura 5 muestra un ejemplo de encaminamiento no-mínimo con misrouting global y loca1 en el grupo intennedio. Figure 5 shows an example of non-minimum routing with global and crazy misrouting1 in the group intentionally.

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. Figure 6 shows a scheme of a network router on which the routing method of the invention is implemented.

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 Figure 7 shows seven examples of routing between two groups and routes resulting from the routing method of the invention, from a router 20 origin O to destination D. Specifically, it is exemplified: a) Minimum route. b) First and second jump non-minimum route and then minimum route until reaching the destination. e) First jump non-minimum route and then minimum route until reaching the destination. d) First jump minimum route, then non-minimum route and last minimum route until reaching the destination. e) Same route as in case e, with local misrouting in the

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. 25 group intentionally. f) Same route as in case e, with local misrouting in the target group. g) Same route as in case b, with local misrouting in the intermediate group.

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 Figure 8 shows three examples of order in the use of virtual channels, according to a possible implementation of the routing method of the invention, considering the routes used in Figures 7-b. 7-g and 7- [; The first a) has all the ascending jumps, the second b) has a unique local misrouting that violates said

orden ascendente y la tercera e) tiene 3 misroutings locales que violan dicho orden ascendente. ascending order and the third e) has 3 local misroutings that violate said ascending order.

DESCRIPCIÓN DETALLADA DE LA INVENCIÓN DETAILED DESCRIPTION OF THE INVENTION

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. In this text, the term "comprises" and its variants should not be understood in an exclusive sense, that is, these terms are not intended to exclude other technical characteristics, additives, components or steps.

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. In addition, the terms "approximately", "substantially", "around", "" ones ", etc. should be understood as indicating values close to those terms accompanying them, since due to calculation or measurement errors, it turns out irXJ> It is possible to achieve these values with complete accuracy.

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. Misrouling is defined as the act of jumping through a network link that does not bring the packet closer to its final destination. In Spanish it could be called "detour", although the term English is often used.

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. When that misrouting is performed between routers of different groups, it is a global misrouting, which is used to circumvent a saturated global link.

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. When this misrouting is performed between routers of the same group, it is a local misrouting, which is used to circumvent a saturated local link within the same group.

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. The following preferred embodiments are provided by way of illustration, and are not intended to be limiting of the present invention. In addition, the present invention covers all possible combinations of particular and preferred embodiments indicated herein. For those skilled in the art, other objects, advantages and features of the invention will be derived partly from the description and partly from the practice of the invention.

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 The routing method of the invention is applicable to hierarchical direct networks, as outlined in [general one in Figure 2, where each of the routers 20 responds generally to the architecture represented in the figure

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. 6. The network is connected by a plurality of routers 20, each of which comprises several injection and consumption ports to which compute nodes 24 are connected or can be connected. Routers 20 are grouped together by groups 21 by means of a connected topology , that is, in which there is at least one way to communicate any pair of nodes. Similarly, the different groups are interconnected through a related topology. Although in Figure 2 all groups have the same number of routers, in general different groups may have a different number of routers. Figure 2 also shows the local links 23, that is, between routers of the same group, and the global links 22, that is, between routers of different groups. Preferably, the present routing method is applicable when the connection between routers of the same group corresponds, at least, to a complete graph (also known as f1allened butterfly of 1 dimension), with at least one link between each pair of routers. In addition, in case of having additional ports on the routers there may be local links 23 for them between the same pair of routers of the same group. Also preferably, the present routing method is applicable when the connection between groups corresponds, at least, to a complete graph.

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. In the router's architecture, it is assumed that at least the virtual channel I see has enough capacity to host a maximum size packet hanging on the network.

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 Figure 6 shows a scheme of a router 60 of the network on which the routing method of the invention is implemented. Each router 60 needs three virtual channels (VeO, VC2 and VC4, referenced in the figure as 62-0, 62-2 and 62-4) on local ports 62, and two virtual channels (VCI and VC3, referenced in the figure such as 61-1 and 61-3) on global ports 61. The specific labeling of virtual channels may vary while maintaining the number of ports and the relative order. The port that communicates each computing node with a network router is called an injection port, not illustrated in Figure 6. This port does not need to be divided into virtual channels, and if an index is specified

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. 5 for it, is irrelevant for the avoidance of blockages. For order purposes, packets in an injection port are considered to be in the virtual channel -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 The proposed method or mechanism provides, on each router in the network, the set of routes that a packet can follow. These routes correspond to minimum 10 routes (from the current router to the destination, regardless of the route previously followed by the package), non-minimum routes that use a global misrouling to pass through an intentional group, as well as local misrouting Internal to a group. Then, some logic of the current router is responsible for selecting an option among all possible to make the advance of the package; that is to say

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. 15 allows adaptability in transit. This logic can use information on the state of the network to select the most appropriate route. The occupation of the buffers or virtual channels of the different paths, which is derived from the credit account of the router outputs, is an example of an indicator of the network status.

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 20 As explained below, the routing mechanism is free of interlock. To guarantee this, the minimum and Valiant routes (non-minimum with global misrouling) follow an ascending order of indexes in the virtual channels used, which guarantees that packets can be routed to the destination using those routes without blocking. In a general case, you can follow any total order in the use of

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 2 5 virtual channels, not necessarily the cited ascending order. On the contrary, local misrouting violates said total order relationship, reusing the same channel in progress, or a lower one. This violation means that the advance of the packages for the routes that use local misrouting cannot be guaranteed, and this advance can only be made when there is a gap in an appropriate local link; however, in practice, this is frequent, and this is how to get around saturated local links. The proposed routing mechanism, R, is of type R: C X N 1 --- + P (C), is

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. say: the routing mechanism R is implemented as a function that, given a packet located in a virtual channel e of an input port of a given incarnator, and for a destination node N, returns the set of virtual channels of the ports of output P (C) through which the package can advance. Thus, R not only specifies the port through which a packet can exit, but also the virtual channel through which it must advance on the neighboring router if it leaves through that port. To calculate the possible routes to follow, R uses the identification of the current router (its index in the network and the group to which Gi belongs), the port and virtual channel in which the packet is located (called the input port and virtual input channel) as well as the routing information present in the packet metadata (the Norigen origin node, which is connected to the Eorigen router belonging to the Gorigen origin group; and the Ndestino destination node. connected to the Edestine router in the Gdestino group). This routing information can appear explicitly in the packet metadata, or they can be calculated (for example, if E and G are derived mathematically from N and the network properties, such as the number of nodes per router , routers per group, etc). In addition, we assume that the package has some flags or counters to limit the number of times that both local and global misrouting can be done, and that there are limits to the number of times that misrouting is allowed: Llocal-misrouting and L. global- misrouting CO-misrouting can refer to the number of times local misrouting is allowed either along the entire package route, or by group. Although it could be generalized, we assume L. global-misrouting: ;;:; 1, as in all previous works.

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 The proposed routing mechanism R can be expressed as the union of three separate routing subfunctions: R: ;;:; RminURnon-minURlocal-misr. Each of these three mechanisms returns a set of output ports and virtual channels for a packet on a given node and a given virtual channel, independent of the path previously followed by the packet. In general, for

,. .

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. reach its destination, the package can follow any of the routes provided by the routing mechanism. However, in [anointing of the network status (queue occupancy or some other indicator), the logic of the routers can select a subset of options to achieve the best performance.

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á 5 Note that in the case of using a complete graph topology (without parallel links) both between the routers of a group and between groups, there is a single minimum route. Rmino However, if additional links have been used to take advantage of available ports on the routers , then that route will not be

10 única. 10 unique.

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 The proposed mechanism R is fully defined if each of its three components is defined, which is done below. The following tenninology is considered: E¡ (router in which the packet is located), G¡ (group to which the router in which the packet is located), Norigen (origin node), Eorigen (router to which it is located) Norigen is connected), Gorigen (group to which Eor¡gen belongs), Ndestino (destination node), Edestino (router to which Ndestino is connected), Gdestino (group to which Edestino belongs), Eout

(conjunto de encaminadores de Gi que disponen de un enlace global que conecta 20 directamente con Gdestino). (set of Gi routers that have a global link that connects 20 directly with 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: • Rmin corresponds to the minimum routing of a packet from Ei to Ndestino. Thus, Rmin generates a set of routes (at least one) according to the first of the following conditions that is true:

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 25 a) If El = Edestino. In this case the route is given by the port that connects Ndestino. b) If G¡ = Gdestino. In this case, the routes (at least one) are given by the set of ports that directly connect Ei to Edestino. e) If Ei has at least one global link that connects it directly to 30 Gdestino. In this case the routes (at least one) are given by the

conjunto de puertos que conectan directamente con Gdestinoset of ports that connect directly to Gdestino

d) Si G¡ * Gorigen' Entonces Rmin comprende todas las rutas (al menos una) d) If G¡ * Gorigen 'Then Rmin comprises all routes (at least one)

que unen con Eaut. that unite with Eaut.

e) Si G¡ = Gorigen' Rmin comprende todas las rutas (al menos una) que e) If G¡ = Gorigen 'Rmin comprises all routes (at least one) that

5 5
unen con Eout• pero además se debe emplear explícitamente el canal join with Eout • but also the channel must be explicitly used

virtual veo. virtual see.

El índice del canal virtual de la salida en los casos a)-d) depende del tipo de The virtual channel index of the output in cases a) -d) depends on the type of

puerto por el que se recibe el paquete (local o global) y por el que se tiene que port through which the package (local or global) is received and through which it has to be

reenviar en cada encaminador por el que pase, así como del índice del canal forward on each router through which it passes, as well as the channel index

10 10
virtual en el que está el paquete en el puerto de entrada. Si ambos puertos virtual in which the package is in the port of entry. If both ports

(entrada y salida) del encaminador en curso, son del mismo tipo (local-local o (input and output) of the current router, are of the same type (local-local or

global-global) el índice se aumenta en dos unidades; en otro caso, se aumenta global-global) the index is increased by two units; otherwise, it is increased

en una unidad. in one unit

15 fifteen
• Rnon-min se corresponde con el encaminamiento no-mínimo de un paquete a • Rnon-min corresponds to the non-minimum routing of a packet to

través de un grupo intennedio, sin misrouling locaL Rnon-min genera un through an intentional group, without misrouling locaL Rnon-min generates a

conjunto de rutas (al menos una) de acuerdo a la primera de las siguientes set of routes (at least one) according to the first of the following

condiciones que sea cierta: conditions that are true:

f) Si G¡ '* Gorigen. Rnon-min devuelve el mismo resultado que Rmin. f) Yes G¡ '* Gorigen. Rnon-min returns the same result as Rmin.

20 twenty
g) Si Ei '* Eor¡gen Y Ei no dispone de un enlace global que le conecta g) If Ei '* Eor¡gen Y Ei does not have a global link that connects

directamente con Gdestino. entonces el paquete puede salir por cualquiera directly with Gdestino. Then the package can go out by anyone

de los puertos globales de Ei. utilizando el canal virtual VCl. of the global ports of Ei. using the virtual channel VCl.

h) En otro caso, o bien Ei = Eorigen o bien Ei '* Eorigen Y además dispone h) In another case, either Ei = Eorigen or Ei '* Eorigen Y also provides

de un enlace global que lo conecta directamente con Gdestino. En este of a global link that connects it directly with Gdestino. In this

25 25
caso el paquete puede salir por cualquiera de los puertos locales de Ei In case the package can leave through any of the local ports of Ei

utilizando el canal virtual veo o por cualquiera de los puertos globales de using the virtual channel I see or through any of the global ports of

Ei utilizando el canal virtual VCl. Ei using the virtual channel VCl.

Se propone una implementación alternativa a la descrita en las reglas f), g) h), An alternative implementation to that described in rules f), g) h) is proposed,

30 30
que es más restrictiva en la generación de las rutas de Rnon-min con el which is more restrictive in generating Rnon-min routes with the

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 In order to balance the outbound traffic through the different links of the GOTigen group while minimizing the length of the routes traveled, according to the following rules (alternatives af) -h), note that i) coincides with 1): i ) If C¡ '* Correct. Rnon-min returns the same set of routes as

Rmino Term

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. j) If E¡ = Eorigen Y the package is in the injection port, the package can exit through any of the global links of E¡ using the virtual Vel channel.

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!. k) If E does not have a global link that connects directly to Gdestino, then the package can exit through any of the global ports of E "using the virtual channel go !.

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. 1) If you do have a global link that connects you directly to Gdestino, enlOnceS the package can exit through any of the local Ei ports, using the virtual channel I see.

• 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' • Rlocal-misr corresponds to the local misrouting in the target group or an intentional group. In the origin group, Rnon-min is the one that allows misrouling (global, in that case) when congestion is detected. Rlocal-misr generates its routes according to the first of the following conditions that is true: m) If Ci = Cdestino 'and also E¡ "* Edestino, And the local misrou / ings account of the package is smaller than L¡Ocal -misrouting, then Rlocal-misr comprises all the local links of Ex. n) If C¡ "* Gdestjno, C¡" * Corigen, and also Ei does not have a global link that connects with Cdestino and the local misroutings account of the package is less than Llocal-misrouting, so Rlocal-misr understands all the local Ei 'links

o) En otro caso, no se genera ninguna ruta. En ambos casos, el canal virtual utilizado es el mismo que el que contiene el o) In another case, no route is generated. In both cases, the virtual channel used is the same as the one containing the

paquete en el puerto de entrada (si éste es de tipo local) o una unidad inferior (si es global). packet at the port of entry (if this is a local type) or a lower unit (if it is global).

A continuación se muestran algunos ejemplos de posibles rutas generadas por el mecanismo ilustradas en la figura 7. Below are some examples of possible routes generated by the mechanism illustrated in Figure 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 Figure 7-a shows a route from EOriaen (O) to Edestino (D) in which all the jumps are given by the minimum routing (conditions a-e). Figure 7-b shows a route from Eorigen (O) to Edestino (O). While a packet is in Eorigen, it leaves through one of its local ports returned by Rnon-min using the virtual channel I see (condition h », 71. Next, in router 1, the packet leaves through one of the global ports returned by Rnon- min, using the virtual channel Ve1 (condition h », 72. From there, the packet is routed by the minimum route to Edestino (conditions a) to ad». Figure 7 · c shows the routing from Eorigen (O) to Eaestino (D) when performing a global misrouling 73 for a package that is in one of the Eor¡gen injection ports (condition j). From there, the package is routed by the minimum route to Edestino (conditions a) ad »Figure 7-d shows a route from Eorigen (O) to Edestino (O) in which a local (not minimum) jump is made prior to a global misrouting, while a package is in Eorigen. one of the local ports 74 of Eorigen returned by Rmin using the virt channel I see (condition e ». Then. the packet being on router 1, motivated for example by congestion on the global link marked by Rmin. the packet leaves through one of its local ports returned by Rnon-min 75. using the VCO virtual channel (condition 1). Then, in router 2, the packet leaves through one of the global ports returned by Rnon-min, using the virtual channel VCI (condition k », 76. From there, the packet is routed by the minimum route to Edestino. that the two local jumps 74 and 75 are t: quivalent to have made a local misrouJing in the origin group (prior to a no minimum global jump), although the route has been generated by

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). Rmin YRnon-min 'Figure 7-e shows a route from Eorigen (O) to Edestino (D). The packet is routed in the same way as in Figure 7.d but with an additional local misrouting 77 in the intermediate group (condition n.) Figure 7- [shows a route from EOTigen (O) to Edestino (D). packet is routed in the same way as in figure 7.e but with an additional local mjsrouling 78 in the destination group (condition m ». Figure 7-g shows the routing from Eorigen (O) to Edestino (D). it is routed in the same way as in figure 7.b but with an additional local misrouling 79 in the intermediate group (condition 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. Figure 8 shows the order followed in the sequence of virtual channels traversed, in which the gray blocks represent the route routers. Continuous arrows represent jumps with ascending order of virtual channels, while dashed arrows represent jumps that violate said ascending order of virtual channels. Three examples are shown: a) a route that does not use local misrouting (such as the route in Figure 7-b) that follows a strictly ascending order; b) a route that uses a local misrouJing (such as the route in Figure 7-g), where the jumps corresponding to the local misrouting violate said strictly ascending order, while the rest of the jumps respect such order ~ c) a route that employs several local misroutings (such as the route in Figure 7-f), where three local jumps are used that do not increase the virtual channel index, maintaining or decreasing it with respect to the previous jump, while the rest of the jumps do increase the index used .

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. The criteria for choosing a specific route between the different ones allowed by the mechanism admit multiple implementations. In a non-limiting manner, these may be based, for example, on the allocation by a unified allocator, on the credits available for each exit port, or on containment counters on the exit ports. Some implementations are shown in application examples 1 to 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: The R == RminURnon-minUR / ocal-misr routing mechanism allows traffic to be routed between any pair of origin and destination nodes in the absence of deadlock. To prove it, it is sufficient to demonstrate that there is a routing subfunction that is free of deadlock, according to William Dally and Brian Towles in PrincipIes and Practices ollnterconnection Network-s. Morgan Kaufmann Puhlishers lnc., San Francisco, CA, USA, 2003. Specifically, we will show that Rnon-min is able to route any package to the destination without blockages. For this, an invariant is initially defined, which is a property that remains constant in the network with any movement that is made. The following invariant is then defined:

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. Invariant 1: Given a packet in a virtual channel Vei of an input port of a router or routcr, the sum of i (the index of its virtual channel) plus its distance to the destination router is always less than or equal to 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. The invariant is tested constructively. According to cases e) and h) or 1) it follows that local Gortgen links can only be used through the channel I see, and according to cases e), and g) and h) or j) and k), it turns out that Packages can only leave the source group through the Vel channel of a global link. Similarly, if an intermediate group is traversed, according to d), f) or i) and n) it turns out that only the local index links I can see for local misrouling and Ve2 can be used to reach Eout, and therefore , according to c) and t) or i), it turns out that packets can use Vel or Ve3 to cross the global link with which they reach the destination group. Finally, in the destination group according to b), f) or m) the packets can use any virtual channel of the local links (VeO, VC2 or VC4) to reach the destination router, where the packet is consumed.

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. It is enough then to consider that the diameter of the Dragonfly is 3 and the distances to the destination to verify that the invariant is true. Consider a packet at an input port of a router E¡ in a group Gi '* Gdest¡no' Then, if the router is directly connected to Gdestino, at most it will have been reached by the virtual channel VC2, and its distance to Edestino will be at most 2 (for the two jumps, global -local, that separate him from the destination). In any other G router, the distance to Edestino will be 3, but the packet will be in a virtual input channel I see (if the port is local) or Vel (if it is global). On the other hand, in the destination group Edestino is the only router that can be reached by the virtual channel VC4; the other routers are remote 1 from Edestino And are reached, at most, by the virtual channel Ve3, so that in all cases the invariant l is maintained.

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. From the invariant 1 the absence of deadlock can be demonstrated. A routing function R: e x N .......... P (C) is free of deadlock if it contains a routing subfunction, in this case Rnon-min. which is connected and without cycles in the extended dependency graph. Rnon-min is connected as it allows you to route any packet to the destination thanks to invariant 1: there is always a route since a packet is never in a virtual channel too high to be unable to reach the destination. On the other hand, when the model is used under cut-through virtual flow control, the extended dependency graph is reduced to the dependency graph; and since the a) -d) and g) -h) (or j) -1)) relations define a strictly increasing path of the virtual channel indices, then there are no cycles.

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 In addition to this implementation for Virtual Cut-through flow control, under certain conditions explained below the mechanism is applicable to networks with wormhole flow control. The jumps that violate the strictly ascending order of virtual channels generate extended dependencies between the channels involved. In the case shown in figure 8 b), a packet can stand still distributed between the virtual channels I see on the routers marked 1 and 3, and the Vel on the router 2. Therefore, the packet is occupying the virtual channel Ve ! of a router, so it may be stopping another packet that is in the view of another router; therefore, a circular dependency appears that can block the network. To avoid such blocking, it is sufficient to use flow control to see only on local virtual channels that may be the destination of a local misrouting (VeO and Ve2 only), requiring that there be room for the entire package before allowing Jacal misrouting. In this way, the proposed mechanism can work in wormhole in the general case in which an ascending order is followed in the virtual channel indices used ~ and allowing local rnisrouting only if there is room for the entire package in the destination buffer. Obviously, to use this mechanism it is necessary that the 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. 5 corresponding to local misrouting (at least, VeO) have capacity for the maximum package size. Therefore, such implementation allows reducing the total size of the network buffers, since only a gap is required for the complete package in a single 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. Listed below are some examples of the application of the proposed mechanism in 10 different implementations for a better understanding of its operation.

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 Application example 1: In this application example, a network with a Dragonfly topology is considered in which the router arbitration is implemented by means of a non-separable (ie, unified) al / ocalor ("allocator"). This configuration takes advantage of local misrouting and routing in

15 tránsilo, pero tiene el problema de no favorecer el aprovechamiento de rutas cortas para reducir la latencia y aumentar el throughput. 15 transyl, but has the problem of not favoring the use of short routes to reduce latency and increase 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 Application example 2: In this application example, a network with a Dragonfiy topology is considered in which each router uses a splitter type (or separable) mapper. The selection of the route is critical to achieve a good 20 performance. In general, it is recommended that routes be as short as possible to reduce the traffic load on the network. However, in situations of saturation of the links corresponding to the minimum routes, it is more interesting to take a longer route that bypasses the saturated link. Therefore, there must be a logic that selects between one of the minimum routes provided by Rmfn, or a minimum no25 provided by Rnon-min or Rtocat-misr. One possible implementation is to compare the occupation of the buffers: If the occupation of the Selected minimum queue exceeds a certain threshold, then the choice of a non-minimum output whose occupancy is lower than that of the selected minimum queue scaled by an adjustment factor is allowed. If there is no non-minimum queue available, or the

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. Minimum queue occupancy selected is less than the set threshold, then the minimum route selected from those routes set by Rmin 'is used. This decision is repeated in each cycle in which the packet is still waiting, because the dispatcher did not assign the chosen output. in the previous arbitration cycle.

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 Application example 3: As in Example 2, a Dragonfly topology with routers with separable allocator is used. To select the minimum or non-minimum route in each jump, the following strategy is used. There is a "containment counter" for each output port. When the routes for a packet of an input port are calculated (either when entering the queue, or when it reaches the header of said input queue), the containment counter corresponding to the selected minimum output is increased, among those indicated by Rmin. This counter is decremented again when the packet manages to advance and exit the node completely. The routing logic uses the containment counters (optionally, together with the queuing status) to select at each router between one of the minimum routes indicated by Rmin or one of the routes indicated by Rnon-min or

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. Rtocal-misr 'A specific model could use a static threshold from which, if the minimum route selected has more containment, a random name route is selected at random. Another specific model could compare the containment of the minimum route counter selected with the average of all router counters to make this decision.

Claims (11)

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, l. A method of routing packets in a hierarchical direct network formed by a plurality of routers, each with a plurality of local type ports and a plurality of global type ports, where each of said ports comprises a plurality of channels virtual, where said routers form groups, where the different routers of the same group are interconnected by means of a connected topology using local type links joining pairs of local type ports, and in turn the different groups are interconnected by a related topology using links from global type joining pairs of ports of global type, the method being configured to employ jumps through said links according to minimum and non-minimum routes, where jumps involving non-minimum routes can be made both through global and local links, 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. the method being characterized in that the number of virtual channels needed in each local and global port is determined only by the length of a maximum pennitid route that does not use misroUling of the local type, using a total order in the virtual channels path , which is violated when a local misrouting is performed.
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. The method of claim 1, wherein the connection between the different routers of the same group is made according to a complete graph, and the connection between the different groups is also made according to a complete graph, and each local port comprises only 3 virtual channels and each global port comprises only 2 virtual channels.
2. 2.
3. 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: The method of any of the preceding claims, wherein for each packet located in a virtual channel of a router port, it comprises:
--
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; calculate at least one hop according to a minimum routing between the router in which said packet is located and the router to which the node to which said packet is directed is connected;
--
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; calculate at least one hop according to a non-minimum routing comprising a global misrouting, through a group of intermediate routers different from the group to which the originating router and the router to which the destination node of the packet is connected;
--
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; calculate, if a determined local misrouting limit has not been reached and the minimum routing has calculated local-type jumps, at least one nominal local jump other than those jumps calculated by the minimum routing;
--
seleccionar uno de dichos saltos en función de un determinado criterio. select one of these jumps based on a certain criteria.
4. Four.
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. The method of claim 3, which employs a unified allocator in each router to carry out the selection of one of said jumps to advance a packet.
5. 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. The method of claim 3, selecting a route for each packet in each arbitration cycle by comparing the occupancy of the virtual input channel in the next router corresponding to a selected minimum route, versus the occupancy of the virtual input channels of the routers corresponding to other routes.
6. 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. The method of claim 3, a route being selected for each packet in each arbitration cycle by a comparison of the values of a plurality of containment counters, there being as many counters as output ports the router has, said counters registering the number of packets of the ports of entry whose minimum route advances through the corresponding port of exit.
7. 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 The method of claim 3, a route being selected for each packet in each arbitration cycle according to a combination of both the information obtained from the occupation of the virtual input channels of the neighboring routers and a plurality of containment counters, registering said
5 contadores el número de paquetes de los puertos de entrada cuya ruta mínima avanza por el puerto de salida correspondiente. 5 counters the number of packets of the input ports whose minimum route advances through the corresponding output port.
8.-El método de cualquiera de las reivindicaciones anteriores, en el que se emplea 8. The method of any of the preceding claims, wherein it is used control de flujo de agujero de gusano o wormhole en todos los saltos en que se wormhole or wormhole hole flow control in all jumps in which respeta el orden total establecido para los canales virtuales, y control de flujo de paso respects the total order established for virtual channels, and flow control 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 through or virtual cUl-lhrough in the jumps in which a local misrouting is done that violates said total order, allowing all virtual channels to be smaller than the maximum packet size minus those corresponding to the first virtual channel. 9.-El método de cualquiera de las reivindicaciones anteriores, donde dicho orden 15 total puede ser un orden ascendente o un orden descendente. 9. The method of any of the preceding claims, wherein said total order can be an ascending order or a descending order. 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 10.-A direct hierarchical network formed by a plurality of routers, each with a plurality of ports of local type and a plurality of ports of global type, where each of said ports comprises a plurality of virtual channels, where said routers form groups, where the different 20 routers of the same group are interconnected by means of a connected topology using local type links joining pairs of local type ports, and in turn the different groups are interconnected by a connected topology using global type links joining pairs of ports of global type, said direct hierarchical network being characterized by comprising means for carrying 25 cabo el método según cualquiera de las reivindicaciones de la 1 a la 9. Perform the method according to any one of claims 1 to 9.
ES201200715A 2012-07-05 2012-07-05 Adaptive routing method in hierarchical networks Expired - Fee Related ES2395955B2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
ES201200715A ES2395955B2 (en) 2012-07-05 2012-07-05 Adaptive routing method in hierarchical networks
PCT/ES2013/000167 WO2014006242A1 (en) 2012-07-05 2013-07-05 Method for adaptive routing in hierarchical networks

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
ES201200715A ES2395955B2 (en) 2012-07-05 2012-07-05 Adaptive routing method in hierarchical networks

Publications (3)

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

Family

ID=47625614

Family Applications (1)

Application Number Title Priority Date Filing Date
ES201200715A Expired - Fee Related ES2395955B2 (en) 2012-07-05 2012-07-05 Adaptive routing method in hierarchical networks

Country Status (2)

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

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE112020002491T5 (en) 2019-05-23 2022-04-28 Hewlett Packard Enterprise Development Lp SYSTEM AND METHODS TO FACILITATE DYNAMIC COMMAND MANAGEMENT IN A NETWORK INTERFACE CONTROLLER (NIC)

Also Published As

Publication number Publication date
ES2395955A1 (en) 2013-02-18
ES2395955A8 (en) 2013-03-22
WO2014006242A1 (en) 2014-01-09
WO2014006242A8 (en) 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
US20140050224A1 (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
Wang et al. Bubble coloring: Avoiding routing-and protocol-induced deadlocks with minimal virtual channel requirement
Holsmark et al. Deadlock free routing algorithms for irregular mesh topology NoC systems with rectangular regions
Sancho et al. Effective methodology for deadlock-free minimal routing in InfiniBand networks
ES2395955B2 (en) Adaptive routing method in hierarchical networks
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
Touati et al. Reliable routing schemes in 3D network on chip
García et al. Global misrouting policies in two-level hierarchical networks
Charif et al. MUGEN: A high-performance fault-tolerant routing algorithm for unreliable Networks-on-Chip
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
Ebrahimi et al. Partitioning methods for unicast/multicast traffic in 3D NoC architecture
Fuentes et al. Flexvc: Flexible virtual channel management in low-diameter networks
Bahrebar et al. Adaptive multicast routing method for 3D mesh-based Networks-on-Chip
Rezazadeh et al. If-cube3: An improved fault-tolerant routing algorithm to achieve less latency in NoCs
Bahrebar et al. Adaptive routing in MPSoCs using an efficient path-based method
Chen et al. Enabling vertical wormhole switching in 3D NoC-Bus hybrid systems
Montañana et al. Epoch-based reconfiguration: Fast, simple, and effective dynamic network reconfiguration

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