Brevet FR2978575A1 — publié le 20130201

La présente invention appartient au domaine des procédés de contrôle qualité en électronique. Elle vise en particulier un procédé de caractérisation de la sensibilité d'un micro-processeur soumis à des perturbations lorsqu'une application est exécutée sur ce micro-processeur. Préambule et art antérieur Les micro-processeurs sont de plus en plus couramment utilisés dans des environnements agressifs, et en particulier dans des environnements qui les soumettent à diverses perturbations (rayonnements cosmiques, électromagnétique etc.), notamment lors d'utilisations dans des aéronefs ou satellites. Pour des aspects de sureté de fonctionnement, il est donc souhaitable de connaître leur sensibilité vis-à-vis de ces perturbations, cette sensibilité étant alors définie comme la probabilité de fonctionnement incorrect d'une application type. Et encore plus particulièrement, il serait souhaitable de connaître cette 15 sensibilité en fonction de l'application logicielle en cours d'exécution par le microprocesseur. Il est connu que la principale source de défaillance des micro-processeurs vis-à-vis des perturbations de type rayonnements ionisants est la corruption des variables stockées dans les mémoires internes et amenées à être utilisées. Ces mémoires 20 représentent en effet la majeure partie de la surface d'un micro-processeur, et subissent donc l'essentiel des rayonnements reçus par le processeur. Certaines parties de la mémoire ne sont en revanche pas toujours utilisées, et leur corruption n'a pas d'effets. Pour évaluer le taux d'erreur réel, il convient donc de calculer précisément la quantité de données critiques d'un logiciel et leur durée de vie 25 au sein des éléments de mémorisation interne. Une des solutions envisageables consiste à modifier les simulateurs des processeurs cibles, pour permettre l'observation du contenu des mémoires internes. En effet, de tels simulateurs, mis en oeuvre sous forme de logiciels tournant sur un micro-ordinateur de type PC, qui simulent le comportement fonctionnel d'un 30 processeur, sont disponibles aux utilisateurs des micro-processeurs auprès des fabricants de ces micro-processeurs. Ces simulateurs sont typiquement utilisés par l'industrie pour évaluer les performances d'une architecture de micro-processeur avant sa disponibilité matérielle, ce qui réduit le temps de développement d'une application nouvelle utilisant ce processeur. 35 Néanmoins, cette solution nécessite de disposer des codes sources des simulateurs, c'est-à-dire d'informations relatives aux descriptions techniques des microprocesseurs, dont seuls disposent usuellement les concepteurs des processeurs, ce qui est rarement le cas pour des utilisateurs finaux. Exposé de l'invention L'invention vise un procédé de conception d'un équipement électronique comportant au moins un composant électronique, ledit composant étant destiné à exécuter une application dynamique et potentiellement soumis à des perturbations, ladite application utilisant des éléments internes de ce composant. Le procédé comporte une phase de caractérisation d'un paramètre de sensibilité du composant à ces perturbations. Cette phase comporte : - une étape d'exécution de l'application logicielle sur un moyen de reproduire le fonctionnement du composant, et - une étape de surveillance, lors de cette exécution, de signaux spécifiques dit signaux de performance (ou signaux de profilage), liés à des accès à des éléments du composant de type prédéterminé, et une étape de déduction de cette surveillance d'un temps de séjour dans ces éléments, de données de calcul de l'application logicielle. Le but est d'évaluer la durée de vie de ces variables critiques lors de l'exécution de ladite application, sur ledit composant. L'étape d'exécution de l'application logicielle correspond à l'installation du simulateur, de l'émulateur ou du composant. Préférentiellement, le moyen de reproduire le fonctionnement du composant est un simulateur logiciel dudit composant, et le procédé comporte une étape d'analyse des signaux fournis par le simulateur de ce composant lors de l'exécution d'une application sur le composant. Alternativement, le moyen de reproduire le fonctionnement du composant est le composant lui-même, modifié pour exécuter le présent procédé. Préférentiellement, on analyse des signaux fournis par le simulateur de ce composant lors de l'exécution d'une application sur le composant. Cette disposition utilise des signaux disponibles normalement à l'utilisateur du simulateur, et ne nécessite pas de modification de celui-ci selon des informations confidentielles du constructeur. Plus particulièrement, dans une mise en oeuvre du présent procédé, les signaux surveillés sont des signaux de performances et d'accès aux éléments de mémorisation en lecture et écriture. Dans un mode de mise en oeuvre particulier, le composant est un micro-processeur, les éléments de mémorisation étant les mémoires internes dudit microprocesseur. Les éléments internes du processeur peuvent être les mémoires cache de niveau L1, L2 ou L3 et des mémoires connues sous le nom de TLB (de l'anglais "translation lookaside buffer"). En effet, les éléments de mémorisation constituant la majeure partie de la surface du composant, leur sensibilité à des perturbations est un bon indicateur de la sensibilité globale du composant étudié. Pour chacun des accès à ces différents éléments de mémorisation, les signaux surveillés sont des signaux, générés lors de la simulation, indiquant la présence ou non, dans ces éléments de mémorisation, de données d'exécution du programme. Dans ce mode de mise en oeuvre, les signaux utilisés sont de type "accès réussi / accès manqué", c'est-à-dire sont les signaux renvoyés par le simulateur et caractérisant un accès réussi ou non en écriture ou en lecture à un élément de mémorisation. Un accès réussi signifie que la donnée attendue est dans la mémoire interne. Un accès manqué signifie que la donnée attendue n'est pas dans la mémoire interne, il faut donc aller chercher la donnée dans un autre élément mémoire. Les informations de performance requises par la solution font partie intégrante des informations disponibles pour les utilisateurs d'un simulateur. Plus particulièrement, dans ce cas, - lors de la détection d'un signal de lecture "accès manqué" ou d'écriture "accès manqué", caractérisant l'entrée d'une donnée A dans un élément mémoire associé à une adresse Al attachée au signal "accès manqué", on stocke dans une base de données BD, préalablement créée à cet effet, l'adresse Al de l'élément mémoire considéré, la donnée A enregistrée, et l'instant Te(A, Al) d'entrée de la donnée A dans cet élément mémoire A1, - lors de la détection d'un signal de lecture et d'un signal "accès réussi" caractérisant la lecture d'une donnée C dans un élément mémoire associé à une adresse A2 attachée au signal "accès réussi", on stocke dans la base de données BD, l'adresse A2 de l'élément mémoire considéré, la donnée C lue, et l'instant TI(C, A2) de lecture de la donnée C dans cet élément mémoire A2. Préférentiellement, dans ce cas, le procédé comporte une étape 300 de détermination d'un temps critique d'exposition des éléments de mémorisation aux perturbations, en fonction de la connaissance de la présence ou non des données d'exécution de l'application logicielle dans ces éléments de mémorisation. Ce temps critique d'exposition est calculé comme la différence entre, d'une part, l'instant du dernier accès en lecture à une première donnée A stockée dans un élément de mémorisation A1, avant réaffectation de l'élément de mémorisation Al à une seconde donnée B, et, d'autre part, le premier accès en écriture de cette première donnée A dans cet élément de mémorisation A1. Dans un mode particulier de mise en oeuvre du procédé, le procédé comporte une étape 400 de sommation, pour tous les éléments de mémorisation, de tous les temps critiques d'exposition liés à toutes les données de calcul de l'application logicielle, stockées à un moment ou à un autre dans ces éléments de mémorisation, définissant ainsi un temps de sensibilité du processeur exécutant cette application logicielle particulière, ce paramètre étant exprimé sous forme d'une durée totale d'exposition. Le pourcentage de sensibilité est égal à la somme des temps critique multiplié par la taille de la donnée et divisé par le temps total d'exécution multiplié par la taille totale des éléments de mémorisation. Les perturbations, ici citées, peuvent être notamment des rayonnements ionisants, des rayonnements électromagnétiques, des bruits sur l'alimentation électrique, des perturbations sont internes au composants, ou tout autre événement transitoire, semi permanent ou permanent ayant un effet sur le comportement des éléments du composant qui sont étudiés. En d'autres termes, pour évaluer le taux d'erreur réel d'une application logicielle exécutée sur un micro-processeur de type connu, le présent procédé propose de calculer précisément 1/ la quantité de variables critiques d'un logiciel, destinées à être stockées au moins temporairement dans des éléments de mémorisation du micro-processeur (mémoire cache) et 2/ leur durée de vie au sein de ces éléments de mémorisation, c'est-à-dire leur durée de séjour entre première écriture et dernière lecture. L'invention vise également un composant électronique, adapté à être mis en oeuvre lors de l'exécution d'une application logicielle, caractérisé en ce qu'il comporte des moyens de transmettre sur une ligne de communication prédéfinie des signaux caractérisant un accès en entrée ou en sortie dans des éléments prédéterminés dudit composant, de données de calcul de cette application logicielle. L'invention vise encore un composant électronique, adapté à être mis en oeuvre lors de l'exécution d'une application logicielle, caractérisé en ce qu'il comporte des moyens de mettre en oeuvre la phase de caractérisation d'un procédé tel qu'exposé. 10 L'invention vise, sous un autre aspect, un procédé d'optimisation de code-source d'une application logicielle destinée à être exécutée sur un micro-processeur donné, ce procédé comprenant notamment une étape d'optimisation de l'utilisation de la mémoire cache du micro-processeur, de manière à limiter la sensibilité de l'application logicielle vis-à-vis des perturbations. Cette optimisation peut comprendre 15 une limitation du temps critique de présence de variables critique en mémoire cache. Elle peut également comprendre une limitation du nombre d'éléments de mémoire utilisés par l'application logicielle. Une application peut être optimisée pour l'ensemble de son fonctionnement, ou pour des modes de fonctionnement particuliers, activés dans des conditions 20 prédéterminées de perturbations. Présentation des figures Les caractéristiques et avantages de l'invention seront mieux appréciés grâce à la description qui suit, description qui expose les caractéristiques de l'invention au 25 travers d'un exemple non limitatif d'application. La description s'appuie sur les figures annexées qui représentent : Figure 1 : un schéma illustrant les différents mis en oeuvre dans le procédé ; Figure 2 : un organigramme des étapes d'un exemple de mise en oeuvre du procédé selon l'invention ; 30 Figure 3 : un schéma illustrant la durée de vie critique d'une donnée au sein d'un élément de mémorisation ; Figure 4 : un schéma illustrant l'estimation du temps critique d'une application. Description détaillée d'un mode de réalisation de l'invention 35 Dans un mode de mise en oeuvre donné ici à titre d'exemple non limitatif, l'invention est mise en oeuvre sous forme logicielle sur un simulateur de micro-5 processeur (voir figure 1). Ce simulateur est également un logiciel, fourni par le fabricant du micro-processeur, et exécuté sur un ordinateur adapté à cet effet, reproduit le comportement du micro-processeur lors de l'exécution d'une application logicielle quelconque. Le simulateur sort en tant que tel du cadre de la présente invention, et n'est donc pas décrit plus avant ici. Le procédé, tel que décrit ici, comporte une série d'étapes dont l'organigramme est illustré figure 2. Préliminairement, le logiciel mettant en oeuvre le présent procédé a été installé sur le simulateur. Il est destiné à être lancé avant le début de l'exécution de l'application logicielle étudiée. Dans une première étape 100, on installe sur le simulateur du micro-processeur l'application logicielle à exécuter. Cette installation est réalisée de façon connue en soi. Cette étape 100 comporte également, dans le présent exemple nullement limitatif, l'activation des signaux de performance et d'accès aux mémoires interne. Dans une deuxième étape 200, on exécute l'application. Durant cette exécution, on surveille les accès aux différents éléments mémoires simulés du composant Pour ce faire, on détecte la transmission par le simulateur de signaux particuliers, générés lors de la simulation, indiquant la présence ou non, dans des éléments de mémorisation interne du composant simulé, de données d'exécution de l'application logicielle. Les signaux surveillés sont de type "accès manqué" / "accès réussi" (accès réussi ou non en lecture ou écriture à un élément de mémoire interne du composant). Un signal "accès manqué" caractérise que la donnée n'est pas présente dans l'adresse mémoire interrogée. Au contraire, un signal "accès réussi" caractérise que la donnée est présente dans l'adresse mémoire interrogée. Cette surveillance est effectuée pour tous les signaux "accès manqué" / "accès réussi" générés lors de la simulation d'exécution de l'application logicielle, c'est-à-dire pour chaque adresse d'élément de mémorisation du composant effectivement utilisé lors de l'exécution de l'application logicielle sur le composant simulé. Lors de la détection d'un signal de lecture et d'un signal "accès manqué" ou d'un signal d'écriture et d'un signal "accès manqué", caractérisant l'entrée d'une donnée A dans un élément mémoire associé à une adresse Al attachée au signal "accès manqué", on stocke dans une base de données BD, préalablement créée à cet effet, l'adresse Al de l'élément mémoire considéré, la donnée A enregistrée, et l'instant Te(A, A1) d'entrée de la donnée A dans cet élément mémoire A1. Lors de la détection d'un signal de lecture et d'un signal "accès réussi", caractérisant la lecture d'une donnée C dans un élément mémoire associé à une adresse A2 attachée au signal "accès réussi", on stocke dans la base de données BD, l'adresse A2 de l'élément mémoire considéré, la donnée C lue, et l'instant TI(C, A2) de lecture de la donnée C dans cet élément mémoire A2. L'adresse de la donnée C et le type d'accès (type d'instruction lecture ou écriture) sont également stockées. Dans le présent exemple nullement limitatif, la taille de la donnée est aussi une information stockée pour identifier des écritures inferieures à la taille d'une donnée, ce qui peut rendre une donnée critique. Les données sont ensuite traitées dans une étape 300. Il est à noter qu'en variante, elles peuvent être traitées à la volée, au fur et à mesure de l'exécution de l'application logicielle sur le simulateur. Dans cette étape, on détermine un temps critique d'exposition des éléments de mémorisation aux perturbations, en fonction de la connaissance de la présence ou non des données d'exécution du programme, du type d'accès (lecture et écriture). Plus précisément, ce temps critique d'exposition est calculé comme la différence entre, d'une part, la valeur maximale max(Tli(A, A1)) des instants d'accès (dans le cas où il existe plusieurs tels accès non séparés par des écritures d'autres données à cette même adresse mémoire) en lecture à une première donnée A avant réaffectation de l'élément de mémorisation Al à une seconde donnée B (voir figure 3), et, d'autre part, l'instant Te(A, Al) d'un premier accès en écriture de cette première donnée A dans cet élément de mémorisation A1. Sur la figure 3, la donnée A a été enregistrée dans l'adresse de mémoire Al à un instant Te(A, Al). Elle a été lue deux fois, correspondant à deux instants T11(A, Al) et T12(A, Al). Une seconde donnée B a été écrite sur cette même adresse mémoire Al à un instant plus tardif Te(B, Al). La donnée A a donc été présente dans l'élément de mémorisation d'adresse Al entre les instants Te(A, Al) et Te(B, Al). Elle n'a cependant été dans un état considéré comme critique que entre son instant d'écriture Te(A, Al) et son dernier instant de lecture T12(A, Al). Entre ces deux instants, une corruption de l'élément de mémorisation aurait entraîné une erreur d'exécution sur la donnée A. Cette durée : max(Tli(A, A1)) - Te(A, A1)) caractérise donc, pour l'élément de mémorisation Al, un temps critique pendant lequel sa vulnérabilité aux perturbations peut entraîner une erreur d'exécution de l'application logicielle considérée. Le calcul de ces temps critiques d'exposition peut être avantageusement effectué en traitant successivement chaque donnée A de l'application logicielle enregistrée à un moment ou à un autre dans un élément de mémorisation du composant simulé, et donc citée dans la base de données BD. Puis, dans une étape 400, on effectue une sommation, pour tous les éléments de mémorisation, de tous les temps critiques d'exposition liés à toutes les données stockées à un moment ou à un autre dans ces éléments de mémorisation, définissant ainsi un temps de sensibilité du processeur exécutant cette application logicielle particulière, ce paramètre étant exprimé sous forme d'une durée totale d'exposition (voir figure 4). Dans une variante de ce procédé, on détermine, à partir des mêmes données de la base de données BD, la proportion d'éléments de mémorisation du composant utilisés à chaque instant lors de l'exécution de l'application, et la valeur moyenne de cette proportion d'éléments de mémorisation utilisés. On détermine de même la valeur moyenne des temps critiques d'exposition des données. Avantages de l'invention L'utilisation, dans le présent procédé, de signaux de performance de lecture / écriture en mémoire, disponibles pour les utilisateurs des simulateurs, permet que cette solution ne nécessite pas de modifier le simulateur de micro-processeur, contrairement à l'état de l'art. Cette invention peut être utilisée pour déterminer avec plus de précision la tolérance aux fautes de microprocesseurs embarqués vis-à-vis des radiations, ce qui devient essentiel car les méthodes traditionnelles sont souvent surestimées d'un facteur 10 x. Dans la présente invention, au contraire, on détermine quelle est la proportion moyenne de mémoire utilisée à chaque instant, et son temps d'utilisation critique (le temps de stockage de données n'étant plus destinées à être lues ne faisant pas de ce temps critique d'exposition, comme on l'a vu plus haut). Dans le cas d'un processeur exécutant plusieurs applications logicielles 35 simultanément, il est possible, par le présent procédé, de distinguer la sensibilité de chaque application. L'invention s'applique aussi bien aux événements simples qu'aux événements multiples apparaissant dans les mémoires caches, et ce quel que soit le type de protection interne utilisée (parité, code de correction d'erreurs...) L'invention permet alors, après caractérisation de la sensibilité d'un composant à des perturbations lorsqu'une application dynamique est exécutée sur ce composant, de vérifier si ce composant est compatible avec le cahier des charges d'un équipement électronique en cours de conception, cet équipement devant être soumis à un environnement et à une probabilité de défaillance préalablement connu. Si, selon le procédé de caractérisation, le composant ne permet pas de remplir le cahier des charges, les concepteurs doivent modifier l'implémentation de l'équipement électronique. En variante, l'invention permet d'optimiser le code d'une application logicielle destinée à être exécutée sur un micro-processeur donné, et notamment d'optimiser l'utilisation de la mémoire cache de manière à limiter la sensibilité de l'application logicielle vis-à-vis des perturbations. Variantes La description a été faite pour des composants de type micro-processeur. Elle est naturellement applicable sans modification substantielle à d'autres composants mettant en oeuvre des mémoires cache, par exemple : disques durs, serveurs proxy, etc. Le procédé, tel que décrit, met en oeuvre un simulateur. Dans un autre mode de mise en oeuvre, le procédé peut utiliser un émulateur du composant considéré. Un émulateur décrit de manière précise le comportement interne d'un composant. Tous les signaux du processeur sont alors disponibles. Il est cependant nécessaire de disposer des codes sources du processeur. Cette solution peut aussi être implantée au sein même d'un composant. Les fonctions de calcul des temps critique sont alors intégrées dans le composant, et utilisent les signaux d'intérêts. Enfin les signaux peuvent être proposés en sortie du composant pour un traitement externe. La description a été faite pour le cas des éléments de mémorisation du composant considéré. Il est clair qu'un procédé analogue peut être mis en oeuvre pour caractériser la sensibilité d'autres éléments du processeur, pour autant qu'il soit possible de déterminer, à l'aide d'un simulateur par exemple, des signaux de performance témoignant d'un début et d'une fin d'utilisation de cet élément. Dans ce cas, la somme des temps d'utilisation de cet élément constitue une mesure de sensibilité à des perturbations de cet élément. REVENDICATIONS1. Procédé de conception d'un équipement électronique comportant au moins un composant électronique, ledit composant étant destiné à exécuter une application dynamique et potentiellement soumis à des perturbations, ladite application utilisant des éléments internes de ce composant, caractérisé en ce que le procédé comporte une phase de caractérisation d'un paramètre de sensibilité du composant à ces perturbations, cette phase comportant : - une étape 100 d'exécution de l'application logicielle sur un moyen de reproduire le fonctionnement du composant, et - une étape 200 de surveillance, lors de cette exécution, de signaux spécifiques dit signaux de performance liés à des accès à des éléments du composant de type prédéterminé, et une étape de déduction de cette surveillance d'un temps de séjour dans ces éléments, de données de calcul de l'application logicielle. 2. Procédé selon la revendication 1, caractérisé en ce que le moyen de reproduire le fonctionnement du composant est un simulateur logiciel dudit composant, et en ce que le procédé comporte une étape d'analyse des signaux fournis par le simulateur de ce composant lors de l'exécution d'une application sur le composant. 3. Procédé selon la revendication 2, caractérisé en ce que les signaux surveillés sont des signaux de performances et d'accès aux éléments de mémorisation en lecture et écriture. 4. Procédé selon la revendication 3, caractérisé en ce que le composant est un micro-processeur, les éléments de mémorisation étant les mémoires internes dudit microprocesseur. 5. Procédé selon la revendication 4, caractérisé en ce que les éléments de mémorisation du processeur comprennent des mémoires cache de niveau LI, L2 ou L3 ou des TLB ("translation lookaside buffer"). 6. Procédé selon l'une quelconque des revendications 3 à 5, caractérisé en ce que les signaux utilisés sont de type "accès réussi I accès manqué", c'est-à-dire sont les signaux renvoyés par le simulateur et caractérisant la présence ou non de ladonnée attendue en écriture ou en lecture à un élément de mémorisation. 7. Procédé selon la revendication 6, dans lequel : - lors de la détection d'un signal de lecture "accès manqué" ou d'écriture "accès manqué", caractérisant l'entrée d'une donnée A dans un élément mémoire associé à une adresse Al attachée au signal "accès manqué", on stocke dans une base de données BD, préalablement créée à cet effet, l'adresse Al de l'élément mémoire considéré, la donnée A enregistrée, et l'instant Te(A, Al) d'entrée de la donnée A dans cet élément mémoire Al, - lors de la détection d'un signal de lecture de type "accès réussi", caractérisant la lecture d'une donnée C dans un élément mémoire associé à une adresse A2 attachée au signal "accès réussi", on stocke dans la base de données BD, l'adresse A2 de l'élément mémoire considéré, la donnée C lue, et l'instant TI(C, A2) de lecture de la donnée C dans cet élément mémoire A2. 8. Procédé selon l'une quelconque des revendications 3 à 7, caractérisé en ce qu'il comporte une étape 300 de détermination d'un temps critique d'exposition des éléments de mémorisation aux perturbations, en fonction de la connaissance de la présence ou non des données d'exécution de l'application logicielle dans ces éléments de mémorisation. 9. Procédé selon la revendication 8, caractérisé en ce que le temps critique d'exposition est calculé comme la différence entre, d'une part, l'instant du dernier accès en lecture à une première donnée A stockée dans un élément de mémorisation Al, avant réaffectation de l'élément de mémorisation Al à une seconde donnée B, et, d'autre part, le premier accès en écriture de cette première donnée A dans cet élément de mémorisation Al. 10. Procédé selon la revendication 9, caractérisé en ce qu'il comporte une étape de sommation, pour tous les éléments de mémorisation, de tous les temps critiques d'exposition liés à toutes les données de calcul de l'application logicielle, stockées à un moment ou à un autre dans ces éléments de mémorisation, définissant ainsi un temps de sensibilité du processeur exécutant cette application logicielle particulière, ce paramètre étant exprimé sous forme d'une durée totale d'exposition. 11. Procédé selon l'une quelconque des revendications 1 à 10, caractérisé en ce que les perturbations sont des rayonnements ionisant. 12. Procédé selon l'une quelconque des revendications 1 à 10, caractérisé en ce que les perturbations sont des rayonnements électromagnétiques. 13. Procédé selon l'une quelconque des revendications 1 à 10, caractérisé en ce que les perturbations sont des bruits sur l'alimentation électrique. 14. Procédé selon l'une quelconque des revendications 1 à 10, caractérisé en ce que les perturbations sont internes au composants 15. Composant électronique, adapté à être mis en oeuvre lors de l'exécution d'une application logicielle, caractérisé en ce qu'il comporte des moyens de mettre en oeuvre la phase de caractérisation d'un procédé selon l'une quelconque des revendications 1 à 14.