Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD FOR CONTROLLING THE OPERATING STATE OF A SYSTEM BY REDUNDANCY
Document Type and Number:
WIPO Patent Application WO/2017/081095
Kind Code:
A1
Abstract:
The invention concerns a method for controlling the operating state of a system comprising at least one first member, the method comprising the steps of: - selection of a first task, that can be executed in a first allocated time, - first execution by the first member of the first selected task, the first execution making it possible to obtain a first result and defining a first time period, - first testing of a first condition according to which the first time period is less than the first allocated time, when the first condition is fulfilled, the method also comprises: - implementation of at least one second execution of the same first task by the same first member in order to obtain a second result, - comparing the first result with each second result, and - determining the operating state of the system.

Inventors:
GRASSET ARNAUD (FR)
Application Number:
PCT/EP2016/077162
Publication Date:
May 18, 2017
Filing Date:
November 09, 2016
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
THALES SA (FR)
International Classes:
G06F11/14; G06F9/48; G06F11/16; G06F11/18
Other References:
FOHLER G: "Adaptive fault-tolerance with statically scheduled real-time systems", REAL-TIME SYSTEMS, 1997. PROCEEDINGS., NINTH EUROMICRO WORKSHOP ON TOLEDO, SPAIN 11-13 JUNE 1997, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, 11 June 1997 (1997-06-11), pages 161 - 167, XP010240872, ISBN: 978-0-8186-8034-2, DOI: 10.1109/EMWRTS.1997.613777
STEFAN KRAMER ET AL: "Reliability analysis of real-time scheduling", APPLIED ELECTRONICS (AE), 2012 INTERNATIONAL CONFERENCE ON, IEEE, 5 September 2012 (2012-09-05), pages 151 - 156, XP032247961, ISBN: 978-1-4673-1963-8
Attorney, Agent or Firm:
BLOT, Philippe et al. (FR)
Download PDF:
Claims:
REVENDICATIONS

1 . - Procédé de contrôle de l'état de fonctionnement d'un système (1 ), le système (1 ) comprenant au moins un premier organe (d) propre à exécuter des tâches (T1 .., Tn), le procédé comprenant les étapes de :

- sélection (1 10) d'une première tâche (ΤΊ) à exécuter par le premier organe (d), la première tâche (ΤΊ) étant exécutable en un premier temps alloué (Ai),

- première exécution (120) par le premier organe (d) de la première tâche (ΤΊ) sélectionnée, la première exécution par le premier organe (d) de la première tâche (ΤΊ) permettant d'obtenir un premier résultat et définissant une première période de temps (Δ^,

- premier test (130) d'une première condition selon laquelle la première période de temps (Ai) est inférieure ou égale au premier temps alloué (A^,

lorsque la première condition est remplie, le procédé comporte également les étapes de :

- mise en œuvre (150) d'au moins une deuxième exécution de la même première tâche (ΤΊ) par le même premier organe (d) pendant une deuxième période de temps (Δ2), chaque deuxième exécution permettant d'obtenir un deuxième résultat,

- comparaison (160) du premier résultat avec chaque deuxième résultat, et

- détermination (170) de l'état de fonctionnement du système (1 ) en fonction de l'étape de comparaison (160).

