FR 2889329 A1 20070202 FR 0552384 A 20050729 Procédé de séquencement automatique des spécifications d'un calculateur, notamment pour aéronef Domaine de l'invention L'invention concerne un procédé pour séquencer de façon automatique des spécifications d'un calculateur, notamment d'un calculateur de vol pour aéronef. L'invention trouve des applications dans le domaine des calculateurs, pour répartir uniformément les différents calculs qu'un calculateur doit effectuer. Il trouve en particulier des applications dans les calculateurs de commande de vol embarqués des aéronefs. Etat de la technique Dans le domaine de l'aéronautique, les calculateurs embarqués doivent effectuer, en vol, de nombreux calculs pour réaliser des opérations de commande. Par exemple, le calculateur de commande de vol primaire réalise, en vol, des opérations de commande de vol relatives au pilotage automatique et le calculateur de commande de vol secondaire réalise, en vol, des opérations relatives à la commande des gouvernes. Ces opérations de commande doivent être effectuées régulièrement, à des fréquences plus ou moins grandes et souvent dans un ordre particulier. Ces opérations de commande sont appelées des spécifications. Une spécification, en aéronautique, est un ensemble de planches logiques permettant de décrire des fonctionnalités. Chaque planche logique comporte un ensemble d'éléments logiques (portes, bascules, etc.) ainsi qu'au moins une entrée et une sortie permettant une liaison électrique ou logique avec les autres planches de la spécification ainsi qu'avec les planches logiques des spécifications voisines. Les spécifications nécessitent un grand nombre de calculs. Or, dans les aéronefs, les calculateurs embarqués, et notamment le calculateur de commande de vol, ne peuvent, pour des raisons d'encombrement, de masse et de dissipation thermique, être des calculateurs très puissants, c'est-àdire ayant une très grande capacité de calculs. En conséquence, il est nécessaire que les spécifications soient gérées au mieux des capacités de calcul du calculateur, appelées capacités CPU. Autrement dit, il est important que les spécifications soient gérées de façon à étaler les calculs dans le temps, afin que tous les traitements d'une spécification n'aient pas à être réalisés simultanément par le calculateur. Il est donc nécessaire de gérer ces traitements pour qu'ils soient répartis dans le temps. Pour cela, il est nécessaire de séquencer ces spécifications, c'est-àdire de les diviser en séquences pouvant être ordonnées et réparties dans le temps. Les séquences peuvent alors être réparties dans un nombre prédéfini de tâches de traitement et être exécutées plus ou moins fréquemment. Ainsi, chaque tâche a une période prédéfinie et est divisée en un nombre fixé de séquences que l'on appelle également cycles. Chaque cycle est divisé en sous-cycles plus ou moins nombreux en fonction de la période d'exécution du cycle par rapport à celui d'une tâche. Chaque séquence d'une spécification est composée de traitements appelés noeuds qui ont donc des fréquences d'itération variables définies par leur cycle. Les noeuds d'une spécification peuvent avoir des fréquences d'itération variables, en fonction de l'importance de ce noeud, de la précision de la fonctionnalité souhaitée, etc. Par exemple, un noeud d'une spécification peut nécessiter une fréquence d'itération de 10 ms tandis qu'un autre noeud nécessite une fréquence de 20 ou 40 ms. La fréquence d'itération des noeuds constitue donc une première contrainte des spécifications. Certains noeuds d'une spécification doivent être exécutés dans un ordre précis. Cet ordre précis constitue une seconde contrainte des spécifications. Les spécifications peuvent aussi présenter une contrainte matérielle, c'est-à-dire une contrainte liée aux disponibilités des entrées et sorties des noeuds. En effet, les données transmises d'un noeud à un autre peuvent s'accumuler, sous la forme de files d'attente, à une sortie d'un noeud. Il est donc nécessaire de gérer ces sorties pour éviter la formation de files d'attente trop importantes que le calculateur serait incapable de traiter. Ces contraintes matérielles constituent des troisièmes contraintes de spécifications. La figure 1 montre un exemple d'une spécification comportant douze tâches de traitement. Chaque tâche a une fenêtre temporelle de 10 ms, c'est-àdire qu'elle peut exécuter des calculs d'une durée maximale de 10 ms. Dans l'exemple de la figure 1, il y a douze tâches de 10ms chacune. Cet ensemble de douze tâches est donc réitéré toutes les 120 ms. Chacune de ces tâches comporte quatre cycles de base. Les tâches, référencées tâche 1, tâche 2, ..., tâche 12, comportent chacune quatre cycles Cl, C2, C3 et C4. Les cycles Cl à C4 ont des fréquences itératives différentes les uns des autres. Par exemple, le cycle Cl a une fréquence de 10 ms, C2 de 20 ms, C3 de 40 ms et C4 de 120 ms. Le cycle Cl contient un sous-cycle. Le cycle C2 contient deux sous-cycles C21 et C22. On comprend ainsi que le cycle Cl est réitéré dans chacune des tâches 1 à 12. Par contre, le cycle C2 a une répétitivité de deux tâches, c'est-à-dire qu'il est exécuté dans la tâche 1 puis dans la tâche 3, la tâche 5, etc. Le sous-cycle de C2 exécuté dans les tâches 1, 3, etc., est référencé C21. De façon similaire, le sous-cycle C22 est exécuté dans la tâche 2 puis répété toutes les 20 ms dans la tâche 4 puis la tâche 6, etc. Chacun de ces cycles permet de réaliser un calcul ou un ensemble de calculs, définis par des noeuds. Ainsi, le cycle Cl peut exécuter un noeud A et un noeud B qui seront répétés au cycle Cl de chaque tâchel à 12. Le sous-cycle C21 peut exécuter le noeud C qui sera réitéré aux tâches 3, 5, 7, etc. Un noeud N, réalisé dans le sous-cycle C41 de la tâche 1, ne sera réitéré qu'à la tâche 1 du prochain ensemble de tâches. Ainsi, par exemple, entre deux itérations du sous-cycle C21, dans la tâche 1 et dans la tâche 3, un sous- cycle C22 peut exécuter des noeuds différents, en tâche 2 puis toutes les deux tâches. De cette façon, durant une même fenêtre temporelle, un noeud N est exécuté une fois en C4, pendant qu'un noeud C est réalisé six fois en C2. La division d'une tâche en cycles de base, de fréquences différentes, permet de moduler la répétitivité des différentes opérations à réaliser. Cette modulation de répétitivité des opérations, et donc des noeuds, est choisie en fonction de la précision souhaitée pour une opération, de l'importance de cette opération ou encore de la rapidité de réaction souhaitée par le calculateur. La modulation de la fréquence de rafraîchissement des opérations, en fonction des opérations considérées, permet ainsi d'améliorer la capacité de calculs du calculateur. Actuellement, le séquencement des spécifications de calculateur de commande de vol est réalisé manuellement par des opérateurs. En effet, sur 35 la plupart des aéronefs classiques, le nombre de noeuds à séquencer est de l'ordre de 200 à 300. Ces noeuds sont répartis de façon manuelle, selon une méthode empirique. La répartition des noeuds est donc réalisée en fonction des connaissances et de l'expérience de l'opérateur. Seule la compétence de l'opérateur permet d'obtenir un séquencement plus ou moins acceptable. Une fois que les noeuds ont été répartis, l'opérateur peut éventuellement modifier cette répartition des noeuds dans les cycles pour tenter d'améliorer l'équilibre des tâches. Mais, compte tenu de la complexité de la tâche, cela a pour effet d'allonger encore le temps de réalisation du séquencement, sans certitude d'une amélioration. On comprend alors que le séquencement de nouvelles spécifications, qui peuvent comporter jusqu'à 3000 noeuds, peut nécessiter plusieurs modifications successives de l'opérateur, c'est-à-dire plusieurs essais de placement, et donc un temps considérable, avant que l'opérateur ne trouve un séquencement acceptable. Actuellement, dans certains aéronefs, la capacité de calculs nécessaire pour la réalisation de ces spécifications est de l'ordre de 60 à 70 0/0 de la charge CPU maximum du calculateur. Ainsi, en réalisant manuellement le séquencement des spécifications, un opérateur peut réaliser obtenir un séquencement permettant une capacité de charge CPU libre de 30 à 40%. Cette capacité de charge CPU libre est utile, notamment pour permettre un ajout de spécifications ultérieur, en fonction des besoins de l'aéronef, même après la mise en production de l'aéronef. En d'autres termes, l'opérateur cherche à obtenir la répartition la plus stable possible de façon à assurer la plus grande marge possible de capacité CPU libre. Ainsi, lorsqu'un séquencement stable est obtenu, l'opérateur peut faire valider ce séquencement et continuer à développer, tout en conservant le séquencement déjà acquis, sans qu'il y ait besoin de revalider la totalité du séquencement. La capacité de charge CPU libre est également utile pour garantir, aux autorités, que la capacité maximale du calculateur ne sera jamais dépassée et, par conséquent, qu'il n'y a aucun risque de commande non réalisée en vol. Or, actuellement, les constructeurs aéronautiques cherchent à construire des aéronefs de plus en plus volumineux et de plus en plus performants, pour transporter à moindre coût un nombre de marchandises et de passagers de plus en plus grand, avec un confort amélioré. Avec ces nouveaux aéronefs, le nombre de planches logiques augmente considérablement par rapport à un aéronef classique. Le nombre de planches logiques est de l'ordre de 2000 à 3000. On comprend donc qu'un opérateur effectuant manuellement, avec une méthode empirique, le séquencement des spécifications pour 2000 à 3000 planches peut passer plusieurs jours à réaliser ce séquencement. En outre, avec cette méthode empirique, il n'est pas sûr que l'opérateur obtienne finalement un séquencement acceptable. Exposé de l'invention L'invention a justement pour but de remédier aux inconvénients de la technique exposée précédemment. Pour cela, l'invention propose un procédé pour séquencer automatiquement les spécifications d'un calculateur. Cette automatisation du séquencement est réalisée en analysant les noeuds d'une spécification, en attribuant un niveau de priorité à chaque type de noeuds puis en plaçant ces noeuds dans les cycles des tâches de traitement en fonction de leur niveau de priorité. La réalisation d'un séquencement de façon automatique permet de réaliser rapidement un séquencement acceptable et, éventuellement, de modifier certains choix de critères et paramètres afin de déterminer le séquencement optimal pour le calculateur. De façon plus précise, l'invention concerne un procédé de séquencement automatique des spécifications d'un calculateur, caractérisé en ce qu'il comporte: - une analyse des spécifications constituées de noeuds avec une 25 simplification et une répartition de ces noeuds en au moins deux types de noeuds, et - une affectation de ces noeuds dans des sous-cycles répétitifs de tâches de traitement afin d'obtenir une répartition des tâches sensiblement uniforme. L'invention peut comporter également une ou plusieurs des caractéristiques suivantes: - un niveau de priorité est attribué à chaque type de noeuds. - les noeuds sont répartis en trois types de noeuds. - les noeuds sont affectés dans les sous-cycles, par type de noeuds, 35 en fonction de leur niveau de priorité. - les tâches sont équilibrées en temps d'exécution, pour chaque type de noeuds. - les tâches sont équilibrées en fonction de leurs émissions matérielles. - les noeuds sont affectés par ordre décroissant de leur niveau de priorité. - les noeuds sont répartis par type de noeuds en fonction de critères et/ou de contraintes de chaque noeud. - les noeuds sont répartis dans 12 ou 24 tâches. - les tâches ont toutes une même durée préfixée - chaque sous-cycle a une fréquence d'itération prédéfinie dans les tâches de traitement. - l'équilibrage des noeuds dans les tâches est obtenu en plaçant successivement, dans un ordre décroissant d'une valeur de critère, chaque noeud et en affectant chaque noeud à la tâche ayant la plus faible valeur de ce critère. - un compromis est établi pour équilibrer des noeuds. Ce compromis est défini pour satisfaire au mieux l'ensemble des critères requis pour le séquencement. - le temps d'exécution de chaque noeud est maximisé avant affectation dudit noeud dans une tâche. - le procédé comporte une étape d'évaluation du séquencement obtenu après affectation de tous les noeuds. - l'affectation des noeuds est réitérée après modifications de réglages et/ou de contraintes par un opérateur. - l'affectation des noeuds est réitérée jusqu'à ce que le séquencement soit acceptable. - lorsque le séquencement est acceptable, une solution de séquencement est générée. L'invention concerne également un calculateur de vol pour aéronef, caractérisé en ce qu'il met en oeuvre le procédé exposé précédemment. Brève description des dessins La figure 1, déjà décrite, représente un ensemble de tâches d'une spécification pour calculateur de commande de vol. La figure 2 représente schématiquement le procédé général de production d'une solution de séquencement selon l'invention. La figure 3 représente, sous la forme d'un diagramme, l'analyse des spécifications dans le procédé de séquencement de l'invention. La figure 4 représente, dans un diagramme fonctionnel, les différentes étapes du procédé de séquencement de l'invention. La figure 5 représente, sous la forme d'un tableau, un exemple de compromis de critères dans le procédé de l'invention. Description détaillée de modes de réalisation de l'invention La figure 2 représente un diagramme fonctionnel du procédé général de production d'une solution de séquencement des spécifications d'un calculateur de vol, selon l'invention. Ce procédé comporte trois phases principales. Dans une première phase P1 du procédé, l'opérateur récupère l'ensemble d'une spécification à prendre en compte dans la solution de séquencement et les écrit sous la forme de données utilisables par un séquenceur. On appelle séquenceur, un dispositif permettant de répartir des traitements d'une spécification de calculateur afin de fournir un séquencement le plus homogène possible. En d'autres termes, le séquenceur est un outil permettant de mettre en oeuvre le procédé de l'invention tel que décrit en détail par la suite. Dans une seconde phase P2, le séquenceur analyse ces informations puis les traite pour déterminer au moins une solution de séquencement. Dans une troisième phase P3, la solution de séquencement fournie à la phase P2 est produite, c'est-à-dire qu'elle est générée dans un format directement implémentable dans le calculateur de l'aéronef. La phase P1 consiste donc à réunir toutes les informations relatives à la spécification et à les écrire sous la forme de fichiers utilisables par le séquenceur. Parmi ces informations, il peut y avoir, par exemple, des noeuds 1 comportant des symboles logiques avec des contraintes de temps ou d'ordre d'exécution définies par des planches TEMPO 2. Il peut également y avoir des informations relatives à des temps additionnels par noeud 3 ou des temps maximum d'exécution par symbole 4. D'autres informations relatives aux bus de transmission connectés au calculateur de vol (appelés bus ARINC) doivent aussi être prises en compte par l'opérateur lors de la phase P1 du procédé de l'invention. Ces informations de bus ARINC concernent les ressources matérielles, ou hardware, du calculateur. En effet, les entrées/sorties du calculateur ainsi que les entrées/sorties des différents noeuds, sont des activations contenues dans les noeuds, ce qui nécessite de positionner ces éléments d'entrées/sorties dans les tâches exécutées par le calculateur. Il est important que les files d'attente de ces éléments d'entrée/sortie soient visitées régulièrement, c'est-à-dire qu'elles soient prises en compte régulièrement de façon à ce qu'elles ne soient pas trop élevées à un instant donné pour être placées toutes dans une même tâche. La prise en compte de ces files d'attente constitue des contraintes matérielles. Toutes ces informations constituent des éléments que le séquenceur va devoir analyser avant de pouvoir les séquencer. Pour qu'elles puissent être analysées, l'opérateur doit mettre ces informations sous la forme d'un fichier exploitable par le séquenceur (étape El). Le format dans lequel ce fichier est écrit peut être un format standard. Comme expliqué précédemment, toutes les spécifications n'ont pas les mêmes contraintes et les mêmes données. Il est donc nécessaire de les analyser pour pouvoir les séquencer automatiquement. Cette analyse est réalisée par le séquenceur à l'étape E2. Cette analyse consiste, notamment, à classer et simplifier les noeuds dans différentes catégories ou types, en fonction de critères prédéfinis. Comme on le verra ultérieurement, ces critères peuvent être, par exemple, le temps d'exécution des symboles logiques d'un noeud. Ces noeuds sont ensuite classés par type de noeuds et un niveau de priorité est attribué à chaque type de noeuds. Le séquenceur peut alors répartir les noeuds dans les différents cycles des tâches de traitement, en fonction du niveau de priorité de ces noeuds. L'équilibrage des noeuds dans les tâches, en temps d'exécution, est donc obtenu pour chaque type de noeuds. Cette répartition des noeuds dans les tâches peut être réalisées sur 12 tâches, chaque tâche ayant une fenêtre de temps par exemple de 10 ms ou bien sur 24 tâches, la fenêtre de temps de chaque tâche étant par exemple de 5 ms. Cette étape de répartition des noeuds sera décrite plus en détail ultérieurement. Lorsque tous les noeuds ont été répartis dans des cycles de tâches, le séquenceur a déterminé une solution de séquencement. Cette solution de séquencement se présente sous la forme d'un tableau dans lequel tous les noeuds des spécifications de la première phase sont placés dans des cases représentant les cycles des tâches de traitement. Dans une étape E3, la solution de séquencement trouvée est contrôlée par l'opérateur pour vérifier si cette solution est satisfaisante. Si ce n'est pas le cas, alors des paramètres 6 des spécifications peuvent être modifiés et l'étape E2 de recherche d'une solution est recommencée pour obtenir une solution plus satisfaisante. Il est à noter que toute solution de séquencement obtenue en sortie du séquenceur est une solution valide, c'est-à-dire une solution acceptable pour le calculateur. Cependant, la solution trouvée n'est pas forcément la solution optimale. L'opérateur peut donc choisir de modifier certains éléments de spécification, par exemple dans les contraintes d'ordre, et de relancer le séquenceur pour déterminer une solution de séquencement plus proche de la solution optimale. Lorsque la solution de séquencement obtenue est satisfaisante pour l'opérateur, alors cette solution de séquencement peut être produite, dans la phase P3 du procédé, sous un format qui peut varier en fonction du calculateur. La figure 3 montre l'analyse des différentes spécifications et la transformation de ces spécifications en informations utilisables par le séquenceur. Sur cette figure 3, on a représenté les différentes spécifications du procédé, c'est-à-dire les informations fournies par l'opérateur en entrée du procédé. Il y a, notamment, les temps des symboles 4, les noeuds 7 générés en fonction des temps d'exécution des symboles, les planches TEMPO 2 et les contraintes matérielles 5. Toutes ces informations sont analysées et traitées à l'étape El pour être mises sous une forme exploitable par le séquenceur. Le traitement El permet d'obtenir des données diverses 8 ainsi que des contraintes 9. Les données 8 correspondent au détail des noeuds, c'est-à-dire à la constitution de chaque noeud (liste des symboles formant chaque noeud). Les contraintes 9 correspondent aux directives de placement et de fréquence des noeuds, c'est-à-dire à l'ordre d'exécution des cycles, à la fréquence d'itération des noeuds, etc. D'autres informations sont fournies au séquenceur directement par l'opérateur. Ces informations sont des critères et paramètres 6 relatifs aux réglages du séquenceur. Ces réglages concernent notamment la formalisation des critères (les seuils sur les contraintes, le choix des contraintes à prendre en compte avec un certain niveau de priorité) et le mode de fonctionnement du séquenceur. En effet, le séquenceur peut fonctionner en mode automatique avec comme but de trouver une solution le plus rapidement possible. Dans ce mode, le séquenceur cherche à déterminer une seule solution, qu'elle soit optimale ou non. Le séquenceur cesse ses recherches dès que les contraintes sont respectées. Le séquenceur peut également fonctionner en mode temporel. Dans ce mode, le séquenceur a un temps limité pour produire une solution. Si le séquenceur ne peut produire une solution de séquencement dans ce temps limité, alors il informe l'opérateur qu'un ou plusieurs critères ne peuvent être satisfaits. Le séquenceur peut préciser la ou les contraintes non satisfaites. Il peut même donner, à titre indicatif, une valeur qui serait correcte pour satisfaire cette contrainte. L'opérateur peut alors choisir de modifier les contraintes en suivant les indications du séquenceur ou bien de modifier d'autres contraintes puis de relancer le séquenceur. Le fait que le séquenceur ne trouve pas de solution, dans ce mode, ne signifie pas qu'il n'y a pas de solution. Cela signifie uniquement que l'opérateur a choisi que le séquenceur ne fonctionne pas pendant un temps trop long et qu'il préfère modifier des contraintes afin d'obtenir une solution rapidement. Le séquenceur peut aussi fonctionner en mode optimal. Dans ce mode, le séquenceur recherche, pendant un temps illimité, la solution de séquencement optimale, c'est-à-dire la solution permettant d'obtenir le meilleur équilibre des temps de traitement dans toutes les tâches. Les données 8, contraintes 9 et critères et paramètres 6 sont pris en compte par le séquenceur pour déterminer la solution de séquencement, acceptable ou optimale, conforme aux choix de l'opérateur. Lorsque la solution de séquencement a été produite, elle peut être transmise au calculateur embarqué de l'aéronef ou à un calculateur de test utilisé pour tester ladite solution de séquencement. Dans certains types d'avions, le séquencement doit prendre en compte, également, des spécifications relatives à un réseau de communication à bord de l'aéronef. En effet, à bord de certains aéronef, un réseau de communication local permet une transmission d'informations entre différents dispositifs de l'aéronef et notamment entre les différents calculateurs de l'aéronef. Ce réseau de communication est comparable à un réseau Ethernet déterministe, dans lequel l'émission des informations est quasi-instantanée, et donc peu coûteuse en ressources CPU. Cependant, avant d'être émises, ces informations doivent être calculées et formatées, ce qui nécessite un temps de calcul, en amont de l'émission, relativement long par rapport à ladite émission. Ainsi, lorsqu'un message doit être émis par ce réseau de communication local, un temps de réalisation doit avoir été prévu, en amont de l'émission, pour les calculs de réalisation et de formatage de ce message. En conséquence, l'émission de ce message doit être placé le plus loin possible dans l'ordonnancement des spécifications pour conserver un maximum de temps à la réalisation et au formatage. La prise en compte de ce réseau local constitue donc une contrainte supplémentaire pour le séquencement des spécifications. La figure 4 représente un diagramme fonctionnel montrant les différentes étapes du procédé de l'invention. Comme expliqué par la suite, certaines étapes de ce diagramme peuvent être exécutées dans un ordre différent de celui montré sur la figure 4. Certaines étapes de ce diagramme peuvent aussi être optionnelles, l'ordre et le choix des étapes de la phase P2 étant dépendant des spécifications à séquencer et des critères choisis. Dans ce diagramme, on retrouve les première, seconde et troisième phases du procédé de l'invention, respectivement P1, P2 et P3. La phase P1 comporte une étape de lecture P11 des spécifications. Cette lecture consiste à rechercher toutes les spécifications à prendre en compte pour le séquencement, comme décrit dans les figures 2 et 3. Cette étape Pl 1 peut être suivie d'une étape P12 de simplification des spécifications. Cette simplification P12 des spécifications a pour but de réduire le nombre de noeuds, lorsque cela est possible. En particulier, les noeuds qui doivent obligatoirement être exécutés successivement, dans le même sous-cycle, sont regroupés en un seul noeud. Par exemple, si une contrainte TEMPO spécifie que quatre noeuds doivent être exécutés ensemble, à la suite les uns des autres, lors d'un même sous-cycle, alors l'étape P12 propose de simplifier cette contrainte en traitant ces quatre noeuds comme s'il ne s'agissait que d'un seul noeud. Les quatre noeuds sont donc regroupés pour être vus par le séquenceur comme un seul noeud. Le procédé de l'invention se poursuit par une étape P13 d'analyse et de traitement des spécifications. Cette étape de traitement P13, déjà décrite précédemment, consiste à répartir les noeuds par types de noeuds et à attribuer à chaque type de noeud un niveau de priorité. La seconde phase P2 consiste à répartir tous les noeuds de la façon la plus équilibrée possible à l'intérieur des tâches. Pour cela, chaque noeud est placé dans un sous-cycle d'une tâche de traitement, en tenant compte du niveau de priorité du type de noeud auquel appartient le noeud considéré. Les noeuds d'un même type de noeuds sont répartis successivement, les uns à la suite des autres, en fonction de leurs contraintes. La répartition des noeuds est donc réalisée type de noeud par type de noeud, en commençant par le type ayant le niveau de priorité le plus haut. Par exemple, les noeuds ayant le plus haut niveau de priorité, et donc considérés dans le procédé comme ayant les plus fortes contraintes, sont répartis en premier dans les différents cycles des tâches de traitement. Lorsque ces noeuds ont été placés, les noeuds ayant un niveau de priorité intermédiaire sont répartis dans les sous-cycles, puis les noeuds ayant un niveau de priorité bas. Dans l'exemple de la figure 4, on choisit de répartir d'abord les noeuds des planches TEMPO puis les autres noeuds. Autrement dit, on choisit d'équilibrer en premier, dans les tâches de traitement, les noeuds qui sont contraints TEMPO, c'est-à-dire les noeuds qui doivent être réalisés dans un ordre particulier, à des instants particuliers ou dans des souscycles particuliers. On répartit ensuite les noeuds qui ne sont pas contraints TEMPO mais qui réalisent des émissions sur les bus de communication ARINC puis les noeuds non contraints, c'est-à-dire les noeuds qui ont comme seule contrainte le temps d'exécution et pour lesquels on a, par conséquent, le plus grand degré de liberté. La phase P2, dans l'exemple de la figure 4, comporte une étape P21 de mise à jour des contraintes TEMPO. Cette mise à jour P21 est réalisée en utilisant, d'une part, des informations de réglage R1 de compromis entreles contraintes de bus ARINC et le temps d'exécution et, d'autre part, des informations d'optimisation R2 de certains bus ARINC. La phase P2 se poursuit par une analyse P22 des bus ARINC. La phase P2 comporte ensuite des étapes P23, P24 et P25 de répartition des noeuds dans les cycles des différentes tâches. Dans l'exemple de la figure 4, à l'étape P23, on affecte en premier les noeuds contraints TEMPO, en prenant en compte des informations R3 d'optimisation des noeuds contraints TEMPO. On affecte ensuite, à l'étape P24, les noeuds qui ne sont pas contraints TEMPO mais qui réalisent des émissions sur les bus ARINC. Finalement, à l'étape P25, on affecte les noeuds qui ne sont pas contraints TEMPO et qui ne réalisent pas d'émission ARINC. Ainsi, dans cet exemple, les noeuds ont été séparés en trois types (contraints TEMPO, non contraints TEMPO mais avec émission ARINC et non contraints sans émission) avec trois niveaux de priorité différents. Le plus haut niveau de priorité été attribué aux noeuds ayant le plus de contraintes, à savoir les noeuds contraints TEMPO. Le niveau de priorité intermédiaire a été attribué aux noeuds ayant une contrainte de temps d'exécution et une contrainte d'émission. Le niveau de priorité le plus bas a été attribué aux noeuds ayant uniquement une contrainte de temps d'exécution. Lorsque tous les noeuds ont été affectés, le procédé se poursuit par une étape P26 d'évaluation de la solution de séquencement obtenue. Si la solution de séquencement est acceptable par l'opérateur, alors cette solution de séquencement est générée, en phase P3. Si la solution de séquencement est jugée inacceptable par l'opérateur ou si aucune solution n'est trouvée pendant un temps limité (selon le mode de fonctionnement choisi) alors l'opérateur peut modifier des choix en intervenant, dans le séquencement, sur le réglage du compromis bus ARINC / temps d'exécution, sur l'optimisation de certains bus ARINC ou encore sur l'optimisation des noeuds contraints TEMPO. La nouvelle solution de séquencement est alors évaluée en P26 puis générée en P3, si elle est acceptable pour l'opérateur. Au sein des étapes 23, 24 et 25, deux méthodes d'affectation peuvent être utilisées. L'affectation des noeuds, dans les cycles des tâches de traitement, peut être réalisée selon un principe dit de base qui permet notamment l'affectation des noeuds non contraints TEMPO. Selon ce principe de base, les noeuds sont équilibrés de façon à minimiser un seul critère; ils sont traités successivement, dans l'ordre décroissant de la valeur de leur critère, chaque noeud est affecté au cycle qui possède la plus faible valeur du critère. Par exemple, si l'on considère le temps d'exécution comme critère d'attribution pour les noeuds suivants: noeud N1: temps d'exécution = 10 ps noeud N2: temps d'exécution = 1 s noeud N3: temps d'exécution = 5 s noeud N4: temps d'exécution = 15 s noeud N5: temps d'exécution = 30 s. Dans un séquencement où l'on chercherait à équilibrer ces noeuds sur deux tâches, alors les noeuds seraient traités successivement dans l'ordre décroissant de leur temps d'exécution, c'est-à-dire d'abord N5, puis N4, N1, N3, et N2. En affectant un noeud à la tâche la moins chargée, en respectant l'ordre des noeuds défini précédemment, on place d'abord le noeud N5 dans la tâche 2, puis le noeud N4 dans la tâche 1, le noeud N1 dans la tâche 1, le noeud N3 dans la tâche 1 et le noeud N2 dans la tâche 2. On obtient pour la tâche 1 un temps de 30 ps et pour la tâche 2 un temps de 31 s. On comprend que l'ordre dans lequel sont traités les noeuds est très influent sur l'équilibre des tâches. Par exemple, si les noeuds étaient traités par ordre alphanumérique, alors le séquencement obtenu serait: N2, N3 et N4 pour la tâche 1, et N1 et N5 pour la tâche 2. La tâche 1 aurait un temps de 21 ps tandis que la tâche 2 aurait un temps de 40 s. Les temps d'exécution par tâche ne seraient donc pas équilibrés. Ce principe de base est appliqué, de préférence, pour les noeuds qui ont un seul critère de minimisation, ou critère d'attribution, en particulier les noeuds non contraints TEMPO. Dans le cas de noeuds ayant des émissions vers un bus ARINC, le critère de minimisation peut être autre que le temps d'exécution puisqu'il s'agit du nombre d'émissions vers ce bus. On comprend donc qu'avec ce principe de base, le critère de minimisation peut varier en fonction des types de noeuds. Pour des noeuds non contraints TEMPO et ne réalisant pas d'émission ARINC, le critère de minimisation est le temps maximum d'exécution. Pour des noeuds non contraints TEMPO mais réalisant des émissions ARINC, le critère de minimisation est le nombre d'émissions vers le bus de communication. Dans le cas des noeuds contraints TEMPO, il peut y avoir plusieurs critères de minimisation pour un même type de noeuds. Dans ce cas, l'affectation des noeuds doit être réalisée selon un principe appelé principe dérivé . Parmi ces critères, il peut y avoir le temps d'exécution, les émissions ARINC, le delta par rapport à un autre séquencement, etc. En effet, à cause des contraintes définies dans les planches tempo, il n'est pas possible d'affecter un noeud à une tâche donnée, uniquement en fonction d'un critère à minimiser. Dans le principe dérivé, on cherche à optimiser le découpage de chaque planche TEMPO. Autrement dit, dans ce cas, le procédé recherche le noeud à partir duquel il faut changer de sous-cycle pour obtenir un séquencement équilibré au niveau du temps. Dans ce cas, toutes les planches TEMPO sont traitées successivement, les unes à la suite des autres, par exemple dans l'ordre alphanumérique. On détermine, pour chacune de ces planches, les frontières entre les différents cycles. Il est à noter que la répartition trouvée dépend fortement de l'ordre dans lequel les planchesTEMPO ont été prises en compte. Pour respecter les contraintes définies dans les planches TEMPO, pour chaque noeud, on définit une liste de sous-cycles possibles. Ainsi, au départ, tous les sous-cycles sont autorisés puis, au fur et à mesure que les noeuds sont affectés, cette liste est mise à jour afin de respecter l'ordre des noeuds. On scinde les noeuds en fonction du souscycle choisi pour placer le noeud. Par exemple, pour un cycle C2, on scinde le ou les noeuds en deux groupes. En prenant en compte ces deux principes, c'est-à-dire le principe d'attribution de base et le principe d'attribution dérivée, les noeuds d'une spécification sont affectés de la manière suivante: - les noeuds contraints TEMPO qui ne réalisent pas d'émission et dont l'affectation est attribuée par le principe dérivé, avec le critère de temps maximum d'exécution, - les noeuds contraints TEMPO réalisant des émissions dont l'affectation est attribuée par le principe dérivé avec le critère de temps maximum d'exécution, - les noeuds non contraints TEMPO qui ne réalisent pas d'émission dont l'affectation est attribuée par le principe de base avec le critère de temps maximum d'exécution, et - les noeuds non contraints TEMPO réalisant des émissions dont l'affectation est attribuée par le principe de base avec le critère bus d'émissions. Pour obtenir une répartition la plus équilibrée possible, c'est-à-dire une répartition optimale, en un minimum de temps d'exécution, il est possible d'optimiser les bus ARINC. Seuls les noeuds contraints TEMPO réalisant des émissions ARINC sont concernés par cette optimisation. Pour cela, on cherche à équilibrer uniquement les noeuds réalisant des émissions vers les bus ARINC, choisis en homogénéisant au maximum la répartition de ces bus. Lorsque plusieurs affectations sont équivalentes, on choisit l'affectation qui permet d'homogénéiser le temps maximum d'exécution. On trouve ainsi une des meilleures répartitions possibles des bus ARINC. Ensuite, pour tenir compte de cette répartition lors de l'équilibrage des noeuds TEMPO, on ajoute des contraintes de sous-cycle pour ces noeuds. Ces contraintes de cycle sont ajoutées dans les planches TEMPO. Pour améliorer la répartition des bus ARINC, on peut également choisir d'optimiser les planches TEMPO. Ce principe d'optimisation des planches TEMPO permet d'obtenir l'ordre dans lequel lesdites planches doivent être traitées avec le principe dérivé afin d'obtenir la meilleure répartition possible des temps maximum d'exécution. Cet ordre influe sur la répartition pour plusieurs raisons: - on ne peut pas scinder un noeud en deux parties où la première partie du noeud serait exécutée dans une tâche puis la seconde partie dans une autre tâche. - les planches TEMPO possèdent des ensembles de noeuds non 20 sécables, c'est-à-dire que ces noeuds doivent être exécutés obligatoirement dans une même tâche. - les noeuds doivent être exécutés dans l'ordre défini dans les planches TEMPO. Ainsi, à cause de la nature même des planches TEMPO et des contraintes induites par celles-ci, cet ordre a un impact sur la répartition trouvée. Une méthode simple pour trouver cet ordre est d'évaluer tous les ordres et ensuite de déterminer celui qui donne la meilleure répartition. Cependant, en optimisant un bus ARINC, on contraint des noeuds TEMPO afin d'obtenir une meilleure affectation de ce bus. Or, ces nouvelles contraintes ont des impacts sur la répartition du temps maximum d'exécution. Ainsi, en améliorant la répartition des émissions des bus ARINC, on détériore la répartition des temps maximum d'exécution. Pour limiter ces effets de l'optimisation des bus ARINC, on peut réaliser un compromis entre la répartition des temps et la répartition ARINC. Pour cela, on cherche à améliorer la détermination des nouvelles contraintes sur les noeuds TEMPO ou à interdire de donner à ces noeuds certaines valeurs. C'est ainsi que, par exemple, un noeud contraint TEMPO qui doit se trouver dans le sous-cycle C21 pour obtenir une bonne répartition des temps peut, dans le pire des cas, se trouver dans le sous-cycle C22 si cela permet d'améliorer la répartition du bus ARINC; mais on interdit de placer ce noeud dans d'autres cycles que C21 ou C22 pour éviter que le déséquilibre engendré ne pénalise trop l'homogénéité des temps maximum d'exécution. Les valeurs exclues dépendent du compromis choisi. Le compromis est déterminé à partir d'une valeur qui est choisie entre 0 et 0,5. Une valeur -1 signifie qu'aucun compromis n'est choisi et, par conséquent, qu'aucune valeur n'est exclue, ce qui a pour effet d'optimiser au maximum les bus ARINC. Plus précisément, cette valeur détermine un domaine dans lequel les frontières entre deux cycles peuvent varier. La valeur du compromis est en fait un pourcentage permettant de déterminer une zone à partir du temps d'exécution du cycle idéal. Dans l'exemple de la figure 5, la frontière entre le premier et le deuxième cycles varie entre le noeud du sous-cycle C21 placé à 60% dans le sous- cycle C21 (40% de la fin) et le noeud du sous-cycle C22 placé à 40% dans le sous-cycle C22 (40% du début). Cette valeur de compromis permet de préciser dans quelle mesure on est prêt à détériorer la répartition idéale des noeuds pour le critère de temps maximum d'exécution afin d'obtenir une répartition des bus ARINC répondant à des contraintes matérielles. REVENDICATIONS 1 Procédé de séquencement automatique des spécifications d'un calculateur, caractérisé en ce qu'il comporte: - une analyse (P13) des spécifications constituées de noeuds avec une simplification et une répartition de ces noeuds en au moins deux types de noeuds, et - une affectation (P23 P25) de ces noeuds dans des sous-cycles répétitifs de tâches de traitement afin d'obtenir une répartition des tâches sensiblement uniforme. 2 Procédé selon la revendication 1, caractérisé en ce qu'un niveau de priorité est attribué à chaque type de noeuds. 3 Procédé selon la revendication 1 ou 2, caractérisé en ce que les noeuds sont répartis en trois types de noeuds. 4 Procédé selon la revendication 2 ou 3, caractérisé en ce que les noeuds sont affectés dans les sous-cycles, par type de noeuds, en fonction de leur niveau de priorité. Procédé selon la revendication 4, caractérisé en ce que les tâches sont équilibrées en temps d'exécution, pour chaque type de noeuds. 6 Procédé selon la revendication 4 ou 5, caractérisé en ce que les tâches sont équilibrées en fonction de leurs émissions matérielles. 7 Procédé selon l'une quelconque des revendications 4 à 6, caractérisé en ce que les noeuds sont affectés par ordre décroissant de leur niveau de priorité. 8 Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce que les noeuds sont répartis par type de noeuds en fonction de critères et/ou de contraintes de chaque noeud. 9 Procédé selon l'une quelconque des revendications 1 à 8, caractérisé en ce que les noeuds sont répartis dans 12 ou 24 tâches. 10 Procédé selon l'une quelconque des revendication 1 à 9, caractérisé en ce que les tâches ont toutes une même durée préfixée 11 Procédé selon l'une quelconque des revendications 1 à 10, caractérisé en ce que chaque sous-cycle a une fréquence d'itération prédéfinie dans les tâches de traitement. 12 Procédé selon l'une quelconque des revendications 5 à 11, caractérisé en ce que l'équilibrage des noeuds dans les tâches est obtenu en plaçant successivement, dans un ordre décroissant d'une valeur de critère, chaque noeud et en affectant chaque noeud à la tâche ayant la plus faible valeur de ce critère. 13 Procédé selon la revendication 12, caractérisé en ce qu'un compromis est établi pour équilibrer les noeuds. 14 Procédé selon l'une quelconque des revendications 1 à 13, caractérisé en ce que le temps d'exécution de chaque noeud est maximisé avant affectation dudit noeud dans une tâche. Procédé selon l'une quelconque des revendications 1 à 14, caractérisé en ce qu'il comporte une étape d'évaluation (P26) du séquencement obtenu après affectation de tous les noeuds. 16 Procédé selon la revendication 15, caractérisé en ce que l'affectation des noeuds est réitérée après modifications de réglages (R1 R3) et/ou de contraintes par un opérateur. 17 Procédé selon la revendication 16, caractérisé en ce que l'affectation des noeuds est réitérée jusqu'à ce que le séquencement soit acceptable. 18 Procédé selon la revendication 17, caractérisé en ce que, lorsque le séquencement est acceptable, une solution de séquencement est générée (P3) . 19 Calculateur de vol pour aéronef, caractérisé en ce qu'il met en oeuvre le procédé selon l'une quelconque des revendications 1 à 18.