Brevet FR2763410A1 — publié le 19981120

DISPOSITIF DE TRI D'ELEMENTS DE DONNEES A ARBRE BINAIRE ET ESPACEUR ATM COMPORTANT UN TEL DISPOSITIF La présente invention concerne un dispositif de tri d'éléments de données incluant chacun une clé de tri respective, comprenant: - des moyens de mémorisation organisés selon un arbre binaire de 2n-1 noeuds numérotés de 1 à 2n-1 aptes à contenir chacun un élément de données et répartis en n étages successifs numérotés de 0 à n-l, l'étage q comprenant les noeuds 2q à 2q+1-1; et - des moyens de contrôle de l'arbre binaire pour distribuer les éléments à trier dans l'arbre de façon à vérifier une condition d'ordonnancement selon laquelle, pour chaque entier i compris entre 1 et 2n-1-1 tel que le noeud i contienne un élément à trier, chacun des noeuds 2i et 2i+1 soit ne contient pas d'élément à trier, soit contient un élément dont la clé de tri est supérieure ou égale, au sens d'une relation d'ordre déterminée, à la clé de tri de l'élément contenu dans le noeud i. L'ordonnancement des éléments dans l'arbre de tri correspond à ce qu'on appelle le "tri par tas" ("heapsort") dans le domaine du tri informatique. On pourra à cet égard se reporter à l'ouvrage de Knuth: "The art of computer programming, Vol. 3, Sorting and searching", Addison Wesley, 1973, pages 142-157. A titre d'illustration, la figure 1 montre, dans le cas o n=4, un arbre de tri comportant quinze noeuds 1-15 contenant des éléments de données (dont seule la clé de tri est représentée) qui vérifient la condition d'ordonnancement. Le noeud 1 de l'étage 0 est appelé sommet ou racine de l'arbre. Les 2n-1 noeuds 2n-1 à 2n-1 de l'étage n-1 sont appelés feuilles de l'arbre. Pour chaque noeud i d'un étage q, les 2n-q-1 noeuds de l'arbre dont les numéros sont de la forme i2J+j', o j et j' sont des entiers tels que 0Oj 2i+1 de l'étage q+1 (si q Le père du noeud i (si q>0) est d'autre part défini comme le noeud de l'étage q-1 dont le numéro est i/2 si i est pair et (i-1)/2 si i est impair. Ces relations logiques de filiation entre les noeuds de l'arbre sont représentées par des flèches sur la figure 1. La relation d'ordre entre les clés de tri est arbitraire. Dans le cas illustré par la figure 1, il s'agit de la relation d'ordre familière entre les entiers naturels, permettant un tri en ordre croissant des clés de tri. Dans le cas d'un tri en ordre décroissant, il suffit clairement d'inverser la relation d'ordre entre les clés. Sur la figure 1, on a considéré que les noeuds de l'arbre non occupés par des éléments à trier contiennent chacun un élément dont la clé de tri est infinie, c'est-à-dire supérieure à toute clé de tri d'un élément de données à trier. Une possibilité pour coder une clé infinie est de réserver à cet effet un bit du champ de données contenant la clé; la clé sera par exemple considérée comme infinie si ce bit est à 1 et comme finie sinon; en d'autres termes, ce bit indique si le noeud est libre ou occupé par un élément de données. Une fois qu'il est chargé avec un ensemble de N d'extraction depuis le sommet en direction des feuilles. Dans un certain nombre d'applications, il est nécessaire que les moyens de contrôle soient également capables de répondre à des commandes d'insertion d'un nouvel élément à trier dans l'arbre. Le dispositif de tri est alors capable de délivrer ou de recevoir à chaque cycle des éléments à trier. Il fonctionne comme une file d'attente dynamique sur la base des clés de tri, gérées suivant la relation d'ordre utilisée, et pouvant représenter des étiquettes temporelles ou tout autre type d'index de priorité. Dans les arbres binaires de tri connus, la commande d'insertion n'est pas propagée du sommet vers les feuilles de l'arbre car, au niveau d'un noeud donné, on ne sait pas a priori vers lequel des deux fils la commande doit être propagée, étant noté que l'un des deux fils peut avoir sa descendance complètement occupée et donc être inapproprié pour recevoir la commande. La commande d'insertion est donc propagée depuis les feuilles de l'arbre vers le sommet. Par exemple, pour insérer dans l'arbre de la figure 1 un élément dont la clé de tri est 28, on l'écrit dans une feuille libre de l'arbre, par exemple la feuille 9, et on réalise de proche en proche des comparaisons avec les éléments contenus dans les noeuds ascendants; c'est ainsi que les éléments 28 et 38 seront permutés pour rétablir l'ordonnancement dans l'exemple considéré. Dans ces conditions, il est nécessaire que le cycle précédent soit achevé au moment d'extraire l'élément de l'arbre ayant la plus petite clé. En conséquence, le débit auquel le dispositif peut délivrer ou recevoir des éléments de données est limité par la durée du cycle de traitement d'une commande, qui est proportionnelle au nombre d'étages n, c'est-à-dire au logarithme du nombre maximal N d'éléments à trier. Dans des applications o ce nombre N est important, par exemple quelques milliers, et o un débit élevé est requis, par exemple supérieur à 500 000 éléments par seconde, le dispositif de tri n'est plus réalisable avec les circuits électroniques connus. Dans leur article "A real time sorter with application to ATM traffic control" (Proc. ISS'95, avril 1995, Volume 1, pages 258-262), J.W. Roberts et al ont décrit un dispositif de tri ne souffrant pas de la limitation de débit ci-dessus, c'est-à-dire capable de délivrer et de recevoir les éléments à une cadence a priori indépendante du nombre maximum d'éléments à trier. Mais un inconvénient de ce dernier dispositif est que le nombre de circuits logiques fonctionnant en parallèle est proportionnel à N. Dès que le nombre N d'éléments à trier devient important (quelques milliers ou dizaines de milliers comme dans le cas d'application à un espaceur de cellules ATM envisagé dans l'article), la complexité matérielle du dispositif devient rédhibitoire. Un but de la présente invention est de proposer un dispositif de tri rapide et de complexité limitée. L'invention propose ainsi un dispositif du type indiqué en introduction, dans lequel les moyens de contrôle répondent à des commandes de modification du contenu de l'arbre binaire qui incluent des commandes d'insertion d'un nouvel élément à trier. Selon l'invention, les moyens de contrôle comprennent m contrôleurs successifs associés chacun à un étage ou à plusieurs étages consécutifs de l'arbre binaire, m étant un entier compris entre 2 et n, et n-1 registres d'interface entre étages successifs, parmi lesquels chacun des m-1 registres d'interface entre paires d'étages associés à des contrôleurs différents constitue un registre pipe-line, et dans lequel chaque commande de modification du contenu de l'arbre binaire est propagée de l'étage 0 vers l'étage n-1 au moyen des registres d'interface, le ou les registres pipe-line permettant un travail en parallèle des contrôleurs. La complexité du dispositif est limitée par le nombre m de contrôleurs qui est lui-même au plus égal au nombre n d'étages de l'arbre, c'est-à- dire au logarithme du nombre maximum d'éléments à trier. L'organisation en pipe- line des contrôleurs permet un travail en parallèle et une grande cadence d'entrée et de sortie d'éléments à trier. Cette cadence est indépendante du nombre d'éléments à trier. Elle est maximale lorsque le nombre m de contrôleurs est égal au nombre n d'étages. Le dispositif de tri selon l'invention peut avoir diverses applications, lorsqu'on a besoin d'un tri rapide d'éléments de données dont le nombre peut être important. Il peut ainsi être réalisé sous la forme d'une carte de coprocesseur de tri pour tout système informatique. Un domaine d'application intéressant est celui de l'ordonnancement de processus: les clés de tri représentent alors des instants o il est requis d'activer des processus. On peut alors extraire à chaque instant de l'arbre l'élément le plus "urgent". Le dispositif selon l'invention a une application particulièrement avantageuse dans le domaine de l'espacement de cellules ATM. Un second aspect de l'invention propose ainsi un espaceur de cellules ATM transmises selon un ensemble de connexions virtuelles, comprenant une mémoire de cellules dans laquelle des cellules entrantes sont écrites et des cellules sortantes sont lues, et des moyens pour attribuer une heure théorique d'émission à chaque cellule stockée dans la mémoire de cellules. Selon l'invention, l'espaceur comprend en outre des moyens de contrôle d'espacement pour gérer la mémoire de cellules, à l'aide d'une mémoire de pointeurs associée, de façon que la mémoire de cellules comporte, pour chaque connexion virtuelle pour laquelle est contient des cellules, une liste d'emplacements o ces cellules sont rangées en mode premier entré-premier sorti entre une tête de liste et une fin de liste, et des moyens de tri pour ordonnancer des éléments de données comportant chacune une identité de connexion virtuelle et une clé de tri consistant en l'heure théorique d'émission de la cellule contenue dans la tête de liste relative à ladite connexion virtuelle, et pour sélectionner au moins un élément de données ayant une clé de tri minimale, les moyens de contrôle d'espacement étant agencés pour commander l'émission d'une cellule contenue dans la tête de liste relative à une connexion virtuelle identifiée dans un élément de données sélectionné par les moyens de tri, et les moyens de tri comprenant aux moins un dispositif de tri tel que défini ci-dessus, dont le noeud 1 de l'étage 0 contient ledit élément sélectionné. D'autres particularités et avantages de la présente invention apparaitront dans la description ci-après d'exemples de réalisation non limitatifs, en référence aux dessins annexés, dans lesquels: - la figure 1 est un schéma d'un arbre binaire de tri; - la figure 2 est un schéma synoptique d'un dispositif de tri utilisable selon l'invention; - la figure 3 est un schéma synoptique montrant l'environnement de chaque contrôleur du dispositif de la figure 2; - les figures 4A à 4C montrent un organigramme du fonctionnement du contrôleur de la figure 3; - la figure 5 montre un chronogramme du fonctionnement du dispositif de tri; - les figures 6 et 7 sont des schémas semblables à celui de la figure 3 et montrant des variantes possibles pour l'environnement des contrôleurs; - la figure 8 est un schéma montrant un registre à décalage utilisable avec un dispositif de tri selon la figure 7; - la figure 9 montre un chronogramme simplifié du dispositif de tri; les figures 10A et 0lB, qui sont à compléter avec la figure 4C, montrent un organigramme du fonctionnement du contrôleur de la figure 7; - les figures 11A et llB, qui sont à compléter avec la figure 4C, montrent un organigramme correspondant à celui des figures 10A, 0lB et 4C dans le cas particulier du dernier étage de l'arbre binaire; - la figure 12 est un schéma d'ensemble d'un espaceur de cellules ATM mettant en oeuvre la présente invention; - la figure 13 montre des chronogrammes du fonctionnement de l'espaceur de la figure 12; - les figures 14 et 15 sont des organigrammes montrant respectivement les opérations effectuées par le contrôleur de l'espaceur de la figure 12 lors de la réception et de l'émission d'une cellule ATM; et - les figures 16 et 17 sont des schémas partiels de variantes d'espaceurs ATM mettant en oeuvre la présente invention. La figure 2 montre un dispositif de tri dans lequel les éléments de données sont contenus dans une mémoire 200- 203 organisée conformément à l'arbre binaire de la figure 1, avec n=4 étages. L'arbre binaire est contrôlé par un ensemble de m contrôleurs distincts, o m est un entier compris entre 2 et le nombre n d'étages de l'arbre. Dans le cas considéré sur les figures 2 et 3, il y a un contrôleur 21q pour chaque étage q de l'arbre, soit m=n=4. Chaque contrôleur 21q comporte un bus 22q lui permettant d'accéder à l'étage q. Les moyens de mémorisation de l'arbre sont ainsi divisés en m=4 modules de mémoire 200-203 accessibles chacun par un bus respectif 220-223. Dans chaque noeud i se trouvent deux emplacements de mémoire pour contenir respectivement la clé de tri K(i) d'un élément de données, seule représentée sur la figure 2 (K(i)=- en l'absence d'élément), et une référence R(i) de cet élément (cf. figure 3). Chaque étage q de l'arbre autre que l'étage 0 comporte, outre les noeuds 2q à 2q+1-1, 2q-1 emplacements 23 de capacité 1 bit, et 2q-1 emplacements 25 de capacité n-q+1 bits. Chaque emplacement 23 contient un bit d'orientation F(i) associé à un couple de noeuds frères 2i et 2i+ 1 de l'étage q, dont la valeur est F(i)=0 si la clé contenue dans le frère de gauche 2i est inférieure à celle contenue dans le frère de droite 2i+1 (K(2i) l'arbre de tri est 2n-1-1. Chaque emplacement 25 de l'étage q contient un compteur différentiel A(i) associé à un couple de noeuds frères 2i et 2i+1 de l'étage q, dont la valeur est donnée par la différence entre le nombre d'éléments de données contenus dans les descendants du frère de gauche 2i et le nombre d'éléments de données contenus dans les descendants du frère de droite 2i+1. Les bits d'orientation F(i) servent à propager les commandes d'extraction ou d'échange du sommet vers les feuilles de l'arbre, tandis que les compteurs différentiels A(i) servent à propager les commandes d'insertion du sommet vers les feuilles de l'arbre. Les moyens de contrôle de l'arbre binaire comprennent en outre n-1=3 registres d'interface 261-263, chaque registre 26q servant d'interface entre le contrôleur 21q_1 de l'étage q-l et le contrôleur 21q de l'étage q. Sur le schéma de principe de la figure 2, on a en outre représenté un registre 260 servant d'interface entre le contrôleur 210 de l'étage 0 et l'environnement du dispositif de tri. Les commandes envoyées au dispositif de tri sont écrites dans ce registre 260, de même que les réponses fournies par le dispositif de tri. Dans la pratique, ce registre 260 peut appartenir au même circuit que le contrôleur 210 de l'étage supérieur de l'arbre. En référence à la figure 3, chaque registre 26q se compose de quatre emplacements contenant respectivement: - un code de commande Aq désignant la nature de la commande propagée du sommet vers les feuilles de l'arbre; dans la suite de l'exposé, on considérera à titre d'exemple que les commandes Aq sont codées sur deux bits de la façon suivante: Aq=00 pour une absence de modification du contenu de l'arbre à partir de l'étage q, Aq=01 pour une commande d'insertion d'un nouvel élément, Aq=ll pour une commande d'échange consistant à extraire de l'arbre l'élément ayant la plus petite clé de tri en même temps qu'on y insère un nouvel élément (l'extraction simple de l'élément ayant la plus petite clé de tri est traitée comme l'échange de cet élément avec un élément ayant une clé de tri infinie), et Aq=10 pour une commande de réinitialisation du contenu de l'arbre à partir de l'étage q; - une clé de tri Bq transmise de l'étage q-1 vers l'étage q lors d'une commande d'insertion ou d'échange, ou de l'étage q vers l'étage q-1 lors d'une commande d'échange; - une référence Cq associée à la clé de tri Bq et formant avec celle-ci un élément de données inséré ou échangé; et - une identification Dq se composant de q-1 bits (cette identification n'existe pas dans le registre 260), désignant le noeud de l'étage q-1 d'o provient la commande Aq. Plus précisément, l'identification Dq est constituée par les q-1 bits de poids les plus faibles de la représentation binaire du numéro du noeud i de l'étape q-1 d'o provient la commande Aq, c'est-à-dire que i=lDq en base 2. Pour insérer un nouvel élément dans l'arbre, on inscrit la commande A0=01, et ce nouvel élément B0, Co dans le registre 260, et la commande est ensuite propagée du sommet vers les feuilles de l'arbre. Pour effectuer un échange, on écrit la commande AO=11 et l'élément B0, Co à insérer dans le registre 260 (avec Bo= dans le cas d'une extraction simple), puis on récupère l'élément ayant la plus petite clé dans les emplacements B0 et C0 du registre 260. Les opérations effectuées par chaque contrôleur 21q sont représentées sur l'organigramme des figures 4A, 4B et 4C. Pour l'exécution de ces opérations, chaque contrôleur 21q est réalisé sous la forme d'un réseau de portes logiques rapides convenablement programmé. Les opérations étant pour l'essentiel des lectures/écritures, des incrémentations/ décrémentations et des comparaisons de variables codées en binaire, cette programmation du réseau de portes ne pose aucun problème. La commande Aq est d'abord lue dans le registre 26q (étape 100) puis évaluée (étapes 101) pour identifier le type de commande. Dans le cas d'une absence de modification (Aq=00), le contrôleur 21q écrit simplement la même commande Aq+1=00 dans le registre suivant 26q+1 (étape 102). Dans le cas d'une commande de réinitialisation (Aq=10), l'identification Dq du père est affectée à la variable s (étape 103), et le contrôleur 21q initialise les deux noeuds fils, dont les numéros ont pour représentations binaires lsO et lsl, en mettant leur clé de tri à l'infini et la valeur O dans le compteur différentiel associé A(ls) (étape 104), avant de propager la commande Aq+1=00 à l'étape 102. Dans le cas particulier de l'étage 0, la réinitialisation consiste seulement à écrire K(1)=o. Lorsque la commande Aq lue dans le registre 100 se rapporte à l'insertion d'un nouvel élément Bq, Cq depuis un noeud père lDq (Aq=01), ces paramètres Bq, Cq et Dq sont respectivement lus par le contrôleur 21q et affectés à des variables k, r et s à l'étape 105, puis le compteur différentiel A(ls) associé aux fils du noeud identifié est affecté à la variable 8 à l'étape 106. Si 5 reçoivent respectivement les valeurs des variables k', r'. Si la clé w de l'élément de données à propager est infinie (comparaison 114), c'est que la commande d'insertion n'a plus lieu d'être propagée. Le processeur 21q donne alors la valeur 10 (réinitialisation) à la variable v' à l'étape 115. Si la clé w à transmettre est finie, la variable v' reçoit la valeur 01 à l'étape 116 pour indiquer une commande d'insertion. Le processeur 21q peut ensuite remplir le registre 26q+1 en y écrivant Aq+1=v', Bq+1=w, Cq+1=x et Dq+1=st à l'étape 117. Après l'étape 117, le traitement de la commande d'insertion ne nécessite plus que le contrôleur 21q accède à ses registres d'interface 26q, 26q+1, mais seulement à la zone de mémoire 20q qu'il traite. A l'étape 118, il met à jour le compteur différentiel A(ls) en y écrivant la nouvelle valeur de la variable 6. Puis, à l'étape 119, il met à jour l'élément de données du noeud traité en y écrivant K(lst)=k et R(lst)=r. Il ne reste plus alors au contrôleur 21q, pour achever le traitement de la commande d'insertion, qu'à mettre à jour la valeur du bit d'orientation F(ls) associé au noeud traité 1st. Le contrôleur 21q lit d'abord la clé de tri K(lst) de l'élément de données contenu dans le noeud frère du noeud traité, et l'affecte à la variable k'. La variable f. qui sera écrite dans l'emplacement 23 contenant le bit d'orientation F(ls) à l'étape 126, est prise égale à 1 à l'étape 124 (orientation vers le fils droit) si les comparaisons 121, 122, 123 montrent que t=0 et k'sk, ou que t=l et k k'. Dans le cas contraire, on prend f=0 à l'étape 125. Après l'étape 126, le processeur 21q a terminé de traiter la commande Aq, et peut revenir à l'étape 100 pour traiter la prochaine commande provenant du registre 26q. Lorsque la commande lue dans le registre 26q se rapporte à l'échange d'un élément de donnée Bq, Cq depuis un noeud père lDq de l'étage q- 1 (Aq=11), ces paramètres Bq, Cq et Dq sont lus et respectivement affectés aux variables k, r et s à l'étape 130, puis la valeur du bit d'orientation F(ls) associé aux deux fils du noeud identifié est affectée au bit t à l'étape 131. Les données K(lst), R(lst) lues dans le noeud traité 1st sont alors affectées aux variables k' et r' à l'étape 132. Si le noeud traité contient une clé de tri supérieure à celle de l'élément de données lu dans le registre 26q (k registre d'interface 26q. Pour propager la commande, le contrôleur 21q exécute ensuite l'étape 137, o il écrit dans le registre d'interface 26q+1: Aq+l=V', Bq+l=k, Cq+1=r et Dq+1=st. Si la commande propagée n'est pas une commande d'échange, c'est-à-dire si la comparaison 138 montre que v'11, le traitement de la commande d'échange par le contrôleur 21q est terminé après l'étape d'écriture 137. Sinon, le processeur 21q passe à l'étape 139 o il examine si la clé k qu'il a transmise vers l'étage q+l est infinie ou non. Si la comparaison 139 montre que k=-, alors la commande d'échange est en fait une commande d'extraction simple, et il est nécessaire de mettre à jour le compteur différentiel A(ls) associé au noeud traité. La valeur de ce compteur différentiel est d'abord lue et affectée à la variable 8 à l'étape 140. Si le contrôleur 21q a traité un fils gauche (t=0 lors de la comparaison 141), la variable 6 est décrémentée d'une unité à l'étape 142, tandis qu'elle est incrémentée d'une unité à l'étape 143 dans le cas contraire. Le compteur différentiel A(ls) est ensuite mis à jour à l'étape 144 selon la nouvelle valeur de la variable 6. Etant donné que l'échange de deux éléments ayant chacun une clé de tri finie n'affecte pas les valeurs des compteurs différentiels, les étapes 140 à 144 ne sont pas exécutées si la comparaison 139 montre que la clé transmise k est finie. Le processeur 21q poursuit alors le traitement de la commande d'échange à l'étape 145 en lisant l'élément de données Bq+1, Cq+1 que le contrôleur 21q+1 a renvoyé (lors de son étape 136) dans le registre 26q+ 1, et en affectant cet élément renvoyé aux variables k et r. Le traitement de la commande se termine ensuite par les étapes 119 à 126 telles que décrites précédemment. L'organigramme des figures 4A-4C a été présenté dans le cas d'un étage q quelconque. Bien entendu, quelques adaptations sont nécessaires pour le premier étage q=0 et le dernier étage q=n-1. Ainsi, pour q=0, le noeud traité lst s'entend comme étant toujours le sommet de l'arbre, les étapes 106-109, 118, 120-127, 131 et 139-144 pouvant être supprimées. Etant donné qu'il n'est pas nécessaire de prévoir un registre 26n en aval du dernier contrôleur, les étapes 110 à 117 peuvent être supprimées en ce qui concerne le dernier étage n-1, de même que les étapes 102, 137 et 145 et que, pour l'échange seulement, l'étape 119. L'organisation temporelle du travail en parallèle des contrôleurs successifs est conditionnée par le partage de l'accès aux registres d'interface 26q. Sur les figures 4A et 4B, on a indiqué l'instant aq o le contrôleur 21q a terminé d'écrire dans le registre 26q+1 la commande qu'il transmet ainsi que les paramètres associés (après l'étape 102, 117 ou 137 selon le type de commande), ainsi que, dans le cas d'une commande d'échange, l'instant Pq o le contrôleur 21q a terminé d'écrire dans le registre 26q l'élément de données Bq, Cq qu'il renvoie vers le contrôleur 21q_1. On désigne en outre par a' l'instant o le contrôleur 21q commence à lire une nouvelle commande dans le registre 26q (immédiatement avant l'étape 100), et par V'q l'instant o le contrôleur 21q commence à lire dans le registre 26q+1 l'élément de données renvoyé par le contrôleur 21q+1 dans le cas d'une commande d'échange (immédiatement avant l'étape 145). Pour obtenir un fonctionnement correct en pipe-line, il suffit d'agencer les contrôleurs de telle façon que, pour chaque commande, on ait aqa'q+l et 3q son étape de lecture 100. Un fonctionnement synchrone des contrôleurs 21q sera souvent d'une implémentation plus commode dans le cas o les contrôleurs sont réalisés àpartir de réseaux de portes logiques. L'organisation du pipe-line dans ce cas est illustrée par les chronogrammes de la figure 5. Sur cette figure, chacune des quatre lignes illustre le fonctionnement du contrôleur de l'un des étages. Les lettres RD et WR au-dessus de la ligne relative à l'étage q représentent respectivement une lecture et une écriture effectuées par le contrôleur 21q dans le registre 26q, tandis que ces mêmes lettres situées au-dessous de la ligne indiquent respectivement une lecture et une écriture dans le registre 26q+l. Les flèches entre étages représentent ainsi les transferts de commande et de paramètres au moyen des registres pipe-line. Les intervalles hachurés représentent les instants o le contrôleur 21q travaille sur la zone de mémoire 20q qu'il contrôle. La période 01 indiquée sur la figure 5 détermine la cadence à laquelle le dispositif de tri peut recevoir de nouveaux éléments et délivrer les éléments ayant les plus petites clés de tri. Elle correspond à la durée dont a besoin chaque contrôleur pour traiter l'ensemble des instructions relatives à une commande. On observe que cette période 01 est sensiblement plus courte que la durée du cycle 02 qui est nécessaire pour rétablir la règle d'ordonnancement dans l'ensemble de l'arbre de tri après qu'une nouvelle commande a commencé à être traitée. Dans l'exemple représenté sur la figure 5, la première période 01 correspond à l'échange de l'élément situé au sommet de l'arbre avec un autre élément venant se placer dans l'étage 1 (c'est-à-dire que, dans le cas de la figure 2, sa clé est comprise entre 25 et 38), et la seconde période 01 correspond à l'insertion d'un nouvel élément jusqu'à l'étage 2 (la clé est supérieure ou égale à celle de l'élément introduit lors de la précédente opération d'échange). On note encore que le temps de réponse 80=pO0-a'0 pour que le dispositif renvoie dans le registre 260 l'élément de données ayant la clé de tri minimale correspond à environ un tiers de la période 01. Pour minimiser la période 01, et donc maximiser la cadence de fonctionnement du dispositif de tri, on a intérêt à distribuer de manière homogène les traitements effectués par les contrôleurs dans les intervalles séparant les instants o ils accèdent à leurs registres d'interface. Ceci peut être réalisé en déplaçant le traitement de certaines instructions de l'organigramme des figures 4A à 4C. Si, par exemple, il existe avant les instants P'q des laps de temps 146 (figure 5) o le contrôleur q doit attendre que le contrôleur 21q+1 ait terminé d'exécuter sa série d'instruc- tions 130-136 avant d'en lire le résultat dans le registre 26q+1, il est possible de combler au moins en partie ce laps de temps par l'exécution d'autres instructions, ce qui permettra de gagner du temps par ailleurs. C'est ainsi que par exemple, dans le cas des figures 4A-4C, la lecture 120 de la clé de tri du frère du noeud traité pourrait être effectuée avant l'étape 145 dans une opération d'échange et après l'étape 118 dans une opération d'insertion. Ce type d'optimisation dépend largement des choix d'architecture faits pour programmer les réseaux de portes logiques. Dans la description précédente, on a considéré le cas o chacun des contrôleurs est associé à un seul étage de l'arbre binaire dont l'accès lui est réservé, ce qui donne au dispositif les meilleures performances de rapidité. La complexité du dispositif, mesurée en nombre de circuits logiques (contrôleurs 21q) nécessaires à son fonctionnement, est alors de n, c'est-à-dire le logarithme du nombre maximal d'éléments à trier. Cette complexité peut être réduite, au prix d'une diminution correspondante de la rapidité du dispositif, en associant non pas un seul, mais plusieurs étages consécutifs de l'arbre à certains au moins chacun des contrôleurs (soit m étages est traitée séquentiellement par ce contrôleur. Comme le montre la figure 6 dans le cas d'un contrôleur 21q, p associé aux étages q à q+p-1 de l'arbre, seuls les registres 26q, 26q+p d'interface entre les étages associés à des contrôleurs différents constituent des registres pipe-line pour le fonctionnement en parallèle des contrôleurs successifs. Les autres registres 26q+1,...,26q+p_ 1 sont accessibles seulement par le contrôleur 21q p. Ils peuvent faire partie du circuit logique constituant ce contrôleur 21q, p ou encore faire partie du module de mémoire réservé à ce contrôleur et comportant les étages q à q+p-1. On notera qu'il est possible de se dispenser des compteurs différentiels A(i) dans les étages de l'arbre binaire associés au m-ième contrôleur. Supposons que ce dernier contrôleur soit associé aux p étages n-p à n-1 (lp l'arbre pour i allant de 1 à 2n-p--1. Les figures 7 à 11 illustrent un autre mode de réalisation d'un dispositif de tri. Pour faciliter l'explication, on considère de nouveau le cas o chaque contrôleur 21q est associé à un seul étage q de l'arbre binaire (m=n). On comprendra toutefois que, comme précédemment, l'architecture de ce dispositif de tri est aisément transposable au cas o un au moins des contrôleurs est associé à plusieurs étages (m Contrairement à l'exemple de réalisation précédemment décrit, celui des figures 7 à 11 n'utilise pas de compteurs différentiels pour propager les commandes d'insertion du sommet vers les feuilles de l'arbre. Chaque module de mémoire 20q correspondant à un étage q de l'arbre comporte ainsi les noeuds 2q à 2q+l-l1 et les emplacements 23 pour recevoir les bits d'orientation F(2q-1l) à F(2q-1), mais pas d'emplacements 25 pour recevoir des compteurs différentiels, comme le montre la figure 7. Chaque registre d'interface 26q comporte, outre les quatre emplacements contenant les paramètres Aq, Bq, Cq et Dq précédemment définis, un emplacement supplémentaire recevant un bit Eq qui désigne, lors de la propagation d'une commande d'insertion depuis un noeud lDq de l'étage q-1, le noeud fils de l'étage q vers lequel est propagée cette commande. Ainsi, si Eq=O, la commande d'insertion est propagée vers le fils gauche lDqO, tandis que, si Eq=l, la commande d'insertion est propagée vers le fils droit lDql. Dans le registre 26q, l'identification Dq du noeud père et le bit Eq de désignation du noeud fils sont constitués par les q bits de poids les plus forts du contenu Gq d'un champ de désignation de feuille de n-1 bits. Le contenu Gq de ce champ de désignation de feuille désigne, lors de la propagation d'une commande d'insertion, l'une des feuilles libres de l'arbre binaire en direction de laquelle est propagée cette commande. La représentation binaire de cette feuille libre est lGq. Etant donné que la feuille désignée est libre, on a l'assurance que l'élément inséré pourra trouver sa place sur le trajet allant du sommet de l'arbre à cette feuille libre désignée, à la condition qu'aucune autre commande d'insertion vers cette même feuille ne soit en cours de propagation en aval de l'arbre binaire. Pour remplir cette condition, le champ de désigna- tion de feuille du registre 261 d'interface entre les étages 0 et 1 reçoit sa valeur Gi du contrôleur 21n_1 associé au dernier étage de l'arbre. Le contrôleur 21n_1 tient une première liste de feuilles libres, par exemple au moyen d'un registre à décalage 30 tel que celui schématisé sur la figure 8. Ce registre contient un nombre n' d'emplacements de n-1 bits, et effectue une opération de décalage à chaque période de commande 01. Toute feuille en direction de laquelle une commande d'insertion est susceptible d'être en cours de propagation dans l'arbre binaire fait partie de cette première liste de n' feuilles libres. Tant que la commande An_1 lue par le dernier contrôleur dans le registre d'interface 26n-_1 n'est pas une commande d'insertion (Anl01O), le registre à décalage 30 est rebouclé sur lui- même comme le montre la figure 8, de sorte qu'il délivre la même désignation de feuille toutes les n' périodes 01. Cette désignation G1, dont on sait alors qu'elle est différente de chacune de celles des feuilles vers lesquelles des commandes d'insertion sont susceptibles d'être en cours de propagation dans l'arbre, est inscrite dans le champ correspondant du registre d'interface 261. Si par contre une commande d'insertion An_1=l0 parvient au dernier étage de l'arbre, alors une nouvelle feuille libre P, extraite par le dernier contrôleur d'une seconde liste de feuilles libres d'une manière qui sera explicitée plus loin, est introduite dans le registre à décalage 30 et dans le registre d'interface 261. Pour expliquer ce fonctionnement, la figure 9 reprend sous une forme simplifiée les chronogrammes de la figure 5 dans le cas o le dispositif traite consécutivement des commandes d'insertion de nouveaux éléments dans l'arbre. Sur cette figure 9, chaque extrémité de flèche désigne un instant a' de commencement du traitement d'une commande d'insertion par un contrôleur 21q. Ainsi, aux instants a'0, le contrôleur 210 reçoit les commandes et paramètres pertinents A0, B0, C0 depuis l'environnement du dispositif, et aux instants a'q avec qkl, le contrôleur 21q reçoit les commandes et paramètres Aq, Bq, Cq et Gq dans le registre 26q et démarre les traitements correspondants. Dans l'exemple d'organisation temporelle représenté sur la figure 9, chaque commande d'insertion pour laquelle le dernier contrôleur 21n-_1 a écrit la désignation correspondante G1 d'une feuille libre dans le registre 261 parvient à ce dernier contrôleur dans le registre 26n-_1 au bout de deux périodes 01. En conséquence, dans cet exemple, il suffit de prendre n'=2 emplacements dans le registre à décalage 30. Dans ce même exemple (voir aussi figure 1), la figure 8 montre les n'=2 feuilles 9 et 13 (respectivement désignées par 001 et 101 car les représentations binaires des numéros 9 et 13 sont lQ01 et 1101) contenues dans la liste tenue dans le registre 30. La feuille 9 a donc été désignée dans le champ G1 lors de l'avant-dernière commande. Si cette commande se rapporte à l'insertion d'un nouvel élément et aboutit à la feuille 9 (c'est-à-dire An_1=01 dans la période courante du fonctionnement du dernier processeur), la feuille 9 est supprimée de la liste et du registre 30, et remplacée par une nouvelle feuille (10, 11 ou 15 dans le cas de la figure 1) désignée par P. Sinon, ladite avant-dernière commande soit ne se rapporte pas à une insertion, soit se rapporte à l'insertion d'un élément de données qui a trouvé sa place en amont de l'étage n-l, de sorte que la feuille 9 est maintenue dans le registre 30 et de nouveau désignée dans le champ G1 pour la prochaine commande. Dans la pratique, le nombre n' pourra toujours être inférieur au nombre n d'étages dans l'arbre binaire. Etant donné que ce mode de réalisation du dispositif de tri implique que l'arbre binaire ait à chaque instant au moins n' feuilles libres, le nombre maximal d'éléments de données que le dispositif est capable de trier est réduit, par rapport au dispositif précédemment décrit, d'une quantité toujours inférieure à 2n', de sorte que la capacité de tri du dispositif n'est pas affectée de façon significative lorsque le nombre d'étages n'est pas trop faible. Si par exemple le dispositif comporte n=12 étages avec n'=4, il peut trier jusqu'à N=4095 éléments dans la cas d'utilisation de compteurs différentiels, et jusqu'à N=4088 éléments dans le cas d'utilisation de listes de feuilles libres, la différence entre ces deux valeurs de N n'étant pas significative. Les figures 10A et lOB, qui sont à compléter avec la figure 4C, montrent un organigramme semblable à celui des figures 4A à 4C (les mêmes références numériques ont été employées pour désigner des étapes semblables), et détaillant les opérations effectuées par un contrôleur 21q du type représenté sur la figure 7, avec q traitement d'une commande. Par rapport à l'organigramme des figures 4A, 4B et 4C, celui des figures 0lA, 0lB et 4C a été simplifié par la suppression de toutes les opérations se rapportant aux compteurs différentiels. Aux étapes 105 et 117 exécutées dans le traitement d'une commande d'insertion, c'est l'ensemble du champ de désignation de feuille Gq ou Gq+1 qui est lu ou écrit dans le registre d'interface 26q ou 26q+1, et non seulement l'identification du noeud père Dq ou Dq+l. Par rapport à l'exemple précédent, on obtient une simplification de la structure des contrôleurs et une réduction de l'espace mémoire auquel chacun d'eux doit respectivement être capable d'accéder. Les figures 11A et 11B, qui sont à compléter avec la figure 4C, montrent les opérations effectuées par le dernier contrôleur relativement à l'étage n-1 de l'arbre. L'étape 150, 151 ou 152, exécutée entre les instants fn-1 et an-1 correspond à l'écriture, dans le champ de désignation de feuille du registre 261, des n-1 bits de poids les plus faibles G1=T(i) du numéro de la feuille de rang i (O0i 30. Le contrôleur 21n_1 tient en outre une seconde liste de feuilles libres, qu'il gère par exemple en mode dernier entré-premier sorti (LIFO). La première feuille de cette seconde liste est désignée par un pointeur P de n-1 bits stocké dans un registre du dernier contrôleur ou dans sa zone de mémoire 20n_1. La représentation binaire du numéro de cette première feuille est 1P. Chaque feuille de la seconde liste contient un élément de données dont la clé de tri est infinie, et on utilise par exemple la portion de mémoire correspondant à la référence associée pour stocker un pointeur de suite égal à la désignation sur n-1 bits de la feuille suivante de la seconde liste (on pourrait également utiliser la portion correspondant à la clé si un bit est réservé pour identifier les clés infinies). Lorsqu'une commande d'insertion parvient au contrô- leur du dernier étage dans le registre d'interface 26n_-1 (An_ 1=01), la feuille libre désignée par Gn_1 doit être remplie pour contenir le nouvel élément de données. En con-séquence, les étapes 110 à 117 de l'organigramme des figures 10A et lOB ne sont pas nécessaires. L'étape de lecture 105 est suivie par une étape 155 o le contrôleur 21n_1 lit dans la variable h le pointeur de suite R(1P) contenu dans la portion de mémoire correspondant à la référence de l'élément contenu dans la première feuille libre de la seconde liste (étape 155). A l'étape suivante 156, le contrôleur 26n_1 met à jour les deux listes de feuilles libres. Il retire de la première liste la feuille libre désignée par Gn_1, en la remplaçant, dans la zone T(i) par le pointeur P de la première feuille de la seconde liste; il remplace ensuite cette valeur P par celle du pointeur lu à l'étape 155. Le processeur 21n_1 termine de traiter la commande d'insertion en procédant à l'étape 150 précitée puis aux étapes 119 à 126 de la figure 4C et à l'étape 153. Pour traiter une commande d'échange (An_1=11), le contrôleur du dernier étage exécute d'abord les étapes 130 à 136 précédemment commentées. L'étape 137 n'est pas nécessaire, et est remplacée par l'étape 151 précitée. Si la clé de tri k=Bn_1 proposée en échange depuis l'étage n-2 est plus grande que celle K(lst) lue dans la feuille traitée (v'=11 lors de la comparaison 138), cette clé k est comparée à l'infini à l'étape 139. Si cette clé k est finie, le traitement de la commande d'échange se termine par les étapes 119 à 126 de la figure 4C et par l'étape 153. Sinon, la commande se rapporte à une extraction simple, et libère une feuille précédemment occupée. A l'étape 157, cette feuille est mise à jour en y écrivant une clé de tri infinie et, à titre de référence, la valeur P du pointeur de la première feuille de la seconde liste. Le bit d'orientation associé F(ls) reçoit la valeur complémentaire de celle lue à l'étape 131. Avant de passer à l'étape finale 153, le contrôleur 26n_1 termine le traitement de la commande d'extraction à l'étape 158 en mettant à jour le pointeur P de la première feuille de la seconde liste avec la désignation binaire st de la feuille libérée. A l'initialisation du dispositif selon les figures 7 à 11, les deux listes de feuilles libres sont par exemple initialisées de la manière suivante: T(i)=i, en base 2, pour 0si n' i Dans l'exemple d'implémentation illustré par les figures 8, 11A et 11B, le dernier contrôleur 21n_1 tient la "première liste" et la "seconde liste" au moyen d'un registre à décalage 30 et d'une pile LIFO. On notera que d'autres organisations logiques de complexité comparable pourraient être adoptées. Par exemple, le contrôleur 21n_1 pourrait tenir une fille d'attente logique gérée en mode premier entré- premier sorti (FIFO), contenant les numéros des feuilles libres, en s'assurant que cette file d'attente FIFO contient toujours au moins n' numéros de feuilles libres. Dans ces conditions, la "première liste" est constituée par les n' derniers emplacements de la file d'attente, et la "seconde liste" par les emplacements précédents de la file d'attente. Dans les dispositifs de tri décrits ci-dessus, la relation d'ordre selon laquelle les clés sont triées, c'est- à-dire comparées entre elles aux étapes 111, 122, 123 et 133, correspond à l'ordre croissant des entiers naturels. On comprendra que n'importe quelle relation d'ordre pour laquelle des comparaisons sont aisément réalisées au moyen de circuits logiques simples pourrait être utilisée pour trier les éléments dans un tel dispositif. Si, par exemple, chaque clé de tri K(i) est une étiquette temporelle définissant un instant futur o on aura besoin d'aller chercher la référence correspondante R(i) de l'élément de données, le dispositif de tri peut servir de dispositif de temporisation pour contrôler l'ordonnancement temporel de processus. La clé de l'élément situé au sommet de l'arbre est alors comparée à l'instant courant pour échanger ou extraire cet élément si l'instant courant est atteint. Si, dans cette application, les valeurs de temps sont codées sur L bits par un compteur cyclique variant de 0 à 2L-1, la relation d'ordre entre deux clés k et k' de L bits peut être: k k' si et seulement si 0 (k'-k) (mod 2L) exemple, de calculer la différence k'-k sur L bits (c'est-à- dire en ignorant la retenue de poids le plus fort), et d'examiner si le bit de poids 2L-1 de cette différence est 0 (k k') ou 1 (k>k'). L'ordre chronologique des clés est alors respecté pourvu qu'aucune clé ne désigne un instant antérieur.de plus de 2L-1 ou postérieur de plus de 2L--1 à l'instant courant, une condition facile à remplir par le choix d'un nombre L suffisamment grand. On va maintenant décrire une application des dispositifs de tri décrits ci-dessus dans un espaceur de cellules ATM. Les cellules ATM sont des paquets d'informations de 53 octets transmis sur des liaisons physiques à grande vitesse (débit de 155 ou 622 Mbit/s). Chaque liaison physique supporte un multiplex de cellules appartenant à diverses connexions virtuelles. La connexion virtuelle dont relève chaque cellule est identifiée par un couple d'identificateurs VPI-VCI contenus dans l'en-tête de la cellule. Certains équipements différencient les connexions virtuelles selon l'identificateur de conduit virtuel (VPI: "Virtual Path Identifier"), tandis que d'autres équipements différencient les connexions virtuelles sur la base des identificateurs de voie virtuelle (VCI: "Virtual Channel Identifier"), ou des deux identificateurs VPI, VCI. Dans la présente description, on considérera que chaque cellule ATM relève d'une connexion virtuelle identifiée par une identité IdCx interne à l'équipement pourvu de l'espaceur. Cette identité interne peut correspondre au VPI, au VCI, au couple VPI-VCI, ou encore, plus commodément, à une identité spécifique propre à l'équipement et comportant un plus petit nombre de bits que le VPI- VCI, de façon à faciliter les accès dans des modules de mémoire de taille raisonnable. Une façon appropriée d'associer de telles identités IdCx aux cellules ATM est décrite dans la demande de brevet français n 97 01222. L'espaceur ATM est une unité dont la fonction principale est de régulariser le débit de cellules sur les différentes connexions supportées par une liaison physique. En général, chaque source émettant sur une connexion virtuelle négocie avec l'opérateur un débit-crête. Si ce débit-crête n'est pas respecté par la source, des congestions risquent de se produire dans le réseau, et l'opérateur est habilité à détruire des cellules sur la connexion. Dans un espaceur, un intervalle d'espacement T est alloué à chaque connexion IdCx, de façon que deux cellules consécutives relatives à la même connexion virtuelle soient généralement séparées d'au moins l'intervalle de temps T qui correspond typiquement à l'inverse du débit-crête. On parle alors d'espaceur réel. L'espaceur réel calcule pour chaque cellule une heure d'émission théorique TET, puis stocke la cellule en mémoire pour l'émettre seulement en temps voulu. L'intervalle d'espacement T est alors respecté pour toutes les connexions. Dans un espaceur dit virtuel, il est d'abord calculé pour chaque cellule une heure d'émission théorique TET, selon les mêmes méthodes que précédemment, puis la cellule est stockée en mémoire. La différence avec l'espaceur réel est que l'espaceur virtuel émet immédiatement les cellules dans l'ordre des heures d'émission théoriques. L'espaceur virtuel ne dégrade pas la fluctuation des retards de cellule (CDV: "Cell Delay Variation"). Cependant, il ne réduit pas la dégradation possible du débit par des files d'attente situées en amont de l'espaceur. La fonction d'espacement est fréquemment associée à la fonction de police qui consiste à éliminer des cellules transmises suivant une connexion virtuelle à un débit supérieur au débit-crête, lorsque cet excès de débit est tel qu'il n'est plus possible de produire un multiplex de sortie dans lequel les cellules relevant de la connexion sont correctement espacées sans que le CDV dépasse une valeur limite dépendant de la qualité de service négociée avec l'opérateur. La fonction de police intervient habituellement dans la façon de calculer les heures théoriques d'émission TET des cellules. Une façon classique d'allouer des heures théoriques d'émission aux cellules et d'assurer la fonction de police est d'appliquer l'algorithme GCRA ("Generic Cell Rate Algorithm") défini dans l'annexe 1 de la Recommandation 1.371 de l'ITU-T (voir M. DE PRYCKER: "Asynchronous Transfer Mode, Solution for Broadband ISDN", 2ème Edition, 1993, Chapitre 7, paragraphe 7.3.4, pages 292-293). Pour chaque connexion virtuelle, cet algorithme vérifie toujours la relation suivante: ta TET ta+i, o ta désigne l'heure d'arrivée de la cellule, à laquelle est calculée son heure théorique d'émission TET, et T désigne la tolérance de CDV de la connexion. Dans l'espaceur de la figure 12, la fonction de police est assurée par un module 40 sur la base de l'heure courante et de l'identité IdCx de la connexion dont relève chaque cellule entrante. Ce module 40 délivre au contrôleur d'espacement 41 l'heure théorique d'émission TET calculée de façon récursive pour chaque cellule ainsi que l'intervalle d'espacement T associé à la connexion dont relève cette cellule. Sur la base de ces informations et des identités de connexion IdCx, le contrôleur d'espacement 41 supervise la gestion de la mémoire de cellules 42 dans laquelle les cellules entrantes sont écrites et les cellules sortantes sont lues, et gère en outre une mémoire de pointeurs 43 et le dispositif de tri 44. On désigne par NCX le nombre de connexions virtuelles, numérotées de IdCx=1 à IdCx=NCX, que l'espaceur est capable de traiter, et par NCE le nombre de cellules que la mémoire 42 est capable de contenir, dans des emplacements prédéfinis Ch_cell(1) à Chcell(NCE). Dans l'exemple de réalisation représenté, la mémoire de cellules 42 et la mémoire de pointeurs 43 consistent en deux modules de mémoires distincts, dont le premier est géré par une unité 46 sous le contrôle du contrôleur 41. On comprendra toutefois que d'autres formes de réalisation sont possibles. En particulier, les mémoires 42 et 43 pourraient être implémentées dans un seul module de mémoire dans lequel les accès seraient commandés par le contrôleur 41. C'est ainsi qu'un module de mémoire RAM de 2 mégaoctets permet par exemple de stocker jusqu'à NCE=32 000 cellules relevant de NCX=4 096 connexions virtuelles différentes ainsi que les pointeurs nécessaires à la gestion de la mémoire de cellules. La figure 13 montre un signal d'horloge- cellule CKC sur la base duquel un séquenceur 47 de l'espaceur fournit les signaux de cadencement nécessaires au module 40, au contrôleur d'espacement 41, au dispositif de tri 44 et au gestionnaire 46 de la mémoire de cellules (figure 12). La période de ce signal d'horloge est de 2,7 gs dans le cas d'une liaison à 155 Mbit/s. A chaque période de ce signal CKC, l'espaceur doit être capable de recevoirune cellule écrite dans la mémoire 42 (troisième ligne de la figure 13), et d'émettre une cellule lue dans la mémoire 42 (quatrième ligne de la figure 13). Dans l'exemple de cadencement représenté sur la figure 13, chaque période de cellule est divisée en deux phases successives de même durée, la première pour la réception éventuelle d'une cellule entrante et la seconde pour l'émission éventuelle d'une cellule sortante. Dans la première phase de chaque période de cellule, le contrôleur d'espacement 41 fournit au gestionnaire 46 une adresse de départ a dans la mémoire de cellules 42, à partir de laquelle celui-ci commande l'écriture des 53 octets de la cellule entrante. Dans la seconde phase, l'adresse de départ a fournie par le contrôleur 41 sert au gestionnaire 46 pour commander la lecture des 53 octets stockés à partir de l'adresse a dans la mémoire 42 afin de délivrer la cellule sortante. Aux fins du présent exposé, on considérera que l'adresse a correspond au numéro de l'emplacement Chcell(a) de la mémoire 42 (la NCE) dans lequel la cellule est écrite ou lue, et que, par convention, a=0 signifie au gestionnaire 46 qu'il ne doit pas commander d'accès dans la mémoire 42 dans la phase considérée (pas de cellule entrante, ou aucune cellule à émettre, au cours de la période de cellule). La mémoire de cellules 42 est organisée de façon à contenir, pour chaque connexion virtuelle pour laquelle elle contient des cellules, une liste d'emplacements o ces cellules sont rangées en mode premier entré- premier sorti (FIFO). Ces listes sont gérées par le contrôleur 41 au moyen de la mémoire de pointeurs 43. Les pointeurs de la mémoire 43 comprennent un pointeur d'emplacement libre Ptrlibre, NCX pointeurs de tête de liste Ptrtête(IdCx) pour liIdCx NCX, NCX pointeurs de fin de liste Ptrfin(IdCx) pour lIIdCx NCX, et NCE pointeurs de suite Ptrsuite(i) pour lIi NCE, respectivement associés aux emplacements Chcell(1) à Chcell(NCE). Chaque identité IdCx d'une connexion virtuelle pour laquelle la mémoire 42 ne contient aucune cellule à un instant donné a son pointeur de fin de liste Ptrfin(IdCx) à zéro à cet instant, indiquant une liste vide (c'est le cas pour IdCx=2 dans l'exemple représenté sur la figure 12). Sinon, le numéro i de l'emplacement Chcell(i) o est stockée la cellule reçue depuis le plus longtemps selon la connexion IdCx est égal au pointeur de tête de liste Ptrtête(IdCx), et le numéro de celui o est stockée la cellule reçue depuis le moins longtemps selon la connexion IdCx est égal au pointeur de fin de liste Ptr fin(IdCx). La liste FIFO relative à une connexion IdCx est chaînée au moyen des pointeurs de suite: le pointeur de suite Ptr suite(i) associé à un emplacement Ch_cell(i) qui n'est pas une fin de liste désigne l'emplacement Chcell(Ptr_suite(i)) qui lui fait suite dans sa liste. Si l'emplacement Chcell(i) est une fin de liste, alors on impose Ptrsuite(i)=0. Dans l'exemple de la figure 12, la liste relative à IdCx=l est Ch cell(NCE-1), Ch cell(l) et Ch cell(3), et celle relative à IdCx=NCX se réduit à l'emplacement Chcell(6). Les emplacements de la mémoire 42 qui ne sont pas occupés par des cellules à émettre forment une liste LIFO d'emplacements libres, dont le premier est désigné par le pointeur Ptrlibre et les suivants par les pointeurs de suite successifs. Dans l'exemple de la figure 12, la liste d'emplacements libres est, dans l'ordre de sortie, Chcell(5), Ch cell(NCE) et Chcell(2). Le sommet de l'arbre de tri de l'espaceur de la figure 12 est accessible par le contrôleur d'espacement 41, qui assure les traitements du contrôleur 210 associé à l'étage 0 (figures 2 à 11). L'élément de données K(1), R(1) situé au sommet de l'arbre peut alors être stocké dans la mémoire de pointeurs 43 comme représenté, ou encore dans un registre spécial du contrôleur 41. Le contrôleur 41 échange les commandes et paramètres avec les étages 1 à n-1 du dispositif de tri 44 par l'intermédiaire du registre d'interface 261 qui, dans l'exemple considéré, est conforme à celui décrit en référence à la figure 7. Chaque élément de données fourni au dispositif de tri 44 consiste, pour la clé de tri K(i), en l'heure théorique d'émission d'une cellule stockée dans un emplacement de la mémoire 42 constituant une tête de liste, et pour la référence R(i), en l'identité IdCx de la connexion virtuelle dont relève cette cellule. La clé K(i) est donc une étiquette temporelle qui peut être définie, comme expliqué précédemment, par un compteur cyclique de L bits. Un compteur de L=16 bits par exemple, plus un bit pour distinguer les clés infinies, convient pour l'application à un espaceur ATM. Les références R(i) peuvent être sur 12 bits pour NCX=4096 connexions. Si l'espaceur est un espaceur réel, le contrôleur 41 compare la clé K(1) présente au sommet de l'arbre avec l'instant courant ta, et fournit a=Ptr tête(R(1)) au gestionnaire 46 si K(l) ta pour que soit émise la cellule qui, parmi celles situées dans des têtes de listes, a la plus petite heure théorique d'émission. Dans le cas d'un espaceur virtuel, le contrôleur 41 agit de la même manière, mais sans comparaison à l'instant courant: une cellule est émise à chaque période dès lors que K(1) A l'arrivée d'une cellule relevant d'une connexion IdCx dont la liste d'emplacements est vide (Ptr_fin(IdCx)=0), cette cellule est stockée à l'emplacement Chcell(Ptr libre), la liste des emplacements libres est mise à jour, et le contrôleur 41 commande l'insertion dans l'arbre de tri d'un élément de données dont la référence correspond à cet IdCx et dont la clé de tri est le TET calculé par le module 40 pour cette cellule. L'arrivée d'une cellule relevant d'une connexion IdCx dont la liste d'emplacements n'est pas vide ne modifie pas le contenu de l'arbre de tri, et nécessite seulement un stockage à l'emplacement Chcell(Ptr_libre), et une mise à jour de la liste des emplacements libres et de la liste associée à la connexion IdCx. L'émission d'une cellule relevant d'une connexion IdCx dont la liste d'emplacements contient cette seule cellule entraîne l'extraction simple de l'élément correspondant de l'arbre de tri, qui revient à un échange avec un élément de clé infinie. L'émission d'une cellule relevant d'une connexion IdCx dont la liste d'emplacements contient une ou plusieurs cellules après celle-ci entraîne l'échange entre l'élément correspondant de l'arbre et un nouvel élément dont la référence correspond à cet IdCx et dont la clé de tri est le temps théorique d'émission affecté à la cellule stockée en seconde position dans la liste, c'est-à-dire à l'emplacement Chcell(Ptrsuite(Ptrtête(IdCx))). Dans ce dernier cas, l'heure théorique d'émission formant la clé du nouvel élément peut être celle fournie par le module 40 pour la cellule stockée dans la nouvelle tête de liste. Il est alors utile de mémoriser les heures TET fournies par le module 40 au fur et à mesure de l'arrivée des cellules. Mais, il est préférable que le contrôleur 41 recalcule une heure théorique d'émission de la cellule au moment o il fournit le nouvel élément de données au dispositif de tri 44. A cette fin, la mémoire 43 contient un tableau dans lequel sont stockées les valeurs TT(IdCx) des intervalles d'espacement T alloués aux différentes connexions virtuelles IdCx, valeurs que le contrôleur 41 reçoit du module 40 aux moments o des cellules arrivent selon les connexions concernées. Lorsque K(1)sta, l'espaceur réel émet la cellule stockée dans Chcell(Ptrtête(R(1))), et commande dans l'arbre de tri un échange de l'élément K(1), R(1) situé au sommet avec un nouvel élément K(1)+TT(R(1)), R(1). En d'autres termes, l'heure théorique d'émission de la cellule stockée dans la nouvelle tête de liste est prise égale à celle de la cellule émise augmentée de l'intervalle de temps TT(IdCx) alloué à la connexion concernée. Cette façon de procéder présente deux avantages. Le premier est que si le module 40 affecte à deux cellules consécutives relevant d'une connexion IdCx des heures théoriques d'émission TET distantes de plus que TT(IdCx) en raison de leurs heures d'arrivée respectives et si la seconde de ces deux cellules est déjà écrite dans la mémoire 42 au moment o la première est émise, alors on peut avancer l'heure théorique d'émission de la seconde cellule par rapport à celle calculée par le module 40 ainsi que les heures théoriques d'émission de cellules suivantes de la connexion sans nuire aux propriétés d'espacement requises. On évite donc de retarder inutilement certaines cellules. Le second avantage est qu'on peut modifier dynamiquement et de façon immédiate les intervalles d'espacement alloués à certaines connexions. Lorsque l'encombrement de la liaison risque de provoquer une congestion, l'équipement peut par exemple augmenter l'intervalle d'espacement de certaines connexions virtuelles. Cette augmentation prend effet immédiatement, y compris pour les cellules de cette connexion contenues dans la mémoire 42 qui ne seront donc pas émises conformément à leurs TET initialement calculés. On évite ainsi un retard dans l'application des mesures préventives, retard qui pourrait conduire à ce que la congestion ne soit pas évitée. Bien entendu, l'autorisation d'augmenter l'intervalle d'espacement d'une connexion doit être convenue avec la source à l'établissement de cette connexion étant donné que, pour une même tolérance de CDV et un même comportement de la source, elle augmente la probabilité de destruction de cellules par la fonction de police. La figure 14 montre les opérations effectuées par le contrôleur 41 dans la première phase de chaque période de cellule, pendant les intervalles de temps 200 indiqués sur la seconde ligne de la figure 13. La première étape 201 consiste à déterminer si une cellule entrante parvient à l'espaceur pendant la période de cellule en question, et le cas échéant à acquérir l'identité IdCx de la connexion dont relève cette cellule ainsi que l'heure théorique d'émission TET et l'intervalle d'espacement T fourni pour cette cellule par le module 40. En l'absence de réception d'une cellule entrante, l'adresse a=0 est fournie au gestionnaire 46 de la mémoire de cellules à l'étape 202, puis le contrôleur 41 écrit dans le registre d'interface 261 une commande d'absence de modification du contenu de l'arbre binaire (A1=00) à l'étape 203. En présence d'une cellule entrante, le pointeur d'emplacement libre Ptrlibre est lu dans la mémoire de pointeurs 43 à l'étape 204, et affecté à l'adresse a qui est fournie au gestionnaire 46 à l'étape 202. Si a=0 (pas de cellule reçue ou plus d'emplacement libre dans la mémoire 42), le gestionnaire 46 ne procède à aucune écriture dans la mémoire 42 dans la période de cellule courante, et le contrôleur d'espacement 41 exécute l'étape 203 précitée pour que le contenu de l'arbre binaire reste inchangé. Sinon, le contrôleur 41 passe à l'étape 205 de lecture de pointeurs. A l'étape 205, le numéro Ptr suite(a) du second emplacement de la liste d'emplacements libres, le numéro Ptrtête(IdCx) de la tête de liste relative à la connexion IdCx et le pointeur Ptrfin(IdCx) de cette liste sont respectivement affectés aux variables b, c et d. A l'étape 206, le tableau TT des intervalles d'espacement est mis à jour pour la connexion IdCx selon la valeur T reçue du module 40, l'adresse a est écrite dans la mémoire 43 en tant que pointeur de fin de la liste d'emplacements relative à la connexion IdCx, le pointeur de suite Ptrsuite(a) associé à cet emplacement est mis à zéro pour indiquer qu'il s'agit désormais d'une fin de liste, et le pointeur d'emplacement libre Ptrlibre est mis à jour avec la variable b. Si la liste d'emplacements relative à la connexion IdCx n'était pas vide (c'est-à-dire si d*0 lors de la comparaison 207), aucune modification du contenu de l'arbre de tri n'est nécessaire comme expliqué précédemment, de sorte que le contrôleur d'espacement 41 exécute l'étape 203 précitée après avoir mis à jour le pointeur de suite associé à la précédente fin de liste avec l'ancien pointeur d'emplacement libre à l'étape 208: Ptrsuite(d)=a. * Si la comparaison 207 montre que d=0, le contrôleur 41 achève la mise à jour des pointeurs de liste à l'étape 209 en écrivant Ptr tête(IdCx)=a. Il procède ensuite à l'insertion du nouvel élément de données TET, IdCx dans l'arbre de tri. Les opérations qu'il effectue pour cela correspondent à celles effectuées par le contrôleur 260 de l'étage 0 de l'arbre binaire, c'est-à-dire aux étapes 110 à 119 de l'organigramme des figures 10A, lOB et 4C. A l'étape 210, le contrôleur 41 affecte aux variables k et r la clé de tri K(1) et la référence R(1) de l'élément de données lu au sommet de l'arbre, puis il compare la clé k à l'heure théorique d'émission TET reçue du module 40 à l'étape 201 (comparaison 211). Si TETkk, la commande d'insertion doit être propagée vers l'étage 1 de l'arbre de tri, de sorte que le contrôleur 41 écrit A1=l0, B1=TET et Cl=IdCx dans le registre pipe-line 261 à l'étape 212, le champ de désignation de feuille du registre 261 recevant le numéro d'une feuille libre G1 depuis le dernier contrôleur 21n_1 du dispositif de tri 44, comme indiqué sur la figure 12. Si la comparaison 211 montre que TET Bl=k, Cl=r précédemment situé au sommet à l'étape 215. En ce qui concerne la synchronisation du contrôleur 41 avec ceux du dispositif de tri 44, la figure 14 montre que l'instant a0 correspondant à celui dont il a été question en référence aux figures 5 et 9, se trouve après l'étape 203, 212, 214 ou 215 d'écriture par le contrôleur 41 dans le registre pipe-line 261. A compter de cet instant ao, le contrôleur 211 de l'étage 1 peut commencer à traiter la commande (instant a'1 indiqué sur la figure 13). La figure 15 montre les opérations effectuées par le contrôleur 41 dans la seconde phase de chaque période de cellule, pendant les intervalles de temps 300 indiqués sur la seconde ligne de la figure 13. La première étape 301 consiste à lire la clé de tri K(1) et la référence R(1) de l'élément de données situé au sommet de l'arbre, et à les affecter respectivement aux variables k et r. La comparaison suivante 302 sert à décider si une cellule est à émettre ou non. Dans le cas d'un espaceur réel, cette étape 302 consiste à comparer la clé de tri k à l'heure courante ta. Dans le cas d'un espaceur virtuel, elle consiste simplement à examiner si la clé k est finie ou infinie. Si k>ta (cas d'un espaceur réel), le contrôleur 41 n'effectue aucune opération dans la seconde phase de la période de cellule, sauf l'écriture dans le registre pipe-line 261 d'une commande Al=00 d'absence de modification du contenu de l'arbre binaire (étape 303). S'il ressort de l'étape 302 qu'une cellule est à émettre, le numéro de l'emplacement situé en tête de liste relativement à la connexion r, ainsi que le pointeur de suite associé à cet emplacement sont lus dans la mémoire 43 et respectivement affectés aux variables a et b à l'étape 304. L'adresse a peut alors être fournie au gestionnaire 46 à l'étape 305 pour que celui-ci émette la cellule stockée à cette adresse (quatrième ligne de la figure 13). Si la liste d'emplacements relative à la connexion r=R(1) identifiée dans l'élément situé au sommet de l'arbre ne contenait qu'une seule cellule, alors la variable b est à 0. Ceci est détecté par la comparaison 306. Dans ce cas, le pointeur de fin de liste PTR fin(r) est mis à zéro à l'étape 307 pour indiquer que cette liste ne contient plus aucune cellule, et à l'étape 308 une valeur infinie est affectée à l'heure théorique d'émission TET qui constituera la clé de tri du nouvel élément à échanger dans l'arbre binaire. Si bt0 à l'étape 306, la liste d'emplacements contient plusieurs cellules, et la variable b est écrite à l'étape 309 en tant que pointeur de tête de cette liste, et, à l'étape 311, la cellule stockée dans l'emplacement Ch cell(b) reçoit une nouvelle heure théorique d'émission TET égale à la clé k=K(1) lue à l'étape 301, augmentée d'une variable T prise égale à l'intervalle d'espacement TT(r) de la connexion concernée, lu à l'étape 310. La commande d'échange (A1=ll) de l'élément K(1), R(1) situé au sommet de l'arbre avec le nouvel élément B1=TET, C1=r est écrite dans le registre pipe-line 261 à l'étape 312. L'instant a0 à partir duquel le contrôleur 211 du dispositif de tri 44 peut commencer à traiter la commande se situe après l'étape 312 (ou l'étape 303), comme le montre la figure 15. Le contrôleur d'espacement 41 doit attendre l'instant 'o02P1 (voir figure 13) avant de récupérer dans le registre 261 l'élément retourné depuis l'étage 1 de l'arbre de tri. Dans l'exemple illusté par la figure 15, le contrôleur 41 met à jour la liste d'emplacements libres dans l'intervalle [c0, '0]: à l'étape 313, il lit le pointeur d'emplacement libre Ptr libre et l'affecte à la variable c; puis, à l'étape 314, il écrit dans la mémoire 43 Ptr suite(a)=c et Ptrlibre=a. Une fois que le contrôleur de l'étage 1 de l'arbre a retourné l'élément ayant la plus petite clé dans le registre 261, cet élément est lu par le contrôleur 41 à l'étape 315, puis écrit au sommet de l'arbre à l'étape 316. La figure 16 montre une variante d'espaceur de cellules ATM capable de tenir compte d'index de priorité affectés aux connexions virtuelles. On note u cet index de priorité, dont on suppose qu'il prend ses valeurs entre 1 et U. L'espaceur de la figure 16 comporte U dispositifs de tri 44(u) ayant chacun un registre pipe-line 261(u) entre son étage 0 et son étage 1. Le fonctionnement de chaque dispositif de tri 44(U) est le même que celui précédemment décrit. Le sommet de chaque arbre binaire est supposé contenu dans la mémoire de pointeurs 43 (dont le reste du contenu n'est pas représenté sur la figure 16) et géré par le contrôleur d'espacement 41. Le fonctionnement de la mémoire de cellules 42 et de son gestionnaire 46 est le même que précédemment pour l'écriture et la lecture des cellules aux adresses a fournies par le contrôleur 41. Chacun des dispositifs de tri 44(u) traite des éléments de données dont les références R(U) (i) désignent des identités de connexions virtuelles IdCx ayant le même index de priorité u. Parmi ces éléments, le dispositif 44(u) sélectionne à son sommet (dans la mémoire 43 dans l'exemple représenté) un élément dont la clé K(U)(1) est minimale. Le contrôleur d'espacement est alors agencé pour commander l'émission de la cellule contenue dans la tête de liste relative à la connexion identifiée dans celui des éléments de données situés dans les sommets des arbres qui présente la plus petite clé de tri. En cas d'égalité entre plusieurs clés de tri minimales K(u) (1), le contrôleur d'espacement 41 retient la connexion qui a l'index de priorité le plus grand parmi les ex aequos. Cette gestion des index de priorité ne complique pas de façon significative le contrôleur d'espacement 41. En ce qui concerne les opérations effectuées à la réception d'une cellule, l'organigramme de la figure 14 est inchangé, les étapes 210 à 216 étant effectuées à l'égard de l'arbre de tri 44(u) qui correspond à l'index de priorité u reçu par le contrôleur 41 en même temps que l'identité de connexion IdCx. En ce qui concerne les opérations effectuées dans la seconde phase de chaque période de cellule (figure 15), les étapes 301, 302 de lecture de l'élément situé au sommet de l'arbre et de comparaison de la clé de cet élément à l'heure courante sont effectuées successivement dans l'ordre décroissant des index de priorité jusqu'à ce que, pour un index u, l'étape 302 montre que l'heure courante a été atteinte. Dans ce cas, les étapes 304 à 316 sont exécutées sans changement, l'écriture 312 et la lecture 315 étant effectuées dans le registre 261(u), et l'écriture 316 dans le sommet de l'arbre de tri concerné. Dans l'exemple de la figure 16, les U dispositifs de tri sont distincts. On note que ces différents dispositifs de tri pourraient partager leurs moyens de contrôle, à savoir leurs contrôleurs 21q et leurs registres pipe-line 26q. La figure 17 illustre une telle implémentation dans le cas particulier o U=2. Dans le mode de réalisation de la figure 17, les U=2 arbres de tri partagent les registres d'interface 26q et les contrôleurs d'étage 21q Seuls leurs étages de mémorisation q(1),20q(2) (qÄ0) sont différenciés. Les deux étages 0 sont compris dans la mémoire de pointeurs 43. Pour chaque étage qÄl, les étages correspondants 20q(1),2Cq(2) des deux arbres sont formés par deux zones distinctes de la mémoire gérée par le contrôleur 21q, différenciées sur la base d'un bit d'adresse supplémentaire constitué par exemple par l'index binaire de priorité formant alors le bit de poids le plus fort du champ Dq des registres pipe-line. REVENDICATIONS 1. Dispositif de tri d'éléments de données incluant chacun une clé de tri respective, comprenant: - des moyens de mémorisation organisés selon un arbre binaire de 2n-1 noeuds numérotés de 1 à 2n-1 aptes à contenir chacun un élément de données et répartis en n étages successifs numérotés de 0 à n-l, l'étage q comprenant les noeuds 2q à 2q+ l-l; et - des moyens de contrôle de l'arbre binaire pour distribuer les éléments à trier dans l'arbre de façon à vérifier une condition d'ordonnancement selon laquelle, pour chaque entier i compris entre 1 et 2n-1-1 tel que le noeud i contienne un élément à trier, chacun des noeuds 2i et 2i+1 soit ne contient pas d'élément à trier, soit contient un élément dont la clé de tri est supérieure ou égale, au sens d'une relation d'ordre déterminée, à la clé de tri de l'élément contenu dans le noeud i, dans lequel les moyens de contrôle répondent à des commandes de modification du contenu de l'arbre binaire qui incluent des commandes d'insertion d'un nouvel élément à trier, caractérisé en ce que les moyens de contrôle comprennent m contrôleurs successifs (21q) associés chacun à un étage (20q) ou à plusieurs étages consécutifs de l'arbre binaire, m étant un entier compris entre 2 et n, et n-1 registres d'interface (26q) entre étages successifs, parmi lesquels chacun des m-1 registres d'interface entre paires d'étages associés à des contrôleurs différents constitue un registre pipe-line, et en ce que chaque commande de modification du contenu de l'arbre binaire est propagée de l'étage 0 vers l'étage n-1 au moyen des registres d'interface, le ou les registres pipe-line permettant un travail en parallèle des contrôleurs. 2. Dispositif selon la revendication 1, dans lequel, pour chaque entier q compris entre 1 et n-l, le registre (26q) d'interface entre l'étage q- 1 et l'étage q comporte un premier emplacement pour recevoir une commande (Aq) propagée d'un noeud de l'étage q-1 vers un noeud de l'étage q, un second emplacement pour recevoir une identification (Dq) dudit noeud de l'étage q-1 auquel le contrôleur associé (21q_1) accède lors du traitement de ladite commande, et un troisième emplacement pour recevoir un élément de données (BqCq) transmis depuis ou vers ledit noeud de l'étage q-1. 3. Dispositif selon la revendication 2, dans lequel, pour chaque entier q compris entre 1 et n-l, le registre (26q) d'interface entre l'étage q- 1 et l'étage q comporte un quatrième emplacement pour recevoir un bit (Eq) désignant, avec l'identification (Dq) contenue dans le second emplacement, le noeud de l'étage q vers lequel est propagée ladite commande et auquel le contrôleur associé (21q) accède lors du traitement de la commande (Aq) contenue dans le premier emplacement si celle-ci se rapporte à l'insertion d'un nouvel élément dans l'arbre. 4. Dispositif selon la revendication 3, dans lequel, pour chaque entier q compris entre 1 et n-l, les second et quatrième emplacements du registre (26q) d'interface entre l'étage q-1 et l'étage q font partie d'un champ de désignation de feuille de n-1 bits contenant, lors de la propagation d'une commande d'insertion d'un nouvel élément, les n-1 bits de poids les plus faibles du numéro d'une feuille libre, c'est-à-dire d'un noeud libre de l'étage n-1, en direction de laquelle est propagée ladite commande, le noeud de l'étage q vers lequel est propagée ladite commande étant désigné par les q bits de poids les plus forts du contenu du champ de désignation de feuille. 5. Dispositif selon la revendication 4, dans lequel le contrôleur (21n_1) associé à l'étage n-1 de l'arbre gère une première liste de feuilles libres contenant un nombre déterminé n' de feuilles libres incluant chaque feuille en direction de laquelle une commande d'insertion d'un nouvel élément est en cours de propagation dans l'arbre, et une seconde liste de feuilles libres contenant les feuilles libres non contenues dans la première liste, dans lequel, lors de l'inscription d'une commande d'insertion d'un nouvel élément à trier dans le premier emplacement du registre d'interface entre les étages 0 et 1, les n-1 bits de poids les plus faibles du numéro d'une feuille libre de la première liste, différente de chaque feuille en direction de laquelle une autre commande d'insertion est en cours de propagation dans l'arbre, sont inscrits dans le champ de désignation de feuille du registre d'interface entre les étages 0 et 1, dans lequel, lors de l'extraction d'un élément depuis une feuille de l'arbre, cette feuille est incluse dans la seconde liste de feuilles libres, et dans lequel, lorsqu'une commande d'insertion d'un nouvel élément parvient à l'étage n- 1 dans le registre d'interface (26n_1) entre les étages n-2 et n-1, le contrôleur associé (21n_1) enlève de la première liste de feuilles libres la feuille (Gnl) désignée par les n-1 bits du champ de désignation de feuille dudit registre d'interface, et la remplace par une feuille (P) de la seconde liste. 6. Dispositif selon la revendication 5, dans lequel n' 7. Dispositif selon la revendication 5 ou 6, dans lequel la première liste de feuilles libres est stockée dans un registre à décalage (30) rebouclé sur lui-même, ayant n' emplacements recevant chacun les n-1 bits de poids les plus faibles d'un numéro de feuille. 8. Dispositif selon la revendication 5, 6 ou 7, dans lequel la seconde liste de feuilles libres est stockée en mode dernier entré-premier sorti sous la forme d'une chaîne de pointeurs, chaque pointeur représentant le numéro d'une feuille, le premier pointeur (P) de la chaîne étant stocké à un emplacement spécifique, et le i-ième pointeur de la chaîne (iÄ2) étant stocké dans la feuille dont le numéro est représenté par le (i-1)-ième pointeur de la chaîne. 9. Dispositif selon la revendication 5 ou 6, dans lequel les première et seconde listes sont stockées sous la forme d'une file d'attente logique de type premier entré- premier sorti ayant au moins n' emplacements, la première liste étant constituée par les n' derniers emplacements de la file d'attente logique et la seconde liste par les emplacements précédents de la file d'attente logique. 10. Dispositif selon la revendication 2 ou 3, dans lequel, p étant le nombre, supérieur ou égal à 1 et infé- rieur à n-1, d'étages de l'arbre binaire associés au m-ième contrôleur, les moyens de mémorisation comprennent au moins 2n-p-l-1 emplacements (25) pour contenir des compteurs différentiels (A(i)) respectivement associés aux couples de noeuds 2i et 2i+1 de l'arbre pour i allant de 1 à 2n-p-1_l, chaque compteur différentiel associé à un couple de noeuds ayant une valeur indicative de la différence entre les nombres d'éléments de données respectivement contenus dans les descendants des deux noeuds dudit couple, les descendants d'un noeud i d'un étage q étant définis comme les 2n-q-1 noeuds de l'arbre binaire dont les numéros sont de la forme i2J+j' o j et j' sont des entiers tels que 0Oj couple de noeuds 2i et 2i+1. 11. Dispositif selon la revendication 10, dans lequel les emplacements (25) des moyens de mémorisation contenant les compteurs différentiels (A(i)) associés aux couples de noeuds d'un étage sont accessibles par le même contrôleur que les noeuds dudit étage. 12. Dispositif selon l'une quelconque des revendications 2 à 11, dans lequel les moyens de mémorisation comprennent 2n-1-1 emplacements (23) pour contenir des bits d'orientation (F(i)) respectivement associés aux couples de noeuds 2i et 2i+1 de l'arbre pour i allant de 1 à 2n-1-l, chaque bit d'orientation associé à un couple de noeuds pointant l'un des noeuds dudit couple contenant un élément dont la clé de tri est inférieure ou égale à la clé de tri de l'élément contenu dans l'autre noeud dudit couple, et dans lequel, lorsque le registre d'interface (26q) entre l'étage q-1 et l'étage q (lq n-1) reçoit une commande (Aq) d'extraction ou d'échange d'un élément dans son premier emplacement et l'identification (Dq) d'un noeud i de l'étage q-1 dans son second emplacement, ladite commande d'extraction ou d'échange est propagée vers le noeud 2i ou 2i+1 de l'étage q selon la valeur du bit d'orientation (F(i)) associé au couple de noeuds 2i et 2i+1. 13. Dispositif selon la revendication 12, dans lequel les emplacements (23) des moyens de mémorisation contenant les bits d'orientation (F(i)) associés aux couples de noeuds d'un étage sont accessibles par le même contrôleur que les noeuds dudit étage. 14. Espaceur de cellules ATM transmises selon un ensemble de connexions virtuelles, comprenant une mémoire de cellules (42) dans laquelle des cellules entrantes sont écrites et des cellules sortantes sont lues, et des moyens (40,41) pour attribuer une heure théorique d'émission (TET) à chaque cellule stockée dans la mémoire de cellules, caractérisé en ce qu'il comprend en outre des moyens de contrôle d'espacement (41,46) pour gérer la mémoire de cellules (42), à l'aide d'une mémoire de pointeurs associée (43), de façon que la mémoire de cellules comporte, pour chaque connexion virtuelle pour laquelle elle contient des cellules, une liste d'emplacements o ces cellules sont rangées en mode premier entré-premier sorti entre une tête de liste et une fin de liste, et des moyens de tri (41,44) pour ordonnancer des éléments de données (K(i), R(i)) comportant chacun une identité de connexion virtuelle et une clé de tri consistant en l'heure théorique d'émission de la cellule contenue dans la tête de liste relative à ladite connexion virtuelle, et pour sélectionner au moins un élément de données ayant une clé de tri minimale, en ce que les moyens de contrôle d'espacement sont agencés pour commander l'émission d'une cellule contenue dans la tête de liste relative à une connexion virtuelle identifiée dans un élément de données sélectionné par les moyens de tri, et en ce que les moyens de tri comprennent au moins un dispositif de tri selon l'une quelconque des revendications 1 à 13, dont le noeud 1 de l'étage 0 contient ledit élément sélectionné. 15. Espaceur selon la revendication 14, dans lequel les moyens pour attribuer une heure théorique d'émission à chaque cellule stockée dans la mémoire de cellules comprennent des moyens (40) de calcul récursif d'une heure théorique d'émission (TET) pour chaque cellule relevant d'une connexion virtuelle sur la base de paramètres incluant au moins l'heure d'arrivée (ta) de ladite cellule et un intervalle d'espacement (T) alloué à ladite connexion, dans lequel, à l'arrivée d'une cellule relevant d'une connexion virtuelle pour laquelle la mémoire de cellules (42) ne contient aucune cellule, les moyens de tri (41,44) reçoivent un nouvel élément de données comportant l'identité de ladite connexion virtuelle et, comme clé de tri, l'heure théorique d'émission de ladite cellule fournie par les moyens (40) de calcul récursif, et dans lequel, à l'émission d'une première cellule relevant d'une connexion virtuelle pour laquelle la mémoire de cellules comporte une liste d'emplacements contenant en outre au moins une seconde cellule, les moyens de tri reçoivent un nouvel élément de données comportant l'identité de ladite connexion virtuelle et, comme clé de tri, une heure théorique d'émission de ladite seconde cellule égale à l'heure théorique d'émission de ladite première cellule augmentée de l'intervalle d'espacement alloué à ladite connexion. 16. Espaceur selon la revendication 14 ou 15, dans lequel des index de priorité (u) sont affectés aux connexions virtuelles, dans lequel les moyens de tri comportent plusieurs dispositifs de tri (44(u)) selon l'une quelconque des revendications 1 à 13 traitant chacun des éléments de données comportant des identités de connexions virtuelles de même index de priorité et sélectionnant chacun, parmi les éléments de données qu'il traite, un élément ayant une clé de tri minimale (K(U) (1)), et dans lequel les moyens de contrôle d'espacement sont agencés pour commander l'émission d'une cellule contenue dans la tête de liste relative à la connexion identifiée soit dans celui des éléments de données sélectionné qui présente la plus petite clé de tri soit, si plusieurs dispositifs de tri sélectionnent chacun un élément de données dont la clé de tri est la plus petite, dans celui des éléments de données sélectionnés par ces dispositifs de tri pour lequel l'index de priorité est maximal. 17. Espaceur selon la revendication 16, dans lequel les différents dispositifs de tri comprennent chacun des moyens de mémorisation respectifs (20q(1) 20q(2)) et partagent leurs moyens de contrôle (21q, 26q).