Brevet FR2820845A1 — publié le 20020816

Procédé d'optimisation de l'utilisation d'un moyen de stockage, dispositif de commutation, signal, et applications correspondantes. Le domaine de l'invention est celui de la mise en oeuvre de moyens de stockage, notamment, mais non exclusivement, dans le cadre de systèmes de commutation, de transmission et/ou de réception de données numériques. Plus précisément, l'invention concerne l'optimisation de l'utilisation de moyens de stockage alimentés par des données reçues et devant être transférées vers au moins un élément destinataire. Ces moyens de stockage peuvent notamment être des mémoires FIFO ( First In First Out : première entrée, première sortie) associées à des ports d'entrée d'un dispositif de commutation assurant le transfert d'ensembles de données, par exemple sous la forme de paquets. En particulier, de tels moyens de stockage peuvent être mis en oeuvre dans des systèmes de commutation à haut débit, permettant notamment l'échange en temps réel d'images animées, par exemple pour une distribution dans le cadre d'une habitation. La plupart des systèmes de commutation connus comprennent des mémoires tampons, de type FIFO. De manière générale, le rôle de ces mémoires tampons est de conserver temporairement les données reçues, de façon que des moyens de contrôle optimisent la commutation, c'est-à-dire le transfert des données vers le port de sortie idoine. Bien sûr, la capacité de ces mémoires tampon est limitée, et il convient de gérer leur encombrement. Dans le cas contraire, on risque de se heurter à des problèmes d'engorgement, de blocage, ou de pertes de données. Ce problème peut être résolu à l'aide d'un indicateur codé sur un ou plusieurs bits, dit almost full (en français, presque plein ). Lorsque la mémoire tampon présente un taux de remplissage supérieur à un seuil prédéterminé (classiquement de l'ordre de N-x, où N représente la taille de la mémoire tampon et où x la profondeur pipeline), l'indicateur almost full passe à la valeur vraie (1 si l'indicateur"almost full"est un indicateur binaire). Les moyens de gestion de la commutation prennent en compte cette information, pour traiter en priorité la mémoire tampon correspondante. Une fois cette opération effectuée, l'indicateur almost full est repositionné à la valeur"fausse" (0 si l'indicateur"almost full"est binaire). Un autre problème important que l'on rencontre, en particulier dans le cadre de systèmes asynchrones à transfert de données regroupées en paquets (ou en tout autre type d'ensembles de données), est que la commutation doit s'effectuer par paquets. Il convient donc de gérer la réception de ces paquets, et d'en assurer la commutation. Cette gestion est d'autant plus importante dans le cas des systèmes utilisant des moyens de contrôle du transfert de données entre des mémoires de type FIFO et des mémoires de type RAM (en anglais"Random Access Memory") basés sur des techniques de transfert en rafale ("burst"en anglais). Selon ces techniques, le transfert de données débute et s'arrête en fonction de l'indicateur"almost full". Si, de plus, les moyens de contrôle fonctionnent selon un mode de logique pipeline (en français"logique en cascade"), il faut noter que cette logique a besoin d'un nombre prédéterminé de coups d'horloge supplémentaires, ou périodes d'horloge, séquençant le moyen de contrôle et l'échange, pour assurer le transfert. Si la quantité d'informations présente dans la mémoire FIFO est insuffisante, c'est-à-dire si la FIFO présente un taux de remplissage inférieur au seuil prédéterminé N-x, il ne sera pas possible de transférer cette quantité d'information vers la mémoire RAM. Ceci est, bien entendu, particulièrement pénalisant si les informations contenues dans la FIFO correspondent à la fin d'un paquet. En effet, pour que ce paquet soit traité par un autre élément du dispositif de commutation, il faut que la fin du paquet soit transférée de la FIFO vers la mémoire RAM. Cela suppose donc des systèmes relativement complexes de contrôle de la gestion de la commutation. La société ST Microelectronics (marque déposée) a ainsi imaginé un composant d'interface Clou, comprenant des FIFOs, dont la gestion est effectuée de manière classique, c'est-à-dire sans que l'indicateur de taux de remplissage de la FIFO prenne en compte la présence d'un marqueur de fin de paquet ou de fin de message dans la FIFO. La société VLSI Technology (marque déposée) a ensuite imaginé de mettre en oeuvre un procédé de détection d'une fin de paquet dans une FIFO, ainsi que cela est décrit dans le document de brevet américain US 5 860 119. Cependant, on ne connaît pas à ce jour de système permettant de gérer efficacement le transfert des données hors d'un moyen de stockage, de type FIFO par exemple, dans le cadre d'un transfert par paquets. L'invention a notamment pour objectif de pallier ces inconvénients, et donc de fournir un procédé d'optimisation de l'utilisation d'un moyen de stockage, en fonction de son remplissage (aspect contenant ) et des données reçues (aspect contenu ). Plus précisément, un objectif de l'invention est de fournir un tel procédé, qui permette de gérer efficacement la commutation d'ensembles de données, tels que des paquets, reçus de façon asynchrone. Un objectif particulier de l'invention est de fournir un tel procédé, qui n'introduise pas de complexité particulière, notamment en terme de câblage et d'exploitation des moyens (FIFO, processeurs, contrôleurs, commutateurs,...) connus et disponibles. Un autre objectif de l'invention est de fournir un tel procédé, qui n'entraîne pas de surcoût particulier, par rapport aux systèmes de gestion de taux de remplissage d'une FIFO. Ces objectifs, ainsi que d'autres qui apparaîtront par la suite, sont atteints à l'aide d'un procédé d'optimisation de l'utilisation d'un moyen de stockage, mettant en oeuvre au moins un indicateur de remplissage modifié lorsque l'espace de stockage disponible dans ledit moyen de stockage dépasse au moins un seuil prédéterminé. Selon l'invention, ledit indicateur est modifié également lorsque les données contenues dans ledit moyen de stockage remplissent au moins une condition prédéterminée. Ainsi l'invention repose sur une approche tout à fait nouvelle et inventive de la gestion du remplissage d'un moyen de stockage et de la génération d'indicateurs (en anglais"flags") de remplissage correspondants. En effet, l'invention repose notamment sur la génération d'indicateurs de remplissage d'un moyen de stockage, en fonction d'une part de son remplissage (aspect contenant ) et d'autre part des données stockées (aspect contenu ). De manière classique, le taux de remplissage d'un moyen de stockage est évalué à l'aide d'un indicateur pouvant prendre une première valeur"vraie" lorsque le moyen de stockage est sensiblement plein, et une deuxième valeur "fausse"dans le cas contraire. Selon l'invention, on prévoit avantageusement qu'un tel indicateur de remplissage puisse prendre la première valeur"vraie", même lorsque le moyen de stockage est sensiblement vide, s'il contient certaines données prédéterminées. Un tel indicateur de remplissage est ainsi associé, de façon nouvelle et inventive, non seulement à une information relative à l'espace disponible dans le moyen de stockage (aspect"contenant") mais aussi à une information relative aux données contenues dans le moyen de stockage (aspect "contenu"). L'invention s'applique particulièrement aux systèmes utilisant des moyens de contrôle du transfert de données entre des mémoires de type FIFO et des mémoires de type RAM, basés sur des techniques de transfert en rafale (en anglais "burst") et en mode pipeline. Ainsi, même si la quantité d'informations présentes dans une mémoire FIFO est inférieure à un seuil prédéterminé de l'indicateur de remplissage, pour lequel la valeur de l'indicateur est classiquement positionnée à"fausse", il sera possible, selon l'invention, de transférer cette quantité d'information vers un autre moyen de stockage, par exemple une mémoire RAM. On notera que cette caractéristique est particulièrement avantageuse lorsque ces informations sont représentatives de la fin d'un paquet. En d'autres termes, une desdites conditions prédéterminées est avantageusement la réception, dans ledit moyen de stockage, d'une information de fin de transmission d'un ensemble de données. Lesdits ensembles de données peuvent notamment appartenir au groupe comprenant : des paquets ; des unités de protocole ; des trames ; des messages. Comme déjà mentionné, l'invention trouve notamment une application avantageuse dans le cas où ledit moyen de stockage comprend au moins une mémoire de type FIFO, et en particulier lorsque la ou lesdites mémoires FIFO sont associées à des ports d'entrée de moyen de commutation. De façon avantageuse, la modification de ladite valeur entraîne le transfert d'au moins une partie desdites données contenues dans ledit moyen de stockage. Selon un mode de réalisation préférentiel de l'invention, ledit transfert est activé par des moyens de contrôle de logique en cascade (en anglais"pipelined logic"). Avantageusement, dans ce cas, la valeur dudit indicateur est fonction d'un temps de réaction desdits moyens de contrôle. Selon un aspect préférentiel de l'invention, la valeur dudit indicateur est également modifiée lorsque ledit moyen de stockage est presque plein (en anglais"almost full"), de façon connue en soi. Notamment, la valeur dudit indicateur est modifiée lorsque le taux de remplissage dudit moyen de stockage est supérieur à N-x, où : N représente la taille dudit moyen de stockage ; x représente la profondeur du pipeline, ledit transfert reposant sur une logique en cascade. Selon un mode de réalisation avantageux de l'invention, le procédé comprend les étapes suivantes : surveillance du taux de remplissage dudit moyen de stockage ; modification de la valeur dudit indicateur si lesdites données alimentant le moyen de stockage remplissent au moins une condition prédéterminée ; prise en compte de ladite modification de ladite valeur, entraînant un transfert d'au moins une partie des données contenues dans ledit moyen de stockage. Avantageusement, lorsque l'invention est mise en oeuvre dans un dispositif comprenant au moins deux moyens de stockage tels que présentés ci-dessus, tel que, par exemple, un noeud de commutation, le procédé comprend une étape de transfert de données entre deux moyens de stockage selon un mode combinant les techniques de transfert en rafale et en pipeline en fonction la valeur dudit indicateur. L'invention concerne également les dispositifs d'optimisation de l'utilisation d'un moyen de stockage mettant en oeuvre le procédé décrit ci-dessus, ainsi que les dispositifs de commutation comprenant un (ou plusieurs) tel dispositif d'optimisation. L'invention concerne également un signal mis en oeuvre par ce procédé, ce signal étant représentatif d'un indicateur de remplissage d'un moyen de stockage pouvant véhiculer au moins deux valeurs distinctes, au moins une première valeur associée à un état sensiblement vide dudit moyen de stockage, et au moins une deuxième valeur associée à un état sensiblement plein dudit moyen de stockage, et prenant également ladite deuxième valeur lorsque les données contenues dans ledit moyen de stockage remplissent au moins une condition prédéterminée. L'invention concerne encore les noeuds de commutation comprenant au moins deux moyens de stockage et un moyen de transfert entre au moins deux desdits moyens de stockage, et des moyens de génération d'au moins un indicateur de remplissage, et des moyens de modification de la valeur dudit indicateur lorsque l'espace de stockage disponible dans au moins un desdits moyens de stockage dépasse au moins un seuil prédéterminé, et comprenant en outre des moyens de modification de la valeur dudit indicateur lorsque les données contenues dans ledit moyen de stockage remplissent au moins une condition prédéterminée. De façon avantageuse, un tel noeud comprend un moyen de contrôle activant le transfert de données entre deux desdits moyens de stockage selon un mode combinant les techniques de transfert en rafale et en pipeline selon la valeur dudit indicateur. Par ailleurs, bien sûr, un tel noeud comprend avantageusement au moins un dispositif d'optimisation de l'utilisation d'un moyen de stockage tel que décrit cidessus. Enfin, l'invention concerne les différentes applications du procédé, des dispositifs, du signal et du noeud de commutation présentés ci-dessus, et notamment les applications à l'un au moins des domaines appartenant au groupe comprenant : la commutation à haut débit ; la transmission de données numériques ; la réception de données numériques ; les applications audio ; la transmission d'images en temps réel. D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement à la lecture de la description suivante d'un mode de réalisation préférentiel, donné à titre de simple exemple illustratif et non limitatif, et des dessins annexés, parmi lesquels : - la figure 1 présente un synoptique des différentes étapes mises en oeuvre selon l'invention lors de la réception, par un moyen de stockage, de données remplissant au moins une condition prédéterminée ; - la figure 2 illustre un exemple de réalisation d'un dispositif de génération d'un indicateur de remplissage mis en oeuvre selon le procédé de la figure 1 ; - les figures 3 à 9 décrivent un exemple de mise en oeuvre de l'invention dans le cadre d'un système de commutation à haut débit destiné à des applications domestiques. Plus précisément, la figure 3 illustre l'architecture générale d'un tel système de commutation à haut débit. La figure 4 présente les différents dispositifs connectés au commutateur d'un tel système. La figure 5 illustre l'architecture interne du commutateur. Les figures 6 et 7 décrivent plus en détails l'architecture d'un bloc dit 0-FIFO d'un tel commutateur. Enfin les figures 8 et 9 illustrent des éléments particuliers du bloc 0-FIFO. Le principe général de l'invention repose sur la génération d'un indicateur de remplissage d'un moyen de stockage qui soit significatif, simultanément, d'informations relatives au"contenant", et au"contenu"de ce moyen de stockage. On présente, en relation avec la figure 1, les étapes mises en oeuvre selon l'invention lors de la réception, dans un moyen de stockage, de données remplissant une condition prédéterminée. On considère un moyen de stockage de type FIFO (en anglais"First In First Out"), qui est initialement dans un état sensiblement vide. La valeur d'un indicateur de remplissage de cette FIFO est alors positionnée (311) à"fausse". Au fur et à mesure de la réception de données alimentant le moyen de stockage, on surveille (312) le taux de remplissage de la FIFO. Lors de la réception de données par la FIFO, on vérifie (313) en outre si ces données remplissent au moins une condition prédéterminée. Une telle condition, selon un mode de réalisation préféré de l'invention, est vérifiée si les données reçues constituent la fin d'un ensemble de données. Par exemple, lors d'une transmission en mode"burst", les données vérifient une telle condition si elles constituent une fin de paquet. Si les données reçues par la FIFO vérifient la ou les conditions prédéterminées, l'indicateur de remplissage de la FIFO prend alors (314) la valeur "vraie". Dans le cas contraire, on continue à surveiller (312) le taux de remplissage de la FIFO, et, selon un processus classique non illustré sur la figure 1, l'indicateur de remplissage de la FIFO prend la valeur"vraie"lorsque le taux de remplissage de la FIFO est supérieur à un seuil prédéterminé. Lorsque la valeur de l'indicateur de remplissage de la FIFO est positionnée à"vraie", on procède alors au transfert (315) d'au moins une partie des données contenues dans la FIFO vers un élément destinataire. Un tel élément destinataire peut être par exemple une DPRAM (en anglais"Dual Port Random Access Memory"). On présente désormais, en relation avec la figure 2, un exemple de réalisation d'un dispositif de génération d'un indicateur de remplissage d'un moyen de stockage mis en oeuvre selon le procédé de la figure 1. Un tel dispositif comprend un premier module 221 de détection de fin de paquet dans la FIFO. Un tel module 221 permet de détecter la présence de la fin d'un ensemble de données (de type paquet ou message par exemple) dans la FIFO. Un tel module 221 est alimenté par des signaux de contrôle et de données 220, et génère un indicateur 224 Eop~in~fifo, qui prend une première valeur"vraie" lorsque la fin d'un paquet est présente dans la FIFO, et qui prend une seconde valeur"fausse"sinon. Le dispositif de la figure 2 comprend également un deuxième module 222 de contrôle de la FIFO, alimenté par des signaux de contrôle et de données 220, et qui génère un indicateur 223 de remplissage de la FIFO, appelé Almostfull. Un tel indicateur 223 prend au moins deux valeurs distinctes indicatives du taux de remplissage de la FIFO. Par exemple, selon un mode de réalisation préféré de l'invention mettant en oeuvre une logique en cascade (en anglais"pipelined logic"), l'indicateur 223 est un indicateur binaire prenant la valeur"vraie"lorsque le taux de remplissage de la FIFO est supérieur à un seuil prédéterminé (c'est-à-dire lorsque la FIFO est sensiblement pleine) et la valeur"faux"lorsque ce taux est inférieur au seuil prédéterminé (c'est-à-dire lorsque la FIFO n'est pas sensiblement pleine). Ce seuil prédéterminé vaut N-x, où la valeur x représente alors le nombre de cycles d'horloge nécessaires à la logique en cascade pour réagir à un événement donné, et où N est la taille de la FIFO, par exemple N=16. Le dispositif de la figure 2 comprend encore un module 225, alimenté par les indicateurs Eopinfifo 224 et Almostfull 223, et générant un troisième indicateur Almostfull 226. Un tel module 225 réalise donc un OU logique des indicateurs entrant 223 et 224 pour délivrer l'indicateur final de remplissage de la FIFO 226. Un tel indicateur 226 permet ainsi de déclencher le transfert de données contenues dans la FIFO vers un élément destinataire, d'une part lorsque la FIFO est pleine (valeur de l'indicateur Almostfull 223"vraie"), et d'autre part lorsqu'elle contient une fin de paquet (valeur de l'indicateur Eopinfifo 224 "vraie"). Ainsi, selon l'invention, même si la mémoire FIFO n'est pas"presque pleine"et ne contient que l'information représentative d'une fin de paquet, celle-ci pourra néanmoins, et de manière simple, être transférée vers une mémoire RAM par exemple. Le procédé de la figure 1 et le dispositif de la figure 2 trouvent des applications dans de nombreux domaines, et s'appliquent notamment dans le cadre de : la commutation à haut débit ; la transmission et/ou la réception de données numériques ; les applications audio ; la transmission d'images en temps réel. Un domaine d'application préférentiel de l'invention est celui des applications domestiques pour les transferts à haut débit, mais il est bien entendu que l'invention pourra être mise en oeuvre dans tout système nécessitant le transfert d'informations, et notamment le transfert de paquets selon un mode pipeline. Nous décrirons par la suite un exemple de système mettant en oeuvre l'invention, utilisé pour interconnecter une pluralité de dispositifs audio, vidéo, ou pour transférer des informations du type des informations transférées entre un ordinateur et une imprimante, un scanner ou un appareil photo numérique. L'invention s'applique bien sûr également à tout autre type de système dans lequel il est avantageux d'optimiser le remplissage d'un moyen de stockage, et le transfert de données correspondant de ce moyen de stockage vers un élément destinataire. On a déjà développé les normes IEEE 1394 et IEEE 1355 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 à paquets commutés 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. La figure 3 présente un synoptique d'un noeud de commutation 90 connecté à deux bus de communication série conformes aux normes IEEE 1394 et IEEE1355. Le noeud représenté à la figure 3 est également connecté à un ou plusieurs autres noeuds de commutation du réseau commuté auquel il appartient. Dans le mode de réalisation représenté sur la figure 3, 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. Un noeud 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 lui-même constituer ou comprendre le dispositif de commutation 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. 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 norme 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 norme IEEE 1355 ; - des paquets stream (isochrones) du type conforme à la norme IEEE 1355. 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. 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. Le cheminement de tels paquets, depuis le moyen de stockage 95 jusqu'à leur transmission par le noeud 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. 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. 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. 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). 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 oeuvre, par exemple, des fonctions de traitement de données. 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). 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 luimê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. Comme représenté sur la figure 1, le dispositif 90 comporte également une interface de bus 102 qui peut être similaire à l'interface de bus 101 permettant ainsi à l'appareil de traitement de données ou périphérique 92 d'accéder au dispositif de communication. 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 norme 1394. Il est bien entendu possible d'utiliser un adaptateur 102 spécifique à l'appareil de traitement de données que l'on souhaite y connecter. L'adaptateur 102 comprend essentiellement un composant d'interface similaire au composant d'interface de bus 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. Il en est de même pour l'ensemble des éléments CPU 93, RAM 95 et ROM 94. Comme représenté sur la figure 3, le noeud selon l'invention comporte également deux moyens d'interfaçage 103 et 104. Le moyen 103 est destiné à assurer l'interface entre le noeud 90 et le bus de communication série prévu pour fonctionner selon la norme IEEE 1394 auquel est rattaché ledit noeud. 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 TSB12LV01A 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. 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. 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 3. Sur chaque bus de communication série du réseau, l'un des noeuds est appelé"Maître de cycle" ("Cycle Master"en terminologie anglo-saxonne) et le noeud"Maître de cycle"du bus"racine"est appelé"Maître de cycle du réseau" ("Net Cycle Master"en terminologie anglo-saxonne). En outre, tous les noeuds"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"période de référence"ou"cycle". La durée du cycle notée T est égale à un nombre entier nimt 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 noeud"Maître de cycle". La durée du cycle T est ainsi, par exemple, égale à 125 microsecondes. 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. 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. 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. 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 Cl 13 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 CI 13 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). Les initiales FPGA correspondent approximativement en français à "Matrice de Portes Programmables". 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 noeud de commutation du réseau commuté, permettant ainsi au dispositif 90 de communiquer avec un autre noeud de ce réseau. 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. Ce moyen 105 met en oeuvre 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. 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. 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". 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". 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. Ces zones mémoires comportent chacune un pointeur de lecture et un pointeur d'écriture associés. Chaque zone mémoire étant gérée comme une mémoire de type FIFO, son remplissage et son vidage 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. 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. 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. 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. 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. 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 noeud de commutation 90 ou sur le réseau commuté. 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. De même, les paquets de données isochrones, issus du bus de communication auquel est raccordé le noeud 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. Ainsi que représenté sur la figure 3, 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. 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. 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. 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 anglosaxonne sous le terme de"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. 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. 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 carl2. 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. Il comprend deux mémoires FIFO de transmission dites ATF ("Asynchronous Transfer FIFO"en terminologie anglo-saxonne) et ITF ("Isochronous Transfer FIFO"en terminologie anglo-saxonne) et une mémoire FIFO de réception dite GRF ("General Receive FIFO"en terminologie anglosaxonne). Ces mémoires FIFO sont plus largement décrites dans la documentation associée au composant LINK TSB12LV01A. 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 carl3. 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 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 curls. 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 carl6. 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. 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. Un quartz à 49,152Mhz (non représenté) est connecté à la 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. La figure 4 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 3, ainsi que leurs interconnexions. 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. L'interface série 104 comprend notamment : un moyen de contrôle de FIFO 120 décrit précédemment en regard de la figure 3 ; trois FIFOs d'entrée 121 (InPortO~FIFO), 122 (InPortl~FIFO) et 123 (InPort2~FIFO) ; un multiplexeur 127 ; et des FIFO de sorties 124 (OutPortOFIFO), 125 (OutPortlFIFO) et 126 (OutPort2FIFO). Les FIFO 121,122 et123 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. 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. Le bus de données 114, illustré en regard de la figure 3, se décompose en deux bus sur la figure 4 : un bus 44 RxDI[l7 : 0] 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 :0] d'émission des données à partir de l'unité de commutation 108, vers l'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. 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. On rappelle que le moyen de contrôle de flux de données 105 comprend notamment : le module de contrôle 107 ; l'unité de commutation 108 ; et l'unité de mémorisation à double port ou DPRAM 106. Le signal de contrôle Curls, illustré en regard de la figure 3, se décompose en trois signaux sur la figure 4 : un signal de contrôle 51 ; un signal de contrôle 43 TxFIFOfull [O : 2J ; et un signal de contrôle 42 WnTYF7FO//2./. Les signaux de contrôle 51, TxFIFOfull[O : 2J 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. Le traitement des signaux de contrôle dans l'unité de commutation 108 sera décrit ultérieurement en regard de la figure 5. Le signal Ctrl4, illustré en regard de la figure 3, entre l'unité de commutation 108 et le module de contrôle 107, se décompose en au moins quatre signaux sur la figure 4 : - deux signaux de contrôle 53 et 54 ; - un signal de contrôle IntRxTxEOP .: /45a ; - un signal de données 7Y/7.-07 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. Les signaux de contrôle 53, 54 et 45a permettent la gestion de transfert de données 7RxTY/\ ? 7.'û/45b entre la mémoire double port 106 et l'unité de commutation 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. Le bus de données 45b est représenté sur la figure 3 par le bus de données 113. La figure 5 représente un schéma électronique du module de commutation 108 de la figure 2. 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) ; et 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) ;. 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. Les moyens chargés 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. 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 un multiplexeur 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. 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. Les paquets sortants vers le bus 41 sont transmis à travers le bus de transmission TxBus 70. Les paquets sortants vers le bus 45 sont transmis à travers le bus interne de réception RxBus 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 OpenTxTT[O :33Lon 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. 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 T. xF7F 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 OpenTxTs : 3LonRx 39 pour les données issues des FIFO d'entrée 9,10, 11 et 12 ; et 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. 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 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 a~FIPas 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). 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 '2] 83, indiquant le degré de remplissage des FIFO 25,26 et 27. Le moyen d'arbitrage 60 génère un signal de contrôle WriteOFIFF [2 : 0] 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. 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. 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. Les données entrantes en provenance du bus 44 RxDI [17 : 01 ou du bus 45 seront routées vers le commutateur pour aller : vers le bus 41 TxD0[17 :0] soit en direction de l'interface 104 ; ou vers le bus 45 soit en direction de la DPRAM 106. Le traitement des données entrantes en provenance du bus 44 va maintenant être exposé. 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. 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. Les morceaux de paquets sont ensuite stockés : dans la mémoire 15 lorsqu'ils sont adressés au bus de réception 80 RxBus ; et dans la mémoirel6 lorsqu'ils sont adressés au bus de transmission 70 TxBus. 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. 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. 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. Les signaux synchrones sont gérés suivant un certain rythme correspondant à une succession de phases constituées de quatre cycles d'horloge. 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 vers le premier élément (head) de l'une des FIFO dans chacune des RAM 15 et 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. Chaque opération de lecture effective de FIFO (définies lorsque le signal 32 de sortie Rx[iLread est activé durant un cycle et est suivi par un signal d'entrée AllData used [il 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. 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. 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. 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. 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. Le signal 52 de contrôle informe le moyen de modification d'en-tê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. 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 : 2} read 32. 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. 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. 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. Le moyen d'arbitrage 60 gère aussi le contrôle des signaux allRxData~used réception que la prochaine donnée sera lue par une partie correspondante dans l'une des mémoires 15 ou 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. 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 signal 47 70.'27Wû'0.'. 3/ 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. Lorsque la fin du paquet est traitée dans le moyen 18 de modification d'entête, le signal 47 RxEOP[0:2] informe le moyen d'arbitrage 60 de la fin d'une connexion. 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. 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 RO [0 :c De même, le moyen 60 d'arbitrage gère les signaux 70.'2/c6'necJ 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. Les données échangées sur le bus 45 sont gérées : par le moyen 84 de contrôle des FIFO de sortie 0~FIFO 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. Le multiplexeur 28 autorise la sélection d'une FIFO de sortie 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 0FIFO grâce à un signal 85. Par ailleurs, les moyens 130 de contrôle de FIFO d'entrées f7FO contrôlent des opérations d'écriture de la mémoire de stockage 106 vers l'une des quatre FIFO 7F7FIFO d'entrée 9,10, 11 ou 12 grâce aux signaux 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. 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. Le traitement des données entrantes en provenance du bus 45 va maintenant être détaillé. 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. Chaque FIFO d'entrée est connectée à deux bus internes 70 et 80 à travers les registres à trois états 1 à 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 OpenTx7[0 :33LonTx 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 grâce aux signaux OpenTxTs[0 :3]~onRx 39, chacun des registres 5 à 8 étant affecté à une FIFO d'entrée 9 à 12. Les opérations d'écriture sur le bus RxBus 70 sont indépendantes des opérations d'écriture sur le bus TxBus 80. Le moyen d'arbitrage 60 génère aussi des signaux de contrôle aTxData M0 ; / 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. 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[O : 3LRead. Les données d'en-tête 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. 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 7jc/.'JVï : 3 à destination du moyen d'arbitrage 60. Lorsqu'un nouveau paquet est traité dans l'une des FIFO d'entrée 9 à 12, le signal 36 70.'WMO.'37 permet la requête d'une connexion : vers l'un des ports de sortie du moyen d'interfaçage 104 par un bus 41 multiplexé ; ou vers l'une des FIFO de sortie 25,26 ou 27 par un bus 45 multiplexé. Lorsque la fin du paquet est traitée dans l'une des FIFO d'entrée 9 à 12, le signal 36 TxEOP (3P.'3 permet d'informer le moyen d'arbitrage 60 d'une fin de connexion. La figure 6 illustre l'architecture du bloc O-FIFO présenté en figure 5. Le bloc O-FIFO met en oeuvre trois FIFO de sortie 25,26 et 27, associées chacune à un port interne. Une FIFO de sortie O-FIFO sera décrite plus en détails en relation avec la figure 7. Des signaux de contrôle 203 en provenance du bus de réception 80 Rx-bus sont traités par les moyens logiques RXBUS20F 204. Ces moyens logiques ont pour tâche d'adresser l'une des trois FIFO 25 à 27, en fonction des signaux de contrôle 203. La logique RXBUS20F 204 est également en charge de la conversion des données de 16 à 32 bits. Une telle conversion est effectuée en mettant en oeuvre les commandes we-low et we-high des FIFO. Enfin, une fonction supplémentaire de cette logique est de décoder les indicateurs eop/eom (end of packet/end of message pour, en français, fin de paquet/fin de message) en provenance du bus de réception 80 Rx~bus, et de générer la commande we~eop 228 des FIFO. Le multiplexeur 28 alimente le bus intrx~tx~data 45 à l'aide de données en provenance de l'une des FIFO, selon le signal intrx-datarequest [2 : 01 214. Le multiplexeur 28 détecte également la lecture d'une fin de paquet ou d'une fin de message (eop/eom) depuis les FIFO, de manière à générer le signal eop-alout-pins 205. La figure 7 illustre l'architecture d'une FIFO de sortie O~FIFO 25,26 ou 27. Une O~FIFO est réalisée à l'aide de deux compteurs 206 et 207, une mémoire volatile à double port 210 à 212, un générateur d'indicateurs 208 qui sera décrit plus en détails en relation avec la figure 9, et un détecteur de fin de paquet ou de fin de message 209 qui sera décrit plus en détails en relation avec la figure 8. Le compteur en écriture 206 est utilisé pour générer des adresses d'écriture dans les mémoires volatiles à double port 210 à 212, lorsque des données arrivent par le bus de réception 80 Rx~bus. Ce compteur 206 est commandé par le signal de chargement 213 push généré par la logique RXBUS20F 204, ainsi qu'illustré en figure 6. Ce signal de chargement 213 est généré à chaque fois que deux mots de 16 bits et un mot de contrôle de 2 bits sont écrits dans les mémoires volatiles à double port 210 à 212, soit à chaque fois qu'un mot de 34 bits est écrit. Le compteur en lecture 207 est utilisé pour générer des adresses en lecture dans les mémoires volatiles à double port 210 à 212, lorsqu'une demande de données est émise à travers le signal intrx~datarequest 214. Le signal almostfull 226 est obtenu en réalisant un OU logique entre le signal û/MO/M 223 généré par le générateur d'indicateur flag-gen 208 et le signal eop-in i o 224 généré par le module de détection de fin de paquet ~ff top-detect 209, ainsi qu'illustré précédemment en relation avec la figure 2. Les figures 8 et 9 illustrent plus en détails des réalisations possibles du détecteur de fin de paquet eop~detect 209 et du générateur d'indicateur ?aggen 208. Le module eop~detect 209 est un compteur 227 qui comptabilise le nombre d'apparitions d'une fin de paquet ou d'une fin de message (eop/eom) dans la FIFO. Ce compteur 227 est incrémenté lorsque le signal we~eop 228 est validé, c'est-à-dire lors d'une écriture dans la mémoire volatile à double port 212 des bits 32 et 33. Ce compteur 227 est décrémenté lorsque le signal eop~at~out~pins 205 est validé. Un tel signal 205 est généré par le multiplexeur 28 quand une fin de paquet ou de message (eop/eom) est lue depuis la FIFO. De manière évidente, lorsque ces deux conditions sont vérifiées (eop~at~outpins 205 et we~eop 228 validés simultanément), le compteur demeure inchangé. Ainsi qu'illustré en figure 9, le générateur d'indicateur 208 est également un compteur, qui compte le nombre d'ensemble de 34 bits dans la 0FIFO. REVENDICATIONS 1. Procédé d'optimisation de l'utilisation d'un moyen de stockage, mettant en oeuvre au moins un indicateur de remplissage, la valeur dudit indicateur étant modifiée lorsque l'espace de stockage disponible dans ledit moyen de stockage dépasse au moins un seuil prédéterminé, caractérisé en ce que la valeur dudit indicateur est modifiée également lorsque les données contenues dans ledit moyen de stockage remplissent au moins une condition prédéterminée. 2. Procédé selon la revendication 1, caractérisé en ce qu'une desdites conditions prédéterminées est la réception, dans ledit moyen de stockage, d'une information de fin de transmission d'un ensemble de données. 3. Procédé selon la revendication 2, caractérisé en ce que lesdits ensembles de données appartiennent au groupe comprenant : des paquets ; des unités de protocole ; des trames ; des messages. 4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que ledit moyen de stockage comprend au moins une mémoire de type FIFO. 5. Procédé selon la revendication 4, caractérisé en ce que la ou lesdites mémoires FIFO sont associées à des ports d'entrée de moyen de commutation. 6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que la modification de ladite valeur entraîne le transfert d'au moins une partie desdites données contenues dans ledit moyen de stockage. 7. Procédé selon la revendication 6, caractérisé en ce que ledit transfert est activé par des moyens de contrôle de logique en cascade (en anglais"pipelined logic"). 8. Procédé selon la revendication 7, caractérisé en ce que la valeur dudit indicateur est fonction d'un temps de réaction desdits moyens de contrôle. 9. Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce que la valeur dudit indicateur est modifiée lorsque ledit moyen de stockage est presque plein (en anglais"almost full"). 10. Procédé selon la revendication 8, caractérisé en ce que la valeur dudit indicateur est modifiée lorsque le taux de remplissage dudit moyen de stockage est supérieur à N-x, où : N représente la taille dudit moyen de stockage ; x représente la profondeur du pipeline, ledit transfert reposant sur une logique en cascade. 11. Procédé selon l'une quelconque des revendications 1 à 10, caractérisé en ce qu'il comprend les étapes suivantes : surveillance du taux de remplissage dudit moyen de stockage ; modification de la valeur dudit indicateur si lesdites données alimentant le moyen de stockage remplissent au moins une condition prédéterminée ; prise en compte de ladite modification de ladite valeur, entraînant un transfert d'au moins une partie des données contenues dans ledit moyen de stockage. 12. Procédé selon l'une quelconque des revendications 1 à 11, caractérisé en ce que il comprend une étape de transfert de données entre deux moyens de stockage selon un mode combinant les techniques de transfert en rafale et en pipeline en fonction la valeur dudit indicateur. 13. Dispositif d'optimisation de l'utilisation d'un moyen de stockage, comprenant des moyens de génération d'au moins un indicateur de remplissage, et des moyens de modification de la valeur dudit indicateur lorsque l'espace de stockage disponible dans ledit moyen de stockage dépasse au moins un seuil prédéterminé, caractérisé en ce qu'il comprend en outre des moyens de modification de la valeur dudit indicateur lorsque les données contenues dans ledit moyen de stockage remplissent au moins une condition prédéterminée. 14. Dispositif selon la revendication 13, caractérisé en ce qu'une desdites conditions prédéterminées est la réception, dans ledit moyen de stockage, d'une information de fin de transmission d'un ensemble de données. 15. Dispositif selon l'une quelconque des revendications 13 et 14, caractérisé en ce que ledit moyen de stockage comprend au moins une mémoire de type FIFO. 16. Dispositif selon la revendication 15, caractérisé en ce que la ou lesdites mémoires FIFO sont associées à des ports d'entrée de moyen de commutation. 17. Dispositif selon l'une quelconque des revendications 13 à 16, caractérisé en ce qu'il comprend des moyens de contrôle de logique en cascade (en anglais "pipelined logic") assurant le transfert d'au moins une partie desdites données contenues dans ledit moyen de stockage, lorsque ladite valeur est modifiée. 18. Dispositif selon la revendication 17, caractérisé en ce que la valeur dudit indicateur est fonction d'un temps de réaction desdits moyens de contrôle. 19. Dispositif selon l'une quelconque des revendications 13 à 18, caractérisé en ce que la valeur dudit indicateur est modifiée lorsque ledit moyen de stockage est presque plein (en anglais"almost full"). 20. Dispositif de commutation, caractérisé en ce qu'il comprend des moyens d'optimisation de l'utilisation d'un moyen de stockage interne, lesdits moyens d'optimisation comprenant des moyens de génération d'au moins un indicateur de remplissage, et des moyens de modification de la valeur dudit indicateur lorsque l'espace de stockage disponible dans ledit moyen de stockage dépasse au moins un seuil prédéterminé, et/ou lorsque les données contenues dans ledit moyen de stockage remplissent au moins une condition prédéterminée. 21. Dispositif de commutation selon la revendication 20, caractérisé en ce qu'il comprend un dispositif d'optimisation de l'utilisation d'un moyen de stockage selon l'une quelconque des revendications 13 à 20. 22. Dispositif de commutation selon l'une quelconque des revendications 20 et 21, caractérisé en ce qu'une desdites conditions prédéterminées est la réception, dans ledit moyen de stockage, d'une information de fin de transmission d'un ensemble de données. 23. Dispositif de commutation selon l'une quelconque des revendications 20 à 22, caractérisé en ce que ledit moyen de stockage comprend au moins une mémoire de type FIFO. 24. Dispositif de commutation selon l'une quelconque des revendications 20 à 23, caractérisé en ce qu'il comprend des moyens de contrôle de logique en cascade (en anglais"pipelined logic") assurant le transfert d'au moins une partie desdites données contenues dans ledit moyen de stockage, lorsque ladite valeur est modifiée. 25. Dispositif de commutation selon la revendication 24, caractérisé en ce que la valeur dudit indicateur est fonction d'un temps de réaction desdits moyens de contrôle. 26. Dispositif de commutation selon l'une quelconque des revendications 20 à 25, caractérisé en ce que la valeur dudit indicateur est modifiée lorsque ledit moyen de stockage est presque plein (en anglais"almost full"). 27. Signal représentatif d'un indicateur de remplissage d'un moyen de stockage pouvant véhiculer au moins deux valeurs distinctes, au moins une première valeur associée à un état sensiblement vide dudit moyen de stockage, et au moins une deuxième valeur associée à un état sensiblement plein dudit moyen de stockage, caractérisé en ce que ledit signal prend également ladite deuxième valeur lorsque les données contenues dans ledit moyen de stockage remplissent au moins une condition prédéterminée. 28. Signal selon la revendication 27, caractérisé en ce qu'une desdites conditions prédéterminées est la réception, dans ledit moyen de stockage, d'une information de fin de transmission d'un ensemble de données. 29. Signal selon l'une quelconque des revendications 27 et 28, caractérisé en ce que ledit moyen de stockage comprend au moins une mémoire de type FIFO. 30. Signal selon l'une quelconque des revendications 27 à 28, caractérisé en ce que la modification de ladite valeur entraîne le transfert d'au moins une partie desdites données contenues dans ledit moyen de stockage. 31. Signal selon l'une quelconque des revendications 27 à 30, caractérisé en ce que la valeur dudit indicateur est fonction d'un temps de réaction desdits moyens de contrôle. 32. Signal selon l'une quelconque des revendications 27 à 31, caractérisé en ce que la valeur dudit indicateur est modifiée lorsque ledit moyen de stockage est presque plein (en anglais"almost full"). 33. Signal selon la revendication 32, caractérisé en ce que la valeur dudit indicateur est modifiée lorsque le taux de remplissage dudit moyen de stockage est supérieur à N-x, où : N représente la taille dudit moyen de stockage ; x représente la profondeur du pipeline, ledit transfert reposant sur une logique en cascade. 34. Noeud de commutation comprenant au moins deux moyens de stockage et un moyen de transfert entre au moins deux desdits moyens de stockage, et des moyens de génération d'au moins un indicateur de remplissage, et des moyens de modification de la valeur dudit indicateur lorsque l'espace de stockage disponible dans au moins un desdits moyens de stockage dépasse au moins un seuil prédéterminé, caractérisé en ce qu'il comprend en outre des moyens de modification de la valeur dudit indicateur lorsque les données contenues dans ledit moyen de stockage remplissent au moins une condition prédéterminée. 35. Noeud de commutation selon la revendication 34, caractérisé en ce qu'il comprend un moyen de contrôle activant le transfert de données entre deux desdits moyens de stockage selon un mode combinant les techniques de transfert en rafale et en pipeline selon la valeur dudit indicateur. 36. Noeud de commutation selon l'une quelconque des revendications 34 et 35, caractérisé en ce qu'il comprend au moins un dispositif d'optimisation de l'utilisation d'un moyen de stockage selon l'une quelconque des revendications 13 à20. 37. Application du procédé selon l'une quelconque des revendications 1 à 12 à l'un au moins des domaines appartenant au groupe comprenant : la commutation à haut débit ; la transmission de données numériques ; la réception de données numériques ; les applications audio ; la transmission d'images en temps réel.