FR2748620A1 - Arbitration method for queued data awaiting transmission over digital network - Google Patents
Arbitration method for queued data awaiting transmission over digital network Download PDFInfo
- Publication number
- FR2748620A1 FR2748620A1 FR9605845A FR9605845A FR2748620A1 FR 2748620 A1 FR2748620 A1 FR 2748620A1 FR 9605845 A FR9605845 A FR 9605845A FR 9605845 A FR9605845 A FR 9605845A FR 2748620 A1 FR2748620 A1 FR 2748620A1
- Authority
- FR
- France
- Prior art keywords
- queue
- queues
- eligible
- output
- selection
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/52—Queue scheduling by attributing bandwidth to queues
- H04L47/522—Dynamic queue service slot or variable bandwidth allocation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/622—Queue service order
- H04L47/6235—Variable service order
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/626—Queue scheduling characterised by scheduling criteria for service slots or service orders channel conditions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/25—Routing or path finding in a switch fabric
- H04L49/253—Routing or path finding in a switch fabric using establishment or release of connections between ports
- H04L49/254—Centralised controller, i.e. arbitration or scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
La présente invention concerne un procédé et dispositif d'arbitrage entre des files d'attente dans un réseau de transmission numérique. Elle s'applique notamment aux équipements de brassage et de commutation de données numériques composant un réseau fonctionnant en mode de transmission asynchrone dit ATM, ce dernier terme étant dérivé de l'expression anglo-saxonne "Asynchronous Transfer Mode". Plus généralement, I'invention s'applique à tous les réseaux de transmission de données numériques où il est nécessaire pour aiguiller ces données d'arbitrer entre files d'attentes en différents points du réseau. The present invention relates to a method and device for arbitrating between queues in a digital transmission network. It applies in particular to the digital data mixing and switching equipment composing a network operating in asynchronous transmission mode called ATM, the latter term being derived from the English expression "Asynchronous Transfer Mode". More generally, the invention applies to all digital data transmission networks where it is necessary to route this data to arbitrate between queues at different points of the network.
Les systèmes de télécommunication font notamment de plus en plus appel au mode de transfert asynchrone ATM. Cette technique de transmission permet de véhiculer des informations numériques de natures et de débits aussi variés qu'irréguliers. L'information est transportée à travers un réseau pouvant présenter diverses topologies, par exemple en maillage, en anneau ou en étoile. Chaque noeud du réseau, appelé commutateur
ATM, est relié à un noeud adjacent par une artère de transmission acceptant tous types de technologies. La transmission peut donc se faire par exemple par câble, par faisceau hertzien ou par fibre optique.Telecommunication systems are increasingly using the asynchronous ATM transfer mode. This transmission technique makes it possible to convey digital information of varied and irregular nature and bit rates. The information is transported through a network which can present various topologies, for example in mesh, ring or star. Each node in the network, called a switch
ATM, is connected to an adjacent node by a transmission route accepting all types of technology. Transmission can therefore take place, for example, by cable, microwave or optical fiber.
Le principe de la technique ATM est de segmenter les données issues des divers sources en blocs de longueur fixe, et d'ajouter à un bloc un en-tête pour former une cellule ATM. Les cellules ATM provenant de diverses sources sont alors multiplexées et transmises de façon asynchrone sur l'artère de transmission. The principle of the ATM technique is to segment the data from the various sources into blocks of fixed length, and to add a header to a block to form an ATM cell. ATM cells from various sources are then multiplexed and transmitted asynchronously over the transmission artery.
Au sein d'équipements ATM, à un instant donné, plusieurs cellules peuvent se disputer l'accès à une même ressource. La mise en file d'attente des cellules concurrentes est alors nécessaire et il faut par la suite choisir selon quel ordre les files d'attente seront servies. Within ATM equipment, at a given time, several cells can compete for access to the same resource. Queuing of competing cells is then necessary and it is then necessary to choose in what order the queues will be served.
Dans un équipement, par exemple un commutateur ATM, possédant Ne ports d'entrée et Ns ports de sortie, il est nécessaire de mettre en file d'attente les cellules reçues ou à émettre. Au niveau d'un port d'entrée, les cellules sont stockées dans différents registres de type FIFO selon des critères précis, par exemple selon la destination, le chemin ou le canal virtuel, le port de sortie de l'équipement suivant ou la priorité. Un registre de type FIFO est un registre connu de l'homme du métier où les bits sortent selon leur ordre d'entrée dans le registre, FIFO étant dérivé de l'expression anglo-saxonne "First in, First out". In equipment, for example an ATM switch, having Ne input ports and N output ports, it is necessary to queue the cells received or to be transmitted. At an input port, the cells are stored in different FIFO type registers according to precise criteria, for example according to the destination, the path or the virtual channel, the output port of the following equipment or the priority . A FIFO type register is a register known to those skilled in the art where the bits exit according to their order of entry into the register, FIFO being derived from the Anglo-Saxon expression "First in, First out".
Selon l'art antérieur, chaque port possède un algorithme d'arbitrage par niveau de priorité qui permet de choisir la file d'attente à servir parmi toutes celles qui ont la même priorité. Ce mécanisme se réfère à une table d'éligibilité qui contient des informations binaires qui selon leurs valeurs autorisent ou non de servir un client ou un ensemble de clients. Par exemple, cette table d'éligibilité interdit de servir les files d'attente dont les cellules sont destinées à des ports de sortie congestionnés. Un des algorithmes d'arbitrage le plus utilisé est connu sous le terme de "Priorité
Tournante" ou de "Round Robin" L'algorithme opère indépendamment d'un port d'entrée à l'autre.According to the prior art, each port has a priority level arbitration algorithm which makes it possible to choose the queue to be served from among all those which have the same priority. This mechanism refers to an eligibility table which contains binary information which, depending on their values, authorizes or not to serve a client or a set of clients. For example, this eligibility table prohibits serving queues whose cells are intended for congested exit ports. One of the most used arbitration algorithms is known as "Priority"
Rotating "or" Round Robin "The algorithm operates independently from one input port to another.
Les mécanismes d'arbitrage actuels introduisent plusieurs inconvénients, en particulier ils peuvent entraîner une dégradation des performances. Le rendement est ainsi mauvais dans la mesure où il apparaît des congestions à l'intérieur des commutateurs. II en résulte alors pour l'utilisateur final une augmentation des temps de réponse. A terme, I'usager est donc mal servi. Current arbitration mechanisms introduce several drawbacks, in particular they can lead to performance degradation. The performance is thus poor in that there is congestion inside the switches. This results in an increase in response times for the end user. Ultimately, the user is therefore poorly served.
Le but de l'invention est de pallier les inconvénients précités pour permettre notamment un écoulement efficace et rapide des informations au niveau de chaque noeud d'un réseau par exemple asynchrone, et donc améliorer le service final pour l'usager. The object of the invention is to overcome the aforementioned drawbacks, in particular to allow an efficient and rapid flow of information at each node of a network, for example asynchronous, and therefore improve the final service for the user.
A cet effet, I'invention a pour objet un procédé d'arbitrage entre des files d'attente au niveau d'un noeud d'un réseau de transmission numérique, caractérisé en ce que chaque file d'attente ayant un niveau de priorité attribué, il introduit un aléa dans la sélection des files d'attente de même priorité. To this end, the invention relates to an arbitration process between queues at a node of a digital transmission network, characterized in that each queue having a priority level assigned , it introduces a hazard into the selection of queues with the same priority.
L'invention a également pour objet un dispositif pour la mise en oeuvre du procédé. L'invention a pour principaux avantages qu'elle est simple à mettre en oeuvre et qu'elle est économique. The invention also relates to a device for implementing the method. The main advantages of the invention are that it is simple to implement and that it is economical.
D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit faite en regard de dessins annexés qui représentent:
- la figure 1, un dispositif d'arbitrage fonctionnant selon l'art antérieur,
- les figures 2a, 2b, 2c des illustrations d'un problème de synchronisation mis en évidence par la Déposante,
- la figure 3, un exemple de mode de réalisation possible pour la mise en oeuvre du procédé selon l'invention.Other characteristics and advantages of the invention will become apparent from the following description given with reference to the accompanying drawings which represent:
FIG. 1, an arbitration device operating according to the prior art,
- Figures 2a, 2b, 2c illustrations of a synchronization problem highlighted by the Applicant,
- Figure 3, an example of possible embodiment for the implementation of the method according to the invention.
La figure 1 présente, par un synoptique, un dispositif d'arbitrage entre files d'attente au niveau d'un noeud d'un réseau numérique, selon l'art antérieur. Un équipement 1 est voué à recevoir des données (cellules ATM ou paquets ou trames ...) provenant de Ne ports d'entrée et à les retransmettre sur certains de ses Ns ports de sortie. Les ports de sortie ayant un débit limité, si tous les ports d'entrée présentent des données destinées au même port de sortie, il sera impossible de retransmettre toutes ces cellules en même temps. Les cellules qui n'auront pu être servies seront alors mises en files d'attente dans la FIFO du port de sortie destinataire et retransmises ultérieurement. Lorsque ces FIFO de sortie atteignent un certain seuil, on dit qu'il apparaît une congestion au sein de l'équipement. Figure 1 shows, by a block diagram, an arbitration device between queues at a node of a digital network, according to the prior art. An item of equipment 1 is dedicated to receiving data (ATM cells or packets or frames, etc.) coming from Ne input ports and for retransmitting them on some of its Ns output ports. Since the output ports have a limited speed, if all the input ports present data intended for the same output port, it will be impossible to retransmit all these cells at the same time. The cells which could not be served will then be queued in the FIFO of the destination output port and retransmitted later. When these output FIFOs reach a certain threshold, it is said that there is congestion within the equipment.
Afin de ne pas aller plus avant dans la congestion, elle doit être notifiée à tous les ports d'entrée par l'intermédiaire d'un contrôle de flux entre sorties et entrées et/ou pour la mise à jour d'une table d'éligibilité. Ainsi pour chaque port d'entrée, un arbitre est nécessaire pour choisir les files d'attente à servir parmi celles qui ne sont pas susceptibles d'aggraver la congestion.In order not to go further in congestion, it must be notified to all ports of entry via a flow control between outputs and inputs and / or for the updating of a table of eligibility. Thus for each port of entry, an arbitrator is required to choose the queues to be served from those which are not likely to worsen congestion.
Un algorithme de choix est alors nécessaire ; c'est l'algorithme "Round
Robin", appelé encore algorithme à "Priorité Tournante"
Des cellules arrivent à un noeud, concrétisé par un équipement 1.A choice algorithm is then necessary; this is the "Round algorithm
Robin ", also called" Rotating Priority "algorithm
Cells arrive at a node, materialized by equipment 1.
Cet équipement est par exemple un commutateur ATM. Sa fonction est notamment d'aiguiller les cellules arrivant sur ses ports d'entrée 10,11 vers ses ports de sortie 12, 13. L'équipement 1 comporte par exemple Ne ports d'entrée 10, 11. Une première interface d'entrée 2 est reliée au premier port d'entrée 10 de l'équipement 1. Une Terme interface 3 est reliée au Ne ième port d'entrée 11. Une interface, par exemple la première 2, comporte des circuits 201, 20P constitués de registres 14 de type FIFO, un premier circuit 201 contenant toutes les files d'attente de priorité 1, ia priorité la plus élevée, un pièze circuit 20P contenant toutes les files d'attente de priorité
P, la priorité la moins élevée, et d'autres circuits contenant les files d'attente de priorité intermédiaires. A titre d'exemple, le fonctionnement des interfaces 2, 3 est expliqué relativement aux circuits 201, 301 de priorité 1 de ces interfaces. Un circuit de priorité 1 sera appelé par la suite priorité 1. Chaque port de sortie du noeud 1 du réseau possède un algorithme d'arbitrage par niveau de priorité.This equipment is for example an ATM switch. Its function is in particular to direct the cells arriving at its input ports 10, 11 to its output ports 12, 13. The equipment 1 comprises for example Ne input ports 10, 11. A first input interface 2 is connected to the first input port 10 of the equipment 1. An interface term 3 is connected to the n th input port 11. An interface, for example the first 2, comprises circuits 201, 20P made up of registers 14 FIFO type, a first circuit 201 containing all the priority 1 queues, the highest priority, one trap circuit 20P containing all the priority queues
P, the lowest priority, and other circuits containing the intermediate priority queues. By way of example, the operation of the interfaces 2, 3 is explained relative to the circuits 201, 301 of priority 1 of these interfaces. A priority 1 circuit will hereinafter be called priority 1. Each output port of node 1 of the network has a priority level arbitration algorithm.
Une priorité 1 comporte un nombre Ns de registres 14 de type
FIFO, ce nombre Ns étant égal au nombre de ports de sortie de l'équipement 1. Chaque registre 14 de la priorité 1 contient une ou plusieurs cellules entrantes. Le rang X du registre 14, encore appelé numéro de FIFO, correspond au numéro du port de sortie prévu pour la cellule entrante. Le numéro X de FIFO précité correspond en fait au numéro de file d'attente de la cellule entrante. Par exemple une cellule ayant le rang X est prévue pour sortir sur le Xième port de sortie du noeud 1 du réseau. En d'autres termes, une FIFO contient une file d'attente de cellules, la FIFO 14 pouvant éventuellement être vide.A priority 1 comprises a number Ns of registers 14 of the type
FIFO, this number Ns being equal to the number of output ports of the equipment 1. Each register 14 of priority 1 contains one or more incoming cells. Row X of register 14, also called FIFO number, corresponds to the number of the output port provided for the incoming cell. The aforementioned FIFO number X in fact corresponds to the queue number of the incoming cell. For example, a cell having rank X is provided for exiting on the X th output port of node 1 of the network. In other words, a FIFO contains a cell queue, the FIFO 14 possibly being empty.
A chaque priorité 201, 20P, 301, 30P est associé un algorithme de choix 15 déroulé par exemple par un processeur non représenté. Les algorithmes d'arbitrage généralement utilisés sont connus sous l'appellation "Round Robin". L'algorithme d'arbitrage 15 associé à la priorité 1 sélectionne un rang X après avoir sélectionné un rang inférieur, et cela parmi les FIFO qui ont le droit d'émettre une cellule vers la sortie du noeud 1. Les cellules associées sont dites éligibles, par extension on dira que ce sont les rangs ou numéros de FIFO qui sont éligibles. Une table d'éligibilité non représentée est associée aux priorités ou circuits 201, 20P. Une FIFO dont le rang X a été sélectionné émet une cellule vers le port de sortie de rang X de l'équipement 1. Each priority 201, 20P, 301, 30P is associated with a choice algorithm 15 carried out for example by a processor not shown. The generally used arbitration algorithms are known as "Round Robin". The arbitration algorithm 15 associated with priority 1 selects a rank X after having selected a lower rank, and this among the FIFOs which have the right to transmit a cell towards the output of node 1. The associated cells are said to be eligible , by extension we will say that it is the ranks or FIFO numbers that are eligible. An eligibility table not shown is associated with the priorities or circuits 201, 20P. A FIFO whose rank X has been selected transmits a cell to the rank X output port of the equipment 1.
Au tour suivant, I'algorithme sélectionne un rang suivant, X + 1 si celui-ci est éligible, puis le rang X + 2, et ainsi de suite. A chaque FIFO 14 est associée une adresse de la table d'éligibilité pour aller y lire une information binaire sur son état d'éligibilité. L'algorithme d'arbitrage 15 opère donc cycliquement sur tous les rangs ou numéros de FIFO 1, 2, ...X, Ns d'une meme priorité, dans l'exemple de fonctionnement expliqué, il s'agit en l'occurrence des registres de priorité 1, donc des files d'attente associées. In the next round, the algorithm selects a next rank, X + 1 if it is eligible, then rank X + 2, and so on. Each FIFO 14 is associated with an address from the eligibility table to read binary information on its eligibility state. The arbitration algorithm 15 therefore operates cyclically on all the ranks or numbers of FIFO 1, 2, ... X, Ns of the same priority, in the example of operation explained, it is in this case priority 1 registers, therefore associated queues.
La Déposante a mis en évidence des problèmes de synchronisation de tous les algorithmes d'arbitrage de tous les ports d'entrée d'un noeud d'un réseau lorsqu'ils sont soumis à de fortes charges notamment quand toutes les files d'attente, c'est-à-dire toutes les priorités 201, 20P, 301, 308 contiennent des cellules. Le même phénomène de synchronisation peut évidemment se retrouver aussi au niveau des ports de sortie s'ils sont connectés à un autre noeud du réseau, c'est-à-dire que le même principe peut être appliqué entre différents noeuds d'un réseau. Dans ce cas, les cellules sont rangées en FIFO dont le numéro indique le port de sotie de l'équipement suivant. Le contrôle de flux est cette fois transmis entre noeuds. The Applicant has highlighted problems of synchronization of all the arbitration algorithms of all the input ports of a node of a network when they are subjected to heavy loads in particular when all the queues, that is, all priorities 201, 20P, 301, 308 contain cells. The same synchronization phenomenon can obviously also be found at the output ports if they are connected to another node of the network, that is to say that the same principle can be applied between different nodes of a network. In this case, the cells are stored in FIFO whose number indicates the output port of the following equipment. The flow control is this time transmitted between nodes.
Deux problèmes de synchronisation ont été mis en évidence par la Déposante. Two synchronization problems were highlighted by the Applicant.
Une synchronisation de type convergente apparaît lorsque les algorithmes de choix évoluent vers un état de synchronisation où tous les ports, d'entrée ou de sortie, servent la même file d'attente en même temps. A convergent type synchronization appears when the algorithms of choice evolve towards a synchronization state where all the ports, input or output, serve the same queue at the same time.
Une synchronisation de type aléatoire se produit lorsqu'une certaine périodicité dans le choix des files d'attente à servir provoque, à un instant t imprévisible, la synchronisation des algorithmes indépendants. A cet instant t, les algorithmes présentent différents déphasages les uns par rapport aux autres, et ils les conserveront tant qu'ils resteront synchronisés. Synchronization of random type occurs when a certain periodicity in the choice of queues to serve causes, at an unpredictable time t, the synchronization of independent algorithms. At this instant t, the algorithms present different phase shifts with respect to each other, and they will keep them as long as they remain synchronized.
Cela signifie notamment que si à l'instant t, une interface d'entrée sert la file de rang i et une autre interface d'entrée sert la file de rang j, alors l'écart de déphasage E-il restera constant tant que les files d'attente restent toutes non vides.This means in particular that if at time t, an input interface serves the queue of rank i and another input interface serves the queue of rank j, then the phase shift difference E-it will remain constant as long as the all queues remain non-empty.
A ces deux problèmes de synchronisation correspondent en fait deux types d'algorithmes basés sur des contrôles de flux différents. These two synchronization problems correspond in fact to two types of algorithms based on different flow controls.
Dans le cas d'un contrôle par file, I'algorithme d'arbitrage se réfère à une table d'éligibilité qui indique l'état de chaque file d'attente. Pour chaque cellule d'une file, cette table indique l'autorisation ou l'interdiction d'émettre cette cellule vers les ports de sortie du noeud. II apparaît alors une évolution vers une synchronisation convergente. In the case of a check by queue, the arbitration algorithm refers to an eligibility table which indicates the state of each queue. For each cell in a queue, this table indicates the authorization or prohibition to send this cell to the output ports of the node. There then appears an evolution towards converging synchronization.
Dans le cas d'un contrôle global, I'algorithme d'arbitrage se réfère à une table d'éligibilité qui indique l'état global des files. Cette table indique alors l'autorisation ou l'interdiction d'émettre une cellule pour l'ensemble des files d'attente. Une évolution tend ici vers une synchronisation aléatoire. In the case of a global check, the arbitration algorithm refers to an eligibility table which indicates the global status of the queues. This table then indicates the authorization or the prohibition to emit a cell for all the queues. An evolution here tends towards a random synchronization.
De ces problèmes de synchronisation, il résulte que de nombreuses cellules entrent en conflit lorsqu'elles doivent atteindre la même ressource, un port de sortie, au même moment. Elles congestionnent en fait la ressource. Ce type de phénomène entraîne ainsi une diminution des performances de l'équipement. From these synchronization problems, it follows that many cells conflict when they have to reach the same resource, an output port, at the same time. They are actually congesting the resource. This type of phenomenon thus leads to a decrease in the performance of the equipment.
Les figures 2a, 2b et 2c illustrent un problème de synchronisation dans le cas par exemple où le nombre d'entrée Ne du noeud est égal au nombre de sorties Ns. FIGS. 2a, 2b and 2c illustrate a synchronization problem in the case for example where the number of inputs Ne of the node is equal to the number of outputs Ns.
La figure 2a illustre un cas sans problème, un processus d'arbitrage dans sa phase initiale par exemple. Dans la première interface, la file d'attente n" 1 est sélectionnée, dans l'interface n" X + 1, la file d'attente n" X + 1 est sélectionnée, enfin dans le dernier interface Ns., la file d'attente n" Ns. est sélectionnée, puis un nouveau cycle recommence pour toutes les priorités 1 des interfaces. FIG. 2a illustrates a problem-free case, an arbitration process in its initial phase for example. In the first interface, the queue n "1 is selected, in the interface n" X + 1, the queue n "X + 1 is selected, finally in the last interface Ns., The queue d 'wait n "Ns. is selected, then a new cycle starts again for all the priorities 1 of the interfaces.
La figure 2b illustre le début d'une évolution vers un état de synchronisation. Dans le cas de la figure 2b, le port n" 1 de sortie est par exemple soumis à un blocage. Cela arrive notamment si le port de sortie est congestionné. Si deux cellules veulent au même instant sortir sur le même port, I'une d'elles pourra effectivement sortir et l'autre sera mise dans la file d'attente du port de sortie correspondant. II n'y aura congestion que lorsque l'une des FIFO des ports de sortie aura atteint un seuil maximal de remplissage. Un contrôle de flux est ainsi activé et sera envoyé à tous les ports d'entrée pour que les algorithmes de choix intègrent cette information dans leur "table d'éligibilité" Le contrôle de flux ramené à l'entrée du noeud du réseau interdit alors à la première interface de servir la file d'attente n" 1, son algorithme d'arbitrage essaie alors de servir la file d'attente n" 2. A terme, il apparaît une congestion lorsqu'un seuil maximum est atteint par exemple entre les deux priorités 1 des deux premières interfaces qui tentent en même temps d'émettre une cellule vers le deuxième port de sortie du noeud 1 du réseau. Le port de sortie n" 2 interdisant son accès, les deux premières interfaces vont alors se synchroniser sur la file d'attente n" 3 comme l'illustre la figure 2c. A un instant, si plusieurs algorithmes sont synchronisés sur le n" 2 par exemple, la FIFO de sortie du port 2 va grandir et risque donc rapidement d'atteindre son seuil de congestion. Plus il y a d'algorithmes synchronisés, plus la probabilité de congestion augmente, d'où la tendance convergente vers la synchronisation. Un phénomène de cascade se poursuit jusqu'au moment où toutes les interfaces émettent une cellule sur le même port de sortie, le dernier port Ns par exemple. II n'y a pas de ressource physique comme un bus qui interdise à tous ports d'entrée d'émettre une cellule vers la même sortie. Ils émettent effectivement tous une cellule mais une seule d'entre elles sera émise en sortie, les autres seront mises dans la file d'attente du port de sortie visé. FIG. 2b illustrates the start of an evolution towards a synchronization state. In the case of FIG. 2b, the output port n "1 is for example subject to a blocking. This happens in particular if the output port is congested. If two cells want to exit at the same instant on the same port, one one of them will actually be able to exit and the other will be queued for the corresponding exit port. There will be congestion only when one of the FIFOs of the exit ports has reached a maximum filling threshold. flow control is thus activated and will be sent to all input ports so that the choice algorithms integrate this information into their "eligibility table". Flow control brought back to the entry of the network node then prohibits the first interface to serve queue n "1, its arbitration algorithm then tries to serve queue n" 2. Ultimately, congestion appears when a maximum threshold is reached, for example between the two priorities 1 of the first two interfaces which try t at the same time send a cell to the second output port of node 1 of the network. The output port n "2 prohibiting its access, the first two interfaces will then synchronize on the queue n" 3 as illustrated in Figure 2c. At an instant, if several algorithms are synchronized on n "2 for example, the output FIFO of port 2 will grow and therefore risk quickly reaching its congestion threshold. The more synchronized algorithms, the higher the probability congestion increases, hence the converging trend towards synchronization. A cascade phenomenon continues until all the interfaces emit a cell on the same output port, the last port Ns for example. no physical resource like a bus which prohibits all input ports from transmitting a cell to the same output. They actually all emit a cell but only one of them will be output, the others will be queued waiting for the port of exit concerned.
De ce fait, désirant atteindre un même port de sortie au même moment, de nombreuses cellules créent donc une congestion. Ce type de phénomène entraîne ainsi une diminution des performances de l'équipement telle qu'exposée notamment précédemment. Therefore, wishing to reach the same output port at the same time, many cells therefore create congestion. This type of phenomenon thus leads to a reduction in the performance of the equipment as explained in particular above.
Selon l'invention, afin d'éviter toute dégradation des performances, le procédé d'arbitrage rompt les cycles qui entraînent une synchronisation tout en garantissant l'équité entre les files d'attente. Pour cela le procédé introduit un aléa dans la sélection des files d'attente de même priorité. A chaque choix, selon le procédé selon l'invention, une file d'attente est par exemple tirée au sort parmi toutes les files d'attente éligible, sans se préoccuper par exemple des choix précédents. L'équité est garantie en moyenne. Ainsi, au lieu de choisir la file d'attente de rang X + 1, si celleci est éligible, après la file d'attente de rang X, les moyens d'arbitrage permettent de choisir parmi toutes les files d'attentes éligibles, quel que soit leur rang. According to the invention, in order to avoid any degradation in performance, the arbitration process breaks the cycles which cause synchronization while guaranteeing equity between the queues. For this, the method introduces a hazard into the selection of queues of the same priority. With each choice, according to the method according to the invention, a queue is for example drawn by lot from all the eligible queues, without being concerned for example with the preceding choices. Fairness is guaranteed on average. Thus, instead of choosing the queue of rank X + 1, if this is eligible, after the queue of rank X, the arbitration means make it possible to choose from among all the eligible queues, which whatever their rank.
Une autre façon pour introduire un aléa selon l'invention consiste à tirer au sort parmi un nombre donné de files d'attente, par exemple à tirer au sort parmi N files d'attente éligibles suivant le rang de la dernière choisie. Another way to introduce a hazard according to the invention consists in drawing lots from a given number of queues, for example drawing lots from N eligible queues according to the rank of the last chosen.
Ainsi si la précédente file d'attente choisie était X, et si le nombre total de files éligibles est N, alors les moyens d'arbitrage autorisent le tirage au sort d'un nombre R entre 0 et N de telle sorte que la Rième file d'attente éligible à partir de la Xième file soit sélectionnée. La file sélectionnée ne sera donc pas forcément R+X modulo Ns.So if the previous queue chosen was X, and if the total number of eligible queues is N, then the arbitration means authorize the drawing of a number R between 0 and N so that the R th queue eligible queue from the Xth queue is selected. The selected queue will therefore not necessarily be R + X modulo Ns.
La figure 3 présente un mode de réalisation possible d'un dispositif pour la mise en oeuvre du procédé selon l'invention. Ce dispositif fournit le numéro de la file d'attente à servir. II est associé à un circuit 201, 20P, 301, 30P de priorité donnée dans une interface d'entrée 2, 3. Il permet donc à l'interface de choisir une file d'attente parmi toutes celles d'une même priorité. FIG. 3 shows a possible embodiment of a device for implementing the method according to the invention. This device provides the number of the queue to be served. It is associated with a circuit 201, 20P, 301, 30P of priority given in an input interface 2, 3. It therefore allows the interface to choose a queue among all those of the same priority.
Selon la figure 3 un compteur 41 compte le nombre de files d'attente qui peuvent être élues. Pour cela le compteur 41 est relié à la table d'éligibilité 42. Cette table est composée par exemple de Ns registres, Ns étant le nombre de ports de sortie du noeud du réseau. Le registre n" X indique par exemple l'état d'éligibilité de la file d'attente n" X par une information binaire, 1 signifiant par exemple éligible et 0 signifiant par exemple non éligible. Une file d'attente X est déclarée éligible si elle est non vide et si le port destinataire n'est pas congestionné. Le compteur 41 compte donc par exemple le nombre de bits égaux à 1 dans la table d'éligibilité 42. According to FIG. 3, a counter 41 counts the number of queues which can be elected. For this, the counter 41 is connected to the eligibility table 42. This table is composed for example of Ns registers, Ns being the number of output ports of the network node. The register n "X indicates for example the state of eligibility of the queue n" X by binary information, 1 meaning for example eligible and 0 meaning for example not eligible. A queue X is declared eligible if it is not empty and if the destination port is not congested. The counter 41 therefore counts for example the number of bits equal to 1 in the eligibility table 42.
Le résultat est compris entre 0 et Ns. Un module 43 de génération de nombres aléatoires fournit des nombres aléatoires codés par exemple sur 16 bits, à partir par exemple d'un polynôme de degré 32. Les possibilités de choix sont dans ce cas très importantes. Le nombre aléatoire fourni est compris entre 0 et 1,1 étant exclu. II appartient donc à l'intervalle [0, 1[.The result is between 0 and Ns. A random number generation module 43 provides random numbers coded for example on 16 bits, starting for example from a polynomial of degree 32. The possibilities of choice are in this case very important. The random number provided is between 0 and 1.1 being excluded. It therefore belongs to the interval [0, 1 [.
La sortie du compteur 41 indiquant le résultat du comptage de ce dernier et la sortie du générateur 43 de nombres aléatoires sont reliées aux deux entrées d'un multiplieur 44, ce dernier effectuant le produit de ces deux entrées, donc le produit du nombre de files d'attente éligibles par le nombre aléatoire fourni. Le nombre Ns de ports de sortie est par exemple tel qu'il peut être codé sur 5 bits. Le multiplieur 44 effectue un arrondi afin de présenter à sa sortie un nombre entier compris entre 1 et Ns. Le multiplieur 44 permet de réaliser un tirage aléatoire équitable d'un nombre entier compris entre 1 et N, avec N variable entre chaque tirage. Une autre solution aurait pu être de tirer au sort un nombre très grand compris entre 1 et 2P-1 (tirage au hasard classique puisque les deux bornes sont fixes), puis exprimer le résultat en entier sur 5 bits modulo N (N = nombre de files éligibles) +1. On obtient ainsi un nombre compris entre 1 et N, mais la réalisation d'un modulo N (avec N non puissance de 2) n'est pas très aisé. The output of the counter 41 indicating the result of the counting of the latter and the output of the generator 43 of random numbers are connected to the two inputs of a multiplier 44, the latter carrying out the product of these two inputs, therefore the product of the number of queues waiting list eligible by the random number provided. The number Ns of output ports is for example such that it can be coded on 5 bits. The multiplier 44 performs a rounding in order to present at its output an integer between 1 and Ns. The multiplier 44 makes it possible to carry out a fair random draw of an integer between 1 and N, with N variable between each draw. Another solution could have been to draw a very large number between 1 and 2P-1 (classical random draw since the two bounds are fixed), then express the result in full on 5 bits modulo N (N = number of eligible queues) +1. We thus obtain a number between 1 and N, but the realization of a modulo N (with N not power of 2) is not very easy.
De plus pour être certain d'avoir un tirage aléatoire équitabie, il faut que p soit très grand. On voit donc les avantages en terme de simplicité et d'équité apportés par la solution proposée dans le dispositif de la figure 3.In addition, to be sure of having a fairness random draw, p must be very large. We therefore see the advantages in terms of simplicity and fairness provided by the solution proposed in the device in FIG. 3.
La sortie du multiplieur 44 est reliée à une entrée d'un premier multiplexeur 45, L'autre entrée de ce multiplexeur ayant un état logique constant égal à 1. Ce multiplexeur 45 est commandé par un signal binaire
M1. Sa sortie est reliée à une première entrée N d'un circuit de sélection 46.The output of the multiplier 44 is connected to an input of a first multiplexer 45, the other input of this multiplexer having a constant logic state equal to 1. This multiplexer 45 is controlled by a binary signal
M1. Its output is connected to a first input N of a selection circuit 46.
La sortie d'un deuxième multiplexeur 47 est reliée à une deuxième entrée R du circuit de sélection 46. Une première entrée du deuxième multiplexeur 47 est à l'état logique 0 alors que l'autre entrée est reliée à la sortie d'une mémoire 48 qui mémorise la sortie du circuit de sélection 46. The output of a second multiplexer 47 is connected to a second input R of the selection circuit 46. A first input of the second multiplexer 47 is in logic 0 while the other input is connected to the output of a memory 48 which stores the output of the selection circuit 46.
Cette mémoire 48 mémorise en fait la dernière file d'attente servie.This memory 48 in fact stores the last queue served.
Le circuit de sélection parcourt la table d'éligibilité à partir du rang
R + 1, R étant le nombre affiché à sa deuxième entrée R. II parcourt à partir de ce rang R + 1, N registres éligibles successifs, à l'état 1 par exemple, de la table d'éligibilité. II présente à sa sortie le rang du dernier registre parcouru, par exemple R + 1 + N si tous les registres sont éligibles. Si le compteur 41 compte un résultat nul, il désactive le circuit de sélection 46 dont la sortie reste alors figée. Le compteur 41 est relié à une entrée d'activation du circuit de sélection 46. Le compteur indique si son résultat est nul par une information binaire. Cette dernière est aussi combinée avec la sortie du circuit de sélection 46 par l'intermédiaire d'une porte "et" 49. La sortie de cette porte est à zéro si le compteur est à zéro, dans ce cas aucune file d'attente n'est à servir. Le circuit de sélection 46 ayant été désactivé, le numéro de la dernière file d'attente servi est conservé en sortie du circuit. II est donc possible de reboucler sur ce dernier quand des files d'attente seront de nouveau à servir. Si le compteur affiche un résultat non nul, la porte "et" 49 reproduit la sortie du circuit de sélection. La porte "et" 49 fournit en sortie le numéro de file d'attente à servir. Ce numéro est par exemple lu par un processeur qui active par exemple le registre ou la FIFO correspondante.The selection circuit goes through the eligibility table from the rank
R + 1, R being the number displayed at its second entry R. It traverses from this rank R + 1, N successive eligible registers, in state 1 for example, of the eligibility table. At its output, it presents the rank of the last register scanned, for example R + 1 + N if all the registers are eligible. If the counter 41 counts a zero result, it deactivates the selection circuit 46, the output of which then remains frozen. The counter 41 is connected to an activation input of the selection circuit 46. The counter indicates whether its result is zero by binary information. The latter is also combined with the output of the selection circuit 46 via a gate "and" 49. The output of this gate is at zero if the counter is at zero, in this case no queue n is to serve. The selection circuit 46 having been deactivated, the number of the last queue served is kept at the output of the circuit. It is therefore possible to loop back on the latter when queues are again to be used. If the counter displays a non-zero result, the gate "and" 49 reproduces the output of the selection circuit. Gate "and" 49 provides the output with the queue number to be served. This number is for example read by a processor which activates for example the register or the corresponding FIFO.
Les différents circuits, notamment le compteur 41 et le module 43 de génération de nombres aléatoires, sont par exemple synchronisés par un signal d'horloge non représenté, ou bien par un signal commandé par un processeur, chaque signal de synchronisation correspondant à une nouvelle sélection de file d'attente. The various circuits, in particular the counter 41 and the module 43 for generating random numbers, are for example synchronized by a clock signal not shown, or else by a signal controlled by a processor, each synchronization signal corresponding to a new selection. queue.
Les informations binaires M1, M2 qui commandent les deux multiplexeurs permettent de configurer le fonctionnement de l'ensemble. The binary information M1, M2 which controls the two multiplexers makes it possible to configure the operation of the assembly.
Si M1M2 = 11, la première entrée N du circuit de sélection est forcée à 1 et la deuxième entrée R reproduit le dernier numéro de file d'attente servie. Après la file d'attente de rang R, celle de rang R+1 est ainsi sélectionnée, puis celle de rang R+2 et ainsi de suite. Un algorithme cyclique de type Round Robin est alors en fonctionnement. Aucun aléa n'est introduit, c'est le cas décrit précédemment qui peut amener, dans certaines circonstances à une diminution globale des performances de l'équipement. If M1M2 = 11, the first entry N of the selection circuit is forced to 1 and the second entry R reproduces the last queue number served. After the queue of row R, that of row R + 1 is thus selected, then that of row R + 2 and so on. A cyclic algorithm of the Round Robin type is then in operation. No risk is introduced, this is the case described above which can lead, in certain circumstances, to an overall reduction in the performance of the equipment.
Si M1M2 = 00, la deuxième entrée R est forcée à zéro et la première entrée N du circuit de sélection 46 comporte le résultat du compteur 41. Après chaque sélection, une nouvelle file d'attente est alors choisie au hasard parmi toutes celles éligibles. If M1M2 = 00, the second input R is forced to zero and the first input N of the selection circuit 46 includes the result of the counter 41. After each selection, a new queue is then chosen at random from among all those eligible.
Si M1M2 = 01, la deuxième entrée R reproduit le numéro de la dernière file d'attente sélectionnée et la première entrée N du circuit de sélection 46 comporte le résultat du compteur 41. If M1M2 = 01, the second entry R reproduces the number of the last queue selected and the first entry N of the selection circuit 46 includes the result of the counter 41.
Si M1M2 = 10, la première entrée N est fixée à 1 et la deuxième entrée R du circuit de sélection 46 est fixée à 0. La première file d'attente éligible à partir de la première file d'attente est alors sélectionnée. If M1M2 = 10, the first entry N is set to 1 and the second entry R of the selection circuit 46 is set to 0. The first queue eligible from the first queue is then selected.
Les circuits de la figure 3 pourraient par exemple être remplacés par un microcontrôleur intégrant les fonctions de tous ces circuits. The circuits of Figure 3 could for example be replaced by a microcontroller integrating the functions of all these circuits.
Claims (11)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9605845A FR2748620B1 (en) | 1996-05-10 | 1996-05-10 | METHOD AND APPARATUS FOR ARBITRATION BETWEEN WAITING WIRES IN A DIGITAL TRANSMISSION NETWORK |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9605845A FR2748620B1 (en) | 1996-05-10 | 1996-05-10 | METHOD AND APPARATUS FOR ARBITRATION BETWEEN WAITING WIRES IN A DIGITAL TRANSMISSION NETWORK |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2748620A1 true FR2748620A1 (en) | 1997-11-14 |
FR2748620B1 FR2748620B1 (en) | 1998-07-31 |
Family
ID=9492019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9605845A Expired - Lifetime FR2748620B1 (en) | 1996-05-10 | 1996-05-10 | METHOD AND APPARATUS FOR ARBITRATION BETWEEN WAITING WIRES IN A DIGITAL TRANSMISSION NETWORK |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2748620B1 (en) |
-
1996
- 1996-05-10 FR FR9605845A patent/FR2748620B1/en not_active Expired - Lifetime
Non-Patent Citations (4)
Title |
---|
"FRED FRAMEWORK III", 1988, ASHTON-TATE CORPORATION, XP002023973 * |
CHAO H J ET AL: "QUEUE MANAGEMENT WITH MULTIPLE DELAY AND LOSS PRIORITIES FOR ATM SWITCHES", SERVING HUMANITY THROUGH COMMUNICATIONS. SUPERCOMM/ICC, NEW ORLEANS, MAY 1 - 5, 1994, vol. VOL. 2, no. -, 1 May 1994 (1994-05-01), INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, pages 1184 - 1189, XP000438688 * |
DECINA M ET AL: "DATAGRAM SWITCHING NETWORKS FOR BROADBAND DATA COMMUNICATIONS", GLOBECOM'92. COMMUNICATION FOR GLOBAL USERS, INCLUDING A COMMUNICATIONS THEORY MINI CONFERENCE ORLANDO, DEC. 6 - 9, 1992, vol. 1 - 2 - 03, 6 December 1992 (1992-12-06), INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS, pages 104 - 110, XP000357769 * |
M.G. HLUCHYJ ET AL.: "Queueing in high-performance packet switching", IEEE JOURNAL ON SELECTED AREAS IN TELECOMMUNICATION, vol. 6, no. 9, December 1988 (1988-12-01), USA, pages 1587 - 1597, XP002023972 * |
Also Published As
Publication number | Publication date |
---|---|
FR2748620B1 (en) | 1998-07-31 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0707399B1 (en) | Method and device for congestion control in a packet communication network | |
EP0858193B1 (en) | Method and device for resource allocation in a digital packet transmission network | |
EP1507374B1 (en) | Method and device for priority management during a message transmission. | |
EP2282456B1 (en) | Communication network on a chip with service guarantee | |
EP0431438B1 (en) | Flow control procedure for a broadband integrated services digital telecommunication network, and network to realize the procedure | |
CA2655948C (en) | Method of routing virtual links in a frame-switching network with guaranteed determinism | |
EP2314018B1 (en) | Method for communicating between a plurality of nodes | |
EP0354119B1 (en) | Packet switch for asynchronously transmitting data in a digital transmission network | |
FR2801455A1 (en) | METHOD FOR TRANSMITTING DATA STREAMS OVER AN ATM NETWORK, AND DEVICE FOR IMPLEMENTING THE METHOD | |
EP0771132B1 (en) | Device for regulating the flow of ATM cells inside an ATM switch | |
FR2674393A1 (en) | SYNCHRONIZATION OF TERMINAL STATIONS IN AN ALTERNATE AND MULTIDEBIT NETWORK. | |
FR2824434A1 (en) | Digital packet switched network broadcasting nodes/links having nodes broadcasting simultaneously several links and recovery path calculation minimising links per node. | |
EP1770927B1 (en) | Packet switching system for telecom network node | |
FR2748620A1 (en) | Arbitration method for queued data awaiting transmission over digital network | |
EP0689371A1 (en) | Communication system having a network and multiplexing unit | |
EP1871058B1 (en) | System and method for the management of messages transported in an interconnection network | |
EP0961446A1 (en) | Congestion control in an ATM node | |
FR2758427A1 (en) | SWITCHING ELEMENT, IN PARTICULAR ATM CELLS, USING PROBABILISTIC PRIORITIES ATTACHED TO CELLS | |
EP1401156B1 (en) | Method for access control in a shared medium network, corresponding node and network | |
FR2793572A1 (en) | METHOD AND DEVICE FOR CONTROLLING THE START ORDER OF INFORMATION OR OBJECTS TEMPORARILY STORED | |
EP0270471B1 (en) | Packet switching system | |
EP1710710A1 (en) | Circuit interface within an electronic integrated circuit | |
EP0612173B1 (en) | Bitrate reservation in a ATM network | |
FR2755334A1 (en) | METHOD FOR TRANSMITTING DATA OVER AN ATM NETWORK | |
FR2907628A1 (en) | Data packet transmitting method for packet switching communication network, involves sending rejection request over links towards switch using transmitting unit if stand-by packet has priority more high than blocking packet |