Brevet FR3071688A1 — publié le 20190329

PROCEDE DE SYNCHRONISATION D'UN ENSEMBLE DE DISPOSITIFS, PROGRAMME D'ORDINATEUR ET SYSTEME DE SYNCHRONISATION ASSOCIES La présente invention concerne le domaine des systèmes informatiques critiques, tel que par exemple les systèmes avioniques embarqués dans les aéronefs. Par « système informatique critique » on entend un système informatique dont une panne est propre à entraîner des conséquences dramatiques, par exemple des morts ou blessés graves, des dégâts matériels importants, ou encore des conséquences graves pour l'environnement. De tels systèmes informatiques critiques sont basés sur un partitionnement strict des ressources de calcul et des ressources réseau. Par la suite, de tels systèmes informatiques critiques correspondent à des systèmes avioniques. Un système avionique met en oeuvre des fonctions avioniques. Une fonction avionique est par exemple le calcul de paramètres de vol en fonction de signaux de mesure fournis par des capteurs, l'élaboration de signaux de commande d'actionneurs de l'aéronef en fonction de paramètres de vol et/ou de commandes de vol, l'affichage de paramètres de vol sur un afficheur, l'enregistrement de paramètres de vol pour la maintenance... Au sein d'un système avionique plusieurs dispositifs (i.e. équipements) avioniques sont interconnectés via un réseau de communication, par exemple un réseau ARINC 664- P7 d'aéronef. Actuellement, au sein d'un tel réseau ARINC 664-P7 d'aéronef, il n'existe pas de mécanisme de synchronisation robuste et précis. En effet, la seule heure partagée actuellement dans un aéronef est basée sur un mécanisme dont la précision est de l'ordre de la seconde alors que certaines fonctions avioniques, telles que l'accroissement de l'intégrité des réseaux, la réduction de la latence de traitement des messages dans les architectures distribuées (notamment les architectures avioniques modulaires intégrées de deuxième génération (ou « IMA-2G » pour « Intregrated Modulars Avionics - 2nd Generation » en anglais)), la synchronisation de flux audio/vidéo, la détection de certaines attaques de sureté, l'identification de la cause racine d'un dysfonctionnement du système avionique, la fusion de données de capteurs, etc. requièrent une référence horaire partagée robuste (i.e. utilisable par une fonction de niveau « catastrophique », tel que défini par le document AMJ 25.1309 de la « Joint Aviation Authorities ») et dont la précision élevée est garantie et de l'ordre de 100ps au maximum. Selon l'état de l'art actuel, la garantie d'une telle précision n'est atteignable qu'en ajoutant un réseau de 2 synchronisation parallèle au réseau ARINC 664-P7, ce qui augmente le coût, le poids et la consommation du système avionique. Un des buts de la présente invention est de proposer un procédé de synchronisation au sein d'un système informatique critique, tel qu'un système avionique, 5 permettant d'améliorer la robustesse et de garantir une précision élevée de la référence horaire partagée au sein d'un réseau de ce système informatique, et ce tout en évitant un mécanisme de synchronisation basé sur une mesure temporelle interne à ce même réseau, un tel mécanisme étant impropre à vérifier l'intégrité de ce réseau. A cet effet l'invention propose un procédé de synchronisation d'un ensemble de 10 dispositifs informatiques critiques, en particulier des dispositifs avioniques, interconnectés à un réseau de communication d'un véhicule, tel qu'un aéronef, et comprenant chacun un module de gestion de l'heure, l'ensemble de dispositifs informatiques critiques comprenant au moins une pluralité de serveurs de référence horaire, et une pluralité de clients, chaque dispositif informatique critique étant connecté à au moins un autre 15 dispositif informatique critique par une liaison virtuelle, chaque point de terminaison d'une liaison virtuelle étant associé à une valeur minimale et à une valeur maximale de temps de transmission d'un paquet de données sur la liaison virtuelle, le procédé de synchronisation étant mis en oeuvre et réitéré périodiquement par le module de gestion de l'heure de chaque dispositif informatique critique courant et comprenant au 20 moins: la réception d'au moins un message de synchronisation transmis par un serveur émetteur distinct dudit dispositif informatique critique courant, chaque message étant associé à un instant de réception et comprenant au moins une référence horaire (Href,) déterminée par le serveur émetteur, 25 - pour chaque message de synchronisation reçu, l'estimation de l'heure courante du serveur émetteur à partir d'un quintuplet de paramètres comprenant : ^ la référence horaire, - une valeur de l'horloge interne du dispositif informatique critique courant à l'instant courant, 30 ^ une valeur de l'horloge interne du dispositif informatique critique courant à l'instant de réception, la valeur minimale et la valeur maximale de temps de transmission associée à la liaison virtuelle entre le serveur émetteur et le dispositif informatique critique courant. Suivant d'autres aspects avantageux de l'invention, le procédé de synchronisation 35 est tel que : 3 - la période de réitération du procédé est conforme à la relation suivante : PR - max , (G(s, s)) - max 1WCTT(.9', s). (D(s) + D(s'))] - serveurs serveurs M. (D(s) + max D(s:)) serveurs PR - G(S,C) min W CTT (s, c)1 client c, serveur s D(C) + D (s) P 2P), l'émission d'une information représentative d'une 15 anomalie au module de gestion de panne du client courant et l'arrêt du traitement de ce message est mis en oeuvre. Sinon le module de gestion de l'heure du client courant C1 met en oeuvre selon une étape 90, l'estimation de l'heure courante du serveur émetteur, par exemple SB conformément à l'équation suivante à l'instant courant t, : 20 HcB = HrefB + hinttcci - + (BCTT(SB,Cl) + WCTT(SB,C1))/2. Puis, selon une étape 92, le module de gestion de l'heure du client courant C1 met en oeuvre la détermination de la valeur moyenne Hmoyc des heures courantes HcA, HcB et Hoc associées respectivement aux serveurs émetteurs SA, SB et Sc. Selon une étape 94, si la valeur absolue de la différence entre d'une part la 25 référence horaire Hrefci du client courant C1 obtenue par application d'une fonction affine à la valeur de l'horloge interne h,,ttcci du client courant C1 à l'instant courant tc, et d'autre part l'heure courante moyenne Hmoyc est supérieure à un seuil prédéterminé correspondant à la donnée de précision PR du fichier de configuration du client courant considéré, par exemple C1, alors l'émission d'une information représentative d'une 30 anomalie (i.e. panne) au module de gestion de panne G_P du client courant C1 est mise en oeuvre. Autrement dit, avec Hrefci = coeffci. hint_tc_ci+offsetcl, si IHmoyc - Hrefcl, I > PR, alors une panne est signifiée par le module de gestion de l'heure G_H du client courant C1 à son propre module de gestion de panne G_P. 18 Puis, selon l'étape 96, la nouvelle référence horaire du client courant C1 NHrefci correspond alors à l'heure courante moyenne Hmoyc et la mise à jour de nouvelles valeurs des paramètres Ncoeffci et Noffsetci de la fonction affine associée au client courant C1 est mise en oeuvre selon les équations suivantes et à utiliser lors de la période 5 P suivante: Ncoeffci = 1+ (NHrefci-Hrefci)/P, et Noffsetci = offsetci + (coeffcl-Ncoeffcl). hint_tc_Cl - Ainsi, le système de synchronisation selon la présente invention met en oeuvre une pluralité de serveurs 12 qui définissent en commun une heure précise. Cette heure commune est ensuite envoyée aux clients 14. Le système selon la présente invention ne 10 nécessite aucune fonction spécifique des commutateurs réseau ce qui permet à la fois la conservation du ou des réseau(x) existant(s), sans impact matériel ni logiciel sur les équipements de réseau déjà installés, et une amélioration de l'intégrité des réseaux, REVENDICATIONS1.- Procédé (24, 66) de synchronisation d'un ensemble (10) de dispositifs informatiques critiques, en particulier des dispositifs avioniques, interconnectés à un réseau (16) de communication d'un véhicule, tel qu'un aéronef, et comprenant chacun un module de gestion de l'heure (G_P), l'ensemble de dispositifs informatiques critiques comprenant au moins une pluralité de serveurs (12) de référence horaire, et une pluralité de clients (14), chaque dispositif informatique critique étant connecté à au moins un autre dispositif informatique critique par une liaison virtuelle (18, 20), chaque point de terminaison d'une liaison virtuelle étant associé à une valeur minimale (BCTT) et à une valeur maximale (WCTT) de temps de transmission d'un paquet de données sur la liaison virtuelle, le procédé (24, 66) de synchronisation étant mis en oeuvre et réitéré périodiquement par le module de gestion de l'heure (G_P) de chaque dispositif informatique critique courant et comprenant au moins: la réception (38, 46, 76, 86) d'au moins un message de synchronisation transmis par un serveur (12) émetteur distinct dudit dispositif informatique critique courant, chaque message étant associé à un instant de réception (t,) et comprenant au moins une référence horaire (Href,) déterminée par le serveur (12) émetteur, pour chaque message de synchronisation reçu, l'estimation (40, 48, 58, 78, 90) de l'heure courante du serveur (12) émetteur à partir d'un quintuplet de paramètres comprenant : ^ la référence horaire (Href,), ^ une valeur (hint_tcdt) de l'horloge interne du dispositif informatique critique courant à l'instant courant, ^ une valeur (hint_ti_ch) de l'horloge interne du dispositif informatique critique courant à l'instant de réception, ^ la valeur minimale (BCTT) et la valeur maximale (WCTT) de temps de transmission associée à la liaison virtuelle entre le serveur émetteur et le dispositif informatique critique courant. 2.- Procédé (24, 66) de synchronisation selon la revendication 1, dans lequel la période (P) de réitération du procédé est conforme à la relation suivante : 20 PR - max , (G(s,$)) - max ,FINCTT(s,$). (D(s) + D(s'))1 serveur s serveur s M . (D (S) max ,D(s')) serveur s PR - G(S,C) min W CTT (s, c)1 client c, serveur s D (C) + D (s) P 3.- Procédé (24, 66) de synchronisation selon la revendication 1 ou 2, dans lequel chaque dispositif informatique critique comprend également un module de gestion des pannes (G_P) de synchronisation propre à être détectée(s) lors de la mise en oeuvre dudit procédé (24, 66), et dans lequel le procédé comprend, au cours d'une période courante, 15 préalablement à la réception d'au moins un message de synchronisation et à l'estimation de l'heure courante du serveur (12) émetteur : la transmission (32, 54, 72, 82), par le module de gestion de l'heure (G_H) du dispositif informatique critique courant, à son propre module de gestion des pannes (G_P), de toute information, associée à un module de gestion des pannes (G_H) d'au moins un 20 serveur (12) émetteur distinct du dispositif informatique critique courant, et reçue au cours de la période (P) précédente, - l'exécution (34, 56, 74, 84) de chaque action, non encore exécutée, reçue de son propre module de gestion des pannes. 25 4.- Procédé (24) de synchronisation selon la revendication 1 ou 2, le dispositif informatique critique courant étant un serveur (12) courant parmi la pluralité de serveurs (12), chaque serveur (12) étant connecté à chaque autre serveur et à chaque client par une liaison virtuelle de synchronisation (18), dans lequel, au cours d'une phase d'initialisation (26), le procédé comprend, 30 préalablement à la réception (38, 46) d'au moins un message de synchronisation et à l'estimation (40, 48) de l'heure courante du serveur (12) émetteur: 21 - la détermination (34) d'une référence horaire du serveur (12) courant par application d'une fonction affine prédéterminée à la valeur de l'horloge interne du serveur (12) courant à l'instant courant, la fonction affine étant associée à un facteur et à un décalage dont les valeurs sont préalablement initialisées à des valeurs initiales prédéterminées, 5 - l'émission (36) d'un message de synchronisation comprenant un champ d'identification (INIT) représentatif de la phase d'initialisation du module de gestion de l'heure (G_H) du serveur (12) courant et comprenant la référence horaire du serveur (12) courant. 5.- Procédé (24) de synchronisation selon la revendication 4, dans lequel 10 successivement à l'estimation (40) de l'heure courante du serveur émetteur mise en oeuvre, pour chaque message de synchronisation reçu comprenant un champ d'identification représentatif de la phase d'initialisation (INIT) d'un serveur émetteur distinct, et mise en oeuvre dès qu'un premier nombre prédéterminé de messages de synchronisation reçus, est atteint, le procédé comprend : 15 - la détermination (42) d'une nouvelle référence horaire correspondant à l'heure courante maximale obtenue à partir des heures courantes associées à chaque message, - la mise à jour (44) du facteur et du décalage de la fonction affine en fonction de ladite nouvelle référence horaire, - le démarrage (44) de la phase opérationnelle (28) du module de gestion de l'heure du 20 serveur courant. 6.- Procédé (24) de synchronisation selon la revendication 4, dans lequel successivement à l'estimation (48) de l'heure courante du serveur (12) émetteur mise en oeuvre, pour chaque message de synchronisation reçu comprenant un champ 25 d'identification (TIME) représentatif de la phase opérationnelle (28) d'un serveur (12) émetteur distinct, et mise en oeuvre dès qu'un deuxième nombre prédéterminé de messages de synchronisation reçus, est atteint, le procédé comprend : - la détermination (50) d'une nouvelle référence horaire correspondant à l'heure courante moyenne obtenue à partir des heures courantes associées à chaque message, 30 - la mise à jour (52) du facteur et du décalage de la fonction affine en fonction de ladite nouvelle référence horaire, - le démarrage (52) de la phase opérationnelle (28) du module de gestion de l'heure du serveur courant. 22 7.- Procédé (24) de synchronisation selon l'une quelconque des revendications 1 à 3, le dispositif informatique critique courant étant un serveur (12) courant parmi la pluralité de serveurs, chaque serveur (12) étant connecté à chaque autre serveur et à chaque client par une liaison virtuelle de synchronisation (18), 5 dans lequel, au cours de la phase opérationnelle (28), le procédé comprend : - pour chaque message de synchronisation reçu comprenant un champ d'identification (TIME) représentatif de la phase opérationnelle (28) d'un serveur (12) émetteur distinct : si l'instant de réception du message est antérieur de plus de deux périodes (P) à l'instant courant, l'émission d'une information représentative d'une anomalie au 10 module de gestion de panne (G_P) du client courant et l'arrêt du traitement du message, sinon ladite estimation (58) de l'heure courante associée audit message - la détermination (60) d'une nouvelle référence horaire correspondant à l'heure courante moyenne obtenue à partir de l'heure courante du serveur courant et des heures courantes 15 associées à chaque message, - la mise à jour (62) du facteur et du décalage de la fonction affine en fonction de ladite nouvelle référence horaire, et - l'émission (64) d'un message de synchronisation comprenant un champ d'identification représentatif de la phase opérationnelle du serveur courant et contenant ladite référence 20 horaire du serveur courant. 8.- Procédé (66) de synchronisation selon l'une quelconque des revendications 1 à 3, le dispositif informatique critique courant étant un client (14) courant parmi la pluralité de clients (14), chaque client (14) étant connecté à chaque serveur (12) de la pluralité de 25 serveurs (12) par une liaison virtuelle de synchronisation (18), dans lequel, au cours d'une phase d'initialisation (68), successivement à l'estimation (78) de l'heure courante du serveur émetteur mise en oeuvre à partir du premier message de synchronisation reçu comprenant un champ d'identification (TIME) représentatif de la phase opérationnelle (28) d'un serveur (12) émetteur distinct, le 30 procédé comprend : la mise à jour de la référence horaire du client courant égale à l'heure courante associée audit message, l'initialisation (80) des valeurs initiales de facteur et de décalage d'une fonction affine applicable à la valeur de l'horloge interne du client courant, 23 - le démarrage (80) de la phase opérationnelle du module de gestion de l'heure du client courant. 9.- Procédé (66) de synchronisation selon la revendication 1 ou 2, le dispositif 5 informatique critique courant étant un client (14) courant parmi la pluralité de clients (14), chaque client (14) étant connecté à chaque serveur (12) de la pluralité de serveurs (12) par une liaison virtuelle de synchronisation (18), dans lequel, au cours d'une phase opérationnelle (70), le procédé comprend : - pour chaque message de synchronisation reçu comprenant un champ d'identification 10 représentatif de la phase opérationnelle (68) d'un serveur (12) émetteur distinct : si l'instant de réception (t) du message est antérieur de plus de deux périodes (P) à l'instant courant (te), l'émission d'une information représentative d'une anomalie au module de gestion de panne (G_P) du client (14) courant et l'arrêt du traitement du message, 15 sinon ladite estimation (90) de l'heure courante associée audit message, - si la valeur absolue de la différence entre, d'une part une référence horaire du client (14) courant obtenue par application d'une fonction affine à la valeur de l'horloge interne du client courant (C1, C2) à l'instant courant te, et d'autre part l'heure courante moyenne obtenue (92) à partir des heures courantes associées à chaque message est supérieure à 20 un seuil prédéterminé de précision (PR), l'émission (94) d'une information représentative d'une anomalie au module de gestion de panne (G_P) du client courant, - détermination d'une nouvelle référence horaire correspondant à l'heure courante moyenne obtenue à partir des heures courantes associées à chaque message, et - mise à jour du facteur et du décalage de la fonction affine du client (14) courant en 25 fonction de ladite nouvelle référence horaire. 10.- Système (10) de synchronisation d'un ensemble de dispositifs informatiques critiques, en particulier des dispositifs avioniques, interconnectés à un réseau (16) de communication d'un véhicule, tel qu'un aéronef, et comprenant chacun un module de 30 gestion de l'heure (G_H), l'ensemble de dispositifs informatiques critiques comprenant au moins une pluralité de serveurs (12) de référence horaire, et une pluralité de clients (14), chaque dispositif informatique critique étant connecté à un au moins un autre dispositif informatique critique par une liaison virtuelle (18, 20), chaque point de terminaison d'une liaison virtuelle étant associée à une valeur minimale (BCTT) et une valeur maximale 24 (WCTT) de temps de transmission d'un paquet de données sur ladite liaison virtuelle (18, 20), le module de gestion de l'heure (G_H) de chaque dispositif informatique critique courant étant propre à mettre en oeuvre et à réitérer périodiquement au moins: 5 la réception (38, 46, 76, 86) d'au moins un message de synchronisation transmis par un serveur émetteur distinct dudit dispositif informatique critique courant, chaque message étant associé à un instant de réception et comprenant au moins une référence horaire déterminée par ledit serveur émetteur, - pour chaque message de synchronisation reçu, l'estimation (40, 48, 58, 78, 90) de 10 l'heure courante du serveur émetteur à partir d'un quintuplet de paramètres comprenant : ^ ladite référence horaire, ^ une valeur de l'horloge interne du dispositif informatique critique courant à l'instant courant, 15 ^ une valeur de l'horloge interne du dispositif informatique critique courant à l'instant de réception, ^ la valeur minimale et la valeur maximale de temps de transmission associée à la liaison virtuelle entre le serveur émetteur et le dispositif informatique critique courant.