FR2826535A1 - Switching network digital packet transmission having communications network branches and descriptor header detailing recover branch path/broadcasting following header description. - Google Patents

Switching network digital packet transmission having communications network branches and descriptor header detailing recover branch path/broadcasting following header description. Download PDF

Info

Publication number
FR2826535A1
FR2826535A1 FR0108228A FR0108228A FR2826535A1 FR 2826535 A1 FR2826535 A1 FR 2826535A1 FR 0108228 A FR0108228 A FR 0108228A FR 0108228 A FR0108228 A FR 0108228A FR 2826535 A1 FR2826535 A1 FR 2826535A1
Authority
FR
France
Prior art keywords
header
broadcast
packet
output port
tree
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
Application number
FR0108228A
Other languages
French (fr)
Other versions
FR2826535B1 (en
Inventor
Laurent Frouin
Stephane Bizet
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to FR0108228A priority Critical patent/FR2826535B1/en
Publication of FR2826535A1 publication Critical patent/FR2826535A1/en
Application granted granted Critical
Publication of FR2826535B1 publication Critical patent/FR2826535B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/34Source routing

Landscapes

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

Abstract

The digital word broadcast process has communications network branches with radio connection and nodes. A first phase constructs a broadcasting header with a description of part of the recovery branches. Then there is a propagation phase broadcasting packages following the description of the branch part in the header.

Description

<Desc/Clms Page number 1> <Desc / Clms Page number 1>

Procédé de diffusion de données utiles au sein d'un réseau commuté, basé sur l'utilisation de paquets de diffusion dynamique.  Method for broadcasting useful data within a switched network, based on the use of dynamic broadcast packets.

Le domaine de l'invention est celui des réseaux commutés, comprenant une pluralité de ncads connectés par une pluralité de liens physiques de communication.  The field of the invention is that of switched networks, comprising a plurality of ncads connected by a plurality of physical communication links.

D'une façon générale, chaque lien relie un port de sortie d'un premier noad à un port d'entrée d'un second need. Ces liens permettent généralement des transferts de données bidirectionnels, par exemple selon la norme IEEE 1355.  In general, each link connects an output port of a first noad to an input port of a second need. These links generally allow bidirectional data transfers, for example according to the IEEE 1355 standard.

Plus précisément, la présente invention concerne la diffusion, au sein d'un tel réseau commuté, de données utiles contenues dans des paquets de données numériques (ou PDU, pour"Protocol Data Unit"en anglais), dits paquets de diffusion.  More specifically, the present invention relates to the broadcast, within such a switched network, useful data contained in digital data packets (or PDUs for "Protocol Data Unit" in English), called broadcast packets.

L'invention s'applique notamment, mais non exclusivement, à un réseau commuté à haut débit comprenant un faible nombre de nocds, permettant notamment l'échange en temps réel d'images animées, par exemple pour une distribution dans le cadre d'une habitation.  The invention applies in particular, but not exclusively, to a high-speed switched network comprising a small number of nocds, notably allowing the real-time exchange of animated images, for example for a distribution within the framework of a dwelling.

Classiquement, chaque noed d'un réseau commuté comprend un appareil de commutation (parfois aussi appelé dispositif de commutation dans la suite de la description) et un appareil de traitement de données.  Conventionally, each node of a switched network includes a switching device (sometimes also called switching device in the following description) and a data processing device.

L'appareil de commutation comprend lui même un dispositif de outage des paquets de données et un dispositif d'interface entre les moyens de routage et les liens. The switching device itself comprises a data packet outfitting device and an interface device between the routing means and the links.

On distingue généralement deux types de paquets de données, à savoir les paquets"point-à-point" (ou"unicast packets"en anglais) et les paquets "de diffusion" (encore appelés paquets"point-multipoint", ou "broadcast packets"en anglais).  There are generally two types of data packets, namely "point-to-point" packets (or "unicast packets" in English) and "broadcast" packets (also known as "point-to-multipoint" or "broadcast" packets). packets "in English).

Quel que soit leur type, les paquets de données possèdent un format prédéterminé, comprenant par exemple un en-tête de routage, un corps (contenant des données utiles) et un indicateur de fin de paquet ou de  Whatever their type, the data packets have a predetermined format, including for example a routing header, a body (containing useful data) and an end-of-packet or packet indicator.

<Desc/Clms Page number 2><Desc / Clms Page number 2>

message. Un message est composé soit d'au moins deux paquets, soit d'un seul paquet (dans le second cas on utilise l'indicateur fin de message).  message. A message is composed of at least two packets or a single packet (in the second case the end of message indicator is used).

Le chemin qu'un paquet point-à-point doit emprunter pour atteindre sa destination est déterminé par l'émetteur (routage à la source). Ce chemin est indiqué dans l'en-tête du paquet point-à-point, et est utilisé par les nmds intermédiaires pour déterminer le lien suivant sur lequel doit être envoyé le paquet
On rappelle que chaque paquet, qui est véhiculé par un lien connecté à un nccd, arrive sur un port d'entrée de ce nccd et est commuté vers un port de sortie de ce neat, d'où il repart en étant véhiculé par le lien précité ou par un autre lien.
The path a point-to-point packet must take to reach its destination is determined by the transmitter (source routing). This path is indicated in the header of the point-to-point packet, and is used by intermediate nmds to determine the next link on which the packet is to be sent.
Remember that each packet, which is carried by a link connected to a nccd, arrives on an input port of this nccd and is switched to an output port of this neat, where it starts being conveyed by the link mentioned above or by another link.

Traditionnellement, un paquet de diffusion se distingue d'un paquet point-à-point en ce que son en-tête comporte un indicateur de paquet de diffusion, indiquant qu'il doit être envoyé à chacun des nonds du réseau.  Traditionally, a broadcast packet differs from a point-to-point packet in that its header includes a broadcast packet indicator, indicating that it must be sent to each of the nodes in the network.

Ainsi, lorsqu'un nccd reçoit un paquet, il analyse systématiquement le contenu de l'en-tête de ce paquet, afin de déterminer s'il s'agit d'un paquet point-à-point ou d'un paquet de diffusion, et donc pouvoir le traiter de façon adéquate. Thus, when a nccd receives a packet, it systematically analyzes the contents of the header of this packet, to determine whether it is a point-to-point packet or a broadcast packet and therefore be able to treat it adequately.

Selon la technique connue actuelle, dans le cas d'un paquet de diffusion, le traitement adéquat est déterminé à l'avance. Tous les nords susceptibles de recevoir des paquets de diffusion sont connus à l'avance et font l'objet d'un paramétrage matériel préalable.  According to the current known technique, in the case of a broadcast packet, the appropriate treatment is determined in advance. All nords likely to receive broadcast packets are known in advance and are the subject of a prior hardware setting.

En effet, de façon classique, les paquets de diffusion sont diffusés le long d'un arbre de recouvrement du réseau (ou"spanning tree"en anglais).  Indeed, conventionally, broadcast packets are broadcast along a spanning tree of the network (or "spanning tree" in English).

Cet arbre est calculé de façon préalable, en fonction de la topologie du réseau. Il définit, parmi l'ensemble des liens formant le maillage du réseau, ceux devant être utilisés pour permettre la diffusion d'un paquet de diffusion depuis un nocd source vers l'ensemble des autres nards du réseau. This tree is calculated beforehand, according to the topology of the network. It defines, among the set of links forming the mesh of the network, those to be used to allow the diffusion of a packet of diffusion from a nocd source towards all the other nards of the network.

En d'autres termes, selon la technique connue actuelle, chaque nood de l'arbre de recouvrement subit une configuration matérielle préalable, lui  In other words, according to the currently known technique, each nood of the recovery tree undergoes a prior hardware configuration, it

<Desc/Clms Page number 3><Desc / Clms Page number 3>

permettant, lorsqu'il reçoit un paquet de diffusion, de savoir vers quel (s) autre (s) ncnd de l'arbre de recouvrement il doit propager ce paquet de diffusion.  allowing, when receiving a broadcast packet, to know which other (s) ncnd of the recovery tree he has to propagate this broadcast packet.

Dans la suite de la description, les paquets de diffusion utilisés par la technique connue précitée sont appelés"paquets de diffusion statique".  In the rest of the description, the broadcast packets used by the aforementioned known technique are called "static broadcast packets".

Il est important de noter que, selon la technique connue actuelle, les nards de l'arbre de recouvrement ne modifient pas les paquets de diffusion statique dont ils assurent la propagation. Notamment, l'en-tête des paquets de diffusion statique (qui contient l'indicateur de paquet de diffusion) est commun à tous les paquets de diffusion statique. Seules les données utiles, contenues dans le corps des paquets de diffusion statique, différent d'un paquet de diffusion statique à l'autre.  It is important to note that, according to the current known technique, the nards of the recovery tree do not modify the static diffusion packets which they propagate. In particular, the static broadcast packet header (which contains the broadcast packet indicator) is common to all static broadcast packets. Only useful data, contained in the body of static broadcast packets, differs from one static broadcast packet to another.

D s'avère que le paramétrage (aussi appelé configuration) matériel préalable de chacun des nonds de l'arbre de recouvrement est une opération longue, complexe et coûteuse.  It turns out that the prior hardware configuration (also called configuration) of each of the nonds of the cover shaft is a long, complex and expensive operation.

L'invention a notamment pour objectif de pallier cet inconvénient majeur de l'état de la technique.  The invention particularly aims to overcome this major drawback of the state of the art.

Plus précisément, l'un des objectifs de la présente invention est de fournir un procédé de diffusion de données utiles au sein d'un réseau commuté, ce procédé ne nécessitant aucun paramétrage matériel préalable de chacun des nocds de l'arbre de recouvrement.  More precisely, one of the objectives of the present invention is to provide a method for broadcasting useful data within a switched network, this method not requiring any prior hardware parameterization of each of the nocents of the recovery tree.

L'invention a également pour objectif de fournir un tel procédé qui soit simple à mettre en ouvre et peu coûteux.  The invention also aims to provide such a method that is simple to implement and inexpensive.

Encore un autre objectif de l'invention est de fournir un tel procédé pouvant être mis en ouvre quelle que soit la forme de l'arbre de recouvrement.  Yet another object of the invention is to provide such a method that can be implemented regardless of the shape of the cover shaft.

Ces différents objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints selon l'invention à l'aide d'un procédé de diffusion de données utiles le long d'au moins une partie d'un arbre de recouvrement d'un réseau de commutation par paquets. L'arbre de recouvrement comprend une pluralité de nords reliés entre eux par des liens. Chaque lien  These various objectives, as well as others which will appear later, are achieved according to the invention by means of a method of broadcasting useful data along at least a part of a tree of recovery of a packet switching network. The cover shaft comprises a plurality of nords interconnected by links. Each link

<Desc/Clms Page number 4><Desc / Clms Page number 4>

relie un port de sortie, dit port de sortie impliqué, d'un premier ncnd à un port d'entrée, dit port d'entrée impliqué, d'un second nard. Les données utiles sont contenues dans le corps d'au moins un paquet de diffusion comprenant un en-tête de diffusion et un corps. Selon l'invention, ledit procédé comprend : une phase de construction d'au moins un paquet de diffusion dont l'en-tête de diffusion contient une description d'au moins une partie de l'arbre de recouvrement ; une phase de propagation de chaque paquet de diffusion, en fonction de ladite description d'au moins une partie de l'arbre de recouvrement contenue dans l'en-tête de diffusion.  connects an output port, said output port involved, from a first ncnd to an input port, said port of entry involved, to a second nard. The payload is contained in the body of at least one broadcast packet including a broadcast header and a body. According to the invention, said method comprises: a phase of constructing at least one broadcast packet whose broadcast header contains a description of at least a part of the recovery tree; a propagation phase of each broadcast packet, according to said description of at least a portion of the overlay tree contained in the broadcast header.

Le principe général de l'invention consiste donc à augmenter la quantité d'infirmations contenue dans l'en-tête du paquet de diffusion, en remplaçant l'indicateur de paquet de diffusion, propre à la technique classique discutée ci-dessus, par une description de la partie de l'arbre de recouvrement le long de laquelle ce paquet de diffusion doit être propagé par des noads successifs.  The general principle of the invention therefore consists in increasing the quantity of cancellations contained in the header of the broadcast packet, by replacing the diffusion packet indicator, specific to the conventional technique discussed above, by a description of the part of the recovery tree along which this broadcast packet is to be propagated by successive noads.

De cette façon, il n'est plus nécessaire d'effectuer un paramétrage matériel préalable de chacun des noads de l'arbre de recouvrement. En effet, selon la présente invention, l'en-tête de diffusion de chaque paquet de diffusion contient directement les informations permettant à chaque need qui reçoit ce paquet de diffusion de savoir à quel (s) autre (s) nccds il doit le transmettre.  In this way, it is no longer necessary to perform a prior hardware setting of each of the noads of the recovery tree. In fact, according to the present invention, the broadcast header of each broadcast packet directly contains the information enabling each need which receives this broadcast packet to know which other (s) nccds it must transmit it. .

Dans un mode de réalisation préférentiel de l'invention, ladite phase de propagation comprend les étapes suivantes, mises en ouvre dans chaque nard de ladite au moins une partie de l'arbre de recouvrement : analyse du contenu de l'en-tête de diffusion, afin de déterminer si le noad est un noad final ou intermédiaire si le nond est un noad intermédiaire :

Figure img00040001

* analyse du contenu de l'en-tête de diffusion, afin de déterminer le ou les port (s) de sortie impliqué (s) du noad ; In a preferred embodiment of the invention, said propagation phase comprises the following steps, implemented in each of said at least part of the recovery tree: analysis of the content of the broadcast header , to determine if the noad is a final or intermediate noad if the nond is an intermediate noad:
Figure img00040001

* analysis of the content of the broadcast header, to determine the output port (s) involved in the noad;

<Desc/Clms Page number 5><Desc / Clms Page number 5>

* établissement d'une connexion entre le port d'entrée impliqué et chaque port de sortie impliqué du noad ; * transmission, sur chaque connexion, d'une part d'au moins une partie de l'en-tête de diffusion et d'autre part du corps du paquet de diffusion.  * establishing a connection between the input port involved and each output port involved with the noad; * transmission, on each connection, on the one hand at least a part of the broadcast header and secondly the body of the broadcast packet.

En d'autres termes, chaque ncad intermédiaire de l'arbre commute, depuis son port d'entrée impliqué dans la diffusion vers chacun de ses ports de sortie impliqués dans la diffusion, au moins une partie de l'en-tête de diffusion ainsi que la totalité du corps (contenant les données utiles).  In other words, each intermediate ncad of the tree switches, from its input port involved in the broadcast to each of its output ports involved in the broadcast, at least a portion of the broadcast header as well as than the whole body (containing the useful data).

De façon préférentielle, ladite phase de propagation comprend en outre l'étape suivante, mise en ouvre dans chaque nond de ladite au moins une partie de l'arbre de recouvrement : traitement des données utiles contenues dans le corps dudit paquet de diffusion, que le noad soit un noad final ou un noad intermédiaire.  Preferably, said propagation phase further comprises the following step, implemented in each nond of said at least part of the recovery tree: processing useful data contained in the body of said broadcast packet, that the noad either a final noad or an intermediate noad.

Avantageusement, l'arbre de recouvrement comprenant un n#ud source, chaque au moins une partie de l'arbre de recouvrement est une branche de l'arbre de recouvrement située en aval d'un port de sortie impliqué dudit ncud source.  Advantageously, the cover shaft comprising a source node, each at least a portion of the cover shaft is a branch of the cover shaft located downstream of an associated output port of said source node.

Le noad source peut dans ce cas être le seul noad ayant une connaissance globale de l'arbre de recouvrement. H est à noter que s'il y a plusieurs ports de sortie du ncad source impliqués dans la diffusion, les entêtes des paquets de diffusion transmis sur chacun de ces ports de sortie ne sont pas identiques (puisque ces en-têtes ne décrivent pas les mêmes branches de l'arbre de recouvrement).  The noad source can in this case be the only noad having a global knowledge of the recovery tree. It should be noted that if there are several output ports of the source ncad involved in the broadcast, the headers of broadcast packets transmitted on each of these output ports are not identical (since these headers do not describe the same branches of the cover shaft).

Préférentiellement, ladite phase de propagation comprend en outre l'étape suivante, mise en ouvre dans chaque noad de ladite au moins une partie de l'arbre de recouvrement : si le noad est un ncad intermédiaire, calcul, pour chaque port de sortie impliqué du n#ud d'un en-tête de diffusion modifié, contenant une description de la branche de l'arbre de recouvrement située en aval du port de sortie impliqué du ncad. Par ailleurs, lors de ladite étape de transmission, sur chaque connexion, on  Preferably, said propagation phase further comprises the following step, implemented in each noad of said at least part of the recovery tree: if the noad is an intermediate ncad, computation, for each output port involved of N # ud of a modified broadcast header, containing a description of the branch of the overlay tree located downstream of the involved output port of the ncad. Moreover, during said transmission step, on each connection, one

<Desc/Clms Page number 6><Desc / Clms Page number 6>

transmet d'une part ledit en-tête de diffusion modifié et d'autre part le corps du paquet de diffusion.  transmits on the one hand said modified broadcast header and on the other hand the body of the broadcast packet.

En d'autres termes, chaque ncnd intermédiaire de l'arbre de recouvrement ne transmet au (x) nond (s) situé (s) en aval qu'une partie de l'en-tête de diffusion qu'il a reçu du ncad situé en amont.  In other words, each intermediate ncnd of the recovery tree transmits to the nond (s) located downstream only part of the broadcast header that it has received from the ncad. located upstream.

Si le ncnd situé en aval est un autre nood intermédiaire, l'en-tête de diffusion (modifié) qu'il reçoit comprend une description qui est limitée à la partie de l'arbre de recouvrement correspondant au (x) port (s) de sortie impliqué (s) de cet autre nond intermédiaire et à ce qui se trouve en aval de ce port (s) de sortie impliqué (s).  If the downstream ncnd is another intermediate nood, the (modified) broadcast header it receives includes a description that is limited to the portion of the recovery tree corresponding to the port (s). output involved from this other intermediate node and to what is downstream of this output port (s) involved.

Si le ncnd situé en aval est un noad final (feuille), l'en-tête de diffusion (modifié) qu'il reçoit peut ne comprendre qu'un indicateur de fin de branche.  If the downstream ncnd is a final noad (leaf), the (modified) broadcast header that it receives may only include an end-of-branch flag.

De façon avantageuse, l'en-tête de diffusion, contenant une description d'au moins une partie de l'arbre de recouvrement, comprend une pluralité d'unités d'en-tête hiérarchisées permettant une description globale en gigogne, avec une structure élémentaire comprenant : un premier lot d'au moins une unité d'en-tête, contenant une indication du ou des port (s) de sortie impliqué (s) d'un nond de rang donné de ladite au moins une partie de l'arbre de recouvrement, un second lot d'au moins une unité d'en-tête, comprenant, pour chaque port de sortie indiqué dans ledit premier lot, un sous-lot d'au moins une unité d'en-tête contenant une description de la branche de l'arbre de recouvrement située en aval dudit port de sortie indiqué dans ledit premier lot
Chaque sous-lot d'au moins une unité d'en-tête peut lui-même posséder ladite structure élémentaire, si la branche de l'arbre de recouvrement située en aval du port de sortie correspondant indiqué dans le premier lot ne comprend pas uniquement un nond final de l'arbre de recouvrement.
Advantageously, the broadcast header, containing a description of at least a portion of the overlay tree, comprises a plurality of hierarchical header units for an overall trunked description, with a structure elementary comprising: a first batch of at least one header unit, containing an indication of the output port (s) involved of a nond of a given rank of said at least a portion of the a recovery tree, a second batch of at least one header unit, comprising, for each output port indicated in said first batch, a sub-lot of at least one header unit containing a description the branch of the spanning tree located downstream of the said exit port indicated in the said first lot
Each sub-lot of at least one header unit may itself have said elementary structure, if the branch of the recovery tree located downstream of the corresponding output port indicated in the first batch does not include only a final nond of the recovery tree.

<Desc/Clms Page number 7> <Desc / Clms Page number 7>

Ainsi, il est possible de façon optimale n'importe quelle forme de l'arbre de recouvrement.  Thus, it is possible optimally any shape of the cover shaft.

Avantageusement, lorsque le second lot d'au moins une unité d'entête comprend plusieurs sous-lots, lesdits sous-lots apparaissent dans un ordre prédéterminé lié aux numéros des ports de sortie correspondants indiqués dans le premier lot.  Advantageously, when the second batch of at least one header unit comprises several sub-batches, said sublots appear in a predetermined order related to the numbers of the corresponding output ports indicated in the first batch.

On utilise par exemple l'ordre croissant (ou décroissant) des numéros de ports de sortie.  For example, the increasing (or decreasing) order of the output port numbers is used.

Préférentiellement, pour chaque port de sortie impliqué d'un nccd intermédiaire de rang N, l'en-tête de diffusion modifié : comprend le sous-lot d'au moins une unité d'en-tête, compris dans l'en-tête de diffusion provenant du noad de rang NI situé en amont dudit noad intermédiaire considéré de rang N, et contenant la description de la branche de l'arbre de recouvrement située en aval dudit port de sortie impliqué du nccd intermédiaire considéré ; ne comprend pas le premier lot d'au moins une unité d'en-tête, ni le (s) éventuel (s) autre (s) sous-lotes) d'au moins une unité d'en-tête, compris dans l'en-tête de diffusion provenant du ncud de rang N-l situé en amont dudit ncad intermédiaire de rang N.  Preferably, for each output port involved with an intermediate Nccd of rank N, the modified broadcast header: comprises the sub-lot of at least one header unit, included in the header broadcast signal from the noad of rank NI located upstream of said intermediate noad considered rank N, and containing the description of the branch of the recovery tree located downstream of said involved output port of the intermediate nccd considered; does not include the first batch of at least one header unit, or any other sub-lot (s) of at least one header unit, included in the scattering header from rank N1 ncud located upstream of said rank N intermediate ncad.

La structure élémentaire précitée, permettant une description globale en gigogne d'au moins une partie de l'arbre de recouvrement, simplifie l'étape de calcul de l'en-tête de diffusion modifié. En effet, grâce à cette structure, l'en-tête de diffusion modifié est encapsulé dans l'en-tête de diffusion de niveau supérieur et il suffit de l'y en extraire (par la sélection, selon la stratégie précitée, de certaines des unités d'en-tête).  The aforementioned elementary structure, allowing an overall description in a trundle of at least a portion of the cover shaft, simplifies the step of calculating the modified broadcast header. Indeed, thanks to this structure, the modified broadcast header is encapsulated in the top-level broadcast header and it is sufficient to extract it from it (by the selection, according to the aforementioned strategy, of certain header units).

Avantageusement, lorsque ladite branche de l'arbre de recouvrement située en aval du port de sortie impliqué du ncnd ne comprend qu'un ncad final de l'arbre de recouvrement, la description correspondante comprend un indicateur de fin de branche.  Advantageously, when said branch of the spanning tree located downstream of the involved output port of the ncnd only comprises a final ncad of the spanning tree, the corresponding description includes an end of branch indicator.

<Desc/Clms Page number 8> <Desc / Clms Page number 8>

En d'autres termes, l'indicateur de fin de branche constitue une description générique de n'importe quel nord final (branche) de l'arbre de recouvrement.  In other words, the end-of-branch indicator is a generic description of any final north (branch) of the overlay tree.

De façon avantageuse, l'en-tête de diffusion comprend, outre ladite pluralité d'unités d'en-tête hiérarchisées permettant une description globale en gigogne, au moins une unité d'en-tête de remplissage, de façon que ledit en-tête de diffusion comprenne au total un nombre prédéterminé d'unités d'en-tête.  Advantageously, the broadcast header includes, in addition to said plurality of hierarchical header units for a global stacked description, at least one filler header unit, so that said broadcast head has a total of a predetermined number of header units.

L'invention concerne également un appareil de commutation de paquets de données, du type compris dans un nmd et pouvant participer à la mise en ouvre d'un procédé de diffusion de données utiles le long d'au moins une partie d'un arbre de recouvrement d'un réseau de commutation par paquets. L'appareil de commutation comprend des moyens d'analyse de l'en-tête de diffusion de chaque paquet de diffusion reçu. Selon l'invention, lesdits moyens d'analyse de l'en-tête de diffusion de chaque paquet de diffusion reçu comprennent des premiers moyens de détection, permettant de détecter s'il s'agit d'un paquet de diffusion dynamique, dont l'en-tête contient une description d'au moins une partie de l'arbre de recouvrement.  The invention also relates to a data packet switching device of the type included in a nmd and capable of participating in the implementation of a method of broadcasting useful data along at least a part of a data tree. recovery of a packet switching network. The switching apparatus comprises means for analyzing the broadcast header of each received broadcast packet. According to the invention, said means for analyzing the broadcast header of each received broadcast packet comprise first detection means, making it possible to detect whether it is a dynamic broadcast packet, of which the header contains a description of at least a portion of the overlay tree.

Ledit appareil de commutation comprend en outre des premiers moyens de propagation de chaque paquet de diffusion dynamique reçu et détecté, en fonction de la description d'au moins une partie de l'arbre de recouvrement contenue dans l'en-tête de diffusion dudit paquet de diffusion dynamique reçu. Said switching apparatus further comprises first propagation means of each received and detected dynamic broadcast packet, according to the description of at least a part of the overlay tree contained in the broadcast header of said packet. dynamic broadcast received.

Avantageusement, lesdits moyens d'analyse de l'en-tête de diffusion de chaque paquet de diffusion reçu comprennent en outre des seconds moyens de détection, permettant de détecter s'il s'agit d'un paquet de diffusion statique, dont l'en-tête contient un indicateur de paquet de diffusion statique. Ledit appareil de commutation comprend en outre des seconds moyens de propagation de chaque paquet de diffusion statique reçu et détecté, selon un paramétrage prédéterminé dudit appareil de commutation en fonction de l'arbre de recouvrement.  Advantageously, said means for analyzing the broadcast header of each received broadcast packet further comprises second detection means, making it possible to detect whether it is a static broadcast packet, whose header contains a static broadcast packet indicator. Said switching apparatus further comprises second means for propagating each static diffusion packet received and detected, according to a predetermined parameterization of said switching apparatus as a function of the cover shaft.

<Desc/Clms Page number 9> <Desc / Clms Page number 9>

L'invention concerne aussi un programme d'ordinateur, comprenant des séquences d'instructions adaptées à la mise en ouvre d'un procédé tel que précité lorsque ledit programme est exécuté sur un ordinateur.  The invention also relates to a computer program, comprising instruction sequences adapted to the implementation of a method as mentioned above when said program is executed on a computer.

L'invention concerne aussi un produit programme d'ordinateur, adapté à la diffusion de données utiles le long d'au moins une partie d'un arbre de recouvrement d'un réseau de commutation par paquets. Le produit programme d'ordinateur comprend des instructions de code de programme enregistré sur un support utilisable dans un ordinateur, comprenant : des moyens de programmation lisibles par ordinateur pour effectuer une phase de construction d'au moins un paquet de diffusion dont l'en-tête de diffusion contient une description d'au moins une partie de l'arbre de recouvrement ; des moyens de programmation lisibles par ordinateur pour effectuer une phase de propagation de chaque paquet de diffusion, en fonction de la description d'au moins une partie de l'arbre de recouvrement contenue dans l'en-tête de diffusion.  The invention also relates to a computer program product adapted to the distribution of useful data along at least part of an overlay tree of a packet switching network. The computer program product comprises program code instructions recorded on a medium usable in a computer, comprising: computer readable programming means for performing a construction phase of at least one broadcast packet whose scattering head contains a description of at least a portion of the spanning tree; computer readable programming means for performing a propagation phase of each broadcast packet, according to the description of at least a portion of the overlay tree contained in the broadcast header.

L'invention concerne également un paquet de diffusion, du type utilisé pour diffuser des données utiles le long d'au moins une partie d'un arbre de recouvrement d'un réseau de commutation par paquets, l'arbre de recouvrement comprenant une pluralité de nords reliés entre eux deux à deux par des liens, ledit paquet de diffusion comprenant un en-tête de diffusion et un corps contenant les données utiles. Selon l'invention, l'en- tête de diffusion contient une description d'au moins une partie de l'arbre de recouvrement, en fonction de laquelle le paquet de diffusion est propagé.  The invention also relates to a broadcast packet, of the type used to broadcast useful data along at least a portion of an overlay tree of a packet switching network, the overlay tree comprising a plurality of nords linked together by two links, said broadcast packet comprising a broadcast header and a body containing the useful data. According to the invention, the broadcast header contains a description of at least a portion of the recovery tree, according to which the broadcast packet is propagated.

D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante d'un mode de réalisation préférentiel de l'invention, donné à titre d'exemple indicatif et non limitatif, et des dessins annexés, dans lesquels : la figure 1 présente un synoptique d'un commutateur (ou appareil de commutation) conforme à l'invention, selon un mode particulier de réalisation de celle-ci ;  Other features and advantages of the invention will appear on reading the following description of a preferred embodiment of the invention, given by way of indicative and nonlimiting example, and the appended drawings, in which: Figure 1 shows a block diagram of a switch (or switching device) according to the invention, according to a particular embodiment thereof;

<Desc/Clms Page number 10><Desc / Clms Page number 10>

la figure 2 présente un synoptique détaillé d'un moyen de contrôle de flux de données et d'une interface avec un lien série, appartenant tous les deux au commutateur illustré en figure 1, ainsi que leurs interconnexions ; la figure 3 représente un schéma électronique du module de commutation compris dans le moyen de contrôle de flux de données de la figure 2 ; la figure 4 présente un mode de réalisation préférentiel de la structure d'un paquet de diffusion selon l'invention ; les figures 5 et 6 présentent chacune une structure particulière d'unité d'en-tête comprise dans l'en-tête apparaissant sur la figure 4 ; la figure 7 présente un exemple d'arbre de recouvrement d'un réseau, permettant d'expliciter un mode de réalisation préférentiel du procédé selon l'invention ; la figure 8 présente un en-tête de diffusion généré par le nmd 0 de la figure 7 et transmis sur son port de sortie 0, selon un mode de réalisation particulier du procédé selon l'invention ; la figure 9 présente un en-tête de diffusion généré par le nod 0 de la figure 7 et transmis sur son port de sortie 1, selon un mode de réalisation particulier du procédé selon l'invention ; la figure 10 présente un organigramme décrivant un mode de réalisation particulier d'un algorithme de traitement d'un paquet de diffusion selon la présente invention ; la figure 11 présente un organigramme décrivant un mode de réalisation particulier d'un algorithme de traitement d'un en-tête de diffusion selon la présente invention ; la figure 12 présente un organigramme décrivant un mode de réalisation particulier d'un algorithme de traitement d'un en-tête de diffusion d'un paquet de diffusion dynamique ; la figure 13 présente une table de valeurs pouvant être prises par l'unité d'en-tête de diffusion de la figure 5 ;  FIG. 2 presents a detailed block diagram of a data flow control means and an interface with a serial link, both belonging to the switch illustrated in FIG. 1, as well as their interconnections; FIG. 3 represents an electronic diagram of the switching module included in the data flow control means of FIG. 2; FIG. 4 shows a preferred embodiment of the structure of a broadcast packet according to the invention; Figures 5 and 6 each show a particular header unit structure included in the header shown in Figure 4; FIG. 7 shows an example of a cover tree of a network, making it possible to explain a preferential embodiment of the method according to the invention; FIG. 8 shows a diffusion header generated by the nmd 0 of FIG. 7 and transmitted on its output port 0, according to a particular embodiment of the method according to the invention; FIG. 9 shows a broadcast header generated by the nod 0 of FIG. 7 and transmitted on its output port 1, according to a particular embodiment of the method according to the invention; Fig. 10 shows a flowchart describing a particular embodiment of a broadcast packet processing algorithm according to the present invention; Fig. 11 shows a flowchart describing a particular embodiment of a diffusion header processing algorithm according to the present invention; FIG. 12 presents a flowchart describing a particular embodiment of an algorithm for processing a broadcast header of a dynamic broadcast packet; Fig. 13 shows a table of values that can be taken by the broadcast header unit of Fig. 5;

<Desc/Clms Page number 11><Desc / Clms Page number 11>

la figure 14 présente un organigramme décrivant un mode de réalisation particulier d'un algorithme de construction d'un en-tête de diffusion selon la présente invention.  Figure 14 shows a flowchart describing a particular embodiment of an algorithm for constructing a broadcast header according to the present invention.

L'invention trouve des applications dans de nombreux domaines, et s'applique notamment dans le cadre de : - la commutation à haut débit ; les applications distribuées ; la transmission et/ou la réception de données numériques ; les applications audio ; - les réseaux d'entreprises ; et la transmission d'images en temps réel.  The invention has applications in many fields, and is particularly applicable in the context of: - high-speed switching; distributed applications; transmission and / or reception of digital data; audio applications; - business networks; and the transmission of images in real time.

Un domaine d'application préférentiel de l'invention est celui des applications domestiques pour les transferts à haut débit. On décrit par la suite un exemple de système mettant en ouvre l'invention, utilisé pour interconnecter une pluralité de dispositifs audio et vidéo dans la maison.  A preferred field of application of the invention is that of domestic applications for high-speed transfers. An exemplary system embodying the invention is described below, used to interconnect a plurality of audio and video devices in the home.

Les normes IEEE 1394 et IEEE 1355 sont adaptées respectivement aux communications série et aux communications point à point
Le système présenté dans la suite du document est un réseau fédérateur à débit commuté permettant d'atteindre des capacités de transmission élevées (typiquement de l'ordre du Gbit), et répondant au besoin important d'interfaçage des deux types de norme ci-dessus.
IEEE 1394 and IEEE 1355 are suitable for serial communications and point-to-point communications, respectively
The system presented in the remainder of the document is a switched-rate backbone network enabling high transmission capacities (typically of the order of a Gbit) to be achieved, and meeting the important need for interfacing the two types of standard above. .

Le principe général de l'invention repose sur la mise en ouvre d'un protocole d'échange ; et d'une matrice d'arbitrage dans un module de commutation pouvant recevoir et émettre des données de plusieurs sources, notamment via des interfaces de type IEEE1394 et/ou IEEE1355.  The general principle of the invention is based on the implementation of an exchange protocol; and an arbitration matrix in a switching module that can receive and transmit data from several sources, in particular via interfaces of the IEEE1394 and / or IEEE1355 type.

L'interface de type IEEE1355 comprend plusieurs paires de ports entrées/sorties, une paire de FIFO étant associée à chaque paire de ports.  The IEEE1355 type interface comprises several pairs of input / output ports, a pair of FIFOs being associated with each pair of ports.

<Desc/Clms Page number 12> <Desc / Clms Page number 12>

L'interface de type IEEE1394 comprend une mémoire DPRAM permettant le stockage des données en provenance et/ou à destination d'un bus IEEE1394.  The IEEE1394 interface includes a DPRAM memory for storing data from and / or to an IEEE1394 bus.

Cette DPRAM peut aussi être utilisée pour le transfert de données vers et/ou à destination d'autres interfaces de communication.  This DPRAM can also be used for data transfer to and / or to other communication interfaces.

Le module de commutation architecturé autour de deux bus de données (l'un en réception et l'autre en émission) de type MRT comprend notamment : - la matrice d'arbitrage ; des registres trois états pilotés par des signaux générés par la matrice d'arbitrage et permettant la lecture et/ou l'écriture de données sur les deux bus de données ; des FIFO d'entrée utilisées pour la réception des données en provenance d'une FIFO associée à un port de réception
IEEE1355 ; des FIFOs de sorties utilisées pour les données à destination de la DPRAM d'interfaçage avec le bus IEEE1394 ; et des FIFO internes utilisées pour les données en provenance de la DPRAM d'interfaçage avec le bus IEEE 1394.
The switching module structured around two data buses (one in reception and the other in transmission) of the MRT type comprises in particular: the arbitration matrix; three-state registers driven by signals generated by the arbitration matrix and allowing the reading and / or writing of data on the two data buses; input FIFOs used to receive data from a FIFO associated with a receive port
IEEE1355; output FIFOs used for data destined for the interface DPRAM with the IEEE1394 bus; and internal FIFOs used for data from the DPRAM interfacing with the IEEE 1394 bus.

Les FIFOs sont préférentiellement de type mémoire double ports et peuvent ainsi être accédées simultanément en lecture et en écriture sur deux ports distincts.  The FIFOs are preferably of the dual port memory type and can thus be simultaneously accessed for reading and writing on two separate ports.

Les données à destination d'un port d'émission IEEE1355 sont émises directement vers la FIFO associée à ce port via le bus de transmission de données.  Data to an IEEE1355 transmit port is sent directly to the FIFO associated with that port via the data bus.

Selon le protocole d'échange des données, les opérations de transfert des données entre une FIFO d'entrée ou interne et une ou plusieurs FIFO de sortie et/ou ports 1355, ne peuvent être effectuées que dans le cadre d'une connexion établie au niveau des paquets. Ainsi, pour qu'une connexion soit ouverte, à la suite d'une requête en provenance d'une FIFO d'entrée ou d'une FIFO interne, il est nécessaire que chacune de h ou des  According to the data exchange protocol, data transfer operations between an input or internal FIFO and one or more output FIFOs and / or ports 1355 can only be performed as part of an established connection to the data exchange protocol. packet level. Thus, for a connection to be opened, following a request from an input FIFO or an internal FIFO, it is necessary that each of h or

<Desc/Clms Page number 13><Desc / Clms Page number 13>

FIFOs destinataires permette l'ouverture d'une connexion. De cette manière, les FIFOs destinataires ne sont jamais saturées.  FIFOs recipients allows the opening of a connection. In this way, the recipient FIFOs are never saturated.

La matrice d'arbitrage est constituée de lignes et de colonnes.  The arbitration matrix consists of rows and columns.

Chacune des colonnes est associée à un port d'entrée et est en charge de la gestion de la réception des données en provenance de ce port d'entrée.  Each column is associated with an input port and is responsible for managing the reception of data from that input port.

Chacune des lignes est associée à un port de sortie et est en charge de la gestion des données destinées à ce port de sortie.  Each line is associated with an output port and is responsible for managing the data for that output port.

Bien entendu, les rôles des lignes et des colonnes peuvent être échangés.  Of course, the roles of rows and columns can be exchanged.

La matrice est construite de telle sorte que, à un instant donné, un seul point de couplage de chaque ligne permette une connexion.  The matrix is constructed such that, at a given instant, a single coupling point of each line allows a connection.

D'une manière générale, l'accès en écriture sur les bus se fait par l'intermédiaire de registres à trois états commandés par des signaux issus de la matrice d'arbitrage.  In general, write access to the buses is via tri-state registers controlled by signals from the arbitration matrix.

Par ailleurs, la matrice d'arbitrage génère des signaux de commande des FIFOS en écriture.  Moreover, the arbitration matrix generates FIFOS control signals in writing.

Ainsi, en résumé, la matrice d'arbitrage gère des connexions entre ports d'entrées et des ports de sortie en évitant les conflits et en gérant les aspects liés à la synchronisation. Ceci permet à la matrice d'arbitrage de générer des signaux de commande permettant l'accès (en écriture et en lecture) aux bus de transmission et de réception.  Thus, in summary, the arbitration matrix manages connections between input ports and output ports avoiding conflicts and managing aspects related to synchronization. This allows the arbitration matrix to generate control signals allowing access (in writing and reading) to the transmission and reception busses.

La figure 1 présente un synoptique d'un nord de commutation 90 connecté à deux bus de communication série conformes aux normes IEEE 1394 et IEEE1355.  Figure 1 shows a block diagram of a switching north 90 connected to two serial communication buses compliant with the IEEE 1394 and IEEE1355 standards.

Le noad représenté à la figure 1 est également connecté à un ou plusieurs autres nards de commutation du réseau commuté auquel il appartient.  The noad shown in Figure 1 is also connected to one or more other switching noises of the switched network to which it belongs.

Dans le mode de réalisation représenté sur la figure 1, on a choisi de représenter un appareil de traitement de données 92, également appelé périphérique, qui est associé au dispositif de commutation 90.  In the embodiment shown in FIG. 1, it has been chosen to represent a data processing apparatus 92, also called a peripheral, which is associated with the switching device 90.

<Desc/Clms Page number 14> <Desc / Clms Page number 14>

Un nrod de commutation comprend : un dispositif de commutation 90 ; et un appareil de traitement de données 92 associé audit dispositif
A titre de variante, l'appareil de traitement de données peut luimême constituer ou comprendre le dispositif de commutation 90.
A switching node comprises: a switching device 90; and a data processing apparatus 92 associated with said device
Alternatively, the data processing apparatus may itself constitute or understand the switching device 90.

Le dispositif 90 comprend : une unité centrale de traitement CPU 93 ; un moyen de stockage permanent 94 de type ROM ; et un moyen de stockage temporaire 95 de type RAM, associé à l'unité centrale 93, et dans lequel est chargée une architecture logicielle à l'initialisation.  The device 90 comprises: a CPU 93 CPU; permanent storage means 94 of the ROM type; and a temporary storage means 95 of RAM type, associated with the central unit 93, and in which a software architecture is loaded at initialization.

Le moyen de stockage 95 est apte à stocker des paquets de données de différents types, notamment : des paquets asynchrones du type conforme à la nonne IEEE
1394 ; des paquets constituant des messages en mode non connecté (asynchrones), du type conforme à la norme IEEE 1355 ; des paquets de contrôle du type conforme à la nonne
IEEE 1355 ; des paquets stream (isochrones) du type conforme à la norme IEEE 1355.
The storage means 95 is able to store data packets of different types, in particular: asynchronous packets of the type conforming to the IEEE standard
1394; packets constituting unconnected (asynchronous) mode messages of the IEEE 1355 compliant type; control packets of the type conforming to the nun
IEEE 1355; stream (isochronous) packets of the type conforming to the IEEE 1355 standard.

Les paquets de type conforme à la norme IEEE 1355 ont réellement une existence au niveau du composant 104 qui sera mentionné ultérieurement mais ils ne sont pas stockés sous cette forme dans le moyen de stockage RAM 95. On notera que le moyen de stockage 95 contient les informations nécessaires pour générer les paquets IEEE 1355.  IEEE 1355 compliant type packets actually exist at component 104 which will be mentioned later, but they are not stored in this form in the RAM storage means 95. Note that the storage means 95 contains the information needed to generate IEEE 1355 packets.

Le cheminement de tels paquets jusqu'au moyen de stockage 95, provenant soit du bus 1394 soit du réseau commuté constitué de liens IEEE 1355 sera détaillé ultérieurement.  The routing of such packets to the storage means 95, either from the 1394 bus or from the switched network consisting of IEEE 1355 links will be detailed later.

<Desc/Clms Page number 15> <Desc / Clms Page number 15>

Le cheminement de tels paquets, depuis le moyen de stockage 95 jusqu'à leur transmission par le ncnd de commutation, soit en direction du bus IEEE1394, soit en direction du réseau commuté constitué de liens IEEE 1355 sera détaillé ultérieurement.  The routing of such packets, from the storage means 95 to their transmission by the switching ncnd, either towards the IEEE1394 bus, or towards the switched network consisting of IEEE 1355 links will be detailed later.

Ces trois éléments 93,94 et 95 communiquent au moyen de bus d'adresses et de données respectifs notés 96,97 et 98, avec un bloc noté 99 et connu de l'homme du métier sous le nom de contrôleur de bus.  These three elements 93, 94 and 95 communicate by means of respective address and data buses denoted 96, 97 and 98, with a block denoted 99 and known to those skilled in the art as the bus controller.

Ce bloc 99 permet notamment d'échanger des données au moyen d'un bus principal 100 avec au moins un composant d'interface de bus 101.  This block 99 makes it possible in particular to exchange data by means of a main bus 100 with at least one bus interface component 101.

Dans le cas où le bus 100 est un bus standard PCI (PCI signifiant en terminologie anglo-saxonne "Peripheral Component Interconnect"), le composant 101 peut être un composant dénommé AMCC 5933QC commercialisé par la société APPLIED MICRO CIRCUITS CORPORATION (Marque déposée). In the case where the bus 100 is a PCI standard bus (PCI meaning "Peripheral Component Interconnect"), the component 101 may be a component called AMCC 5933QC marketed by the company APPLIED MICRO CIRCUITS CORPORATION (Trademark).

Le bus 100 peut également connecter entre eux d'autres éléments, non représentés sur la figure 1, eux-mêmes pourvus d'une interface de bus et pouvant mettre en ouvre, par exemple, des fonctions de traitement de données.  The bus 100 can also connect together other elements, not shown in Figure 1, themselves provided with a bus interface and can implement, for example, data processing functions.

Par exemple, dans un cas où le bus 100 est un bus standard PCI, le bloc 99 est en fait un ensemble de composants PCI tel que l'ensemble Intel 440LX AGP ("Intel 440LX AGPset" dans la terminologie anglo-saxonne) commercialisé par la société INTEL (Marque déposée).  For example, in a case where the bus 100 is a PCI standard bus, the block 99 is in fact a set of PCI components such as the set Intel 440LX AGP ("Intel 440LX AGPset" in the English terminology) marketed by the company INTEL (registered trademark).

Ainsi, le bloc 99 comprend, par exemple, un composant 82443LX qui assure l'interface avec la mémoire 95 via le bus mémoire 98 et avec l'unité centrale de traitement CPU 93 via le bus local 96. Le composant 82443LX est lui-même relié à un composant 82371AB qui fournit une interface avec le bus ISA 97 relié à la mémoire 94. Un contrôleur d'interruption IOAPIC Intel 82093AA connecté à l'unité centrale de traitement CPU 93 gère les interruptions pouvant survenir dans le système.  Thus, the block 99 comprises, for example, a component 82443LX which interfaces with the memory 95 via the memory bus 98 and with the central processing unit CPU 93 via the local bus 96. The component 82443LX is itself connected to a component 82371AB which provides an interface with the ISA bus 97 connected to the memory 94. An Intel 82093AA IOAPIC interrupt controller connected to the CPU 93 CPU manages interrupts that may occur in the system.

Comme représenté sur la figure 1, le dispositif 90 comporte également une interface de bus 102 qui peut être similaire à l'interface de  As shown in FIG. 1, the device 90 also comprises a bus interface 102 which may be similar to the interface of FIG.

<Desc/Clms Page number 16><Desc / Clms Page number 16>

bus 101 permettant ainsi à l'appareil de traitement de données ou périphérique 92 d'accéder au dispositif de communication.  bus 101 thus allowing the data processing apparatus or device 92 to access the communication device.

Une telle interface est par exemple réalisée sous la forme d'une carte SEDNET PCI commercialisée par la société SEDERTA (Marque déposée) sous la référence SD-PCI-200 et permet d'y connecter n'importe quel appareil de traitement de données existant, conçu pour fonctionner en conformité avec la nonne 1394.  Such an interface is for example made in the form of a SEDNET PCI card marketed by SEDERTA (registered trademark) under the reference SD-PCI-200 and allows to connect any existing data processing device, designed to operate in accordance with 1394.

H est bien entendu possible d'utiliser un adaptateur 102 spécifique à l'appareil de traitement de données que l'on souhaite y connecter.  It is of course possible to use an adapter 102 specific to the data processing apparatus that one wishes to connect to it.

L'adaptateur 102 comprend essentiellement un composant d'interface similaire au composant d'interface de bus 101. The adapter 102 essentially comprises an interface component similar to the bus interface component 101.

Selon le type d'appareil de traitement de données, le bus principal 100, ainsi que les composants d'interface de bus 101 et contrôleur de bus 99 peuvent être adaptés en fonction de l'architecture du type de l'appareil.  Depending on the type of data processing apparatus, the main bus 100, as well as the bus interface components 101 and bus controller 99 may be adapted depending on the architecture of the type of the apparatus.

Il en est de même pour l'ensemble des éléments CPU 93, RAM 95 et ROM 94. It is the same for all the elements CPU 93, RAM 95 and ROM 94.

Comme représenté sur la figure 1, le nond selon l'invention comporte également deux moyens d'interfaçage 103 et 104.  As shown in FIG. 1, the nond according to the invention also comprises two interfacing means 103 and 104.

Le moyen 103 est destiné à assurer l'interface entre le nood 90 et le bus de communication série prévu pour fonctionner selon la norme IEEE 1394 auquel est rattaché ledit nood.  The means 103 is intended to provide the interface between the nood 90 and the serial communication bus intended to operate according to the IEEE 1394 standard to which said nood is attached.

Le moyen d'interfaçage 103 est un ensemble de composants PHY/LINK 1394 qui est par exemple constitué d'un composant PHY TSB21LV03A et d'un composant LINK TSB12LVOIA commercialisés par la société TEXAS INSTRUMENT (Marque déposée) et de connecteurs 1394, par exemple commercialisés par la société MOLEX (Marque déposée), par exemple sous la référence 53462.  The interfacing means 103 is a set of PHY / LINK components 1394 which consists, for example, of a PHY component TSB21LV03A and a LINK component TSB12LVOIA marketed by the company TEXAS INSTRUMENT (registered trademark) and 1394 connectors, for example marketed by the company MOLEX (registered trademark), for example under the reference 53462.

Le moyen d'interfaçage 103 comporte au moins un port externe destiné à être connecté à un appareil de traitement de données ou périphérique qui est rattaché au bus de communication série 1394.  The interfacing means 103 comprises at least one external port intended to be connected to a data processing apparatus or device which is attached to the serial communication bus 1394.

<Desc/Clms Page number 17> <Desc / Clms Page number 17>

Le moyen 103 comporte des moyens de comptage du nombre d'impulsions en fonction d'un signal d'horloge généré par un module de contrôle 107, qui sera défini ultérieurement. Ce signal d'horloge est synchronisé avec le"Maître de cycle"du bus de communication série avec lequel il est en relation, par l'intermédiaire des paquets de début de cycle, appelés "Cycle Start packet" en terminologie anglo-saxonne. La fréquence du signal d'horloge généré par le module de contrôle107 est égale à 24,576 MHz +/-100 ppm. Ce signal est représenté comme étant l'un des signaux notés ctrl3 sur la figure 1.  The means 103 comprises means for counting the number of pulses as a function of a clock signal generated by a control module 107, which will be defined later. This clock signal is synchronized with the "cycle master" of the serial communication bus with which it is in communication, through the beginning of cycle packets, called "Cycle Start packet" in English terminology. The frequency of the clock signal generated by the control module 107 is equal to 24.576 MHz +/- 100 ppm. This signal is represented as being one of the signals denoted ctrl3 in FIG.

Sur chaque bus de communication série du réseau, l'un des ncmds est appelé"Maître de cycle" ("Cycle Master"en terminologie anglosaxonne) et le ncad"Maître de cycle"du bus"racine"est appelé"Maître de cycle du réseau" ("Net Cycle Master"en terminologie anglo-saxonne).  On each network serial communication bus, one of the ncmds is called "cycle master" ("Cycle Master") and the ncad "cycle master" of the "root" bus is called "cycle master". network "(" Net Cycle Master "in English terminology).

En outre, tous les ncads"Maîtres de cycle"du réseau présentent une caractéristique qui leur est propre, puisqu'elle dépend de la fréquence de leur horloge interne, à partir de laquelle est définie la durée d'une

Figure img00170001

ili3ériod, if "période de référence"ou"cycle". In addition, all ncads "cycle masters" of the network have a characteristic of their own, since it depends on the frequency of their internal clock, from which is defined the duration of a
Figure img00170001

ili3eriod, if "reference period" or "cycle".

La durée du cycle notée T est égale à un nombre entier 14nit d'impulsions d'horloge, commun ou non à tous les bus, et qui est multiplié par l'inverse de la fréquence de l'horloge interne propre au n##d "Maître de cycle".  The duration of the cycle noted T is equal to an integer 14nit of clock pulses, common or not to all the buses, and which is multiplied by the inverse of the frequency of the internal clock specific to the n ## d "Cycle Master".

La durée du cycle T est ainsi, par exemple, égale à 125 microsecondes.  The duration of the cycle T is thus, for example, equal to 125 microseconds.

Lorsque deux bus de communication série sont reliés par un pont, le "Maître de cycle"de l'un des bus doit synchroniser ses cycles par rapport aux cycles générés par le'Maître de cycle"du bus adjacent.  When two serial communication buses are connected by a bridge, the "master cycle" of one of the buses must synchronize its cycles with respect to the cycles generated by the "master cycle" of the adjacent bus.

D'une manière générale, les réseaux de communication formés de bus de communication série permettent la transmission de paquets synchronisée à partir des cycles de bus considérés. Les bus sont par exemple utilisés pour transmettre des paquets de données en temps réel du type audio/vidéo.  In general, communication networks formed of serial communication buses allow synchronized packet transmission from the bus cycles considered. For example, buses are used to transmit real-time data packets of the audio / video type.

<Desc/Clms Page number 18> <Desc / Clms Page number 18>

Les moyens de comptage comme ceux du moyen d'interfaçage 103 cité plus haut se présentent par exemple sous la forme d'un registre.  The counting means such as those of the interfacing means 103 mentioned above are for example in the form of a register.

Le moyen d'interfaçage 104 mentionné ci-dessus est un composant d'interface IEEE 1355 qui comporte trois ports. Il comprend notamment un composant C113 (référencé 120 sur la figure 2) commercialisé par la société 4LINKS ainsi que trois composants d'interface LUC1141MK commercialisés par la société LUCENT (Marque déposée), eux-mêmes reliés à des connecteurs IEEE 1355, par exemple commercialisés par la société HARTING (Marque déposée). Le composant C113 est lui-même réalisé sur la base d'un composant programmable de type FPGA ("Field Programmable Gate Array"en terminologie anglo-saxonne) Spartan XCS30XL, commercialisé par la société XILINX (Marque déposée).  The interfacing means 104 mentioned above is an IEEE 1355 interface component which has three ports. It comprises in particular a component C113 (referenced 120 in FIG. 2) marketed by the company 4LINKS as well as three interface components LUC1141MK marketed by the company LUCENT (registered trademark), themselves linked to IEEE 1355 connectors, for example marketed by the company HARTING (registered trademark). The component C113 itself is made on the basis of a programmable component type FPGA ("Field Programmable Gate Array" in English terminology) Spartan XCS30XL, sold by the company XILINX (registered trademark).

Les initiales FPGA correspondent approximativement en français à "Matrice de Portes Programmables".  The initials FPGA correspond approximately in French to "Matrix of Programmable Doors".

Les trois ports externes du moyen d'interfaçage 104 sont destinés à être connectés à des ports de même type sur un autre nccd de commutation du réseau commuté, permettant ainsi au dispositif 90 de communiquer avec un autre nccd de ce réseau.  The three external ports of the interfacing means 104 are intended to be connected to ports of the same type on another switching node of the switched network, thus allowing the device 90 to communicate with another nccd of this network.

Le dispositif 90 comporte également un moyen de contrôle de flux de données 105 qui permet le transfert des données entre les différents composants d'interface 101,103 et 104. Ce moyen 105 est réalisé en logique programmable, exécuté par un composant de type FPGA, par exemple de référence VIRTEX, commercialisé par la société XILINX.  The device 90 also comprises a data flow control means 105 which allows the transfer of data between the different interface components 101, 103 and 104. This means 105 is implemented in programmable logic, executed by an FPGA type component, for example reference VIRTEX, marketed by the company XILINX.

Ce moyen 105 met en cuivre notamment une unité de mémorisation à double port 106 qui permet de stocker des données à destination de, ou provenant du réseau commuté 1355.  This means 105 copper includes a dual port storage unit 106 which stores data to or from the switched network 1355.

L'unité de mémorisation à double port possède une capacité de stockage inférieure à 2 Mbits et est, par exemple, réalisée sous la forme d'une mémoire de type DPRAM à accès 32 bits.  The dual-port storage unit has a storage capacity of less than 2 Mbit and is, for example, implemented as a 32-bit DPRAM type memory.

<Desc/Clms Page number 19> <Desc / Clms Page number 19>

Les initiales DPRAM signifient en terminologie anglo-saxonne "Dual Port Random Access Memory" ce qui peut être approximativement traduit en langue française par"Mémoire volatile à double port".  The initials DPRAM mean in English terminology "Dual Port Random Access Memory" which can be roughly translated into French language by "volatile memory dual port".

L'unité de mémorisation 106 comporte une pluralité de zones mémoires qui sont gérées comme des mémoires individuelles de type FIFO, initiales des termes anglais"First-in First-out"signifiant en français "Premier entré Premier sorti".  The storage unit 106 comprises a plurality of memory zones which are managed as FIFO type individual memories, initials of the English terms "First-in First-out" meaning in French "First-in-First-out".

Une telle zone mémoire correspond à une mémoire dans laquelle les données sont lues dans l'ordre dans lequel elles ont été préalablement écrites.  Such a memory zone corresponds to a memory in which the data are read in the order in which they were previously written.

Ces zones mémoires comportent chacune un pointeur de lecture et un pointeur d'écriture associés.  These memory zones each include a read pointer and an associated write pointer.

Chaque zone mémoire étant gérée comme une mémoire de type FIFO, son remplissage et son adage peuvent s'effectuer en même temps, et de manière indépendante. Ceci permet de désynchroniser les opérations de lecture et d'écriture des données, effectuées par une unité de commutation 108 qui sera définie ultérieurement, des opérations de lecture et d'écriture des données, effectuées par le module de contrôle 107.  Since each memory zone is managed as a FIFO-type memory, its filling and its adage can be performed at the same time, and independently. This makes it possible to desynchronize the read and write operations of the data, performed by a switching unit 108 which will be defined later, read and write operations of the data, performed by the control module 107.

En effet, le taux d'occupation de la zone mémoire considérée est géré de manière circulaire et l'on sait à tout moment si les données contenues dans une zone mémoire ont été lues ou non. lorsque ces données ont été lues, il est alors possible de venir écrire de nouvelles données à la place de celles-ci.  Indeed, the occupancy rate of the memory area considered is managed in a circular manner and it is known at any time whether the data contained in a memory zone have been read or not. when these data have been read, it is then possible to write new data instead of these.

L'unité de mémorisation à double port constitue en quelque sorte une file d'attente pour les paquets, et la fonction de stockage est réalisée de manière indépendante, selon le port par lequel les paquets parviennent à l'unité de mémorisation.  The dual-port storage unit is a kind of queue for the packets, and the storage function is performed independently, depending on the port through which the packets reach the storage unit.

D'une manière générale, toutes les données isochrones ou asynchrones provenant du réseau commuté sont stockées dans l'unité de mémorisation 106.  In general, all the isochronous or asynchronous data coming from the switched network are stored in the storage unit 106.

<Desc/Clms Page number 20> <Desc / Clms Page number 20>

Ce stockage est temporaire pour les paquets de données asynchrones (paquets constituant un message transmis en mode non connecté) et pour les paquets de contrôle, qui sont amenés à être transférés ensuite dans le moyen de stockage RAM 95 pour un stockage d'une durée plus importante.  This storage is temporary for the asynchronous data packets (packets constituting a message transmitted in unconnected mode) and for the control packets, which are then transferred to the storage means RAM 95 for storage of a longer duration. important.

En revanche, les paquets de données isochrones (paquets de type "stream", c'est-à-dire transmis en mode connecté), sont stockés uniquement dans cette unité de mémorisation 106 avant leur transmission sur le bus de communication auquel est raccordé le noad de commutation 90 ou sur le réseau commuté.  On the other hand, the isochronous data packets (packets of "stream" type, that is to say transmitted in connected mode), are stored only in this storage unit 106 before their transmission on the communication bus to which the connection is connected. noad switching 90 or on the switched network.

Ceci s'explique par le fait que ce type de données doit être transféré aussi rapidement que possible du réseau commuté vers le bus et donc doit être stocké dans un moyen de stockage facilement et rapidement accessible.  This is explained by the fact that this type of data must be transferred as quickly as possible from the switched network to the bus and therefore must be stored in a storage medium easily and quickly accessible.

De même, les paquets de données isochrones, issus du bus de communication auquel est raccordé le nord de commutation 90, et qui sont destinés au réseau commuté, sont stockés uniquement dans l'unité de mémorisation 106, et non dans le moyen de stockage 95, pour les mêmes raisons que celles invoquées précédemment.  Similarly, the isochronous data packets, from the communication bus to which the switching north 90 is connected, and which are intended for the switched network, are stored only in the storage unit 106, and not in the storage means 95. , for the same reasons as those mentioned previously.

Ainsi que représenté sur la figure 1, le moyen de contrôle de flux de données 105 comporte plusieurs autres éléments dont un module de contrôle 107 (déjà mentionné plus haut), qui assure une fonction de contrôle de l'unité de mémorisation 106, une unité de commutation 108 (déjà mentionnée plus haut) en communication avec le moyen d'interfaçage 104, avec l'unité de mémorisation 106 et avec le module de contrôle 107, ainsi qu'une unité d'ordonnancement des paquets de données 109, qui est relation avec le module de contrôle 107.  As shown in FIG. 1, the data flow control means 105 comprises several other elements including a control module 107 (already mentioned above), which provides a control function for the storage unit 106, a unit switching device 108 (already mentioned above) in communication with the interfacing means 104, with the storage unit 106 and with the control module 107, as well as a data packet scheduling unit 109, which is relationship with the control module 107.

On notera également que le module de contrôle 107 communique avec les moyens d'interfaçage 103 et 104 ainsi qu'avec le composant d'interface de bus noté 101.  It will also be noted that the control module 107 communicates with the interfacing means 103 and 104 as well as with the noted bus interface component 101.

<Desc/Clms Page number 21> <Desc / Clms Page number 21>

Le module de contrôle 107 a pour fonction de multiplexer les accès en lecture ou en écriture à des registres d'autres modules à partir du bus principal noté 100.  The function of the control module 107 is to multiplex the read or write accesses to registers of other modules from the main bus denoted 100.

Le module 107 possède également la maîtrise du composant d'interface de bus 101 pour les opérations de lecture et d'écriture sur le bus principal 100, incluant notamment le transfert en"mode rafale" (connu en terminologie anglo-saxonne sous le terme de"burst mode").  The module 107 also has the control of the bus interface component 101 for the read and write operations on the main bus 100, including in particular the transfer in "burst mode" (known in English terminology as the "burst mode").

Le module de contrôle 107 est également chargé du déclenchement des interruptions sur le bus principal 100, en fonction d'événements de communication particuliers.  The control module 107 is also responsible for triggering interrupts on the main bus 100, as a function of particular communication events.

Ce module échange des données avec le composant 101, sur un bus additionnel 110 (connu en terminologie anglo-saxonne sous le terme de "add-on bus"), suivant les signaux de contrôle notés ctrll.  This module exchanges data with the component 101, on an additional bus 110 (known in English terminology as the "add-on bus"), according to the control signals denoted ctrll.

Comme annoncé ci-dessus, le module 107 est chargé du contrôle de l'unité de mémorisation 106, en ce qui concerne les opérations de lecture et d'écriture en mode FIFO, dans le cas particulier où le composant d'interface de bus 101 est un AMCC, par l'intermédiaire d'un bus de données 111 et de signaux de contrôle ctrl2.  As announced above, the module 107 is responsible for controlling the storage unit 106, with regard to FIFO read and write operations, in the particular case where the bus interface component 101 is an AMCC, via a data bus 111 and ctrl2 control signals.

Le moyen d'interfaçage 103 contient des mémoires de type FIFO, qui sont utilisées lors du transfert de paquets de données de type conforme à la norme IEEE 1394. II comprend deux mémoires FIFO de transmission dites ATF ("Asynchronous Transfer FIFO"en terminologie anglo-saxonne) et ITF ("Isochronous Transfer FIFO"en terminologie anglosaxonne) et une mémoire FIFO de réception dite GRF ("General Receive FIFO"en terminologie anglo-saxonne). Ces mémoires FIFO sont plus largement décrites dans la documentation associée au composant LINK TSB 1 2LVOIA.

Figure img00210001
The interfacing means 103 contains FIFO-type memories, which are used when transferring data packets of type conforming to the IEEE 1394 standard. It comprises two transmission FIFO memories known as ATF ("Asynchronous Transfer FIFO" in English terminology). -Saxonne) and ITF ("Isochronous Transfer FIFO" in English terminology) and a reception FIFO memory said GRF ("General Receive FIFO" in English terminology). These FIFOs are more widely described in the documentation associated with the LINK TSB 1 2LVOIA component.
Figure img00210001

Le module de contrôle 107 et le moyen d'interfaçage 103 gèrent le transfert de données sur un bus 112 suivant des signaux de contrôle earl3.
Par ailleurs, le module de contrôle 107 contrôle l'unité de commutation 108, au moyen de signaux de contrôle ctrl 4, afin de
The control module 107 and the interfacing means 103 manage the data transfer on a bus 112 according to control signals earl3.
Furthermore, the control module 107 controls the switching unit 108 by means of control signals ctrl 4 in order to

<Desc/Clms Page number 22><Desc / Clms Page number 22>

transférer des données de l'unité de commutation vers l'unité de mémorisation 106 par l'intermédiaire d'un bus de données 113, et inversement
L'unité de commutation 108 est connectée au moyen d'interface 104 par l'intermédiaire d'un bus de données 114 et de signaux de contrôle ctrl5.
transferring data from the switching unit to the storage unit 106 via a data bus 113, and vice versa
The switching unit 108 is connected to the interface means 104 via a data bus 114 and control signals ctr15.

L'unité d'ordonnancement des paquets de données 109, notée également SAR (connue en terminologie anglo-saxonne sous le terme de "Segmentation And Reassembling"), informe le module de contrôle 107 du ou des prochains paquets de données à transmettre, par l'intermédiaire de signaux de contrôle ctrl6.  The data packet scheduling unit 109, also known as SAR (known in English terminology as "Segmentation And Reassembling"), informs the control module 107 of the next data packet or packets to be transmitted by via ctrl6 control signals.

En outre, l'unité d'ordonnancement 109 vérifie la réception des paquets de données, et gère l'allocation et la libération de zones mémoires (connues en terminologie anglo-saxonne sous le terme de"buffers") de l'unité de mémorisation 106.  In addition, the scheduling unit 109 checks the reception of data packets, and manages the allocation and the release of memory zones (known in English terminology as "buffers") from the storage unit. 106.

Les signaux de contrôle ctrl7 échangés entre le moyen d'interfaçage 104 et le module de contrôle 107 comprennent notamment les signaux d'horloges régénérés à partir de la réception des paquets 1355 sur chacun des trois ports du moyen d'interfaçage 104.  The control signals ctrl7 exchanged between the interfacing means 104 and the control module 107 comprise in particular the clock signals regenerated from the reception of the packets 1355 on each of the three ports of the interfacing means 104.

Un quartz à 49, 152Mhz (non représenté) est connecté à à fois au moyen 104 pour l'émission des paquets 1355 et au module de contrôle 107 qui génère un signal d'horloge à 24,576 MHz +/-100 ppm, d'une part, pour l'unité d'ordonnancement des paquets de données 109, afin de cadencer l'émission des paquets 1355 et, d'autre part pour le moyen d'interfaçage 103, afin de cadencer l'émission des paquets 1394.  A quartz 49, 152Mhz (not shown) is connected at times to the means 104 for transmitting the packets 1355 and to the control module 107 which generates a clock signal at 24.576 MHz +/- 100 ppm, of a on the other hand, for the scheduling unit of the data packets 109, in order to clock the transmission of the packets 1355 and, on the other hand, for the interfacing means 103, in order to clock the transmission of the 1394 packets.

La figure 2 présente un synoptique détaillé du moyen de contrôle de flux de données 105, de l'interface 104 illustrés en regard de la figure 1, ainsi que leurs interconnexions.  FIG. 2 presents a detailed block diagram of the data flow control means 105, the interface 104 illustrated with reference to FIG. 1, as well as their interconnections.

Quelques détails sur l'interface série 104 permettent de comprendre comment des paquets sont multiplexés sur le bus de données 114.  Some details on the serial interface 104 make it possible to understand how packets are multiplexed on the data bus 114.

L'interface série 104 comprend notamment :  The serial interface 104 includes:

<Desc/Clms Page number 23><Desc / Clms Page number 23>

un moyen de contrôle de FIFO 120 décrit précédemment en regard de la figure 1 ;

Figure img00230001

trois FIFOs d'entrée 121 (InPortOFIFO), 122 (InPortlFIFO) et 123 (InPort2~FIFO) ; un multiplexeur 127 ; et des FIFO de sorties 124 (OutPortO~FIFO), 125 (OutPortlFIFO) et 126 (OutPort2~FIFO). FIFO control means 120 described above with reference to Figure 1;
Figure img00230001

three input FIFOs 121 (InPortOFIFO), 122 (InPortlFIFO) and 123 (InPort2 ~ FIFO); a multiplexer 127; and output FIFOs 124 (OutPortO ~ FIFO), 125 (OutPortlFIFO) and 126 (OutPort2 ~ FIFO).

Les FIFO 121,122 etl23 sont utilisées pour la mémorisation de paquets entrants, alors que les FIFO 124 à 126 sont utilisées pour la mémorisation des paquets sortants.  FIFOs 121, 122, and 23 are used for storing incoming packets, while FIFOs 124 to 126 are used for storing outgoing packets.

Une paire de FIFO est reliée à chaque port de l'interface 104 IEEE 1355. Ainsi, par exemple : les FIFO 121 et 124 sont utilisées pour le port 0 ; les FIFO 122 et 125 pour le port 1 ; et les FIFO 123 et 126 pour le port 2.  A pair of FIFOs is connected to each port of the IEEE 1355 interface 104. Thus, for example: FIFOs 121 and 124 are used for port 0; FIFOs 122 and 125 for port 1; and FIFOs 123 and 126 for port 2.

Le bus de données 114, illustré en regard de la figure 1 se décompose en deux bus sur la figure 2 : un bus 44 RxDI[17 : OJ de réception des données destinées à l'unité de commutation 108 et transmises par l'interface 104 ; et un bus 41 TxDO[17 : 0J d'émission des données à partir de l'unité de commutation 108, vers l'interface 104.  The data bus 114, illustrated with reference to FIG. 1, is broken down into two buses in FIG. 2: a bus 44 RxDI [17: O] receiving data intended for the switching unit 108 and transmitted by the interface 104 ; and a TxDO bus [17: 0] transmitting data from the switching unit 108 to the interface 104.

Après leur écriture dans l'une des FIFO d'entrée 121,122 et 123, les paquets entrants sont multiplexés à travers le multiplexeur 127 avant d'être renvoyés vers l'unité de commutation 108 à travers le bus 44.  After being written to one of the input FIFOs 121, 122 and 123, the incoming packets are multiplexed through the multiplexer 127 before being returned to the switch unit 108 through the bus 44.

Les données sortantes de l'unité de commutation 108 sont émises à travers le bus de données 41 pour être stockées dans l'une des FIFO de sortie 124,125 ou 126.  The outgoing data of the switching unit 108 is transmitted through the data bus 41 to be stored in one of the output FIFOs 124, 125 or 126.

On rappelle que le moyen de contrôle de flux de données 105 comprend notamment : le module de contrôle 107 ;  It is recalled that the data flow control means 105 comprises in particular: the control module 107;

<Desc/Clms Page number 24><Desc / Clms Page number 24>

l'unité de commutation 108 ; et l'unité de mémorisation à double port ou DPRAM 106.  the switching unit 108; and the dual port storage unit or DPRAM 106.

Le signal de contrôle Ctrl5, illustré en regard de la figure 1 se décompose en trois signaux sur la figure 2 : un signal de contrôle 51 ; un signal de contrôle 43 TxFIFOfull[0 : et

Figure img00240001

un signal de contrôle 42 7XF7F < 3/ < 9 ; 2/. The control signal Ctrl5, illustrated with reference to FIG. 1, is broken down into three signals in FIG. 2: a control signal 51; a control signal 43 TxFIFOfull [0: and
Figure img00240001

a control signal 42 7XF7F <3 / <9; 2 /.

Les signaux de contrôle 51, TxFIF < fMO : 2] 42 et WriteTXFIFO[O : 2J 43 permettent au moyen de contrôle 120 de la FIFO de gérer le transfert des paquets de données entre l'unité de commutation 108 et l'interface 104 de liaison série, à travers les bus de données 44 et 41.  The control signals 51, TxFIF <fMO: 2] 42 and WriteTXFIFO [O: 2J 43 enable the control means 120 of the FIFO to manage the transfer of the data packets between the switching unit 108 and the interface 104. serial link, through the data buses 44 and 41.

Le traitement des signaux de contrôle dans l'unité de commutation 108 sera décrit ultérieurement en regard de la figure 3.  The processing of the control signals in the switching unit 108 will be described later with reference to FIG.

Le signal Ctrl4, illustré en regard de la figure 1, entre l'unité de commutation 108 et le module de contrôle 107, se décompose en au moins quatre signaux sur la figure 2 : deux signaux de contrôle 53 et 54 ;

Figure img00240002

un signal de contrôle/Rx7E'QP/7 : 0/ 45a ; un signal de données IntRx TX - [31. 01 45b. The signal Ctrl4, illustrated with reference to FIG. 1, between the switching unit 108 and the control module 107, is broken down into at least four signals in FIG. 2: two control signals 53 and 54;
Figure img00240002

a control signal / Rx7E'QP / 7: 0 / 45a; a data signal IntRx TX - [31. 01 45b.

Le signal 45b est un bus de données reliant les éléments 106,107 et 108. Le module de contrôle lit les en-têtes paquets à partir de ce bus 45b.  The signal 45b is a data bus connecting the elements 106, 107 and 108. The control module reads the packet headers from this bus 45b.

Les signaux de contrôle 53,54 et 45a permettent la gestion de transfert de données IntRx~TX[31 : 0] 45b entre la mémoire double port 106 et l'unité de commutation 108.  The control signals 53, 54 and 45a allow the management of data transfer IntRx ~ TX [31: 0] 45b between the dual port memory 106 and the switching unit 108.

Dans certains cas, notamment lors du traitement d'en-tête de paquet, les données du paquet sont envoyées au module de contrôle 107 plutôt qu'àl'unité de mémorisation 106 pour une analyse ultérieure.  In some cases, especially during packet header processing, the packet data is sent to the control module 107 rather than to the storage unit 106 for later analysis.

Le bus de données 45b est représenté sur la figure 1 par le bus de données 113.  The data bus 45b is shown in FIG. 1 by the data bus 113.

La figure 3 représente un schéma électronique du module de commutation 108 de la figure 1.  FIG. 3 represents an electronic diagram of the switching module 108 of FIG.

<Desc/Clms Page number 25> <Desc / Clms Page number 25>

Le module de commutation 108 comprend notamment : - un moyen 60 d'arbitrage ; un moyen 20 de génération de cycle ; des moyens chargés de la réception et de l'émission des données en provenance ou à destination de l'interface
104 (soient les données en provenance ou à destination d'un réseau commuté IEEE1355) ; des moyens chargés de la réception des données en provenance de la mémoire DPRAM 106 (soient les données en provenance d'un bus IEEE1394) ; et des moyens chargés de l'émission des données vers la mémoire DPRAM 106 (soient les données à destination d'un bus IEEE1394).
The switching module 108 comprises in particular: an arbitration means; cycle generating means 20; means responsible for receiving and transmitting data from or to the interface
104 (data from or to an IEEE1355 dial-up network); means responsible for receiving the data from the DPRAM memory 106 (ie the data coming from an IEEE1394 bus); and means responsible for sending the data to the memory DPRAM 106 (the data to an IEEE1394 bus).

Les moyens chargés de la réception et de l'émission des données en provenance de ou vers l'interface 104 comprennent notamment : un moyen 18 de modification d'en-tête ; un moyen 19 d'analyse d'en-tête en réception ; deux mémoires volatiles 15 et 16 de réception agencées en
FIFO ; et un moyen 17 de contrôle des FIFOs de réception 15 et 16.
The means responsible for receiving and transmitting the data coming from or to the interface 104 comprise in particular: a means 18 for modifying the header; a header analysis means 19 for receiving; two volatile memories 15 and 16 of reception arranged in
FIFO; and means 17 for checking the reception FIFOs 15 and 16.

Les moyens charges de la réception des données en provenance de la mémoire DPRAM 106 comprennent notamment : quatre FIFOs d'entrée 9,10, 11 et 12 ; un moyen 130 de contrôle des FIFOs d'entrée ; - un multiplexeur 50 ; et un moyen 13 d'analyse d'en-tête de transmission.  The load means of the reception of the data coming from the memory DPRAM 106 comprise in particular: four input FIFOs 9, 10, 11 and 12; means 130 for controlling the input FIFOs; a multiplexer 50; and a transmission header analysis means 13.

Les moyens chargés de l'émission des données vers la mémoire DPRAM 106 comprennent notamment : trois mémoires d'assemblage 22,23 ou 24 ; trois FIFOs de sortie 25,26 et 27 ; un moyen de contrôle 84 des FIFOs de sortie ; et  The means responsible for sending the data to the DPRAM memory 106 comprise in particular: three assembly memories 22, 23 or 24; three output FIFOs 25,26 and 27; control means 84 of the output FIFOs; and

<Desc/Clms Page number 26><Desc / Clms Page number 26>

un multiplexeur 28.  a multiplexer 28.

Ces éléments faisant partie du module de commutation 108 sont reliés par des éléments de liaisons décrits ci-après. On note néanmoins que la plupart des échanges se font autour du moyen 60 d'arbitrage avec utilisation de deux bus de données principaux, TxBus 70 et RxBux 80 dont les accès sont gérés par le moyen d'arbitrage 60.  These elements forming part of the switching module 108 are connected by link elements described below. It should be noted, however, that most of the exchanges are around the arbitration means 60 using two main data buses, TxBus 70 and RxBux 80, the accesses of which are managed by the arbitration means 60.

L'utilisation des deux bus internes, les bus de transmission TxBus 70 et de réception RxBus 80, qui permettent de traiter les transferts de données entre les ports va maintenant être détaillée.  The use of the two internal buses, the TxBus 70 and RxBus 80 receive busses, which make it possible to process the data transfers between the ports will now be detailed.

Les paquets sortants vers le bus 41 sont transmis à travers le bus de transmission TxBus 70.  The outgoing packets to the bus 41 are transmitted through the TxBus 70 transmission bus.

Les paquets sortants vers le bus 45 sont transmis à travers le bus interne de réception RxBus 80.  The outgoing packets to the bus 45 are transmitted through the RxBus internal receive bus 80.

Le moyen 60 d'arbitrage est en charge de la gestion des accès en écriture sur le bus TxBus 70 contrôlant l'ouverture : de registres à trois états 1,2, 3 et 4 grâce à des signaux OpenTxTS[O : 3i-on Rx 40 pour les données issues des FIFO d'entrée 9,10, 11 et 12 ; et de registres à trois états 14 grâce à des signaux de contrôle OpenRxTS~onTx 33 pour les données issues de la mémoire
16.
The arbitration means 60 is in charge of managing the write accesses on the TxBus bus 70 controlling the opening of tri-state registers 1,2, 3 and 4 by means of OpenTxTS signals [O: 3i-on Rx 40 for data from input FIFOs 9,10, 11 and 12; and tri-state registers 14 by means of OpenRxTS ~ onTx control signals 33 for data from the memory
16.

Les opérations de lecture du bus TxBus 70 vers un port de sortie de l'interface 104 sont gérées par le moyen d'arbitrage 60 en fonction du signal de contrôle vers les FIFO associées à chaque port TxFIFOfull [0 : 2J 43 et Write TxFIFO[0 : 2J 42.  The read operations of the TxBus bus 70 to an output port of the interface 104 are managed by the arbitration means 60 as a function of the control signal to the FIFO associated with each port TxFIFOfull [0: 2J 43 and Write TxFIFO [ 0: 2J 42.

Le moyen d'arbitrage 60 gère aussi les accès en écriture vers le bus RxBus 80 en contrôlant l'ouverture : de registres à trois états 5,6, 7 et 8 à travers des signaux QpeKTxTs/U : 3ponRx 39 pour les données issues des FIFO d'entrée 9,10, 11 et 12 ; et  The arbitration means 60 also manages the write accesses to the RxBus bus 80 by controlling the opening of tri-state registers 5, 6, 7 and 8 through QpeKTxTs / U: 3ponRx signals 39 for data originating from Input FIFO 9,10,11 and 12; and

<Desc/Clms Page number 27><Desc / Clms Page number 27>

d'un registre à trois états 21 à travers des signaux de contrôle OpenRxTs~onRx 34 pour les données issues de la mémoire 15.  a tri-state register 21 through OpenRxTs control signals ~ onRx 34 for the data from the memory 15.

Le moyen d'arbitrage 60 effectue aussi les opérations de lecture de données sur le bus RxBus 80 pour une écriture vers l'une des mémoires

Figure img00270001

d'assemblage 22, 23 ou 24 (en anglais "assembly buffers"). L"'assembly buffer"sert de tampon pour la conversion des données entre le bus 80, sur lequel les données sont exprimées sur 18 bits (16 bits de données et 2 bits de contrôle), et les OJFIFOs 25,26 et 27, dans lesquelles les données sont exprimées sur 34 bits) (32 bits de données et 2 bits de contrôle). The arbitration means 60 also performs the data reading operations on the RxBus bus 80 for writing to one of the memories
Figure img00270001

assembly 22, 23 or 24 (in English "assembly buffers"). The "assembly buffer" serves as a buffer for the data conversion between the bus 80, on which the data is expressed on 18 bits (16 bits of data and 2 control bits), and the OJFIFOs 25,26 and 27, in which data is expressed in 34 bits) (32 bits of data and 2 bits of control).

Ces tailles de bus sont liées à des contraintes physiques. Le module 84 transmet au moyen d'arbitrage 60 un signal de contrôle Rx FIFOfull[0 : 2J 83, indiquant le degré de remplissage des FIFO 25,26 et 27.

Figure img00270002

Le moyen d'arbitrage 60 génère un signal de contrôle eOF7FO/2 ; < ?/ 35 à destination d'un module 84 de contrôle des FIFO de sortie, en fonction du degré de remplissage des FIFOS 25,26 et 27. These bus sizes are related to physical constraints. The module 84 transmits to the arbitration means 60 a control signal Rx FIFOfull [0: 2J 83, indicating the degree of filling of the FIFOs 25,26 and 27.
Figure img00270002

The arbitration means 60 generates an eOF7FO / 2 control signal; To an output FIFO control module 84, depending on the degree of filling of the FIFOS 25,26 and 27.

Le moyen d'arbitrage 60 pour le multiplexage des données sur les bus 70 de transmission TxBus et 80 de réception RxBus utilise des signaux 46 de cycle EN cycle [0 : 2]. C'est le moyen 20 de génération de cycle, par exemple un compteur de Johnson, qui génère ces signaux 46.  The arbitration means 60 for the data multiplexing on the RxBus TxBus and RxBus receive buses 70 use cycle signals IN cycle [0: 2]. It is the cycle generation means, for example a Johnson counter, that generates these signals 46.

Le traitement des données entrantes va maintenant être détaillé en fonction de l'origine de ces données : le bus 44 ; le bus 45.  The processing of the incoming data will now be detailed according to the origin of these data: the bus 44; the bus 45.

Les données entrantes en provenance du bus 44 RxDI[17 : OJ ou du bus 45 seront routées vers le commutateur pour aller : vers le bus 41 TxDO[17 : OJ soit en direction de l'interface
104 ; ou vers le bus 45 soit en direction de la DPRAM 106.
Incoming data from the RxDI bus 44 [17: OJ or bus 45 will be routed to the switch to: to the TxDO bus 41 [17: OJ to the interface
104; or towards the bus 45 in the direction of the DPRAM 106.

Le traitement des données entrantes en provenance du bus 44 va maintenant être exposé.  Processing of incoming data from bus 44 will now be exposed.

<Desc/Clms Page number 28> <Desc / Clms Page number 28>

Les échanges de données sur le bus 44 sont gérés à travers le moyen 18 de modification d'en-tête et le moyen de contrôle de FIFO 120 de l'interface série, grâce aux signaux de contrôle 51. Les signaux de contrôle 51 comprennent un signal d'écriture vers le moyen 18 de modification d'en-tête et des signaux de contrôle de flux du module 18, correspondant chacun à des ports d'entrées du moyen d'interfaçage 104.  The data exchange on the bus 44 is managed through the header modification means 18 and the FIFO control means 120 of the serial interface, by means of the control signals 51. The control signals 51 comprise a write signal to the header modification means 18 and the flow control signals of the module 18, each corresponding to input ports of the interfacing means 104.

Les morceaux de paquets entrant en provenance du bus 44 parviennent d'abord à un moyen de modification d'en-tête 18 pour un traitement relatif aux en-têtes de paquet.  The incoming packet pieces from the bus 44 first arrive at a header modifying means 18 for processing related to the packet headers.

Les morceaux de paquets sont ensuite stockés : dans la mémoire 15 lorsqu'ils sont adressés au bus de réception 80 Rebus ; et dans la mémoire 16 lorsqu'ils sont adressés au bus de transmission 70 TxBus.  The pieces of packets are then stored: in the memory 15 when they are addressed to the reception bus 80 Rebus; and in memory 16 when addressed to the TxBus 70 transmission bus.

Lorsqu'ils sont adressés vers les deux bus, les morceaux de paquets sont adressés aux deux bus simultanément pour être stockés dans deux moyens de stockage simultanément.  When addressed to the two buses, the pieces of packets are addressed to both buses simultaneously to be stored in two storage means simultaneously.

De même, le moyen 17 de contrôle de FIFO de réception contrôle les opérations de stockage dans les deux mémoires 15 et 16.  Similarly, the reception FIFO control means 17 controls the storage operations in the two memories 15 and 16.

Les mémoires 15 et 16 sont des mémoires à double port, découpées en trois zones indépendantes, chacune étant gérée comme une FIFO.  The memories 15 and 16 are dual port memories, divided into three independent zones, each being managed as a FIFO.

Les signaux synchrones sont gérés suivant un certain rythme correspondant à une succession de phases constituées de quatre cycles d'horloge.  The synchronous signals are managed at a certain rate corresponding to a succession of phases consisting of four clock cycles.

Dans une phase à quatre cycles, au cours de chacun des trois premiers cycles d'horloge de la phase, on effectue à la fois une opération d'écriture et une opération en lecture vers deux adresses de chacune des RAM (mémoires volatiles) 15 ou 16. Ces adresses pointent respectivement : vers le dernier élément (queue) de l'une des FIFO dans chacune des RAM 15 et 16 ; et  In a four-cycle phase, during each of the first three clock cycles of the phase, both a write operation and a read operation are performed at two addresses of each of the RAMs (volatile memories) 15 or 16. These addresses point respectively to: the last element (tail) of one of the FIFOs in each of the RAMs 15 and 16; and

<Desc/Clms Page number 29><Desc / Clms Page number 29>

vers le premier élément (head) de rune des FIFO dans chacune des RAM 15 et 16.  to the first rune element (head) of the FIFOs in each of the RAMs 15 and 16.

Aucune opération de lecture ou d'écriture vers les RAM 15 et 16 n'est effectuée au cours du quatrième cycle d'horloge dans une phase à quatre cycles.  No read or write operation to the RAMs 15 and 16 is performed during the fourth clock cycle in a four-cycle phase.

Chaque opération de lecture effective de FIFO (définies lorsque le signal 32 de sortie Rx[U Jead est activé durant un cycle et est suivi par un signal d'entrée AllData used[i/activé durant un cycle, i correspondant à un numéro de la FIFO d'entrée) modifie l'adresse pointant sur l'en-tête de FIFO.  Each FIFO effective read operation (set when the output signal Rx [U Jead] is activated during a cycle and is followed by an input signal AllData used [i / activated during a cycle, i corresponding to a number of the FIFO input) changes the address pointing to the FIFO header.

Des opérations effectives d'écriture de FIFO (basées sur le même mécanisme que les opérations de lecture, utilisant ici le signal 52 illustré en regard de la figure 3) modifient l'adresse pointant sur la queue de la FIFO.  Effective FIFO write operations (based on the same mechanism as the read operations, here using the signal 52 illustrated with reference to FIG. 3) modify the address pointing at the tail of the FIFO.

Ainsi, durant trois cycles, chaque partie de FIFO correspondant à chacun des ports d'entrée est traitée : les opérations d'écriture de données par les moyens 18 de modification d'en-tête sont séquentiellement adressées vers les parties correspondantes 15 et 16, chacun des morceaux de paquets entrant de chacun des ports d'entrée 121,122 et 123 de l'interface 104.  Thus, during three cycles, each portion of FIFO corresponding to each of the input ports is processed: the data writing operations by the header modification means 18 are sequentially addressed to the corresponding parts 15 and 16, each of the incoming packet pieces of each of the input ports 121,122 and 123 of the interface 104.

D'une manière similaire, les données lues à partir des mémoires 15 et 16 sont traitées respectivement par les bus RxBus 80 et TxBus 70.  In a similar manner, the data read from the memories 15 and 16 are processed respectively by the RxBus buses 80 and TxBus 70.

Le moyen 17 de contrôle de FIFO de réception est en charge de la lecture et de l'écriture effective des FIFO contenues dans les mémoires 15 et 16.  The reception FIFO control means 17 is in charge of reading and actually writing the FIFOs contained in the memories 15 and 16.

Le signal 52 de contrôle informe le moyen de modification d'entête 18 qu'une FIFO est pleine dans l'une des mémoires 15 ou 16 et qu'il y a aussi une requête d'écriture pour une FIFO dans l'une des mémoires 15 ou 16.  The control signal 52 informs the header modification means 18 that a FIFO is full in one of the memories 15 or 16 and that there is also a write request for a FIFO in one of the memories 15 or 16.

Le moyen de contrôle de FIFO de réception informe le module 60 d'arbitrage qu'une nouvelle donnée a été lue à partir de l'une des mémoires 15 ou 16 grâce au signal Rx[O : 2Jread 32.  The receiving FIFO control means informs the arbitration module 60 that a new data item has been read from one of the memories 15 or 16 by the signal Rx [O: 2Jread 32.

<Desc/Clms Page number 30> <Desc / Clms Page number 30>

Les mêmes données sont lues à chaque phase de quatre cycles lorsqu'elles ne sont pas lues de manière effective en les plaçant simplement, soit sur le bus RxBus, soit sur le bus TxBus, soit sur les deux, en fonction du routage du paquet
Ainsi, les mêmes données sont présentées tous les quatre cycles, jusqu'à ce qu'elles aient été réellement lues par la ou les destinations.
The same data is read at each four-cycle phase when they are not read effectively by simply placing them either on the RxBus bus or on the TxBus bus, or both, depending on the routing of the packet.
Thus, the same data is presented every four cycles, until they have actually been read by the destination or destinations.

Le moyen 60 d'arbitrage gère l'ouverture du registre à trois états 14 grâce aux signaux de contrôle OpenRxTs~onTx 33, pour placer les données en lecture de la mémoire 16 sur le bus de transmission TxBus 70.  The arbitration means 60 manages the opening of the tri-state register 14 by means of the OpenRxTs ~ onTx control signals 33, in order to place the read data of the memory 16 on the TxBus 70 transmission bus.

Le moyen 60 gère également l'ouverture du registre à trois états 21, grâce aux signaux de contrôle OpenRxTs~onRx 34 pour mettre les données lues de la mémoire 15 vers le bus de réception RxBus 80.  The means 60 also manages the opening of the tri-state register 21, using the control signals OpenRxTs ~ onRx 34 to put the data read from the memory 15 to the RxBus receive bus 80.

Le moyen d'arbitrage 60 gère aussi le contrôle des signaux allRxData~use/[9 : 2] pour indiquer au moyen 17 de contrôle des FIFO de réception que la prochaine donnée sera lue par une partie correspondante dans l'une des mémoires 15 ou 16.  The arbitration means 60 also manages the control of the allRxData ~ use / [9: 2] signals to indicate to the receiving FIFO control means 17 that the next data will be read by a corresponding part in one of the memories 15 or 16.

Le moyen 19 d'analyse d'en-tête de paquets reçus commande la forme du signal 47 vers le moyen 60 d'arbitrage.  The received packet header analysis means 19 controls the form of the signal 47 to the arbitration means 60.

Lorsqu'un nouveau paquet en provenance de l'un des ports d'entrée 121, 122 ou 123 est traité dans le moyen 18 de modification d'en-tête, le

Figure img00300001

signal 47 Ac/0 ; 2/ ! ! M/0.'/ permet la requête d'une connexion : vers l'un des ports de sortie de l'interface 104 à travers le bus multiplexé 41 ; ou vers l'une des FIFO internes 25,26 ou 27 à travers le bus multiplexé 45. When a new packet from one of the input ports 121, 122 or 123 is processed in the header modification means 18, the
Figure img00300001

signal 47 Ac / 0; 2 /! ! M / 0. '/ Allows the request for a connection: to one of the output ports of the interface 104 through the multiplexed bus 41; or to one of the internal FIFOs 25, 26 or 27 through the multiplexed bus 45.

Lorsque la fin du paquet est traitée dans le moyen 18 de modification d'en-tête, le signal 47 RxEOP[O : 2] informe le moyen d'arbitrage 60 de la fin d'une connexion.  When the end of the packet is processed in the header modification means 18, the signal 47 RxEOP [O: 2] informs the arbitration means 60 of the end of a connection.

On note que le moyen 18 de modification d'en-tête émet un signal représentatif d'une information de routage à destination du moyen 19 d'analyse d'en-tête en réception.  Note that the header modification means 18 emits a signal representative of routing information to the header analysis means 19 on reception.

<Desc/Clms Page number 31> <Desc / Clms Page number 31>

En ce qui concerne la connexion et la déconnexion vers l'interface série IEEE 1355, le moyen 60 d'arbitrage gère les signaux 81 R'/ : 2]connected émis vers le moyen 17 de contrôle de FIFO de réception pour indiquer le statut de la connexion associée à chaque port.  With respect to the connection and disconnection to the IEEE 1355 serial interface, the arbitration means 60 manages the signals 81 R '/: 2] connected transmitted to the receive FIFO control means 17 to indicate the status of the signal. the connection associated with each port.

De même, le moyen 60 d'arbitrage gère les signaux

Figure img00310001

7/P.'2/coHHgc 82 vers le moyen 130 de contrôle des FIFO d'entrée 9, 10, 11 et 12 pour les données en provenance de la DPRAM 106. Similarly, the arbitration means 60 manages the signals
Figure img00310001

7 / P.'2 / coHHgc 82 to the means 130 for controlling the input FIFOs 9, 10, 11 and 12 for the data from the DPRAM 106.

Les données échangées sur le bus 45 sont gérées : par le moyen 84 de contrôle des FIFO de sortie 0F7FIFO et le module de contrôle 107 par l'intermédiaire du signal 53 ; et par le moyen 13 de contrôle des FIFO d'entrée I-FIFO et le module de contrôle 107 par l'intermédiaire du signal 54.  The data exchanged on the bus 45 are managed: by the control means of the output FIFO 0F7FIFO and the control module 107 via the signal 53; and the I / FIFO input FIFO control means 13 and the control module 107 via the signal 54.

Le multiplexeur 28 autorise la sélection d'une FIFO de sortie O~FIFO parmi les trois FIFO 25,26 ou 27 pour des opérations de lecture de FIFO de données destinées à la mémoire de stockage double port 106. Cette opération de sélection est gérée par le moyen 84 de contrôle de FIFO de sortie O~FIFO grâce àun signal 85.  The multiplexer 28 allows the selection of an O FIFO FIFO among the three FIFOs 25, 26 or 27 for data FIFO read operations for the dual port storage memory 106. This selection operation is managed by the output FIFO control means O ~ FIFO by a signal 85.

Par ailleurs, les moyens 130 de contrôle de FIFO d'entrées LFIFO contrôlent des opérations d'écriture de la mémoire de stockage 106 vers l'une des quatre FIFO I~FIFO d'entrée 9,10, Il ou 12 grâce aux signaux 90.  Furthermore, the LFIFO input FIFO control means 130 control operations for writing the storage memory 106 to one of the four input FIFO I ~ FIFOs 9, 10, 11 or 12 using the signals 90. .

C'est uniquement le cas pour le bus 42 où les signaux de contrôle 43 et 42 attachés au moyen de mémorisation des ports de sorties sont directement connectés vers les moyens 60 d'arbitrage.  This is only the case for the bus 42 where the control signals 43 and 42 attached to the storage means of the output ports are directly connected to the arbitration means 60.

En d'autres termes, le bus 41 est le seul bus dont les signaux de contrôle (42 et 43) sont directement reliés à l'arbitre 60.  In other words, the bus 41 is the only bus whose control signals (42 and 43) are directly connected to the arbiter 60.

Le traitement des données entrantes en provenance du bus 45 va maintenant être détaillé.  Processing of incoming data from bus 45 will now be detailed.

Les morceaux de paquets provenant du bus 45 sont démultiplexés vers chaque FIFO d'entrée 9,10, 11 et 12. Ainsi, quatre paquets (un par FIFO d'entrée) peuvent être traités simultanément.  The pieces of packets from the bus 45 are demultiplexed to each input FIFO 9, 10, 11 and 12. Thus, four packets (one per input FIFO) can be processed simultaneously.

<Desc/Clms Page number 32> <Desc / Clms Page number 32>

Chaque FIFO d'entrée est connectée à deux bus internes 70 et 80 à travers les registres àtrois états 1 à 8.  Each input FIFO is connected to two internal buses 70 and 80 through the three-state registers 1 to 8.

Le moyen 60 d'arbitrage est en charge de gérer : les accès en écriture sur le bus TxBus 70 contrôlant alternativement l'ouverture des registres trois états, 1 à 4 grâce aux signaux Open TxTs [0 : 3] ~onTx 40, chacun des registres 1 à4 étant affecté à une FIFO d'entrée 9 à 12 ; et les accès en écriture sur le bus RxBus 80 contrôlant alternativement l'ouverture des registres trois états 5 à 8

Figure img00320001

grâce aux signaux < 9peM77/ < 9 : 3/onyx 39, chacun des registres 5 à8 étant affecté à une FIFO d'entrée 9 à 12. The arbitration means 60 is in charge of managing: the write accesses on the TxBus bus 70 controlling alternatively the opening of the three-state registers, 1 to 4 thanks to the signals Open TxTs [0: 3] ~ onTx 40, each of the registers 1 to 4 being assigned to an input FIFO 9 to 12; and the write accesses on the RxBus bus 80 alternately controlling the opening of the tri-state registers 5 to 8
Figure img00320001

by means of the signals <9peM77 / <9: 3 / onyx 39, each of the registers 5 to 8 being assigned to an input FIFO 9 to 12.

Les opérations d'écriture sur le bus RxBus 70 sont indépendantes des opérations d'écriture sur le bus TxBus 80.  The write operations on the RxBus bus 70 are independent of the write operations on the TxBus bus 80.

Le moyen d'arbitrage 60 génère aussi des signaux de contrôle

Figure img00320002

allTxData Me/ < 9.'/37, qui autorisent la lecture sur l'une des FIFO d'entrées 9 à 12, grâce aux moyens de contrôle des FIFO d'entrée 130. The arbitration means 60 also generates control signals
Figure img00320002

allTxData Me / <9. '/ 37, which allow reading on one of the input FIFOs 9 to 12, by means of control of the input FIFOs 130.

Le moyen 130 de contrôle des FIFO d'entrée informe le moyen 60 d'arbitrage de la réussite d'une opération de lecture, effectuée par l'une des FIFO d'entrée, grâce au signal de contrôle 38 Tx :. /~Read.  The means 130 for controlling the input FIFOs informs the arbitration means 60 of the success of a read operation performed by one of the input FIFOs by virtue of the control signal 38 Tx: / ~ Read.

Les données d'en-tete de paquet sont multiplexées par un multiplexeur 50 de l'une des FIFO de sorties 9 à 12 pour être émises vers le moyen 13 d'analyse d'en-tête.  The packet header data is multiplexed by a multiplexer 50 of one of the output FIFOs 9 to 12 to be transmitted to the header analysis means 13.

Le moyen 13 d'analyse d'en-tête de paquet transmis analyse les données issues des FIFO d'entrée 9,10, 11 et 12 pour générer le signal 36 Tx[O : 3]Want[0 : 31 à destination du moyen d'arbitrage 60.  The transmitted packet header analysis means 13 analyzes the data from the input FIFOs 9, 10, 11 and 12 to generate the signal 36 Tx [O: 3] Want [0: 31 to the medium Arbitration 60.

Lorsqu'un nouveau paquet est traité dans l'une des FIFO d'entrée 9 à 12, le signal 36 Tx :. 3 3] Want C : 3] permet la requête d'une connexion : vers l'un des ports de sortie du moyen d'intedaçage 104 par un bus 41 multiplexé ; ou vers l'une des FIFO de sortie 25,26 ou 27 par un bus 45 multiplexé.  When a new packet is processed in one of the input FIFOs 9 to 12, the signal 36 Tx:. 3 3] Want C: 3] allows the request for a connection: to one of the output ports of the indenter 104 by a multiplexed bus 41; or to one of the output FIFOs 25, 26 or 27 by a multiplexed bus 45.

<Desc/Clms Page number 33> <Desc / Clms Page number 33>

Lorsque la fin du paquet est traitée dans l'une des FIFO d'entrée 9 à 12, le signal 36 TxEOP/O : 3/permet d'informer le moyen d'arbitrage 60 d'une fin de connexion.  When the end of the packet is processed in one of the input FIFOs 9 to 12, the signal 36 TxEOP / O: 3 / makes it possible to inform the arbitration means 60 of a connection end.

Comme décrit ci-dessus, le moyen 18 de modification d'en-tête est en charge du traitement des paquets reçus, ce qui inclut : l'analyse de l'en-tête de paquet (retrouver des informations de routage qui permettent de générer les signaux 52 utilisés pour réaliser le routage) ; le transfert des données contenues dans le paquet : les opérations d'écriture adressent séquentiellement les zones correspondantes dans les mémoires 15 et 16, pour chaque partie de paquet venant de chaque port d'entrée ; la détection de fin de paquet (informer à travers les signaux
52 de la fin de la connexion).
As described above, the header modification means 18 is in charge of processing the received packets, which includes: parsing the packet header (retrieving routing information to generate the signals 52 used to carry out the routing); the transfer of the data contained in the packet: the write operations sequentially address the corresponding zones in the memories 15 and 16, for each packet portion coming from each input port; the end of packet detection (to inform through the signals
52 from the end of the connection).

On présente maintenant, de façon détaillée, la mise en ouvre d'un mode de réalisation préférentiel du procédé selon la présente invention, dans le cas d'un réseau dont chaque nond comprend un commutateur (ou appareil de commutation) 90 décrit ci-dessus (en relation avec les figures 1 à3).  The implementation of a preferred embodiment of the method according to the present invention, in the case of a network of which each nond comprises a switch (or switching device) 90 described above, is now presented in detail. (in relation to Figures 1 to 3).

On suppose, dans la suite de la description, que le calcul de l'arbre de recouvrement est effectué par le ncud source (racine) de cet arbre de recouvrement.  In the rest of the description, it is assumed that the computation of the recovery tree is carried out by the source (root) node of this collection tree.

Pour cela, la mémoire ROM 94 (cf. fig. l) du noed source stocke un programme logiciel implémentant un algorithme de calcul de l'arbre de recouvrement. Par ailleurs, l'unité centrale de traitement CPU 93 (cf. fig. l) du nwd source exécute cet algorithme afin de calculer l'arbre de recouvrement et donc connaître, pour chaque noad de cet arbre, le (s) port (s) de sortie concerné (s) par la diffusion. Dans la suite de la description, ce ou ces ports de sortie sont appelés'ports de sortie impliqués".  For this, the ROM 94 (see Fig. 1) of the noed source stores a software program implementing an algorithm for calculating the recovery tree. In addition, the CPU 93 CPU (see Fig. 1) of the source nwd executes this algorithm in order to calculate the recovery tree and thus know, for each noad of this tree, the port (s). ) output concerned by the broadcast. In the rest of the description, this or these output ports are called 'outputports involved'.

<Desc/Clms Page number 34> <Desc / Clms Page number 34>

H est clair cependant que la présente invention couvre également le cas où le calcul de l'arbre de recouvrement est effectué par un équipement quelconque, puis communiqué au ncod source.  It is clear, however, that the present invention also covers the case where the calculation of the recovery tree is carried out by any equipment and then communicated to the ncod source.

On suppose également, dans la suite de la description, que la diffusion de données utiles s'effectue, le long de l'arbre de recouvrement, depuis le nmd source (racine) vers l'ensemble des noods finaux (feuilles).  It is also assumed, in the following description, that the dissemination of useful data takes place, along the recovery tree, from the source nmd (root) to the set of final noods (leaves).

Pour cela, la mémoire ROM 94 (cf fig. 1) du noad source stocke un programme logiciel implémentant un algorithme de calcul de l'en-tête de diffusion des paquets de diffusion, en fonction de l'arbre de recouvrement préalablement calculé. Un mode de réalisation particulier de cet algorithme est décrit en détail ci-après, en relation avec la figure 14. La connaissance de l'arbre de recouvrement peut être stockée sous une forme statique, dans la RAM 95, ou construite de façon dynamique. Par ailleurs, l'unité centrale de traitement CPU 93 (cf. fig. 1) du nmd source exécute cet algorithme et fournit au module de contrôle 107 l'en-tête (résultant du calcul précité et qui est stocké temporairement en RAM 95 (cf fig. l)) et le corps de chaque paquet de diffusion. Le module de contrôle 107 transmet le paquet de diffusion (en-tête et corps) à l'unité de commutation 108, pour transmission sur l'un des ports de sortie du nood source.  For this purpose, the ROM 94 (cf FIG 1) of the source noad stores a software program implementing an algorithm for calculating the broadcast packet broadcast header, as a function of the previously calculated recovery tree. A particular embodiment of this algorithm is described in detail below, in connection with FIG. 14. Knowledge of the overlay tree can be stored in a static form, in RAM 95, or dynamically constructed. Furthermore, the CPU 93 CPU (see Fig. 1) of the source nmd executes this algorithm and supplies the control module 107 with the header (resulting from the above calculation and which is stored temporarily in RAM 95 ( cf Fig. l)) and the body of each broadcast packet. The control module 107 transmits the broadcast packet (header and body) to the switching unit 108, for transmission on one of the output ports of the source nood.

Par ailleurs, dans chaque noad recevant un paquet de diffusion, le module de contrôle 107 transmet le corps de chaque paquet de diffusion reçu, depuis l'unité de commutation 108 vers la RAM 95. En effet, l'en-tête de diffusion n'est traité que par l'unité de commutation 108 (voir description détaillée de ce traitement ci-après).  Furthermore, in each noad receiving a broadcast packet, the control module 107 transmits the body of each broadcast packet received, from the switching unit 108 to the RAM 95. Indeed, the broadcast header n is processed only by the switching unit 108 (see detailed description of this treatment hereinafter).

Il est clair cependant que la présente invention couvre également le cas où le calcul du ou des paquets de diffusion est effectué par un équipement quelconque, puis communiqué au nard source.  It is clear, however, that the present invention also covers the case where the calculation of the broadcast packets is carried out by any equipment, then communicated to the source source.

Dans ce contexte, le principe général de l'invention consiste, pour chaque port de sortie impliqué du noud source, à :  In this context, the general principle of the invention consists, for each output port involved from the source node, to:

<Desc/Clms Page number 35><Desc / Clms Page number 35>

construire un paquet de diffusion dont l'en-tête de diffusion contient une description de la partie de l'arbre de recouvrement située en aval de ce port de sortie ; propager ce paquet de diffusion, le long de la partie de l'arbre de recouvrement décrite dans l'en-tête de diffusion. Lors de cette propagation, chaque n##d qui reçoit le paquet de diffusion trouve dans le contenu de l'en-tête de diffusion les informations relatives au (x) noad (s) situé (s) en aval vers le (s) quel (s) le paquet de diffusion doit être transmis.  constructing a broadcast packet whose broadcast header contains a description of the portion of the overlay tree located downstream of that output port; propagate this broadcast packet along the portion of the overlay tree described in the broadcast header. During this propagation, each n ## d that receives the broadcast packet finds in the content of the broadcast header the information relating to the (x) noad (s) located downstream towards the (s) which (s) the broadcast package should be transmitted.

On présente maintenant, en relation avec la figure 4, un mode de réalisation préférentiel de la structure d'un paquet de diffusion 300 selon

Figure img00350001

l'invention. L'en-tête et le corps sont référencés 310 et 306 respectivement. L'en-tête 310 comprend lui-même une pluralité d'unités d'en-tête HDRunit (N-l) à HDRunit (0), comprenant par exemple chacune 16 bits. L'unité d'en-tête HDRunit (N-l) est transmise d'abord, puis l'unité d'en-tête HDR unit (N-2) jusqu'à l'unité d'en-tête HDRunit (0). With reference to FIG. 4, a preferred embodiment of the structure of a diffusion packet 300 according to FIG.
Figure img00350001

the invention. The header and the body are referenced 310 and 306 respectively. The header 310 itself comprises a plurality of header units HDRunit (N1) to HDRunit (0), each comprising for example 16 bits. The header unit HDRunit (N1) is transmitted first, then the header unit HDR unit (N-2) to the header unit HDRunit (0).

On distingue par exemple trois types d'unités d'en-tête : premier type : les unités d'en-tête permettant d'indiquer le (s) port (s) de sortie impliqué (s) d'un nord ; second type : les unités d'en-tête permettant d'indiquer les nords finaux (feuilles) de l'arbre de recouvrement ; troisième type : les unités d'en-tête de remplissage.  There are for example three types of header units: first type: header units to indicate the output port (s) involved in a north; second type: header units to indicate the final nords (leaves) of the overlay tree; third type: the fill header units.

Dans un mode de réalisation particulier illustré sur la figure 5, chaque unité d'en-tête du premier type 50 comprend un bit de poids faible (LSB) 51 égal à"0", qui constitue un premier champ ("champ de diffusion") dort l'utilisation est expliquée par la suite en relation avec l'organigramme de la figure 11. Les autres bits de chacune de ces unités d'en-tête 50 forment un second champ 52, contenant une indication du ou des port (s) de sortie impliqué (s) d'un noad. Comme illustrée par la table de la figure 13, chaque bit de ce second champ 52 prenant la valeur 1 indique que l'un des ports de sortie est impliqué dans la diffusion du paquet de  In a particular embodiment illustrated in FIG. 5, each header unit of the first type 50 comprises a LSB 51 equal to "0", which constitutes a first field ("diffusion field"). ) the use is explained later in connection with the flowchart of FIG. 11. The other bits of each of these header units 50 form a second field 52, containing an indication of the port (s) ) output involved (s) of a noad. As illustrated by the table of FIG. 13, each bit of this second field 52 taking the value 1 indicates that one of the output ports is involved in the broadcasting of the packet.

<Desc/Clms Page number 36><Desc / Clms Page number 36>

diffusion. Le bit de rang 1 du second champ 52 indique l'implication du port de sortie numéro 1, celui de rang 2 l'implication du port de sortie numéro 2, etc. La valeur"x"sur la figure 13 signifie "0" ou "1". En effet, le second champ 52 peut indiquer une pluralité de ports de sortie (15 au maximum).  diffusion. The bit of rank 1 of the second field 52 indicates the implication of the output port number 1, that of rank 2 the implication of the output port number 2, etc. The value "x" in Fig. 13 means "0" or "1". Indeed, the second field 52 may indicate a plurality of output ports (15 maximum).

Dans un mode de réalisation particulier illustré sur la figure 6, on affecte par exemple à chaque unité d'en-tête du second type 60 la valeur FFFD en hexadécimal. Dans ce cas, le bit de poids faible (LSB) 61 est à "1"et constitue un"champ de diiïusion"dont l'utilisation est expliquée par la suite en relation avec l'organigramme de la figure 11.  In a particular embodiment illustrated in FIG. 6, for example, each header unit of the second type 60 is assigned the value FFFD in hexadecimal. In this case, the low-order bit (LSB) 61 is at "1" and constitutes a "transmission field" whose use is explained later in connection with the flowchart of FIG. 11.

Les unités d'en-tête du troisième type (remplissage) permettent de compléter les en-têtes de diffusion afin qu'ils comprennent un nombre prédéterminé d'unités d'en-tête. Ces unités de remplissage sont supprimées lors du traitement de l'en-tête de diffusion par l'unité de commutation 108.  The third type header units (padding) complete the broadcast headers to include a predetermined number of header units. These filler units are deleted during the processing of the broadcast header by the switching unit 108.

Dans le cas du système illustré sur les figures 1 à 3, les unités d'en-tête sont des mots de 16 bits et les unités d'en-tête de remplissage permettent d'obtenir un en-tête multiple de 32 bits. On rappelle en effet que dans le système précité il y a une interface 32 bits entre le contrôleur de bus 99 et l'interface de bus 101, tandis que l'unité de commutation 108 traite des mots de 16 bits. On affecte par exemple à chacune des unités d'en-tête de remplissage la valeur FFFF en hexadécimal. In the case of the system illustrated in FIGS. 1 to 3, the header units are 16-bit words and the filler header units make it possible to obtain a 32-bit multiple header. It is recalled that in the aforementioned system there is a 32-bit interface between the bus controller 99 and the bus interface 101, while the switching unit 108 processes 16-bit words. For example, each of the fill header units is assigned the value FFFF in hexadecimal.

Un mode de réalisation particulier de l'algorithme de construction d'un en-tête de diffusion est décrit en détail par la suite, en relation avec la figure 14. En résumé, l'en-tête de diffusion résultant de cette construction

Figure img00360001

particulière, pour chaque port de sortie impliqué du nard source, comprend (de HDR.unit(N-1)àHDRunit (0)) : éventuellement, une unité d'en-tête de remplissage ; si le noeud qui reçoit l'en-tête de diffusion est un nord intermédiaire : A particular embodiment of the algorithm for constructing a broadcast header is described in detail below, in connection with FIG. 14. In summary, the broadcast header resulting from this construction
Figure img00360001

particular, for each output port involved the source nard, comprises (from HDR.unit (N-1) to HRunit (0)): optionally, a filler header unit; if the node receiving the broadcast header is an intermediate north:

<Desc/Clms Page number 37><Desc / Clms Page number 37>

* (premier lot) une unité d'en-tête du premier type 50, indiquant le (s) port (s) de sortie impliquas) de ce noed intermédiaire ; * (second lot) pour chaque port de sortie impliqué du nocd intermédiaire, dans l'ordre décroissant des numéros de port : (sous-lot) une ou plusieurs unités d'en-tête décrivant la partie de l'arbre de recouvrement située en aval du port de sortie impliqué du ncnd intermédiaire ; si le ncod qui reçoit l'en-tête de diffusion est un noad final (feuille) : * une unité d'en-tête du second type 60.  * (first batch) a header unit of the first type 50, indicating the implicated output port (s) of this intermediate node; * (second batch) for each intermediate nocd involved output port, in descending order of the port numbers: (sub-lot) one or more header units describing the part of the overlay tree located in downstream of the output port involved in the intermediate ncnd; if the ncod that receives the broadcast header is a final noad (leaf): * a header unit of the second type 60.

Chaque sous-lot précité peut lui-même posséder la structure élémentaire décrite ci-dessus (comprenant un premier et un second lots d'unités d'en-tête, le second lot comprenant un ou plusieurs sous-lot (s)), si la branche de l'arbre de recouvrement située en aval du port de sortie correspondant indiqué dans le premier lot ne comprend pas uniquement un noad final de l'arbre de recouvrement.  Each sub-lot may itself have the elementary structure described above (comprising first and second batches of header units, the second batch comprising one or more sublot (s)), if the branch of the cover shaft located downstream of the corresponding output port indicated in the first batch does not include only a final noad of the cover shaft.

A titre d'exemple illustratif, on présente maintenant, en relation avec la figure un en-tête de diffusion 80 destiné à être transmis sur le port de sortie 0 du need 0 de l'arbre de recouvrement de la figure 7. Cet en-tête de diffusion 80, reçu par le port d'entrée 0 du nard intermédiaire 1, comprend : champ 317 contenant l'unité d'en-tête HDRunit (3), qui est une unité d'en-tête de remplissage ; champ 331 contenant l'unité d'en-tête HDR~unit (2), qui indique que

Figure img00370001

les ports de sortie impliqués du noed 1 sont les ports de sortie 3 et 1 ; champ 332 contenant l'unité d'en-tête HDRunit (l), qui indique que la partie de l'arbre de recouvrement située en aval du port de sortie 3 du noad 1 est une feuille (correspondant au noad 5) ; By way of illustrative example, a diffusion header 80 intended to be transmitted on the output port 0 of the need 0 of the cover shaft of FIG. 7 is now shown in connection with FIG. scattering head 80, received through input port 0 of intermediate nard 1, includes: field 317 containing HDRunit header unit (3), which is a filler header unit; field 331 containing the header unit HDR ~ unit (2), which indicates that
Figure img00370001

the output ports involved in noed 1 are output ports 3 and 1; field 332 containing the header unit HDRunit (1), which indicates that the part of the spanning tree located downstream of the output port 3 of the noad 1 is a sheet (corresponding to the noad 5);

<Desc/Clms Page number 38><Desc / Clms Page number 38>

champ 333 contenant l'unité d'en-tête HDRunit (0), qui indique que la partie de l'arbre de recouvrement située en aval du port de sortie 1 du n#ud 1 est une feuille (correspondant au n#ud 6).  field 333 containing the header unit HDRunit (0), which indicates that the part of the spanning tree located downstream of the output port 1 of the node 1 is a sheet (corresponding to the node 6 ).

A titre d'exemple illustratif, on présente maintenant, en relation avec la figure 9, un en-tête de diffusion 90 destiné à être transmis sur le port de sortie 1 du nord 0 de l'arbre de recouvrement de la figure 7. Cet en-tête de diffusion 90, reçu par le port d'entrée 0 du nocd intermédiaire 2, comprend : champ 318 contenant l'unité d'en-tête HDR~unit (7), qui est une unité d'en-tête de remplissage ; champ 334 contenant l'unité d'en-tête HDRunit (6), qui indique que

Figure img00380001

les ports de sortie impliqués du noad 2 sont les ports de sortie 3 et 2 ; champ 335 contenant l'unité d'en-tête HDR~unit (5), qui indique que la partie de l'arbre de recouvrement située en aval du port de sortie 3 du ncad 2 commence par un noad intermédiaire (correspondant au noad 3) dont les ports de sortie impliqués sont les ports de sortie 3, 1 et 0 ; champ 336 contenant l'unité d'en-tête HDRunit (4), qui indique que la partie de l'arbre de recouvrement située en aval du port de sortie 3 du n#ud 3 est une feuille (correspondant au n#ud 4) ; champ 337 contenant l'unité d'en-tête HDRunit (3), qui indique que la partie de l'arbre de recouvrement située en aval du port de sortie 1 du n#ud 3 est une feuille (correspondant au n#ud 9) ; champ 338 contenant l'unité d'en-tête HDR~unit (2), qui indique que la partie de l'arbre de recouvrement située en aval du port de sortie 0 du noud 3 commence par un nood intermédiaire (correspondant au n#ud 8) dont l'unique port de sortie impliqué est le port de sortie 0 ; champ 339 contenant l'unité d'en-tête HDRunit (l), qui indique que la partie de l'arbre de recouvrement située en aval du port de sortie 0 du need 8 est une feuille (correspondant au ncad 10) ; By way of illustrative example, in relation to FIG. 9, a diffusion header 90 intended to be transmitted on the output port 1 of the north 0 of the cover shaft of FIG. broadcast header 90, received through the input port 0 of the intermediate nocd 2, comprises: field 318 containing the header unit HDR ~ unit (7), which is a header unit of filling; field 334 containing the header unit HDRunit (6), which indicates that
Figure img00380001

the output ports involved in noad 2 are output ports 3 and 2; field 335 containing the header unit HDR ~ unit (5), which indicates that the part of the cover shaft located downstream of the output port 3 of ncad 2 begins with an intermediate noad (corresponding to noad 3 ) whose output ports involved are output ports 3, 1, and 0; field 336 containing the header unit HDRunit (4), which indicates that the part of the spanning tree located downstream of the output port 3 of the node 3 is a leaf (corresponding to the node 4 ); field 337 containing the header unit HDRunit (3), which indicates that the part of the spanning tree located downstream of the output port 1 of the node 3 is a leaf (corresponding to the node 9 ); field 338 containing the header unit HDR ~ unit (2), which indicates that the part of the spanning tree located downstream of the output port 0 of the node 3 begins with an intermediate nood (corresponding to the n # ud 8) whose only output port involved is output port 0; field 339 containing the header unit HDRunit (1), which indicates that the part of the spanning tree located downstream of the output port 0 of the need 8 is a leaf (corresponding to ncad 10);

<Desc/Clms Page number 39><Desc / Clms Page number 39>

champ 319 contenant l'unité d'en-têtc HDRunit (0), qui indique que la partie de l'arbre de recouvrement située en aval du port de sortie 2 du nrod 2 est une feuille (correspondant au nard 7).  field 319 containing the header unit HDRunit (0), which indicates that the part of the cover shaft located downstream of the output port 2 of the nrod 2 is a sheet (corresponding to the nard 7).

On présente maintenant, en relation avec la figure 10, un organigramme décrivant un mode de réalisation particulier d'un algorithme de traitement d'un paquet de diffusion selon la présente invention. Cet algorithme est par exemple mis en mvre dans le moyen 18 de modification d'en-tête (cf. fig. 3) du nond qui reçoit le paquet de diffusion, pour chacune des trois FIFOs d'entrée 121 (InPortOFIFO), 122 (InPortlFIFO) et 123 (InPort2~FIFO).  A flowchart describing a particular embodiment of an algorithm for processing a broadcast packet according to the present invention is now presented in connection with FIG. This algorithm is for example implemented in the header modification means 18 (see Fig. 3) of the nond receiving the broadcast packet, for each of the three input FIFOs 121 (InPortOFIFO), 122 ( InPortlFIFO) and 123 (InPort2 ~ FIFO).

* Après le lancement de l'exécution de l'algorithme (étape 340), on traite l'en-tête de diffusion du paquet de diffusion (étape 341). Puis, on passe au mot de données utiles suivant du corps du paquet (étape 342). Si le mot de données utiles suivant n'est pas l'indicateur de fin de paquet (EOP) (réponse"non"à la question de l'étape 343), on envoie ce mot de données utiles depuis le port d'entrée vers le (s) port (s) de sortie connecté (s) et vers la FIFO interne connectée (étape 344). Sinon (réponse"oui"à la question de l'étape 343), on relâche les connexions établies (étape 345). After launching the execution of the algorithm (step 340), the broadcast header of the broadcast packet is processed (step 341). Then, we move to the next payload word of the package body (step 342). If the next payload word is not the End Of Packet Indicator (EOP) (answer "no" to the question in step 343), this payload word is sent from the port of entry to the connected output port (s) and to the connected internal FIFO (step 344). Otherwise (answer "yes" to the question of step 343), the established connections are released (step 345).

On présente maintenant, en relation avec la figure 11, un organigramme décrivant un mode de réalisation particulier de l'étape 341 de la figure 10. Il s'agit donc d'un algorithme de traitement de l'en-tête de diffusion, pouvant également être mis en cavre dans le moyen 18 de modification d'en-tête (cf. fig. 3).  With reference to FIG. 11, a flowchart describing a particular embodiment of step 341 of FIG. 10 is presented. It is therefore a diffusion header processing algorithm, which can be It can also be caverned in the header modification means 18 (see Fig. 3).

Cet algorithme permet de traiter des en-têtes de longueur variables, ainsi qu'un nombre de connexions variable à établir entre port d'entrée et port (s) de sortie impliqués. Le traitement de l'en-tête est par exemple réalisé via un registre 16 bits, appelé registre HDR, dans lequel sont stockés successivement les mots à traiter (c'est-à-dire les unités d'en-tête) de l'en- tête de diffusion. Le format du registre HDR est cohérent avec les structures d'unités d'en-tête des figures 5 et 6.  This algorithm makes it possible to process variable length headers, as well as a variable number of connections to be established between the input port and the output port (s) involved. The processing of the header is for example carried out via a 16-bit register, called HDR register, in which are stored successively the words to be processed (that is to say the header units) of the broadcast head. The format of the HDR register is consistent with the header unit structures of Figures 5 and 6.

<Desc/Clms Page number 40> <Desc / Clms Page number 40>

Après le lancement de l'exécution de l'algorithme (étape 351), on fait passer dans le registre HDR le premier mot (c'est-à-dire la première unité d'en-tête) de l'en-tête du paquet (étape 352). Si le mot contenu dans le registre HDR est un mot de remplissage (réponse"oui"à la question de l'étape 353), on inscrit dans le registre HDR le mot suivant de l'en-tête (étape 352). Sinon (réponse"non"à la question de l'étape 353), on analyse le champ de diffusion de l'unité d'en-tête contenu dans le registre HDR (étape 354).  After launching the execution of the algorithm (step 351), the first word (i.e., the first header unit) of the header of the header is passed into the HDR register. packet (step 352). If the word contained in the HDR register is a filling word ("yes" answer to the question of step 353), the next word of the header (step 352) is entered in the HDR register. If not (answer "no" to the question of step 353), the broadcast field of the header unit contained in the HDR register (step 354) is analyzed.

Si le champ de diffusion contient la valeur"0" (cas notamment du premier type d'unité d'en-tête illustré sur la figure 5) (réponse"oui"à la question de l'étape 355), on détermine le type de diffusion à effectuer, à savoir une diffusion statique (réponse"oui"à la question de l'étape 356, par exemple si tous les bits de l'unité d'en-tête prennent la valeur"0") ou une diffusion dynamique (réponse"non"à la question de l'étape 356, par exemple si au moins un bit de l'unité d'en-tête prend la valeur"1", indiquant un port de sortie impliqué).  If the diffusion field contains the value "0" (in particular case of the first type of header unit illustrated in FIG. 5) (answer "yes" to the question of step 355), the type to broadcast, namely a static broadcast ("yes" answer to the question of step 356, for example if all the bits of the header unit take the value "0") or a dynamic broadcast (answer "no" to the question of step 356, for example if at least one bit of the header unit takes the value "1", indicating an output port involved).

Dans le cas d'une diffusion dynamique (c'est-à-dire si le noad qui traite l'en-tête de diffusion est un need intermédiaire de l'arbre de recouvrement), un traitement adéquat de l'en-tête est effectué (étape 357), qui est décrit en détail ci-dessous, en relation avec la figure 12.  In the case of a dynamic broadcast (that is, if the noad that processes the broadcast header is an intermediate need of the overlay tree), proper processing of the header is performed (step 357), which is described in detail below, in connection with FIG. 12.

Dans le cas d'une diffusion statique, un traitement adéquat de l'entête est effectué (étape 358), afin de transmettre ce dernier tel quel vers des ports de sortie déterminés grâce à un paramétrage matériel préalable du ncod Par diffusion statique, on entend en effet une diffusion selon la technique connue précitée, nécessitant un paramétrage matériel préalable de chacun des noads de l'arbre de recouvrement.  In the case of a static broadcast, an adequate processing of the header is performed (step 358), in order to transmit the latter as such to the output ports determined by prior hardware parameterization of the ncod. indeed a broadcast according to the aforementioned known technique, requiring a prior hardware parameterization of each of the noads of the recovery tree.

Chacune des étapes de traitement de diffusion dynamique (357) et statique (358) est suivie d'une étape (359) d'établissement d'une connexion vers l'une des FIFO internes O~FIFO~[0, 2] (référencées 25,26 et 27 sur la figure 3), afin que le ncod courant reçoive et traite les données utiles du paquet reçu (voir étape 344 sur la figure 10).  Each of the dynamic (357) and static (358) processing steps is followed by a step (359) of establishing a connection to one of the FIFO ~ [0, 2] internal FIFOs (referenced 25,26 and 27 in Fig. 3), so that the current ncod receives and processes the payload of the received packet (see step 344 in Fig. 10).

<Desc/Clms Page number 41> <Desc / Clms Page number 41>

Si le champ de diffusion contient la valeur"1" (cas notamment du second type d'unité d'en-tête illustré sur la figure 6) (réponse"non"à la question de l'étape 355), on détermine si le ncnd courant est une feuille de l'arbre de recouvrement dans le cadre d'une diffusion dynamique (réponse "oui"à la question de l'étape 360, par exemple si l'unité d'en-tête prend la valeur''FFFD" en hexadécimal), ou un ncnd impliqué dans un envoi de paquet point-à-point (réponse"non"à la question de l'étape 360).  If the diffusion field contains the value "1" (in particular the case of the second type of header unit illustrated in FIG. 6) (answer "no" to the question of step 355), it is determined whether the ncnd current is a leaf of the overlay tree as part of a dynamic broadcast ("yes" answer to the question of step 360, for example if the header unit takes the value "FFFD" "in hexadecimal), or an ncnd involved in a point-to-point packet sending (answer" no "to the question in step 360).

Si le noad courant est une feuille (réponse"oui"à la question de l'étape 360), on établit (étape 361) une connexion vers l'une des FIFO internes O~FIFO~[0, 2] (référencées 25,26 et 27 sur la figure 3), afin que le noad courant reçoive et traite les données utiles du paquet reçu (voir étape 344 sur la figure 10).  If the current noad is a sheet (answer "yes" to the question of step 360), a step is established (step 361) to one of the internal FIFOs O ~ FIFO ~ [0, 2] (referenced 25, 26 and 27 in Fig. 3) so that the current noad receives and processes the payload of the received packet (see step 344 in Fig. 10).

Sinon (réponse"non"à la question de l'étape 360), un traitement adéquat de l'en-tête est effectué (étape 362), afin de permettre un envoi de type point-à-point du paquet.  If not (answer "no" to the question of step 360), proper processing of the header is performed (step 362) to allow point-to-point sending of the packet.

On présente maintenant, en relation avec la figure 12, un organigramme décrivant un mode de réalisation particulier de l'étape 357 de la figure 11. Il s'agit donc d'un algorithme de traitement d'en-tête de diffusion, dans le cas d'une diffusion dynamique selon la présente invention. Cet algorithme peut être mis en ouvre dans le moyen 18 de modification d'en-tête (cf fig. 3).  Referring now to FIG. 12, a flow chart describing a particular embodiment of step 357 of FIG. 11 is presented. It is therefore a diffusion header processing algorithm, in the case of dynamic diffusion according to the present invention. This algorithm can be implemented in the header modification means 18 (see Fig. 3).

Outre le registre HDR précité (voir description ci-dessus de l'algorithme de traitement d'un paquet de diffusion), on utilise un second registre de 16 bits, appelé FWDJHDR.  In addition to the aforementioned HDR register (see above description of the broadcast packet processing algorithm), a second 16-bit register called FWDJHDR is used.

Après le lancement de l'exécution de l'algorithme (étape 380), le registre FWD~HDR reçoit l'unité d'en-tête HDRunit (n), première unité d'en-tête qui n'est pas une unité d'en-tête de remplissage (étape 381). Ainsi, dans le cas de l'en-tête de la figure 8, le registre FWDHDR reçoit HDR unit (2) (référencée 331), et dans le cas de l'en-tête de la figure 9, le registre FWDHDR reçoit HDRunit (6) (référencée 334).  After launching the execution of the algorithm (step 380), the register FWD ~ HDR receives the header unit HDRunit (n), first header unit which is not a unit d filling header (step 381). Thus, in the case of the header of FIG. 8, the register FWDHDR receives HDR unit (2) (referenced 331), and in the case of the header of FIG. 9, the register FWDHDR receives HDRunit (6) (referenced 334).

<Desc/Clms Page number 42> <Desc / Clms Page number 42>

Lors de l'étape 382, on analyse le contenu du registre FWDHDR, afin de déterminer le port de sortie ayant le plus grand numéro. Celui-ci devient le port courant à traiter et son numéro est stocké dans le registre N~OUT. Appliqué à l'en-tête de la figure 8, le registre NOUT reçoit la valeur 3 correspondant au port de sortie 3 du noad 1 de la figure 7.  In step 382, the contents of the FWDHDR register are analyzed to determine the output port having the largest number. This becomes the current port to process and its number is stored in the register N ~ OUT. Applied to the header of FIG. 8, the register NOUT receives the value 3 corresponding to the output port 3 of the noad 1 of FIG. 7.

Une connexion avec le port de sortie numéro NOUT est établie (étape 383). Puis commence l'analyse de l'en-tête de diffusion qui vise à répartir les unités d'en-tête parmi les ports de sortie impliqués. Lors de

Figure img00420001

l'étape 384, l'unité d'en-tête suivante est stockée dans le registre HDR et un compteur spécifique à la branche, appelé"cpteurjbranche", est initialisé à la valeur"1". Appliqué à l'en-tête de la figure 8, le registre HDR reçoit l'unité d'en-tête HDRunit (l) (référencée 332) qui possède la valeur FFFD en hexadécimal. A connection with the output port number NOUT is established (step 383). Then begins the analysis of the broadcast header which aims to distribute the header units among the output ports involved. During
Figure img00420001

At step 384, the next header unit is stored in the HDR register and a branch-specific counter, called "branch_counter", is initialized to the value "1". Applied to the header of FIG. 8, the HDR register receives the header unit HDRunit (1) (referenced 332) which has the value FFFD in hexadecimal.

Si le registre HDR contient la valeur FFFD en hexadécimal (réponse"oui"à la question de l'étape 385), alors le compteur spécifique à la branche (cpteurbranche) est décrémenté d'une unité (ce qui indique une fin de branche). Sinon (réponse"non"à la question de l'étape 385), le compteur spécifique à la branche est incrémenté de k-1, avec k le nombre de bits à 1 dans le registre HDR (k indiquant un nombre de ports de sortie impliqués). Puis, le contenu du registre HDR est envoyé au port de sortie numéro NOUT (étape 388). Appliqué à l'en-tête de la figure 8, le test de l'étape 385 est positif (une extrémité de branche est atteinte) et la valeur FFFD contenue dans le registre HDR est envoyée au port de sortie 3 du nced 1 de la figure 7.  If the HDR register contains the FFFD value in hexadecimal (answer "yes" to the question of step 385), then the branch-specific counter (branchcounter) is decremented by one unit (which indicates an end of branch) . If not (answer "no" to the question of step 385), the branch-specific counter is incremented by k-1, with k the number of bits at 1 in the HDR register (k indicating a number of output ports involved). Then, the content of the HDR register is sent to the output port number NOUT (step 388). Applied to the header of FIG. 8, the test of step 385 is positive (a branch end is reached) and the value FFFD contained in the HDR register is sent to the output port 3 of the nced 1 of the figure 7.

Si le compteur spécifique à la branche n'est pas égal à zéro (réponse "nod'à la question de l'étape 389), le registre HDR reçoit l'unité d'en-tête suivante (étape 391), et on reprend au niveau de l'étape 385. Ceci permet de continuer à envoyer vers le port de sortie numéro NOUT les unités d'entête décrivant la partie de l'arbre de recouvrement située en aval de ce port de sortie.  If the branch-specific counter is not equal to zero ("nod" response to the question of step 389), the HDR register receives the next header unit (step 391), and resumes in step 385. This makes it possible to continue to send to the output port number NOUT the header units describing the portion of the recovery tree located downstream of this output port.

<Desc/Clms Page number 43> <Desc / Clms Page number 43>

Si le compteur spécifique à la branche est égal à zéro (réponse "oui" à la question de l'étape 389), ceci signifie que la partie de l'en-tête concernant 1 le port de sortie numéro NOUT a été entièrement extraite et envoyée à ce port de sortie. On peut alors traiter le port de sortie ayant le plus grand numéro de port suivant. Pour cela, le registre NOUT reçoit ce plus grand numéro de port suivant, d'après l'unité d'en-tête contenue dans le registre FWD~HDR (étape 390).  If the branch-specific counter is equal to zero ("yes" answer to the question of step 389), this means that the part of the header relating to the output port number NOUT has been completely extracted and sent to this output port. The output port with the next largest port number can then be processed. For this, the register NOUT receives this next largest port number, according to the header unit contained in the register FWD ~ HDR (step 390).

Si tous les ports de sortie indiqués par l'unité d'en-tête contenue dans le registre FWDHDR n'ont pas été traités (réponse"non"à la question de l'étape 392), on reprend au niveau de l'étape 383, de façon à envoyer au port de sortie impliqué suivant la partie de l'en-tête qui le concerne. Sinon, le processus est terminé (étape 393). Appliqué à l'en-tête de la figure 8, le registre NOUT reçoit la valeur 1 (indiquant que le prochain port de sortie traité du n#ud 1 est le port de sortie numéro 1).  If all the output ports indicated by the header unit contained in the register FWDHDR have not been processed (answer "no" to the question of step 392), it is resumed at step 383, so as to send to the output port involved according to the part of the header which concerns it. Otherwise, the process is complete (step 393). Applied to the header of FIG. 8, the NOUT register receives the value 1 (indicating that the next processed output port of the node 1 is the output port number 1).

On présente maintenant, en relation avec la figure 14, un organigramme décrivant un mode de réalisation particulier d'un algorithme de construction d'un en-têts de diffusion selon la présente invention.  Referring now to FIG. 14, there is shown a flowchart describing a particular embodiment of an algorithm for constructing a broadcast header according to the present invention.

Cet algorithme permet de construire des en-têtes de diffusion (dynamique) tels que ceux décrits à titre d'exemple sur les figures 8 et 9. Il est exécuté par l'unité centrale de traitement (CPU) 93 (fig. 1) du noad racine (nced 0 (320) dans l'exemple de la figure 7).

Figure img00430001

ti On utilise ci-après les variables"ndcourant"et"ndracine", désignant respectivement un noad courant et un ncad racine. Ces variables sont toutes les deux de type"TYPENUD". Une variable "TYPENJD"est une zone mémoire structurée comprenant les sous- champs suivants : "parent", qui est un pointeur vers une variable TYPENJD pour indiquer le noad parent ;
Figure img00430002

"regcntête", qui est un pointeur vers un registre 16 bits HDRUNIT d'une unité d'en-tête ; This algorithm makes it possible to construct distribution (dynamic) headers such as those described by way of example in FIGS. 8 and 9. It is executed by the central processing unit (CPU) 93 (FIG. root noad (nced 0 (320) in the example of Figure 7).
Figure img00430001

The variables "ndcurrent" and "ndracine" are used hereinafter, respectively denoting a current noad and a root ncad. These variables are both of type "TYPENUD". A "TYPENJD" variable is a structured memory area consisting of the following subfields: "parent", which is a pointer to a TYPENJD variable to indicate the parent noad;
Figure img00430002

"regcntête", which is a pointer to a 16-bit HDRUNIT register of a header unit;

<Desc/Clms Page number 44> <Desc / Clms Page number 44>

Figure img00440001

"port [0.. 15]", qui est une matrice de 16 pointeurs chacun vers une variable TYPENJD qui peut être soit un nond parent soit un nred enfant connecté au port i, i correspondant au rang du port. Si port [i] est vide, il décrit un port non connecté ; "pteurj)port", qui est un pointeur vers une variable TYPE NOEUD qui est le noad enfant connecté au plus grand port de sortie suivant.
Figure img00440001

"port [0 .. 15]", which is a matrix of 16 pointers each to a variable TYPENJD which can be either a parent nond or a child nred connected to the port i, i corresponding to the rank of the port. If port [i] is empty, it describes an unconnected port; "dj () port", which is a pointer to a TYPE NODE variable that is the child noad connected to the next largest output port.

Si le pointeur est vide, cela signifie qu'il n'y a plus d'autre port de sortie.  If the pointer is empty, it means that there is no other output port.

Le format du registre "HDR~UNIT" correspond à celui des unités d'en-tête HDR~unit (i) décrites en relation avec les figures 5,6, 8 et 9.  The format of the "HDR ~ UNIT" register corresponds to that of the HDR ~ unit (i) header units described in connection with Figures 5, 6, 8 and 9.

La variable"entetsdifï'est un ensemble de registres HDR UNIT.  The variable "entetsdifï" is a set of HDR UNIT registers.

Elle décrit la totalité d'un en-tête de diffusion (dynamique) correspondant à un port de sortie spécifique. It describes the entire (dynamic) broadcast header corresponding to a specific output port.

Lors de l'initialisation (étape 400), la variable TYPENJD de chaque noad de l'arbre de recouvrement est initialisée, avec affectation d'une valeur àchacun des sous-champs décrits ci-dessus.  During initialization (step 400), the variable TYPENJD of each noad of the recovery tree is initialized, with assignment of a value to each of the subfields described above.

Par exemple, si l'on considère le n#ud 1 (321) de la figure 7, la variable TYPE~N#UD est telle que : le sous-camp"parent"indique l'adresse d'un registre TYPE~N#UD correspondant au n#ud 0 (320) ;

Figure img00440002

le sous-champ"regentête"est vide ; le sous-champ"port [0]" indique l'adresse d'un registre TYPE NOEUD correspondant au n#ud 0 (320) ; le sous-champ "port[1]" indique l'adresse d'un registre
Figure img00440003

TYPENJD correspondant au noed 6 (325) ; - le sous-champ "port[3]" indique l'adresse d'un registre TYPENJD correspondant au noad 5 (324) ; les autres sous-champs"port [i]"sont vides ; le sous-champ"pteurport"indique l'adresse d'un registre TYPE~NCEJD correspondant au noad 5 (324). For example, if we consider the node # 1 (321) of FIG. 7, the variable TYPE ~ N # UD is such that: the sub-camp "parent" indicates the address of a register TYPE ~ N #UD corresponding to node 0 (320);
Figure img00440002

the subfield "regentete" is empty; the subfield "port [0]" indicates the address of a register TYPE NODE corresponding to node 0 (320); the subfield "port [1]" indicates the address of a register
Figure img00440003

TYPENJD corresponding to noed 6 (325); the subfield "port [3]" indicates the address of a register TYPENJD corresponding to noad 5 (324); the other subfields "port [i]" are empty; the subfield "portport" indicates the address of a register TYPE ~ NCEJD corresponding to noad 5 (324).

<Desc/Clms Page number 45> <Desc / Clms Page number 45>

Puis, le nmd exécutant l'algorithme est désigné en tant que racine de l'arbre de recouvrement. La variable"ndracine"identifie ce nond, par exemple le n#ud 0 (320) sur la figure 7.  Then, the nmd running the algorithm is referred to as the root of the recovery tree. The variable "ndracine" identifies this nond, for example the node 0 (320) in Figure 7.

L'étape 401 indique le début de la construction d'un nouvel en-tête de diffusion, par exemple celui décrit sur la figure 9 qui correspond au port de sortie 1 du nond 0 (320). La variable ndcourant prend la valeur du nond pointé par"ndjracine. pteurport" (c'est-à-dire pointé par le pointeur pteur-port compris dans la variable TYPE NOEUD associée au ncnd racine). Dans l'exemple précité, il s'agit du ncad 2 (322) de la figure 7. Par ailleurs, la première unité d'en-tête HDRunit doit être allouée, en fonction du niveau du nond courant ("nd~courant") dans l'arbre de recouvrement.  Step 401 indicates the beginning of the construction of a new broadcast header, for example that described in FIG. 9 which corresponds to the output port 1 of the node 0 (320). The variable ndcurrent takes the value of the nond pointed to by "ndjracine .portport" (that is to say pointed by the pointer port-port included in the variable TYPE NODE associated with the ncnd root). In the above example, it is ncad 2 (322) of FIG. 7. Furthermore, the first header unit HDRunit must be allocated, depending on the level of the current nond ("nd ~ current" ) in the cover shaft.

Par exemple, le champ 334 de la figure 9 correspond au ncod 2 (322) de la figure 7. Enfin, la première unité d'en-tête constitue la tête du registre "cntêtejdin". For example, the field 334 of Figure 9 corresponds to the ncod 2 (322) of Figure 7. Finally, the first header unit is the head of the register "cntetejdin".

L'étape 403 consiste à vérifier la valeur de "nd~courant.pteur~port" (c'est-à-dire la valeur du pointeur pteur-port compris dans la variable TYPENJD associée au ncnd courant). Si cette valeur est vide, cela signifie que toutes les branches en aval de ce ncod ont été traitées et le nouveau nond courant est le ncnd parent du noad courant précédent (étape 409). Puis, "nd~courant.pteur~port" est mis à jour avec le plus grand port de sortie suivant.  Step 403 consists in checking the value of "nd ~ current.ptor ~ port" (that is to say the value of the port-port pointer included in the variable TYPENJD associated with the current ncnd). If this value is empty, this means that all branches downstream of this ncod have been processed and the new current nond is the ncnd parent of the previous current noad (step 409). Then, "nd ~ current.ptor ~ port" is updated with the next largest output port.

L'étape 402 consiste à vérifier si le nod courant est le nood racine.  Step 402 is to check if the current nod is the root nood.

Dans la négative, on revient à l'étape 403. Sinon, un en-tete de diffusion est terminé pour un port de sortie correspondant. L'en-tête de diffusion est stocké, pour une transmission ultérieure, avec son numéro de port de sortie correspondant (étape 411). If not, return to step 403. Otherwise, a broadcast header is terminated for a corresponding output port. The broadcast header is stored, for subsequent transmission, with its corresponding output port number (step 411).

L'étape 408 consiste à vérifier la valeur du plus grand port de sortie suivant du n#ud courant (qui est ici le ncud racine). Si cette valeur est vide, l'algorithme est terminé (étape 410). Sinon, on réinitialise la variable "entêtediff" (étape 401).  Step 408 is to check the value of the next largest output port of the current node (which here is the root node). If this value is empty, the algorithm is complete (step 410). Otherwise, we reset the variable "stubbed" (step 401).

<Desc/Clms Page number 46> <Desc / Clms Page number 46>

Les étapes 404 à 407 décrivent le processus de traitement d'une branche pour construire l'en-tête de diffusion associé àun port de sortie.  Steps 404 to 407 describe the process of processing a branch to construct the broadcast header associated with an output port.

Lors de l'étape 404, le plus grand port de sortie suivant ("pteurport"suivant) est mis dans"ndcourant. regentête". Puis, une nouvelle initialisation peut être effectuée afin d'explorer la sous-branche correspondant à ce port de sortie. Si le nouveau nood courant (c'est-à-dire le noad suivant connecté à ce port de sortie) est un nood feuille, alors le test de l'étape 405 est positif, sinon le processus reprend à l'étape 403.  In step 404, the next largest output port ("next port") is set to "ndcurrent. Then, a new initialization can be performed to explore the sub-branch corresponding to this output port. If the new current nood (i.e. the next noad connected to this output port) is a leaf nood, then the test of step 405 is positive, otherwise the process resumes at step 403.

Si le nouveau ncod courant est un ncud feuille, "ndcourant. regentête" reçoit la valeur de fin de branche (FFFD en hexadécimal par exemple). Puis, le nouveau nood courant est le nond parent du ncad courant précédent et on passe au port de sortie suivant (plus grand numéro suivant) du nouveau nced courant (étape 407).  If the new current node is a leaf node, "ndcurrent, regentete" receives the end of branch value (FFFD in hexadecimal for example). Then, the new current nood is the parent node of the previous current ncad and we move to the next output port (next largest number) of the new current ncad (step 407).

Après l'exécution de cet algorithme, un en-tête de diffusion pour chaque port de sortie est stocké dans la mémoire RAM. Chaque en-tête de diffusion peut être complété avec une unité d'en-tête de remplissage (padding), afin de comporter un nombre pair d'unités d'en-tête.  After running this algorithm, a broadcast header for each output port is stored in the RAM. Each broadcast header may be completed with a padding header unit to include an even number of header units.

Claims (15)

REVENDICATIONS 1. Procédé de diffusion de données utiles le long d'au moins une partie d'un arbre de recouvrement d'un réseau de commutation par paquets, l'arbre de recouvrement comprenant une pluralité de noads reliés entre eux par des liens, chaque lien reliant un port de sortie, dit port de sortie impliqué, d'un premier nred à un port d'entrée, dit port d'entrée impliqué, d'un second noad, les données utiles étant contenues dans le corps d'au moins un paquet de diffusion comprenant un en-tête de diffusion et un corps, caractérisé en ce que ledit procédé comprend : une phase de construction d'au moins un paquet de diffusion dont l'en-tête de diffusion contient une description d'au moins une partie de l'arbre de recouvrement ; une phase de propagation de chaque paquet de diffusion, en fonction de ladite description d'au moins une partie de l'arbre de recouvrement contenue dans l'en-tête de diffusion.  CLAIMS 1. A method of broadcasting useful data along at least part of an overlay tree of a packet switching network, the overlay tree comprising a plurality of noads interconnected by links, each link connecting an output port, said output port involved, a first nred to an input port, said input port involved, a second noad, the useful data being contained in the body of at least a broadcast packet comprising a broadcast header and a body, characterized in that said method comprises: a phase of constructing at least one broadcast packet whose broadcast header contains a description of at least one part of the cover shaft; a propagation phase of each broadcast packet, according to said description of at least a portion of the overlay tree contained in the broadcast header. 2. Procédé selon la revendication 1, caractérisé en ce que ladite phase de propagation comprend les étapes suivantes, mises en ouvre dans chaque nred de ladite au moins une partie de l'arbre de recouvrement : analyse du contenu de l'enrtête de diffusion, afin de déterminer si le noad est un noad final ou intermédiaire ; si le nred est un noad intermédiaire : * analyse du contenu de l'en-tête de diffusion, afin de déterminer le ou les port (s) de sortie impliqué (s) du noed ; * établissement d'une connexion entre le port d'entrée impliqué et chaque port de sortie impliqué du nond ; * transmission, sur chaque connexion, d'une part d'au moins une partie de l'en-tête de diffusion et d'autre part du corps du paquet de diffusion. 2. Method according to claim 1, characterized in that said propagation phase comprises the following steps, implemented in each nred of said at least a part of the recovery tree: analysis of the content of the broadcast header, to determine if the noad is a final or intermediate noad; if the nred is an intermediate noad: * analysis of the content of the broadcast header, in order to determine the output port (s) involved in the noed; * establishing a connection between the input port involved and each output port involved in the nond; * transmission, on each connection, on the one hand at least a part of the broadcast header and secondly the body of the broadcast packet. 3. Procédé selon la revendication 2, caractérisé en ce que ladite phase 3. Method according to claim 2, characterized in that said phase
Figure img00470001
Figure img00470001
de propagation comprend en outre l'étape suivante, mise en ouvre dans chaque need de ladite au moins une partie de l'arbre de recouvrement :  propagation method further comprises the following step, implemented in each need of said at least part of the recovery tree: <Desc/Clms Page number 48><Desc / Clms Page number 48> traitement des données utiles contenues dans le corps dudit paquet de diffusion, que le nond soit un ncnd final ou un nord intermédiaire.  processing useful data contained in the body of said broadcast packet, whether the nond is a final ncnd or an intermediate north.
4. Procédé selon l'une quelconque des revendications 1 à 3, l'arbre de recouvrement comprenant un nond source, caractérisé en ce que chaque au moins une partie de l'arbre de recouvrement est une branche de l'arbre de recouvrement située en aval d'un port de sortie impliqué dudit ncnd source. 4. Method according to any one of claims 1 to 3, the cover shaft comprising a nond source, characterized in that each at least a portion of the cover shaft is a branch of the cover shaft located in downstream of an output port involved said ncnd source. 5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que ladite phase de propagation comprend en outre l'étape suivante, mise en ouvre dans chaque nord de ladite au moins une partie de l'arbre de recouvrement : si le ncad est un ncnd intermédiaire : * calcul, pour chaque port de sortie impliqué du nond, d'un en-tête de diffusion modifié, contenant une description de la branche de l'arbre de recouvrement située en aval du port de sortie impliqué du nond, et en ce que, lors de ladite étape de transmission, sur chaque connexion, on transmet d'une part ledit en-tête de diffusion modifié et d'autre part le corps du paquet de diffusion. 5. Method according to any one of claims 1 to 4, characterized in that said propagation phase further comprises the following step, implemented in each north of said at least a portion of the cover shaft: the ncad is an intermediate ncnd: * computes, for each output port involved in the nond, a modified broadcast header, containing a description of the branch of the overlay tree located downstream of the output port involved in the nond, and in that, in said transmission step, on each connection is transmitted on the one hand said modified broadcast header and on the other hand the body of the broadcast packet. 6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que l'en-tête de diffusion, contenant une description d'au moins une partie de l'arbre de recouvrement, comprend une pluralité d'unités d'en-tête hiérarchisées permettant une description globale en gigogne, avec une structure élémentaire comprenant : un premier lot d'au moins une unité d'en-tête, contenant une indication du ou des port (s) de sortie impliqué (s) d'un ncnd de rang donné de ladite au moins une partie de l'arbre de recouvrement, un second lot d'au moins une unité d'en-tête, comprenant, pour chaque port de sortie indiqué dans ledit premier lot, un sous-lot d'au moins une unité d'en-tête contenant une description de la branche de 6. Method according to any one of claims 1 to 5, characterized in that the broadcast header, containing a description of at least a portion of the recovery tree, comprises a plurality of units of hierarchical header for a global trunked description, with a basic structure comprising: a first batch of at least one header unit, containing an indication of the output port (s) involved a ncnd of a given rank of said at least a portion of the overlay tree, a second batch of at least one header unit comprising, for each output port indicated in said first batch, a sub-lot of at least one header unit containing a description of the branch of <Desc/Clms Page number 49><Desc / Clms Page number 49> l'arbre de recouvrement située en aval dudit port de sortie indiqué dans ledit premier lot, et en ce que chaque sous-lot d'au moins une unité den-tête peut lui-même posséder ladite structure élémentaire, si la branche de l'arbre de recouvrement située en aval du port de sortie correspondant indiqué dans le premier lot ne comprend pas uniquement un noad final de l'arbre de recouvrement.  the cover shaft located downstream of said output port indicated in said first batch, and in that each sub-lot of at least one head unit can itself have said elementary structure, if the branch of the The recovery shaft located downstream of the corresponding output port indicated in the first batch does not only include a final noad of the cover shaft. 7. Procédé selon la revendication 6, caractérisé en ce que, lorsque le second lot d'au moins une unité d'en-tête comprend plusieurs sous-lots, lesdits sous-lots apparaissent dans un ordre prédéterminé lié aux numéros des ports de sortie correspondants indiqués dans le premier lot7. Method according to claim 6, characterized in that, when the second batch of at least one header unit comprises several sublots, said sub-batches appear in a predetermined order related to the numbers of the output ports. corresponding in the first batch 8. Procédé selon la revendication 5 et l'une quelconque des revendications 6 et 7, caractérisé en ce que, pour chaque port de sortie impliqué d'un ncnd intermédiaire de rang N, l'en-tête de diffusion modifié : comprend le sous-lot d'au moins une unité d'en-tête, compris dans l'en- tête de diffusion provenant du nood de rang N-l situé en amont dudit nond intermédiaire considéré de rang N, et contenant la description de la branche de l'arbre de recouvrement située en aval dudit port de sortie impliqué du noad intermédiaire considéré ; ne comprend pas le premier lot d'au moins une unité d'en-tête, ni le (s) éventuel (s) autre (s) sous-lot (s) d'au moins une unité d'en-tête, compris dans l'en-tête de diffusion provenant du nced de rang N-l situé en amont dudit ncnd intermédiaire de rang N. 8. The method of claim 5 and any one of claims 6 and 7, characterized in that, for each output port involved an intermediate Ncnd rank N, the modified broadcast header: understands the sub -lot of at least one header unit, included in the broadcast head from rank nood Nl upstream of said intermediate node considered rank N, and containing the description of the branch of the covering shaft located downstream of said involved output port of the intermediate noad considered; does not include the first batch of at least one header unit, or any other sub-lot (s) of at least one header unit, inclusive in the broadcast header from the nced of rank N1 located upstream of said intermediate ncnd of rank N. 9. Procédé selon l'une quelconque des revendications 5 à 8, caractérisé en ce que, lorsque ladite branche de l'arbre de recouvrement située en aval du port de sortie impliqué du noed ne comprend qu'un noad final de l'arbre de recouvrement, la description correspondante comprend un indicateur de fin de branche. 9. Method according to any one of claims 5 to 8, characterized in that, when said branch of the cover shaft located downstream of the output port involved the noed comprises only a final noad of the tree of recovery, the corresponding description includes an end-of-branch indicator. 10. Procédé selon l'une quelconque des revendications 6 à 9, caractérisé en ce que l'en-tête de diffusion comprend, outre ladite pluralité d'unités d'en-tête hiérarchisées permettant une description globale en gigogne, au The method according to any one of claims 6 to 9, characterized in that the broadcast header comprises, in addition to said plurality of hierarchical header units allowing an overall description in a trundle, to <Desc/Clms Page number 50><Desc / Clms Page number 50> moins une unité d'en-tête de remplissage, de façon que ledit en-tête de diffusion comprenne au total un nombre prédéterminé d'unités d'en-tête.  minus one filler header unit, so that said broadcast header comprises a total of a predetermined number of header units. 11. Appareil de commutation de paquets de données, du type compris dans un ncnd et pouvant participer à la mise en ouvre d'un procédé de diffusion de données utiles le long d'au moins une partie d'un arbre de recouvrement d'un réseau de commutation par paquets, l'arbre de recouvrement comprenant une pluralité de nords reliés entre eux deux à deux par des liens, les données utiles étant contenues dans le corps d'au moins un paquet de diffusion comprenant un en-tête de diffusion et un corps, ledit appareil de commutation comprenant des moyens d'analyse de l'en-tête de diffusion de chaque paquet de diffusion reçu, caractérisé en ce que lesdits moyens d'analyse de l'en-tête de diffusion de chaque paquet de diffusion reçu comprennent des premiers moyens de détection, permettant de détecter s'il s'agit d'un paquet de diffusion dynamique, dont l'en-tête contient une description d'au moins une partie de l'arbre de recouvrement ; et en ce que ledit appareil de commutation comprend en outre des premiers moyens de propagation de chaque paquet de diffusion dynamique reçu et détecté, en fonction de la description d'au moins une partie de l'arbre de recouvrement contenue dans l'en-tête de diffusion dudit paquet de diffusion dynamique reçu.  11. A data packet switching apparatus of the type included in an ncnd and capable of participating in the implementation of a method for broadcasting useful data along at least a portion of an overlay tree of a packet switching network, the overlay tree comprising a plurality of nords connected together by two links, the useful data being contained in the body of at least one broadcast packet comprising a broadcast header and a body, said switching apparatus comprising means for analyzing the broadcast header of each received broadcast packet, characterized in that said means for analyzing the broadcast header of each broadcast packet received comprises first detection means, for detecting whether it is a dynamic broadcast packet, whose header contains a description of at least a portion of the recovery tree; and in that said switching apparatus further comprises first propagation means of each received and detected dynamic broadcast packet, according to the description of at least a portion of the overlay tree contained in the header of broadcasting said received dynamic broadcast packet. 12. Appareil selon la revendication 11, caractérisé en ce que lesdits moyens d'analyse de l'en-tête de diffusion de chaque paquet de diffusion reçu comprennent en outre des seconds moyens de détection, permettant de détecter s'il s'agit d'un paquet de diffusion statique, dont l'en-tête contient un indicateur de paquet de diffusion statique ; et en ce que ledit appareil de commutation comprend en outre des seconds moyens de propagation de chaque paquet de diffusion statique reçu et détecté, selon un paramétrage prédéterminé dudit appareil de commutation en fonction de l'arbre de recouvrement. 12. Apparatus according to claim 11, characterized in that said means for analyzing the broadcast header of each received broadcast packet further comprises second detection means, for detecting whether it is an object of the invention. a static broadcast packet, the header of which contains a static broadcast packet indicator; and in that said switching apparatus further comprises second means for propagating each received and detected static scattering packet according to a predetermined parameterization of said switching apparatus as a function of the spanning tree. <Desc/Clms Page number 51> <Desc / Clms Page number 51> 13. Programme d'ordinateur, caractérisé en ce que ledit programme comprend des séquences d'instructions adaptées à la mise en ouvre d'un procédé selon l'une quelconque des revendications 1 à 10 lorsque ledit programme est exécuté sur un ordinateur. 13. Computer program, characterized in that said program comprises sequences of instructions adapted to the implementation of a method according to any one of claims 1 to 10 when said program is run on a computer. 14. Produit programme d'ordinateur, adapté à la diffusion de données utiles le long d'au moins une partie d'un arbre de recouvrement d'un réseau de commutation par paquets, l'arbre de recouvrement comprenant une pluralité de noads reliés entre eux deux à deux par des liens, les données utiles étant contenues dans le corps d'au moins un paquet de diffusion comprenant un en-tête de diffusion et un corps, ledit produit programme d'ordinateur comprenant des instructions de code de programme enregistré sur un support utilisable dans un ordinateur, comprenant : des moyens de programmation lisibles par ordinateur pour effectuer une phase de construction d'au moins un paquet de diffusion dont l'en-tête de diffusion contient une description d'au moins une partie de l'arbre de recouvrement ; des moyens de programmation lisibles par ordinateur pour effectuer une phase de propagation de chaque paquet de diffusion, en fonction de la description d'au moins une partie de l'arbre de recouvrement contenue dans l'en-tête de diffusion. A computer program product adapted to broadcast useful data along at least a portion of an overlay tree of a packet switching network, the overlay shaft comprising a plurality of noads connected between them in pairs by links, the useful data being contained in the body of at least one broadcast packet comprising a broadcast header and a body, said computer program product including program code instructions recorded on computer usable medium, comprising: computer readable programming means for performing a construction phase of at least one broadcast packet whose broadcast header contains a description of at least a portion of the tree cover; computer readable programming means for performing a propagation phase of each broadcast packet, according to the description of at least a portion of the overlay tree contained in the broadcast header. 15. Paquet de diffusion, du type utilisé pour diffuser des données utiles le long d'au moins une partie d'un arbre de recouvrement d'un réseau de commutation par paquets, l'arbre de recouvrement comprenant une pluralité de noads reliés entre eux deux à deux par des liens, ledit paquet de diffusion comprenant un en-tête de diffusion et un corps contenant les données utiles, caractérisé en ce que l'en-tête de diffusion contient une description d'au moins une partie de l'arbre de recouvrement, en fonction de laquelle le paquet de diffusion est propagé.15. Broadcast packet, of the type used to broadcast useful data along at least a portion of a lap tree of a packet switching network, the overlay tree comprising a plurality of interconnected noads. two by two by links, said broadcast packet comprising a broadcast header and a body containing the payload, characterized in that the broadcast header contains a description of at least a portion of the tree recovery, depending on which the broadcast packet is propagated.
FR0108228A 2001-06-21 2001-06-21 METHOD FOR DIFFUSION OF USEFUL DATA WITHIN A SWITCHED NETWORK, BASED ON THE USE OF DYNAMIC DIFFUSION PACKETS Expired - Fee Related FR2826535B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR0108228A FR2826535B1 (en) 2001-06-21 2001-06-21 METHOD FOR DIFFUSION OF USEFUL DATA WITHIN A SWITCHED NETWORK, BASED ON THE USE OF DYNAMIC DIFFUSION PACKETS

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0108228A FR2826535B1 (en) 2001-06-21 2001-06-21 METHOD FOR DIFFUSION OF USEFUL DATA WITHIN A SWITCHED NETWORK, BASED ON THE USE OF DYNAMIC DIFFUSION PACKETS

Publications (2)

Publication Number Publication Date
FR2826535A1 true FR2826535A1 (en) 2002-12-27
FR2826535B1 FR2826535B1 (en) 2005-07-29

Family

ID=8864636

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0108228A Expired - Fee Related FR2826535B1 (en) 2001-06-21 2001-06-21 METHOD FOR DIFFUSION OF USEFUL DATA WITHIN A SWITCHED NETWORK, BASED ON THE USE OF DYNAMIC DIFFUSION PACKETS

Country Status (1)

Country Link
FR (1) FR2826535B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000007333A1 (en) * 1998-07-28 2000-02-10 Siemens Aktiengesellschaft Method for transmitting data packets to a plurality of receivers in a heterogeneous communications network

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000007333A1 (en) * 1998-07-28 2000-02-10 Siemens Aktiengesellschaft Method for transmitting data packets to a plurality of receivers in a heterogeneous communications network

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
YUM T-S P ET AL: "Multicast source routing in packet-switched networks", NETWORKING IN THE NINETIES. BAL HARBOUR, APR. 7 - 11, 1991, PROCEEDINGS OF THE ANNUAL JOINT CONFERENCE OF THE COMPUTER AND COMMUNICATIONS SOCIETIES. (INFOCOM), NEW YORK, IEEE, US, vol. 2 CONF. 10, 7 April 1991 (1991-04-07), pages 1284 - 1288, XP010042520, ISBN: 0-87942-694-2 *

Also Published As

Publication number Publication date
FR2826535B1 (en) 2005-07-29

Similar Documents

Publication Publication Date Title
FR2820921A1 (en) DEVICE AND METHOD FOR TRANSMISSION IN A SWITCH
EP0349371B1 (en) Computer system having a central interconnection
EP1701274B1 (en) Communication node architecture in a globaly asynchronous network on-chip system
EP0451029B1 (en) Connexion circuit switch for through-connecting frames in an asynchronous digital network
EP0639013B1 (en) Method and device for the analysis of data structure information
FR2883116A1 (en) GLOBALLY ASYNCHRONOUS COMMUNICATION ARCHITECTURE FOR CHIP SYSTEM.
EP0296928A1 (en) Equipment for restoration and multiplexing of networks from different sources made up from a variable number of fixed lenght packets
FR2824434A1 (en) Digital packet switched network broadcasting nodes/links having nodes broadcasting simultaneously several links and recovery path calculation minimising links per node.
EP1536311A1 (en) Modular cryptographic system with high flow rate
CA2006831C (en) System with a single hdlc circuit and a conversion buffer memory for transmitting hdlc frames over a pcm channel
FR2804812A1 (en) METHOD AND DEVICE FOR COMMUNICATION BETWEEN A FIRST AND A SECOND NETWORK
EP0920157A1 (en) Device for managing a shared buffer memory
FR2642245A1 (en) SYSTEM FOR RECEIVING AND PROCESSING HDLC FRAMES TRANSMITTED ON TIME DIVISION MULTIPLEXING MIC MULTIVOIC LINK, IN PARTICULAR FOR A DATA SWITCH
EP0340841B1 (en) Cross-point element between two data highways
EP1531589B1 (en) System and method for transmission of a message sequence in an interconnection network
FR2939992A1 (en) METHOD FOR BALANCING LATENCY IN A COMMUNICATION SHAFT, DEVICE, COMPUTER PROGRAM PRODUCT, AND CORRESPONDING STORAGE MEDIUM
EP0587468A2 (en) Photonic connection network with multicast capability
EP1845456B1 (en) On chip system for Interconnecting external functional blocks comprising a single parametrizable communication protocol
FR2826535A1 (en) Switching network digital packet transmission having communications network branches and descriptor header detailing recover branch path/broadcasting following header description.
WO1999038293A2 (en) System and method for asynchronous switching of composite cells, and corresponding input port and output port modules
FR2827995A1 (en) Method and device for controlling a memory store of type First-In First-Out (FIFO)
FR2820917A1 (en) Method and switching device permitting routing of non-blocking packets at path level following disconnection and reconnection of a communication link using a specific data packet stored in buffer memory as a restart packet
WO2020109733A2 (en) Data management for storing data frames in the memory of a data transmission system
FR2827996A1 (en) Method and device for controlling a memory store comprising at least one First-In First-Out (FIFO) memory of variable size
FR2820845A1 (en) METHOD OF OPTIMIZING THE USE OF A STORAGE MEDIA, SWITCHING DEVICE, SIGNAL, AND CORRESPONDING APPLICATIONS

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20140228