2. - Procédé selon la revendication 1 , dans lequel lorsque la première condition n'est pas remplie, le procédé comporte également une étape (140) d'attente pendant un temps d'attente, puis de répétition des étapes de sélection (1 10), de première exécution (120) et de premier test (130), la somme du temps d'attente et de la première période de temps (Ai) étant égale à un multiple du premier temps alloué (A^.

3. - Procédé selon la revendication 1 ou 2, dans lequel lorsque la première condition n'est pas remplie et que la première période de temps (Δ^ est inférieure ou égale à une durée prédéterminée, le procédé comporte également les étapes de mise en œuvre d'au moins une deuxième exécution (150), de comparaison (160) et de détermination (170).

4. - Procédé de contrôle de l'état de fonctionnement d'un système (1 ), le système (1 ) comprenant au moins un premier organe (d) propre à exécuter des tâches (T1 .., Tn), le procédé comprenant les étapes de : - sélection (210) d'une première tâche (ΤΊ) à exécuter par le premier organe (d), la première tâche (ΤΊ) étant exécutable en un premier temps alloué (Ai),

- première exécution (220) par le premier organe (d) de la première tâche (ΤΊ) sélectionnée durant une première période de temps, la première période de temps étant inférieure ou égale au premier temps alloué (Ai),

- premier test (230) d'une première condition selon laquelle la première exécution de la première tâche (ΤΊ) est achevée,

lorsque la première condition est remplie, le procédé comporte également les étapes de :

- obtention du résultat de la première exécution de la première tâche (ΤΊ) par le premier organe (d) permettant d'obtenir un premier résultat,

- comparaison (260) du premier résultat avec au moins un deuxième résultat, chaque deuxième résultat étant obtenu par la mise en œuvre (250) d'une redondance de type spatiale et/ou temporelle, et

- détermination (270) de l'état de fonctionnement du système (1 ) en fonction de l'étape de comparaison (260).

5. - Procédé selon la revendication 4, dans lequel lorsque la première condition n'est pas remplie, le procédé comporte également une étape (230) de fin d'exécution de la première tâche (ΤΊ) dont une partie a été mise en œuvre lors de la première exécution (220), permettant d'obtenir le premier résultat.

6. - Procédé selon la revendication 4 ou 5, dans lequel le système (1 ) comporte un deuxième organe (02) et un troisième organe (03), le deuxième organe (02) et le troisième organe (03) étant propres à exécuter des tâches (T1 .., Tn), le procédé comprenant les étapes de :

- deuxième exécution de la même première tâche (ΤΊ) par le deuxième organe (02) durant une deuxième période de temps, la deuxième exécution étant mise en œuvre en parallèle de la première exécution, la deuxième exécution permettant d'obtenir un deuxième résultat lorsque la première condition est remplie,

- troisième exécution d'une deuxième tâche (T2) par le troisième organe (03) durant une troisième période de temps, la troisième exécution étant mise en œuvre en parallèle de la première exécution et de la deuxième exécution,

- deuxième test d'une deuxième condition selon laquelle la troisième exécution de la deuxième tâche (T2) est achevée,

lorsque la première condition et la deuxième condition sont remplies, le procédé comporte également une étape de quatrième exécution de la première tâche (ΤΊ) par le troisième organe (03) durant une quatrième période de temps, la quatrième exécution permettant d'obtenir un autre deuxième résultat.

7. - Procédé selon l'une quelconque des revendications 4 à 6, dans lequel lorsque la première condition est remplie, le procédé comporte également une étape de mise en œuvre d'au moins deux autres exécutions de la première tâche (ΤΊ) par le même premier organe (d), chaque autre exécution permettant d'obtenir un deuxième résultat.

8. - Procédé selon l'une quelconque des revendications 6 ou 7, dans lequel l'étape de détermination (270) de l'état de fonctionnement est mise en œuvre par utilisation d'un vote parmi le premier résultat et les au moins deux deuxièmes résultats.

9. - Procédé selon l'une quelconque des revendications 1 à 8, dans lequel pour chaque tâche (ΤΊ ,..., Tn), il est défini un temps maximal d'exécution, le temps alloué étant fonction du nombre d'exécutions redondantes de type temporelle de la tâche (T1 .., Tn) et du temps maximal d'exécution de la tâche (T1 .., Tn).

10. - Procédé selon la revendication 9, dans lequel le temps alloué est égal au rapport entre le temps maximal d'exécution de la tâche (T1 .., Tn) et le nombre d'exécutions redondantes de type temporelle de la tâche (T1 .., Tn).

1 1 . - Procédé selon l'une quelconque des revendications 1 à 10, dans lequel, la tâche (ΤΊ) sélectionnée est décomposable en un premier nombre de sous-tâches et dans lequel, lorsque la première condition n'est pas remplie, le procédé comporte en outre une étape d'exécution d'un deuxième nombre de sous-tâches de la tâche (ΤΊ) sélectionnée, le deuxième nombre étant strictement inférieur au premier nombre de sous-tâches.

12. - Procédé selon l'une quelconque des revendications 1 à 10, dans lequel, lorsque la première condition n'est pas remplie et que le premier résultat est obtenu, le procédé comporte en outre une étape de vérification de la pertinence du premier résultat obtenu.

13. - Contrôleur (2) de l'état de fonctionnement d'un système (1 ), le système (1 ) comprenant au moins un premier organe (C^) propre à exécuter des tâches ÇT —, Tn), le contrôleur (2) étant propre à mettre en œuvre les étapes suivantes : - sélection (1 10) d'une première tâche (ΤΊ) à exécuter par le premier organe (d), la première tâche (ΤΊ) étant exécutable en un premier temps alloué (Ai),

- première exécution (120) par le premier organe (d) de la première tâche (ΤΊ) sélectionnée, la première exécution par le premier organe (d) de la première tâche (ΤΊ) permettant d'obtenir un premier résultat et définissant une première période de temps (Δ^,

- premier test (130) d'une première condition selon laquelle la première période de temps (Ai) est inférieure ou égale au premier temps alloué (A^,

lorsque la première condition est remplie, le contrôleur étant également propre à mettre en œuvre les étapes de :

- mise en œuvre (150) d'au moins une deuxième exécution de la même première tâche (ΤΊ) par le même premier organe (d) pendant une deuxième période de temps (Δ2), chaque deuxième exécution permettant d'obtenir un deuxième résultat,

- comparaison (160) du premier résultat avec chaque deuxième résultat, et - détermination (170) de l'état de fonctionnement du système (1 ) en fonction de l'étape de comparaison (160).

14.- Contrôleur (2) de l'état de fonctionnement d'un système (1 ), le système (1 ) comprenant au moins un premier organe (d) propre à exécuter des tâches (ΤΊ ,..., Tn), le contrôleur (2) étant propre à mettre en œuvre les étapes suivantes.

- sélection (210) d'une première tâche (ΤΊ) à exécuter par le premier organe (d), la première tâche (ΤΊ) étant exécutable en un premier temps alloué (Ai),

- première exécution (220) par le premier organe (d) de la première tâche (ΤΊ) sélectionnée durant une première période de temps, la première période de temps étant inférieure ou égale au premier temps alloué (Ai),

- premier test (230) d'une première condition selon laquelle la première exécution de la première tâche (ΤΊ) est achevée,

