Brevet FR3000248A1 — publié le 20140627

Dispositif et procédé de contrôle d'affichage pour cockpit par partitionnement Domaine technique L'invention concerne le domaine de l'aéronautique et en particulier celui des systèmes de contrôle et d'affichage pour cockpits. Etat de la technique La principale interface centralisée fournissant des fonctions d'affichage et de contrôle dans un cockpit d'avion moderne est connue sous le nom de « planche de bord tout écran » ou en anglais « Control and Display System » (CDS). Ce système est composé de calculateurs, unitairement appelé en anglais « Display Unit » ou (DU), pouvant intégrer ou être couplé chacun à une unité de calcul graphique, appelée en anglais « Graphical Processing Unit » ou (GPU), destinée à assurer les capacités d'affichage du DU. Généralement, le GPU utilisé pour les DUs provient de composants disponibles grand public tels que les « Commercial Off The Shelf » ou (COIS) selon l'anglicisme connu. Ces composants ne sont cependant pas nativement destinés à traiter des données en temps réel, ce qui est le besoin pour l'affichage dans les cockpits. De fait ayant un design figé, certains mécanismes des GPU-COIS sont désactivés pour assurer un comportement déterministe des systèmes. Par ailleurs des limitations existent sur certaines fonctionnalités, comme le partitionnement graphique. Les calculateurs DUs hébergent potentiellement plusieurs partitions. Une partition ou plus généralement le partitionnement (« partitionning » en anglais) est la fonction 2 3000248 qui recouvre le mécanisme permettant de séparer des portions d'un système en laissant suffisamment d'indépendance/d'isolation entre les portions ou partitions de manière à autoriser des niveaux d'assurance de développement (« Development Assurance 5 Level » DAL en anglais) pour chaque partition. Le partitionnement permet de réduire les efforts nécessaires pour les procédés de vérification des systèmes. Lorsqu'une partition évolue, une analyse d'impact est 10 systématiquement faite. En effet, la conception des calculateurs ne garantit pas nécessairement que les impacts d'une évolution restent contenus à la partition concernée. Si une partition se met à se comporter de façon erronée, elle peut, au niveau de la couche graphique, préempter l'exécution de symboles graphiques 15 des autres partitions, pouvant aller jusqu'à leur perte. L'analyse d'impact procède a des tests dits de « non-régression ». Or de tels tests sont fastidieux, pouvant durer plusieurs mois, ce qui a un impact non négligeable sur le coût global. 20 Ainsi, les solutions connues présentant les inconvénients précités, il existe le besoin d'une solution qui s'affranchisse des limitations existantes en proposant un nouveau dispositif et une méthode associée pour contrôler l'affichage graphique pour 25 cockpit. Résumé de l'invention La présente invention a pour objet un dispositif de surveillance et de contrôle de l'exécution de services 30 graphiques de partitions d'unité d'affichage (DU) dans une unité de calcul graphique (GPU). L'invention permet d'améliorer l'isolation et l'indépendance entre partitions au sein d'une unité de calcul graphique GPU 35 embarquée. 3 3000248 Avantageusement, la présente invention contribue à limiter, réduire voire supprimer les analyses et tests de non-régression en cas d'évolution d'une partition. 5 Toujours avantageusement, la présente invention améliore la sûreté des systèmes 'CDS'. La présente invention s'applique avantageusement aux 10 systèmes de contrôle et d'affichage des cockpits d'avion, mais elle est également applicable à tout environnement d'affichage critique. Ainsi, l'invention a pour objet un dispositif de contrôle 15 d'affichage comprenant : - un module de réception pour recevoir au moins une requête d'affichage d'au moins un service graphique pendant l'exécution d'une séquence d'une pluralité de partitions ; - un module de configuration couplé au module de réception 20 des requêtes pour définir la durée de la séquence, l'ordre et la durée de chaque partition ; et - un module de contrôle couplé au module de configuration pour déterminer si la durée d'exécution restante de la partition dont ledit au moins un service graphique dépend est suffisante 25 pour exécuter ou non ledit au moins un service graphique. Dans un aspect particulier de l'invention, le dispositif comprend un compteur pour compter le temps d'exécution de ladite séquence. 30 Dans un aspect particulier de l'invention, le module de contrôle comprend un module de surveillance temporelle pour déterminer la partition en cours d'exécution à réception de ladite au moins une requête d'affichage. 4 3000248 Dans un aspect particulier de l'invention, le module de surveillance temporelle comprend des moyens pour calculer le temps restant avant la fin de l'exécution de la partition en cours d'exécution. 5 Dans un aspect particulier de l'invention, le dispositif comprend en outre des moyens pour stopper l'exécution du service graphique. 10 Avantageusement, les fonctions du module de contrôle sont réalisées par un programme d'ordinateur. Dans un aspect particulier de l'invention, le module de réception est couplé à une unité de traitement central 'CPU' 15 pour recevoir les requêtes d'affichage dudit au moins un service graphique. Dans un aspect particulier de l'invention, l'unité de traitement central exécute une séquence de la pluralité de 20 partitions dans un même ordre mais de durées de partition pouvant être différentes. Dans une implémentation particulière, l'invention a pour objet une unité de traitement graphique 'GPU' pour cockpit qui 25 comprend le dispositif de contrôle et d'affichage dans toutes ses variantes. L'invention a également pour objet un procédé de contrôle d'affichage graphique pour cockpit s'exécutant au sein d'une 30 unité de traitement graphique 'GPU' qui comprend les étapes de : - recevoir une requête d'affichage d'au moins un service graphique pendant l'exécution d'une séquence d'une pluralité de partitions, chaque partition ayant une durée d'exécution définie ; 5 3000248 - identifier la partition dont dépend le service graphique ; - calculer la durée d'exécution restante de la partition identifiée ; - déterminer si la durée d'exécution restante est suffisante 5 pour exécuter ledit au moins un service graphique ; et - exécuter ledit au moins un service graphique ou le stopper. L'invention a également pour objet un « Display Unit » (DU) 10 qui comprend le dispositif de contrôle d'affichage selon l'invention. Description des figures 15 D'autres caractéristiques et avantages de l'invention apparaîtront à l'aide de la description qui suit faite en regard des dessins annexés qui représentent : La figure 1, un exemple d'association de calques graphiques 20 à des partitions ; La figure 2, une représentation schématique du dispositif de l'invention ; 25 La figure 3, un exemple de séquencement de partitions selon les principes de l'invention ; et La figure 4, un logigramme du procédé de contrôle selon les principes de l'invention. 30 Description détaillée de l'invention La figure 1 montre sur un exemple simplifié, une association 6 3000248 de calques graphiques pour des partitions. Chaque calque graphique permet l'affichage de données relatives à un service graphique qui est demandé pendant l'exécution de la partition dont il dépend. 5 Deux calques graphiques (102-1, 102-2) sont associés à une première partition 102, signifiant que lors de l'exécution de la première partition, un calcul relatif aux informations à afficher pour le premier calque (102-1) est effectué pour permettre ensuite l'affichage de ces informations. Puis un 10 calcul relatif aux informations du second calque (102-2) est effectué pour permettre l'affichage des données correspondantes. De manière similaire un calque (104-1) est associé à une deuxième partition 104 et son contenu sera calculé et affiché lors de l'exécution de la deuxième partition. 15 L'homme de l'art comprendra que l'exemple montré est simplifié pour permettre une bonne compréhension des principes de l'invention, mais que cet exemple illustratif n'est en rien limitatif tant du nombre de calques par partition, que du nombre de partitions elles-mêmes. 20 Si lors de l'exécution d'une partition, un comportement erroné ou non attendu se produit, rallongeant alors le temps d'exécution de la partition au sein de l'unité de calcul graphique (GPU), le dispositif de l'invention tel que décrit en 25 détail plus loin permet de stopper cette exécution et de maintenir le temps alloué pour l'exécution de partitions suivantes. Par comportement erroné ou non attendu, l'homme du métier comprendra qu'il peut s'agir de demandes d'accès à un service 30 graphique non autorisé ou d'accès à un service autorisé mais contenant des propriétés interdites ou encore d'accès à un service autorisé mais demandé à un moment non autorisé. Avantageusement, le dispositif de contrôle de l'invention permet d'assurer un temps maximum d'exécution pour chaque calque 7 3000248 au-delà duquel l'exécution s'arrête, soit normalement, soit en étant forcée par le dispositif de l'invention. La figure 2 montre une représentation schématique du 5 dispositif de l'invention. Un calculateur comprend un module CPU (202) qui peut exécuter une pluralité de partitions (202-1, 2022, 202-3, 202-4) selon un ordonnancement donné (P1, P2, Pl, P3). L'unité CPU est couplée à une unité de calcul dédié ou GPU (204) qui reçoit des ordres d'affichage (ou services graphiques) 10 pour les différentes partitions du CPU. Au sein du GPU, un module d'ordonnancement (206) permet l'exécution des fonctions d'affichage. Le GPU comprend en outre, une table de configuration (208) couplée à un module de surveillance (210) et à un compteur (212). 15 De manière préférentielle, la table de configuration est une table statique dont le contenu est chargé au démarrage du calculateur. Elle définit au moins : - la séquence majorante ou référante (« Frame » en anglais), qui fixe l'ordre des partitions dans les séquences à 20 exécuter. Dans l'exemple choisi, l'ordre des partitions (204-1, 204-2, 204-3, 204-4) est (P1, P2, Pl, P3) ; - la durée maximum théorique d'exécution de chaque partition durant la séquence ; et - la durée maximum de chaque service graphique qui pourra 25 être appelé par une partition, durée aussi dénommée en anglais « Worst Case Execution lime » ou (WCET). Bien que non illustré sur la figure, le GPU est couplé à des moyens conventionnels pour permettre l'affichage des services 30 graphiques demandés. Il est à noter que l'ordre des partitions au sein du GPU est identique à celui au sein du CPU mais que la durée d'exécution de chaque partition peut être différente. 8 3000248 Le principe opérationnel du dispositif de l'invention est maintenant décrit en référence à la figure 3 qui montre une séquence d'exécution de quatre partitions. 5 Une première partition (204-1) est exécutée pendant une durée maximum théorique de 11=10.000 micro-secondes. La deuxième partition (204-2) s'exécute sur une durée maximum théorique de 12=20.000 micro-secondes. La troisième partition (204-3) a une durée d'exécution maximum de 13=5.000 micro-secondes et la 10 quatrième partition (204-4) a une durée maximum d'exécution de 14=10.000 micro-secondes. Ainsi la séquence majorante a une valeur totale 'T' de (11+12+13+14 = 45.000 micro-secondes) pour l'exemple choisi. Cette valeur est stockée dans la table de configuration (208). 15 Lors du démarrage du GPU, le compteur (212) du GPU s'arme sur la valeur totale et commence le décompte de la durée d'exécution. Chaque partition a elle-même une tranche de temps ou en anglais « time slice » qui lui est allouée pour l'exécution du 20 ou des services graphiques correspondants. Ainsi, respectivement pour les partitions 204-1 à 204-4, la durée de service est (TS1, 1S2, 1S3, 1S4). Lors de l'exécution d'une partition, les services graphiques 25 demandés s'exécutent, tels que par exemple, les services Si, S2 et S3 pendant la durée TS1. A partir des informations de la table de configuration (208) et de la valeur du compteur (212) à un instant 't', l'unité 30 (210) de surveillance temporelle du GPU vérifie que pour chaque service graphique qui est appelé durant la tranche de temps d'une partition, il reste suffisamment de temps pour l'exécution de la partition avant le passage à la partition suivante. Si le temps restant n'est pas suffisant, l'exécution du service est 9 3000248 stoppée et l'affichage de la partition erronée est inhibé. Le procédé (400) opéré au sein du GPU par le dispositif de l'invention est décrit en référence à la figure 4, en prenant 5 pour exemple les valeurs de la séquence de la figure 3. Le procédé débute pour chaque séquence, quand une requête de service graphique est détectée (402) au cours de l'exécution d'une partition. Par exemple, une demande de service graphique ayant un temps de service requis de 600 micro-secondes est reçue 10 à 500 micro-secondes avant la fin de l'exécution de la troisième partition (204-3). Le procédé permet dans une étape suivante (404) de lire la valeur courante du compteur (212) : le compteur qui décompte depuis le début de la séquence est ici égal à 10.500 micro- 15 secondes, c'est-à-dire la valeur totale de la séquence (45.000 micro-secondes) moins le temps déjà écoulé, égal à (10.000 + 20.000 + 4500 = 34.500 micro-secondes). Puis dans une étape suivante (406), le procédé permet de récupérer dans la table de configuration (208) les informations 20 relatives à la séquence en cours, en particulier le séquencement des partitions (P1, P2, Pl, P3), la durée de chaque partition (TS1, 1S2, 1S3, 1S4) et le temps restant avant la fin de la séquence (soit ici 10.500 micro-secondes). A l'étape suivante (408), à partir des informations lues 25 dans la table et de la valeur du compteur, le procédé permet de déterminer quelle est la partition en cours d'exécution (ici la partition 204-3) puis de calculer le temps restant avant la fin de l'exécution de cette partition (ici 500 micro-secondes). 30 Dans une étape suivante (410), le procédé compare la valeur du temps restant calculé par rapport au temps d'exécution maximum du service appelé (soit 500 micro-secondes par rapport à 600 micro-secondes). Si le temps restant est supérieur au temps d'exécution 10 3000248 maximum du service, alors à l'étape suivante (412), le service est exécuté. Si le temps restant est inférieur au temps d'exécution maximum du service, alors l'exécution est stoppée (414). 5 Puis, le procédé retourne à l'étape initiale (402) jusqu'à la fin du déroulement de la séquence. Ainsi la présente description illustre une implémentation préférentielle de l'invention, mais n'est pas limitative. Un 10 exemple a été choisi pour permettre une bonne compréhension des principes de l'invention, et une application concrète, mais il n'est en rien exhaustif et doit permettre à l'homme du métier d'apporter des modifications et variantes d'implémentation en gardant les mêmes principes. La présente invention peut 15 s'implémenter à partir d'éléments matériel et/ou logiciel. REVENDICATIONS1. L Un dispositif de contrôle d'affichage comprenant : un module (206) de réception pour recevoir au moins une requête d'affichage d'au moins un service graphique pendant l'exécution d'une séquence d'une pluralité de partitions ; un module (208) de configuration couplé au module de réception des requêtes pour définir la durée de la séquence, l'ordre et la durée de chaque partition ; et un module (210, 212) de contrôle couplé au module de configuration pour déterminer si la durée d'exécution restante de la partition dont le ledit au moins un service graphique dépend est suffisante pour exécuter ou non ledit au moins un service graphique. 2. Le dispositif selon la revendication 1 dans lequel le module de contrôle comprend un compteur (212) pour compter le temps d'exécution de ladite séquence. 3. Le dispositif selon la revendication 1 ou 2 dans lequel le module de contrôle comprend un module (210) de surveillance temporelle pour déterminer la partition en cours d'exécution à réception de ladite au moins une requête d'affichage. 4. Le dispositif selon la revendication 3 dans lequel le module de surveillance temporelle comprend des moyens pour calculer le temps restant avant la fin de l'exécution de la partition en cours d'exécution. 12 3000248 5. Le dispositif selon l'une quelconque des revendications 1 à 4 comprenant en outre des moyens pour stopper l'exécution du service graphique. 5 6. Le dispositif selon l'une quelconque des revendications 1 à 5 dans lequel les fonctions du module de contrôle sont réalisées par un programme d'ordinateur. 7. Le dispositif selon l'une quelconque des revendications 1 à 10 6 dans lequel le module de réception est couplé à une unité de traitement central 'CPU' (202) pour recevoir les requêtes d'affichage dudit au moins un service graphique. 8. Le dispositif selon la revendication 7 dans lequel l'unité 15 de traitement central exécute une séquence de la pluralité de partitions dans un même ordre mais de durées de partition pouvant être différentes. 9. Une unité de traitement graphique 'GPU' (204) pour cockpit 20 comprenant le dispositif selon l'une quelconque des revendications 1 à 8. 10.Un procédé de contrôle d'affichage pour cockpit, le procédé s'exécutant au sein d'une unité de traitement graphique 25 'GPU' et comprenant les étapes de : recevoir une requête d'affichage d'au moins un service graphique pendant l'exécution d'une séquence d'une pluralité de partitions, chaque partition ayant une durée d'exécution définie ; 30 identifier la partition dont dépend le service graphique ; calculer la durée d'exécution restante de la partition identifiée ; 13 3000248 déterminer si la durée d'exécution restante est suffisante pour exécuter ledit au moins un service graphique ; et exécuter ledit au moins un service graphique ou le 5 stopper.