FR2925191A1 - Architecture de traitement numerique a haute integrite a multiples ressources supervisees - Google Patents

Architecture de traitement numerique a haute integrite a multiples ressources supervisees Download PDF

Info

Publication number
FR2925191A1
FR2925191A1 FR0708737A FR0708737A FR2925191A1 FR 2925191 A1 FR2925191 A1 FR 2925191A1 FR 0708737 A FR0708737 A FR 0708737A FR 0708737 A FR0708737 A FR 0708737A FR 2925191 A1 FR2925191 A1 FR 2925191A1
Authority
FR
France
Prior art keywords
channels
data
comparison
computer processing
processing method
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0708737A
Other languages
English (en)
Other versions
FR2925191B1 (fr
Inventor
Tarik Aegerter
Patrice Toillon
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales SA
Original Assignee
Thales SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thales SA filed Critical Thales SA
Priority to FR0708737A priority Critical patent/FR2925191B1/fr
Priority to US12/333,541 priority patent/US20090193229A1/en
Publication of FR2925191A1 publication Critical patent/FR2925191A1/fr
Application granted granted Critical
Publication of FR2925191B1 publication Critical patent/FR2925191B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1629Error detection by comparing the output of redundant processing systems
    • G06F11/1641Error detection by comparing the output of redundant processing systems where the comparison is not performed by the redundant processing components
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1683Temporal synchronisation or re-synchronisation of redundant processing components at instruction level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1687Temporal synchronisation or re-synchronisation of redundant processing components at event level, e.g. by interrupt or result of polling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1675Temporal synchronisation or re-synchronisation of redundant processing components
    • G06F11/1679Temporal synchronisation or re-synchronisation of redundant processing components at clock signal level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/18Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits
    • G06F11/183Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components
    • G06F11/184Error detection or correction of the data by redundancy in hardware using passive fault-masking of the redundant circuits by voting, the voting not being performed by the redundant components where the redundant components implement processing functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/845Systems in which the redundancy can be transformed in increased performance

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Hardware Redundancy (AREA)

Abstract

La présente invention concerne les calculateurs dont les erreurs non détectées doivent avoir un taux très faible d'occurrence (10<-9> par unité de temps). Cela concerne en particulier les calculateurs embarqués sur aéronefs exécutant des applications critiques telles que le pilote automatique, la gestion de vol, la gestion de carburant ou l'anti-collision terrain. Deux ou plusieurs voies de calcul sont prévues et les échanges sont autorisés soit à la production soit à la consommation des données par chacune des voies. On peut également prévoir un cycle prédéfini d'autorisation. L'autorisation de transfert de la donnée est donnée en fonction d'une logique de comparaison binaire dans le cas de deux voies. Dans le cas de plus de deux voies, l'autorisation peut être donnée soit par une logique de comparaison binaire soit par une logique majoritaire selon que l'on privilégie l'intégrité ou la disponibilité du système de calcul.

Description

ARCHITECTURE DE TRAITEMENT NUMERIQUE A HAUTE INTEGRITE A MULTIPLES RESSOURCES SUPERVISEES
L'invention se place dans le contexte des unités de traitement numériques de calculateurs avioniques pour lesquels un haut degré d'intégrité des données traitées est requis. La solution proposée suivant plusieurs alternatives ou versions permet d'atteindre des objectifs de 10E-9 par heure de vol de données erronées et non détectées en compatibilité avec les objectifs de sûreté de fonctionnement des applications et fonctions avioniques hébergées par ce type de calculateur. Cette haute intégrité est traditionnellement obtenue en prévoyant plusieurs chaînes de calculateurs sur lesquelles une même application tournera en parallèle. Chaque calculateur comporte son propre processeur doté d'une horloge et de mémoires de travail et est connecté directement au réseau des différents calculateurs qui échangent des données. Un des calculateurs exécute la fonction de supervision. Les deux chaînes sont synchronisées de manière lâche, c'est à dire à quelques cycles applicatifs: quelques 10ms par exemple souvent par des liaisons dédiées. La comparaison des données produites par la chaîne principale se faisant sur une base de fenêtre d'acceptation (intervalle de valeurs acceptées en fonction de la variable considérée). De ce fait Il est possible que certaines erreurs sur des données intermédiaires ne soient pas détectées et puissent avoir des conséquences à terme sur des données qu'elles servent à élaborer. Une erreur sur la donnée critique sera donc détectée plus tardivement, alors qu'elle était déjà présente dans des données intermédiaires depuis plusieurs cycles de calcul. Cette supervision peut donc être qualifiée de lâche et présente un temps de réaction sur erreur élevé. Un autre type d'implémentation existe permettant d'améliorer le temps de réaction. Elle consiste à utiliser une architecture dite dual-lane ou mufti- lane , constituée de deux ou plus de deux processeurs, eux-mêmes étant synchronisés. Les comparaisons peuvent alors s'effectuer systématiquement à chaque traitement élémentaire de données effectué par les deux ou plus processeurs. Le problème posé par cette approche est qu'elle est très gourmande en comparaison, et d'autant plus difficile à implémenter que les processeurs sont rapides. Celles-ci s'appliquent en effet à tous les traitements élémentaires exécutés (code et données) par les processeurs ce qui ne présente pas d'intérêt du point de vue de l'intégrité globale de la fonction et peut nuire à la disponibilité. Il est à noter de plus que l'évolution des architectures des microprocesseurs s'oriente majoritairement vers une intégration au sein de la même puce du processeur, de son bridge et de son contrôleur mémoire, rendant ainsi impossible la détection au niveau des bus locaux aux processeurs puisque enfouis au sein de la puce.
La présente invention résout ce problème par une architecture de traitement 10 optimisée en termes d'intégrité et de disponibilité. A cet effet l'invention divulgue un dispositif de traitement comprenant au moins deux voies de calcul, chacune dotée d'une unité centrale, lesdites voies étant synchronisées entre elles et disposant d'une zone de mémoire vive, comprenant en outre au moins une zone de mémoire d'échange de 15 données entre voies et entre les unités centrales et un réseau externe de communication, et étant caractérisé en ce qu'il comprend en outre un module de supervision supportant de manière paramétrable différents modes de comparaison des données desdites voies. Avantageusement, les zones de mémoire d'échange de données et le 20 module de supervision sont intégrés au sein d'un unique module de gestion des interfaces connecté d'une part à chacune des voies de calcul et d'autre part au réseau externe. Avantageusement, la comparaison des données des deux voies est réalisée par un comparateur bit à bit à structure parallèle comportant un comparateur 25 élémentaire par bit de donnée au sein de groupes de bit de taille paramétrable. Avantageusement, la fonction de comparaison est testable. L'invention divulgue également un procédé de traitement d'au moins une application informatique s'exécutant en parallèle sur au moins deux voies de 30 calcul, chacune dotée d'une unité centrale, organisée en partitions, lesdites voies étant synchronisées entre elles et disposant d'une zone de mémoire vive, ledit procédé comprenant plusieurs étapes d'échange de données entre des zones mémoires d'échange de données entre partitions d'une unité centrale et entre les unités centrales et un réseau externe de communication 35 et étant caractérisé en ce qu'il comprend en outre des étapes de supervision d'un sous-ensemble paramétrable desdits échanges en fonction d'un critère de comparaison des données desdites voies. Avantageusement, le sous-ensemble des échanges soumis à comparaison est l'ensemble des données produites par les voies de calcul.
Avantageusement, le sous-ensemble des échanges soumis à comparaison est l'ensemble des données consommées par les voies de calcul. Avantageusement, le sous-ensemble des échanges soumis à comparaison est l'ensemble des données présentes dans la mailbox de l'abonné réseau à des intervalles de temps choisis.
Avantageusement, le sous-ensemble des échanges soumis à comparaison exclut des modes opératoires programmés de l'application informatique. Avantageusement, le sous-ensemble des échanges soumis à comparaison exclut des données auxquelles est réservé un espace mémoire spécifique. Avantageusement, la comparaison s'effectue bit à bit au sein de chaque mot.
Avantageusement, la comparaison s'effectue bit à bit au sein de chaque bloc d'un nombre prédéterminé de plusieurs mots. Avantageusement, le procédé de traitement informatique de l'invention comprend au plus deux voies. Avantageusement, dans le procédé de traitement inforrnatique de l'invention qui comprend au plus deux voies, le transfert n'est pas autorisé si les données des deux voies qui sont comparées ne sont pas identiques. Avantageusement, dans le procédé de traitement inforrnatique de l'invention qui comprend au plus deux voies, le transfert est autorisé si les données des deux voies qui sont comparées sont identiques, la donnée transmise étant celle d'une des deux voies dont le choix est paramétrable. Avantageusement, le procédé de traitement informatique de l'invention comprend plus de deux voies. Avantageusement, dans le procédé de traitement informatique de l'invention qui comprend plus deux voies, le transfert n'est pas autorisé si aucune voie ne satisfait à un critère de vote entre les données de toutes les voies. Avantageusement, dans le procédé de traitement informatique de l'invention qui comprend plus deux voies, est autorisé le transfert de la donnée de la voie ayant satisfait à un critère de vote entre les données de toutes les voies.
Ainsi, selon l'invention, deux chaînes de traitement de données effectuent les mêmes opérations (par duplication des ressources et exécutions parallèles simultanées des traitements) et une fonction superviseur basée sur un comparateur raccordé en écriture et en lecture à l'ensemble des chaînes vérifie ainsi la cohérence des données calculées et consommées par ces chaînes en particulier vis à vis de leurs communications sur le réseau externe. Un mode de réalisation privilégié consiste à intégrer dans un composant unique la fonction superviseur au sein de la brique de connexion du calculateur avec le réseau externe, dénommée fonction end-system . L'invention présente plusieurs avantages. Tout d'abord, la fonction de supervision peut être réalisée de manière simple par des comparateurs constitués par des ensembles peu coûteux en portes logiques. En outre, il est facile d'intégrer ces comparateurs dans le circuit qui relie les processeurs au réseau de communication qui peut être un réseau Ethernet ou un bus AFDX (Avionics Full DupleX). Enfin, l'architecture est facilement transposable d'une architecture à deux processeurs à une architecture à N processeurs, ce qui permet d'augmenter encore le taux d'intégrité. L'invention sera mieux comprise et ses différentes caractéristiques et avantages ressortiront de la description qui suit de plusieurs exemples de réalisation et de ses figures annexées dont : - Les figures 1A et 1B représentent deux architectures de traitement selon l'art antérieur ; - La figure 2 représente un schéma de principe d'architecture de traitement selon l'invention ; - La figure 3 représente un mode de réalisation de l'architecture de traitement selon l'invention dans le cas de deux voies de traitement ; La figure 4 représente un mode de réalisation du module de supervision selon l'invention dans le cas où ledit module est intégré dans le module de gestion des interfaces du dispositif de traitement ; La figure 5 représente un organigramme simplifié des traitements selon l'invention ; La figure 6 représente différents modes de réalisation de l'invention en fonction des objectifs d'intégrité visés.
Sauf mention contraire, dans la description et les figures, les sigles, acronymes et abréviations ont la signification en français et en anglais indiquée dans le tableau ci-dessous. Sigle/Abréviation Signification AFDX Avionics Full DupleX switched Ethernet AP Auto Pilot ou Pilote automatique COM Partie Commande d'une double chaîne de calcul CPU Central Processing Unit ou Unité Centrale de calcul E/S End System ou Equipement terminal, de connexion réseau FMS Flight Management System ou Système de gestion de vol IMA Integrated Modular Avionics ou Avionique Modulaire Intégrée MAC Medium Access Control ou couche d'accès réseau Mlbx Mailbox ou boîte aux lettres MON Partie Moniteur d'une double chaîne de calcul PCI Personal Computer Interface RAM Random Access Memory ou mémoire volatile RM Redundancy Management ou Gestion de la redondance RX Receive module ou Module de réception SUP Module de supervision TX Transmit module ou Module de transmission UDP User Datagram Protocol La figure 1A présente une architecture de l'art antérieur, couramment mise en oeuvre et permettant d'atteindre l'objectif de haute intégrité. Cette architecture s'appuie sur une association à deux calculateurs avioniques identiques ou très proches chacun à structure interne mono-chaine. L'un des ~o calculateurs exécute l'application avionique (la chaîne COM). Le second calculateur exécute une application avionique image (identique mais sans sortie de données excepté l'information de sanction), et compare ses résultats à ceux de la chaîne COM. En cas d'écart, la chaîne MON désactive la chaîne COM. Plusieurs applications avioniques peuvent s'exécuter sur chacune des chaînes. Les 2 chaînes sont synchronisées de manière lâche, c'est à dire à quelques cycles applicatifs: quelques 10ms par exemple, souvent par des liaisons dédiées. La comparaison des données produites par la chaîne COM porte sur des valeurs critiques et se fait sur une base de fenêtre d'acceptation (plage de valeurs acceptées en fonction de la variable considérée). La comparaison se fait donc a posteriori et après quelques cycles. Cette solution nécessite la présence de deux rnodules complets et leur interconnexion via un réseau de bord.
La figure 1B représente une autre architecture de l'art antérieur permettant elle aussi d'atteindre l'objectif de haute intégrité. Cette architecture s'appuie sur une association à deux unités de traitement à couplage temporel strict. Cette architecture exige une relation temporelle forte entre les deux unités de traitement car aussi bien le code exécuté que les données produites/consommées sont contrôlées/votées. Généralement le contrôle/vote se situe sur le chemin d'accès à la mémoire centrale.
La figure 2 représente une architecture de traitement: selon l'invention. La structure de base utilise deux unités centrales de calcul (CPU) qui pilotent deux voies ou chaînes de calcul. La structure étendue utilise n CPU. L'unité superviseur ù unique - contrôlant l'intégrité ne traite que les données et variables, c'est à dire qu'elle ne traite pas le code exécuté. Cette architecture permet de traiter les données à destination du réseau et aussi les données inter partitions locales à l'équipement. Ce choix permet la comparaison des données inter-partition à une cadence cohérente de leur traitement (à la production ou à la consommation des données) et est applicable tant pour des échanges entre partitions d'un même module qu'entre des partitions réparties sur plusieurs modules. Une architecture multiprocesseur ou multi- fane (i.e. multi voies) permet d'augmenter encore l'intégrité sans compromettre la disponibilité ou d'augmenter la disponibilité à intégrité constante, comme expliqué plus loin dans la description. Le fonctionnernent détaillé de ces architectures est également expliqué plus loin dans la description. II est également possible de débrayer par configuration sécurisée (matérielle et/ou logicielle) du comparateur la fonction de supervision et de faire fonctionner les deux chaînes en mode dual simplex (les deux chaînes n'effectuent pas exactement les mêmes traitements) ou en mode simple simplex (une seule des deux chaînes est active). La solution selon la revendication nécessite une exécution ordonnée des opérations entre les chaînes, et une comparaison bloquante (à fenêtre temporelle d'acceptance) des données homologues, sans que ces données soient nécessairement issues d'une synchronisation au cycle d'horloge près. II est possible d'assurer la synchronisation en prévoyant une horloge commune à toutes les CPU. La fonction de supervision est raccordée en écriture et en lecture à ~o l'ensemble des chaînes (deux ou n) et vérifie la cohérence des données produites ou consommées par ces chaînes, soit, dans le premier cas, avant qu'elles ne soient envoyées sur le réseau soit, dans le deuxième cas, lorsqu'elles sont acheminées du réseau vers les voies de calcul. Le module de supervision se trouve donc avantageusement positionné entre l'interface 15 réseau et les voies de calcul.
La figure 3 décrit l'architecture cible dans le cas de deux voies ou chaînes de traitement (chaîne/voie 100 et chaîne/voie 200), comportant chacune des ressources séparées: 20 une unité centrale de calcul (CPU 110, 210) ; - un bridge (140, 240) constituant l'unité d'interconnexion et de contrôle des données, celui-ci pouvant être intégré ou non dans la CPU ; -une RAM CPU (120, 220) ; une mémoire de stockage non-volatile du code CPU (150, 250) ; 25 - un watchdog (160, 260) qui réalise la surveillance comportementale des CPU. Chaque voie est connectée à une unité de supervision 400 commune pour ces deux voies qui réalise la fonction superviseur des données de ces deux voies suivant plusieurs possibilités ou modes détaillées plus loin. L'unité 30 de raccordement 300 en aval de l'unité de supervision, également commune aux deux voies, réalise la fonction end-system (E:/S) de raccordement externe. Le regroupement de l'unité de supervision avec l'unité de raccordement réseau dans une unité de raccordement et de supervision est une option avantageuse qui permet d'aboutir à une solution intégrée 35 optimisée pour satisfaire les contraintes d'embarquabilité (caractère crucial de l'intégration aux plans de la surface occupée, de la dissipation thermique et du coût, notamment). Une ou plusieurs mémoires d'échange 130, 230, pour le stockage des données échangées entre partitions locales ou distantes sont associées à l'unité de supervision. Ces zones de mémoire d'échange sont positionnées à côté de l'unité de supervision. L'unité de supervision est connectée à chacune des chaînes de façon indépendante par un lien interne d'échanges dédié. La figure 4 décrit de manière plus détaillée le module de supervision dans le mode de réalisation à deux voies. La supervision est basée sur une comparaison simple des données suivant différentes possibilités ou modes: - lors de la production d'une information fournie par les deux voies ; lors de la consommation d'une information par les deux voies ; - de façon autonome, à une fréquence prédéterminée.
La supervision des commandes est basée sur une comparaison simple à la production de cette commande û la notion de consommation de la commande n'ayant pas de sens. Dans le mode de réalisation, ici représenté, où l'unité de raccordement et le module de supervision sont intégrés dans un même circuit, celui-ci est connecté via deux bus de données séparés aux deux processeurs de traitement (liaisons internes d'échange 1 et 2). Ces liaisons seront avantageusement réalisées par des liens numériques série rapides (type PCI express, RapidlO, ...) ou par des liaisons parallèles (PCI, ...). Chacune de ces liaisons étant interne ou non au module de traitement. Cette unité est connectée au réseau externe de communication par une interface standard unique qui ne présente pas de spécificité par rapport aux solutions de l'art antérieur. Le module de gestion des interfaces comprenant, dans le mode de réalisation ici représenté, le module de supervision, est connecté à une ou deux mémoires d'échange (mlbx 130, 230), destinées à stocker de manière temporaire les messages en provenance et en partance vers le réseau (ou en interne module) et les informations de contrôle associées. Le dispositif peut fonctionner avec une ou deux mlbx, l'architecture à deux boîtes aux lettres étant cependant nécessaire dans le mode de fonctionnement privilégié où la comparaison des données s'effectue à la consommation par les voies de calcul. Elles doivent en effet dans ce cas être stockées en provenance du réseau ou d'une autre partition avant comparaison. Les boîtes aux lettres peuvent être réalisées dans une mémoire unique, à zones dédiées ; chaque zone dédiée étant structurée de façon à isoler les données des différentes partitions (allocation par port de communication). Chaque zone mémoire comprend également une zone d'horodatage permettant de garantir que les comparaisons s'effectuent bien sur les données produites ou consommées par les voies au même cycle. Dans le mode à deux voies auquel on s'intéresse ici, le contrôle de l'intégrité repose sur une comparaison de certaines données produites ou ~o consommées par les deux voies. Dans le cas de CPU à 32 bits traitant des mots de données de 32 bits, ce qui est l'état de la technique actuel en avionique, on prévoit 32 unités de comparaison logiques bit à bit. Toute erreur de bit entraîne une erreur de comparaison sur le mot, montrant le caractère exhaustif (non probabiliste) de la comparaison. La performance de 15 la solution n'est pas contrainte ni par la taille du mot ni par la taille du message. La comparaison est avantageusement continue en mode dual, c'est-à-dire qu'elle n'est pas déclenchée. Cette option simplifie la réalisation. Il peut cependant être envisagé de déclencher la comparaison, notamment dans le mode de fonctionnement autonome à cycle prédéterminé. De 20 manière privilégiée, le résultat de la comparaison est pris en compte par le consommateur de l'information, c'est à dire soit par le end system , soit par les chaines. Cette fonction est critique car l'intégrité repose sur la qualité de son comportement ; l'intégrité de cette fonction doit être au moins meilleure de 2 25 décades par rapport à l'objectif global d'intégrité calculateur (10e-11 / 10e-09). Un équivalent de 100 portes logiques et une capacité de testabilité contribue à cet objectif. Une comparaison positive valide l'autorisation du transfert de la donnée alors qu'une comparaison négative l'invalide, selon des modalités exposées plus 30 loin. La fonction d'autorisation peut être appliquée soit à la production soit à la consommation des données, soit de manière autonome. La sélection du mode d'application de la fonction d'autorisation à savoir : à la production des données, à la consommation des données ou de manière autonome peut être géré de différentes façons: • soit il s'agit d'un choix initial d'implémentation figé à la conception ou au design du ou des composants réalisant la brique de connexion ; • soit il s'agit d'une configuration réalisée à l'initialisation du ou des composants réalisant la brique de connexion ; soit en fonction du type d'accès, sachant que de façon privilégiée les accès de type commande pourront être soumis à une application à la production, les transferts de données à une application soit à la consommation des données soit de manière autonome, l'application à la consommation des données étant privilégiée car elle couvre la perte d'intégrité possible durant la phase de stockage. Dans un premier mode, la fonction de supervision est activée de façon temporellement liée à la production par les deux chaînes des données. Deux granularités de comparaison détaillées plus loin, sons: possibles, soit une comparaison mot à mot soit une comparaison de groupes de mots. Après réception du premier mot de la première chaîne, la réception du deuxième mot (a priori identique) de la deuxième chaîne déclenche la comparaison. Une ressource minimale (taille du mot) de stockage associée à chaque chaîne permet d'absorber un éventuel décalage temporel entre la production des deux mots par les deux chaînes. Si la comparaison détecte une différence entre les deux mots, une erreur est levée, la donnée n'est pas mémorisée (donc l'émission sur le réseau ou la consommation locale par les deux chaînes ne seront pas effectuées). Si la comparaison ne détecte pas de différence, une des deux occurrences (identiques) du mot est mémorisée dans la zone d'échange pour consommation ultérieure (émission sur le réseau ou consommation locale par les deux chaînes). Le mot transmis peut être celui d'une des mlbx qui est prédéterminée. Dans un deuxième mode de réalisation la fonction de supervision est appliquée à la consommation de la donnée soit par l'abonné réseau soit par les chaînes de calcul. Ce mode de réalisation est privilégié dans la mesure où, in fine, ce sont les données consommées qui doivent être garanties intègres. La consommation est réalisée soit par l'abonné réseau selon une table qui lui est propre et qui est ou non temporellement liée à la production soit par les chaînes de calcul. La comparaison est liée temporellement à la consommation: sur demande d'émission d'un message de l'abonné réseau, la fonction de comparaison est appliquée. II faut que les données aient été produites par chacune des chaînes (information de Refresh ), la comparaison ne pouvant s'effectuer que sur des données homologues antérieurement produites par les chaînes de traitement. Dans le cas où la(les) donnée(s) n'auraient pas été rafraîchies, la fonction de comparaison ne sera pas déclenchée. Il n'y aura donc pas d'émission par l'abonné réseau. Les informations émises sur le réseau seront nécessairement des informations rafraîchies et comparées. La consommation par les chaînes de calcul est basée sur le même principe. Dans un troisième mode de réalisation, la fonction de supervision est exécutée de façon autonome par l'abonné réseau. Ce mode de réalisation permet de relâcher la contrainte de synchronisation des voies. Il oblige cependant à prévoir un cycle de comparaison cohérent avec les occurrences des traitements de façon à comparer des données identiques, c'est à dire issue du même cycle de production. La fonction de supervision est appliquée de façon asynchrone du fonctionnement des deux chaînes et du E/S. En mode émission réseau, les deux chaînes émettent chacune leur message vers leur mailbox et en indiquent le rafraîchissement. Le superviseur détecte suivant son cycle propre le rafraîchissement de deux messages homologues et en effectue la comparaison. Sur comparaison correcte, une indication d'autorisation d'émission est fournie pour le E/S. Le E/S sélectionne ensuite une des deux occurrences du message consolidé. En mode réception réseau, le E/S stocke deux occurrences du message chacune dans une mailbox. Le superviseur détecte suivant son cycle propre le rafraîchissement de deux messages homologues et en effectue la comparaison. Sur comparaison correcte, une indication d'autorisation de consommation est fournie pour les deux chaînes. Chacune des chaînes de traitement ira acquérir son occurrence propre sans que le superviseur n'intervienne moyennant le fait que la comparaison se soit effectuée. D'autre part, il apparaît soit durant certains modes opératoires de l'équipement (par exemple pour un mode transitoire de synchronisation des 2 chaînes), soit pour certaines variables (information de status, de Bite, certaines I/O) la nécessité de ne pas activer la comparaison pour valider l'autorisation du transfert.
Dans ce cas l'autorisation de transfert doit être configurable pour que certaines données puissent être différentes entre les deux chaînes de calcul, par exemple au démarrage, ou lors de l'envoi de messages d'erreur ù certains erreurs n'arrivant temporellement que sur une voie (ex : panne d'un boîtier mémoire). L'activation ou non de la fonction de transfert se fera alors soit par programmation d'un mode global de fonctionnement (par exemple mode de démarrage versus mode de fonctionnement), soit par tri sur les données. Le tri sera préférentiellement effectué selon l'adressage en mémoire de la variable (propriété d'une variable et ce variable par variable: avec ou sans comparaison), un espace mémoire spécifique étant réservé aux données non concernées par la supervision. Du point de vue du module E/S, le fonctionnement du comparateur peut être décrit de la manière suivante en émission et en réception. En mode émission réseau, le E/S effectue une demande uniquement de lecture d'une donnée (au plus d'une taille correspondant à une trame ou fragment) d'un port. Le superviseur effectue sur réception de cette demande la lecture des deux informations produites par les deux chaînes (accès dans deux zones d'échange). Le superviseur effectue la comparaison des données (data/adresse fragment) récupérées dans les deux zones d'échange. Sur comparaison correcte, une des deux occurrences du fragment est envoyée au E/S pour émission. En mode réception réseau, le EiS effectue son travail de redundancy management , c'est à dire sélectionne la première trame arrivée bonne (si RM désactivé: les 2 trames seront stockées). Le E/S effectue une demande de stockage au superviseur de chaque fragment reçu Le superviseur peut fonctionner de deux manières. Soit il duplique la demande de stockage vers les mailbox. Chaque chaîne effectue une demande de lecture du message, les demandes seront comparées. A la remontée, les deux occurrences récupérées par le superviseur seront comparées avant fourniture (comparaison croisée). Soit il stocke l'occurrence correspondante à la demande dans la mailbox. Chaque chaîne effectue une demande de lecture du message, les demandes seront comparées. A la remontée, l'occurrence récupérée par le superviseur est directement fournie aux deux chaines. Au lieu d'effectuer les comparaisons mot à mot, il est possible de les réaliser 35 par groupe de mots. Le nombre de mots par groupe doit être choisi en fonction du niveau de performance souhaité (en intégrité/disponibilité et vitesse de traitement). Dans le cas d'une comparaison par groupes de mots, le processus est déclenché après réception des deux chaînes du dernier mot d'un groupe. Une ressource minimale (taille du groupe de mots) de stockage associée à chaque chaîne permet d'absorber un éventuel décalage temporel entre la production des deux groupes de mots. Si la comparaison détecte une différence entre les deux groupes, une erreur est levée, les données ne sont pas mémorisées (donc l'émission sur le réseau ou la consommation locale par les deux chaînes ne seront pas effectuées). Si la comparaison ne détecte pas de différence, un des deux groupes (identiques) de mots est mémorisé dans la zone d'échange pour consommation ultérieure (émission sur le réseau ou consommation locale par les deux chaînes). Celui des groupes qui est transmis peut être celui d'une des mlbx prédéterminée.
La figure 5 représente un organigramme simplifié des traitements. Le déroulement temporel est schématisé par les deux axes sur lesquels se positionnent l'application exécutée respectivement par les CPU 100, 200. Applil_1 est une application exécutée sur la CPU 100 qui nécessite l'envoi ou la réception d'un message Msg1_1 vis à vis d'une autre application locale ou distante. Identiquement, Appli2_1 est une application exécutée sur la CPU 200 qui nécessite l'envoi ou la réception d'un message Msg2_1, normalement identique à Msgl_1, vis à vis d'une autre application. Cette partie gauche de la figure illustre le mode de fonctionnement dans lequel la fonction de supervision est activée à la production des données par les chaînes de calcul. La partie droite de la figure illustre le mode de réalisation dans lequel la fonction de supervision est activée à la consommation des données par les chaînes de calcul. Dans le premier cas, le transfert vers la mlbx est effectué par l'instruction COPY. Dans le deuxième cas, l'appel de la variable sur la mlbx est effectué par l'instruction READ. Dans les deux cas, sont fournis au comparateur : l'instruction, l'adresse dans la mlbx et la donnée elle-même. Ces deux enregistrements sont comparés bit à bit. Dans les cas où la comparaison est positive, la donnée est transférée. Lorsqu'il s'agit de fournir une donnée produite, l'une des deux occurrences du message û celle désignée par défaut û est envoyée à l'abonné réseau pour émission. Lorsqu'il s'agit de consommer une donnée appelée d'une autre application, la mlbx désignée par défaut est utilisée pour envoi de la donnée aux deux chaînes. Dans les cas où la comparaison est négative, un message d'erreur est envoyé aux deux CPU dont les applications contiennent les routines nécessaires pour traiter l'incident (ABORT par exemple). La figure 6 représente différents modes de réalisation de l'invention qui se différentient par le nombre de voies de calcul et par la manière dont est mise en oeuvre la fonction de supervision. Dans une architecture à deux voies (partie gauche de Ila figure), il peut être décidé de fonctionner en mode dual simplex , c'est à dire en n'exécutant l'application que sur une des deux voies de calcul. Dans ce cas, la fonction de supervision est débrayée. Dans une architecture à plus de deux voies, il est possible de se baser soit sur une comparaison par égalité stricte bit à bit des données de toutes les voies, soit de se baser sur vote majoritaire sur les données des différentes voies. Le premier mode permet d'améliorer l'intégrité vis à vis d'une structure à deux voies. Le second mode permet d'augmenter la disponibilité tout en proposant une intégrité au moins égale à celle de l'architecture à deux voies. L'architecture physique du système n'est pas différente de l'architecture à deux voies. Le comparateur aura une des architectures décrites ci-dessus. II faudra prévoir une boîte aux lettres de taille suffisante pour permettre la comparaison des données à la consommation, la taille de la mailbox pour une architecture à n voies étant égale à n fois celle d'une architecture mono-voie. Ces différents modes de réalisation à deux ou plus de deux voies entrent 25 tous dans le champ de la protection revendiqué par le demandeur. 30

Claims (19)

REVENDICATIONS
1. Dispositif de traitement informatique comprenant au moins deux voies de calcul (100, 200) , chacune dotée d'une unité centrale (110, 210), lesdites voies étant synchronisées entre elles et disposant d'une zone de mémoire vive (120, 220), comprenant en outre au moins une zone (130, 230) de mémoire d'échange de données entre voies et entre les unités centrales et un réseau externe de communication (300), et étant caractérisé en ce qu'il comprend en outre un module de supervision (400) supportant de manière paramétrable différents modes de comparaison des données desdites voies.
2. Dispositif de traitement informatique selon la revendication 1 caractérisé en ce que lesdites zones de mémoire d'échange de données et ledit module de supervision sont intégrés au sein d'un unique module de gestion des interfaces connecté d'une part à chacune des voies de calcul et d'autre part au réseau externe.
3. Dispositif de traitement informatique selon la revendication 1 caractérisé en ce que la comparaison des données des deux voies est réalisée par un comparateur bit à bit à structure parallèle comportant un comparateur élémentaire par bit de donnée au sein de groupes de bit de taille paramétrable.
4. Dispositif de traitement informatique selon la revendication 3 caractérisé en ce que la fonction de comparaison est testable.
5. Système de calcul comprenant au moins un dispositif de traitement informatique selon la revendication 1.
6. Procédé de traitement d'au moins une application informatique s'exécutant en parallèle sur au moins deux voies de calcul, chacune dotée d'une unité centrale, organisée en partitions, lesdites voies étant synchronisées entre elles et disposant d'une zone de mémoire vive, ledit procédé comprenant plusieurs étapes d'échange de données entre des zones mémoires d'échange de données entre partitions d'une unité centrale et entre les unités centrales et un réseau externe de communication et étant caractérisé en ce qu'il comprend en outre des étapes de supervision d'un sous-ensemble paramétrable desditséchanges en fonction d'un critère de comparaison des données desdites voies.
7. Procédé de traitement informatique selon la revendication 6 caractérisé en ce que le sous-ensemble des échanges soumis à comparaison est l'ensemble des données produites par les voies de calcul.
8. Procédé de traitement informatique selon la revendication 6 caractérisé en ce que le sous-ensemble des échanges soumis à comparaison est l'ensemble des données consommées par les voies de calcul.
9. Procédé de traitement informatique selon la revendication 6 caractérisé en ce que le sous-ensemble des échanges soumis à comparaison est l'ensemble des données présentes dans la mailbox de l'abonné réseau à des intervalles de temps choisis.
10. Procédé de traitement informatique selon la revendication 6 caractérisé en ce que le sous-ensemble des échanges soumis à comparaison exclut des modes opératoires programmés de l'application informatique.
11. Procédé de traitement informatique selon la revendication 6 caractérisé en ce que le sous-ensemble des échanges soumis à comparaison exclut des données auxquelles est réservé un espace mémoire spécifique.
12. Procédé de traitement informatique selon la revendication 6 caractérisé en ce que la comparaison s'effectue bit à bit au sein de chaque mot.
13. Procédé de traitement informatique selon la revendication 6 caractérisé en ce que la comparaison s'effectue bit à bit au sein de chaque bloc d'un nombre prédéterminé de plusieurs mots.
14. Procédé de traitement informatique selon la revendication 6 caractérisé en ce qu'il comprend au plus deux voies.
15. Procédé de traitement informatique selon la revendication 14 caractérisé en ce que le transfert n'est pas autorisé si les données des deux voies qui sont comparées ne sont pas identiques.
16. Procédé de traitement informatique selon la revendication 14 caractérisé en ce que le transfert est autorisé si les données des deuxvoies qui sont comparées sont identiques, la donnée transmise étant celle d'une des deux voies dont le choix est paramétrable.
17. Procédé de traitement informatique selon la revendication 6 caractérisé en ce qu'il comprend plus de deux voies.
18. Procédé de traitement informatique selon la revendication 17 caractérisé en ce que le transfert n'est pas autorisé si aucune voie ne satisfait à un critère de vote entre les données de toutes les voies.
19. Procédé de traitement informatique selon la revendication 17 caractérisé en ce qu'est autorisé le transfert de la donnée de la voie ~o ayant satisfait à un critère de vote entre les données de toutes les voies.
FR0708737A 2007-12-14 2007-12-14 Architecture de traitement numerique a haute integrite a multiples ressources supervisees Active FR2925191B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0708737A FR2925191B1 (fr) 2007-12-14 2007-12-14 Architecture de traitement numerique a haute integrite a multiples ressources supervisees
US12/333,541 US20090193229A1 (en) 2007-12-14 2008-12-12 High-integrity computation architecture with multiple supervised resources

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0708737A FR2925191B1 (fr) 2007-12-14 2007-12-14 Architecture de traitement numerique a haute integrite a multiples ressources supervisees

Publications (2)

Publication Number Publication Date
FR2925191A1 true FR2925191A1 (fr) 2009-06-19
FR2925191B1 FR2925191B1 (fr) 2010-03-05

Family

ID=39563499

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0708737A Active FR2925191B1 (fr) 2007-12-14 2007-12-14 Architecture de traitement numerique a haute integrite a multiples ressources supervisees

Country Status (2)

Country Link
US (1) US20090193229A1 (fr)
FR (1) FR2925191B1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10715279B2 (en) 2016-06-21 2020-07-14 Thales Methods of guaranteed reception of common signals in an avionics system comprising a plurality of electronic computers

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR2914519B1 (fr) * 2007-03-26 2009-06-12 Airbus France Sas Procede de controle d'integrite des donnees dans un reseau afdx.
FR2943036B1 (fr) * 2009-03-11 2011-04-15 Airbus France Systeme distribue de commande de vol implemente selon une architecture avionique modulaire integree.
JP5699057B2 (ja) * 2011-08-24 2015-04-08 株式会社日立製作所 プログラマブルデバイス、プログラマブルデバイスのリコンフィグ方法および電子デバイス
US9400722B2 (en) 2011-11-15 2016-07-26 Ge Aviation Systems Llc Method of providing high integrity processing
WO2015089637A1 (fr) * 2013-12-19 2015-06-25 Thales Canada Inc. Procédé et système pour la gestion d'une pluralité de fonctions critiques dans un aéronef
WO2016087175A1 (fr) * 2014-12-01 2016-06-09 Continental Teves Ag & Co. Ohg Système de calcul pour un système de véhicule automobile
US9734006B2 (en) * 2015-09-18 2017-08-15 Nxp Usa, Inc. System and method for error detection in a critical system
US10528077B2 (en) * 2017-11-21 2020-01-07 The Boeing Company Instruction processing alignment system
US10599513B2 (en) 2017-11-21 2020-03-24 The Boeing Company Message synchronization system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0755010A1 (fr) * 1995-07-19 1997-01-22 Sextant Avionique Dispositif d'interface entre un calculateur à architecture redondante et un moyen de communication
DE19809089A1 (de) * 1998-02-25 1999-08-26 Siemens Ag Synchronisations- und/oder Datenaustauschverfahren für sichere, hochverfügbare Rechner und hierzu geeignete Einrichtung
EP1469390A2 (fr) * 2003-04-18 2004-10-20 Nec Corporation Système de traitement de données tolérant aux fautes
GB2425380A (en) * 2005-04-19 2006-10-25 Hewlett Packard Development Co Trading off reliability and performance in a multiprocessor system

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4965717A (en) * 1988-12-09 1990-10-23 Tandem Computers Incorporated Multiple processor system having shared memory with private-write capability
US5295258A (en) * 1989-12-22 1994-03-15 Tandem Computers Incorporated Fault-tolerant computer system with online recovery and reintegration of redundant components
FR2686991A1 (fr) * 1992-02-05 1993-07-30 Sextant Avionique Procede, systeme et processeur de communication entre une pluralite de sous-ensembles d'un equipement.
KR100234504B1 (ko) * 1995-09-18 1999-12-15 포만 제프리 엘 선택된 고장에 대한 고장정보를 포착하는 집적회로의 테스트 방법 및 내장된 자기 테스트 장치
FR2797964B1 (fr) * 1999-08-23 2002-03-29 Thomson Csf Sextant Dispositif de controle securise de commutation de donnees
US6543016B1 (en) * 1999-11-04 2003-04-01 Agere Systems Inc. Testing content-addressable memories
DE10040389A1 (de) * 2000-08-18 2002-03-07 Infineon Technologies Ag Hochgeschwindigkeitsprozessor
JP3537087B2 (ja) * 2000-09-29 2004-06-14 Necエレクトロニクス株式会社 半導体装置及び半導体装置の検査方法
FR2819598B1 (fr) * 2001-01-16 2003-04-11 Thomson Csf Dispositif de synchronisation tolerant aux pannes pour reseau informatique temps reel
US7065672B2 (en) * 2001-03-28 2006-06-20 Stratus Technologies Bermuda Ltd. Apparatus and methods for fault-tolerant computing using a switching fabric
US7194556B2 (en) * 2001-03-30 2007-03-20 Intel Corporation Method and apparatus for high accuracy distributed time synchronization using processor tick counters
GB2377024A (en) * 2001-06-29 2002-12-31 Motorola Inc Fault tolerant measurment data outputting system
US20040122846A1 (en) * 2002-12-19 2004-06-24 Ibm Corporation Fact verification system
US8799706B2 (en) * 2004-03-30 2014-08-05 Hewlett-Packard Development Company, L.P. Method and system of exchanging information between processors
GB0411054D0 (en) * 2004-05-18 2004-06-23 Ricardo Uk Ltd Fault tolerant data processing
JP4168403B2 (ja) * 2004-12-21 2008-10-22 日本電気株式会社 フォールトトレラントシステム、これで用いる制御装置、アクセス制御方法、及び制御プログラム
US8595557B2 (en) * 2005-02-23 2013-11-26 International Business Machines Corporation Method and apparatus for verifying memory testing software

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0755010A1 (fr) * 1995-07-19 1997-01-22 Sextant Avionique Dispositif d'interface entre un calculateur à architecture redondante et un moyen de communication
DE19809089A1 (de) * 1998-02-25 1999-08-26 Siemens Ag Synchronisations- und/oder Datenaustauschverfahren für sichere, hochverfügbare Rechner und hierzu geeignete Einrichtung
EP1469390A2 (fr) * 2003-04-18 2004-10-20 Nec Corporation Système de traitement de données tolérant aux fautes
GB2425380A (en) * 2005-04-19 2006-10-25 Hewlett Packard Development Co Trading off reliability and performance in a multiprocessor system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10715279B2 (en) 2016-06-21 2020-07-14 Thales Methods of guaranteed reception of common signals in an avionics system comprising a plurality of electronic computers

Also Published As

Publication number Publication date
US20090193229A1 (en) 2009-07-30
FR2925191B1 (fr) 2010-03-05

Similar Documents

Publication Publication Date Title
FR2925191A1 (fr) Architecture de traitement numerique a haute integrite a multiples ressources supervisees
US10812284B2 (en) IoT provisioning service
EP3189380B1 (fr) Architecture bi-voies avec liaisons ccdl redondantes
US7779244B2 (en) Multi-socket boot
EP3189381B1 (fr) Architecture bi-voies
EP2998877A2 (fr) Serveur comprenant une pluralité de modules
EP2438528A1 (fr) Procédé et dispositif de chargement et d&#39;exécution d&#39;instructions à cycles déterministes dans un système avionique multi-coeurs ayant un bus dont le temps d&#39;accès est non prédictible
WO2011070262A1 (fr) Controleur d&#39;acces dircet a une memoire pour le transfert direct de donnees entre memoires de plusieurs dispositifs peripheriques
EP3204867B1 (fr) Système embarqué sur puce à haute sûreté de fonctionnement
US10055568B1 (en) Encryption authorization dongle having volatile memory
EP2965260A1 (fr) Procede et dispositif de filtrage de transactions pour systeme sur puce
WO2020256831A1 (fr) Redirection d&#39;informations de contrat intelligent vers une version mise à jour d&#39;un contrat intelligent
WO2015145382A1 (fr) Composant electronique a reponse deterministe
WO2011067507A1 (fr) Systeme autorisant des transferts directs de donnees entre des memoires de plusieurs elements de ce systeme
US11546171B2 (en) Systems and methods for synchronizing anonymized linked data across multiple queues for secure multiparty computation
FR3021480A1 (fr) Commutateur de trames numeriques
US10956249B2 (en) Handling clock errors on failure of interrupt mechanism
FR3057127A1 (fr) Processeur adapte pour un reseau ethernet commute deterministe
FR3018977A1 (fr) Structure de controleur d&#39;echanges de messages et de communications generique pour des systemes de communication avioniques rebondants
FR2978850A1 (fr) Dispositif pour echanger des donnees entre au moins deux applications
FR3079695A1 (fr) Analyse et filtrage de donnees dans un systeme de transmission de donnees
FR2935056A1 (fr) Systeme de traitement de donnees disposant de moyens de traitement repartis pour exploiter des latences intrinseques du systeme
FR3018976A1 (fr) Structure de controleur d&#39;echanges de messages et de communications generique pour des systemes de communication avioniques rebondants
FR2996935A1 (fr) Procede et dispositif de traitement d&#39;interruptions dans un systeme multiprocesseur
EP1493083A2 (fr) Systeme reconfigurable de controle base sur la mise en oeuvre materielle de graphes de petri

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11

PLFP Fee payment

Year of fee payment: 13

PLFP Fee payment

Year of fee payment: 14

PLFP Fee payment

Year of fee payment: 15

PLFP Fee payment

Year of fee payment: 16

PLFP Fee payment

Year of fee payment: 17