FR 2976374 A1 20121214 FR 1101784 A 20110610 PROCEDE ET DISPOSITIF DE TRAITEMENT DE TACHES OPTIMISE POUR UN FWS La présente invention se rapporte à un procédé et à un dispositif de traitement 5 de tâches optimisé pour un FWS (Flight Warning System). Dans les systèmes avioniques actuels de gestion des alertes et procédures, communément appelés FWS, la consommation de « temps processeur » (temps d'occupation du processeur pour traiter ces alertes) est la même quel que soit le nombre d'alertes détectées. Le pire cas (présence d'un grand nombre d'alertes non 10 modifiées, mais traitées « à vide » par le processeur) est répété à chaque fois, et il n'existe à l'heure actuelle aucune solution à ce problème. La présente invention a pour objet un procédé de traitement d'alertes par un système avionique FWS permettant d'optimiser le traitement de ces alertes sans consommer indûment du « temps processeur ». 15 La présente invention a également pour objet un dispositif de séquencement pour FWS d'aéronef permettant à ce FWS de rendre les mêmes services que les systèmes FWS connus en termes de latence de détection des alertes, de latence de réponse des actions pilotes... ou de les améliorer, tout en consommant le moins de temps processeur possible et qui soit le moins onéreux possible. 20 Le procédé conforme à l'invention est caractérisé en ce qu'il consiste à ne faire traiter à chaque cycle de traitement du processeur du FWS que les opérations relatives à des alertes dont le résultat a été modifié depuis le cycle de traitement précédent. 25 Selon un mode de mise en oeuvre préféré du procédé de l'invention, à chaque cycle de rafraîchissement des données d'alerte, on compare ces données rafraîchies à celles reçues au cycle précédent, et si la donnée rafraîchie est différente de la précédente, on envoie une notification à un séquenceur qui récupère dans une bibliothèque de données les combinaisons logiques nécessaires au traitement de cette 30 alerte, effectue les opérations correspondantes et transmet le résultat à un processeur asynchrone d'affichage d'alertes. Le dispositif conforme à l'invention comporte un module de décodage des données d'entrée, un séquenceur dynamique de tâches logiques, une bibliothèque de données de combinaisons logiques, un module de mémorisation de résultats des opérations logiques et un processeur asynchrone d'affichage. 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 1 est un bloc-diagramme simplifié d'un système de mise en oeuvre du procédé de l'invention, - la figure 2 est un schéma simplifié d'un exemple de séquencement effectué par le système conforme à la présente invention, et - la figure 3 est un schéma d'un exemple de circuit logique utilisé dans le système conforme à la présente invention. Le système 1 schématisé en figure 1 est destiné au traitement de n processus d'alertes FWS différents, chacun de ces processus mettant en oeuvre des données d'alertes (aussi appelées ici paramètres) dont certaines sont communes à au moins une partie des processus, et d'autres sont spécifiques à des processus particuliers. Ainsi, par exemple, comme représenté en figure 1, le premier processus PR1 traite les paramètres Pl, P2,...Pp, et le processus PRn de rang n traite les paramètres Pl, P2,...Pm. Le système 1 comporte essentiellement, pour chacun des n processus PR1 à PRn qu'il traite (sur la figure 1, les modules relatif à chaque processus sont représentés sur une même rangée): un module (respectivement 2.1 à 2n) de décodage des données d'entrée produisant un indicateur de changement d'état, un séquenceur dynamique de tâches travaillant en temps réel (respectivement 3.1 à 3.n), une base de données 4 qui comporte une bibliothèque de modèles de fonctions logiques combinatoires, cette base de données étant commune à l'ensemble des processus. Les séquenceurs en extraient chacun des ensembles de fonctions logiques 5 en fonction de leurs besoins (la base de données 4, et les ensembles 5 ne font pas partie de l'une des rangées d'éléments de traitement de processus, mais ont été représentés par commodité entre des rangées) Cette bibliothèque comporte les dépendances entre les différents paramètres traités. Ainsi, par exemple, dans le diagramme de la figure 2, décrit plus en détail ci-dessous, les dépendances de L2sont L3 et L4. Le système 1 comporte ensuite, pour chaque processus, un module (respectivement 6.1 à 6.n) de stockage de résultats. Les modules 6.1 à 6.n reçoivent des séquenceurs (3.1 à 3.n respectivement) des informations d'événements notés, par exemple, E1, E2,...,Ef pour le processus PR1 et Eg, Eh,..., Ex pour le processus PRn. Il est à noter qu'une information d'événement comporte son identifiant et sa valeur. Par exemple une alerte arrivant à un FWS comporte son identifiant (du type )OXX) et signale si elle est détectée ou non (information de valeur de cette alerte). Les sorties des différents modules (purement logiciels) 6.1 à 6.n sont reliées à un calculateur 7 de traitement graphique à fonctionnement apériodique, qui est relié à un dispositif de visualisation (non représenté) présentant sous forme graphique les alertes au pilote. Dans le détail, les fonctions assurées par les différents modules du système 1 sont les suivantes : Chacun des modules 2.1 à 2.n comporte une mémoire pour stocker les données d'alertes et compare ses données d'entrée, rafraîchies à chaque cycle de calcul du FWS, avec les données reçues au cycle de calcul FWS précédent. Si la donnée rafraîchie est différente de la précédente, il envoie une notification au séquenceur. Chaque séquenceur 3.1 à 3.n réalise successivement les fonctions suivantes : a. A la réception d'une notification (correspondant à une donnée rafraîchie différente de la précédente) provenant du module de décodage qui lui est relié, le séquenceur extrait de la bibliothèque de la base de données 4 l'ensemble 5 des combinaisons logiques à recalculer (ensemble relatif aux fonctions impliquées dans le traitement de l'alerte modifiée), leurs priorités associées de traitement par le séquenceur ainsi que le groupe auquel elles appartiennent, ce groupe faisant partie de groupes prédéfinis dans la base de données 4 . b. Il insère dans la liste des combinaisons logiques à exécuter celles qu'il vient de récupérer. La position des combinaisons logiques qui viennent d'être insérées dans la liste dépend de leur priorité et de leur groupe de séquencement (il s'agit de groupes de combinaisons ayant la même priorité). c. Il lance l'exécution de la combinaison logique en tête de liste. Si le résultat de cette combinaison est différent du précédent, le séquenceur exécute la même séquence que ci-dessus (au point a puis au point b) pour ajouter l'ensemble des combinaisons logiques à ré-exécuter dans la liste des combinaisons logiques à séquencer, et ce pour chacun des groupes, ce qui constitue un chaînage des activités d'exécution par dépendance des entrées, c'est-à-dire que cet ajout de combinaison logique n'a lieu que si, et seulement si, la combinaison en question n'est pas déjà présente dans la liste. d. Il positionne le résultat des exécutions des combinaisons logiques dans le module de résultat correspondant. Un exemple de séquencement très simplifié est décrit ci-dessous en référence au schéma de la figure 2, dans le cas où le paramètre P2 de la voie du processus PR1 est modifié. Les différentes combinaisons logiques mises en oeuvre sont notées LI à L6. Bien que pour simplifier la description on ait choisi ici des portes logiques (dans le cas d'un FWS, de telles fonctions logiques constituent la grande majorité des moyens de calcul, mais il sera évident pour l'homme de l'art de généraliser ce raisonnement), ces combinaisons logiques peuvent être de différentes sortes : elles peuvent faire appel à des nombres réels, des entiers, etc... et être mises en oeuvre par des bascules, des circuits confirmateurs (dans ce dernier cas, il est bien entendu qu'il faut ajouter un événement qui force le calcul de ces portes complexes), etc. . Les étapes successives de ce séquencement sont : 1. Etape l a. Sous-étape la : L2 est extraite du modèle de combinaisons logiques de la bibliothèque de la base de données 4, b. Sous-étape lb : L2 est ajoutée à la liste des combinaisons logiques à traiter séquentiellement, c. Sous-étape 1 c : L2 est exécutée (en tête de liste) et on suppose que le résultat de ce calcul est différent du précédent (le séquenceur comporte, de même que chaque module de décodage, une mémoire pour stocker le résultat précédent) 2. Etape 2 a. L3 et L4 sont extraites de la bibliothèque de la base de données 4, b. L3 et L4 sont ajoutées dans la liste, l'une derrière l'autre car on suppose qu'elles sont de même priorité et sont donc dans le même groupe de séquencement. c. L3 est exécutée et le résultat est différent du précédent. 3. Etape 3 a. L6 est extraite de la bibliothèque 4, b. L6 est ajoutée à ladite liste, derrière L4 car elle est de plus petite priorité. c. L4 est exécutée et le résultat est différent du précédent. 4. Etape 4 a. L5 est extraite de la bibliothèque 4 b. L5 est ajoutée à la liste, devant L6 car elle est de plus grande priorité. c. L5 est exécutée et le résultat est différent du précédent. 5. Etape 4 a. L6 est extraite de la bibliothèque 4 b. L6 est ajoutée à la liste, la liste n'est pas modifiée car L6 est déjà dans cette liste. c. L6 est exécutée et le résultat est différent du précédent. d. Le résultat de L6 est transmis au module de résultat. Si, par exemple, le paramètre P3 est modifié, le séquencement décrit ci-dessus devient : a. L2 est recalculée b. Le résultat de L2 est identique c. Fin du processus. Dans ce deuxième cas, une seule combinaison logique a été recalculée au lieu de six (L1, L2, L3, L4, L5 et L6). Bibliothèque de modèles de combinaisons logiques (4) : Les modèles de combinaisons logiques, configurables à la conception (dans le cas présent, l'utilisation de flux de données sert à séquencer les combinaisons logiques), possèdent pour chaque donnée d'entrée une liste de triplets informatifs. 10 Chaque triplet est composé de : ^ Un identifiant de la combinaison logique à ajouter à la liste de traitement du séquenceur, car cette combinaison dépend du résultat de la comparaison de la donnée d'entrée, ^ Une valeur de priorité de séquencement de cette combinaison logique 15 ^ Le groupe auquel appartient cette combinaison logique. Ensemble de fonctions logiques (5): Par fonctions logiques, on entend des fonctions permettant de produire différents types d'événements : 20 ^ Changement nominal de l'état opérationnel de l'appareil (par exemple, entrée dans la phase d'approche vers un aéroport). ^ Dysfonctionnement anormal de gravité plus ou moins importante (par exemple, perte d'un moteur) devant être signalé soit par le « flight warning » soit par un équipement de type « Display Unit » (Unité d'affichage). 25 Ces événements sont définis comme étant le résultat d'une combinaison d'opérations logiques entre un ou plusieurs des paramètres émis par les équipements de bord ou par les capteurs de l'aéronef. On a schématisé en figure 3 un exemple de circuit 8 implémentant une combinaison logique (porte logique ET) de production d'événement. Ce circuit 8 comporte à son entrée deux portes logiques OU 9 et 10 à5 deux entrées chacune, ces entrées recevant, dans cet exemple, les paramètres P 1 à P4 respectivement. La sortie de chacune de ces deux portes 9 et 10 est reliée à une entrée d'une porte logique OU 11. A la sortie de la porte 11, on recueille l'événement El. Selon un mode de réalisation de l'invention, lorsque les circuits logiques utilisent des conditions temporelles en tant que confirmateur de la prise en compte d'une alerte, il est prévu une modification afin de s'assurer que les temps soient bien respectés du fait du séquencement non statique de ces combinaisons logiques. La modification est, par exemple, l'une des deux suivantes : - Modification de la bibliothèque implémentant la cellule temporelle. Selon un mode de mise en oeuvre, la cellule (synchrone) est appelée à chaque cycle et mémorise la date d'expiration du confirmateur en nombre de cycles. Dans le cas d'un planificateur d'événements, il est préférable d'envisager l'armement d'un «timer» de confirmation implémenté par un processus A653 de type timer, qui se réveille à chaque échéance de confirmateur, et dont le «handler » propage l'événement en s'insérant dans la file d'attente du planificateur. Le désarmement du timer est déclenché par un événement de reset (remise à zéro) du signal à confirmer. - Utilisation de compte à rebours de l'OS (système d'exploitation) du FWS. Modules de résultat (6.1 à 6.n) : Le but de chacun de ces modules, de type mémoire tampon, est de récupérer les résultats des différents séquenceurs dynamiques pour ensuite les fournir au 25 processus asynchrone du FWS en charge du traitement graphique. Il faut ajouter que dans le pire cas (tous les paramètres sont changés, toutes les alertes sont levées), toutes les fonctions logiques ne sont calculées qu'une fois comme dans un FWS « classique ». La surcharge d'utilisation du processeur liée aux 8 2976374 décisions (« dois-je recalculer une combinaison logique ou non » ?) est négligeable devant le temps nécessaires pour le calcul de toutes les combinaisons logiques. Ainsi, grâce à l'invention, on peut avoir un temps alloué au processus apériodique beaucoup plus petit que celui alloué dans le cas classique et donc on 5 gagne du temps de traitement par le processeur pour rendre le même service. REVENDICATIONS1. Procédé de traitement d'alertes par un système avionique FWS permettant d'optimiser le traitement de ces alertes, caractérisé en ce qu'il consiste à ne faire traiter à chaque cycle de traitement du processeur du FWS que les opérations relatives à des alertes dont le résultat a été modifié depuis le cycle de traitement précédent. 2. Procédé selon la revendication 1, caractérisé en ce qu' à chaque cycle de rafraîchissement des données d'alerte, on compare ces données rafraîchies à celles reçues au cycle précédent, et si la donnée rafraîchie est différente de la précédente, on envoie une notification à un séquenceur qui récupère dans une bibliothèque de données les combinaisons logiques nécessaires au traitement de cette alerte, effectue les opérations correspondantes et transmet le résultat à un processeur asynchrone d'affichage d'alertes. 3. Dispositif de traitement d'alertes pour FWS d'aéronef, caractérisé en ce qu'il comporte un module de décodage des données d'entrée (2.1 à 2.n), un séquenceur dynamique de tâches logiques (3.1 à 3.n), une bibliothèque de données de combinaisons logiques (4), un module de mémorisation de résultats des opérations logiques (6.1 à 6 ;n) et un processeur asynchrone d'affichage (7).