FR 2977048 A1 20121228 FR 1101935 A 20110623 PROCEDE DE CALCUL DE LA DISTRIBUTION DE PROBABILITÉ DE LA DURÉE DE TRAVERSÉE D'UN COMMUTATEUR DE COMMUNICATION MULTIPLEXÉ Domaine de l'invention La présente invention a pour objet un procédé de calcul de la distribution de probabilité de la durée de traversée d'un commutateur de communication multiplexé. 10 Etat de l'art Les systèmes avioniques récents sont bâtis autour de réseaux de communication multiplexés de type Avionics Full-DupleX switched Ethernet (AFDX, voir ARINC 664, partie 7). Ce sont des réseaux de type Ethernet full-duplex fiabilisés, développés et standardisés par les industriels de l'aéronautique ; ils 15 équipent des avions comme l'Airbus A380, et le Boeing 787. Conçus pour l'échange de données entre applications critiques du point de vue sûreté de fonctionnement, ils réservent de la bande passante pour chaque flux émetteur de données et leur garantissent une qualité de service (QoS). Ils s'appuient sur l'infrastructure Ethernet et une topologie plus ou moins en étoile. Le débit est de 100Mb/s. 20 Les applications utilisent la notion de liens virtuels (VL) pour s'envoyer leurs données. Les VL abstraient la couche physique du réseau ensembles de câbles entre calculateurs et commutateurs - vers une couche logique - ensembles de liens entre applications. Un VL représente un bus de communication multicast : une seule source, plusieurs destinations. Le chemin d'un VL de sa source à sa destination prend 25 la forme d'un arbre. Les trames émises par les VL sont séparées d'un intervalle de temps minimum appelé période et leurs tailles (nombre de bits) sont bornées ; ces paramètres dépendent du VL Cette couche logique est équivalente à un réseau de communication de type ARINC 429. L'utilisation de beaucoup moins de câbles est le principal avantage de l'AFDX sur son prédécesseur. Cela entraîne un gain de poids 30 des aéronefs qui est non négligeable. Cependant, ce nouveau type d'organisation pose des problèmes spécifiques. Les durées de traversée de bout en bout des données qui transitent sur un réseau AFDX ne sont pas déterministes. Or, pour la certification de ces réseaux, il est5 indispensable d'être capable de borner supérieurement ces durées. Ces bornes doivent être absolues et ne jamais être dépassées dans le cadre du fonctionnement nominal du réseau (c'est-à-dire en l'absence de panne). Elles sont déterminées en calculant la pire durée de traversée des données à travers chaque élément du réseau. Dans la littérature, on retrouve les dénominations suivantes (les abréviations anglo-saxonnes WCTT et WEED sont les plus courantes) : - en français : pire latence de bout en bout, pire délai de bout en bout et pire durée de traversée, - en anglais : Worst Case Transit Time (WCTT) et Worst case End-to-End 10 Delay (WEED). Si ces bornes «pire cas» permettent aux avionneurs de certifier leurs réseaux, leur pessimisme entraîne une sous-utilisation de ces derniers. Si cette situation devait perdurer, elle conduirait à des limitations opérationnelles du réseau ou à des surcoûts de certification difficilement supportables. 15 Les trames qui arrivent dans le commutateur sont triées dans des files d'attente selon la priorité de leurs VL sources. Dans ces files, les nouvelles trames sont placées à la fin et les trames sont retirées au début (on parle d'une file en fonctionnement FIFO : première arrivée, première servie). Lorsque le commutateur est en train d'envoyer/transmettre une trame, il 20 continue jusqu'à ce que l'envoi/le transfert se termine, il n'y a pas de préemption. Tant qu'il y a des trames à transmettre, le commutateur sélectionne la première trame de la file d'attente avec la priorité la plus élevée pour la transmettre. Si cette file est vide, il sélectionne la file suivante, et ainsi de suite jusqu'à ce que toutes les files soient vides. La durée de traversée d'un commutateur par une trame est égale au laps 25 de temps pendant lequel la trame attend dans sa file d'attente plus la durée de transmission de la trame sur le réseau. Cette durée de transmission dépend de la taille de la trame et du débit en sortie du commutateur. Dans le contexte des réseaux AFDX, beaucoup de paramètres sont connus et déterministes comme le débit du réseau, la taille d'une trame, sa durée de 30 transmission, etc. Les phénomènes non déterministes se résument notamment aux déphasages entre les premières trames émises par les VL et à la durée d'attente des trames dans leurs files d'attente en cas de contention. Le procédé de l'invention traite du second phénomène. Il existe principalement deux approches pour calculer les WEED sur un réseau lors de son fonctionnement nominal : le calcul réseau et la méthode des trajectoires. Il existe une troisième catégorie beaucoup moins employée dans la pratique : les approches énumératives. Elles s'appuient sur des techniques issues du « model-checking » et l'exploration exhaustive d'espaces d'états. En théorie, elles permettent de connaître l'ensemble des couples durée de traversée du réseau/fréquence d'apparition pour chaque VL. Calcul réseau La théorie du calcul réseau (network calculus) a été proposée par R.L. Cruz dans les années 1990 [R.L. Cruz, A calculus for network delays I & H, IEEE Transaction on Information Theory, 1991]. Ses deux objectifs étaient les suivants : - évaluer la taille minimale que devaient avoir les mémoires tampons des éléments d'un réseau pour ne perdre aucune trame ; - calculer le laps temps maximal pendant lequel les trames pouvaient rester dans les files d'attente de ces tampons. La démarche consiste à affecter une courbe d'arrivée maximale à chaque VL et une courbe de service minimale à chaque élément du réseau (émetteurs des VL et commutateurs). Les bornes «pire cas » et les tailles maximales des files d'attente s'expriment dans une algèbre « min-plus » (celle du calcul réseau) au moyen de ces courbes. Les courbes d'arrivée caractérisent le trafic généré par un VL et les courbes de service représentent ce que le commutateur peut envoyer compte tenu de ce qu'il est déjà en train d'envoyer. Ces courbes sont des approximations, vers le haut et le bas respectivement, du comportement de ce qu'elles modélisent et cela conduit à des résultats de durées de traversée conservatifs et adaptés aux besoins d'une démarche de certification. Dans la pratique cependant, les valeurs des bornes sont souvent trop conservatives (on dit aussi pessimistes) et ne reflètent plus une réalité d'utilisation. Méthode des trajectoires La théorie en a été proposée par S. Martin dans son mémoire de thèse en 2004 [S. Martin, Maîtrise de la dimension temporelle de la qualité de service dans les réseaux, Université Paris XII, 2004]. Elle s'appuie sur l'analyse holistique, proposée par Tindell et Clark en 1994 [K. W. Tindell and J. Clark, Holistic Schedulability Analysis for Distributed Hard Real-Time Systems, Euromicro Journal - Special Issue on Parallel Embedded Real-Time Systems, 1994], qui est une analyse d'ordonnançabilité pour des systèmes fonctionnant en temps réel, distribués, pour lesquels les tâches communiquent par passage de messages. Il s'agit de trouver un temps de réponse dans le pire cas pour un ensemble de tâches distribuées. Le temps de réponse d'une tâche dans une chaîne de transactions constitue une gigue d'activation pour la suivante, qu'il faut majorer. La méthode des trajectoires cherche à ne considérer que les pires cas réalistes, c'est-à-dire les scénarios d'ordonnancement pouvant réellement se produire lors de l'exécution du système, ils sont appelés trajectoires. L'élaboration d'une borne pire cas sur le retard de bout en bout se fait à partir de ces trajectoires. Cette façon d'écarter le maximum de scénarios impossibles améliore sensiblement les bornes calculées et les rapproches de véritables maxima observés. Plus récente et moins pessimiste (dans la plupart des cas) que le calcul réseau, cette approche connaît un intérêt croissant de la part des avionneurs et des équipementiers. Approches énumératives L'utilisation du model checking temporisé a été envisagée pour la vérification de propriétés de systèmes embarqués distribués [F. Carcenac, F. Boniol and Z. Mammeri, Yerification of an Avionic System Using Timed Model Checking, IsoLA - First International Symposium on Leveraging Applications of Formal Methods, 2004]. Les ressources de communication sont modélisées sous forme de système à files d'attente déterministes avec tampons de tailles bornées (en utilisant le formalisme des automates temporisés). La vérification s'effectue en utilisant des model checkers comme UPPAAL [T. Amnell et al., UPPAAL: now, next, and future, Springer-Verlag New York, Inc. - Modeling and verification of parallel processes, 2001] ou SMV [K.L. McMillan, Symbolic Model Checking, Kluwer Academic Publ., 1993] par exemple. En théorie, il s'agit de la seule méthode capable de calculer les bornes pire cas exactes. Dans la pratique cependant, l'explosion combinatoire de l'espace d'états à explorer rend inabordable le traitement direct de systèmes réalistes. Il faut alors recourir à des abstractions qui peuvent porter préjudice à la précision (nombre de propriétés qualitatives restent néanmoins vérifiables) [F. Carcenac, Une méthode d'abstraction pour la vérification des systèmes embarqués distribués : application à l'avionique, École Nationale Supérieure de l'Aéronautique et de l'Espace, 2005]. Dans la pratique, l'explosion combinatoire des approches énumératives contraint à utiliser des modèles trop simplifiés des réseaux AFDX. De fait, les bornes calculées par ces méthodes sont aussi pessimistes et pour l'heure, il n'est pas possible de calculer des bornes non pessimistes autres que pour des systèmes très simples à l'aide de ces approches. Résumé de l'invention La présente invention a pour objet un procédé de calcul de durée de traversée d'un commutateur de communication multiplexé par une trame d'un lien virtuel (désigné également ci-après par VL) qui soit déterministe et permette de calculer la distribution de probabilité des durées de traversée dans son ensemble, et en particulier son maximum. Dans le contexte des réseaux avioniques, et en particulier dans celui de l'AFDX, beaucoup de paramètres sont parfaitement connus et déterministes, par exemple la durée de transmission d'une trame de taille connue, la durée du traitement d'une trame dans un commutateur, etc. Les phénomènes non déterministes se résument au temps d'attente des trames dans une file d'attente en cas de contention. Dans cette démarche, seule la combinatoire conduisant aux temps d'attente maximaux est caractérisée. Selon le procédé de l'invention, les états possibles de la file d'attente sont regroupés en macro-états, de sorte que chaque macro-état corresponde à un temps d'attente différent de la classe de trame considérée. L'utilisation des macro-états et de l'instant de l'arrivée des trames permet, pour un coût moindre que selon l'état de l'art, de suivre l'évolution du taux de remplissage de la file et donc le temps que les trames restent dans cette file Plus précisément, le procédé de l'invention est un procédé d'estimation déterministe de la distribution de probabilité, pour un intervalle de temps considéré, des durées de traversée, par une trame d'un lien virtuel considéré, d'un commutateur de communication multiplexé à une seule file d'attente FIFO (First In First Out) d'un réseau de communication, plusieurs liens virtuels indépendants les uns des autres arrivant à la file d'attente dudit commutateur, la taille de la mémoire tampon associée à ladite file d'attente étant supérieure ou égale aux besoins, les périodes d'émission de trames de chaque lien virtuel et les durées de transmission de ces trames par ledit commutateur étant constantes, ces constantes pouvant être différentes d'un lien virtuel à un autre, caractérisé en ce qu'il comporte l'étape suivante : 100 : Classement desdites trames en classes d'équivalence selon leur durée de transmission, chaque trame d'une classe d'équivalence étant alors une trame équivalente pour ladite classe. Selon un mode de réalisation avantageux, le procédé de l'invention comporte en outre les étapes suivantes : 200 : Calcul de la table des motifs, cette étape comprenant les sous-étapes suivantes : 1. 230 : génération de l'ensemble des n-uplets constitués des nombres de trames de chaque classe d'équivalence pouvant arriver à un instant quelconque dans la file d'attente dudit commutateur, chaque n-uplet, appelé motif, formant une ligne d'un tableau appelé « table des motifs », 2. 270 : calcul, pour chaque motif, de sa durée de transmission totale, 25 300 : Calcul de la ligne du temps définie comme étant une séquence de triplets (date, trames arrivées à ladite date, backlog avant l'arrivée des trames à ladite date), où les dates sont tous les instants considérés où arrive au moins une trame dans ledit commutateur, ces instants étant compris dans l'intervalle de temps considéré d'une durée égale au PPCM (Plus Petit Commun Multiple) desdites périodes, et où le backlog est défini comme étant la durée restante nécessaire pour transmettre l'ensemble des trames encore présentes dans ladite file d'attente juste avant ladite date, et pour chacune des dates listées dans la ligne du temps on effectue les étapes 400 à 800 : 400 : Détermination du motif maître principal de la date considérée, défini comme étant le motif de la table des motifs correspondant aux trames arrivées à ladite date, et pour chaque classe d'équivalence représentée dans le motif maître principal on effectue les étapes 500 à 800 : 500 : Sélection d'une trame équivalente et considération du motif maître par rapport à cette trame équivalente sélectionnée, le motif maître considéré étant égal au motif maître principal dont la composante de la classe d'équivalence de ladite trame équivalente sélectionnée est diminuée d'une unité, 600 : Détermination des motifs esclaves par rapport à la trame équivalente sélectionnée et au motif maître considéré, les motifs esclaves étant des sous-ensembles dudit motif maître considéré, chaque sous-ensemble représentant un cas différent de positionnement devant la trame équivalente sélectionnée, dans ladite file d'attente, de trames équivalentes dudit motif maître considéré, 700 : Calcul, à l'aide de la ligne du temps et de la table des motifs, de la distribution de probabilité, pour la date considérée, des durées de traversée par la trame équivalente sélectionnée, chacune de ces durées, en abscisse de ladite distribution, valant pour un motif esclave donné et se calculant en ajoutant à la durée d'attente associée au backlog, la somme des durées de transmission des trames dudit motif esclave (c'est-à-dire sa durée totale de transmission) et la durée de transmission de ladite trame équivalente sélectionnée, chacune des probabilités, en ordonnée de ladite distribution, étant égale à la probabilité dudit motif esclave connaissant ladite trame équivalente sélectionnée, 800 : Calcul, pour chaque lien virtuel dont les trames sont de la classe d'équivalence considérée, de la distribution de probabilité, pour la date considérée, des durées de traversée par une trame d'un lien virtuel considéré, chacune de ces distributions de probabilité étant égale à celle calculée à l'étape 700, 900 : Calcul, pour chaque lien virtuel, de la distribution de probabilité, pour l'intervalle de temps considéré, des durées de traversée par une trame d'un lien virtuel considéré, en faisant la somme, sur toutes les dates de l'intervalle de temps considéré, des distributions de probabilité, pour la date considérée, des durées de traversée par une trame d'un lien virtuel considéré pondérées par l'inverse du nombre total de trames dudit lien virtuel considéré reçues dans la file d'attente dudit commutateur pendant l'intervalle de temps considéré. Brève description de la figure La présente invention sera mieux comprise à la lecture de la description détaillée d'un mode de réalisation, pris à titre d'exemple non limitatif et illustré par le dessin annexé, sur lequel : la figure unique est un diagramme résumant les principales étapes du procédé de l'invention.30 Description détaillée de l'invention Le procédé de l'invention utilise l'existence de caractéristiques communes entre les trames des VL afin de réduire l'espace des états d'une file d'attente. Il s'apparente en cela à un procédé de compression et décompression, basé sur l'exploitation de caractères communs permettant de réduire la combinatoire en ne considérant que les caractères distincts. De cette manière, le procédé tire parti des caractéristiques des VL pour le stockage compact des états en mémoire. Il permet d'appliquer une méthode énumérative et exhaustive à des configurations plus importantes, ce qui était impossible dans la pratique antérieure. Le procédé de l'invention part des hypothèses suivantes : plusieurs VL indépendants sont émis vers une seule file d'attente et la période de chaque VL est constante (intervalle entre deux trames consécutive du VL), de même que la durée de transmission de ses trames. Cela correspond au cas où il n'y a qu'une seule priorité. D'autre part, les tampons sont supposés de taille infinie. La vérification qu'il n'y a pas de dépassement doit être faite a posteriori et ne fait pas partie de l'invention. On rappelle que la source d'un VL est toujours identifiable de façon unique (bus de communication multicast). Pour mettre en oeuvre l'invention, on considère que les trames qui sont prêtes à être envoyées sont placées à la fin d'une file d'attente. Dès que le réseau est disponible, la première trame de la file est envoyée. Le réseau sera de nouveau disponible lorsque cette trame aura été envoyée. S'il y a plusieurs priorités, les trames sont réparties en fonction de la priorité de leurs VL émetteurs et la trame qui est choisie pour être envoyée est celle avec la priorité la plus élevée à ce moment. On rappelle que le procédé de l'invention ne prend en compte qu'une seule priorité, donc une seule file d'attente. La combinatoire qui intervient dans le calcul du laps de temps passé au sein du commutateur provient de l'ordre dans lequel sont rangées les trames dans les files d'attente lorsque plusieurs d'entre elles arrivent simultanément. Pour des raisons physiques liées à l'accès séquentiel des mémoires tampon utilisées, il est impossible de placer deux trames simultanément dans une file de sortie (interdiction d'écrire simultanément en mémoire deux informations). Dans l'industrie, une lecture circulaire des tampons d'entrée est courante. Il est alors impossible de prévoir a priori devant quel tampon se situera la tête de lecture lors de l'arrivée simultanée de plusieurs trames. Ainsi, pour un groupe de trames qui arrivent simultanément dans un élément du réseau, il est impossible de prévoir l'ordre dans lequel elles seront placées dans les files d'attente en sortie du commutateur: Si l'on souhaite calculer le laps de temps pendant lequel une trame T reste dans la file avant d'être envoyée, il faut compter les fois où elle est placée la première, la deuxième, etc. Il faut également prendre en compte qu'à son arrivée, d'autres trames étaient peut-être déjà dans sa file d'attente. Si n trames doivent être placées dans la file, il existe ni façons de le faire. Cependant, nombre de ces états (la séquence des n trames dans la file) sont identiques du point de vue de ce que l'on cherche à calculer : le laps de temps mis par une trame pour traverser sa file d'attente (c'est-à-dire, le commutateur). Cette durée de traversée est égale au laps de temps pendant lequel la trame attend dans la file (backlog plus trames arrivées en même temps et placées devant elle) plus sa durée de transmission sur le réseau. Prenons un exemple simple et considérons les trames A, B et T qui arrivent en même temps dans un commutateur. Elles ont la même priorité et vont donc dans la même file d'attente. Pour simplifier l'exemple, supposons de plus qu'aucune autre trame n'a été ou ne sera envoyée par la suite, si bien que la file est vide quand les trames arrivent. On note entre crochets les trames qui arrivent en même temps dans la file d'attente. Puisque les trames ne peuvent plus se doubler une fois qu'elles sont placées dans la file, l'agencement de trames arrivées avant n'a pas d'importance pour les trames futures. La notation crochet ne représente pas un cliché de la file d'attente, seulement un groupe de trames arrivées ensemble. Il est coûteux en temps de calcul de représenter l'ensemble des états possibles de la file d'attente à un instant donné à cause dudit problème d'explosion combinatoire. En revanche, l'utilisation de macroétats et de l'instant de l'arrivée de ces trames permet de suivre l'évolution du taux de remplissage de la file et donc le laps de temps pendant lequel les trames restent dans cette file pour un coût de calcul raisonnable. On s'intéresse au laps de temps pendant lequel la trame T peut rester dans le 30 commutateur avant d'être transmise. Cette durée peut prendre les valeurs suivantes : - 0 pour les états de la file d'attente [TAB] et [TBA] ; - la durée de transmission de la trame A pour l'état [ATB] ; - la durée de transmission de la trame B pour l'état [BTA] ; - les durées de transmission des trame A et B pour les états [ABT] et [BAT] Si on utilise la notation { } pour désigner un ensemble de trames, quel que soit leur ordre relatif, on peut noter [T {AB}], [ATB], [BTA] et [{AB}T] les 4 macro-états qui représentent les 6 états [TAB], [TBA], [ATB], [BTA], [ABT] et [BAT]. On peut même avoir une notation indépendante de la trame concernée, que l'on appelle motif, si l'on adopte une notation où T et toutes les trames après elle ne sont pas représentées, on a pour T [], [ {A} ], [ {B} ] et NABI]. On donne une autre représentation possible des motifs plus loin. D'autre part, les motifs pour l'étude du temps d'attente des trames A et B sont respectivement [], [{B}], [{T}], [{BT}] et [], [ {AIL [ {Tl], [ {AT} ]. En tout, il existe 7 motifs distincts - [] (la trame considérée est la première), {{Al] [ {B } ] et [{Tl] (la trame considérée est la deuxième), et [ {AB } ] [ {BT} ] et [ {AT} ] (la trame considérée est la troisième). Ils permettent de reconstituer les 3 X3! = 18 états nécessaires au calcul des durées de traversée de chacune des trames. Certains de ces états sont les mêmes, on évite donc aussi de recalculer plusieurs fois les mêmes états. Ces motifs sont suffisants pour le calcul de toutes les durées de traversée des trois trames : qu'elles soient placées les premières, les deuxièmes ou les troisièmes dans la file d'attente en cas d'arrivées simultanées. De plus, si A et B par exemple ont la même durée de transmission, le nombre de motifs est plus petit car A et B sont équivalentes et {{AU ] [ {B } ] ainsi que [ {AT} ] [ {BT} ]. Il reste alors seulement 5 motifs. Cela a été négligé dans les paragraphes précédents, mail il faut en outre prendre en compte le fait que la file peut ne pas être vide lors de l'arrivée de nouvelles trames. Pour cela, on garde en mémoire la durée nécessaire au traitement de toute la file d'attente à tous les instants d'arrivée de nouvelles trames (les autres ne sont pas intéressants), c'est le «backlog ». Le backlog représente un arriéré de données non encore envoyé. Il se calcule de proche en proche à partir de la durée totale de transmission des motifs. Si l'on note W' la durée totale de transmission du motif à l'instant t' (c'est-à-dire la durée totale de transmission des trames arrivées à l'instant t'), alors le backlog B' s'exprime pour tout n supérieur à 1 : Bn = max(0, Bn_I + Wn_I - (tn - tn_,)) Equation 1 avec Bo=0etto=0. L'arriéré ne peut être que positif ou nul. Cette valeur s'ajoute aux latences calculées pour le groupe de trames nouvellement arrivées. Les trames sont regroupées en classes d'équivalences selon leurs durées de transmission. Ensuite, on génère ce que l'on appelle la table des motifs et qui regroupe l'ensemble des motifs comme [{AT}] dans l'exemple précédent, à l'aide d'une représentation adaptée. De cette table, il est très facile de calculer les différents temps d'attente de toutes les trames transitant par l'élément du réseau ainsi que leurs fréquences associées. Si l'on note n le nombre de trames différentes (A, B, T, ...), k le nombre de durées de transmission différentes et Ci le nombre de trames ayant la durée de transmission numéro i, alors il existe (Cl+l) x ... x (Ck+l) motifs différents. Ce nombre correspond au nombre de lignes de la table des motifs où chaque colonne peut prendre les valeurs de 0 à Ci, soit Ci+1 valeurs. Il est à mettre en relation avec le nombre d'états n! : pour chaque trame différente, il y an! permutations possibles de toutes les trames (états de la file d'attente). Cela porte le nombre total d'états à considérer à n x ni. Cependant, les arrangements sont tous les mêmes et seule la trame considérée change. Finalement, il n'y a que n! états différents Prenons un exemple avec huit VL qui envoient régulièrement des trames dans une même file d'attente d'un commutateur : - un des VL envoie une trame toutes les 100 secondes, la durée de transmission d'une trame est égale à 10 secondes (1: 10, 100) ; - trois des VL envoient une trame toutes les 200 secondes, la durée de transmission d'une trame est égale à 10 secondes (3: 10, 200) ; - un des VL envoie une trame toutes les 60 secondes, la durée de transmission d'une trame est égale à 4 secondes (1: 4, 60) ; - un des VL envoie une trame toutes les 30 secondes, la durée de transmission d'une trame est égale à 4 secondes (1: 4, 30) ; - un des VL envoie une trame toutes les 30 secondes, la durée de transmission d'une trame est égale à 5 secondes (1: 5, 30) ; - un des VL envoie une trame toutes les 8 secondes, la durée de transmission d'une trame est égale à 1 seconde (1: 1, 8). Le premier nombre désigne le nombre de VL concernés par les caractéristiques énoncées après ; le second désigne la durée de transmission d'une trame ; le troisième désigne la période (intervalle séparant l'arrivée de deux trames consécutives issues d'un même VL). On note de façon abrégée : S = { (1: 10, 100) (3: 10, 200) (1: 4, 60) (1: 4, 30) (1: 5, 30) (1: 1, 8) 1. Dans cet exemple, k = 4 et pour la durée de transmission égale à 10, CI = 4, la durée de transmission égale à 4, C2 = 2, la durée de transmission égale à 5, C3 = 1 et la durée de transmission égale à 1, C4 =1. Les classes ont été arbitrairement rangées par ordre de cardinalité et de durées de transmission décroissantes. La table des motifs contient 60 lignes et permet de représenter, de façon pertinente et efficace pour le calcul qui nous intéresse, les 8! = 40320 séquences différentes possibles des 8 trames pouvant arriver à un instant donné. Rappelons que la fonction factorielle croît très rapidement : le nombre 15! comporte déjà 13 chiffres (à titre de comparaison, 1 milliard en compte seulement 10). La table des motifs énumère : ^ les motifs possibles, c'est-à-dire le nombre de trames de chaque classe d'équivalence (durée de transmission) pouvant arriver dans la file d'attente du commutateur considéré à un instant quelconque compris dans l'intervalle de temps considéré ( soit l'intervalle [max(r) + PPCM(T) ; max(r) + 2-PPCM(TZ)[ défini plus loin), ^ leur taille (nombre de trames dans le motif), ^ leur durée de transmission totale (somme des durées de transmission des trames du motif). Le terme ci (en minuscule), compris entre 0 et Ci (en majuscule), désigne combien de trames dont la durée de transmission est le numéro i sont contenues dans le motif. La table est triée selon la taille des motifs dans l'ordre croissant, puis par et croissant, puis c2 croissant, etc. Ce tri facilite en partie la recherche des motifs esclaves d'un motif maître. Tous les motifs de taille inférieure ou égale à la taille d'un motif maître sont potentiellement des motifs esclaves (voir ci-dessous l'exposé du calcul). Tableau 1 - Table des motifs pour l'exemple proposé (extrait) La ligne du motif 59, par exemple, signifie que quatre trames dont la durée de transmission est de 10 secondes (c'est-à-dire de la classe 1), deux trames dont la durée de transmission est de 4 secondes (c'est-à-dire de la classe 2) et qu'une trame dont la durée de transmission est de 5 secondes (c'est-à-dire de la classe 3) composent ce motif. L'ordre n'est pas indiqué et n'est pas utile pour les calculs du temps d'attente dans la file, il ne l'est que pour le calcul de sa pondération. Voyons ces calculs pour cet exemple. Afin d'obtenir la distribution complète des probabilités des durées de traversée du réseau, il faut en théorie les calculer pour une infinité de trames. L'hypothèse des périodes constantes des VL (voir ci-dessus les hypothèses de départ) permet de réduire l'étude à un nombre fini de trames : celles qui arrivent dans la file durée de n° du motif et c2 c3 c4 taille du motif transmission totale du motif 1 0 0 0 0 0 0 i IO - ~ tli.~i~i~~-~ 4 10 - d'attente dans un intervalle de durée égale au plus petit commun multiple (PPCM) des périodes des VL (notés Ti pour le VL i). De plus, si on note ri la date d'arrivée de la première trame du VL i dans la file d'attente du commutateur, la littérature [A. Choquet-Geniet et E. Grolleau, Minimal schedulability interval for real-time systems of periodic tasks with offsets, Theoretical Computer Science volume 310, n° 1-3, pages 117-134, Elsevier Science Publishers Ltd., 2004] assure que les arrivées sur l'intervalle [max(ri) + PPCM(Ti) ; max(ri) + 2-PPCM(Ti)[ se répètent à l'infini. On peut donc omettre les arrivées entre 0 et max(ri) + PPCM(Td pour le calcul dont le poids est négligeable face aux autres arrivées (puisque les autres se répètent à l'infini). On ne s'intéresse qu'aux instants dans l'intervalle [max(ri) + PPCM(Ti) ; max(ri) + 2-PPCM(Ti)[ où au moins une trame arrive dans la file d'attente et on calcule toutes ces dates prévisionnelles d'arrivée de trames avant d'effectuer les calculs des durées de traversée. Pour chacun de ces instants, on relève les trames arrivées et on calcule le backlog à cet instant (durée d'attente dans la file d'attente, sans prendre en compte les nouvelles trames, cf équation 1). On parle informellement de la ligne du temps (du calcul). Cette ligne du temps est donc une suite de triplets (date, trames arrivées, backlog). Le calcul a priori de ces triplets permet de répartir les calculs sur différents coeurs ou différents ordinateurs et de profiter au mieux de la parallélisation des calculs par exemple. Pour illustrer le procédé de l'invention, nous allons calculer les temps d'attente que la trame du VL 1, qui arrive à l'instant t = 900s, peut rencontrer dans le cas où une trame de chaque VL arrive dans le commutateur à l'instant t = 0, qualifié d'instant initial (ri = 0 pour tout VL i). L'intervalle d'étude est [600 ; 1200[ dans ce cas. Compte tenu de l'intervalle qui sépare deux arrivées successives de trames issues d'un VL et du fait qu'une trame de chaque VL est arrivée à l'instant initial t = 0, au temps t = 900s, il arrive quatre trames dans le commutateur. Il y a une trame issue du VL 1, une trame issue du VL 5, une trame issue du VL 6 et une trame issue du VL 7. Ces trames sont appelées respectivement trame 1, 5, 6 et 7. D'autre part, un calcul du backlog à cet instant montre qu'il est nul. Le motif correspondant à cette arrivée est donc [{1567}] avec les notations précédentes. Cependant, on utilise préférablement la notation plus compacte issue d'une lecture directe de la table [1, 2, 1, 0]. En effet, elle permet de rendre compte de plusieurs motifs. On appelle ce motif le motif maître principal. On définit le motif maître par rapport à la trame 1 en retirant 1 à la classe de la trame dans le motif maître principal, soit [0, 2, 1, 0]. À partir de ce motif maître particulier, on détermine l'ensemble des motifs esclaves qui correspondent aux différentes places que la trame 1 pourrait occuper dans la file d'attente. - Lorsque la trame 1 est placée la première, cela correspond au motif de taille nulle [0, 0, 0, 0] qui correspond lui-même au macro-état [1 {567}]. Toutes les autres trames sont placées derrière la trame 1. - Lorsque la trame 1 est placée la deuxième, il y a une trame devant elle. On recense les motifs de taille 1 depuis le motif maître. Le motif [0, 1, 0, 0] correspond au macro-état [{511{671] où la trame 5 est placée avant la trame 1 ainsi qu'au macro-état [{6}1 {57}] où la trame 6 est placée avant la trame 1. Le motif [0, 0, 1, 0] correspond au macro-état [{7} 1 {56}] où c'est la trame 7 qui est placée avant la trame 1. - Lorsque la trame 1 est placée la troisième, il y a deux trames devant elle : [0, 1, 1, 0] correspond aux macro-états [{57} 1 {61] et [{67} 1 {51], et [0, 2, 0, 0] correspond au macro-état [ {56} 1 {71]. - Lorsque la trame 1 est placée la dernière, il y a trois trames devant elle : [0, 2, 1, 0] correspond au macro-état [{567} 1]. On aurait pu imaginer les règles suivantes pour ranger les trames dans un ordre précis dans la file d'attente : plus petit numéro d'abord, plus petit temps d'exécution d'abord, plus petit intervalle entre deux trames d'abord, etc. Cependant, comme précédemment évoqué, il n'est pas possible de connaître l'ordre dans lequel les trames seront placées dans la file. II faut donc calculer tous les temps d'attente possibles et prendre en compte la multiplicité des différentes solutions pour le calcul de leurs probabilités. Sur un horizon du temps infini, on préfère parler des fréquences des temps d'attente que de leurs probabilités. Pour chacun des motifs identifiés - [0, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 1, 0], [0, 2, 0, 0] et [0, 2, 1, 0] - il faut calculer le nombre de séquences qu'il 5 représente en fonction du motif maître, c'est-à-dire son poids. Le dénombrement se fait comme suit : 1. dénombrement du nombre de façons de sélectionner les trames du motif esclave parmi celles du motif maître (pour rappel, ces trames sont celles qui sont placées avant la trame 1 dans la file d'attente). Par exemple, il y a deux 10 façons de sélectionner une trame parmi deux pour le motif esclave [0, 1, 0, 0] étant donné le motif maître [0, 2, 1, 0] puisque C2=2 et c2=1 ; 2. dénombrement du nombre de choix dans l'ordre des trames du motif esclave. Par exemple, il y a (E ci)! ordres possibles, soit 3! pour le motif esclave [0, 2, 1, 0] ; 15 3. enfin, dénombrement du nombre de choix dans l'ordre des trames du motif maître qui ne sont pas dans le motif esclave (ces trames sont celles qui sont placées après la trame 1 dans la file d'attente). Par exemple, il y a 2! ordres possibles pour le motif esclave [0, 0, 1, 0] étant donné le motif maître [0, 2, 1, 0]. 20 Les résultats (partiels) sont récapitulés dans le tableau 2 ci-dessous. Ces résultats concernent uniquement la trame 1, au temps t = 900s dans l'hypothèse où une trame de chaque VL est arrivé dans la file d'attente à l'instant initial t = 0. Il faut ensuite propager les résultats aux autres trames de la même classe d'équivalence, et répéter l'ensemble de ces opérations pour chaque classe d'équivalence. Tableau 2 - Résultats partiels pour la trame 1 au temps t = 900s motif poids du motif durée de probabilité du transmission motif totale du motif 1 1 1 _ °, 1 1 1 _ 1 1 , _ . °, 1 1 1 _: °, [0, 2, 1, 0] (1 x 1) x (3!) x (0!) = 6 13 25% total 24 100% Il faut répéter le calcul pour tous les instants de la ligne du temps, entre 600 et 1200 exclu et normaliser les résultats obtenus pour chaque VL par le nombre de trames du VL qui arrivent dans l'intervalle de temps étudié. L'ensemble des étapes est le même pour tous les VL. Il est par ailleurs possible de se limiter aux VL dont les tailles des trames sont différentes, ainsi que les périodes et les dates de démarrage r; sont différentes. En effet, si deux VL ont même taille de trame, même période et même date de démarrage, les résultats sont alors exactement les mêmes. La figure unique résume les grandes étapes du procédé d'estimation de la durée de traversée d'un réseau de communication multiplexé à une file d'attente. REVENDICATIONS1. Procédé d'estimation déterministe de la distribution de probabilité, pour un intervalle de temps considéré, des durées de traversée, par une trame d'un lien virtuel considéré, d'un commutateur de communication multiplexé à une seule file d'attente FIFO (First In First Out) d'un réseau de communication, plusieurs liens virtuels indépendants les uns des autres arrivant à la file d'attente dudit commutateur, la taille de la mémoire tampon associée à ladite file d'attente étant supérieure ou égale aux besoins, les périodes d'émission de trames de chaque lien virtuel et les durées de transmission de ces trames par ledit commutateur étant constantes, ces constantes pouvant être différentes d'un lien virtuel à un autre, caractérisé en ce qu'il comporte l'étape suivante : 100 : Classement desdites trames en classes d'équivalence selon leur durée de transmission, chaque trame d'une classe d'équivalence étant alors une trame équivalente pour ladite classe. 2. Procédé selon la revendication 1 caractérisé en ce qu'il comporte en outre les étapes suivantes : 200 : Calcul de la table des motifs, cette étape comprenant les sous-étapes suivantes : 230: génération de l'ensemble des n-uplets constitués des nombres de trames de chaque classe d'équivalence pouvant arriver à un instant quelconque dans la file d'attente dudit commutateur, chaque n-uplet, appelé motif, formant une ligne d'un tableau appelé «table des motifs », 270 : calcul, pour chaque motif, de sa durée de transmission totale, 300 : Calcul de la ligne du temps définie comme étant une séquence de triplets (date, trames arrivées à ladite date, backlog avant l'arrivée des trames à ladite date), où les dates sont tous les instants considérés où arrive au moins une trame dans ledit commutateur, ces instants étant compris dans l'intervalle de temps considéré d'une durée égale au PPCM (Plus Petit Commun Multiple) desdites périodes, et où le backlog est défini comme étant la durée restante nécessaire pour transmettre l'ensemble des trames encore présentes dans ladite file d'attente juste avant ladite date, et pour chacune des dates listées dans la ligne du temps on effectue les étapes 400 à 800 : 400 : Détermination du motif maître principal de la date considérée, défini comme étant le motif de la table des motifs correspondant aux trames arrivées à ladite date, et pour chaque classe d'équivalence représentée dans le motif maître principal on effectue les étapes 500 à 800 : 500 : Sélection d'une trame équivalente et considération du motif maître par rapport à cette trame équivalente sélectionnée, le motif maître considéré étant égal au motif maître principal dont la composante de la classe d'équivalence de ladite trame équivalente sélectionnée est diminuée d'une unité, 600: Détermination des motifs esclaves par rapport à la trame équivalente sélectionnée et au motif maître considéré, les motifs esclaves étant des sous-ensembles dudit motif maître considéré, chaque sous-ensemble représentant un cas différent de positionnement devant la trame équivalente sélectionnée, dans ladite file d'attente, de trames équivalentes dudit motif maître considéré, 700 : Calcul, à l'aide de la ligne du temps et de la table des motifs, de la distribution de probabilité, pour la date considérée, des durées de traversée par la trame équivalente sélectionnée, chacune de ces durées, en abscisse de ladite distribution, valant pour un motif esclave donné et se calculant en ajoutant à la durée d'attente associée au backlog, la somme des durées de transmission des trames dudit motif esclave (c'est-à-dire sa durée totale de transmission) et la durée de transmission de ladite trame équivalente sélectionnée, chacune des probabilités, en ordonnée de ladite distribution, étant égale à la probabilité dudit motif esclave connaissant ladite trame équivalente sélectionnée, 800: Calcul, pour chaque lien virtuel dont les trames sont de la classe d'équivalence considérée, de la distribution de probabilité, pour la date considérée, des durées de traversée par une trame d'un lien virtuel considéré, chacune de ces distributions de probabilité étant égale à celle calculée à l'étape 700, 900 : Calcul, pour chaque lien virtuel, de la distribution de probabilité, pour l'intervalle de temps considéré, des durées de traversée par une trame d'un lien virtuel considéré, en faisant la somme, sur toutes les dates de l'intervalle de temps considéré, des distributions de probabilité, pour la date considérée, des durées de traversée par une trame d'un lien virtuel considéré pondérées par l'inverse du nombre total de trames dudit lien virtuel considéré reçues dans la file d'attente dudit commutateur pendant l'intervalle de temps considéré.