WO2013041752A1 - Method, system and router for avoiding blockages in an interconnection network - Google Patents

Method, system and router for avoiding blockages in an interconnection network Download PDF

Info

Publication number
WO2013041752A1
WO2013041752A1 PCT/ES2012/070656 ES2012070656W WO2013041752A1 WO 2013041752 A1 WO2013041752 A1 WO 2013041752A1 ES 2012070656 W ES2012070656 W ES 2012070656W WO 2013041752 A1 WO2013041752 A1 WO 2013041752A1
Authority
WO
WIPO (PCT)
Prior art keywords
router
identification
buffer
input buffer
message
Prior art date
Application number
PCT/ES2012/070656
Other languages
Spanish (es)
French (fr)
Inventor
Gonzalo Zarza
Daniel Franco Puntes
Diego Lugones
Emilio LUQUE FADÓN
Original Assignee
Universitat Autonoma De Barcelona
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Universitat Autonoma De Barcelona filed Critical Universitat Autonoma De Barcelona
Publication of WO2013041752A1 publication Critical patent/WO2013041752A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording 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

Definitions

  • the present invention generally concerns, in a first aspect, a method of blocking avoidance 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 by means of a mechanism that does not require the use of timers.
  • the invention belongs to the field of parallel computer interconnection networks and focuses on the area of fault tolerance for high speed interconnection networks.
  • the object of the present invention is to identify cycles of resource dependencies in high-speed interconnection networks of asynchronous intra-router and inter-routers.
  • the purpose of the identification is to prevent the occurrence of failures in the network devices from generating blocking situations in the interconnection network, thus allowing the termination of the applications that are running in the parallel computer.
  • a second aspect of the invention concerns a block avoidance system in an interconnection network adapted to implement the method of the first aspect.
  • a third aspect of the invention concerns a router intended for the implementation of the method of the first aspect of the invention.
  • 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.
  • 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 systems of bank transactions or the systems used for geological studies and natural disasters, among others.
  • 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.
  • 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.
  • 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 reliably captures the behavior of failures in real computer systems.
  • NAO Non-blocking Adaptive Oyeles
  • 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.
  • the identification is performed serially from the first router that detects the preset or trigger conditions. During this process, the identification is applied to a buffer, 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 It is because in NAC situations can occur in which more than one router starts the identification process on the same dependency cycle.
  • each router handles requests serially, so that responses to identification requests may suffer certain delays of varying duration.
  • 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.
  • the identification mechanism proposed in [8] and [9] can reach both blocking situations as well as “false negative" situations.
  • the block avoidance mechanism proposed in [9] has other restrictions that make its application very expensive, although not impossible.
  • the present invention provides, in a first aspect, a method of preventing blockages in an interconnection network, which comprises sequentially performing the following steps:
  • b1) compose and send an identification message from an input buffer of said router to at least one output buffer, of at least one other router, connected thereto;
  • 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
  • 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.
  • 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 tracing cyclic resource dependencies in an asynchronous intra-router and inter-router manner, to ensure the avoidance of interconnection network blockages with multiple dynamic failures.
  • the method comprises, in order to identify a plurality of routing cycles involved in situations prone to blockage, to carry out, in parallel, a plurality of stages b) by said router, initiated by a corresponding plurality of stages.
  • said asynchronous intra-router and inter-router search mechanism is an amplitude search mechanism, or BFS ("Breadth First Search").
  • 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.
  • 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-stage b2), in the output buffer or buffers of the router that composed the message or identification messages sent.
  • 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 the end of the one in which he or she is involved is terminated 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.
  • 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.
  • 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).
  • 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).
  • the method proposed by the first aspect of the invention constitutes a method of identification and monitoring of resource-tolerant failure-tolerant cycles for high-speed interconnection networks, based on a novel technique that allows parallel and distributed priority searches. in breadth.
  • the proposed method consists in asynchronously identifying the cycles of resource dependencies through an identification process applied in the opposite direction to the one used in the process of allocating resources for routing messages through the network.
  • the method aims 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
  • 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.
  • the new mechanism can be applied asynchronously to any circumstance and network topology.
  • this new mechanism allows both identification processes as well as 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 interconnection network
  • the method proposed by the first aspect of the invention allows searches to be carried out: 1. Asynchronous: since not using the clocks of the routers during the process of identifying resource dependency cycles, the method does not depend on any type of inter-synchronization. - routers. Unlike the previous methods, the invention proposed here does not present problems in situations where more than one router can initiate the process of identifying cycles of form simultaneous or almost simultaneous on the same cycle of resource dependencies;
  • 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 (unlike the previously published methods). Thanks to the structural modification consisting in the relocation of 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.
  • 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).
  • 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.
  • control unit is intended to execute at least one protocol for gradual recovery of message movement by implementing the method of the first aspect.
  • 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).
  • 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.
  • 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.
  • the method proposed by the present invention describes an identification of asynchronous and intra-router cycles and parallel inter-routers, based on the sending of special flow control signals through dedicated communication lines (ACKe and ACKs in Figure 2, which will be described in detail in a later section), instead of using the same data packet communication lines that are used in [12] and [9].
  • ACKe and ACKs in Figure 2 which will be described in detail in a later section
  • This is one of the key features of the invention, since it allows the routers to carry out the identification independently, both of the data communication process and also of the mechanisms for controlling the waiting times of receipt of identification notifications. of cycles prone to generate blockages.
  • the method of the present invention is not based on an explicit notification of the absence of routing cycles (which in [12] is generated at the expiration of the maximum time defined by equations 4.8 and 4.9), but continues to operate asynchronously to the indefinite waiting one of two situations: that the notification of a correct identification of the cycle is received; or, otherwise, the conditions of existence of potential blockages generated by congestion situations on the network disappear. Therefore, in the proposal of the present invention, the packets of the input buffers (Be) involved in possible routing cycles are only moved to the block avoidance buffers (DAB) when the corresponding cycle identification signal is received .
  • DAB block avoidance buffers
  • Figure 1 is a summary table of the notation and the operators used in the description of the present invention.
  • Figure 2 is a diagram of the simplified architecture of the router or network device proposed by the third aspect of the invention.
  • Figure 3 illustrates the detail of the activation and deactivation process of the cycle identifiers in a router, according to an embodiment of the method proposed by the first aspect of the invention
  • 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
  • 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
  • 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
  • Figure 7 A 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 bonuses of said interconnection network;
  • 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
  • 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.
  • FIG. 2 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 incoming Acknowledge (ACKe) and outgoing (ACKs) 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.
  • ACKe incoming Acknowledge
  • ACKs outgoing lines
  • 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.
  • BFS Bitth-First Search
  • a series of actions are applied in parallel and asynchronous starting from a network device, or router, in charge of starting the cycle identification process.
  • Said network device constitutes the initial point of the identification process and is the device that sends the identification messages through at least one input buffer to', which does not possess available storage space and, in turn, need to access an output buffer b ' k 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 router H is is in a state prior to a blocking situation.
  • the network devices r h (see Figure 9) that are physically connected to the input buffers a ', of the network device H, for which the identification messages are sent, repeat the same procedure applied in the device r' , that is, they replicate the identification message to the network devices connected to their input buffers to h j that meet the conditions detailed above, extending the identification process to the inter-router search space. Otherwise, network devices r h that do not have input buffers a h that meet these conditions drain - eliminate - identification messages instead of replicating them. In other words, the network devices that replicate the identification messages activate the cycle existence indicators asynchronously, 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.
  • the central node r' has four input buffers a, a ' 2 , a' 3 , a ' 4 and four output b'i, b ' 2 , b' 3 , b ' 4 and which has initiated three parallel identification cycles through three respective input buffers a, a' 3 , a ' 4 in which the three operating conditions previously mentioned and indicative of a state prior to a blocking situation were fulfilled, and which are respectively connected to an output buffer b and 4 of node r and , to a buffer of output b h 3 of the node r h and an output buffer b z i of the node for the transmission of respective cycle identification messages.
  • the cycles are identified when the network device r 1 that initiated the identification and tracking process receives the corresponding cycle identification message by the correct output buffer b ' k , which in the case illustrated by Figure 3 is buffer b ' 3 , which has received said identification message through the input buffer to m 3 of node r m .
  • the new identification method proposed by the present invention in its first aspect is composed, for an exemplary embodiment, in three stages, represented graphically in Figure 5:
  • Secondary identifications which are made on the same cycle of resource dependencies but are initiated by at least one other router r h from an input buffer to h j of the same. These actions correspond to stage 2 of Figure 5, illustrated for four of said secondary identifications initiated from four respective routers (or nodes 2, 3, 4 and 5 in Figure 5);
  • 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 the vertices represent the network devices or processing, as appropriate, and the edges represent the links that connect the devices [11].
  • 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.
  • 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].
  • a DAB block avoidance buffer (by the English name "Deadlock Avoidance Buffer") is 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 only apply under specific circumstances directly related to the space available in the buffers of certain network devices, as explained above.
  • the network device r After applying these two actions, the network device r 'must identify and follow the routing cycles between origin-destination pairs prone 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.
  • a new identification message that includes as information: the identifier of the network device H that created it; the identification of the input buffer to ' j where the firing conditions were met; and the identifier of the output buffer b ' k by which the message should be received if it is part of the routing cycle;
  • each network device r h must verify the conditions and, if at least one of the input buffers at h meets those conditions, the network device replicates (retransmits) this identification message to the appropriate buffers. Otherwise, the network device drains (deletes) the message.
  • the first stage of identifying the cycle of Figure 5 concludes when the identification message arrives at the network device that composed it r 'through the correct output buffer b' k , as illustrated by the arrow on the gray line of Figure 4 for the node or that of the black for the node r h .
  • the network device r '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 that the network device r h that precedes it in the routing cycle initiates the gradual motion recovery protocol.
  • This signal is used to alert previous network devices that the new space generated in their output buffer b h k is actually a space generated from the use of the DAB buffer. This signal allows the network device r h to distinguish between the following two situations:
  • the network device r h After receiving the recovery signal, the network device r h uses the information obtained from its own identification process (one of the secondary identifications in step 2 of Figure 5) to identify locally which of the input buffers (a h j ) belongs to the routing cycle. This action is critical since each network device that is part of the routing cycle must apply the move (a h j , d h j ) operation on the correct input buffer to h . Once the routing cycles involved in situations prone to generating blockages are identified, a set of actions that guarantee the movement of messages in said cycles without blocking situations occurring.
  • This set of actions has as its starting point the secondary identification stage of Figure 5, in which at least one router r h starts its own identification of the dependency cycle to know which of its input buffers a h and output b h k 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 (indicated) is not met as (4), (5), (6) and (7)). If any of these four conditions is not met, the protocol of gradual recovery of message movement must be finalized since this implies the network has returned to reach its normal operating conditions.
  • the injection of messages in the logical buffer (c hl kj ) is restarted by the start_st (b h k ) action (giving priority to the messages stored in the DAB buffers).
  • the injection of messages from the local processing node is again allowed by the start_fw (a h j ) action.
  • 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.

