ES2377087B1 - METHOD, SYSTEM AND LOCKER AVOIDING ROADER IN AN INTERCONNECTION NETWORK. - Google Patents
METHOD, SYSTEM AND LOCKER AVOIDING ROADER IN AN INTERCONNECTION NETWORK.Info
- Publication number
- ES2377087B1 ES2377087B1 ES201101048A ES201101048A ES2377087B1 ES 2377087 B1 ES2377087 B1 ES 2377087B1 ES 201101048 A ES201101048 A ES 201101048A ES 201101048 A ES201101048 A ES 201101048A ES 2377087 B1 ES2377087 B1 ES 2377087B1
- Authority
- ES
- Spain
- Prior art keywords
- router
- identification
- buffer
- input buffer
- aij
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 117
- 239000000872 buffer Substances 0.000 claims abstract description 140
- 230000007246 mechanism Effects 0.000 claims abstract description 27
- 230000000903 blocking effect Effects 0.000 claims abstract description 21
- 238000011084 recovery Methods 0.000 claims description 18
- 238000001514 detection method Methods 0.000 claims description 6
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 238000003860 storage Methods 0.000 claims description 5
- 239000000203 mixture Substances 0.000 claims description 2
- 230000000694 effects Effects 0.000 claims 2
- 230000008569 process Effects 0.000 description 29
- 230000009471 action Effects 0.000 description 14
- 230000000875 corresponding effect Effects 0.000 description 11
- 238000002347 injection Methods 0.000 description 6
- 239000007924 injection Substances 0.000 description 6
- 230000003044 adaptive effect Effects 0.000 description 5
- 238000012544 monitoring process Methods 0.000 description 5
- 239000000243 solution Substances 0.000 description 5
- 150000001768 cations Chemical class 0.000 description 4
- 125000004122 cyclic group Chemical group 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000003213 activating effect Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004913 activation Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 230000001351 cycling effect Effects 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000008034 disappearance Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000010304 firing Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000010076 replication Effects 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/28—Routing or path finding of packets in data switching networks using route fault recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Hardware Design (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Método, sistema y encaminador de evitación de bloqueos en una red de interconexión.#El método comprende:#a) detectar una situación propensa a un bloqueo; e#b) identificar un ciclo de encaminamiento involucrado en la situación propensa a un bloqueo detectada, mediante la realización de las siguientes sub-etapas por parte de un encaminador (r{sup,i}), mediante un mecanismo de búsqueda asíncrono intra-encaminador e inter-encaminadores que no requiere del uso de temporizadores:#b1) componer y enviar un mensaje de identificación desde un búfer de entrada (a{sup,i}{sub,j}) del encaminador (r{sup,i}) a un búfer de salida (b{sup,h}{sub,k}) de otro encaminador (r{sup,h}); y#b2) recibir el mensaje de identificación en el búfer de salida (b{sup,i}{sub,k}) asociado a dicho búfer de entrada (a{sup,i}{sub,j}) del encaminador (r{sup,i}) que lo compuso, tras su retransmisión por parte de como mínimo otro encaminador (r{sup,h}) desde un búfer de entrada (a{sup,h}{sub,j}) del mismo.#El sistema y el encaminador están adaptados para implementar el método propuesto por la invención.Method, system and blocking avoidance router in an interconnection network. # The method comprises: #a) detecting a situation prone to a blockage; e # b) identify a routing cycle involved in the situation prone to a blockade detected, by performing the following sub-stages by a router (r {sup, i}), using an intra-asynchronous search mechanism Router and inter-routers that do not require the use of timers: # b1) Compose and send an identification message from an input buffer (to {sup, i} {sub, j}) of the router (r {sup, i} ) to an output buffer (b {sup, h} {sub, k}) of another router (r {sup, h}); and # b2) receive the identification message in the output buffer (b {sup, i} {sub, k}) associated with said input buffer (a {sup, i} {sub, j}) of the router (r {sup, i}) that composed it, after its retransmission by at least another router (r {sup, h}) from an input buffer (a {sup, h} {sub, j}) of the same. # The system and the router are adapted to implement the method proposed by the invention.
Description
Método, sistema y encaminador de evitación de bloqueos en una red de interconexión. Method, system and blocking avoidance router in an interconnection network.
Sector de la técnica Technical sector
La presente invención concierne en general, en un primer aspecto, a un método de evitación de bloqueos en una red de interconexión basado en la identificación de ciclos de encaminamiento involucrados en situaciones propensas a un bloqueo, y más particularmente a un método que comprende llevar a cabo dicha identificación mediante un mecanismo que no requiere del uso de temporizadores. The present invention generally concerns, in a first aspect, a method of preventing blockages in an interconnection network based on the identification of routing cycles involved in situations prone to a blockage, and more particularly a method comprising carrying carry out said identification through a mechanism that does not require the use of timers.
La invención pertenece al ámbito de las redes de interconexión de computadores paralelos y se centra en el área de tolerancia a fallos para redes de interconexión de alta velocidad. The invention belongs to the field of parallel computer interconnection networks and focuses on the area of fault tolerance for high speed interconnection networks.
El objeto de la presente invención es identificar ciclos de dependencias de recursos en redes de interconexión de alta velocidad de forma asíncrona intra-encaminador e inter-encaminadores. La identificación tiene como finalidad evitar que la ocurrencia de fallos en los dispositivos de red generen situaciones de bloqueo en la red de interconexión, permitiendo así la finalización de las aplicaciones que se encuentren en ejecución en el computador paralelo. The object of the present invention is to identify cycles of resource dependencies in high-speed interconnection networks asynchronously intra-router and inter-routers. The purpose of the identification is to prevent the occurrence of faults in the network devices from generating blocking situations in the interconnection network, thus allowing the completion of the applications that are running in the parallel computer.
Un segundo aspecto de la invención concierne a un sistema de evitación de bloqueos en una red de interconexión adaptado para implementar el método del primer aspecto. A second aspect of the invention concerns a block avoidance system in an interconnection network adapted to implement the method of the first aspect.
Un tercer aspecto de la invención concierne a un encaminador previsto para la implementación del método del primer aspecto de la invención. A third aspect of the invention concerns a router intended for the implementation of the method of the first aspect of the invention.
Estado de la técnica anterior Prior art
El rendimiento de los sistemas de cómputo paralelo de última generación se encuentra íntimamente relacionado con las prestaciones de la red de interconexión que comunica sus elementos de cómputo. Esta interrelación confiere vital importancia a los mecanismos de tolerancia a fallos de la red de interconexión ya que, en última instancia, es la red la que permite el funcionamiento de dichos computadores como entidades coherentes y cohesionadas. The performance of the latest generation parallel computing systems is closely related to the performance of the interconnection network that communicates its computing elements. This interrelationship attaches vital importance to the fault tolerance mechanisms of the interconnection network since, ultimately, it is the network that allows the operation of such computers as coherent and cohesive entities.
Ante estas circunstancias, la ocurrencia de tan solo un fallo de red es capaz de generar anomalías potencialmente dañinas en el sistema de cómputo, e impedir la correcta finalización de las aplicaciones que se encuentren en ejecución en dicho sistema. De entre estas anomalías, los escenarios de bloqueos, “deadlocks”, son quizás los de mayor probabilidad de ocurrencia debido a que la mayor parte de los sistemas de cómputo actuales utilizan algoritmos de encaminamiento que no fueron diseñados para tolerar fallos (situación que incrementa la probabilidad de aparición de bloqueos en dichos sistemas). Este problema se vuelve crítico en situaciones en las que el sistema de cómputo debe lidiar con fallos que aparecen aleatoriamente, es decir con fallos dinámicos. Algunos ejemplos pueden ser los sistemas de transacciones bancarias o los sistemas utilizados para estudios geológicos y de catástrofes naturales, entre otros. Under these circumstances, the occurrence of only one network failure is capable of generating potentially harmful anomalies in the computer system, and preventing the correct termination of the applications that are running in said system. Among these anomalies, the blocking scenarios, "deadlocks", are perhaps the most likely to occur because most of the current computer systems use routing algorithms that were not designed to tolerate failures (a situation that increases probability of occurrence of blockages in these systems). This problem becomes critical in situations where the computer system must deal with failures that appear randomly, that is, with dynamic failures. Some examples may be the banking transaction systems or the systems used for geological studies and natural disasters, among others.
En el contexto de las redes de interconexión, los bloqueos se producen cuando al menos un mensaje no puede llegar a destino, debido a que en su trayecto solicita recursos que no se encuentran disponibles, más específicamente, espacio de almacenamiento en la cola de un dispositivo de red. Esta situación tiene como resultado el bloqueo total del sistema debido a que los mensajes no liberan los recursos que necesitan otros mensajes, mientras solicitan recursos que se encuentran en posesión de otros mensajes. Esto lleva a que un grupo de mensajes se bloque de forma permanente, provocando que todo el sistema de cómputo quede fuera de servicio. Desafortunadamente, la aparición de bloqueos es frecuente en las situaciones en las que fallan uno o más dispositivos de red. Esto se debe a que incluso un número relativamente bajo de fallos puede generar dependencias cíclicas de recursos, derivadas de los cambios en las características de la red, principalmente en la topología. In the context of interconnection networks, blockages occur when at least one message cannot reach its destination, because in its path it requests resources that are not available, more specifically, storage space in the queue of a device Network This situation results in total system blocking because the messages do not release the resources that other messages need, while requesting resources that are in possession of other messages. This leads to a group of messages being permanently blocked, causing the entire computer system to be out of order. Unfortunately, the appearance of blockages is frequent in situations in which one or more network devices fail. This is because even a relatively low number of failures can generate cyclic resource dependencies, derived from changes in the characteristics of the network, mainly in the topology.
Durante las últimas décadas, varios autores han propuesto soluciones al problema de los bloqueos en las redes de interconexión, entre las que se encuentran: limitar la inyección de mensajes en la red [1], [2]; utilizar canales virtuales [3], [4]; y modificar los dispositivos de red y algoritmos de encaminamiento [5], [6], [7], Desafortunadamente, todas las soluciones propuestas hasta el momento han sido diseñadas para evitar bloqueos en redes libres de fallos, por lo que su aplicabilidad en el ámbito de la tolerancia a fallos es muy reducida. During the last decades, several authors have proposed solutions to the problem of blockages in interconnection networks, among which are: limit the injection of messages in the network [1], [2]; use virtual channels [3], [4]; and modify the network devices and routing algorithms [5], [6], [7], Unfortunately, all the solutions proposed so far have been designed to avoid blockages in fault-free networks, so their applicability in the The scope of fault tolerance is very small.
La presencia de fallos en la red causa que la gran mayoría -por no decir todos-los mecanismos de evitación de bloqueos actuales se vean seriamente afectados y limitados, llegando incluso a no ser efectivos. Dichas limitaciones se relacionan con aspectos importantes de la teoría general de la tolerancia a fallos, tales como el momento y la forma de aparición de los fallos, el número de fallos a tolerar, la duración de los fallos, las características de los sistemas utilizados, etc. The presence of network failures causes the vast majority - if not all - of the current blockage avoidance mechanisms to be seriously affected and limited, even not being effective. These limitations relate to important aspects of the general theory of fault tolerance, such as the timing and manner of occurrence of failures, the number of failures to tolerate, the duration of failures, the characteristics of the systems used, etc.
El modo en que se da el fallo es el aspecto más importante a tener en cuenta debido a que se encuentra íntimamente relacionado con la aplicabilidad e idoneidad de las técnicas de evitación de bloqueos. Si se asume un modo de fallos estático, es indispensable conocer de antemano la ubicación de dichos fallos en la red. En contraste, al asumir un modo de fallos dinámico, los fallos aparecen en tiempos y localizaciones aleatorias durante la ejecución del sistema. El modelo de fallos estático permite implementar soluciones más simples pero el modelo de fallos dinámico plasma de forma fidedigna el comportamiento de los fallos en los sistemas de cómputo reales. The way in which the fault occurs is the most important aspect to consider because it is closely related to the applicability and suitability of blockage avoidance techniques. If a static fault mode is assumed, it is essential to know in advance the location of such failures in the network. In contrast, when assuming a dynamic fault mode, the errors appear at random times and locations during system execution. The static failure model allows simpler solutions to be implemented, but the dynamic failure model clearly defines the behavior of the failures in real computer systems.
Si se utilizan los algoritmos de encaminamiento más simples, los basados en el modo de fallos estático, resulta imposible evitar fallos dinámicos debido a que dichos algoritmos no permiten (por sí mismos) la utilización de caminos alternativos y adaptativos. En contraste, los algoritmos de encaminamiento más complejos, los adaptativos, permiten utilizar caminos alternativos para la evitación de fallos. Aun así, pese a perfilarse como una solución muy prometedora, desde el punto de vista de la tolerancia a fallos, el enfoque de los algoritmos adaptativos presenta un nuevo e importante problema: la aparición de bloqueos o “deadlocks”. Este problema se vuelve crítico en situaciones en las que el sistema de cómputo debe lidiar con fallos que aparecen aleatoriamente a lo largo de la ejecución del sistema, es decir, con fallos dinámicos. If the simplest routing algorithms are used, those based on static failure mode, it is impossible to avoid dynamic failures because such algorithms do not allow (by themselves) the use of alternative and adaptive paths. In contrast, the more complex routing algorithms, the adaptive ones, allow alternative paths to be used to avoid failures. Even so, despite profiling as a very promising solution, from the point of view of fault tolerance, the adaptive algorithms approach presents a new and important problem: the appearance of blockages or deadlocks. This problem becomes critical in situations where the computer system must deal with failures that appear randomly throughout the execution of the system, that is, with dynamic failures.
Actualmente, la gran mayoría de las técnicas de evitación de bloqueos capaces de tolerar fallos en redes de interconexión utilizan canales virtuales para romper las dependencias cíclicas de recursos entre los mensajes. El uso de canales virtuales limita la escalabilidad de dichas técnicas debido a que el número de canales virtuales necesarios es directamente proporcional al número de fallos a tolerar. Por este motivo, la mayor parte de las técnicas propuestas se basan en modelos de fallos estáticos, a fin de reducir el número de canales virtuales requeridos. Otro grupo de técnicas comúnmente utilizadas se basa en el concepto de limitar la inyección de paquetes, evitando el acaparamiento los recursos de la red a fin de evitar las situaciones de bloqueo indefinidas. Sin embargo, estas técnicas son útiles para algoritmos de encaminamiento basados en la utilización de caminos mínimos, lo que dificulta o simplemente imposibilita tolerar un número medio o alto de fallos. Prácticamente todos estos métodos y técnicas de evitación de bloqueos se basan en diferentes tipos de mecanismos de identificación de ciclos. Desafortunadamente, la mayoría de estos métodos fueron diseñados para operar en ausencia de fallos, por lo que se vuelven inaplicables ante la ocurrencia de fallos de red. Currently, the vast majority of block avoidance techniques capable of tolerating failures in interconnection networks use virtual channels to break the cyclic dependencies of resources between messages. The use of virtual channels limits the scalability of these techniques because the number of virtual channels needed is directly proportional to the number of failures to tolerate. For this reason, most of the proposed techniques are based on static failure models, in order to reduce the number of virtual channels required. Another group of commonly used techniques is based on the concept of limiting the injection of packets, avoiding the hoarding of network resources in order to avoid indefinite blocking situations. However, these techniques are useful for routing algorithms based on the use of minimum paths, which makes it difficult or simply impossible to tolerate a medium or high number of failures. Virtually all of these methods and techniques to avoid blockages are based on different types of cycle identification mechanisms. Unfortunately, most of these methods were designed to operate in the absence of failures, so they become inapplicable to the occurrence of network failures.
Desde el punto de vista del estado de la técnica, el antecedente más cercano a la invención aquí propuesta es un mecanismo de evitación de bloqueos de tres etapas, denominado “Non-blocking Adaptive Cycles” (NAC), propuesto por los autores de la presente invención en [8] y [9]. A partir de la explicación del método y su entorno de aplicación, es posible inferir de forma directa que el método NAC presenta una serie de problemas de sincronización que limitan su aplicación en redes de interconexión de alta velocidad. Más concretamente, NAC utiliza un mecanismo de identificación de ciclos de tipo “best effort”, que se aplica paso a paso de forma serial y está basado en el control de los ciclos de reloj de los encaminadores para intentar evitar las situaciones conocidas como “falsos negativos”. Es decir, el método utiliza los relojes de los encaminadores para evitar situaciones en las que no se identifica correctamente un ciclo de encaminamiento propenso a generar bloqueos, pese a la existencia del mismo. En este método, la identificación se realiza de forma serial a partir del primer encaminador que detecta las condiciones preestablecidas o de disparo. Durante dicho proceso, se aplica la identificación sobre un búfer, luego, al expirar un tiempo predefinido por el reloj, se procede a realizar la identificación sobre el siguiente búfer de entrada, y así sucesivamente. Esta situación imposibilita la aplicación del mecanismo propuesto en [8] y [9] en redes de interconexión de alta velocidad debido a que su aplicación se ve restringida a casos en los cuales no se pierda la sincronización de los relojes de los encaminadores. Esto se debe a que en NAC pueden ocurrir situaciones en las que más de un encaminador inicie el proceso de identificación sobre un mismo ciclo de dependencias. En esta situación, cada encaminador atiende las peticiones de forma serial, por lo que las respuestas a las peticiones de identificación pueden sufrir ciertos retrasos de duración variable. En los casos en que la acumulación de retrasos haga que el tiempo de identificación supere el valor umbral del reloj, al menos un encaminador llegará a la conclusión errónea de que no existe un ciclo de dependencias, por lo que no aplicará las acciones correspondientes y se generará una situación de bloqueo permanente o “deadlock” en la red. En resumen, el mecanismo de identificación propuesto en [8] y [9] puede alcanzar tanto situaciones de bloqueo como así también situaciones de “falsos negativos”. Adicionalmente, el mecanismo de evitación de bloqueos propuesto en [9] posee otras restricciones que hacen que su aplicación sea muy costosa, aunque no imposible. Estas limitaciones se basan en la disposición lógica de los elementos de evitación de bloqueos, más concretamente de los búferes de evitación de bloqueos, que se encuentran en el camino crítico de los dispositivos de red, lo que ralentiza considerablemente el funcionamiento del encaminador ya que es necesario realizar constantemente comprobaciones acerca de cuál de los dos caminos físicos conectados al búfer de entrada se debe utilizar, tanto en presencia como en ausencia de situaciones propensas a generar bloqueos en la red de interconexión. From the point of view of the state of the art, the closest antecedent to the invention proposed here is a three-stage blockage avoidance mechanism, called "Non-blocking Adaptive Cycles" (NAC), proposed by the present authors. invention in [8] and [9]. From the explanation of the method and its application environment, it is possible to infer directly that the NAC method presents a series of synchronization problems that limit its application in high-speed interconnection networks. More specifically, NAC uses a “best effort” type cycle identification mechanism, which is applied step by step serially and is based on the control of router clock cycles to try to avoid situations known as “fake negative. " That is, the method uses the clocks of the routers to avoid situations in which a routing cycle prone to generate blockages is not correctly identified, despite the existence of it. In this method, identification is performed serially from the first router that detects the preset or trigger conditions. During this process, the identification on a buffer is applied, then, when a time predefined by the clock expires, the identification is made on the next input buffer, and so on. This situation makes it impossible to apply the mechanism proposed in [8] and [9] in high-speed interconnection networks because its application is restricted to cases in which the synchronization of router clocks is not lost. This is due to the fact that in NAC situations may occur in which more than one router starts the identification process on the same dependency cycle. In this situation, each router handles the requests serially, so that the responses to the identification requests may suffer certain delays of varying duration. In cases where the accumulation of delays causes the identification time to exceed the threshold value of the clock, at least one router will reach the wrong conclusion that there is no dependency cycle, so the corresponding actions will not be applied and It will generate a permanent blocking or “deadlock” situation in the network. In summary, the identification mechanism proposed in [8] and [9] can reach both blocking situations as well as "false negative" situations. Additionally, the block avoidance mechanism proposed in [9] has other restrictions that make its application very expensive, although not impossible. These limitations are based on the logical arrangement of the block avoidance elements, more specifically of the block avoidance buffers, which are in the critical path of the network devices, which considerably slows down the operation of the router since it is It is necessary to constantly carry out checks on which of the two physical paths connected to the input buffer should be used, both in the presence and in the absence of situations prone to generate blockages in the interconnection network.
Explicación de la invención Explanation of the invention.
Aparece necesario ofrecer un alternativa al estado de la técnica que cubra las lagunas halladas en el mismo, y que en particular supere las mencionadas limitaciones de las que adolecen las propuestas hechas en [8] y [9]. It seems necessary to offer an alternative to the state of the art that covers the gaps found therein, and that in particular overcomes the aforementioned limitations of those proposed in [8] and [9].
Con tal fin, la presente invención proporciona, en un primer aspecto, un método de evitación de bloqueos en una red de interconexión, que comprende realizar secuencialmente las siguientes etapas: To this end, the present invention provides, in a first aspect, a method of preventing blockages in an interconnection network, which comprises sequentially performing the following steps:
a) detectar al menos una situación propensa a un bloqueo; e a) detect at least one situation prone to blockage; and
b) identificar al menos un ciclo de encaminamiento involucrado en dicha situación propensa a un bloqueo detectada, también conocido como ciclo de dependencia de recursos, mediante la realización de las siguientes etapas por parte de un encaminador de dicha red de interconexión: b) identify at least one routing cycle involved in said situation prone to a detected blockage, also known as a resource dependency cycle, by performing the following steps by a router of said interconnection network:
b1) componer y enviar un mensaje de identificación desde un búfer de entrada de dicho encaminador a al menos un búfer de salida, de al menos otro encaminador, conectado al mismo; y b1) composing and sending an identification message from an input buffer of said router to at least one output buffer, of at least one other router, connected thereto; Y
b2) recibir dicho mensaje de identificación en el búfer de salida asociado a dicho búfer de entrada de dicho encaminador que lo compuso, tras su retransmisión por parte de al menos dicho otro encaminador desde un búfer de entrada del mismo. b2) receiving said identification message in the output buffer associated with said input buffer of said router that composed it, after its retransmission by at least said other router from an input buffer thereof.
A diferencia del método divulgado en [9], el cual requiere del uso de temporizadores, el método propuesto por la presente invención comprende realizar dicha etapa b) mediante un mecanismo de búsqueda asíncrono intra-encaminador e inter-encaminadores que no requiere del uso de temporizadores. Unlike the method disclosed in [9], which requires the use of timers, the method proposed by the present invention comprises performing said step b) by means of an asynchronous intra-router and inter-router search mechanism that does not require the use of timers
El término búfer debe entenderse en el presente texto como el correspondiente a un dispositivo de almacenamiento utilizado para compensar las diferencias que puedan producirse en la tasa de trasmisión de datos entre dispositivos, así como también en el tiempo de ocurrencia de dichos eventos de transmisión. The term buffer should be understood herein as that corresponding to a storage device used to compensate for differences that may occur in the rate of data transmission between devices, as well as in the time of occurrence of such transmission events.
El método propuesto por el primer aspecto de la invención es un método asíncrono y escalable, compatible con las tecnologías de red actuales, capaz de identificar y recorrer dependencias cíclicas de recursos de forma asíncrona intraencaminador e inter-encaminadores, para asegurar la evitación de bloqueos en redes de interconexión con múltiples fallos dinámicos. The method proposed by the first aspect of the invention is an asynchronous and scalable method, compatible with current network technologies, capable of identifying and cycling cyclic dependencies of resources asynchronously intra-router and inter-routers, to ensure the avoidance of blockages in interconnection networks with multiple dynamic failures.
Según un ejemplo de realización, el método comprende, para identificar una pluralidad de ciclos de encaminamiento involucrados en situaciones propensas a un bloqueo, realizar, en paralelo, una pluralidad de etapas b) por parte de dicho encaminador, iniciadas mediante una correspondiente pluralidad de etapas b1) de composición y envío, en paralelo, de una pluralidad de dichos mensajes de identificación desde unos respectivos búferes de entrada, y finalizadas mediante una correspondiente pluralidad de etapas b2) de recepción de dichos mensajes de identificación en el búfer de salida asociado a dicho búfer de entrada de dicho encaminador. Este ejemplo de realización es posible gracias a las características de asincronicidad intra-encaminador que el mecanismo de búsqueda utilizado por el método de la invención utiliza, el cual permite que para que un búfer de entrada de un encaminador inicie un proceso de identificación no sea necesario que otro proceso de identificación iniciado por otro búfer de entrada finalice, pudiéndose realizar ambos en paralelo. According to an exemplary embodiment, the method comprises, in order to identify a plurality of routing cycles involved in situations prone to a block, performing, in parallel, a plurality of stages b) by said router, initiated by a corresponding plurality of stages b1) of composition and sending, in parallel, of a plurality of said identification messages from respective input buffers, and finalized by a corresponding plurality of stages b2) of receiving said identification messages in the output buffer associated with said input buffer of said router. This exemplary embodiment is possible thanks to the intra-router asynchronousness characteristics that the search mechanism used by the method of the invention uses, which allows for an input buffer of a router to initiate an identification process is not necessary. that another identification process initiated by another input buffer ends, both of which can be carried out in parallel.
Para un ejemplo de realización, dicho mecanismo de búsqueda asíncrono intra-encaminador e inter-encaminadores es un mecanismo de búsqueda en amplitud, o BFS (del inglés “Breadth First Search”). For an exemplary embodiment, said asynchronous intra-router and inter-router search mechanism is an amplitude search mechanism, or BFS ("Breadth First Search").
Dicha etapa a) comprende, según una realización, evaluar localmente en cada búfer de entrada de dicho encaminador unas condiciones de funcionamiento cuyo cumplimiento establece que el encaminador se encuentra en un estado previo a una situación de bloqueo, que es interpretado como dicha detección de una situación propensa a un bloqueo. Said step a) comprises, according to one embodiment, locally assessing in each input buffer of said router operating conditions whose compliance establishes that the router is in a state prior to a blocking situation, which is interpreted as said detection of a situation prone to blockage.
El método comprende, por parte de como mínimo dicho otro encaminador, en general por parte de varios otros encaminadores, llevar a cabo la etapa a) para sus búferes de entrada y realizar dicha retransmisión del mensaje o mensajes de identificación recibidos a través del búfer o búferes de entrada donde se cumplan dichas condiciones de funcionamiento, antes de ser recibido o recibidos, en dicha sub-etapa b2), en el búfer o búferes de salida del encaminador que compuso el mensaje o mensajes de identificación enviados. The method comprises, by at least said other router, in general by several other routers, carrying out step a) for their input buffers and performing said retransmission of the message or identification messages received through the buffer or input buffers where said operating conditions are met, before being received or received, in said sub-step b2), in the output buffer or buffers of the router that composed the message or identification messages sent.
Asimismo, para otro ejemplo de realización, el método comprende al menos iniciar una correspondiente sub-etapa b1) por parte de dicho otro encaminador o de al menos un encaminador de dicha pluralidad de encaminadores, durante la realización de la etapa b) por parte de dicho encaminador. Es decir que es posible que un encaminador implicado en un proceso de identificación iniciado por parte de otro encaminador, inicie por su parte su propio proceso de identificación antes de que finalice aquél en el que se encuentra implicado ya que, aunque esto implique acumulación de retrasos, gracias a las características de asincronicidad inter-encaminadores que el mecanismo de búsqueda utilizado por el método de la invención utiliza, ningún encaminador llegará a la conclusión errónea de que no existe un ciclo de dependencias aunque se retrase la recepción del mensaje de la sub-etapa b2), ya que, a diferencia de lo propuesto en [9], dicha recepción no está limitada a ningún valor umbral temporal. Also, for another embodiment, the method comprises at least initiating a corresponding sub-stage b1) by said other router or at least one router of said plurality of routers, during the realization of step b) by said router. That is to say that it is possible for a router involved in an identification process initiated by another router to initiate his or her own identification process before it ends the one in which it is involved since, although this implies accumulation of delays , thanks to the inter-router asynchronousness characteristics that the search mechanism used by the method of the invention uses, no router will reach the wrong conclusion that there is no dependency cycle even if the reception of the sub-message is delayed step b2), since, unlike what is proposed in [9], said reception is not limited to any time threshold value.
Para un ejemplo de realización, el método comprende, tras identificar un ciclo de encaminamiento en la etapa b) asociado a un búfer de entrada y uno de salida de dicho encaminador, liberar un espacio en dicho búfer de entrada moviendo un primer mensaje de dicho búfer de entrada a un búfer de evitación de bloqueos unido al mismo fuera de su camino crítico. For an exemplary embodiment, the method comprises, after identifying a routing cycle in step b) associated with an input buffer and an output buffer of said router, freeing a space in said input buffer by moving a first message of said buffer of entry to a block avoidance buffer attached to it outside its critical path.
El método comprende, tras dicha liberación de un espacio en el búfer de entrada de dicho encaminador, iniciar un protocolo de recuperación gradual de movimiento de mensajes que garantice el movimiento de mensajes en dicho ciclo de encaminamiento identificado en la etapa b). The method comprises, after said release of a space in the input buffer of said router, to initiate a protocol for gradual recovery of message movement that guarantees the movement of messages in said routing cycle identified in step b).
Según un ejemplo de realización, el método comprende iniciar una pluralidad de dichos protocolos de recuperación gradual de movimiento de mensajes, en paralelo, para una correspondiente pluralidad de ciclos de encaminamiento identificados en la etapa b). According to an exemplary embodiment, the method comprises initiating a plurality of said gradual message movement recovery protocols, in parallel, for a corresponding plurality of routing cycles identified in step b).
El método propuesto por el primer aspecto de la invención constituye un método de identificación y seguimiento de ciclos de dependencias de recursos tolerante a fallos para redes de interconexión de alta velocidad, basado en una novedosa técnica que permite la realización paralela y distribuida de búsquedas de prioridad en amplitud. El método propuesto consiste en identificar de forma asíncrona los ciclos de dependencias de recursos mediante un proceso de identificación aplicado en sentido contrario al que se utiliza en el proceso de asignación de recursos para el encaminamiento de mensajes a través de la red. The method proposed by the first aspect of the invention constitutes a method of identifying and monitoring cycles of resource dependencies fault tolerant for high-speed interconnection networks, based on a novel technique that allows parallel and distributed priority searches. in breadth. The proposed method is to identify asynchronously the cycles of resource dependencies through an identification process applied in the opposite direction to that used in the process of allocating resources for the routing of messages through the network.
El método tiene como finalidad dotar a las redes de interconexión de un mecanismo de identificación de ciclos asíncrono, escalable y fácil de implementar mediante soluciones hardware en los dispositivos de red actuales, para evitar situaciones de bloqueos ante la ocurrencia de uno o más fallos en los dispositivos de red. En resumen, el nuevo método que aquí se propone es un mecanismo de identificación de ciclos asíncrono no bloqueante que, a diferencia de las propuestas anteriores, prescinde de la utilización y el control de los relojes de los encaminadores y permite la aplicación en paralelo de búsquedas en amplitud. The purpose of the method is to provide interconnection networks with an asynchronous cycle identification mechanism, scalable and easy to implement by means of hardware solutions in current network devices, to avoid situations of blockages in the event of one or more failures in the network devices In summary, the new method proposed here is a non-blocking asynchronous cycle identification mechanism that, unlike previous proposals, dispenses with the use and control of router clocks and allows parallel application of searches in breadth.
Al prescindir de dichos controles, el nuevo mecanismo puede ser aplicado de forma asíncrona ante cualquier circunstancia y topología de red. Además, este nuevo mecanismo permite aplicar de forma paralela tanto los procesos de identificación como así también los de recuperación, lo que representa un novedoso avance en términos de optimización de recursos que permite mejorar el rendimiento total del sistema bajo todas las condiciones de operación de la red de interconexión. By dispensing with these controls, the new mechanism can be applied asynchronously to any circumstance and network topology. In addition, this new mechanism allows both identification processes and recovery processes to be applied in parallel, which represents a novel advance in terms of resource optimization that allows to improve the total system performance under all operating conditions of the system. interconnection network
El método propuesto por el primer aspecto de la invención permite realizar búsquedas: The method proposed by the first aspect of the invention allows searching:
- 1. one.
- Asíncronas: ya que al no utilizar los relojes de los encaminadores durante el proceso de identificación de ciclos de dependencias de recursos, el método no depende de ningún tipo de sincronización interencaminadores. A diferencia de los métodos anteriores, la invención que aquí se propone no presenta problemas en situaciones en las que más de un encaminador pueda iniciar el proceso de identificación de ciclos de forma simultánea o casi simultánea sobre un mismo ciclo de dependencias de recursos; Asynchronous: since the router clocks are not used during the process of identifying resource dependency cycles, the method does not depend on any type of inter-router synchronization. Unlike the previous methods, the invention proposed here does not present problems in situations in which more than one router can initiate the process of identifying cycles simultaneously or almost simultaneously on the same cycle of resource dependencies;
- 2. 2.
- En paralelo: ya que la replicación intra-encaminador de los paquetes de identificación de ciclos se puede realizar de forma paralela y simultanea sobre todos los búferes de entrada que cumplan las condiciones preestablecidas. A diferencia de los métodos anteriores, que aplican el proceso de identificación de forma serial, la propuesta que aquí se presenta permite realizar la identificación en paralelo, prescindiendo de la utilización de relojes en los encaminadores; In parallel: since the intra-router replication of the cycle identification packets can be performed in parallel and simultaneously on all the input buffers that meet the pre-established conditions. Unlike the previous methods, which apply the serial identification process, the proposal presented here allows parallel identification, without the use of clocks in the routers;
- 3. 3.
- No bloqueantes: porque diferencia las situaciones de bloqueo de las situaciones de congestión en la red de interconexión sin necesidad de utilizar los relojes de los encaminadores como límites temporales. Esta aportación de la invención evita que el proceso de identificación de ciclos pueda bloquearse bajo ninguna circunstancia (a diferencia de los métodos anteriormente publicados). Non-blocking: because it differentiates blocking situations from congestion situations in the interconnection network without the need to use router clocks as time limits. This contribution of the invention prevents the cycle identification process from being blocked under any circumstances (as opposed to the previously published methods).
Gracias a la modificación estructural consistente en la reubicación de los búferes de evitación de bloqueos a un lado del camino crítico del encaminador, llevada a cabo para un ejemplo de realización, se evita que el funcionamiento del encaminador se bloquee y/o ralentice durante el proceso de identificación y tratamiento de ciclos de dependencias de recursos. Thanks to the structural modification consisting in the relocation of the block avoidance buffers to the side of the critical path of the router, carried out for an embodiment, it prevents the operation of the router from blocking and / or slowing down during the process of identification and treatment of resource dependency cycles.
Un segundo aspecto de la invención concierne a un sistema de evitación de bloqueos en una red de interconexión, que comprende dos o más encaminadores previstos para la implementación del método del primer aspecto, con unos búferes de entrada, unos búferes de salida y una unidad de control apta para realizar dicha detección de dicha etapa a) y dicha identificación de dicha etapa b). A second aspect of the invention concerns a block avoidance system in an interconnection network, comprising two or more routers provided for the implementation of the method of the first aspect, with input buffers, output buffers and a unit of control suitable for performing said detection of said stage a) and said identification of said stage b).
Para un ejemplo de realización, como mínimo uno de dichos dos encaminadores comprende un búfer de evitación de bloqueos unido a un búfer de entrada del mismo fuera de su camino crítico, estando su unidad de control prevista para implementar el método del primer aspecto según el ejemplo de realización explicado anteriormente con referencia a la liberación de un espacio en el búfer de entrada del encaminador. For an exemplary embodiment, at least one of said two routers comprises a block avoidance buffer attached to an input buffer thereof outside its critical path, its control unit being provided to implement the method of the first aspect according to the example of embodiment explained above with reference to the release of a space in the router's input buffer.
Asimismo, según un ejemplo de realización del sistema del segundo aspecto, dicha unidad de control está prevista para ejecutar como mínimo un protocolo de recuperación gradual de movimiento de mensajes mediante la implementación del método del primer aspecto. Also, according to an embodiment of the system of the second aspect, said control unit is intended to execute at least one protocol for gradual recovery of message movement by implementing the method of the first aspect.
Un tercer aspecto de la invención concierne a un encaminador de evitación de bloqueos en una red de interconexión, previsto para la implementación del método del primer aspecto, comprendiendo unos búferes de entrada, unos búferes de salida y una unidad de control apta para realizar la detección de la etapa a) y la identificación de la etapa b). A third aspect of the invention concerns a block avoidance router in an interconnection network, intended for the implementation of the first aspect method, comprising input buffers, output buffers and a control unit capable of detecting of stage a) and the identification of stage b).
Según un ejemplo de realización, el encaminador propuesto por el tercer aspecto de la invención comprende un búfer de evitación de bloqueos unido a un búfer de entrada del mismo fuera de su camino crítico, estando dicha unidad de control prevista para implementar el método del primer aspecto según el ejemplo de realización explicado anteriormente con referencia a la liberación de un espacio en el búfer de entrada del encaminador. According to an embodiment, the router proposed by the third aspect of the invention comprises a block avoidance buffer attached to an input buffer thereof outside its critical path, said control unit being provided to implement the first aspect method. according to the exemplary embodiment explained above with reference to the release of a space in the router's input buffer.
Dicha unidad de control está prevista, según un ejemplo de realización, para ejecutar como mínimo un protocolo de recuperación gradual de movimiento de mensajes mediante la implementación del método del primer aspecto. Said control unit is provided, according to an exemplary embodiment, to execute at least one protocol for gradual recovery of message movement by implementing the method of the first aspect.
Breve descripción de los dibujos Brief description of the drawings
Las anteriores y otras ventajas y características se comprenderán más plenamente a partir de la siguiente descripción detallada de unos ejemplos de realización con referencia a los dibujos adjuntos, que deben tomarse a título ilustrativo y no limitativo, en los que: The foregoing and other advantages and features will be more fully understood from the following detailed description of some embodiments with reference to the attached drawings, which should be taken by way of illustration and not limitation, in which:
la Figura 1 es un cuadro de resumen de la notación y los operadores utilizados en la descripción de la presente invención; Figure 1 is a summary table of the notation and the operators used in the description of the present invention;
la Figura 2 es un diagrama de la arquitectura simplificada del encaminador o dispositivo de red propuesto por el tercer aspecto de la invención; Figure 2 is a diagram of the simplified architecture of the router or network device proposed by the third aspect of the invention;
la Figura 3 ilustra el detalle del proceso de activación y desactivación de los identificadores de ciclos en un encaminador, según un ejemplo de realización del método propuesto por el primer aspecto de la invención; Figure 3 illustrates the detail of the activation and deactivation process of the cycle identifiers in a router, according to an example of embodiment of the method proposed by the first aspect of the invention;
la Figura 4 es una representación de grafos de dos identificaciones de ciclos de dependencias de recursos en la red de interconexión en base al dispositivo de red de la Figura 2, para un ejemplo de realización del método propuesto por el primer aspecto de la invención; Figure 4 is a graph representation of two resource dependency cycle identifications in the interconnection network based on the network device of Figure 2, for an exemplary embodiment of the method proposed by the first aspect of the invention;
la Figura 5 es una representación gráfica de las tres etapas que componen el método propuesto por el primer aspecto de la invención, para un ejemplo de realización; Figure 5 is a graphic representation of the three stages that make up the method proposed by the first aspect of the invention, for an exemplary embodiment;
la Figura 6 ilustra a dos encaminadores interconectados que incluyen la notación propuesta para la descripción de unos ejemplos de realización que se realizará en el siguiente apartado con respecto al método propuesto por el primer aspecto de la invención; Figure 6 illustrates two interconnected routers that include the proposed notation for the description of some embodiments that will be performed in the following section with respect to the method proposed by the first aspect of the invention;
la Figura 7A ilustra a la red de interconexión de la Figura 6, donde un encaminador tiene tres búferes de entrada llenos y uno de salida también lleno y conectado a un búfer de entrada lleno de un segundo encaminador, y la Figura 7B es una representación de grafos de dicha red de interconexión; Figure 7A illustrates the interconnection network of Figure 6, where a router has three input buffers full and one output buffer also full and connected to an input buffer full of a second router, and Figure 7B is a representation of graphs of said interconnection network;
la Figura 8 es una representación gráfica de las condiciones de detección de situaciones propensas a generar bloqueos a detectar según la etapa a) el método propuesto por el primer aspecto de la invención, ilustradas sobre el esquema de la Figura 6; y Figure 8 is a graphic representation of the conditions for detecting situations prone to generate blockages to be detected according to step a) the method proposed by the first aspect of the invention, illustrated on the scheme of Figure 6; Y
la Figura 9 es una representación gráfica, sobre el esquema de la Figura 6, de las condiciones de recuperación en las que, aplicando el método propuesto por el primer aspecto de la invención para un ejemplo de realización, se ha liberado un espacio en el búfer de entrada de uno de los encaminadores ilustrados como paso previo al inicio de un protocolo de recuperación gradual de movimiento de mensajes. Figure 9 is a graphical representation, on the scheme of Figure 6, of the recovery conditions in which, by applying the method proposed by the first aspect of the invention for an embodiment, a space has been released in the buffer of input of one of the routers illustrated as a previous step to the beginning of a protocol of gradual recovery of message movement.
Descripción detallada de unos ejemplos de realización Detailed description of some embodiments
La notación utilizada en el presente apartado para la descripción de la invención se detalla en el cuadro de la Figura 1, así como en la red de interconexión ilustrada en la Figura 6. The notation used in this section for the description of the invention is detailed in the table of Figure 1, as well as in the interconnection network illustrated in Figure 6.
Asimismo, en la Figura 2 se muestra un diagrama simplificado de la arquitectura de un dispositivo de red o encaminador basado en los postulados de la invención aquí presentada, incluyendo las líneas de Acknowledge de entrada (ACKe) y de salida (ACKs), que representa, para un ejemplo de realización, tanto al encaminador del tercer aspecto de la invención, como a los incluidos en el sistema del segundo aspecto, como al utilizado por el método del primer aspecto. Likewise, a simplified diagram of the architecture of a network device or router based on the postulates of the invention presented here is shown in Figure 2, including the inbound (ACKe) and outgoing (ACKs) Acknowledge lines, which represents , for an exemplary embodiment, both the router of the third aspect of the invention, and those included in the system of the second aspect, as well as the one used by the method of the first aspect.
En dicha Figura 2 se ha referenciado de manera genérica los búferes de entrada como Be y los de salida como Bs, un conmutador como C, así como una serie de controladores de enlace de entrada como CEE y una serie de controladores de enlace de salida como CES, todos ellos elementos convencionales en la clase de dispositivo de red ilustrado. In said Figure 2 the input buffers such as Be and the output buffers as Bs, a switch as C, and a series of input link controllers such as CEE and a series of output link controllers have been generically referenced as CES, all of them conventional elements in the kind of network device illustrated.
Asimismo, siguiendo con la Figura 2, en ella se han indicado los búferes de evitación de bloqueos como DAB y la unidad de encaminamiento y arbitraje como EA. La función de estos elementos se describirá posteriormente. Likewise, following Figure 2, the block avoidance buffers such as DAB and the routing and arbitration unit such as EA have been indicated. The function of these elements will be described later.
La novedad de la propuesta hecha por la presente invención se basa en la utilización de un mecanismo de búsqueda asíncrona intra-encaminador e inter-encaminadores que permite identificar en tiempo real la aparición de dependencias cíclicas en la asignación de recursos de encaminamiento, así como realizar dicha identificación de manera paralela y distribuida. The novelty of the proposal made by the present invention is based on the use of an asynchronous intra-router and inter-router search mechanism that allows to identify in real time the appearance of cyclic dependencies in the allocation of routing resources, as well as to perform said identification in a parallel and distributed manner.
El mecanismo de identificación de ciclos propuesto en la invención es, para un ejemplo de realización, una extensión original de los procesos de búsqueda de prioridad en amplitud o “Breadth-First Search” (BFS), basado en la aplicación paralela de búsquedas distribuidas en cada uno de los dispositivos de red que formen parte del ciclo de dependencias de recursos. Durante la búsqueda, se aplican una serie de acciones de forma paralela y asíncrona partiendo de un dispositivo de red, o encaminador, encargado de iniciar el proceso de identificación de ciclos. The cycle identification mechanism proposed in the invention is, for an exemplary embodiment, an original extension of the amplitude priority search processes or "Breadth-First Search" (BFS), based on the parallel application of distributed searches in each of the network devices that are part of the resource dependency cycle. During the search, a series of actions are applied in a parallel and asynchronous way starting from a network device, or router, in charge of initiating the cycle identification process.
Dicho dispositivo de red, indicado en las Figuras 6 a 9 como nodo ri, constituye el punto inicial del proceso de identificación y es el dispositivo que envía los mensajes de identificación a través de al menos un búfer de entrada aij que no posea espacio de almacenamiento disponible y que, a su vez, necesite acceder a un búfer de salida bik del mismo dispositivo que tampoco posea espacio disponible, es decir que cumpla con las anteriormente referidas como condiciones de funcionamiento cuyo cumplimiento establece que el encaminador ri se encuentra en un estado previo a una situación de bloqueo. Estas acciones forman parte del proceso de identificación intra-encaminador. Said network device, indicated in Figures 6 to 9 as the ri node, constitutes the initial point of the identification process and is the device that sends the identification messages through at least one input buffer there that does not have storage space. available and, in turn, need to access a bik output buffer of the same device that also does not have available space, that is to say that it complies with the aforementioned operating conditions whose compliance establishes that the ri router is in a previous state to a blocking situation. These actions are part of the intra-router identification process.
Los dispositivos de red rh (ver Figura 9) que se encuentran físicamente conectados a los búferes de entrada aij del dispositivo de red ri, por los que se envíen los mensajes de identificación, repiten el mismo procedimiento aplicado en el dispositivo ri, es decir, replican el mensaje de identificación a los dispositivos de red conectados a sus búferes de entrada ahj que cumplan las condiciones detalladas anteriormente, ampliando el proceso de identificación al espacio de búsqueda inter-encaminadores. En caso contrario, los dispositivos de red rh que no posean búferes de entrada ahj que cumplan dichas condiciones drenan -eliminan-los mensajes de identificación en lugar de replicarlos. En otras palabras, los dispositivos de red que replican los mensajes de identificación activan de forma distribuida y asíncrona los indicadores de existencia de ciclos, mientras que los dispositivos de red que drenan los mensajes los desactivan. Este proceso se ejemplifica en la Figura 3, donde los círculos grises corresponden a los indicadores activados y los círculos blancos a los indicadores desactivados. The rh network devices (see Figure 9) that are physically connected to the input buffers aij of the ri network device, for which the identification messages are sent, repeat the same procedure applied in the ri device, that is, they replicate the identification message to the network devices connected to their input buffers ahj that meet the conditions detailed above, extending the identification process to the inter-router search space. Otherwise, the rh network devices that do not have ahj input buffers that meet these conditions drain - remove - the identification messages instead of replicating them. In other words, the network devices that replicate the identi fi cation messages activate in a distributed and asynchronous manner the indicators of the existence of cycles, while the network devices that drain the messages deactivate them. This process is exemplified in Figure 3, where the gray circles correspond to the activated indicators and the white circles to the deactivated indicators.
En dicha Figura 3 se ilustran cinco nodos ry,rh,rz,ri,rm, y puede verse que el nodo central ri dispone de cuatro búferes de entrada ai1,ai2,ai3,ai4 y cuatro de salida bi1,bi2,bi3,bi4 y que ha iniciado tres ciclos de identificación en paralelo a través de tres respectivos búferes de entrada ai1,ai3,ai4 en los cuales se cumplían las tres condiciones de funcionamiento anteriormente referidas e indicativas de un estado previo a una situación de bloqueo, y que se encuentran conectados respectivamente a un búfer de salida by4 del nodo ry, a un búfer de salida bh3 del nodo rh yaun búfer de salida bz1 del nodo rz para la transmisión de unos respectivos mensajes de identificación de ciclos. In said Figure 3 five nodes ry, rh, rz, ri, rm are illustrated, and it can be seen that the central node ri has four input buffers ai1, ai2, ai3, ai4 and four output bi1, bi2, bi3, bi4 and that it has initiated three cycles of identification in parallel through three respective input buffers ai1, ai3, ai4 in which the three operating conditions previously referred to and indicative of a state prior to a blocking situation were met, and which they are respectively connected to an output buffer b and b of node ry, an output buffer bh3 of node rh and an output buffer bz1 of node rz for the transmission of respective cycle identification messages.
Los ciclos se identifican cuando el dispositivo de red ri que inició el proceso de identificación y seguimiento recibe el correspondiente mensaje de identificación de ciclos por el búfer de salida bik correcto, que en el caso ilustrado por la Figura 3 es el búfer bi3, que ha recibido dicho mensaje de identificación a través del búfer de entrada am3 del nodo rm. The cycles are identified when the ri network device that initiated the identification and tracking process receives the corresponding cycle identification message by the correct bik output buffer, which in the case illustrated by Figure 3 is the bi3 buffer, which has said identification message received through the input buffer am3 of the rm node.
Este último proceso se ejemplifica en el diagrama de la Figura 4, donde se muestran dos procesos de identificación de ciclos aplicados de manera asíncrona sobre el mismo ciclo de dependencias de recursos, a partir de los dispositivos de red ri yrh, respectivamente. Explicado de forma coloquial, el método de identificación y seguimiento de ciclos consiste en iluminar paso a paso el camino (ciclos de dependencias), encendiendo (activando) bombillos (indicadores de ciclos) a lo largo del camino. Al ser los propios dispositivos de red -tanto los que replican como los que drenan los mensajes-los encargados de activar y desactivar los indicadores de ciclos, la invención aquí propuesta logra que el método de identificación de ciclos se aplique de forma distribuida y asíncrona a lo largo del ciclo de dependencias de recursos. This last process is exemplified in the diagram of Figure 4, which shows two processes for identifying cycles applied asynchronously on the same cycle of resource dependencies, from the ri and rh network devices, respectively. Explained colloquially, the method of identifying and monitoring cycles consists of illuminating the path step by step (dependency cycles), lighting (activating) light bulbs (cycle indicators) along the path. As the network devices themselves - both those that replicate and those that drain the messages - are responsible for activating and deactivating the cycle indicators, the invention proposed here allows the cycle identification method to be applied in a distributed and asynchronous manner. throughout the cycle of resource dependencies.
Este enfoque asíncrono distribuido de búsquedas en amplitud no ha sido propuesto ni aplicado con anterioridad por ningún método de evitación de bloqueos. This asynchronous distributed search approach in amplitude has not been previously proposed or applied by any method of blocking avoidance.
El nuevo método de identificación que propone la presente invención en su primer aspecto está compuesto, para un ejemplo de realización, por tres etapas, representadas gráficamente en la Figura 5: The new identification method proposed by the present invention in its first aspect is composed, for an exemplary embodiment, by three stages, graphically represented in Figure 5:
- 1. one.
- La primera identificación del ciclo de dependencias de recursos, iniciada por el primer encaminador ri (correspondiente al nodo 1 de la Figura 5 como 1) que detecta las condiciones de ocupación de búferes explicadas anteriormente. Esta etapa finaliza cuando el encaminador ri recibe el correspondiente mensaje de identificación de ciclos a través del búfer de salida bik correcto. Estas acciones corresponden a la etapa 1 de la Figura 5; The first identification of the resource dependency cycle, initiated by the first router ri (corresponding to node 1 of Figure 5 as 1) that detects the buffer occupation conditions explained above. This stage ends when the router rou receives the corresponding cycle identification message through the correct bik output buffer. These actions correspond to stage 1 of Figure 5;
- 2. 2.
- Las identificaciones secundarias, que se realizan sobre el mismo ciclo de dependencias de recursos pero son iniciadas por parte de al menos otro encaminador rh desde un búfer de entrada ahj del mismo. Estas acciones corresponden a la etapa 2 de la Figura 5, ilustradas para cuatro de dichas identificaciones secundarias iniciadas desde cuatro respectivos encaminadores (o nodos 2, 3,4y5enla Figura 5); The secondary identi fi cations, which are carried out on the same cycle of resource dependencies but are initiated by at least one other router rh from an input buffer ahj thereof. These actions correspond to stage 2 of Figure 5, illustrated for four of said secondary identi fi cations initiated from four respective routers (or nodes 2, 3,4 and 5 in Figure 5);
- 3. 3.
- La propagación de la señal de “recuperación”, iniciada por el encaminador ri inmediatamente después de la finalización de la etapa 1. La utilización de la señal de recuperación se explica en detalle más adelante, para un ejemplo de aplicación de la invención. Estas acciones (R1 a R5) corresponden a la etapa 3 de la Figura 5. The propagation of the "recovery" signal, initiated by the ri router immediately after the end of step 1. The use of the recovery signal is explained in detail below, for an example of application of the invention. These actions (R1 to R5) correspond to stage 3 of Figure 5.
La demostración de la aplicabilidad e idoneidad del mecanismo de identificación de ciclos perteneciente a la invención aquí presentada se basa en el hecho de que una de las finalidades de las búsquedas de tipo BFS es “encontrar ciclos en un grafo o probar que dichos ciclos no existen”. Dicho enfoque de búsquedas de tipo BFS se basa en los conceptos matemáticos a partir de los cuales la arquitectura de una red puede ser representada como un grafo (representación abstracta de un conjunto vértices o nodos y aristas) donde los vértices representan los dispositivos de red The demonstration of the applicability and suitability of the cycle identification mechanism pertaining to the invention presented here is based on the fact that one of the purposes of BFS searches is to “find cycles in a graph or prove that such cycles do not exist " Said BFS type search approach is based on the mathematical concepts from which the architecture of a network can be represented as a graph (abstract representation of a set of vertices or nodes and edges) where vertices represent network devices
o procesamiento, según corresponda, y las aristas representan los enlaces que conectan los dispositivos [11]. Si se consideran los búferes de entrada (aij) y de salida (bik) que componen los búferes lógicos (ci,mk,j) de la Figura 6 como nodos, y las conexiones del sistema de control de flujo y señales ACK -con origen y finalización en la unidad de encaminamiento y arbitraje EA-del dispositivo de red como las aristas, se puede obtener una representación equivalente de la red como un grafo, tal y como se ejemplifica en las Figuras 7a y 7b, respectivamente. A partir de dicho grafo se pueden realizar búsquedas de tipo BFS asíncronas y en paralelo intra-encaminador y asíncronas y distribuidas interencaminadores, según el método propuesto en la invención aquí presentada. or processing, as appropriate, and the edges represent the links that connect the devices [11]. If the input (aij) and output (bik) buffers that make up the logical buffers (ci, mk, j) in Figure 6 are considered as nodes, and the connections of the ACK fl ow control system and signals - with origin and completion in the routing and arbitration unit EA-of the network device such as edges, an equivalent representation of the network can be obtained as a graph, as exemplified in Figures 7a and 7b, respectively. From this graph, asynchronous and parallel intra-router and asynchronous and distributed inter-router BFS type searches can be performed, according to the method proposed in the invention presented herein.
A fin de mejorar la compresión de la invención, se describe a continuación un ejemplo de aplicación del método de identificación y seguimiento de ciclos aquí propuesto. El ejemplo de aplicación incluye la detección de situaciones propensas a generar bloqueos, y la identificación y seguimiento de los ciclos de encaminamiento involucrados en dichas situaciones, que es el objeto de la presente invención. In order to improve the compression of the invention, an example of application of the cycle identification and monitoring method proposed herein is described below. The application example includes the detection of situations prone to generate blockages, and the identification and monitoring of the routing cycles involved in said situations, which is the object of the present invention.
Conceptualmente, la propuesta se fundamenta en evitar que se cumplan dos de las cuatro principales condiciones que causan los bloqueos: la condición de “retención y espera” (“hold-and-wait”), y la condición de “espera circular” (“circular wait”) [10]. Para cumplir este objetivo y evitar así la aparición de bloqueos se incluye un búfer de evitación de bloqueos DAB (por la denominación inglesa “Deadlock Avoidance Buffer”) unido a cada búfer de entrada como se ejemplifica en la Figura 2, y la aplicación de un grupo de acciones simples al momento de acceder y utilizar los búferes de salida que no posean espacio libre disponible. Es importante aclarar que estas acciones solamente se aplican bajo circunstancias específicas directamente relacionadas con el espacio disponible en los búferes de ciertos dispositivos de red, tal y como se explicó anteriormente. Conceptually, the proposal is based on preventing the fulfillment of two of the four main conditions that cause blockages: the “hold-and-wait” condition, and the “circular wait” condition (“ circular wait ”) [10]. To achieve this objective and thus avoid the appearance of blockages, a DAB block avoidance buffer (by the English name "Deadlock Avoidance Buffer") is included attached to each input buffer as exemplified in Figure 2, and the application of a group of simple actions when accessing and using the output buffers that do not have available free space. It is important to clarify that these actions are only applied under specific circumstances directly related to the space available in the buffers of certain network devices, as explained above.
Con la finalidad de poder detectar cuáles son las situaciones que tienen la capacidad de generar bloqueos en la red, se proponen tres condiciones de funcionamiento (ilustradas en la Figura 8, e indicadas como (1), (2) y (3)) que actúan como disparadores de los mecanismos de evitación de bloqueos. La situación descrita por estas condiciones es la de un búfer de entrada de un nodo cualquiera que no posee espacio de almacenamiento disponible (Condición (3)) e intenta escoger como próximo paso un búfer de salida (dentro del mismo nodo de red) que tampoco posee espacio disponible (Condición (2)) y se encuentra físicamente enlazado con otro nodo de red cuyo correspondiente búfer de entrada tampoco tiene espacio disponible (Condición (1)). In order to be able to detect what are the situations that have the capacity to generate blockages in the network, three operating conditions are proposed (illustrated in Figure 8, and indicated as (1), (2) and (3)) that they act as triggers for blockage avoidance mechanisms. The situation described by these conditions is that of an input buffer of any node that does not have available storage space (Condition (3)) and tries to choose as an next step an output buffer (within the same network node) that neither It has available space (Condition (2)) and is physically linked to another network node whose corresponding input buffer also has no available space (Condition (1)).
Estas tres condiciones se evalúan localmente en cada dispositivo de red ri antes de cada ciclo de encaminamiento de mensajes. Si las tres condiciones anteriores se cumplen, el dispositivo de red se encuentra en un estado previo a una situación de bloqueo (ya que aún quedan recursos disponibles en los búferes DAB). Ante dichas circunstancias, el dispositivo de red en el que se plantean estas condiciones (que es el nodo ri en la Figura 8) aplica las siguientes acciones: These three conditions are evaluated locally on each ri network device before each message routing cycle. If all three of the above conditions are met, the network device is in a state prior to a blocking situation (since there are still resources available in DAB buffers). In these circumstances, the network device in which these conditions arise (which is the ri node in Figure 8) applies the following actions:
- 1. one.
- Detiene la inyección de mensajes en el búfer lógico (ci,mk,j); Stops the injection of messages in the logical buffer (ci, mk, j);
- 2. 2.
- Detiene la inyección de nuevos mensajes desde el búfer de entrada conectado al nodo de procesamiento local (si fuese necesario), es decir desde el búfer de entrada del nodo ri marcado en gris. It stops the injection of new messages from the input buffer connected to the local processing node (if necessary), that is, from the input buffer of the gray-marked ri node.
Luego de aplicar estas dos acciones, el dispositivo de red ri debe identificar y seguir los ciclos de encaminamiento entre pares origen-destino propensos a generar bloqueos. Este proceso es el responsable de identificar el inicio y final de los ciclos de encaminamiento entre pares origen-destino en cada dispositivo de red involucrado en una posible situación de bloqueo. Nótese que dicho proceso corresponden a las etapas 1 y 2 de la Figura 5. La identificación de los ciclos de dependencias de recursos se puede realizar de forma asíncrona y paralela intra-encaminador y asíncrona y distribuida inter-encaminadores, realizando la identificación en sentido contrario al que se utiliza en el proceso de asignación de recursos para el encaminamiento de mensajes a través de la red. Este proceso tiene como objeto asegurar el acceso a los últimos recursos libres en un ciclo de encaminamiento por parte del búfer de entrada correcto. After applying these two actions, the ri network device must identify and follow the routing cycles between origin-destination pairs likely to generate blockages. This process is responsible for identifying the start and end of the routing cycles between origin-destination pairs in each network device involved in a possible blocking situation. Note that this process corresponds to stages 1 and 2 of Figure 5. The identification of resource dependency cycles can be performed asynchronously and parallel intra-router and asynchronous and distributed inter-routers, making the identification in the opposite direction the one used in the process of allocating resources for routing messages through the network. This process is intended to ensure access to the last free resources in a routing cycle by the correct input buffer.
Los pasos necesarios para la identificación y seguimiento de los ciclos de encaminamiento aplicados por un dispositivo de red son: The necessary steps for the identification and monitoring of routing cycles applied by a network device are:
- 1. one.
- Componer un nuevo mensaje de identificación que incluya como información: el identificador del dispositivo de red ri que lo creó; la identificación del búfer de entrada aij donde se cumplieron las condiciones de disparo; y el identificador del búfer de salida bik por el que se debería recibir el mensaje si es parte del ciclo de encaminamiento; Compose a new identification message that includes as information: the identifier of the ri network device that created it; the identification of the input buffer there where the trigger conditions were met; and the identifier of the output buffer bik through which the message should be received if it is part of the routing cycle;
- 2. 2.
- Enviar el mensaje de identificación en la dirección opuesta a la dirección de encaminamiento de mensajes, mediante el mecanismo de control de flujo punto a punto del dispositivo de red ri. El mensaje se envía a los búferes de salida (bhk E ch,ik,j) de los dispositivos de red rh (ver Figura 9) físicamente conectados con los búferes de entrada aij que cumplen con las condiciones de disparo. Send the identification message in the opposite direction to the message routing address, by the point-to-point flow control mechanism of the network device ri. The message is sent to the output buffers (bhk E ch, ik, j) of the rh network devices (see Figure 9) physically connected to the input buffers aij that meet the firing conditions.
Al recibir uno de estos mensajes de identificación, cada dispositivo de red rh debe verificar las condiciones y, si al menos uno de los búferes de entrada ahj cumple con dichas condiciones, el dispositivo de red replica (retransmite) este mensaje de identificación a los búferes apropiados. En caso contrario, el dispositivo de red drena (elimina) el mensaje. La primer etapa de identificación del ciclo de la Figura 5 concluye cuando el mensaje de identificación llega al dispositivo de red que lo compuso ri a través del búfer de salida bik correcto, según ilustra la flecha de la línea gris de la Figura 4 para el nodo ri o la de la negra para el nodo rh. Upon receiving one of these identification messages, each rh network device must verify the conditions and, if at least one of the ahj input buffers meets these conditions, the network device replicates (retransmits) this identification message to the buffers appropriate. Otherwise, the network device drains (deletes) the message. The first identification stage of the cycle of Figure 5 concludes when the identification message arrives at the network device that composed it ri through the correct bik output buffer, as illustrated by the arrow of the gray line of Figure 4 for the node ri or that of the black for the rh node.
Una vez identificados los búferes de entrada y salida aij,bik que forman parte del ciclo, se procede a liberar un espacio en el búfer de entrada aij mediante la operación move(aij,dij). Esta operación es la que finalmente introduce un nuevo espacio libre en el ciclo de encaminamiento al mover el primer mensaje del búfer de entrada aij al búfer DAB dij (ver Figura 9), destrabando la situación de semi bloqueo del búfer de entrada aij y permitiendo que los mensajes del ciclo avancen hacia sus respectivos destinos. Los casos en los que la identificación no concluye se deben a que el mensaje de identificación ha sido enviado a través del búfer de entrada aij correcto pero existe al menos un dispositivo de red rx a lo largo del ciclo en el que las condiciones no se cumplen por lo que el mensaje de identificación se elimina. En este caso, el ciclo de encaminamiento no se encuentra bloqueado sino congestionado. Once the input and output buffers aij, bik that are part of the cycle, have been identified, a space is released in the input buffer aij through the move operation (aij, dij). This operation is the one that finally introduces a new free space in the routing cycle by moving the first message from the input buffer aij to the DAB buffer dij (see Figure 9), unlocking the semi-blocking situation of the input buffer aij and allowing cycle messages move to their respective destinations. The cases in which the identification does not end are due to the fact that the identification message has been sent through the correct input buffer aij but there is at least one rx network device throughout the cycle in which the conditions are not met So the identification message is deleted. In this case, the routing cycle is not blocked but congested.
Como primera medida, el dispositivo de red ri en el que se identificó la situación de riesgo debe componer y enviar (en dirección opuesta al encaminamiento de mensajes de aplicaciones) la señal de recuperación correspondiente a la etapa 3 de la Figura 5, a fin de que el dispositivo de red rh que le precede en el ciclo de encaminamiento inicie el protocolo de recuperación gradual de movimiento. Dicha señal es utilizada para alertar a los dispositivos de red precedentes de que el nuevo espacio generado en su búfer de salida bhk es en realidad un espacio generado a partir del uso del búfer DAB. Esta señal permite al dispositivo de red rh distinguir entre las dos siguientes situaciones: As a first step, the network device ri in which the risk situation was identified must compose and send (in the opposite direction to the routing of application messages) the recovery signal corresponding to step 3 of Figure 5, in order to that the network device rh that precedes it in the routing cycle initiates the protocol of gradual movement recovery. This signal is used to alert previous network devices that the new space generated in their bhk output buffer is actually a space generated from the use of the DAB buffer. This signal allows the rh network device to distinguish between the following two situations:
- • •
- El nuevo espacio fue generado por la desaparición de la situación propensa a generar un bloqueo; The new space was generated by the disappearance of the situation prone to generate a blockade;
- • •
- El nuevo espacio fue generado por la utilización del búfer DAB en el dispositivo de red conectado a su búfer de salida bhk. The new space was generated by the use of the DAB buffer in the network device connected to its bhk output buffer.
Luego de recibir la señal de recuperación, el dispositivo de red rh utiliza la información obtenida a partir de su propio proceso de identificación (una de las identificaciones secundarias de la etapa 2 de la Figura 5) para identificar localmente cuál de los búferes de entrada (ahj) pertenece al ciclo de encaminamiento. Esta acción es crítica ya que cada dispositivo de red que forme parte del ciclo de encaminamiento debe aplicar la operación move(ahj,dhj) sobre el búfer de entrada ahj correcto. Una vez identificados los ciclos de encaminamiento involucrados en situaciones propensas a generar bloqueos, se debe aplicar un conjunto de acciones que garanticen el movimiento de los mensajes en dichos ciclos sin que se lleguen a producir las situaciones de bloqueo. Este conjunto de acciones tiene como punto de partida la etapa de identificaciones secundarias de la Figura 5, en la que al menos un encaminador rh inicia su propia identificación del ciclo de dependencias para saber cuáles de sus búferes de entrada ahj y de salida bhk están involucrados en el ciclo y poder luego asegurar la recuperación gradual de movimiento de mensajes hasta que se alcanzan las condiciones de funcionamiento normal de la red, es decir, que no se cumpla al menos una de las condiciones de la Figura 9 (indicadas como (4), (5), (6) y (7)). Si alguna de estas cuatro condiciones no se cumple, el protocolo de recuperación gradual de movimiento de mensajes debe ser finalizado ya que esto implica la red ha vuelto a alcanzar sus condiciones de funcionamiento normal. Como primer medida, se reinicia las inyección de mensajes en el búfer lógico (ch,ik,j) mediante la acción start_st(bhk) (dando prioridad a los mensajes almacenados en los búferes DAB). Finalmente se vuelve a permitir la inyección de mensajes desde el nodo de procesamiento local mediante la acción start_fw(ahj). After receiving the recovery signal, the network device rh uses the information obtained from its own identification process (one of the secondary identifications of step 2 of Figure 5) to locally identify which of the input buffers ( ahj) belongs to the routing cycle. This action is critical since each network device that is part of the routing cycle must apply the move (ahj, dhj) operation on the correct ahj input buffer. Once the routing cycles involved in situations prone to generating blockages are identified, a set of actions that guarantee the movement of the messages in said cycles must be applied without blocking situations occurring. This set of actions has as its starting point the stage of secondary identi fi cations of Figure 5, in which at least one rh router starts its own identification of the dependency cycle to know which of its ahj input and bhk output buffers are involved. in the cycle and then be able to ensure the gradual recovery of message movement until the normal operating conditions of the network are reached, that is, that at least one of the conditions in Figure 9 is not met (indicated as (4) , (5), (6) and (7)). If any of these four conditions is not met, the protocol for gradual recovery of message movement must be finalized since this implies that the network has returned to its normal operating conditions. As a first step, the message injection in the logical buffer (ch, ik, j) is restarted by the start_st (bhk) action (giving priority to the messages stored in the DAB buffers). Finally, the injection of messages from the local processing node is again allowed by the start_fw (ahj) action.
Posible aplicación industrial y puesta en producción de la invención: Possible industrial application and production of the invention:
La meta de la invención es lograr su incorporación, utilización y puesta en práctica -a nivel industrial y de producción-en redes de interconexión de altas prestaciones. Es por este motivo que la invención busca proveer un método de evitación de bloqueos que permita a una red de interconexión de alta velocidad tolerar uno o más fallos en sus componentes. El esquema de la Figura 2 representa un posible punto de partida para el diseño de dispositivos compatibles con la invención, aunque solamente es ilustrativo y no limitativo. The goal of the invention is to achieve its incorporation, use and implementation - at industrial and production level - in high-performance interconnection networks. It is for this reason that the invention seeks to provide a method of blocking avoidance that allows a high-speed interconnection network to tolerate one or more faults in its components. The scheme of Figure 2 represents a possible starting point for the design of devices compatible with the invention, although it is only illustrative and not limiting.
Un experto en la materia podría introducir cambios y modificaciones en los ejemplos de realización descritos sin salirse del alcance de la invención según está definido en las reivindicaciones adjuntas. A person skilled in the art could introduce changes and modifications in the described embodiments without departing from the scope of the invention as defined in the appended claims.
Referencias References
[1] A. W. Roscoe, “Routing messages through networks: an exercise in deadlock avoidance”, in Programming of Transputer Based Machines: Proceedings of 7th occam User Group Technical Meeting, 1987. [1] A. W. Roscoe, "Routing messages through networks: an exercise in deadlock avoidance", in Programming of Transputer Based Machines: Proceedings of 7th occam User Group Technical Meeting, 1987.
[2] V. Puente,C. Izu,R. Beivide,J.A. Gregorio,F. Vallejo, and J. M. Prellezo, “The adaptive bubble router”, J. Parallel Distrib. Comput., vol. 61, no. 9, pp. 1180-1208, 2001. [2] V. Puente, C. Izu, R. Beivide, J.A. Gregorio, F. Vallejo, and J. M. Prellezo, "The adaptive bubble router", J. Parallel Distrib. Comput., Vol. 61, no. 9, pp. 1180-1208, 2001.
[3] J. Duato, “A theory of deadlock-free adaptive multicast routing in wormhole networks”, Parallel and Distributed Systems, IEEE Transactions on, vol. 6, pp. 976-987, Sep 1995. [3] J. Duato, "A theory of deadlock-free adaptive multicast routing in wormhole networks", Parallel and Distributed Systems, IEEE Transactions on, vol. 6, pp. 976-987, Sep 1995.
[4] J. Duato, “A necessary and suficient condition for deadlock-free routing in cut-through and store-and-forward networks”, IEEE Trans. Parallel Distrib. Syst., vol. 7, no. 8, pp. 841-854, 1996. [4] J. Duato, "A necessary and sufficient condition for deadlock-free routing in cut-through and store-and-forward networks", IEEE Trans. Parallel Distrib. Syst., Vol. 7, no. 8, pp. 841-854, 1996.
[5] S. Konstantinidou and L. Snyder, “The chaos router: a practical application of randomization in network routing”, in SPAA ’90: Proc. of the 2nd Annual ACM Symposium on Parallel Algorithms and Architectures, (New York, USA), pp. 21-30, 1990. [5] S. Konstantinidou and L. Snyder, "The chaos router: a practical application of randomization in network routing", in SPAA ’90: Proc. of the 2nd Annual ACM Symposium on Parallel Algorithms and Architectures, (New York, USA), pp. 21-30, 1990.
[6] S. Konstantinidou and L. Snyder, “Chaos router: architecture and performance”, SIGARCH Comput. Archit. News, vol. 19, no. 3, pp. 212-221, 1991. [6] S. Konstantinidou and L. Snyder, "Chaos router: architecture and performance", SIGARCH Comput. Archit. News, vol. 19, no. 3, pp. 212-221, 1991.
[7] S. Konstantinidou and L. Snyder, “The chaos router”, Computers, IEEE Transactions on, vol. 43, pp. 13861397, Dec 1994. [7] S. Konstantinidou and L. Snyder, "The chaos router", Computers, IEEE Transactions on, vol. 43, pp. 13861397, Dec 1994.
[8] G. Zarza,D. Lugones,D. Franco, and E. Luque, “Deadlock avoidance for interconnection networks with multiple dynamic faults”, in 18th Euromicro International Conference on Parallel, Distributed and Network-Based Computing, pp. 276-280, Feb 2010. [8] G. Zarza, D. Lugones, D. Franco, and E. Luque, “Deadlock avoidance for interconnection networks with multiple dynamic faults”, in 18th Euromicro International Conference on Parallel, Distributed and Network-Based Computing, pp. 276-280, Feb 2010.
[9] G. Zarza,D. Lugones,D. Franco, and E. Luque, “Non-blocking adaptive cycles: Deadlock avoidance for fault-tolerant interconnection networks”, in Cluster Computing Workshops and Posters (CLUSTER WORKSHOPS), 2010 IEEE International Conference on, pp. 1-4, Sep 20th 2010. [9] G. Zarza, D. Lugones, D. Franco, and E. Luque, “Non-blocking adaptive cycles: Deadlock avoidance for fault-tolerant interconnection networks”, in Cluster Computing Workshops and Posters (CLUSTER WORKSHOPS), 2010 IEEE International Conference on, pp. 1-4, Sep 20th 2010.
[10] E. G. Coffman,M. Elphick, and A. Shoshani, “System deadlocks”, ACM Comput. Surv., vol. 3, no. 2, pp. 67-78, 1971. [10] E. G. Coffman, M. Elphick, and A. Shoshani, "System deadlocks", ACM Comput. Surv., Vol. 3) No. 2, pp. 67-78, 1971.
[11] L.-H. Hsu and C.-K. Lin, Graph Theory and Interconnection Networks. CRC Press, 2008. [11] L.-H. Hsu and C.-K. Lin, Graph Theory and Interconnection Networks. CRC Press, 2008.
Claims (19)
- 2. 2.
- Método según la reivindicación 1, caracterizado porque, para identificar una pluralidad de ciclos de encaminamiento involucrados en situaciones propensas a un bloqueo, el método comprende realizar, en paralelo, una pluralidad de etapas b) por parte de dicho encaminador (ri), iniciadas mediante una correspondiente pluralidad de sub-etapas b1) de composición y envío, en paralelo, de una pluralidad de dichos mensajes de identificación desde unos respectivos búferes de entrada (ai1,ai2,ai3,ai4), y finalizadas mediante una correspondiente pluralidad de etapas b2) de recepción de dichos mensajes de identificación en el búfer de salida (bi1,bi2,bi3,bi4) asociado a dicho búfer de entrada (ai1,ai2, ai3,ai4) de dicho encaminador (ri). Method according to claim 1, characterized in that, to identify a plurality of routing cycles involved in situations prone to a blockage, the method comprises carrying out, in parallel, a plurality of stages b) by said router (ri), initiated by a corresponding plurality of sub-stages b1) of composition and sending, in parallel, of a plurality of said identification messages from respective input buffers (ai1, ai2, ai3, ai4), and finalized by a corresponding plurality of stages b2 ) of receiving said identification messages in the output buffer (bi1, bi2, bi3, bi4) associated with said input buffer (ai1, ai2, ai3, ai4) of said router (ri).
- 3. 3.
- Método según una cualquiera de las reivindicaciones anteriores, caracterizado porque dicho mecanismo de búsqueda asíncrono intra-encaminador e inter-encaminadores es un mecanismo de búsqueda en amplitud. Method according to any one of the preceding claims, characterized in that said asynchronous intra-router and inter-router search mechanism is an amplitude search mechanism.
- 4. Four.
- Método según una cualquiera de las reivindicaciones anteriores, caracterizado porque dicho mensaje de identificación incluye por lo menos información referente al identificador del encaminador (ri) que lo creó, a la identificación del búfer de entrada (aij) por el que se envió y al identificador del búfer de salida (bik) por el que se debería recibir el mensaje de identificación si es parte del ciclo de encaminamiento. Method according to any one of the preceding claims, characterized in that said identification message includes at least information concerning the identifier of the router (ri) that created it, the identification of the input buffer (aij) for which it was sent and the identifier. of the output buffer (bik) for which the identification message should be received if it is part of the routing cycle.
- 5. 5.
- Método según una cualquiera de las reivindicaciones anteriores, caracterizado porque dicha etapa a) comprende evaluar localmente en cada búfer de entrada (ai1,ai2,ai3,ai4) de dicho encaminador (ri) unas condiciones de funcionamiento cuyo cumplimiento establece que el encaminador (ri) se encuentra en un estado previo a una situación de bloqueo, que es interpretado como dicha detección de una situación propensa a un bloqueo. Method according to any one of the preceding claims, characterized in that said step a) comprises assessing in each input buffer (ai1, ai2, ai3, ai4) of said router (ri) operating conditions whose compliance establishes that the router (ri ) is in a state prior to a blocking situation, which is interpreted as said detection of a situation prone to a blocking.
- 8. 8.
- Método según la reivindicación 5, caracterizado porque dicha condiciones de funcionamiento describen una situación en la que un búfer de entrada (aij) de un encaminador (ri) no posee espacio de almacenamiento disponible e intenta escoger como próximo paso un búfer de salida (bik), del mismo encaminador (ri), que tampoco posee espacio disponible y se encuentra físicamente enlazado con el búfer de entrada (amj) de otro encaminador (rm) que tampoco tiene espacio disponible. Method according to claim 5, characterized in that said operating conditions describe a situation in which an input buffer (aij) of a router (ri) does not have available storage space and attempts to choose an output buffer (bik) as the next step , of the same router (ri), which also does not have available space and is physically linked to the input buffer (amj) of another router (rm) that also has no available space.
- 9. 9.
- Método según una cualquiera de las reivindicaciones anteriores, caracterizado porque comprende al menos iniciar una correspondiente sub-etapa b1) por parte de al menos dicho otro encaminador (rh) o de al menos un encaminador de dicha pluralidad de encaminadores (rh,rm), durante la realización de la etapa b) por parte de dicho encaminador (ri). Method according to any one of the preceding claims, characterized in that it comprises at least initiating a corresponding sub-stage b1) by at least said other router (rh) or at least one router of said plurality of routers (rh, rm), during the realization of step b) by said router (ri).
- 10. 10.
- Método según una cualquiera de las reivindicaciones anteriores, caracterizado porque comprende, tras identificar un ciclo de encaminamiento en dicha etapa b) asociado a un búfer de entrada (aij) y uno de salida (bik) de dicho encaminador (ri), liberar un espacio en dicho búfer de entrada (aij) moviendo un primer mensaje de dicho búfer de entrada (aij) a un búfer de evitación de bloqueos (dij) unido al mismo fuera de su camino crítico. Method according to any one of the preceding claims, characterized in that, after identifying a routing cycle in said stage b) associated with an input buffer (aij) and an output buffer (bik) of said router (ri), freeing a space in said input buffer (aij) by moving a first message from said input buffer (aij) to a block avoidance buffer (dij) attached thereto outside its critical path.
- 11. eleven.
- Método según la reivindicación 10, caracterizado porque comprende, tras dicha liberación de un espacio en el búfer de entrada (aij) de dicho encaminador (ri), iniciar un protocolo de recuperación gradual de movimiento de mensajes que garantice el movimiento de mensajes en dicho ciclo de encaminamiento identificado en la etapa b). Method according to claim 10, characterized in that, after said release of a space in the input buffer (aij) of said router (ri), to initiate a protocol for gradual recovery of message movement that guarantees the movement of messages in said cycle of routing identified in step b).
- 12. 12.
- Método según la reivindicación 11, caracterizado porque comprende iniciar una pluralidad de dichos protocolos de recuperación gradual de movimiento de mensajes, en paralelo, para una correspondiente pluralidad de ciclos de encaminamiento identificados en la etapa b). Method according to claim 11, characterized in that it comprises initiating a plurality of said protocols for gradual recovery of message movement, in parallel, for a corresponding plurality of routing cycles identified in step b).
- 13. 13.
- Sistema de evitación de bloqueos en una red de interconexión, caracterizado porque comprende al menos dos encaminadores (ri,rh) previstos para la implementación del método según una cualquiera de las reivindicaciones anteriores, con unos búferes de entrada (aij,ahj), unos búferes de salida (bik,bhk) y una unidad de control apta para realizar dicha detección de dicha etapa a) y dicha identificación de dicha etapa b). Block avoidance system in an interconnection network, characterized in that it comprises at least two routers (ri, rh) provided for the implementation of the method according to any one of the preceding claims, with input buffers (aij, ahj), buffers output (bik, bhk) and a control unit suitable for performing said detection of said stage a) and said identification of said stage b).
- 14. 14.
- Sistema según la reivindicación 13, caracterizado porque al menos uno (ri) de dichos dos encaminadores (ri, rh) comprende un búfer de evitación de bloqueos (dij) unido a un búfer de entrada (aij) del mismo fuera de su camino crítico, estando su unidad de control prevista para implementar el método según la reivindicación 9 para realizar dicha liberación de un espacio en dicho búfer de entrada (aij). System according to claim 13, characterized in that at least one (ri) of said two routers (ri, rh) comprises a block avoidance buffer (dij) attached to an input buffer (aij) thereof outside its critical path, its control unit being provided to implement the method according to claim 9 to perform said release of a space in said input buffer (aij).
- 15. fifteen.
- Sistema según la reivindicación 14, caracterizado porque dicha unidad de control está prevista para ejecutar al menos un protocolo de recuperación gradual de movimiento de mensajes mediante la implementación del método según la reivindicación 11 ó 12. System according to claim 14, characterized in that said control unit is provided to execute at least one protocol for gradual recovery of message movement by implementing the method according to claim 11 or 12.
- 16. 16.
- Encaminador de evitación de bloqueos en una red de interconexión, caracterizado porque está previsto para la implementación del método según una cualquiera de las reivindicaciones 1 a 12, comprendiendo unos búferes de entrada (aij), unos búferes de salida (bik) y una unidad de control apta para realizar dicha detección de dicha etapa a) y dicha identificación de dicha etapa b). Block avoidance router in an interconnection network, characterized in that it is provided for the implementation of the method according to any one of claims 1 to 12, comprising input buffers (aij), output buffers (bik) and a unit of control suitable for performing said detection of said stage a) and said identification of said stage b).
- 17. 17.
- Encaminador según la reivindicación 16, caracterizado porque comprende un búfer de evitación de bloqueos (dij) unido a un búfer de entrada (aij) del mismo fuera de su camino crítico, estando dicha unidad de control prevista para implementar el método según la reivindicación 10 para realizar dicha liberación de un espacio en dicho búfer de entrada (aij). Router according to claim 16, characterized in that it comprises a block avoidance buffer (dij) attached to an input buffer (aij) thereof outside its critical path, said control unit being provided to implement the method according to claim 10 for perform said release of a space in said input buffer (aij).
- 18. 18.
- Encaminador según la reivindicación 17, caracterizado porque dicha unidad de control está prevista para ejecutar al menos un protocolo de recuperación gradual de movimiento de mensajes mediante la implementación del método según la reivindicación 11 ó 12. Router according to claim 17, characterized in that said control unit is provided to execute at least one protocol for gradual recovery of message movement by implementing the method according to claim 11 or 12.
- Categoria Category
- @ Documentos citados Reivindicaciones afectadas @ Documents cited Claims Affected
- x x
- GONZALO ALBERTO ZARZA, "Multipath Fault-tolerant Routing Policies to deal with Dynamic Link 1-18 GONZALO ALBERTO ZARZA, "Multipath Fault-tolerant Routing Policies to deal with Dynamic Link 1-18
- Failures in High Speed Interconnection Networks" - Universidad Aut6noma de Barcelona, Escuela Failures in High Speed Interconnection Networks "- Autonomous University of Barcelona, School
- de Ingenieria - Dpto. de Arquitectura de computadores y Sistemas Operativos. Capitulo 4, of Engineering - Dept. of Computer Architecture and Operating Systems. Chapter 4,
- paginas 53-66. pages 53-66.
- URL:// http://www.tesisenred.net/bitstream/handle/10803/51494/gaz1de1.pdf?sequence=1 URL: // http://www.tesisenred.net/bitstream/handle/10803/51494/gaz1de1.pdf?sequence=1
- Categoria de los documentos citados x: de particular relevancia Y: de particular relevancia combinado con otro/s de la misma categoria A: refleja el estado de la tecnica O: referido a divulgaci6n no escrita P: publicado entre la fecha de prioridad y la de presentaci6n de la solicitud E: documento anterior, pero publicado despues de la fecha de presentaci6n de la solicitud Category of the documents cited x: of particular relevance Y: of particular relevance combined with other / s of the same category A: reflects the state of the art O: refers to unwritten disclosure P: published between the priority date and the date of priority submission of the application E: previous document, but published after the date of submission of the application
- El presente informe ha sido realizado � para todas las reivindicaciones � para las reivindicaciones nO: This report has been produced � for all claims � for claims No:
- Fecha de realizaci6n del informe 08.03.2012 Date of realization of the report 08.03.2012
- Examinador B. Perez Garcia Pagina 1/4 Examiner B. Perez Garcia Page 1/4
- Novedad (Art. .1 LP 11/198 ) Novelty (Art. 1 LP 11/198)
- Reivindicaciones SI Claims YES
- Reivindicaciones 1-18 Claims 1-18
- NO NO
- Actividad inventiva (Art. 8.1 LP11/198 ) Inventive activity (Art. 8.1 LP11 / 198)
- Reivindicaciones SI Claims YES
- Reivindicaciones Claims
- NO NO
- Documento Document
- Numero Publicaci6n o Identificaci6n Fecha Publicaci6n Publication or Identification Number Publication Date
- D01 D01
- GONZALO ALBERTO ZARZA, "Multipath Fault-tolerant Routing Policies to de al with D ynamic Link Failures in H igh S peed Interconnection Networks" -Universidad Aut6noma de Barcelona, Escuela de Ingenieria -Dpto. de Arquitectura de computadores y Sistemas Operativos. Capitulo 4, paginas 53-66. 15.07.2011 GONZALO ALBERTO ZARZA, "Multipath Fault-tolerant Routing Policies to de al with D ynamic Link Failures in H igh S peed Interconnection Networks" -Universidad Aut6noma de Barcelona, School of Engineering -Dept. of Computer Architecture and Operating Systems. Chapter 4, pages 53-66. 07.15.2011
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ES201101048A ES2377087B1 (en) | 2011-09-22 | 2011-09-22 | METHOD, SYSTEM AND LOCKER AVOIDING ROADER IN AN INTERCONNECTION NETWORK. |
PCT/ES2012/070656 WO2013041752A1 (en) | 2011-09-22 | 2012-09-19 | Method, system and router for avoiding blockages in an interconnection network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
ES201101048A ES2377087B1 (en) | 2011-09-22 | 2011-09-22 | METHOD, SYSTEM AND LOCKER AVOIDING ROADER IN AN INTERCONNECTION NETWORK. |
Publications (2)
Publication Number | Publication Date |
---|---|
ES2377087A1 ES2377087A1 (en) | 2012-03-22 |
ES2377087B1 true ES2377087B1 (en) | 2013-01-29 |
Family
ID=45789330
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES201101048A Active ES2377087B1 (en) | 2011-09-22 | 2011-09-22 | METHOD, SYSTEM AND LOCKER AVOIDING ROADER IN AN INTERCONNECTION NETWORK. |
Country Status (2)
Country | Link |
---|---|
ES (1) | ES2377087B1 (en) |
WO (1) | WO2013041752A1 (en) |
-
2011
- 2011-09-22 ES ES201101048A patent/ES2377087B1/en active Active
-
2012
- 2012-09-19 WO PCT/ES2012/070656 patent/WO2013041752A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2013041752A1 (en) | 2013-03-28 |
ES2377087A1 (en) | 2012-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Aisopos et al. | Ariadne: Agnostic reconfiguration in a disconnected network environment | |
Flich et al. | A survey and evaluation of topology-agnostic deterministic routing algorithms | |
Ebrahimi et al. | MD: minimal path-based fault-tolerant routing in on-chip networks | |
Avresky et al. | Dynamic reconfiguration in computer clusters with irregular topologies in the presence of multiple node and link failures | |
Ingram et al. | A leader election algorithm for dynamic networks with causal clocks | |
Domke et al. | Routing on the dependency graph: A new approach to deadlock-free high-performance routing | |
Aspnes | Notes on theory of distributed systems | |
Welch et al. | Link reversal algorithms | |
Verbeek et al. | A decision procedure for deadlock-free routing in wormhole networks | |
Valinataj et al. | Fault-aware and reconfigurable routing algorithms for Networks-on-Chip | |
ES2377087B1 (en) | METHOD, SYSTEM AND LOCKER AVOIDING ROADER IN AN INTERCONNECTION NETWORK. | |
Theiss et al. | FRoots: a fault tolerant and topology-flexible routing technique | |
Safaei et al. | An efficient routing methodology to tolerate static and dynamic faults in 2-D mesh networks-on-chip | |
Puente et al. | Immucube: Scalable fault-tolerant routing for k-ary n-cube networks | |
Killian et al. | A new efficient and reliable dynamically reconfigurable network-on-chip | |
Marcon et al. | Phoenix NoC: A distributed fault tolerant architecture | |
Montañana et al. | Epoch-based reconfiguration: Fast, simple, and effective dynamic network reconfiguration | |
Brown et al. | A lightweight idempotent messaging protocol for faulty networks | |
Kawano et al. | Dynamic Routing Reconfiguration for Low-Latency and Deadlock-Free Interconnection Networks | |
Theiss | Modularity, routing and fault tolerance in interconnection networks | |
Chen et al. | An effective routing algorithm to avoid unnecessary link abandon in 2D mesh NoCs | |
Khichar et al. | Fault aware adaptive routing algorithm for mesh based NoCs | |
Guay | Dynamic Reconfiguration in Interconnection Networks | |
Vitkovskiy et al. | A highly robust distributed fault-tolerant routing algorithm for NoCs with localized rerouting | |
Requena | Low-memory techniques for routing and fault-tolerance on the Fat-Tree topology |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FG2A | Definitive protection |
Ref document number: 2377087 Country of ref document: ES Kind code of ref document: B1 Effective date: 20130129 |