FR 2908916 A1 20080523 FR 0610078 A 20061117 1 SYSTEME DE TRAITEMENT D'OBJETS GRAPHIQUES COMPORTANT UN GESTIONNAIRE GRAPHIQUE SECURISE Le domaine de l'invention est celui des systèmes de visualisation devant afficher des informations ou des images ayant des niveaux de criticité différents. Le domaine d'application privilégié est le domaine des cockpits d'aéronefs, mais l'invention peut s'appliquer à tout système de contrôle possédant des écrans de visualisation sur lesquels il doit être possible d'afficher à la fois des informations critiques, importantes pour la sécurité du système et des informations de criticité moindre qui n'ont pas de caractère vital pour la sécurité de l'aéronef, de son équipage et de ses passagers. Généralement, un système de visualisations comprend trois dispositifs principaux comme indiqué en figure 1. Un premier dispositif 1 appelé ressource calcul ou encore CPU, acronyme de Computer Processing Unit permet de réaliser les différents calculs de symbologies à partir des données issues des bases de données et des capteurs de l'aéronef. Dans la suite du texte, on appellera application chaque calcul de symbologies. Un second dispositif 2 relié au premier est appelé ressource graphique ou encore GPU, acronyme de Graphics Processing Unit . Il transforme les applications issues du CPU en signaux vidéo. Le système comprend également une mémoire partagée entre lesdites applications graphiques, chaque application ayant un espace de stockage spécifique dans ladite mémoire. Le dernier dispositif 3 est un ensemble de visualisations pouvant comprendre un ou plusieurs écrans d'affichage. Généralement, pour les applications récentes, il s'agit d'écrans matriciels à cristaux liquides. Sur les écrans de faible taille, seule une application est affichée sur l'écran. Avec l'augmentation de la taille des écrans, plusieurs applications peuvent être amener à partager l'écran et donc à s'afficher simultanément. Ces applications ont souvent des niveaux de criticité différents. Ainsi, dans le domaine aéronautique, on peut avoir à afficher simultanément des informations critiques de pilotage et avoir à présenter simultanément une 2908916 2 carte numérique du terrain survolé, information considérée comme non critique dans la mesure où elle n'est pas susceptible de mettre en péril la sécurité de l'aéronef. Il est nécessaire alors, pour des problèmes de coût et de sécurité, de leur attribuer des niveaux de criticité différents. Les 5 informations de criticité élevée bénéficient de méthodes de développement et de mises en oeuvre particulières leur assurant une fiabilité très élevée alors que les informations de criticité faibles ont une fiabilité moindre, mais au prix de développements moins coûteux. Ainsi, dans le domaine aéronautique, une information critique a un taux de panne de 10-9 par heure de vol, soit une 10 panne par milliard d'heures de vol alors qu'une information non critique a un taux de panne variant de 10"5 à 10-3 par heure de vol, soit une panne possible toutes les cent à dix mille heures de vol. Ces applications sont traitées ou peuvent être traitées par une ressource graphique commune. Il faut alors gérer les problèmes de criticité 15 différents. II existe différentes solutions possibles. Par exemple, on peut réserver l'accès à la ressource graphique aux applications de niveau de criticité le plus élevé. Bien entendu, il n'existe alors aucune souplesse dans la répartition des images sur les ressources graphiques. Une seconde solution consiste à traiter toutes les applications au niveau de criticité le plus 20 élevé. Dans ce cas, les coûts de développement deviennent prohibitifs car les applications non critiques sont développées comme des applications critiques. Une autre solution a été proposée par la société Honeywell et est décrite dans le brevet américain US 6 980 216 dont le titre anglais est 25 Graphics driver and method with time partitioning . Le principe de cette méthode est d'allouer à chaque application une durée temporelle prévisionnelle et de contrôler, lorsque l'application est en cours, si cette durée est atteinte ou dépassée. Cette solution qui présente un progrès sensible sur les solutions précédentes a cependant certains inconvénients. 30 D'une part, elle ne propose qu'une ségrégation temporelle des applications. D'autre part, elle requiert une connaissance détaillée de la chaîne graphique car elle nécessite de disposer d'une prédiction de l'utilisation temporelle de la ressource graphique pour chaque ordre graphique. 2908916 3 L'objet du système selon l'invention est de diminuer ou d'éliminer les inconvénients précédents et de permettre un partage souple de la ressource graphique entre plusieurs applications de niveaux de criticité différents. Le coeur du système est d'ajouter au niveau de la ressource calcul 5 un gestionnaire graphique sécurisé. Plus précisément, l'invention a pour objet un système de visualisation comprenant au moins : - un premier dispositif électronique appelé ressource calcul 10 permettant de faire du traitement d'au moins deux applications graphiques, lesdites applications graphiques étant de niveau de criticité différent, - un second dispositif électronique appelé ressource graphique , permettant de mettre sous forme de signaux vidéo les applications graphiques issues du premier dispositif, 15 - une mémoire partagée entre les applications graphiques, chaque application ayant un espace de stockage spécifique dans ladite mémoire ; - un ensemble de visualisations comprenant des fenêtres d'affichage, chaque application s'affichant dans au moins une fenêtre dédiée 20 à ladite application ; caractérisé en ce que la ressource calcul comprend un gestionnaire graphique sécurisé de niveau de criticité au moins égal au niveau de criticité le plus élevé des applications, ledit gestionnaire ayant des moyens de détection suivants : 25 - violation de la ségrégation des applications dans leur fenêtre d'affichage respective ; dépassement des temps de traitement de chaque application ; - violation des espaces de stockage spécifiques. Avantageusement, les moyens de détection de violation de la 30 ségrégation assurent les fonctions suivantes : -vérification des fenêtres de destination des applications ; limitation de l'affichage de chaque application à leur fenêtre dédiée. Avantageusement, si la ressource calcul dispose d'une période 35 temporelle entre deux rafraîchissements successifs des données, les 2908916 4 moyens de détection des dépassement des temps de traitement de chaque application assure les fonctions suivantes : - allocation à chaque application d'un temps d'utilisation théorique pendant chaque période ; 5 - mesure pour chaque application et pour chaque période temporelle du temps d'utilisation réel ; - calcul, pour l'ensemble des applications, de la somme des temps d'utilisation réels, la somme étant notée temps total d'utilisation ; - comparaison du temps total d'utilisation avec la durée de la 10 période ; - si le temps total d'utilisation est supérieur à la durée de la période, détermination des applications fautives dont le temps d'utilisation réel dépasse le temps d'utilisation théorique ; - sanction des applications fautives. 15 Avantageusement, la mémoire partagée comportant des données dites rémanentes, les moyens de détection de violation des espaces de stockage assure les fonctions suivantes: -interdiction pour toutes les applications de modifier les données rémanentes ; 20 - allocation à chaque application d'un espace de stockage théorique ; - mesure pour chaque application de l'espace de stockage réel ; - comparaison, pour chaque application, de l'espace de stockage réel avec l'espace de stockage théorique ; 25 - si l'espace de stockage réel est supérieur à l'espace de stockage théorique, sanction de l'application fautive. Avantageusement, la sanction de l'application consiste à réinitialiser le système sans l'application fautive. Enfin, les moyens de détection peuvent être réalisés, par logiciel, 30 en langage OpenGL. L'invention sera mieux comprise et d'autres avantages apparaîtront à la lecture de la description qui va suivre donnée à titre non limitatif et grâce aux figures annexées parmi lesquelles : 2908916 5 • la figure 1 représente le synoptique général d'un système de visualisations ; • La figure 2 représente le synoptique général d'un gestionnaire graphique sécurisé selon l'invention. 5 Comme illustré en figure 2, le coeur de l'invention est d'ajouter au niveau de la ressource calcul 1 un gestionnaire graphique 10 sécurisé dont le niveau de criticité est au moins égal au niveau de criticité de l'application I la plus critique. Comme on le verra, ce gestionnaire assure des fonctions 10 relativement simples. II est donc aisé de lui assurer une très grande fiabilité. Ce gestionnaire possède des moyens permettant d'assurer les fonctions de détection suivants : - violation de la ségrégation des applications dans leur fenêtre d'affichage respective, fonction notée 11 sur la figure 2 ; 15 - dépassement des temps de traitement de chaque application, fonction notée 12 sur la figure 2 ; - violation des espaces de stockage spécifiques, fonction notée 13 sur la figure 2 . 20 Ces fonctions seront détaillées ci-dessous. Pour être facilement mis en place, il est nécessaire que le système de visualisation ait les caractéristiques suivantes : - Toutes les applications sont localisées sur la ressource calcul ; - La ressource calcul est ségréguée spatialement et 25 temporellement. Cela signifie que la ressource assure à la fois le partage sécurisé de son espace mémoire et le partage sécurisé de son temps de traitement. Les différentes applications ont des espaces de stockage spécifiques dans la mémoire et elles sont calculées successivement de façon à ne pas interférer entre elles. A titre d'exemple, les systèmes d'exploitation 30 réalisés selon la norme ARINC 653 vérifient parfaitement ces conditions ; - Les ressources calcul et graphique sont à un niveau de criticité au moins égal au niveau de criticité de l'application la plus critique ; - La ressource graphique dispose d'une interface de type OpenGL. Le standard OpenGL, pour OPEN Graphics Library, développé initialement par la société Silicon Graphics, est une spécification qui définit 2908916 6 une API, acronyme d'Application Programming Interface, multi plate-formes pour la conception d'applications générant des images 2D ou 3D. L'interface regroupe des centaines de fonctions différentes qui peuvent être utilisées pour afficher des scènes tridimensionnelles complexes à partir de simples 5 primitives. Ce standard est maintenant utilisé très largement et un sous-ensemble de ce standard, dénommé OpenGL ES, ES pour Embedded System, est normalisé par le Khronos Group pour l'utilisation dans les systèmes embarqués. Khronos Group est un groupement d'industriels dont la mission est l'établissement de standards dans un certain nombre de 10 domaines concernant les applications logiciel. Une application peut s'afficher dans une ou plusieurs fenêtres des écrans de visualisation. Généralement, les règles d'affichage sont les suivantes : 15 - Une application peut avoir plusieurs fenêtres ; - Chaque application peut s'afficher dans toutes les fenêtres qui lui sont associées ; - Une fenêtre ne peut être associée qu'à une seule application. 20 Les moyens de détection de violation de la ségrégation des applications dans leur fenêtre d'affichage respective assurent les fonctions suivantes : vérification des fenêtres de destination des applications ; - limitation de l'affichage de chaque application à leur fenêtre 25 dédiée. Plus précisément, le procédé de détection de violation de la ségrégation comporte les étapes suivantes : - Identification par l'application de la fenêtre dans laquelle elle souhaite s'afficher, c'est-à-dire envoyer ses ordres graphiques ; 30 - Contrôle par le gestionnaire que cette fenêtre fait partie de celles qui sont associées à ladite application ; -Limitation de l'affichage de ladite application à cette fenêtre en associant à l'application un espace de stockage dans la ressource graphique dédié à ladite application ; 2908916 7 - Stockage des ordres graphiques de ladite application dans ledit espace de stockage ; -Autorisation d'affichage par le gestionnaire graphique sécurisé. Les données de l'application sont transférées vers la ressource graphique 5 puis vers la fenêtre sélectionnée de visualisation. Lorsque l'application doit s'afficher dans plusieurs fenêtres différentes, le procédé ci-dessus est réitéré pour chaque fenêtre d'affichage. Dans un système de visualisation, les écrans de visualisation sont 10 rafraîchis à une certaine cadence. Généralement, la durée T séparant deux rafraîchissements est comprise entre 10 millisecondes et 100 millisecondes. Le gestionnaire graphique possède des moyens de détection des dépassement des temps de traitement de chaque application. Ils assurent les fonctions suivantes : 15 - allocation à chaque application I d'un temps théorique TI d'accès à la ressource graphique pendant chaque période ; - mesure pour chaque application I et pour chaque période temporelle du temps d'accès réel t1. Pour mesurer ce temps réel d'utilisation t1, le gestionnaire déclenche une mesure de temps dès qu'il donne accès à la 20 ressource graphique à l'application I. Entre chaque application I, le gestionnaire graphique envoie une commande de synchronisation à la ressource graphique, encore appelé rendez-vous. Cette commande permet de s'assurer que l'ensemble des commandes graphiques a bien été exécuté par la ressource graphique. Dans le cas où le rendez-vous n'est pas atteint 25 avant la fin du temps imparti T,, l'application a dépassé le temps qui lui était alloué et est identifié à posteriori comme telle par le gestionnaire graphique ; -calcul, pour l'ensemble des applications, de la somme SI des temps d'utilisation réels, la somme étant notée temps total d'utilisation ; -comparaison du temps total d'utilisation SI avec la durée de la 30 période T ; - si le temps total d'utilisation est supérieur à la durée de la période, détermination des applications fautives dont le temps d'utilisation réel dépasse le temps d'utilisation théorique ; - sanction des applications fautives. La sanction de l'application 35 fautive peut être, par exemple, l'arrêt immédiat de l'application fautive. 2908916 8 Le gestionnaire graphique assure une troisième fonction de sécurité. Il vérifie qu'une application ne peut perturber les zones mémoires du processeur graphique d'une autre application. A cette fin, le gestionnaire 5 graphique possède des moyens de détection de violation des espaces de stockage qui assurent les fonctions suivantes: - interdiction pour toutes les applications de modifier les données rémanentes ; - allocation à chaque application d'un espace de stockage 10 théorique ; mesure pour chaque application de l'espace de stockage réel ; - comparaison, pour chaque application, de l'espace de stockage réel avec l'espace de stockage théorique ; - si l'espace de stockage réel est supérieur à l'espace de stockage 15 théorique, sanction de l'application fautive, la sanction de l'application peut, par exemple, consister à réinitialiser le système sans l'application fautive. Le gestionnaire graphique sécurisé comporte de nombreux avantages : 20 - Par la multiplication des contrôles dans des domaines très différents comme la gestion de l'espace, du temps et de la ressource mémoire, il permet d'atteindre un très haut niveau de sécurisation des applications graphiques. - Il ne nécessite pas une connaissance détaillée de l'architecture 25 graphique utilisée. On peut ainsi introduire n'importe quel type de processeur graphique sans connaissance détaillée de son architecture ou de son fonctionnement. - Les mesures de l'utilisation des ressources sont réalisées, à posteriori sans faire d'hypothèses. 30 - Il possède une très grande souplesse permettant de conserver le système en marche tant que la ressource graphique n'est pas saturée. REVENDICATIONS 1. Système de visualisation comprenant au moins : - un premier dispositif électronique appelé ressource calcul (1) permettant de faire du traitement d'au moins deux applications graphiques, lesdites applications graphiques étant de niveau de criticité différent ; - un second dispositif électronique appelé ressource graphique (2), permettant de mettre sous forme de signaux vidéo les applications graphiques issues du premier dispositif, - une mémoire partagée entre lesdites applications graphiques, chaque application ayant un espace de stockage spécifique dans ladite mémoire ; - un ensemble de visualisations (3) comprenant des fenêtres d'affichage, chaque application s'affichant dans au moins une fenêtre dédiée à ladite application ; caractérisé en ce que la ressource calcul comprend un gestionnaire graphique sécurisé (10) de niveau de criticité au moins égal au niveau de criticité le plus élevé des applications, ledit gestionnaire ayant des moyens de détection suivants : - violation de la ségrégation des applications dans leur fenêtre d'affichage respective ; -dépassement des temps de traitement de chaque application ; - violation des espaces de stockage spécifiques. 2. Système de visualisation selon la revendication 1, caractérisé 25 en ce que les moyens de détection de violation de la ségrégation assure les fonctions suivantes : - vérification des fenêtres de destination des applications ; - limitation de l'affichage de chaque application à leur fenêtre dédiée. 30 2908916 10 3. Système de visualisation selon la revendication 1, caractérisé en ce que, si la ressource calcul dispose d'une période temporelle (T) entre deux rafraîchissements successifs des données, les moyens de détection des dépassement des temps de traitement de chaque application assure les 5 fonctions suivantes : - allocation à chaque application d'un temps d'utilisation théorique (TI) pendant chaque période ; - mesure pour chaque application et pour chaque période temporelle du temps d'utilisation réel (t,); 10 - calcul, pour l'ensemble des applications, de la somme des temps d'utilisation réels, la somme étant notée temps total d'utilisation (S1); - comparaison du temps total d'utilisation avec la durée de la période ; -si le temps total d'utilisation est supérieur à la durée de la 15 période, détermination des applications fautives dont le temps d'utilisation réel dépasse le temps d'utilisation théorique ; - sanction des applications fautives. 4. Système de visualisation selon la revendication 1, caractérisé 20 en ce que, la mémoire partagée comportant des données dites rémanentes, les moyens de détection de violation des espaces de stockage assure les fonctions suivantes: - interdiction pour toutes les applications de modifier les données rémanentes ; - allocation à chaque application d'un espace de stockage théorique ; mesure pour chaque application de l'espace de stockage réel ; - comparaison, pour chaque application, de l'espace de stockage réel avec l'espace de stockage théorique ; 30' - si l'espace de stockage réel est supérieur à l'espace de stockage théorique, sanction de l'application fautive. 5. Système de visualisation selon les revendications 3 ou 4, caractérisé en ce que la sanction de l'application consiste à réinitialiser le 35 système sans l'application fautive. 2908916 11 6. Système de visualisation selon l'une des revendications précédentes, caractérisé en ce que les moyens de détection sont réalisés, par logiciel, en langage OpenGL. 5