Abstract

The method comprises: a) detecting a situation prone to a blockage; and b) identifying a routing cycle involved in the detected situation prone to a blockage by virtue of a router (ri) carrying out the following substeps by means of an asynchronous intra-router and inter-router search mechanism which does not require the use of timers: b1) composing and sending an identification message from an input buffer (aij) of the router (ri) to an output buffer (bhk) of another router (rh); and b2) receiving the identification message in the output buffer (bik) associated with said input buffer (aij) of the router (ri) which composed said message, following the retransmission thereof by at least another router (rh) from an input buffer (ahj) thereof. 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 blocking avoidance 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 by means of 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 asincrona intra-encaminador e inter- encaminadores. La identificación tiene como finalidad evitar que la ocurrencia de fallos en los dispositivos de red genere 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 of asynchronous intra-router and inter-routers. The purpose of the identification is to prevent the occurrence of failures in the network devices from generating blocking situations in the interconnection network, thus allowing the termination 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 interrelation gives 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 systems of bank transactions 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 field of fault tolerance is very low.
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 reliably captures the behavior of 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 emerging as a very solution promising, from the point of view of fault tolerance, the adaptive algorithms approach presents a new and important problem: the appearance of 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 Oyeles" (NAO), 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 NAO presenta una serie de problemas de sincronización que limitan su aplicación en redes de interconexión de alta velocidad. Más concretamente, NAO 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 Oyeles" (NAO), 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 NAO method presents a series of synchronization problems that limit its application in high-speed interconnection networks. More specifically, NAO 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, the identification is performed serially from the first router that detects the preset or trigger conditions. During this process, the identification is applied to a buffer, 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 It is because in NAC situations can occur in which more than one router starts the identification process on the same dependency cycle. In this situation, each router handles requests serially, so that responses to 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.
En [12] se realiza una explicación detallada del método de evitación de bloqueos propuesto en los documentos [8] y [9] con la profundidad y el nivel de detalle propio del documento de una tesis doctoral, y una modificación a nivel de hardware (búferes DAB) que se describe en el apartado de similitudes de este documento.  In [12] a detailed explanation of the block avoidance method proposed in the documents [8] and [9] is made with the depth and level of detail of the document of a doctoral thesis, and a modification at the hardware level ( DAB buffers) described in the similarities section of this document.
En el método detallado en la tesis [12], la identificación de ciclos de encaminamiento propensos a generar bloqueos se hace mediante una serie de paquetes de control de flujo especiales, que se envían por las mismas líneas de comunicación que los paquetes de datos. Esto implica la existencia obligatoria de un sincronismo tácito intra e ínter encaminadores, por lo que en dicho método es necesario realizar un control implícito del tiempo de identificación de ciclos. Este control, al que se hace referencia en la ecuaciones 4.8 y 4.9 de [12] (sección 4.2.3, página 63), es el que define el momento en que se inicia el protocolo de "recuperación gradual de envío de paquetes" en el método propuesto en [12] y [9]. En este método, si no se recibe una notificación de identificación de ciclos pasado el tiempo de espera definido en la ecuación 4.9, se asume que no existen ciclos de encaminamiento propensos a generar bloqueos y, por tanto, se procede a mover -ni bien sea posible- el primer paquete del correspondiente búfer de entrada (Be) al búfer de salida (Bs) adecuado, sin pasar previamente por el búfer de evitación de bloqueos (DAB). El problema con este método radica en que el accionar del mismo permite que se generen situaciones de bloqueo, tal y como se explica en la descripción del estado de la técnica de la solicitud de patente para los métodos [8] y [9], invalidando por tanto su aplicación universal. Más concretamente, lo que se explica en la tesis [12] no contradice la explicación de las limitaciones expuestas anteriormente con referencia a los documentos [8] y [9]. In the method detailed in the thesis [12], the identification of routing cycles prone to generate blockages is done through a series of special flow control packets, which are sent along the same lines of communication as the data packets. This implies the mandatory existence of tacit intra and inter-router synchronism, so that in this method it is necessary to carry out an implicit control of the cycle identification time. This control, referred to in equations 4.8 and 4.9 of [12] (section 4.2.3, page 63), is what defines the time when the "gradual recovery of packet shipment" protocol is initiated in the method proposed in [12] and [9]. In this method, if a notification of cycle identification is not received after the waiting time defined in equation 4.9, it is assumed that there are no routing cycles prone to generate blockages and, therefore, proceed to move - even if possible - the first packet of the corresponding input buffer (Be) to the appropriate output buffer (Bs), without previously passing through the block avoidance buffer (DAB). The problem with this method is that the operation of the same allows blocking situations to be generated, as explained in the description of the state of the art of the patent application for methods [8] and [9], invalidating therefore its application universal. More specifically, what is explained in the thesis [12] does not contradict the explanation of the limitations set forth above with reference to documents [8] and [9].
La única modificación/mejora a nivel de hardware que se ha introducido en [12] respecto al método presentado en [9], es la reubicación de los búferes de evitación de bloqueos (DAB) fuera del camino crítico de los dispositivos de red.  The only modification / improvement at the hardware level that has been introduced in [12] with respect to the method presented in [9], is the relocation of block avoidance buffers (DABs) out of the critical path of network devices.
Explicación de la invención Explanation of the invention.
Aparece necesario ofrecer una 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], [9] y [12].  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], [9] and [12].
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) compose and send 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 asincrono 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 asincrono y escalable, compatible con las tecnologías de red actuales, capaz de identificar y recorrer dependencias cíclicas de recursos de forma asincrona intra-encaminador e inter- encaminadores, para asegurar la evitación de bloqueos en redes de interconexión con múltiples fallos dinámicos. 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. 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 tracing cyclic resource dependencies in an asynchronous intra-router and inter-router manner, to ensure the avoidance of interconnection network blockages with multiple dynamic failures. According to an exemplary embodiment, the method comprises, in order to identify a plurality of routing cycles involved in situations prone to blockage, to carry out, 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 steps 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 being able to be performed in parallel.
Para un ejemplo de realización, dicho mecanismo de búsqueda asincrono 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-stage 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. 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. 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 the end of the one in which he or she is involved is terminated 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. 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 asincrona 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 identification and monitoring of resource-tolerant failure-tolerant cycles for high-speed interconnection networks, based on a novel technique that allows parallel and distributed priority searches. in breadth. The proposed method consists in asynchronously identifying the cycles of resource dependencies through an identification process applied in the opposite direction to the one used in the process of allocating resources for routing 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 asincrono, 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 asincrono 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 method aims 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 asincrona 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 as well as 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 interconnection network
El método propuesto por el primer aspecto de la invención permite realizar búsquedas: 1. Asincronas: 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 inter-encaminadores. 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; The method proposed by the first aspect of the invention allows searches to be carried out: 1. Asynchronous: since not using the clocks of the routers during the process of identifying resource dependency cycles, the method does not depend on any type of inter-synchronization. - routers. Unlike the previous methods, the invention proposed here does not present problems in situations where more than one router can initiate the process of identifying cycles of form simultaneous or almost simultaneous on the same cycle of resource dependencies;
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, cuando se producen dos o mas ciclos simultáneamente que comparten o solapan parte del camino. 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;  2. In parallel: since the intra-router replication of the cycle identification packages can be performed in parallel and simultaneously on all the input buffers that meet the pre-established conditions, when two or more cycles occur simultaneously that share or they overlap part of the way. Unlike the previous methods, which apply the serial identification process, the proposal presented here allows parallel identification, regardless of the use of clocks in routers;
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). 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.  3. 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 (unlike the previously published methods). Thanks to the structural modification consisting in the relocation of 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). 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. 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). 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. Comparación entre la presente invención y el estado de la técnica:  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. Comparison between the present invention and the state of the art:
Tal y como se ha descrito anteriormente, el método propuesto por la presente invención describe una identificación de ciclos asincrona e intra encaminador y en paralelo ínter encaminadores, basada en el envío de señales de control de flujo especiales a través de líneas de comunicación dedicadas (ACKe y ACKs en la Figura 2, la cual será descrita en detalle en un apartado posterior), en lugar de utilizar las mismas líneas de comunicación de paquetes de datos que se utilizan en [12] y [9]. Esta es una de las características claves de la invención, ya que permite a los encaminadores llevar a cabo la identificación de forma independiente, tanto del proceso de comunicación de datos como también de los mecanismos de control de tiempos de espera de recepción de notificaciones de identificación de ciclos propensos a generar bloqueos.  As described above, the method proposed by the present invention describes an identification of asynchronous and intra-router cycles and parallel inter-routers, based on the sending of special flow control signals through dedicated communication lines (ACKe and ACKs in Figure 2, which will be described in detail in a later section), instead of using the same data packet communication lines that are used in [12] and [9]. This is one of the key features of the invention, since it allows the routers to carry out the identification independently, both of the data communication process and also of the mechanisms for controlling the waiting times of receipt of identification notifications. of cycles prone to generate blockages.
Esto permite que se puedan llevar adelante de forma paralela más de un proceso de identificación de ciclos de encaminamiento (ínter encaminadores) propensos a generar bloqueos. Este es el caso detallado en la Figura 4 (descrito en el apartado de descripción detallada de unos ejemplos de realización) en la que se ejemplifica la identificación en paralelo de dos ciclos de encaminamiento simultáneamente. Además, y a diferencia de los métodos [12], [8] y [9], el método de la presente invención permite realizar en paralelo procesos de identificación de ciclos que pertenezcan a funciones de encaminamiento independientes y ciclos de dependencias de recursos no solapados. Nótese la diferencia con el ejemplo de la figura 4.11 de la página 65 de la descripción el método de la tesis doctoral [12], en la que se no se representan identificaciones de ciclos de encaminamiento en paralelo. Esto se debe a que el método propuesto en [12] no provee una solución que permita realizar identificaciones de ciclos de encaminamiento en paralelo de forma simultánea.  This allows more than one process of identification of routing cycles (inter-routers) likely to generate blockages to be carried out in parallel. This is the case detailed in Figure 4 (described in the detailed description section of some examples of embodiment) in which the parallel identification of two routing cycles simultaneously is exemplified. In addition, and unlike methods [12], [8] and [9], the method of the present invention allows parallel processes of identification of cycles belonging to independent routing functions and cycles of non-overlapping resource dependencies. Note the difference with the example in Figure 4.11 on page 65 of the description, the method of the doctoral thesis [12], in which identifications of parallel routing cycles are not represented. This is due to the fact that the method proposed in [12] does not provide a solution that allows simultaneous identification of parallel routing cycles.
En el método de la presente invención, una vez iniciado el proceso de identificación de ciclos, los paquetes del búfer de entrada (Be) únicamente se mueven al búfer de salida (Bs) si las condiciones de bloqueo desaparecen; y nunca se mueven por haber expirado el tiempo máximo de identificación, a diferencia de los métodos propuestos en [12] y [9]. En el método detallado en la tesis [12], los paquetes siempre se mueven desde el búfer de entrada (Be) al búfer de salida (Bs) al expirar el tiempo definido por las ecuaciones 4.8 y 4.9 de [12], lo que posibilita la aparición de bloqueos cuando la red se encuentra funcionando en situaciones concretas, tal y como se ha descrito anteriormente en el apartado de estado de la técnica anterior. In the method of the present invention, once the cycle identification process has begun, the packets of the input buffer (Be) are only moved to the output buffer (Bs) if the blocking conditions disappear; and they never move because the maximum identification time has expired, unlike the methods proposed in [12] and [9]. In the method detailed in the thesis [12], packets always move from the input buffer (Be) to the output buffer (Bs) at the expiration of the time defined by equations 4.8 and 4.9 of [12], which It enables the appearance of blockages when the network is operating in specific situations, as described previously in the prior art section of the prior art.
El método de la presente invención no se basa en una notificación explícita de la inexistencia de ciclos de encaminamiento (que en [12] se genera al expirar el máximo tiempo definido por las ecuaciones 4.8 y 4.9), sino que continúa operando de forma asincrona a la espera indefinida una de dos situaciones: que se reciba la notificación de una correcta identificación del ciclo; o, en caso contrario, que desaparezcan las condiciones de existencia de potenciales bloqueos generadas por situaciones de congestión en la red. Por tanto, en la propuesta de la presente invención, los paquetes de los búferes de entrada (Be) involucrados en posibles ciclos de encaminamiento únicamente se mueven a los búferes de evitación de bloqueo (DAB) cuando se recibe la correspondiente señal de identificación de ciclos.  The method of the present invention is not based on an explicit notification of the absence of routing cycles (which in [12] is generated at the expiration of the maximum time defined by equations 4.8 and 4.9), but continues to operate asynchronously to the indefinite waiting one of two situations: that the notification of a correct identification of the cycle is received; or, otherwise, the conditions of existence of potential blockages generated by congestion situations on the network disappear. Therefore, in the proposal of the present invention, the packets of the input buffers (Be) involved in possible routing cycles are only moved to the block avoidance buffers (DAB) when the corresponding cycle identification signal is received .
Adicionalmente, el control del estado de los búferes de entrada (Be), de evitación de bloqueos (DAB), y de salida (Bs) se realiza de forma explícita, mediante una serie de caminos de comunicación independientes, directamente comunicados con la unidad de encaminamiento y arbitraje (EA). Estos caminos de comunicación se muestran ahora de forma explícita en la Figura 1 (una definición más detallada de la Figura 2). Esta es otra de las diferencias respecto al método propuesto en [9] y explicado en detalle en la tesis doctoral [12].  Additionally, the control of the status of the input (Be), block avoidance (DAB), and output (Bs) buffers is made explicitly, by means of a series of independent communication paths, directly communicated with the unit of routing and arbitration (EA). These communication paths are now explicitly shown in Figure 1 (a more detailed definition of Figure 2). This is another of the differences regarding the method proposed in [9] and explained in detail in the doctoral thesis [12].
Otras diferencias entre la presente invención y [12] son que, en [12] se explica que la inyección de paquetes de control de flujo es asincrona respecto al encaminamiento (página 57, sección 4.2). Sin embargo, esto no implica que no se compartan las líneas de comunicación (de hecho sí se comparten). En el método propuesto en [12], la composición de los paquetes de control de flujo es realmente asincrona, pero el procesamiento y transmisión de estos paquetes se hace sobre el mismo canal de comunicación, por lo que indudablemente se hace referencia a operaciones seriales y con un sincronismo dado por la utilización de los (mismos) canales de comunicación para la transmisión de datos y paquetes de control de flujo.  Other differences between the present invention and [12] are that, in [12] it is explained that the injection of flow control packets is asynchronous with respect to routing (page 57, section 4.2). However, this does not imply that communication lines are not shared (in fact they are shared). In the method proposed in [12], the composition of the flow control packets is really asynchronous, but the processing and transmission of these packets is done on the same communication channel, so there is undoubtedly reference to serial operations and with a synchronism given by the use of the (same) communication channels for data transmission and flow control packets.
En [12] se hace referencia a que se aplica un método de identificación de ciclos que puede ser representado como un BFS, pero la referencia corresponde solamente a la prueba de aplicabilidad del método (página 64, sección 4.2.4). Esto no implica que la identificación se pueda realizar de forma asincrona y paralela (como se propone en la solicitud patente). Es más, en la misma página 64 se afirma de forma explícita que el BFS se utiliza para encontrar "un ciclo en el grafo" sin hacer referencia a la identificación paralela y asincrona de más de un ciclo, como sí lo hace el método propuesto en la solicitud de patente. En el método propuesto por la presente invención, en cambio, se propone, para unos ejemplos de realización, aplicar la búsqueda BFS de forma paralela y distribuida en cada uno de los dispositivos de red. Adicionalmente, en [12] se menciona que la técnica propuesta es escalable, haciendo referencia al hecho de que no se requiere la utilización de canales virtuales (página 53, capítulo 4). Sin embargo, esta afirmación no tiene ninguna relación con el sincronismo ni con el paralelismo del método. Reference is made to [12] that a cycle identification method is applied that can be represented as a BFS, but the reference corresponds only to the method applicability test (page 64, section 4.2.4). This does not imply that the identification can be performed asynchronously and in parallel (as proposed in the patent application). Moreover, on the same page 64 it is explicitly stated that the BFS is used to find "a cycle in the graph" without referring to the parallel and asynchronous identification of more than one cycle, as the method proposed in the patent application. In the method proposed by the present invention, however, it is proposed, for some embodiments, to apply the BFS search in a parallel and distributed manner in each of the network devices. Additionally, in [12] it is mentioned that the proposed technique is scalable, referring to the fact that the use of virtual channels is not required (page 53, chapter 4). However, this statement has no relation to synchronism or the parallelism of the method.
En [12] no se menciona en ningún lugar que el método de identificación de ciclos propuesto sea paralelo, ni se pueda realizar en paralelo de forma alguna. En concreto, el método detallado en [12] no permite realizar de forma paralela el proceso de identificación ni el proceso de recuperación, lo que queda expresado en el límite superior de la ecuación 4.9 del tiempo del peor caso (página 64, sección 4.2.3) [12], como así también en las figuras 4.9 y 4.11 de [12]. En el método de la presente invención, en cambio, se pueden solapar los procesos de identificación, adelantando por tanto el proceso de recuperación de movimiento, reduciendo el tiempo de recuperación gracias al sincronismo propio del proceso de identificación propuesto, tal y como se muestra en las Figuras 3 y 4.  In [12] it is not mentioned anywhere that the proposed cycle identification method is parallel, nor can it be performed in parallel in any way. Specifically, the method detailed in [12] does not allow the identification process or the recovery process to be carried out in parallel, which is expressed in the upper limit of equation 4.9 of the worst case time (page 64, section 4.2. 3) [12], as well as in Figures 4.9 and 4.11 of [12]. In the method of the present invention, on the other hand, the identification processes can be overlapped, thus advancing the movement recovery process, reducing the recovery time thanks to the synchronism typical of the proposed identification process, as shown in Figures 3 and 4.
La mayoría de similitudes aparentes entre el método propuesto por la presente invención y el de [12] están basadas en definiciones genéricas y estándares de la teoría general de evitación de bloqueos, como son: el requisito (genérico) de identificación de potenciales situaciones de bloqueo; el requisito (también genérico) de identificar los ciclos de encaminamiento involucrados; y las condiciones que se deben alcanzar para asegurar que dichos ciclos no representan potenciales situaciones de bloqueos. Estas definiciones/requisitos son bien conocidos y están presentes en la bibliografía especializada, como [3], [4] y [10], desde hace más de 30 años. Nótese que la aportación de la presente invención se basa en la definición de cómo se materializan dichos procesos genéricos en dispositivos físicos reales, y los mecanismos que permiten realizar dichas acciones de forma asincrona, paralela y distribuida (además de escalable), a fin de dar solución a un mayor número de situaciones proclives a generar bloqueos en redes de interconexión de alta velocidad. Breve descripción de los dibujos  Most apparent similarities between the method proposed by the present invention and that of [12] are based on generic definitions and standards of the general theory of blockage avoidance, such as: the (generic) requirement of identification of potential blocking situations ; the requirement (also generic) to identify the routing cycles involved; and the conditions that must be reached to ensure that these cycles do not represent potential blocking situations. These definitions / requirements are well known and are present in the specialized literature, such as [3], [4] and [10], for more than 30 years. Note that the contribution of the present invention is based on the definition of how said generic processes materialize in real physical devices, and the mechanisms that allow such actions to be performed asynchronously, parallel and distributed (in addition to scalable), in order to give solution to a greater number of situations prone to generate blockages in high speed interconnection networks. 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 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; 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 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; 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 7 A 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 gratos de dicha red de interconexión;  Figure 7 A 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 bonuses 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 incoming Acknowledge (ACKe) and outgoing (ACKs) 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 In said Figure 2 the input buffers have been generically referenced as
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. Be and the output ones like Bs, a switch like C, as well as a series of input link controllers like CEE and a series of output link controllers like 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.
Los ejemplos de realización que se presentan y describen en detalle en este apartado se basan en el contexto del método propuesto en [12] y [9], pero introduciendo las modificaciones propias de la presente invención que permiten la comunicación asincrona intra encaminador y paralela ínter encaminador. La novedad de la propuesta hecha por la presente invención se basa en la utilización de un mecanismo de búsqueda asincrona 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 examples of embodiment that are presented and described in detail in this section are based on the context of the method proposed in [12] and [9], but introducing the modifications of the present invention that allow inter-router and parallel parallel asynchronous communication. router. The novelty of the proposal made by the present invention is based on the use of an asynchronous search mechanism intra-router and inter-routers 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 asincrona 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 parallel and asynchronous starting from a network device, or router, in charge of starting the cycle identification process.
Dicho dispositivo de red, indicado en las Figuras 6 a 9 como nodo r', 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 a', que no posea espacio de almacenamiento disponible y que, a su vez, necesite acceder a un búfer de salida b'k 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 H 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 node r ', constitutes the initial point of the identification process and is the device that sends the identification messages through at least one input buffer to', which does not possess available storage space and, in turn, need to access an output buffer b ' k 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 router H is is in a state prior 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 a', del dispositivo de red H, por los que se envíen los mensajes de identificación, repiten el mismo procedimiento aplicado en el dispositivo r', es decir, replican el mensaje de identificación a los dispositivos de red conectados a sus búferes de entrada ah j 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 ah 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 asincrona 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 network devices r h (see Figure 9) that are physically connected to the input buffers a ', of the network device H, for which the identification messages are sent, repeat the same procedure applied in the device r' , that is, they replicate the identification message to the network devices connected to their input buffers to h j that meet the conditions detailed above, extending the identification process to the inter-router search space. Otherwise, network devices r h that do not have input buffers a h that meet these conditions drain - eliminate - identification messages instead of replicating them. In other words, the network devices that replicate the identification messages activate the cycle existence indicators asynchronously, 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, r2, r', rm, y puede verse que el nodo central r' dispone de cuatro búferes de entrada a , a'2, a'3, a'4 y cuatro de salida b'i , b'2, b'3, b'4 y que ha iniciado tres ciclos de identificación en paralelo a través de tres respectivos búferes de entrada a , a'3, a'4 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 by 4 del nodo ry, a un búfer de salida bh 3 del nodo rh y a un búfer de salida bzi del nodo para la transmisión de unos respectivos mensajes de identificación de ciclos. In said Figure 3 five nodes r and , r h , r 2 , r ', r m are illustrated and it can be seen that the central node r' has four input buffers a, a ' 2 , a' 3 , a ' 4 and four output b'i, b ' 2 , b' 3 , b ' 4 and which has initiated three parallel identification cycles through three respective input buffers a, a' 3 , a ' 4 in which the three operating conditions previously mentioned and indicative of a state prior to a blocking situation were fulfilled, and which are respectively connected to an output buffer b and 4 of node r and , to a buffer of output b h 3 of the node r h and an output buffer b z i of the node for the transmission of respective cycle identification messages.
Los ciclos se identifican cuando el dispositivo de red r1 que inició el proceso de identificación y seguimiento recibe el correspondiente mensaje de identificación de ciclos por el búfer de salida b'k correcto, que en el caso ilustrado por la Figura 3 es el búfer b'3, que ha recibido dicho mensaje de identificación a través del búfer de entrada am 3 del nodo rm. The cycles are identified when the network device r 1 that initiated the identification and tracking process receives the corresponding cycle identification message by the correct output buffer b ' k , which in the case illustrated by Figure 3 is buffer b ' 3 , which has received said identification message through the input buffer to m 3 of node r m .
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 asincrona sobre el mismo ciclo de dependencias de recursos, a partir de los dispositivos de red r1 y rh, 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 asincrona a lo largo del ciclo de dependencias de recursos. This last process is exemplified in the diagram of Figure 4, where two processes of identification of cycles applied asynchronously on the same cycle of resource dependencies are shown, from the network devices r 1 and r h , respectively. Explained colloquially, the method of identifying and monitoring cycles consists of illuminating the path step by step (dependency cycles), lighting (activating) 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 asincrono 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, in three stages, represented graphically in Figure 5:
1. La primera identificación del ciclo de dependencias de recursos, iniciada por el primer encaminador r' (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 r' recibe el correspondiente mensaje de identificación de ciclos a través del búfer de salida b'k correcto. Estas acciones corresponden a la etapa 1 de la Figura 5; 1. The first identification of the resource dependency cycle, initiated by the first router r '(corresponding to node 1 of Figure 5 as 1) that detects the buffer occupation conditions explained above. This stage ends when the router r 'receives the corresponding cycle identification message through the correct output buffer b' k . These actions correspond to stage 1 of Figure 5;
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 ah j 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, 4 y 5 en la Figura 5); 2. Secondary identifications, which are made on the same cycle of resource dependencies but are initiated by at least one other router r h from an input buffer to h j of the same. These actions correspond to stage 2 of Figure 5, illustrated for four of said secondary identifications initiated from four respective routers (or nodes 2, 3, 4 and 5 in Figure 5);
3. La propagación de la señal de "recuperación", iniciada por el encaminador r' 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. 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 o procesamiento, según corresponda, y las aristas representan los enlaces que conectan los dispositivos [11]. Si se consideran los búferes de entrada (a',) y de salida (b'k) que componen los búferes lógicos (c''m kJ) 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 asincronas y en paralelo intra-encaminador y asincronas y distribuidas inter-encaminadores, según el método propuesto en la invención aquí presentada. 3. The propagation of the "recovery" signal, initiated by the router r 'immediately after the completion 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. The demonstration of the applicability and suitability of the mechanism for identifying cycles belonging 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 the vertices represent the network devices or processing, as appropriate, and the edges represent the links that connect the devices [11]. If the input (a ',) and output (b' k ) buffers that make up the logical buffers (c '' m kJ ) in Figure 6 are considered as nodes, and the connections of the flow and signal control system ACK - with origin and termination 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 method of identification and monitoring of cycles 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 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 only apply 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 detect what are the situations that have the ability 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 r' 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 r' en la Figura 8) aplica las siguientes acciones:  These three conditions are evaluated locally on each network device r '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 node r 'in Figure 8) applies the following actions:
1. Detiene la inyección de mensajes en el búfer lógico (c''m kJ); 1. Stops the injection of messages in the logical buffer (c '' m kJ );
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 r' marcado en gris.  2. Stops the injection of new messages from the input buffer connected to the local processing node (if necessary), ie from the input buffer of node r 'marked in gray.
Luego de aplicar estas dos acciones, el dispositivo de red r' 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 asincrona y paralela intra-encaminador y asincrona 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 network device r 'must identify and follow the routing cycles between origin-destination pairs prone 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. Componer un nuevo mensaje de identificación que incluya como información: el identificador del dispositivo de red H que lo creó; la identificación del búfer de entrada a'j donde se cumplieron las condiciones de disparo; y el identificador del búfer de salida b'k por el que se debería recibir el mensaje si es parte del ciclo de encaminamiento; 1. Compose a new identification message that includes as information: the identifier of the network device H that created it; the identification of the input buffer to ' j where the firing conditions were met; and the identifier of the output buffer b ' k by which the message should be received if it is part of the routing cycle;
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 r'. El mensaje se envía a los búferes de salida (bh k e ch l kj) de los dispositivos de red rh (ver Figura 9) físicamente conectados con los búferes de entrada a', que cumplen con las condiciones de disparo. 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 ah 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 r' a través del búfer de salida b'k correcto, según ilustra la flecha de la línea gris de la Figura 4 para el nodo o la de la negra para el nodo rh. 2. Send the identification message in the opposite direction to the message routing address, through the point-to-point flow control mechanism of the network device r '. The message is sent to the output buffers (b h k ec hl kj ) of the network devices r h (see Figure 9) physically connected to the input buffers a ', which meet the firing conditions. Upon receiving one of these identification messages, each network device r h must verify the conditions and, if at least one of the input buffers at h meets those conditions, the network device replicates (retransmits) this identification message to the appropriate buffers. Otherwise, the network device drains (deletes) the message. The first stage of identifying the cycle of Figure 5 concludes when the identification message arrives at the network device that composed it r 'through the correct output buffer b' k , as illustrated by the arrow on the gray line of Figure 4 for the node or that of the black for the node r h .
Una vez identificados los búferes de entrada y salida a'j, b'k que forman parte del ciclo, se procede a liberar un espacio en el búfer de entrada a'j mediante la operación move(a'j, d' ). 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 a'j al búfer DAB d' (ver Figura 9), destrabando la situación de semi bloqueo del búfer de entrada a', 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 a', correcto pero existe al menos un dispositivo de red r* 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 a ' j , b' k that are part of the cycle have been identified, a space in the input buffer a ' j is released by the move operation (a' j , d '). 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 a ' j to the DAB buffer' (see Figure 9), unlocking the semi-blocking situation of the input buffer to ', and allowing the messages of the cycle to move towards their respective destinations. The cases in which the identification does not conclude are due to the fact that the identification message has been sent through the input buffer a ', correct but there is at least one network device r * throughout the cycle in which the conditions they are not fulfilled so the identification message is deleted. In this case, the routing cycle is not blocked but congested.
Como primera medida, el dispositivo de red r' 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 bh k 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 r '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 that the network device r h that precedes it in the routing cycle initiates the gradual motion recovery protocol. This signal is used to alert previous network devices that the new space generated in their output buffer b h k is actually a space generated from the use of the DAB buffer. This signal allows the network device r h 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 bh k. • The new space was generated by the use of the DAB buffer in the network device connected to its output buffer b h k .
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 (ah j) 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(ah j, dh j) sobre el búfer de entrada ah 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 ah y de salida bh k 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 l kj) mediante la acción start_st(bh k) (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(ah j). After receiving the recovery signal, the network device r h uses the information obtained from its own identification process (one of the secondary identifications in step 2 of Figure 5) to identify locally which of the input buffers (a h j ) belongs to the routing cycle. This action is critical since each network device that is part of the routing cycle must apply the move (a h j , d h j ) operation on the correct input buffer to h . Once the routing cycles involved in situations prone to generating blockages are identified, a set of actions that guarantee the movement of messages in said cycles without blocking situations occurring. This set of actions has as its starting point the secondary identification stage of Figure 5, in which at least one router r h starts its own identification of the dependency cycle to know which of its input buffers a h and output b h k 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 (indicated) is not met as (4), (5), (6) and (7)). If any of these four conditions is not met, the protocol of gradual recovery of message movement must be finalized since this implies the network has returned to reach its normal operating conditions. As a first step, the injection of messages in the logical buffer (c hl kj ) is restarted by the start_st (b h k ) 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 (a h j ) 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 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, [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 [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, [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. 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. 1386-1397, Dec 1994.  [7] S. Konstantinidou and L. Snyder, "The chaos router," Computers, IEEE Transactions on, vol. 43, pp. 1386-1397, Dec 1994.
[8] G. Zarza, D. Lugones, D. Franco, and E. Luque, "Deadlock avoidance for interconnection networks with múltiple 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.
[12] G. Zarza, "Multipath Fault-tolerant Routing Policies to deal with Dynamic Link Failures in High Speed Interconnection Networks" - Universidad Autónoma de Barcelona, Escuela de Ingeniería - Dpto. de Arquitectura de computadores y Sistemas Operativos. 2011 , Capítulo 4, páginas 53-66. [12] G. Zarza, "Multipath Fault-tolerant Routing Policies to deal with Dynamic Link Failures in High Speed Interconnection Networks" - Autonomous University of Barcelona, School of Engineering - Dept. of Computer Architecture and Operating Systems. 2011, Chapter 4, pages 53-66.

Claims

Reivindicaciones Claims
1 . - Método de evitación de bloqueos en una red de interconexión, que comprende realizar secuencialmente las siguientes etapas: one . - Method of avoiding 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, mediante la realización de las siguientes sub-etapas por parte de un encaminador (r1) de dicha red de interconexión: b) identify at least one routing cycle involved in said situation prone to a blockade detected, by performing the following sub-stages by a router (r 1 ) of said interconnection network:
b1) componer y enviar un mensaje de identificación desde un búfer de entrada (a'j) de dicho encaminador (r1) a al menos un búfer de salida (bh k), de al menos otro encaminador (rh), conectado al mismo; y b1) compose and send an identification message from an input buffer (a ' j ) of said router (r 1 ) to at least one output buffer (b h k ), of at least one other router (r h ), connected the same; Y
b2) recibir dicho mensaje de identificación en el búfer de salida (b'k) asociado a dicho búfer de entrada (a'j) de dicho encaminador (r1) que lo compuso, tras su retransmisión por parte de al menos dicho otro encaminador (rh) desde un búfer de entrada (ah j) del mismo; b2) receiving said identification message in the output buffer (b ' k ) associated with said input buffer (a' j ) of said router (r 1 ) that composed it, after its retransmission by at least said other router (r h ) from an input buffer (a h j ) thereof;
estando el método caracterizado porque comprende realizar dicha etapa b) mediante un mecanismo de búsqueda asincrono intra-encaminador e inter-encaminadores que no requiere del uso de temporizadores. the method being characterized in that it 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.
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 (r1), 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 (a , a'2, a'3, a'4), y finalizadas mediante una correspondiente pluralidad de etapas b2) de recepción de dichos mensajes de identificación en el búfer de salida (b'i , b'2, b'3, b'4) asociado a dicho búfer de entrada (a , a'2, a'3, a'4) de dicho encaminador (r1). 2. - 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 (r 1 ), 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 (a, a ' 2 , a' 3 , a ' 4 ) , and terminated by a corresponding plurality of steps b2) of receiving said identification messages in the output buffer (b'i , b ' 2, b' 3, b ' 4 ) associated with said input buffer (a, a ' 2 , a' 3 , a ' 4 ) of said router (r 1 ).
3. - Método según una cualquiera de las reivindicaciones anteriores, caracterizado porque dicho mecanismo de búsqueda asincrono intra-encaminador e inter-encaminadores es un mecanismo de búsqueda en amplitud.  3. - 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. - 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 (r1) que lo creó, a la identificación del búfer de entrada (a'j) por el que se envió y al identificador del búfer de salida (b'k) por el que se debería recibir el mensaje de identificación si es parte del ciclo de encaminamiento. 4. - Method according to any one of the preceding claims, characterized in that said identification message includes at least information referring to the identifier of the router (r 1 ) that created it, to the identification of the input buffer (a ' j ) by the that was sent and to the identifier of the output buffer (b ' k ) through which the identification message should be received if it is part of the routing cycle.
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 (a , a'2, a'3, a'4) de dicho encaminador (r1) unas condiciones de funcionamiento cuyo cumplimiento establece que el encaminador (r1) 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. 5. - Method according to any one of the preceding claims, characterized in that said step a) comprises assessing locally at each input buffer (a, a ' 2 , a' 3 , a ' 4 ) of said router (r 1 ) conditions of operation whose compliance establishes that the router (r 1 ) is in a state prior to a blocking situation, which is interpreted as said detection of a situation prone to a blocking.
6. - Método según la reivindicación 5, caracterizado porque comprende, por parte de al menos dicho otro encaminador (rh), llevar a cabo dicha etapa a) para sus búferes de entrada (ahi , ah 2, ah 3, ah 4) y realizar dicha retransmisión del mensaje o mensajes de identificación recibidos a través del búfer o búferes de entrada (ahi , ah 2, ah 3, ah 4) donde se cumplan dichas condiciones de funcionamiento. 6. - Method according to claim 5, characterized in that it comprises, by at least said other router (r h ), carrying out said step a) for its input buffers (a h i, a h 2 , a h 3 , a h 4 ) and carry out said retransmission of the message or identification messages received through the buffer or input buffers (a h i, a h 2 , a h 3 , a h 4 ) where said operating conditions are met.
7. - Método según la reivindicación 6, caracterizado porque comprende realizar dicha retransmisión del mensaje o mensajes de identificación a través de una pluralidad de encaminadores (rh, ry, rm), por sus búferes de entrada que cumplan con dichas condiciones de funcionamiento, antes de ser recibido o recibidos, en dicha sub-etapa b2), en el búfer o búferes de salida (b'k) de dicho encaminador (r1) que compuso el mensaje o mensajes de identificación enviados. 7. - Method according to claim 6, characterized in that it comprises carrying out said retransmission of the message or identification messages through a plurality of routers (r h , r and , r m ), by their input buffers that meet said conditions of operation, before being received or received, in said sub-stage b2), in the output buffer (b ' k ) of said router (r 1 ) that composed the message or identification messages sent.
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 (a',) de un encaminador 8. - Method according to claim 5, characterized in that said operating conditions describe a situation in which an input buffer (a ',) of a router
(r1) no posee espacio de almacenamiento disponible e intenta escoger como próximo paso un búfer de salida (b'k), del mismo encaminador (r1), que tampoco posee espacio disponible y se encuentra físicamente enlazado con el búfer de entrada (am j) de otro encaminador (rm) que tampoco tiene espacio disponible. (r 1 ) does not have available storage space and tries to choose as an next step an output buffer (b ' k ), of the same router (r 1 ), which also does not have available space and is physically linked to the input buffer ( a m j ) from another router (r m ) that also has no available space.
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 (r1). 9. 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 (r h ) or at least one router of said plurality of routers (r h , r m ), during the realization of step b) by said router (r 1 ).
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 (a',) y uno de salida (b'k) de dicho encaminador (r1), liberar un espacio en dicho búfer de entrada (a1,) moviendo un primer mensaje de dicho búfer de entrada (a1,) a un búfer de evitación de bloqueos (d1 ) unido al mismo fuera de su camino crítico. 10. - 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 (a ',) and an output buffer (b' k ) of said router (r 1 ), freeing a space in said input buffer (to 1 ,) by moving a first message of said input buffer (to 1 ,) to a block avoidance buffer (d 1 ) attached thereto out of its way critical.
11. - Método según la reivindicación 10, caracterizado porque comprende, tras dicha liberación de un espacio en el búfer de entrada (a',) de dicho encaminador (r1), 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). 11. - Method according to claim 10, characterized in that, after said release of a space in the input buffer (a ',) of said router (r 1 ), initiate a protocol for gradual recovery of message movement that guarantees the message movement in said routing cycle identified in step b).
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).  12. - 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. - Sistema de evitación de bloqueos en una red de interconexión, caracterizado porque comprende al menos dos encaminadores (r1, rh) previstos para la implementación del método según una cualquiera de las reivindicaciones anteriores, con unos búferes de entrada (a'j, ah j), unos búferes de salida (b'k, bh k) y una unidad de control apta para realizar dicha detección de dicha etapa a) y dicha identificación de dicha etapa b). 13. - Block avoidance system in an interconnection network, characterized in that it comprises at least two routers (r 1 , r h ) provided for the implementation of the method according to any one of the preceding claims, with input buffers (a ' j , a h j ), output buffers (b' k , b h k ) and a control unit suitable for performing said detection of said stage a) and said identification of said stage b).
14. - Sistema según la reivindicación 13, caracterizado porque al menos uno (r1) de dichos dos encaminadores (r1, rh) comprende un búfer de evitación de bloqueos (d1 ) unido a un búfer de entrada (a'j) 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 (a'j). 14. - System according to claim 13, characterized in that at least one (r 1 ) of said two routers (r 1 , r h ) comprises a block avoidance buffer (d 1 ) attached to an input buffer (a ' j ) 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 (a ' j ).
15. - 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.  15. - 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. - 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 (a'j), unos búferes de salida (b'k) y una unidad de control apta para realizar dicha detección de dicha etapa a) y dicha identificación de dicha etapa b). 16. - Block avoidance router in an interconnection network, characterized in that it is intended for the implementation of the method according to any one of claims 1 to 12, comprising input buffers (a ' j ), output buffers (b ' k ) and a control unit capable of performing said detection of said stage a) and said identification of said stage b).
17. - Encaminador según la reivindicación 16, caracterizado porque comprende un búfer de evitación de bloqueos (d' ) unido a un búfer de entrada (a'j) 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 (a'j). 17. - Router according to claim 16, characterized in that it comprises a block avoidance buffer (d ') attached to an input buffer (a' j ) thereof outside its critical path, said control unit being provided to implement the method according to claim 10 for carrying out said release of a space in said input buffer (a ' j ).
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 1 1 ó 12.  18. - Router according to claim 17, characterized in that said control unit is intended to execute at least one protocol for gradual recovery of message movement by implementing the method according to claim 1 1 or 12.
PCT/ES2012/070656 2011-09-22 2012-09-19 Method, system and router for avoiding blockages in an interconnection network WO2013041752A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
ES201101048 2011-09-22
ES201101048A ES2377087B1 (en) 2011-09-22 2011-09-22 METHOD, SYSTEM AND LOCKER AVOIDING ROADER IN AN INTERCONNECTION NETWORK.

