Brevet FR3130414A1 — publié le 20230616

TITRE : Procédé de calcul haute intégrité sur calculateur mono-composant Un aspect de l’invention concerne un procédé de mise en œuvre d’un calcul principal par un processeur (P) comprenant : Première et seconde mises en œuvre (11,13) du calcul principal pour obtenir un premier résultat (RA) et un second résultat (RB), Calcul d’intégrité (12) du premier résultat (RA) pour obtenir une première intégrité (I_RA), Calcul d’intégrité (13) du second résultat (RB) pour obtenir une seconde intégrité (I_RB), Première et seconde comparaisons (15, 17) du premier et du deuxième résultat (RA, RB) pour obtenir une première différence de résultat ((RB-RA)1) et une seconde différence de résultat ((RB-RA)2), Première et seconde comparaisons (16, 18) de la première et de la seconde intégrité (I_RA, I_RB) pour obtenir une première différence d’intégrité ((I_RB-I_RA)1) et une seconde différence d’intégrité ((I_RB-I_RA)2), Lorsque chaque différence est nulle parmi la première différence de résultat ((RB-RA)1), la première différence d’intégrité ((I_RB-I_RA)1), la seconde différence de résultat ((RB-RA)2) et la seconde différence d’intégrité ((I_RB-I_RA)2), fourniture (Res) du résultat du calcul principal étant le premier résultat (RA) et/ou le deuxième résultat (RB). Figure à publier avec l’abrégé : Figure 3 Procédé de calcul haute intégrité sur calculateur mono-composant DOMAINE TECHNIQUE DE L’INVENTION Le domaine technique de l’invention est celui du traitement de données critiques. La présente invention concerne un procédé de calcul haute intégrité sur calculateur mono-composant et en particulier un procédé permettant une redondance du calcul sans redondance du composant mettant en œuvre le calcul. ARRIERE-PLAN TECHNOLOGIQUE DE L’INVENTION Dans le cadre de l’évolutions des mobilités, et en particulier de l’évolution des véhicules aéroportés de plus faible dimension et de l’augmentation de la valeur associée au traitement de la donnée, il est nécessaire de créer des systèmes d’acquisition fiables, compacts, peu énergivores et à bas coût. En parallèle, la maintenance programmée est de moins en moins plébiscitée au profit de solutions permettant d’effectuer la maintenance en fonction de l’état mesuré réel. Cela permet du report de maintenance. Les systèmes de mesure de l’état réel sont des systèmes hautement critiques. Il existe actuellement beaucoup de systèmes de capture et de traitement de la donnée. Certains de ces systèmes existants sont faiblement ou moyennement critiques et ne permettent pas d’avoir une intégrité suffisante pour du réaliser du report de maintenance pour des pièces critiques. Certains autres de ces systèmes existants permettent d’avoir une intégrité suffisante pour une application à du report de maintenance mais sont basés sur de la redondance d’unité de calcul et sont donc plus chers et plus complexes. En aéronautique, il est exigé sur les systèmes critiques d’avoir un haut niveau d’intégrité conjugué à une haute disponibilité. Pour y répondre, une architecture matérielle est habituellement faite de plusieurs calculateurs. Par exemple, peuvent être mises en œuvre une redondance de deux processeurs appelés COM pour « computation » (« calcul » en français) et MON pour monitoring (« contrôle » en français) et/ou une redondance de deux processeurs appelés PRIM pour « Primaire » et SEC pour « secondaire ». Le principe de ces redondances est de vérifier, respectivement par le processeur secondaire ou de contrôle, les opérations réalisées respectivement par le processeur principal ou de calcul. Certaines applications telles que le contrôle à des fins de maintenance nécessitent toujours un très haut niveau d’intégrité des données. Pour ces systèmes, utiliser une architecture traditionnelle DAL (« Development Assurance Level » pour « Niveau d’Assurance de Développement » en français) de niveau A, c’est-à-dire de niveau critique tel que défini par les normes ED-12C et DO-178C « Software considerations in airborne systems and equipment certification » (« Considérations logicielles dans la certification des systèmes et équipements aéroportés » en français), est très coûteux. Il existe donc un besoin de pouvoir assurer, par un système de contrôle à des fins de maintenance, une haute intégrité des calculs tout en ayant un coût limité. L’invention offre une solution aux problèmes évoqués précédemment, en permettant un haut niveau d’intégrité des calculs tout en diminuant les coûts de développement, de production et de possession. Un aspect de l’invention concerne ainsi un procédé de mise en œuvre d’un calcul principal par un processeur pour fournir un résultat du calcul, le procédé comprenant les étapes de : Première mise en œuvre du calcul principal pour obtenir un premier résultat, Calcul d’intégrité du premier résultat pour obtenir une première intégrité, Seconde mise en œuvre du calcul principal pour obtenir un second résultat, Calcul d’intégrité du second résultat pour obtenir une seconde intégrité, Première comparaison du premier résultat et du deuxième résultat pour obtenir une première différence de résultat, Première comparaison de la première intégrité et de la seconde intégrité pour obtenir une première différence d’intégrité, Seconde comparaison du premier résultat et du deuxième résultat pour obtenir une seconde différence de résultat, Seconde comparaison de la première intégrité et de la seconde intégrité pour obtenir une seconde différence d’intégrité, Lorsque chaque différence est nulle parmi la première différence de résultat, la première différence d’intégrité, la seconde différence de résultat et la seconde différence d’intégrité, fourniture du résultat du calcul principal, le résultat du calcul principal étant le premier résultat et/ou le deuxième résultat. Grâce à l’invention, il est possible de proposer une haute intégrité des calculs sans avoir à utiliser un système coûteux et complexe comprenant plusieurs processeurs. L’invention, au contraire de l’art antérieur, propose un procédé permettant une haute intégrité de calcul dans un unique processeur. Ce procédé redonde le calcul principal et des calculs d’intégrité, ce qui permet d’éviter de redonder le matériel et de limiter les risques d’intrusion et de compromission des données en limitant les échanges entre composants matériels. L’invention trouve une application particulièrement pertinente dans les systèmes aéronautiques et notamment dans les systèmes de contrôle à des fins de maintenance, pour lesquels la perte de la donnée n'entraîne pas de conséquences catastrophiques contrairement à la corruption non détectée des données. Outre les caractéristiques qui viennent d’être évoquées dans le paragraphe précédent, le procédé selon un aspect de l’invention peut présenter une ou plusieurs caractéristiques complémentaires parmi les suivantes, considérées individuellement ou selon toutes les combinaisons techniquement possibles : lorsqu’au moins une différence n’est pas nulle parmi la première différence de résultat, la première différence d’intégrité, la seconde différence de résultat et la seconde différence d’intégrité, une alerte de défaut d’intégrité du processeur est émise, une alerte de défaut d’intégrité du processeur est émise et le procédé est arrêté lorsqu’un calcul de test d’intégrité préliminaire mis en œuvre avant la première mise en œuvre du calcul principal indique que le processeur P n’est pas intègre, une alerte de défaut d’intégrité du processeur est émise et le procédé est arrêté lorsqu’un calcul de test d’intégrité postérieur mis en œuvre après la dernière mise en œuvre du calcul principal indique que le processeur P n’est pas intègre, une alerte de défaut d’intégrité du processeur est émise et le procédé est arrêté lorsqu’un calcul de test d’intégrité mis en œuvre après chaque mise en œuvre du calcul principal indique que le processeur P n’est pas intègre. les premier et second calculs d’intégrité se basent sur une fonction de contrôle de redondance cyclique et la première intégrité et la seconde intégrité obtenues sont le résultat de l’application de la fonction de contrôle de redondance cyclique respectivement au premier résultat et au second résultat. le procédé comprend en outre au moins les étapes de : Stockage, dans une mémoire, du premier résultat et de la première intégrité, Stockage, dans la mémoire, du second résultat et de la seconde intégrité. lorsque chaque différence est nulle parmi la première différence de résultat, la première différence d’intégrité, la seconde différence de résultat et la seconde différence d’intégrité, au moins une étape de stockage, dans la mémoire, du résultat du calcul principal. lorsqu’au moins une différence n’est pas nulle parmi la première différence de résultat, la première différence d’intégrité, la seconde différence de résultat et la seconde différence d’intégrité, le procédé comprend une étape de suppression de la mémoire du premier résultat, du second résultat, de la première intégrité et de la seconde intégrité. Un autre aspect de l’invention porte sur un système embarqué configuré pour mettre en œuvre le procédé selon l’invention, le système embarqué comprenant au moins un processeur et une mémoire. Encore un autre aspect de l’invention porte sur un aéronef comprenant le système embarqué selon l’invention. L’invention est particulièrement intéressante pour les systèmes dont le besoin porte sur un haut niveau d’intégrité des résultats de calculs, et pour lesquels la haute disponibilité des résultats est moins importante. L’invention et ses différentes applications seront mieux comprises à la lecture de la description qui suit et à l’examen des figures qui l’accompagnent. BREVE DESCRIPTION DES FIGURES Les figures sont présentées à titre indicatif et nullement limitatif de l’invention. La montre une représentation schématique d’un premier mode de réalisation d’un procédé de mise en œuvre de calcul principal selon l’invention, La montre une représentation schématique d’un système pour la mise en œuvre d’un procédé selon l’invention, La montre une représentation schématique d’un deuxième mode de réalisation d’un procédé de mise en œuvre de calcul principal selon l’invention. Procédé de mise en œuvre d’un calcul principal par un processeur (P) pour fournir un résultat du calcul, le procédé étant caractérisé en ce qu’il comprend les étapes de : Première mise en œuvre (11) du calcul principal pour obtenir un premier résultat (RA), Calcul d’intégrité (12) du premier résultat (RA) pour obtenir une première intégrité (I_RA), Seconde mise en œuvre (13) du calcul principal pour obtenir un second résultat (RB), Calcul d’intégrité (14) du second résultat (RB) pour obtenir une seconde intégrité (I_RB), Première comparaison (15) du premier résultat (RA) et du deuxième résultat (RB) pour obtenir une première différence de résultat ((RB-RA)1), Première comparaison (16) de la première intégrité (I_RA) et de la seconde intégrité (I_RB) pour obtenir une première différence d’intégrité ((I_RB-I_RA)1), Seconde comparaison (17) du premier résultat (RA) et du deuxième résultat (RB) pour obtenir une seconde différence de résultat ((RB-RA)2), Seconde comparaison (18) de la première intégrité (I_RA) et de la seconde intégrité (I_RB) pour obtenir une seconde différence d’intégrité ((I_RB-I_RA)2), Lorsque (Verif1) chaque différence est nulle (O) parmi la première différence de résultat ((RB-RA)1), la première différence d’intégrité ((I_RB-I_RA)1), la seconde différence de résultat ((RB-RA)2) et la seconde différence d’intégrité ((I_RB-I_RA)2), fourniture (Res) du résultat du calcul principal, le résultat du calcul principal étant le premier résultat (RA) et/ou le deuxième résultat (RB). Procédé selon la revendication précédente selon lequel lorsqu’au moins une différence n’est pas nulle (N) parmi la première différence de résultat ((RB-RA)1), la première différence d’intégrité ((I_RB-I_RA)1), la seconde différence de résultat ((RB-RA)2) et la seconde différence d’intégrité ((I_RB-I_RA)2), une alerte de défaut d’intégrité (Anom) du processeur (P) est émise. Procédé selon l’une quelconque des revendications précédentes selon lequel une alerte de défaut d’intégrité (Anom) du processeur (P) est émise et le procédé est arrêté lorsqu’un calcul de test d’intégrité préliminaire (T1) mis en œuvre avant la première mise en œuvre (11) du calcul principal indique que le processeur (P) n’est pas intègre. Procédé selon l’une quelconque des revendications précédentes selon lequel une alerte de défaut d’intégrité du processeur (P) est émise et le procédé est arrêté lorsqu’un calcul de test d’intégrité postérieur (T2) mis en œuvre après la dernière mise en œuvre (13) du calcul principal indique que le processeur (P) n’est pas intègre. Procédé selon l’une quelconque des revendications 1 à 3 selon lequel une alerte de défaut d’intégrité du processeur (P) est émise et le procédé est arrêté lorsqu’un calcul de test d’intégrité mis en œuvre après chaque mise en œuvre (11,13) du calcul principal indique que le processeur (P) n’est pas intègre. Procédé selon l’une quelconque des revendications précédentes selon lequel les premier et second calculs d’intégrité (12,14) se basent sur une fonction de contrôle de redondance cyclique et la première intégrité (I_RA) et la seconde intégrité (I_RB) obtenues sont le résultat de l’application de la fonction de contrôle de redondance cyclique respectivement au premier résultat (RA) et au second résultat (RB). Procédé selon l’une quelconque des revendications précédentes comprenant en outre au moins les étapes de : Stockage, dans une mémoire (M), du premier résultat (RA) et de la première intégrité (I_RA), Stockage, dans la mémoire (M), du second résultat (RB) et de la seconde intégrité (I_RB). Procédé selon la revendication précédente comprenant en outre, lorsque chaque différence est nulle (O) parmi la première différence de résultat ((RB-RA)1), la première différence d’intégrité ((I_RB-I_RA)1), la seconde différence de résultat ((RB-RA)2) et la seconde différence d’intégrité ((I_RB-I_RA)2), au moins une étape de stockage, dans la mémoire (M), du résultat du calcul principal. Procédé selon l’une quelconque des revendications 5 ou 6 selon lequel lorsqu’au moins une différence n’est pas nulle (N) parmi la première différence de résultat ((RB-RA)1), la première différence d’intégrité ((I_RB-I_RA)1), la seconde différence de résultat ((RB-RA)2) et la seconde différence d’intégrité ((I_RB-I_RA)2), le procédé comprend une étape de suppression (Dest) de la mémoire (M) du premier résultat (RA), du second résultat (RB), de la première intégrité (I_RA) et de la seconde intégrité (I_RB). Système embarqué (S) configuré pour mettre en œuvre le procédé selon l’une quelconque des revendications précédentes, le système embarqué (S) comprenant au moins un processeur (P) et une mémoire (M). Aéronef comprenant le système embarqué (S) selon la revendication 10.