Brevet FR2901379A1 — publié le 20071123

• Un niveau de disponibilité suffisant induit par la criticité du système de commandes de vol électriques. • Un niveau de sécurité induit par les exigences fonctionnelles du système. L'objectif de disponibilité est atteint par la coexistence de plusieurs calculateurs autonomes et indépendants capables de réaliser les fonctionnalités du système, et l'objectif de sécurité est garanti par une architecture fail-stop au niveau de chaque calculateur. En effet, plusieurs types de calculateurs sont capables de calculer une fonction donnée et seul un calculateur est maître (engagé) sur ladite fonction tandis que les autres calculateurs redondants sont en attente sur cette fonction et calculent d'autres fonctions. Chaque calculateur est autonome, possède sa propre alimentation et est piloté par sa propre horloge temps réel. Ces horloges sont asynchrones. De plus, chaque calculateur est composé de deux unités indépendantes : • Une unité COMMAND ou COM qui élabore les ordres de pilotage et commande les actionneurs. • Une unité MONITOR ou MON qui calcule la même fonctionnalité et les mêmes ordres, éventuellement en utilisant des capteurs et des algorithmes différents de ceux de l'unité COMMAND associée. Cette unité surveille l'unité qui lui est associée. En parallèle avec la redondance matérielle, une redondance logicielle est mise en place dans le sens où le logiciel de chaque calculateur est différent et les logiciels de chaque couple d'unités (COM, MON) associées sont dissimilaires. Comme déjà indiqué ci-dessus, les deux horloges ne sont pas matériellement synchronisées. Cette asynchronie se manifeste par un déphasage (ou jitter ), entre les instants d'échantillonnage, et, par conséquent, l'apparition d'une gigue entre les instants de calcul. Cette gigue n'est pas constante dans le temps et est majorée par le cycle de l'horloge. En effet, les horloges ne sont pas parfaitement exactes et dérivent au cours du temps. Mais leur dérive est suffisamment lente pour garantir la non perte du temps réel. La figure 1 présente un couple de telles horloges et la dérive relative, dans le temps, de leurs impulsions. L'asynchronie des horloges qui pilotent l'architecture et les latences de communication engendrent des aléas temporels. Les différents calculateurs communiquent entre eux par des bus, et des bus réalisent la connexion entre les unités associées d'un même calculateur. La communication par des bus de données est caractérisée par des latences de transmission qui sont des retards non déterministes mais bornés. En effet, les délais de transmission sont induits par la vitesse des bus et dépendent fortement de la charge du réseau de communication. Ces retards dépendent donc de l'état instantané des moyens de communication. Ils ne sont donc pas quantifiables, d'où leur caractère non déterministe. Par contre, les caractéristiques fournies par l'équipementier donnent une borne maximale 8 pour ces retards. La figure 2 montre les effets des retards induits par les moyens de communication. Chaque composante du couple de signaux de départ (à gauche de la figure) transite à travers un bus de données et par conséquent subit un retard inférieur à S. Le couple de signaux récupéré à la sortie de ces bus (à droite de la figure) présente une déformation transitoire qui se manifeste par une suite de valeurs (a', b') = (0,0), (0,1) et (1,1). Typiquement, le couple (0,1) n'a aucune réalité physique et ne correspond à aucun couple de valeurs (a, b) du couple de départ. Cet exemple illustre bien le problème des retards non déterministes et bornés. Un autre aspect des aléas temporels est lié à l'échantillonnage. En effet, les réalisations industrielles dans le domaine des commandes de vol électriques, et plus généralement dans tous les systèmes globalement asynchrones et pilotés par des horloges temps réel périodiques, se caractérisent par le non déterminisme de l'échantillonnage. Ce non déterminisme engendre des déphasages sur les signaux continus et des retards sur les signaux discrets tels que les signaux booléens. Les figures 3A et 3B montrent clairement que l'asynchronisme d'horloges peut engendrer des situations transitoires. En effet, la situation de la figure 3A montre un échantillonnage périodique, à la période Cx, d'un couple de signaux. La situation de la figure 3B montre un autre échantillonnage possible du même couple de signaux par une horloge de même période Cx que la première, mais avec une gigue non nulle. On remarque que l'échantillonnage peut agir comme un retard de transmission non déterministe et borné par la durée du cycle (ou la période) Cx de l'horloge considérée. Ce constat est valable pour un ensemble de n signaux avec n>_1. On comprend donc que les effets des aléas temporels sur les signaux qui transitent à travers l'architecture matérielle mise en oeuvre se combinent et sont équivalents à un retard global non déterministe A, borné par : Dans le cas d'un système de commande vol, les calculateurs de commandes de vol calculent, entre autres, les ordres de pilotage, et surveillent leur validité. Ces ordres sont issus des lois de pilotage qui sont des fonctions complexes et qui présentent souvent plusieurs branches de calcul. Elles sont activées selon l'état de l'avion, du vol et de l'environnement externe à l'aéronef. Les états du système de commandes de vol sont codés par un ensemble de signaux booléens qui qualifient la disponibilité d'une ressource ou d'une fonction, ou le franchissement d'un certain seuil, ou la validité d'une mesure... L'ensemble des états d'un calculateur de commande de vol est appelé la configuration du calculateur. Les états des calculateurs de commandes de vol sont des conditions logiques qui aiguillent le choix des branches de calcul et les paramètres des lois de pilotage (gains, cinématique...). Comme les unités associées au sein d'un même calculateur de commandes de vol fonctionnent en parallèle, une divergence des états des deux unités peut engendrer une divergence sur les ordres calculés et le déclenchement d'alarmes de désaccord. Les aspects traités, de type divergence de configuration, sont situés dans les chaînes fonctionnelles qui commandent les changements de modes via des commutateurs entre les différentes branches d'un calcul donné. Les divergences traitées sont permanentes ou transitoires. A titre d'exemple, est représentée en figure 4 une situation où une condition booléenne B commande un commutateur entre deux traitements T1 et T2, chaque traitement étant effectué par un calculateur. Ce dispositif est répliqué dans les deux unités COMMAND (c) et MONITOR (m) et nous notons par X (en fait : Xc pour la partie COMMAND et Xm pour la partie MONITOR) la sortie de cet algorithme. La condition booléenne est notée Bc pour la partie COMMAND et Bm pour la partie MONITOR. On peut prendre l'exemple du cas où les conditions booléennes Bc et Bm sont issues de logiques à franchissement de seuil. Donc, si le signal d'entrée Ec est supérieur à un certain seuil s, Bc prend par exemple la valeur Vrai. Il en va de même pour Em et Bm. Ce traitement est réalisé via un dispositif de détection de franchissement de seuil (LD, LD'). A entrée physique constante, les précisions des capteurs font naturellement que les entrées Ec et Em peuvent être différentes. Donc, si l'entrée physique est durablement au voisinage du seuil de déclenchement alors Bc Bm, avec pour conséquence un désaccord en aval sur les consignes de braquage si les fonctions T1 et T2 sont différentes. Un cas plus favorable est celui où les entrées Ec et Em sont issues d'un même capteur ou d'une même source. Mais cela n'empêche pas de générer deux suites Bc et Bm différentes, sur une fenêtre de temps suffisamment longue. Le cas limite est celui de l'entrée physique au voisinage du seuil : alors, l'imprécision et le bruit de codage peuvent induire le même problème. En se restreignant davantage et en supposant un codage "identique" entre COM et MON, il suffit qu'il y ait -comme illustré sur la figure 6- une fluctuation (même très faible) de l'entrée physique au voisinage du seuil, avec une fréquence double de celle de l'échantillonnage, pour que l'asynchronisme COM/MON conduise par exemple à générer une suite 1111111... en COM et 0000000... en MON. Cet exemple montre qu'une dynamique importante sur les entrées (numériques ou booléennes), couplée avec les aléas temporels, induit potentiellement des divergences sur les configurations des unités d'un calculateur donné. Or la configuration des deux unités de chaque couple d'unités associées COM/MON doit être, en dehors de cas de panne, la même, à l'asynchronisme des horloges près. Cette exigence impose le traitement des signaux booléens qui codent la configuration de chaque unité. Ce traitement est appelé la consolidation. Autrement dit, pour éviter les divergences des variables d'entrée, issues par exemple des logiques à seuil, on a recours à cette technique de consolidation. La consolidation booléenne consiste à élaborer la configuration (suite booléenne) locale dans chaque unité de calcul, l'échanger avec l'unité associée via un bus de données et la traiter pour égaliser les configurations. En effet, des écarts permanents entre les configurations engendrent des écarts permanents sur les ordres de pilotage et déclenchent les surveillances au bout de la chaîne de calcul. Des écarts transitoires induisent, quant à eux, des écarts plus ou moins importants qui peuvent faire diverger les calculs des ordres de pilotage, surtout quand ceux-ci présentent dans leurs chaînes de calculs des opérateurs qui se chargent, comme des intégrateurs par exemple. Typiquement, comme le montre la figure 15, si deux variables sont calculées en parallèle, l'une dans l'unité COM et l'autre dans l'unité MON d'un même calculateur CDVE (commande de vol électrique), une consolidation consiste à échanger ces variables via le bus inter unités B et à opérer un traitement combinatoire sur la variable locale et la variable reçue dans chaque unité. Les flots locaux x com et x mon servent à calculer les flots consolidés x com c et x mon c. La consolidation se décline en deux versions : 1. la consolidation en ET logique (cas de la figure 7) sert à privilégier la valeur FALSE ( erreur ) en cas de divergence des deux flots locaux. Cette consolidation tend à inhiber le traitement commandé par la variable d'état en aval du traitement. 2. la consolidation en OU logique sert à privilégier la valeur TRUE ( exact ) en cas de divergence des deux flots locaux. Cette consolidation tend à maintenir la disponibilité du traitement commandé par la variable en aval du traitement. Cette technique a pour but d'éliminer les transitoires qui sont susceptibles d'entacher les entrées des calculs séquentiels et qui risquent de créer des divergences. Le problème, avec cette technique, est que les flots consolidés dans chaque unité sont les mêmes, à un cycle d'horloge près, si les flots à consolider sont suffisamment stables ou ne varient pas trop vite. Mais comme ces signaux ne sont généralement pas suffisamment stables - car ils dépendent par exemple de logiques par franchissement de seuil - cette technique produit des suites consolidées qui peuvent différer au sens de la distance de Hamming. La distance de Hamming entre deux suites de booléens est le nombre de bits différents entre ces deux suites. Ces flots consolidés entrent dans d'autres calculs de flots de contrôle, et donc risquent potentiellement de faire diverger les automates de contrôle. Une autre solution consiste à confirmer l'état (vrai ou faux) absorbant pour l'opération de consolidation. En effet, si on confirme l'état vrai sur un signal, on introduit une inertie sur son état faux qui est la valeur absorbante pour la porte logique AND. De même, si on confirme l'état faux sur un signal booléen, on introduit une inertie sur son état vrai , qui est la valeur absorbante pour l'opération logique OR. Cette technique permet d'avoir une valeur commune, en COM et en MON, au moins pendant un cycle d'horloge sur deux. L'inconvénient avec cette technique est qu'elle n'est pas suffisamment précise car elle peut avoir un taux d'erreur de 50%. De plus, elle retarde la prise en compte des changements de valeurs, suite à la confirmation. Par conséquent, les consolidations mises en oeuvre de manière connue sont de type combinatoire. Ce sont des traitements point à point, sans mémoire, souvent par le biais d'une porte logique. D'autres dispositifs connus se prémunissent contre les problèmes expliqués ci-dessus en utilisant une architecture fortement synchrone dans le sens où tous les calculateurs redondants sont pilotés par une horloge distribuée, ainsi que les bus de communication. L'avantage de cette solution est d'éliminer les aléas temporels. Cette approche préconise l'usage de dispositifs de vote de type vote majoritaire (vote triplex). Mais cette approche, par synchronisation globale de toute l'architecture, est coûteuse, car elle exige l'usage de matériel spécifique souvent assez lent. Ce défaut empêche le développement de stratégies et de fonctions avancées, qui sont souvent gourmandes en temps processeur et en bande passante du réseau de communication. Le problème qui se pose est donc de trouver une technique de consolidation des données booléennes qui soit insensible, d'une part à l'asynchronisme des deux unités et aux latences de transmission, et d'autre part à la dynamique des signaux à consolider. EXPOSE DE L'INVENTION Selon l'invention, pour égaliser des signaux booléens échantillonnés, deux unités associées d'un calculateur d'un système de calcul arrivent à un consensus sur une valeur commune, à partir de la valeur locale à chaque unité et de la valeur reçue de l'unité associée via le bus de communication. Cette valeur commune découle d'un traitement de synchronisation locale. A un instant donné, chaque unité dispose d'un couple de valeurs : • Bown qui est la valeur du booléen local. • Bopp qui est la valeur reçue de l'unité opposée (associée), mais qui n'est pas toujours le booléen local de l'autre unité. Le traitement de consolidation s'effectue sur ce couple de booléens et génère une valeur booléenne Bcc (pour booléen consolidé en COM) et une valeur Bmc (pour booléen consolidé en MON). Les deux signaux consolidés (Bcc et Bmc) sont les plus proches possibles. L'invention a également pour objet un procédé de synchronisation de deux unités asynchrones, respectivement de commande et de surveillance, d'un calculateur d'un système de calcul comportant une pluralité de calculateurs reliés entre eux par des moyens de communication, chacune de ces unités comportant une unité de traitement, ce procédé comportant : un calcul de signaux locaux booléens indépendants, ayant chacun une inertie booléenne supérieure aux aléas temporels, dus aux latences de transmission entre calculateurs et à la précision de l'échantillonnage par le cycle d'horloge de chaque unité, susceptibles de les entacher, - un échange, entre les deux unités, des 20 signaux locaux, chaque unité envoyant une valeur calculée localement à l'autre unité, - la génération d'un couple de signaux synchronisés, dans chaque unité, à partir de la valeur locale et de la valeur reçue de l'autre unité, 25 - la formation d'un signal consolidé à partir du couple de signaux synchronisés. Selon l'invention, est mis en commun un couple de valeurs cohérentes, qui correspond au recouvrement des intervalles stables des entrées 30 locales Bown entre les unités associées (COM/MON). Ce couple de valeurs est rafraîchi par les unités concernées pour atteindre le consensus escompté sur un couple commun et cohérent. Chaque unité se charge donc de rafraîchir une composante de ce couple en fonction de la dynamique de son entrée Bown et de la dynamique de l'entrée Bopp reçue. Ce traitement, et un dispositif qui le met en oeuvre, permettent de retrouver localement un fonctionnement analogue à un fonctionnement où toutes les unités sont parfaitement synchrones. Ainsi, l'invention permet une synchronisation locale, à la demande, sans passer par une synchronisation globale de toute l'architecture matérielle. L'invention propose donc un procédé de rafraîchissement de la copie commune qui sert aux unités qui la partagent pour effectuer la consolidation. Un dispositif selon l'invention comporte des moyens de synchronisation selon l'invention, et permet de couvrir tous les cas de panne dus à une divergence transitoire ou permanente des flots de contrôle. La synchronisation se base sur la création d'une mémoire partagée virtuelle au niveau du bus qui assure la communication entre deux unités de calcul asynchrones mises en oeuvre dans le traitement. Cette synchronisation assure la mise en cohérence des états internes codés de ces unités, par les flots de contrôle consolidés. On substitue aux portes logiques de l'art antérieur un procédé qui exploite les propriétés des signaux à consolider. L'invention concerne également un système de calcul comportant une pluralité de calculateurs reliés entre eux par des moyens de communication, au moins un des calculateurs étant asynchrone et comportant au moins deux unités asynchrones, respectivement de commande et de surveillance, chacune de ces unités comportant une unité de traitement ainsi que : - des moyens de calcul de signaux locaux Bown booléens indépendants, ayant chacun une inertie booléenne supérieure aux aléas temporels susceptibles de les entacher, - des moyens pour échanger, entre les deux unités, des signaux locaux, chaque unité envoyant une valeur, calculée localement, à l'autre unité, - des moyens pour générer un couple de signaux synchronisés, dans chaque unité, à partir de la valeur locale et de la valeur reçue de l'autre unité, - des moyens pour former un signal consolidé à partir du couple de signaux synchronisés. Les signaux locaux peuvent être calculés par des algorithmes différents à partir de capteurs différents, ou être issus de logiques associées à des capteurs, par exemple du type à franchissement de seuil, ou de calculs effectués par d'autres calculateurs. Ils ont de préférence chacun une inertie booléenne supérieure à deux fois le retard non déterministe susceptible de les entacher. La connexion entre deux unités asynchrones 30 peut être assurée par un bus inter-unités et/ou par une liaison de type câble. De même, les moyens de communication entre les calculateurs peuvent comporter au moins un bus inter-unités et/ou au moins une liaison de type câble. Un procédé et l'invention mettent en rafraîchissement robuste. Selon un mode de réalisation, ce procédé permet, pour chaque unité, de : • détecter un changement de valeur d'une entrée parmi le signal booléen propre (Bown) de ladite unité et le signal (Bopp) reçu de l'autre unité, • maintenir un compteur interne à l'unité, • retenir une certaine valeur stable, • rafraîchir cette valeur sur une condition donnée. Chaque unité i peut mettre en oeuvre un compteur (ni), initialement à un état initial ( 0 ), et tel que, si cette unité i voit une de ses entrées propres (Bown) changer et qu'aucune entrée des autres unités (Bopp) ne change, elle diffuse le changement de son entrée en rafraîchissant sa sortie (Bowndiff) vers l'une des autres unités et positionne son compteur en un quatrième état. Le compteur peut être tel que, si ni = 0, et si l'unité i voit des changements d'entrées Bopp des autres unités, elle diffuse le changement de son entrée en rafraîchissant sa sortie (Bowndiff) vers l'une des autres unités et positionne son compteur en un troisième état. A chaque étape, chaque unité décrémente son compteur jusqu'à l'état initial. dispositif selon un procédé de un oeuvre Lorsque ni = 1, chaque unité i exécute l'opération de rafraîchissement de son couple local par un couple de valeurs rafraîchi. La pluralité de calculateurs peut faire 5 partie d'un système de commandes de vol électriques. BRÈVE DESCRIPTION DES FIGURES - La figure 1 représente deux horloges en temps réel. - La figure 2 illustre les effets de 10 retards induits pas des moyens de communication. - Les figures 3A et 3B représentent l'effet de l'asynchronisme d'horloges sur l'échantillonnage. - La figure 4 représente deux unités de traitement et une condition booléenne de commande d'un 15 commutateur entre ces deux traitements. - Les figures 5A et 5B représentent la génération de deux conditions booléennes à partir de logiques à franchissement de seuil. - La figure 6 représente des fluctuations 20 d'une entrée physique au voisinage d'un seuil. - La figure 7 représente une architecture matérielle d'un système de commandes de vol électriques, auquel s'applique l'invention. - La figure 8 représente une architecture 25 générale d'un dispositif auquel s'applique l'invention; -Les figures 9A et 9B illustrent un recouvrement des portions stables de deux signaux. - La figure 10 représente le principe d'une consolidation exacte. - La figure 11 illustre une implémentation séquentielle d'un algorithme de rafraîchissement. - La figure 12 illustre une implémentation détaillée d'un algorithme de synchronisation. - La figure 13 illustre un exemple de réalisation de l'invention. - La figure 14 est une représentation graphique de moyens de mémorisation d'une valeur booléenne. La figure 15 illustre des moyens de consolidation par portes AND, connus de l'art antérieur. DESCRIPTION DETAILLEE DE MODES DE REALISATION DE L'INVENTION La figure 7 représente une architecture matérielle d'un système 2 de commandes, sa décomposition en calculateurs redondants et le principe COM/MON, la redondance permettant de satisfaire aux conditions de disponibilité et/ou de sécurité, telles que déjà présentées ci-dessus. Les différents calculateurs sont identifiés par les références Cl, C2,...Cn. Des moyens 6 de communication assurent l'échange d'informations entre les différentes composantes de cette architecture asynchrone. Au sein d'un même calculateur, les deux unités de calcul (COM1, MON1 ; COM2, MON2 ;... ; COMn, MONn), reliées par un bus B1, B2,..., Bn inter-données, sont asynchrones : chaque unité dispose de sa propre horloge temps réel, et les diverses horloges ne sont pas synchronisées ensemble. Cette absence de synchronisation pose les problèmes indiqués dans l'introduction à la présente demande et auxquels la présente invention apporte une solution. L'architecture générale de l'un des calculateurs Cl, C2,....Cn est illustrée sur la figure 8. Elle comporte deux unités COM et MON comportant chacune une unité de traitement Tc et Tm. Dans le cas d'un calculateur de commandes de vol, l'une de ces unités ( COMMAND ou COM ) élabore les ordres de pilotage et commande les actionneurs, tandis que l'autre ( MONITOR ou MON ) calcule la même fonctionnalité et les mêmes ordres, éventuellement en utilisant des capteurs et des traitements différents de ceux de l'unité COMMAND associée. Cette unité surveille l'unité COMMAND qui lui est associée. Les différents calculateurs sont interconnectés par des bus de données. La communication entre les calculateurs met en oeuvre un échantillonnage périodique pour la lecture des bus d'entrée, et un blocage périodique, de type bloqueur d'ordre zéro, pour l'écriture sur les bus de sortie. L'échantillonnage et le blocage sont pilotés par les impulsions des horloges périodiques temps réel, c'est-à-dire par l'activation induite des programmes par ces horloges. Ce type de communication est non bloquant car les calculateurs asynchrones scrutent périodiquement leurs bus d'entrée et aucune synchronisation n'est requise pour prendre en compte les changements de valeurs issus des moyens de communication. Les bus de données sont de deux types : • Les bus inter calculateurs 6 réalisent la connexion entre les calculateurs. Ces bus sont issus d'une unité d'un calculateur donné vers les autres calculateurs et sont rebouclés vers l'unité associée à l'unité émettrice. • Les bus inter unités B1, B2, ...Bn réalisent la connexion entre les unités associées au sein d'un même calculateur. Les liaisons entre calculateurs et/ou les liaisons inter unités peuvent être réalisées par des câbles, ou par, à la fois, un ou des câbles et un ou des bus. Un traitement de consolidation selon l'invention comporte trois étapes : 1. au cours de la première étape, on calcule les signaux booléens locaux Bown dans chaque unité COM et MON. Ces deux signaux sont, à priori, indépendants, car calculés par des algorithmes différents à partir de capteurs ou de calculateurs différents. Dans la cas des capteurs, ceux-ci peuvent être de tous types, par exemple du type à franchissement de seuil. 2. au cours d'une deuxième étape, il est procédé à un échange, entre les deux unités COM et MON, des signaux locaux, ou d'un signal calculé à partir des signaux locaux. Chaque unité envoie sa valeur Bown, ou une valeur calculée à partir de cette valeur Bown, calculée localement, à l'autre unité. 3. au cours d'une troisième étape, on atteint un consensus, dans chaque unité, à partir de la valeur locale et de la valeur reçue de l'unité associée et on génère un couple de signaux synchronisés. Ce couple servira à produire le signal consolidé: c'est l'opération de consolidation proprement dite. La consolidation permet d'égaliser les deux flots consolidés à une gigue, ou à un jitter près, de l'horloge. L'invention permet cette consolidation : on garde, virtuellement, une copie commune des flots à consolider sur le bus Bi inter unités, qui se comporte comme une mémoire partagée. En effet, une condition suffisante pour avoir des suites consolidées égales est que les mêmes entrées soient appliquées aux algorithmes de consolidation dans les deux unités. Compte tenu des propriétés de l'architecture qui accueille les traitements considérés, la solution proposée est basée sur les propriétés temporelles des signaux à consolider. Comme déjà indiqué ci-dessus, la combinaison des aléas d'échantillonnage et des latences de transmission sur les moyens de communication (bus par exemple) est assimilable à un retard non déterministe mais borné par : où ô et Cx sont respectivement le retard induit par le délai de transmission du bus et le cycle d'horloge. Entre deux unités d'un même calculateur, les horloges peuvent être différentes et asynchrones, mais également périodiques de même période Cx. Il n'y a donc qu'un seul Cx qui est la période d'exécution de l'algorithme de synchronisation. Cette période est la même dans l'unité COM et dans l'unité MON. Si les signaux à consolider ont une inertie booléenne minimale, c'est-à-dire un intervalle minimal de stabilité T entre deux changements successifs de valeurs, il y a un intervalle de recouvrement des portions stables des signaux considérés. Autrement dit, quand le signal prend une valeur, il garde cette valeur pendant une durée au moins égale à T. Du fait de ce recouvrement (représenté en figures 9A et 9B), il y a, dans chaque période de calcul, un instant ou une durée pendant laquelle les deux unités voient le même couple de signaux. Ce couple de valeurs (cohérentes) est visible des deux unités pendant suffisamment longtemps pour qu'elles travaillent, en fonctionnement échantillonné, avec ce même couple commun. Une condition suffisante pour garantir l'existence d'un recouvrement cohérent (déterministe) au sein d'une unité donnée est de considérer des signaux qui ont une inertie booléenne plus grande que les aléas temporels susceptibles de les entacher. D'où la relation (1)suivante: T>0 L'intervalle de recouvrement a une durée au moins égale à T - A. Les deux variables qui influent sur A (ô et Cx) sont connues, T peut être ajusté pour satisfaire à la condition ci-dessus. Pour assurer un recouvrement cohérent vu par les deux unités, on cherche à ce que le recouvrement soit perçu de la même manière par les deux unités qui s'échangent les signaux à consolider. La condition (2) suivante permet d'atteindre ce but : T>2x0 Là encore, T peut être ajusté pour satisfaire à cette condition. Donc, chaque unité (TC et TM sur la figure 8) conserve une copie stable (à dynamique lente) de son entrée qu'elle diffuse et qu'elle utilise pour ses calculs. En effet, on crée artificiellement la propriété de stabilité (inertie) sur les entrées, en considérant que les flots de données à consolider sont stables durant leur cycle de calcul. Pour cela, les calculs de consolidation et les échanges COM/MON sont plus rapides que la vitesse de variation (cycle de calcul) des booléens à consolider. On peut considérer l'exemple des booléens locaux Bown produits par des traitements périodiques de période T = Cprod• Ces signaux booléens ont une inertie minimale de Cprod (le signal ne peut pas varier avant Cprod). Pour vérifier la condition de recouvrement, on considère des aléas temporels A strictement plus petits que la moitié de Cprod• La période Cprod de production des variables locales Bown est généralement différente de la valeur Cx. Les conditions énoncées plus haut sont vérifiées statiquement en variant la période de production des variables locales Cprod pour ajuster leur période de stabilité, ou inertie, T car T ? Cprod. La figure 10 est un schéma d'un dispositif de consolidation d'un calculateur i selon l'invention: • Chaque unité (COM et MON) possède un booléen local ou propre Bown et reçoit un signal booléen Bopp de l'unité opposée via le bus inter unités Bi, • Les moyens ou le dispositif 10, 10' de synchronisation produit un triplet (Bownc, Boppc, Bowndiff). • Le signal booléen Bowndiff permet de rafraîchir le couple diffusé au niveau du bus B et envoyé à l'autre unité du calculateur. • Le couple de signaux (Bownc, Boppc) est le même en chaque unité, à l'asynchronisme d'horloge près, et représente le couple de valeurs cohérentes recherché. • Les moyens 11, 11' sont des portes logiques. Il peut s'agir d'une porte ET si le choix est fait d'un traitement orienté sécurité ou d'une porte OU si le choix est fait d'un traitement orienté disponibilité . Le moyen 10 de synchronisation couplé avec la porte logique 11 forme ensemble le moyen de consolidation de signaux. Sur la figure 5, les doubles flèches représentent des phases de lecture, tandis que les simples flèches représentent des phases d'écriture. Un procédé de rafraîchissement robuste (c'est-à-dire insensible aux aléas non modélisés au cours de la conception, ici, il s'agit d'une robustesse aux aléas temporels (latence, asynchronisme d'horloge)) selon l'invention, mis en oeuvre par un tel dispositif peut être décrit comme suit : 1. Chaque unité i (sur la figure 8 : unité Com ou unité MON) maintient un compteur ni. Initialement, ces compteurs sont à l'état 0 (les identifications numériques des états sont indifférentes ; on aurait pu aussi bien appeler les divers états a , b , c ... etc), ce qui correspond à un état oisif (entrées stables); tant qu'aucun des signaux d'entrée de l'unité i ne varie, ce compteur reste à O. 2. A partir de l'état ni = 0 : si l'unité i voit une de ses entrées propres Bown changer et qu'aucune entrée Bopp des autres unités ne change, elle diffuse le changement de son entrée en rafraîchissant Bowndiff et positionne son compteur à l'état 3 . 3. A partir de l'état ni = 0 : si l'unité i voit un changement d'entrée Bopp en provenance d'au moins une autre unité, elle diffuse, indépendamment d'un éventuel changement de son propre signal local Bown, le changement de son entrée en rafraîchissant Bowndiff et positionne son compteur à l'état 2 . Autrement dit Bopp conditionne alors la diffusion de Bown à l'autre unité. Le passage direct de n=0 à n=2 permet d'accélérer le procédé en court-circuitant l'état n = 3. En effet, le procédé antérieur fonctionne à isovitesse, c'est-à-dire à vitesse constante, de production des signaux locaux, d'échange et de consolidation. Ce n'est pas l'aspect à quatre états, ou quatre temps, du procédé qui permet l'accélération du procédé. L'aspect à quatre états du procédé demande une accélération qui concerne les périodes, ou vitesses, d'exécution des moyens 10, 11 et B par rapport à la vitesse de production des signaux locaux Bown pour assurer la validité de la condition fondamentale T > 2x 4. On court-circuite l'état n=3 car si Bopp change, cela signifie que l'unité opposée a son compteur positionné à l'état 3 et va passer à l'état 2 . On se synchronise donc en mettant le compteur local à l'état 2 . Les deux unités deviennent synchrones sur ce traitement à l'asynchronisme d'horloge près. 4. Puis, à chaque étape, chaque unité décrémente son compteur jusqu'à O. 5. Quand ni = 1, chaque unité i exécute l'opération de rafraîchissement de son couple local (Bownc, Boppc) par le couple (Bowndiff, Bopp), Bopp correspondant en fait au signal Bowndiff de l'autre unité. Une phase stable, ou de consensus, est atteinte. Autrement dit, la valeur Bowndiff est modifiée ou rafraîchie à chaque changement de Bown ou de Bopp si on vient d'une phase stable, c'est-à-dire ni = 0, ou encore à chaque fois que n = 2 ou n = 3. Ce n'est pas la configuration locale Bown de chaque unité qui est envoyée à l'autre unité, mais une configuration (Bowndiff) qui est différente de Bown du point de vue temporel, puisque rythmée par les modifications de Bown mais aussi de Bopp. Un tel procédé est applicable à plusieurs unités et pas seulement à deux unités COM et MON. Dans ce cas, chaque signal Bown est en fait une matrice colonne de signaux Bownl, Bown2, Bown3, Bown4, et chaque signal Bopp une matrice colonne de signaux Boppl, Bopp2, Bopp3, Bopp4, Une modification de Bown correspond à une modification d'au moins une de ses composantes, et une modification de Bopp correspond également à une modification d'au moins une de ses composantes. La figure 11 représente une implémentation séquentielle, en automate à états finis, de ce procédé, qui permet de : • détecter un changement de valeur d'une entrée Bown ou Bopp, • maintenir le compteur interne à l'unité, c'est-à-dire le faire évoluer, le mettre à une valeur donnée, le décrémenter, • retenir une certaine valeur stable (Bowndiff), • rafraîchir cette valeur sur une condition donnée (changement d'une des entrées Bopp et Bown) : c'est le cas des états n=2 et n=3. Il s'agit donc d'un schéma à 4 états : - un état initial, - deux états (n=3 et n=2) atteignables à partir de l'état initial, un état stable ou de consensus n = 1, qui ne peut évoluer que vers l'état n=0, et qui n'est atteint que depuis l'état n = 2. A partir d'un état k ( 0), on passe à l'état k-1, puis à l'état k-2 si k-1 O. Un procédé selon l'invention peut être implémenté par un circuit de la figure 12, qui représente en fait une réalisation de chacun des moyens 10, 10' de la figure 10. Sur cette figure : • Chacun des moyens FBY 50, 51 forme un retard pur d'un cycle de calcul, • Chacun des moyens prev 52, 54, 56, 58 génère un retard pur d'un cycle de calcul, mais initialisable sur condition booléenne. Cet opérateur sert à implémenter le compteur de l'unité COM ou MON correspondante, • Chacun des moyens memb 60, 62, 64 est une mémoire booléenne. En effet, si la condition d'activation (la première liaison en bas et à gauche de chacun des moyens memb ) est vraie, la cellule gèle sa sortie à sa dernière valeur. Si cette condition est fausse, la cellule fait passer son entrée vers sa sortie, se comportant ainsi comme un simple fil de connexion. Le fonctionnement de cette cellule est présenté en liaison avec la figure 14. Le dispositif comporte en outre des portes OU exclusif 70, 71, OU 72, 73, et des inverseurs 74, 75. Les moyens 50, 52, 70 permettent de calculer la condition n=3, si le compteur était à 0 à l'instant précédent et si Bown a changé de valeur. Les moyens 54 et 71 calculent la condition n=2, si le compteur était 0 à l'instant précédent et si 25 Bopp a changé de valeur. Les moyens 72, 74 permettent d'élaborer la condition (n3 et n2). Si cette condition est vraie , les moyens de mémorisation 60 maintiennent Bowndiff à sa dernière valeur, sinon Bowndiff est 30 rafraîchi par Bown. Les moyens 56 produisent la condition n=2, et les moyens 58 la condition n=1. Les moyens 73 produisent la condition (n=3 ou n=2 ou n=1), ce qui est équivalent à n 0. Les moyens 51 introduisent une temporisation permettant de garantir que les calculs se font de manière à ne faire qu'une seule étape par cycle de calcul. Les moyens 75 produisent la condition n1. Les moyens 62 et 64 sont pilotés par la même condition de mémorisation, c'est-à-dire la sortie des moyens 75 (n1). Si cette condition est fausse, ces symboles deviennent passants et le couple synchronisé (Bownc, Boppc) est rafraîchi. L'exemple d'exécution illustré par les figures 13A - 13D montre deux signaux à inertie booléenne supérieure à 4 cycles de calcul. Ils subissent un retard de communication inférieur à 1 cycle de calcul et des aléas d'échantillonnage inférieurs à un cycle de calcul. Les chiffres, en bas de chaque coup d'horloge montrent la valeur du compteur de chaque unité. Les deux signaux des figures 13A et 13B présentent les signaux d'origine qui sont calculés localement dans chaque unité. Les deux signaux des figures 13C et 13D donnent le résultat de la consolidation par une porte logique AND. Cette figure montre que les booléens consolidés (Bcc et Bmc) sont les mêmes, à l'asynchronisme d'horloges près. Comme vu dans l'exemple d'exécution précédent, l'application de l'algorithme effectue une synchronisation à la demande des deux unités COM et MON. Cette synchronisation a la particularité d'être robuste par construction aux aléas temporels. En effet, la relation qui relie l'inertie des entrées aux aléas temporels permet d'atteindre une excellente égalité, ou même une égalité parfaite, à l'asynchronisme près des horloges, des signaux traités par le procédé proposé. La figure 14 représente une mémoire booléenne et son fonctionnement. Le symbole MEM B( ) est utilisé pour mémoriser une valeur booléenne. Le paramètre NNN est le nombre d'occurrences du symbole. La valeur d'entrée E1 est une valeur booléenne, constante ou variable. Les 3 entrées cachées Cond, Init et B Init sont respectivement : - une valeur booléenne, constante ou variable, qui définit l'activation booléenne du symbole. - une valeur booléenne, constante ou variable, qui définit une valeur d'initialisation de la mémoire, - une valeur booléenne, constante ou variable, qui définit l'initialisation booléenne de la mémoire, La valeur de sortie S1 est une valeur booléenne. La mémoire fonctionne de la manière suivante : - phase d'initialisation : ^ SI B Init = True ALORS S1 (k) Init (k) ^ SINON : Calcul - Calcul : ^ SI Cond (k) = True ALORS S1 (k) S1 (k-1) ^ SINON S1(k) = E1(k) Un diagramme de test a été établi : Init = False B int 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 E1 1 1 1 1 1 0 0 1 0 1 1 1 1 0 1 0 1 0 0 1 Cond 1 0 1 1 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 S1 0 0 0 0 1 0 0 0 0 1 1 1 1 0 0 0 0 0 0 1 L'invention s'applique également aux architectures de type (triplex, triplex). Il suffit alors de mettre en oeuvre deux entrées Bopp pour couvrir le triplex (architecture à trois calculateurs à trois unités par calculateur). L'invention permet d'améliorer l'architecture asynchrone en synchronisant uniquement des fonctions spécifiques, par une approche qui est nettement moins coûteuse qu'une synchronisation globale de toute l'architecture matérielle. L'invention propose, entre autres, des techniques et des méthodes pour concevoir les systèmes de commande de vol d'une manière robuste par construction. La robustesse est prise dans le sens d'une insensibilité d'un traitement aux aléas et aux dynamiques non modélisés dans la limite des exigences fonctionnelles du système concerné. L'invention proposée donne une technique générique et générale pour traiter les aléas temporels sur les architectures GALS (Globalement Asynchrones Localement Synchrones). Les champs d'application sont multiples et ne s'arrêtent pas au niveau de la consolidation de deux unités asynchrones. En effet, la technique proposée est applicable à d'autres domaines comme l'espace, la défense et plus généralement à tout système distribué sur une architecture GALS sans synchronisation matérielle ou logicielle globale. Il est à noter que la description fournie avec deux signaux booléens s'étend naturellement à d'autres cas de figure, notamment à un nombre de signaux supérieur à deux. L'invention propose une systématisation de l'usage des propriétés de variabilité (stabilité) sur les flots à consolider pour regagner en robustesse. Certains traitements peuvent produire des flots booléens à forte dynamique. La transformation de ces signaux en des flots stables préconise l'adjonction de délais via des confirmateurs ou des monostables. Cette transformation crée des retards sur les flots de contrôle qui ne sont généralement pas désirables pour des raisons de réactivité. Donc, l'invention résout le problème à sa source. On atteint une amélioration des vitesses en les accélérant pour satisfaire la relation fondamentale T>2xO. En effet, si Cprod = T = 40 ms par exemple, il suffit d'avoir Cx+A donc l'algorithme à une vitesse Cx = 10 ms et on accélère les échanges avec cette même période Cx. Comme les données fournisseur pour les moyens de communication précisent que A A + Cx. Les accélérations sont donc réalisées en jouant sur les vitesses d'exécution Cx de l'algorithme et des échanges ainsi que sur la vitesse de production Cprod = T des signaux locaux. L'invention concerne également un aéronef comportant un dispositif pouvant mettre en oeuvre un procédé tel que décrit ci-dessus, ou comportant un système tel que décrit ci-dessus. REVENDICATIONS 1. Procédé de synchronisation de deux unités COM et MON asynchrones, respectivement de commande et de surveillance, d'un calculateur (Ci) d'un système de calcul comportant une pluralité de calculateurs (Cl, C2,...Cn) reliés entre eux par des moyens (6) de communication, chacune de ces unités comportant une unité de traitement (Tc et Tm), ce procédé comportant : - un calcul de signaux locaux Bown booléens indépendants, ayant chacun une inertie booléenne supérieure aux aléas temporels, dus aux latences de transmission entre calculateurs et à la précision de l'échantillonnage piloté par le cycle d'horloge de chaque unité, susceptibles de les entacher, - un échange, entre les deux unités (COM, MON), des signaux locaux, chaque unité envoyant une valeur (Bowndiff) calculée localement à l'autre unité, - la génération d'un couple de signaux synchronisés (Bownc, Boppc), dans chaque unité, à partir de la valeur locale et de la valeur reçue de l'autre unité, - la formation d'un signal consolidé (Bcc, Bmc) à partir du couple de signaux synchronisés. 2. Procédé selon la revendication 1, les signaux locaux étant calculés par des algorithmes différents à partir de capteurs différents, ou étant issus de logiques associées à des capteurs, par exempledu type à franchissement de seuil, ou de calculs effectués par d'autres calculateurs. 3. Procédé selon l'une des revendications 1 à 3, les signaux locaux ayant chacun une inertie booléenne supérieure à deux fois le retard non déterministe susceptible de les entacher. 4. Procédé selon l'une des revendications 1 à 3, la connexion entre les deux unités asynchrones étant assurée par un bus inter-unités (B1, B2, B3...) et/ou par une liaison de type câble. 5. Procédé selon l'une des revendications 1 à 4, les moyens de communication entre les calculateurs comportant au moins un bus inter-unités (B1, B2, B3...) et/ou au moins une liaison de type câble. 6. Procédé selon l'une des revendications 1 à 5, mettant en oeuvre un procédé de rafraîchissement robuste. 7. Procédé selon la revendication 6, ledit procédé permettant, pour chaque unité, de : • détecter un changement de valeur d'une entrée parmi le signal booléen propre (Bown) de ladite unité et le signal (Bopp) reçu de l'autre unité, • maintenir un compteur interne à l'unité, • retenir une certaine valeur stable, • rafraîchir cette valeur sur une condition donnée. 8. Procédé selon l'une des revendications 1 à 7, chaque unité i mettant en oeuvre un compteur (ni), initialement à un état initia 1 ( 0 ), et tel que, si cette unité i voit une de ses entrées propres (Bown) changer et qu'aucune entrée des autres unités (Bopp) ne change, elle diffuse le changement de son entrée en rafraîchissant sa sortie (Bowndiff) vers l'une des autres unités et positionne son compteur en un troisième état ( 3 ). 9. Procédé selon la revendication 8, le compteur étant tel que, si ni = 0, et si l'unité i voit des changements d'entrées Bopp des autres unités, elle diffuse le changement de son entrée en rafraîchissant sa sortie (Bowndiff) vers l'une des autres unités et positionne son compteur en un deuxième état ( 2 ). 10. Procédé selon l'une des revendications 8 ou 9, dans lequel, à chaque étape, chaque unité 20 décrémente son compteur jusqu'à l'état initial (0). 11. Procédé selon l'une des revendications 8 à 10, dans lequel, quand ni = 1, chaque unité i exécute l'opération de rafraîchissement de son couple 25 local (Bownc, Boppc) par le couple (Bowndiff, Bopp). 12. Procédé selon l'une des revendications 1 à 11, la pluralité de calculateurs faisant partie d'un système de commandes de vol électriques. 30 13. Système de calcul comportant une pluralité de calculateurs (Cl, C2,...Cn) reliés entre eux par des moyens (6) de communication, au moins un des calculateurs étant asynchrone et comportant au moins deux unités (COM, MON) asynchrones, respectivement de commande et de surveillance, chacune de ces unités comportant une unité de traitement (Tc et Tm) ainsi que : - des moyens (10, 10') de calcul de signaux locaux Bown booléens indépendants, ayant chacun une inertie booléenne supérieure aux aléas temporels susceptibles de les entacher, - des moyens (B) pour échanger, entre les deux unités (COM, MON), des signaux locaux, chaque unité envoyant une valeur (Bowndiff), calculée localement, à l'autre unité, -des moyens (10, 10') pour générer un couple de signaux synchronisés (Bownc, Boppc), dans chaque unité, à partir de la valeur locale et de la valeur reçue de l'autre unité, - des moyens (10, 10') pour former un signal consolidé (Bcc, Bmc) à partir du couple de signaux synchronisés. 14. Système selon la revendication 13, les moyens de communication entre les deux systèmes de calcul comportant au moins un bus inter-unités (B1, B2, B3...) et/ou une liaison de type câble. 15. Système selon l'une des revendications 13 ou 14, les moyens de communication entre les deuxunités comportant au moins un bus interunités (B1, B2, B3...) et/ou une liaison de type câble. 16. Système selon l'une des revendications 13 à 15, mettant en oeuvre un procédé de rafraîchissement robuste. 17. Système selon la revendication 16, comportant des moyens pour : • détecter un changement de valeur d'une entrée, • maintenir un compteur interne à l'unité, • retenir une certaine valeur stable, • rafraîchir cette valeur sur une condition donnée. 21. Système selon l'une des revendications 13 à 17, chaque unité i comportant un compteur (ni), initialement à un état initia 1 ( 0 ), et comportant des moyens pour que, si cette unité i voit une de ses entrées propres (Bown) changer et qu'aucune entrée des autres unités (Bopp) ne change, elle diffuse le changement de son entrée en rafraîchissant sa sortie (Bowndiff) vers l'une des autres unités et positionne son compteur en un troisième état ( 3 ). 22. Système selon la revendication 18, le compteur comportant des moyens pour que, si ni = 0, et si l'unité i voit des changements d'entrées Bopp des autres unités, elle diffuse le changement de son entrée en rafraîchissant sa sortie (Bowndiff) vers l'une des 38 autres unités et positionne son compteur en un deuxième état ( 2 ). 20. Système selon l'une des revendications 18 ou 19, dans lequel, à chaque étape, chaque unité décrémente son compteur jusqu'à O. 21. Système selon l'une des revendications 18 à 20, comportant des moyens pour que, quand ni = 1, chaque unité i exécute l'opération de rafraîchissement de son couple local (Bownc, Boppc) par le couple (Bowndiff, Bopp). 22. Système selon l'une des revendications 18 à 21, le calculateur faisant partie d'un système de commandes de vol électriques. 23. Aéronef comportant un dispositif pouvant mettre en oeuvre le procédé selon l'une des revendications 1 à 12. 24. Aéronef comportant un système selon l'une des revendications 13 à 22.