Publications (1)

Publication Number Publication Date
WO2013041752A1 true WO2013041752A1 (en) 2013-03-28

Family

ID=45789330

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/ES2012/070656 WO2013041752A1 (en) 2011-09-22 2012-09-19 Method, system and router for avoiding blockages in an interconnection network

Country Status (2)

Country Link
ES (1) ES2377087B1 (en)
WO (1) WO2013041752A1 (en)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
GONZALO ALBERTO ZARZA: "Multipath Fault-tolerant Routing Policies to deal with Dynamic Link Failures in High Speed Interconnection Networks", UNIVERSIDAD AUTONOMA OF BARCELONA, ENGINEER SCHOOL - ARCHITECTURE AND OPERATIVE SYSTEMS DEPARTMENT., 15 July 2011 (2011-07-15), pages 53 - 66 *

Also Published As

Publication number Publication date
ES2377087B1 (en) 2013-01-29
ES2377087A1 (en) 2012-03-22

Similar Documents

Publication Publication Date Title
Aisopos et al. Ariadne: Agnostic reconfiguration in a disconnected network environment
Pinkston et al. Deadlock-free dynamic reconfiguration schemes for increased network dependability
Avresky et al. Dynamic reconfiguration in computer clusters with irregular topologies in the presence of multiple node and link failures
Arye et al. A formally-verified migration protocol for mobile, multi-homed hosts
Dzung et al. Never Say Never--Probabilistic and Temporal Failure Detectors
Vitillo Understanding Distributed Systems: What every developer should know about large distributed applications
Pouryousef et al. Towards logically centralized interdomain routing
Tennage et al. Baxos: Backing off for robust and efficient consensus
WO2013041752A1 (en) Method, system and router for avoiding blockages in an interconnection network
Lembke et al. RoSCo: robust updates for software-defined networks
Elmeleegy et al. Understanding and mitigating the effects of count to infinity in ethernet networks
Dolev et al. Practically stabilizing virtual synchrony
Sethi et al. Bio-inspired fault tolerant network on chip
Montañana et al. Epoch-based reconfiguration: Fast, simple, and effective dynamic network reconfiguration
Kawano et al. Dynamic Routing Reconfiguration for Low-Latency and Deadlock-Free Interconnection Networks
Theiss Modularity, routing and fault tolerance in interconnection networks
Gorender et al. A hybrid and adaptive model for fault-tolerant distributed computing
Lazic et al. The library of distributed protocols
Marcoullis Self-stabilizing state machine replication in static and reconfigurable asynchronous message-passing systems
Taheri et al. Byzantine consensus for unknown dynamic networks
Arap et al. Implementing mpi_barrier with the netfpga
Zarza et al. FT-DRB: A method for tolerating dynamic faults in high-speed interconnection networks
Verburg Experimentation of the Walter-Welch-Vaidya Mutual Exclusion Algorithm for Mobile Ad-Hoc Networks
Gandhi et al. REBOUND: defending distributed systems against attacks with bounded-time recovery
Pinkston Deadlock characterization and resolution in interconnection networks

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 12833442

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 12833442

Country of ref document: EP

Kind code of ref document: A1