lorsque la première condition est remplie, le contrôleur étant également propre à mettre en œuvre les étapes de :

- obtention du résultat de la première exécution de la première tâche (ΤΊ) par le premier organe (d) permettant d'obtenir un premier résultat,

- comparaison (260) du premier résultat avec au moins un deuxième résultat, chaque deuxième résultat étant obtenu par la mise en œuvre (250) d'une redondance de type spatiale et/ou temporelle, et

- détermination (270) de l'état de fonctionnement du système (1 ) en fonction de l'étape de comparaison (260).

15.- Appareil de transport comprenant un contrôleur (2) selon la revendication 13 ou 14.

Description:
Procédé de contrôle de l'état de fonctionnement d'un système par redondance

La présente invention concerne des procédés de contrôle de l'état de fonctionnement d'un système. La présente invention se rapporte également à des contrôleurs associés de l'état de fonctionnement d'un système. La présente invention se rapporte aussi à un appareil de transport comprenant un tel contrôleur.

Dans le domaine de l'avionique, les temps de réponse des systèmes de pilotage d'un aéronef doivent être garantis de manière stricte pour éviter la survenue d'accidents. De ce fait, pour assurer le respect des temps de réponse, des systèmes temps-réel sont embarqués dans les aéronefs. Les systèmes temps-réel sont des systèmes informatiques se différenciant des autres systèmes informatiques par la prise en compte de contraintes temporelles dont le respect est aussi important que l'exactitude du résultat délivré par le système.

Pour de tels systèmes temps-réels, il est donc vital d'assurer un haut niveau de fiabilité tout en garantissant que les contraintes temps-réels sont respectées. Un système est considéré fiable lorsque la probabilité qu'a le système de remplir la mission qui lui a été attribuée sur une durée donnée correspond à la probabilité spécifiée dans le cahier des charges.

