Brevet FR3152898A1 — publié le 20250314

La présente invention concerne un procédé implémenté par ordinateur pour la transmission de données, plus particulièrement dans des commandes de vol, avec les étapes suivantes : envoi d’un signal de synchronisation par une première unité de calcul ; réception du signal de synchronisation par une deuxième et/ou une troisième unité de calcul, respectivement à un moment de réception ; transmission de premières données de la troisième unité de calcul à la deuxième unité de calcul, dans lequel la transmission des premières a lieu à un premier moment de transmission qui dépend du moment de réception respectif de la réception du signal de synchronisation par la deuxième et/ou troisième unité de calcul ; transmission des premières et/ou de deuxièmes données de la deuxième unité de calcul à la première unité de calcul, dans lequel la transmission a lieu à un deuxième moment de transmission qui dépend du moment de réception respectif de la réception du signal de synchronisation par la deuxième et/ou troisième unité de calcul. Procédé et systèmes par ordinateur pour la transmission de données, plus particulièrement dans des commandes de vol La présente invention concerne un procédé implémenté par ordinateur pour la transmission de données, plus particulièrement dans des commandes de vol. Dans l’état de la technique, des systèmes ou architectures de systèmes pour la transmission de données entre des unités de calcul ou pour l’importation de données dans une unité de calcul à partir d’une pluralité d’autres unités de calcul sont connus. Ces systèmes sont utilisés par exemple dans des commandes de vol ou des ordinateurs de commande de vol (de l’anglais « flight control computer » (FCC)). Sur la FIG. 3 est représenté un exemple d’un système connu ou d’une architecture de système connue. Dans ce cas, plusieurs unités de calcul 2, par exemple chacune sous la forme d’un réseau de portes programmables (de l’anglais « field programmable gate array » (FGPA)), sont reliées électriquement respectivement par l’intermédiaire d’un bus de données à haute vitesse B à une première unité de calcul 1, par exemple sous la forme d’une unité de calcul central (de l’anglais « central processing unit » (CPU)) et/ou d’un processeur. Le bus de données à haute vitesse 3 sert donc de liaison électrique entre les deuxièmes unités de calcul 2 et la première unité de calcul 1. Il est donc connu que certaines deuxièmes unités de calcul, par exemple des FGPA, sont reliées, par l’intermédiaire d’un bus de données à haute vitesse, à une première unité de calcul, par exemple un CPU, chaque deuxième unité de calcul pouvant être contrôlée et/ou lue individuellement par la première unité de calcul. Un bus de données à haute vitesse B est donc une interface électrique de la première unité de calcul 1, dans lequel la première unité de calcul 1 comprend trois interfaces électriques. La deuxième unité de calcul 2, représentée avec une ligne en pointillés sur la FIG. 3 , peut en option être reliée, par l’intermédiaire du bus de données à haute vitesse B représenté en pointillés, avec la première unité de calcul 1. La première unité de calcul 1, par exemple le CPU, est donc le maître de la communication et elle comprend le nombre correspondant de bus de données à haute vitesse B, afin de raccorder les deuxièmes unités de calcul 2, par exemple des FGPA, en tant qu’esclaves de la communication. Du fait du nombre limité de bus de données à haute vitesse B pouvant comprendre une première unité de calcul, il résulte une limitation du nombre maximal de deuxièmes unités de calcul 2 pouvant être raccordées. Cela limite donc le nombre d’interfaces ou de raccordements électriques, par exemple pour des capteurs que le système peut comprendre, par exemple dans un FCC. En outre, l’effort pour le traitement des données dans la première unité de calcul 1, par exemple le CPU, est plus élevé lorsque plusieurs bus de données à haute vitesse B sont contrôlés ou traités. Cela diminue par exemple les performances de la première unité de calcul et augmente le temps d’exécution pour le traitement des données. Par exemple, pour la réduction des coûts, il est souhaitable de réduire, dans les systèmes ou architectures de systèmes, plus particulièrement les commandes de vol, le nombre d’ordinateurs ainsi que d’augmenter le nombre de fonctions par ordinateur. Il en résulte que les systèmes ou architectures de systèmes doivent comprendre moins d’ordinateurs, qui sont cependant chacun plus complexes. Il en résulte des exigences élevées en ce qui concerne la puissance de calcul ou les performances des CPU ou des premières unités de calcul de l’ordinateur et cela nécessite un nombre élevé d’interfaces électriques qui sont lues et traitées par un ordinateur ou un CPU ou une première unité de calcul. Il est souhaitable que les systèmes, plus particulièrement dans les FCC, présentent un comportement hautement déterministe en ce qui concerne la réalisation du logiciel ainsi qu’en ce qui concerne le traitement des interfaces électriques, par exemple lors de la lecture de capteurs, le pilotage de sorties, etc. Afin de garantir cela, une transmission de données déterministe, de l’entrée électrique sur une chaîne de traitement de signaux, avec un faible temps de latence ainsi qu’une faible marge temporelle de fluctuation (gigue). Afin de maintenir les retards du système au minimum, des exigences très élevées concernant plus particulièrement le temps de latence sont imposées. Plus particulièrement, dans le cas de longs trajets de transmission, par exemple sur plusieurs FGPA, une conception adaptée est nécessaire afin de maintenir le temps de latence ainsi que la marge temporelle de fluctuation (gigue) aussi faible que possible. Dans ce contexte, l’objectif de la présente invention est de mettre à disposition un procédé amélioré par rapport au procédé mentionné ci-dessus, plus particulièrement afin de relier un nombre élevé d’unités de calcul à une première unité de calcul avec un nombre limité d’interfaces électriques. Cet objectif est atteint de la manière suivante : Selon la présente invention, il est donc prévu : un procédé implémenté par ordinateur pour la transmission de données, plus particulièrement dans des commandes de vol, avec les étapes suivantes : - émission d’un signal de synchronisation par une première unité de calcul ; - réception du signal de synchronisation par une deuxième et/ou une troisième unité de calcul, à un moment de réception pour chaque cas ; - transmission de premières données de la troisième unité de calcul à la deuxième unité de calcul, dans lequel la transmission des premières données a lieu à un premier moment de transmission qui dépend du moment de réception respectif de la réception du signal de synchronisation par la deuxième et/ou la troisième unité de calcul ; - transmission des premières et/ou de deuxièmes données par la deuxième unité de calcul à la première unité de calcul, dans lequel la transmission a lieu à un deuxième moment de transmission qui dépend du moment de réception respectif de la réception du signal de synchronisation par la deuxième et/ou la troisième unité de calcul. Le terme de « moment » doit être interprété au sens large dans le cadre de l’invention et il comprend par exemple également une période ou un laps de temps. En d’autres termes, une transmission de données d’une unité de calcul quelconque à la première unité de calcul a lieu de préférence par l’intermédiaire d’une ou plusieurs autres unités de calcul. Les données d’un nombre quelconque d’unités de calcul peuvent ainsi être transmises à la première unité de calcul, par l’intermédiaire d’une seule interface électrique et/ou d’un seul canal de données, par exemple une broche ou un raccord de la première unité de calcul. De préférence, il est prévu que le premier moment de transmission est une somme du moment de réception de la réception du signal de synchronisation par la deuxième et/ou la troisième unité de calcul, d’un premier décalage temporel et/ou d’une durée, plus particulièrement d’une collecte des premières données et/ou que le deuxième moment de transmission est la somme du moment de réception de la réception du signal de synchronisation par la deuxième et/ou la troisième unité de calcul, d’un deuxième décalage temporel et/ou d’une durée, plus particulièrement d’une collecte des deuxièmes données. De préférence, il est prévu que le procédé comprend, avant la transmission des premières données par la troisième unité de calcul à la deuxième unité de calcul, l’étape suivante : Collecte des premières données par la troisième unité de calcul. De préférence, il est prévu que le procédé comprend, avant la transmission des premières et/ou des deuxièmes données par la deuxième unité de calcul à la première unité de calcul, l’étape suivante : - collecte des deuxièmes données par la deuxième unité de calcul. La collecte de données comprend, par exemple la lecture d’un capteur, etc. De préférence, il est prévu que la collecte des premières données a lieu à un premier moment de collecte qui est une somme du moment de réception de la réception du signal de synchronisation par la deuxième et/ou la troisième unité de calcul et du premier décalage temporel et/ou que la collecte des deuxièmes données a lieu à un deuxième moment de collecte qui est une somme du moment de réception de la réception du signal de synchronisation par la deuxième et/ou la troisième unité de calcul du deuxième décalage temporel. De préférence, il est prévu que la transmission des premières et/ou des deuxièmes données par la deuxième unité de calcul à la première unité de calcul a lieu par l’intermédiaire d’un canal de données exactement, plus particulièrement un bus de données à haute vitesse. Le canal de données comprend de préférence une interface électrique. Entre l’émission et la réception du signal de synchronisation, une transmission du signal de synchronisation peut avoir lieu par l’intermédiaire du canal de données et/ou par l’intermédiaire d’un canal de signaux. De préférence, il est prévu que les étapes du procédé sont exécutées plusieurs fois, plus particulièrement de manière périodique. De préférence, il est prévu que le premier et/ou le deuxième moment de transmission est adapté, plus particulièrement à un temps de latence respectivement de la troisième et/ou de la deuxième unité de calcul. L’invention concerne également un système avec une première, une deuxième et une troisième unités de calcul, qui sont conçues chacune de façon à exécuter un procédé selon la présente invention. Le système comprend de préférence plusieurs unités de calcul dont les données peuvent toutes être transmises par l’intermédiaire d’un seul canal de données ou d’une interface électrique à une première unité de calcul. Les unités de calcul sont de préférence reliées entre elles de manière communicante, par exemple par des câbles, par exemple par l’intermédiaire de broches. De préférence, il est prévu que la première, la deuxième et/ou la troisième unité de calcul comprennent ou constituent chacune un processeur, plus particulièrement un CPU, un FGPA et/ou un ASIC. Plus particulièrement, les deuxièmes et/ou les troisièmes unités de calcul peuvent par exemple comprendre ou constituer un composant d’interface, un composant d’entrée-sortie, un FPGA et/ou un circuit intégré spécialisé (de l’anglais « application specific integrated circuit » (ASIC)). Les deuxièmes et/ou les troisièmes unités de calcul peuvent comprendre chacune un raccordement électrique, par exemple pour le raccordement d’un capteur. De préférence, il est prévu que la première, la deuxième et/ou la troisième unité de calcul sont reliées directement, donc respectivement sans composant intermédiaire et/ou sans autre unité de calcul, donc au moins une fois par paire par l’intermédiaire d’un composant intermédiaire et/ou d’une autre unité de calcul, plus particulièrement respectivement par l’intermédiaire d’un canal de données, plus particulièrement un bus de données à haute vitesse. Le bus de données à haute vitesse peut par exemple être un PCIexpress (de l’anglais « Peripheral Component Interconnect Express » (PCIe)). De préférence, il est prévu que le système fasse partie de commandes de vol d’un aéronef, plus particulièrement d’un avion. L’invention concerne également un programme informatique qui comprend des instructions qui font en sorte que le système selon la présente invention exécute les étapes du procédé selon la présente invention. L’invention concerne également un support lisible par ordinateur sur lequel le programme informatique selon la présente invention est enregistré. Les unités de calcul, le canal de données et/ou le canal de signaux comprennent ou constituent de préférence un trajet de transmission synchronisé pour la transmission de données, dans lequel, plus particulièrement, il existe une possibilité d’optimisation d’un temps de latence, dans lequel, plus particulièrement une possibilité d’optimisation d’un temps de latence par la préparation des données à un moment le plus tard possible, plus particulièrement par l’adaptation d’un décalage temporel. Le système est par exemple une architecture qui comprend des trajets de transmission avec plusieurs points. Une transmission de données synchrone a lieu de préférence afin de minimiser un temps de latence de la transmission des données. L’invention présente de préférence les avantages suivants : - de préférence un temps de latence le plus faible possible et une gigue le plus faible possible ; - de préférence, une adaptation à la quantité de données à transmettre a lieu par une adaptation d’un décalage temporel ; - de préférence, il existe une possibilité d’adaptation du ou des moments de transmission auxquels a lieu une transmission, plus particulièrement en fonction de l’unité de calcul respective ; - de préférence, une compensation des longueurs de câbles, des canaux de données et/ou des canaux de signaux, qui transmettent le signal de synchronisation ou les données et/ou d’une quantité des données à transmettre et donc d’une durée d’une préparation des données à transmettre, a lieu ; - de préférence, on a un effort de traitement plus faible par rapport à une « architecture en étoile », comme celle représentée par exemple sur la FIG. 3 , dans laquelle plusieurs bus sont contrôlés ou traités par la première unité de calcul. Cela augmente par exemple les performances de la première unité de calcul et diminue le temps d’exécution pour le traitement des données ; - de préférence, il n’existe aucune limitation concernant la disponibilité et/ou du nombre de bus de données de la première unité de calcul, par exemple du CPU ; - de préférence, une extension flexible du système est possible, plus particulièrement avec d’autres unités de calcul, plus particulièrement sans modifier une architecture de logiciel et/ou des pilotes logiciels. Toutes les caractéristiques de l’invention décrites ici peuvent être combinées entre elles de manière quelconque ou être utilisées de manière isolée les unes des autres. D’autres avantages, caractéristiques et effets de la présente invention résultent de la description ci-dessous d’exemples de réalisation préférés en référence aux figures dans lesquelles des composants identiques ou similaires sont désignés par les mêmes repères. Les figures montrent : FIG. 1 : un organigramme d’un mode de réalisation d’un procédé selon la présente invention. FIG. 2 : un schéma fonctionnel d’un mode de réalisation d’un système selon la présente invention. FIG. 3 : un schéma fonctionnel d’un mode de réalisation d’un système selon l’état de la technique. Sur la FIG. 1 , est représenté un déroulement optimisé temporellement d’un mode de réalisation du procédé selon la présente invention, dans lequel un signal de synchronisation S est envoyé par une première unité de calcul à une deuxième et une troisième unités de calcul et est reçu par les deuxième et troisième unités de calcul et dans lequel des données sont transmises par la troisième à la deuxième unité de calcul et par la deuxième unité de calcul à la première unité de calcul. Le schéma de la FIG. 1 présente une ligne temporelle représentée par une flèche horizontale, sur laquelle les étapes du procédé S1 à S4 sont inscrites sur des lignes. Les flèches verticales représentent les moments de l’envoi des signaux de synchronisation S par la première unité de calcul et les moments de réception de la réception des signaux de synchronisation S par les deuxième et troisième unités de calcul. La première unité de calcul est un maître et les deuxième et troisième unités de calcul sont respectivement des esclaves. Le signal de synchronisation S est envoyé et reçu périodiquement. Aux moments t 0 , t 0 +1, t 0 +2, etc., 1, 2, etc. étant des chiffres désignant les différentes périodes auxquelles un signal de synchronisation S est envoyé, un signal de synchronisation S est envoyé et reçu. À titre d’exemple, un déroulement du procédé pour la première période a lieu comme suit : à l’étape S1, a lieu une collecte de premières données par la troisième unité de calcul à un premier moment de collecte, qui est déterminé par une addition du moment de réception t 0 de la réception du signal de synchronisation S par la troisième unité de calcul et d’un premier décalage temporel Offset 1 ou est une somme du moment de réception t 0 de la réception du signal de synchronisation S par la troisième unité de calcul et d’un premier décalage temporel Offset 1 . La collecte des premières données a lieu sur une première durée TS1. À l’étape S2, a lieu une collecte de deuxièmes données par la deuxième unité de calcul à un deuxième moment de collecte, qui est déterminé par une addition du moment de réception t 0 de la réception du signal de synchronisation S par la deuxième unité de calcul et d’un deuxième décalage temporel Offset 2 ou est une somme du moment de réception t 0 de la réception du signal de synchronisation S par la deuxième unité de calcul et d’un deuxième décalage temporel Offset 2 . La collecte des deuxièmes données a lieu sur une deuxième durée TS2. À l’étape S3, a lieu une transmission ou un transfert des premières données de la troisième unité de calcul à la deuxième unité de calcul. La transmission des premières données de la troisième unité de calcul à la deuxième unité de calcul a lieu sur une troisième durée TS3. À l’étape S4, a lieu une transmission ou un transfert des premières et/ou deuxièmes données de la deuxième unité de calcul à la première unité de calcul. La transmission des premières et/ou deuxièmes données de la deuxième unité de calcul à la première unité de calcul a lieu sur une quatrième durée TS4. Au moment T toutes les données sont donc présentes dans la première unité de calcul. Entre le début de la collecte des premières données et le moment T, il existe un temps de latence Latence 1 . Entre le début de la collecte des deuxièmes données et le moment T, il existe un temps de latence Latence 2 . Les temps de latence Latence 1 et Latence 1 dépendent par exemple des unités de calcul et de la structure du système ou des trajets de transmission, etc. L’adaptation du premier décalage temporel Offset 1 et/ou du deuxième décalage temporel Offset 2 permet ainsi de décaler et/ou d’adapter ou d’optimiser le moment T. À la première période succède une deuxième période, comme cela est visible dans la représentation des durées TS1, TS2 et TS3 dans la zone de droite de la FIG. 1 . Sur la FIG. 2 , est représentée une structure de base ou général d’un mode de réalisation d’un système selon la présente invention ou de ses trajets de transmission. Le système fait partie d’un FCC. Le système comprend une première unité de calcul 1 sous la forme d’un CPU. La première unité de calcul peut également être appelée unité de calcul centrale. Le système comprend en outre une deuxième et une troisième unités de calcul 2 et 3 respectivement sous la forme d’un FGPA. Le système peut, en option, être étendue à l’aide d’unités de calcul supplémentaires 4, comme cela est représenté par des cadres en pointillés sur la FIG. 2 . Ces extensions permettent de respecter des exigences supplémentaires concernant le FCC. La première unité de calcul 1 est reliée de manière communicante avec la deuxième unité de calcul 2 et la deuxième unité de calcul 2 est reliée de manière communicante avec la troisième unité de calcul 3 respectivement par l’intermédiaire d’un canal de données représenté par une double flèche sur la FIG. 2 . Les unités de calcul optionnelles 4 peuvent être reliées de manière communicante respectivement avec une des unités de calcul 2 ou 3 par l’intermédiaire d’un canal de données représenté par une double flèche sur la FIG. 2 . Plusieurs unités de calcul optionnelles 4 peuvent ainsi être reliées de manière communicante avec une des unités de calcul 2 ou 3. La première unité de calcul 1 est reliée avec chaque unité de calcul 2, 3 et optionnellement 4 par l’intermédiaire d’un canal de signaux SK, qui est conçu pour transmettre des signaux de synchronisation. Les signaux de synchronisation peuvent également être transmis par l’intermédiaire du ou des canaux de signaux. La première unité de calcul, en tant que maître de la communication, met à la disposition de toutes les autres unités de calcul du système un signal de synchronisation. En fonction de ce signal de synchronisation, les données respectives sont préparées, par exemple collectées et/ou transmises, au moment nécessaire. Procédé implémenté par ordinateur pour la transmission de données, plus particulièrement dans des commandes de vol, avec les étapes suivantes : - envoi d’un signal de synchronisation par une première unité de calcul ; - réception du signal de synchronisation par une deuxième et/ou une troisième unité de calcul à un moment de réception dans chaque cas ; - transmission de premières données de la troisième unité de calcul à la deuxième unité de calcul, dans lequel la transmission des premières données a lieu à un premier moment de transmission, qui dépend du moment de réception respectif de la réception du signal de synchronisation par la deuxième et/ou la troisième unité de calcul ; - transmission des premières données et/ou de deuxièmes données de la deuxième unité de calcul à la première unité de calcul, dans lequel la transmission a lieu à un deuxième moment de transmission qui dépend du moment de réception respectif de la réception du signal de synchronisation par la deuxième et/ou troisième unité de calcul. Procédé implémenté par ordinateur selon la revendication 1, caractérisé en ce que le premier moment de transmission est une somme du moment de réception de la réception du signal de synchronisation par la deuxième et/ou troisième unité de calcul, d’un premier décalage temporel et/ou d’une durée, plus particulièrement d’une collecte des premières données et/ou en ce que le deuxième moment de transmission est la somme du moment de réception de la réception du signal de synchronisation par la deuxième et/ou la troisième unité de calcul, d’un deuxième décalage temporel et/ou d’une durée, plus particulièrement d’une collecte des deuxièmes données. Procédé implémenté par ordinateur selon la revendication 1 ou 2, caractérisé en ce que le procédé comprend, avant la transmission des premières données de la troisième unité de calcul à la deuxième unité de calcul, l’étape suivante : - collecte des premières données par la troisième unité de calcul. Procédé implémenté par ordinateur selon l’une des revendications précédentes, caractérisé en ce que le procédé comprend, avant la transmission des premières et/ou des deuxièmes données de la deuxième unité de calcul à la première unité de calcul, l’étape suivante : - collecte des deuxièmes données par la deuxième unité de calcul. Procédé implémenté par ordinateur selon l’une des revendications 2 à 4, caractérisé en ce que la collecte des premières données a lieu à un premier moment de collecte qui est une somme du moment de réception de la réception du signal de synchronisation par la deuxième et/ou la troisième unité de calcul et du premier décalage temporel et/ou en ce que la collecte des deuxièmes données a lieu à un deuxième moment de collecte qui est une somme du moment de réception de la réception du signal de synchronisation par la deuxième et/ou la troisième unité de calcul et du deuxième décalage temporel. Procédé implémenté par ordinateur selon l’une des revendications précédentes, caractérisé en ce que la transmission des premières et/ou des deuxièmes données de la deuxième unité de calcul à la première unité de calcul a lieu par l’intermédiaire d’un seul canal de données, plus particulièrement un bus de données à haute vitesse. Procédé implémenté par ordinateur selon l’une des revendications précédentes, caractérisé en ce que les étapes du procédé sont exécutées plusieurs fois, plus particulièrement de manière périodique. Procédé implémenté par ordinateur selon l’une des revendications précédentes, caractérisé en ce que le premier et/ou le deuxième moment de transmission est adapté, plus particulièrement à un temps de latence respectivement de la troisième et/ou de la deuxième unité de calcul. Système avec une première, une deuxième et une troisième unités de calcul qui sont conçus respectivement de façon à exécuter un procédé selon l’une des revendications précédentes. Système selon la revendication 9, caractérisé en ce que la première, la deuxième et/ou la troisième unités de calcul comprennent ou constituent respectivement un processeur, plus particulièrement un CPU, une FGPA et/ou un ASIC. Système selon la revendication 9 ou 10, caractérisé en ce que la première, la deuxième et/ou la troisième unités de calcul sont reliées directement ou indirectement, plus particulièrement respectivement par l’intermédiaire d’un canal de données, plus particulièrement un bus de données à haute vitesse. Système selon l’une des revendications 9 à 11, caractérisé en ce que le système fait partie de commandes de vol d’un aéronef, plus particulièrement d’un avion. Programme d'ordinateur comprenant des instructions de code de programme pour l'exécution des étapes du procédé selon l'une des revendications 1 à 8 lorsque ledit programme est exécuté sur un ordinateur. Support lisible par un ordinateur, sur lequel est enregistrée le programme informatique selon la revendication 13.