Le respect des contraintes temps-réel est très souvent obtenu par estimation du « pire temps d'exécution » de chaque tâche du système, puis par ajout de marges de conception aux pires temps d'exécution estimés. Le pire temps d'exécution d'une tâche (abrégé en anglais par l'acronyme WCET pour Worst Case Execution Time) est défini comme le plus long temps pour que la tâche s'exécute sur une plateforme matérielle donnée.

Cependant, de telles marges étant relativement importantes, les besoins en performance des systèmes temps-réel sont surdimensionnés par rapport aux besoins réels, ce qui pénalise les performances et limite les fonctionnalités pouvant être implémentées sur de tels systèmes.

En outre, les composants des systèmes temps-réel sont soumis à des mécanismes d'usure et de défaillance, intrinsèques aux technologies utilisées pour ces composants. En particulier, les composants à base de semi-conducteurs sont la cible de radiations cosmiques ou d'interférences électromagnétiques induisant des fautes transitoires lors de l'exécution des tâches des systèmes, tandis que des défauts de fabrication et la dégradation des composants au cours de leur durée de vie induisent des fautes permanentes. De tels phénomènes induisent par conséquent une réduction de la fiabilité des systèmes temps-réel. Il existe donc un besoin pour améliorer la fiabilité des systèmes temps-réel sans dégrader les performances de tels systèmes.

A cet effet, l'invention a pour objet un procédé de contrôle de l'état de fonctionnement d'un système, le système comprenant au moins un premier organe propre à exécuter des tâches, le procédé comprenant les étapes de :

- sélection d'une première tâche à exécuter par le premier organe, la première tâche étant exécutable en un premier temps alloué,

- première exécution par le premier organe de la première tâche sélectionnée, la première exécution par le premier organe de la première tâche permettant d'obtenir un premier résultat et définissant une première période de temps,

- premier test d'une première condition selon laquelle la première période de temps est inférieure ou égale au premier temps alloué,

lorsque la première condition est remplie, le procédé comporte également les étapes de :

- mise en œuvre d'au moins une deuxième exécution de la même première tâche par le même premier organe pendant une deuxième période de temps, chaque deuxième exécution permettant d'obtenir un deuxième résultat,

- comparaison du premier résultat avec chaque deuxième résultat, et

- détermination de l'état de fonctionnement du système en fonction de l'étape de comparaison.

Suivant des modes de mise en œuvre particuliers, le procédé de contrôle comprend une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles :

- lorsque la première condition n'est pas remplie, le procédé comporte également une étape d'attente pendant un temps d'attente, puis de répétition des étapes de sélection, de première exécution et de premier test, la somme du temps d'attente et de la première période de temps étant égale à un multiple du premier temps alloué.

- lorsque la première condition n'est pas remplie et que la première période de temps est inférieure ou égale à une durée prédéterminée, le procédé comporte également les étapes de mise en œuvre d'au moins une deuxième exécution, de comparaison et de détermination.

L'invention concerne également un procédé de contrôle de l'état de fonctionnement d'un système, le système comprenant au moins un premier organe propre à exécuter des tâches, le procédé comprenant les étapes de : - sélection d'une première tâche à exécuter par le premier organe, la première tâche étant exécutable en un premier temps alloué,

- première exécution par le premier organe de la première tâche sélectionnée durant une première période de temps, la première période de temps étant inférieure ou égale au premier temps alloué,

- premier test d'une première condition selon laquelle la première exécution de la première tâche est achevée,

lorsque la première condition est remplie, le procédé comporte également les étapes de :

- obtention du résultat de la première exécution de la première tâche par le premier organe permettant d'obtenir un premier résultat,

- comparaison du premier résultat avec au moins un deuxième résultat, chaque deuxième résultat étant obtenu par la mise en œuvre d'une redondance de type spatiale et/ou temporelle, et

- détermination de l'état de fonctionnement du système en fonction de l'étape de comparaison.

Suivant des modes de mise en œuvre particuliers, le procédé de contrôle précédent comprend une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles :

- la première condition n'est pas remplie, le procédé comporte également une étape de fin d'exécution de la première tâche dont une partie a été mise en œuvre lors de la première exécution, permettant d'obtenir le premier résultat.

- le système comporte un deuxième organe et un troisième organe, le deuxième organe et le troisième organe étant propres à exécuter des tâches, le procédé comprenant les étapes de :

- deuxième exécution de la même première tâche par le deuxième organe durant une deuxième période de temps, la deuxième exécution étant mise en œuvre en parallèle de la première exécution, la deuxième exécution permettant d'obtenir un deuxième résultat lorsque la première condition est remplie,

- troisième exécution d'une deuxième tâche par le troisième organe durant une troisième période de temps, la troisième exécution étant mise en œuvre en parallèle de la première exécution et de la deuxième exécution,

- deuxième test d'une deuxième condition selon laquelle la troisième exécution de la deuxième tâche est achevée, lorsque la première condition et la deuxième condition sont remplies, le procédé comporte également une étape de quatrième exécution de la première tâche par le troisième organe durant une quatrième période de temps, la quatrième exécution permettant d'obtenir un autre deuxième résultat.

- lorsque la première condition est remplie, le procédé comporte également une étape de mise en œuvre d'au moins deux autres exécutions de la première tâche par le même premier organe, chaque autre exécution permettant d'obtenir un deuxième résultat.

- l'étape de détermination de l'état de fonctionnement est mise en œuvre par utilisation d'un vote parmi le premier résultat et les au moins deux deuxièmes résultats.

- pour chaque tâche, il est défini un temps maximal d'exécution, le temps alloué étant fonction du nombre d'exécutions redondantes de type temporelle de la tâche et du temps maximal d'exécution de la tâche.

- le temps alloué est égal au rapport entre le temps maximal d'exécution de la tâche et le nombre d'exécutions redondantes de type temporelle de la tâche.

- la tâche sélectionnée est décomposable en un premier nombre de sous-tâches et dans lequel, lorsque la première condition n'est pas remplie, le procédé comporte en outre une étape d'exécution d'un deuxième nombre de sous-tâches de la tâche sélectionnée, le deuxième nombre étant strictement inférieur au premier nombre de sous-tâches.

- lorsque la première condition n'est pas remplie et que le premier résultat est obtenu, le procédé comporte en outre une étape de vérification de la pertinence du premier résultat obtenu.

L'invention concerne aussi un contrôleur de l'état de fonctionnement d'un système, le système comprenant au moins un premier organe propre à exécuter des tâches, le contrôleur étant propre à mettre en œuvre les étapes suivantes :

- sélection d'une première tâche à exécuter par le premier organe, la première tâche étant exécutable en un premier temps alloué,

- première exécution par le premier organe de la première tâche sélectionnée, la première exécution par le premier organe de la première tâche permettant d'obtenir un premier résultat et définissant une première période de temps,

- premier test d'une première condition selon laquelle la première période de temps est inférieure ou égale au premier temps alloué, lorsque la première condition est remplie, le contrôleur étant également propre à mettre en œuvre les étapes de :

- mise en œuvre d'au moins une deuxième exécution de la même première tâche par le même premier organe pendant une deuxième période de temps, chaque deuxième exécution permettant d'obtenir un deuxième résultat,

- comparaison du premier résultat avec chaque deuxième résultat, et

- détermination de l'état de fonctionnement du système en fonction de l'étape de comparaison.

L'invention concerne, en outre, un autre contrôleur de l'état de fonctionnement d'un système, le système comprenant au moins un premier organe propre à exécuter des tâches, le contrôleur étant propre à mettre en œuvre les étapes suivantes.

- sélection d'une première tâche à exécuter par le premier organe, la première tâche étant exécutable en un premier temps alloué,

- première exécution par le premier organe de la première tâche sélectionnée durant une première période de temps, la première période de temps étant inférieure ou égale au premier temps alloué,

- premier test d'une première condition selon laquelle la première exécution de la première tâche est achevée,

lorsque la première condition est remplie, le contrôleur étant également propre à mettre en œuvre les étapes de :

- obtention du résultat de la première exécution de la première tâche par le premier organe permettant d'obtenir un premier résultat,

- comparaison du premier résultat avec au moins un deuxième résultat, chaque deuxième résultat étant obtenu par la mise en œuvre d'une redondance de type spatiale et/ou temporelle, et

- détermination de l'état de fonctionnement du système en fonction de l'étape de comparaison.

L'invention concerne également un appareil de transport comprenant un des contrôleurs décrit précédemment.

D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description qui suit de modes de réalisation de l'invention, donnée à titre d'exemple uniquement et en référence aux dessins qui sont :

- figure 1 , une vue schématique d'un exemple d'un contrôleur permettant la mise en œuvre d'un procédé de contrôle de l'état de fonctionnement d'un système, - figure 2, un ordinogramme d'un premier exemple de mise en œuvre d'un procédé de contrôle de l'état de fonctionnement d'un système, - figure 3, une représentation schématique d'une exécution redondante de type temporelle d'une tâche sur un organe, chaque exécution de la tâche sur l'organe étant réalisée sur une période de temps inférieure ou égale au pire temps d'exécution de la tâche,

- figure 4, une représentation schématique d'une exécution redondante de type temporelle d'une tâche sur un organe uniquement lorsque le temps d'exécution de la tâche lors de la première exécution est inférieur ou égal à la moitié du pire temps d'exécution de la tâche,

- figure 5, une représentation schématique d'une exécution redondante de type temporelle d'une tâche sur un organe uniquement lorsque le temps d'exécution de la tâche lors de la première exécution est inférieur ou égal au tiers du pire temps d'exécution de la tâche,

- figure 6, une représentation schématique d'une exécution redondante de type temporelle d'une tâche sur un organe lorsque le temps d'exécution de la tâche lors de la première exécution ne remplit pas la condition de la figure 5 mais a été exécuté sur une période de temps inférieure ou égale à la moitié du temps d'exécution de la tâche,

- figure 7, un ordinogramme d'un deuxième exemple de mise en œuvre d'un procédé de contrôle de l'état de fonctionnement d'un système,

- figure 8, une représentation schématique d'une exécution redondante de type spatiale de deux tâches sur deux organes uniquement lorsqu'une première condition est vérifiée,

- figure 9, une représentation schématique d'une exécution redondante de type spatiale de deux tâches sur trois organes uniquement lorsqu'une première condition et une deuxième condition sont vérifiées,

- figure 10, une représentation schématique d'une exécution redondante de type temporelle d'une tâche, la deuxième exécution de la tâche étant dégradée lorsque la première condition n'est pas vérifiée, et

- figure 1 1 , une représentation schématique d'une vérification de la pertinence du résultat obtenu suite à la première exécution d'une tâche lorsque la première condition n'est pas vérifiée.

Un système 1 et un contrôleur 2 de l'état de fonctionnement du système 1 sont illustrés sur la figure 1 .

Le système 1 est, par exemple, un système temps-réel. Dans l'exemple de la figure 1 , le système 1 est embarqué dans un appareil de transport 3, tel qu'une automobile ou un aéronef, pour lequel le respect des contraintes temporelles est un paramètre critique.

Le système 1 comprend un ensemble d'organes d ,..., O n et un ensemble de tâches T 1 .., T n . Dans l'exemple de la figure 1 , trois organes d , 0 2, 0 3 du système 1 sont représentés. Les organes d ,..., O n sont des éléments d'architecture remplissant une fonction prédéterminée. Les organes d ,..., O n sont également appelés « cœurs de processeurs ». Les tâches ΤΊ,..., T n sont des séquences d'instructions exécutables sur les organes 0 1 .., O n du système 1 . Les séquences d'instructions sont, par exemple, relatives à des commandes du système 1 . Lorsque le système 1 est embarqué dans un aéronef, les commandes sont, par exemple, des commandes de changement de trajectoire ou d'atterrissage de l'aéronef.

Le contrôleur 2 interagit avec le système 1 pour contrôler l'état de fonctionnement du système 1 . L'état de fonctionnement d'un système est obtenu par réalisation de tests de défaillances sur le système et permet de déterminer la fiabilité du système.

Dans l'exemple de la figure 1 , le contrôleur 2 est embarqué dans le même équipement que le système 1 contrôlé par le contrôleur 2, par exemple dans un appareil de transport.

Le contrôleur 2 est, par exemple, un ordinateur.

Plus généralement, le contrôleur 2 est un calculateur électronique propre à manipuler et/ou transformer des données représentées comme des quantités électroniques ou physiques dans des registres du contrôleur 2 et/ou des mémoires en d'autres données similaires correspondant à des données physiques dans des mémoires, des registres ou autres types de dispositifs d'affichage, de transmission ou de mémorisation.

Le contrôleur 2 comporte un processeur comprenant une unité de traitement de données, des mémoires et un lecteur de support d'informations.

Le contrôleur 2 est propre à interagir avec un produit programme d'ordinateur comprenant un support lisible d'informations lisible par le contrôleur 2, usuellement par l'unité de traitement de données du contrôleur 2. Sur le support lisible d'information est mémorisé un programme d'ordinateur comprenant des instructions de programme.

Le programme d'ordinateur est chargeable sur l'unité de traitement de données du contrôleur 2 et est adapté pour entraîner la mise en œuvre d'un procédé de contrôle de l'état de fonctionnement du système 1 .

Le fonctionnement du contrôleur 2 en interaction avec le produit programme d'ordinateur et le système 1 est maintenant décrit en référence à la figure 2, qui illustre schématiquement un premier exemple de mise en œuvre d'un procédé de contrôle de l'état de fonctionnement d'un système 1 .

En variante, le contrôleur 2 est une application logicielle implémentée sur les mêmes organes d ,..., O n que les tâches T 1 .., T n.

Initialement, le procédé de contrôle comprend une étape 100 d'allocation, par le contrôleur 2, d'un temps alloué à chaque tâche T 1 .., T n du système 1 .

Le temps alloué de chaque tâche T 1 .., T n est inférieur ou égal au pire temps d'exécution, aussi appelé temps maximal d'exécution, estimé préalablement pour la tâche T 1 .., T n . En particulier, le temps alloué est égal au rapport entre le pire temps d'exécution de la tâche T 1 .., T n et le nombre d'exécution redondante de type temporelle de la tâche T 1 .., T n . Par exemple, le temps alloué pour chaque tâche T 1 .., T n est égal à la moitié ou au tiers du pire temps d'exécution estimé pour la tâche T 1 .., T n .

Le pire temps d'exécution, désigné par la référence WCET dans la suite de la description, est, par exemple, estimé ou borné au préalable par des mesures expérimentales, des méthodes d'analyse statique de code ou des méthodes hybrides.

Le procédé de contrôle comprend également une étape 1 10 de sélection d'une première tâche ΤΊ à exécuter par le premier organe d du système 1 . La première tâche ΤΊ est, par exemple, sélectionnée à partir d'un ordonnancement statique des tâches défini lors de la conception du système 1 . La première tâche ΤΊ est exécutable en un premier temps alloué Ai fixé par le contrôleur 2.

Le procédé de contrôle comprend, ensuite, une étape 120 de première exécution par le premier organe d de la première tâche ΤΊ . A l'issue de la première exécution, un premier résultat est obtenu et une première période de temps -ι est définie. La première période de temps -ι est la durée mise pour l'exécution de la première tâche ΤΊ sur le premier organe d .

Le procédé de contrôle comprend, ensuite, une étape 130 de premier test d'une première condition. La première condition stipule que la première période de temps est inférieure ou égale au premier temps alloué A^

Lorsque la première condition n'est pas remplie, le procédé comprend une étape 140 d'attente pendant un temps d'attente, puis de répétition des étapes de sélection 1 10, de première exécution 120 et de premier test 130. La somme du temps d'attente et de la première période de temps est égale à un multiple du premier temps alloué A^ Une telle somme est supérieure ou égale au pire temps d'exécution WCET de la tâche considérée. Par exemple, la somme est égale à deux fois le premier temps alloué ou à trois fois le premier temps alloué Ai . Lorsque la première condition est remplie, le procédé de contrôle comprend une étape 150 de mise en œuvre d'au moins une deuxième exécution de la même première tâche Ti par le même premier organe d pendant une deuxième période de temps Δ 2 . Chaque deuxième exécution permet d'obtenir un deuxième résultat.

Les deuxièmes exécutions sont des exécutions redondantes de type temporelle de la première tâche T L'exécution redondante de type temporelle d'une tâche est l'exécution séquentielle d'une même tâche sur un même organe.

L'exemple de la figure 3 illustre l'exécution redondante de type temporelle d'une première tâche ΊΊ sur un même premier organe d au cours d'une première période de temps Δ 1 ; puis au cours d'une deuxième période de temps Δ 2 . Le premier temps alloué A^ est dans cet exemple égal au pire temps d'exécution WCET de la première tâche T La première période de temps étant inférieure ou égale au premier temps alloué A 1 ; l'exécution redondante de la première tâche ΤΊ sur le même premier organe d est autorisée.

Dans l'exemple de la figure 4, le premier temps alloué A^ est égal à la moitié du pire temps d'exécution WCET de la première tâche TV Lorsque la première condition est remplie, la première tâche ΤΊ est exécutée deux fois de suite sur le même premier organe d, comme cela est illustré sur le dessin du haut de la figure 4. Lorsque la première condition n'est pas vérifiée, la première tâche ΤΊ est exécutée seulement une fois sur le premier organe d, comme cela est illustré sur le dessin du bas de la figure 4.

Dans l'exemple de la figure 5, le premier temps alloué Ai est égal à un tiers du pire temps d'exécution WCET de la première tâche Lorsque la première condition est remplie, la première tâche est exécutée trois fois de suite sur le même premier organe d, comme cela est illustré sur le dessin du haut de la figure 5. Une telle exécution redondante est appelée « redondance triple ». Lorsque la première condition n'est pas vérifiée, la première tâche est exécutée seulement une fois sur le premier organe d, comme cela est illustré sur le dessin du bas de la figure 5.

Le procédé comprend, ensuite, une étape 160 de comparaison du premier résultat avec chaque deuxième résultat obtenu et de chaque deuxième résultat entre eux.

Par exemple, dans le cas où un premier résultat et deux deuxièmes résultats sont obtenus, si seul le premier résultat est erroné, les comparaisons du premier résultat avec chacun des deuxièmes résultats présenteront des différences. En outre, la comparaison des deuxièmes résultats entre eux permettra de conclure que les deuxièmes résultats sont corrects et que le premier résultat est erroné.

Puis, le procédé comprend une étape 170 de détermination de l'état de fonctionnement du système 1 en fonction de l'étape de comparaison 160. Lorsque les résultats obtenus sont identiques, le système 1 est considéré « fiable » et les étapes 1 1 0 à 160 sont répétées.

Lorsque les résultats obtenus ne sont pas identiques, cela indique qu'une erreur s'est produite lors de l'exécution de la tâche. Le système 1 est alors considéré « défaillant» . Dans ce cas, une alarme est générée pour informer l'opérateur d'une défaillance du système 1 .

En particulier, une simple redondance, c'est-à-dire deux exécutions successives d'une tâche sur un organe, telles qu'illustrées sur les figures 3 et 4, permet de détecter une défaillance du système 1 sans la corriger. Une triple redondance telle qu'illustrée sur la figure 5, permet de détecter une défaillance du système 1 et de la corriger par réalisation d'un vote entre les trois résultats obtenus lorsque deux résultats sont identiques.

En variante, pour les redondances triples ou d'ordres supérieurs, lorsque la première condition n'est pas remplie mais que la première période de temps est inférieure ou égale à une durée prédéterminée pour la tâche, le procédé met quand même en œuvre les étapes 150 à 1 70. La redondance est dite effectuée en « mode dégradé ».

La figure 6 illustre un exemple de redondance mise en œuvre en mode dégradée. Dans cet exemple, le premier temps alloué Ai pour la première tâche ΤΊ est égal à un tiers du pire temps d'exécution WCET et la durée prédéterminée pour la première tâche ΤΊ est égale à la moitié du pire temps d'exécution WCET. Ainsi, bien que la première période de temps -i soit supérieure au premier temps alloué A 1 ; la première tâche T- \ est exécutée une seconde fois sur le même premier organe d . Par contre, la première tâche T- \ ne pourra pas être exécutée une troisième fois. Ainsi, dans le cas d'une redondance triple, un fonctionnement en mode dégradé permet de détecter une défaillance du système 1 , mais ne permet pas de la corriger.

Ainsi, le procédé utilise, d'une part, la redondance temporelle pour adresser les problèmes liés à la dégradation de la fiabilité des composants et, d'autre part, un ordonnancement adaptatif des tâches pour permettre une réduction des marges prises sur le pire temps d'exécution de chaque tâche.

En particulier, des intervalles de temps, appelés « slots » en anglais, sont alloués statiquement à chaque tâche pour permettre une exécution redondante des tâches et une comparaison des résultats obtenus. Dans le cas d'un dépassement d'un intervalle de temps, l'ordonnancement des tâches est modifié dynamiquement pour que les intervalles de temps dédiés aux exécutions redondantes des tâches permettent aux tâches de finir de s'exécuter. Ainsi, l'ordonnancement des tâches est modifié pour que les marges temporelles du pire temps d'exécution soient absorbées dans les intervalles de temps initialement prévus pour la redondance. En outre, l'allocation de premiers temps alloués inférieurs aux pires temps d'exécution permet de réduire les marges de conception.

Ainsi, la mise en œuvre d'une exécution redondante temporelle des tâches

ΤΊ ,..., Τ η du système 1 permet de contrôler l'état de fonctionnement du système 1 et d'améliorer ainsi la fiabilité du système 1 . Les étapes de test permettent de mettre en œuvre l'exécution redondante des tâches T 1 .., T n uniquement lorsqu'une telle redondance ne dégrade pas les performances du système 1 . Cela permet ainsi de respecter les contraintes temporelles des systèmes temps-réel.

Selon un deuxième mode de mise en œuvre, tel qu'illustré sur la figure 7, le procédé de contrôle comprend les étapes suivantes.

Le procédé de contrôle comprend des étapes d'allocation 200 et de sélection 21 0 identiques aux étapes d'allocation 100 et de sélection 1 1 0 du procédé selon le premier exemple de mise en œuvre.

Le procédé de contrôle comprend, ensuite, une étape 220 de première exécution par le premier organe d de la première tâche ΤΊ durant une première période de temps. La première période de temps est inférieure ou égale au premier temps alloué Ai .

Puis, le procédé de contrôle comprend une étape 230 de premier test d'une première condition. La première condition stipule que la première exécution de la première tâche ΤΊ est achevée.

Lorsque la première condition n'est pas remplie, le procédé de contrôle comporte une étape 240 de fin d'exécution de la première tâche ΤΊ dont une partie a été mise en œuvre lors de l'étape 220 de première exécution. A l'issue de la première exécution, un premier résultat est obtenu.

Puis, les étapes de sélection 21 0, de première exécution 220 et de premier test 230 sont répétées.

Lorsque la première condition est remplie, un premier résultat est obtenu à l'issue de la première exécution.

En outre, le procédé comprend une étape 250 de mise en œuvre d'une redondance de type temporelle et/ou spatiale. L'exécution redondante de type spatiale d'une tâche est l'exécution d'une même tâche en parallèle sur des organes différents. La redondance de type temporelle est mise en œuvre de manière similaire au premier exemple de mise en œuvre.

L'étape 250 de mise en œuvre d'une redondance permet d'obtenir au moins un deuxième résultat. L'exemple de la figure 8 illustre l'exécution redondante de type temporelle et spatiale d'une première tâche ΤΊ et d'une deuxième tâche T 2 sur un premier organe d et un deuxième organe 0 2 . Dans cet exemple, la première tâche ΤΊ est exécutée sur le premier organe d en parallèle de la deuxième tâche T 2 exécutée sur le deuxième organe 0 2 . Comme illustré sur le dessin du haut de la figure 8, lorsque la première condition est vérifiée pour chacune des tâches ΤΊ , T 2 , la première tâche ΤΊ , respectivement la deuxième tâche T 2 est exécutée de manière redondante sur le deuxième organe 0 2 , respectivement sur le premier organe d . Comme illustré sur le dessin du bas de la figure 8, la première tâche ΤΊ ne vérifiant pas la première condition n'est pas exécutée de manière redondante sur l'autre organe 0 2 . Par contre, la deuxième tâche T 2 remplissant la première condition est exécutée par une redondance de type temporelle sur le même organe 0 2 .

L'exemple de la figure 9 illustre l'exécution d'une redondance temporelle et d'une triple redondance spatiale d'une première tâche ΤΊ et d'une deuxième tâche T 2 sur trois organes d , 0 2 , 0 3 du système 1 . En premier lieu, la première tâche ΤΊ est exécutée en parallèle par une redondance de type spatiale sur le premier organe d durant une première période de temps et sur le deuxième organe 0 2 durant une deuxième période de temps. Lorsque la première condition est remplie, la première exécution de la première tâche ΤΊ sur le premier organe d permet d'obtenir un premier résultat et la deuxième exécution permet d'obtenir un deuxième résultat.

En parallèle de la première exécution et de la deuxième exécution de la première tâche ΤΊ , la deuxième tâche T 2 est exécutée durant une troisième période de temps sur le troisième organe 0 3 . Puis, le procédé comprend une étape de deuxième test d'une deuxième condition selon laquelle la troisième exécution de la deuxième tâche T 2 est achevée. Lorsque la deuxième condition est remplie, la troisième exécution permet d'obtenir un troisième résultat.

Lorsque la première et la deuxième condition sont remplies, la première tâche ΤΊ est exécutée de manière redondante sur le troisième organe 0 3 permettant d'obtenir un deuxième résultat et la deuxième tâche T 2 est exécutée de manière redondante sur le premier organe d et sur le deuxième organe 0 2 . Une telle situation est illustrée sur le dessin du haut de la figure 9.

Lorsque la première condition n'est pas vérifiée, le procédé finit l'exécution de la première tâche ΤΊ sur le premier organe d mais interrompt la deuxième exécution de la première tâche ΤΊ sur le deuxième organe 0 2 .

Si la deuxième condition est vérifiée, le procédé exécute à nouveau la deuxième tâche T 2 sur le troisième organe 0 3 , ainsi que sur le deuxième organe 0 2 pour lequel l'exécution de la première tâche ΤΊ a été interrompue. Une telle situation est illustrée sur le dessin du milieu de la figure 9.

Si la deuxième condition n'est pas vérifiée, la première tâche ΤΊ et la deuxième tâche T 2 ne sont pas exécutées de manière redondante. Une telle situation est illustrée sur le dessin du bas de la figure 9.

Puis, le procédé de contrôle comprend des étapes de comparaison 260 et de détermination 270 identiques aux étapes de comparaison 160 et de détermination 170 du procédé selon le premier exemple de mise en œuvre.

En particulier, lorsqu'à l'issue de l'étape 250 de mise en œuvre d'une redondance, au moins deux deuxièmes résultats sont obtenus, l'étape de détermination 270 est mise en œuvre par réalisation d'un vote entre le premier résultat et les au moins deux deuxièmes résultats.

Les avantages cités pour le premier exemple de mise en œuvre s'appliquent également pour le deuxième exemple de mise en œuvre.

En outre, la redondance spatiale présente l'avantage de détecter aussi bien des fautes permanentes, affectant plusieurs exécutions, que des fautes transitoires, affectant une seule exécution, et cela à la différence de la redondance temporelle qui permet de détecter uniquement les fautes transitoires. Ainsi, une défaillance permanente d'un organe du système 1 est susceptible d'être détectée.

L'homme du métier comprendra que l'invention ne se limite pas aux modes de réalisation décrits, ni aux exemples particuliers de la description.

Par exemple, la première tâche ΤΊ sélectionnée est décomposable en un premier nombre de sous-tâches et lorsque la première condition n'est pas remplie, le procédé comporte en outre une étape d'exécution d'un deuxième nombre de sous-tâches de la tâche ΤΊ sélectionnée. Le deuxième nombre de sous-tâches est strictement inférieur au premier nombre de sous-tâches. Ainsi comme illustré sur la figure 10, lorsque la première condition n'est pas vérifiée pour une première tâche ΤΊ s'exécutant sur un premier organe 0 1 ; la première tâche ΤΊ est tout de même exécutée de manière redondante sur le même premier organe d mais en mode « dégradé », c'est-à-dire que le temps d'exécution est diminué mais qu'en contre-partie le résultat obtenu est moins précis. L'étape de comparaison consiste alors à comparer l'ordre de grandeur des résultats obtenus avec une tolérance préalablement fixée. Si la comparaison est jugée positive, les résultats obtenus lors de la première exécution, c'est-à-dire lors de l'exécution non dégradée, sont utilisés.

En variante et comme illustré sur la figure 1 1 , lorsque la première condition n'est pas remplie, le procédé comporte en outre une étape de vérification de la pertinence du premier résultat obtenu. Par exemple, l'étape de vérification consiste à vérifier que le premier résultat obtenu est compris dans une plage de valeurs prédéterminées.