• Aucun résultat trouvé

Calcul du nombre d’accès d’un programme

Pour connaître le nombre d’accès mémoire, il est nécessaire de pouvoir déterminer le chemin

d’exécution amenant au plus grand nombre d’appel mémoire. La base serait de prendre le nombre

d’accès mémoire sans considérer l’existence de caches. Cette première idée est intéressante mais

rend, pour les systèmes temps-réel modernes, des partitions non ordonnançables car trop grandes.

L’existence et la création du cache a été déterminant pour résoudre ce problème et doit également

être pris en compte.

Nous décomposons donc notre idée en deux sous parties :

— recherche du chemin d’exécution amenant au plus grand nombre d’accès mémoire ;

— adaptation aux caches.

Recherche du plus grand nombre d’accès mémoire

Cette problématique est quasi identique à celle du pire temps d’exécution. En effet, nous

cher-chons dans un système complexe, à maximiser une variable : le nombre d’accès mémoire. Si nous

conservons les hypothèses précédemment citées dans la Partie II de notre thèse, comme la volonté

d’utilisation de techniques dynamiques, alors nous retrouvons ici clairement notre problématique

du WCET.

Nous pouvons dès lors proposer de résoudre la recherche du plus grand nombre d’accès mémoire

par un algorithme génétique, en l’occurence par l’utilisation de notre proposition adaptée.

C’est une hypothèse réaliste, car le seul changement fondamental est la mesure réalisée sur

le système embarqué. En effet, notre algorithme prenait en compte de nombreuses données ; le

contexte, qu’il faut conserver tel quel, ainsi que les paramètres, tout aussi importants. Seule la

fonction de fitness prend en considération la mesure à observer. Nous proposons de remplacer le

pire temps d’exécution, par le nombre d’accès mémoire. Cela est rendu possible par le composant

que nous avons réalisé précédemment. Celui-ci combiné à l’absence de cache lors de l’évaluation

nous permet de connaître exactement le nombre d’accès mémoire.

Le résultat obtenu par notre algorithme génétique, dans un temps raisonnable, ne nécéssite pas

de ré-évaluation complète par un spécialiste de l’analyse statique et permet un gain de temps pour

la vérification moyenne du nombre d’accès mémoire. En revanche, le problème de cette technique

reste identique. En l’absence de l’analyse statique, il n’y a pas de garantie sur le résultat et il est

possible d’avoir découvert une valeur locale.

La meilleure des solutions serait donc, à l’instar de la conclusion dans la Partie II, de faire

réa-liser une analyse statique du nombre d’accès en mémoire, puis de le vérifier par notre algorithme

génétique adapté. L’intérêt de l’industriel ou du client serait d’intégrer un algorithme génétique

simple pour vérifier l’ensemble des caractéristiques du système à évaluer. Rien ne diffère de

l’algo-rithme génétique, excepté la variable d’optimisation, ce qui rend le travail à réaliser par l’homme

quasi nul. Ainsi, un même ingénieur peut évalué l’ensemble du système sans formation ou temps

supplémentaire. En effet, seul le travail automatique des machines sera augmenté en temps de

calcul, mais la mise en place du dispositif sera comprise dans le temps d’installation du calcul du

WCET.

La mise en place d’un test d’évaluation rapide offrirait une plus value certaine à notre algorithme

génétique sur système complexe.

Adaptation aux caches

La valeur obtenue par notre algorithme génétique ne prend pas en compte les effets bénéfiques

du cache et offre une valeur d’accès mémoire brute. Il faut donc réussir à prendre en compte l’effet

du cache sur les partitions exécutées. Cela n’est pas un problème simple. En effet, la valeur dépend

des autres partitions sur le système. Il est possible de prendre en compte une valeur pessimiste

fixe mais les performances du système seront à la baisse. Il faut donc approcher une hypothèse de

recherche automatique du nombre d’accès au cache.

Ce qui est certain, c’est le nombre d’accès au cache L1. Chaque partition étant seule sur son

processeur lors de son exécution, le cache L1 qui lui est dédié reste donc fixe. De plus, le cache

L1 est remis a zéro à chaque changement de partition. Il est donc parfaitement prévisible. Seul le

nombre d’accès au cache L2 est difficile à définir.

La solution la plus simple serait de ré-exécuter le chemin obtenu par notre algorithme génétique,

impactant le plus la mémoire, et observer en comparaison le nombre d’accès au cache L1 et au

cache L2. Cette valeur nous offre un ordre d’idée du taux d’accès au cache. Plusieurs résultats sont

envisageables, dont voici les cas :

— tous les accès mémoires sont en réalité des accès au cache L1 ;

— les accès sont très nombreux en cache L2 ;

— les accès sont principalement en mémoire.

Dans le premier cas, le pire chemin obtenu par notre algorithme n’est pas le plus intéressant. Ce

chemin correspond à un chemin parfaitement prévisible et n’ayant aucune optimisation au niveau

du cache L2. Le second chemin le plus important doit être étudié dans le cas ou celui-ci dépend

du cache L2. On opère jusqu’à trouver un chemin sollicitant peu le cache de niveau 1 et beaucoup

plus la mémoire ou le cache de niveau 2. Dans le deuxième cas, le nombre d’accès très important

au cache L2 démontre que la partition sera fortement sensible aux variations des autres partitions

sur le système. Il risque d’y avoir des problèmes de contention mémoire lors de l’exécution de cette

partition dépendante du cache L2. Définir une valeur pessimiste du nombre d’accès à la mémoire

plutôt qu’au cache de niveau 2 serait donc plus réaliste et approprié. De même pour le dernier cas

qui nous fourni directement une valeur plutôt pessimiste. Il est important de prendre une marge de

“sûreté” pour garantir qu’une autre partition ne déclenche pas de détection de contention mémoire

inutilement.

Pour conclure, il s’avère nécessaire de sur-évaluer le nombre d’accès en mémoire en prenant

une équation (nécessitant amélioration) tel qu’égale au nombre d’accès réels en mémoire plus un

pourcentage du nombre d’accès au cache L2.

11.4 Conclusion

Les perspectives nous montrent que notre proposition s’intègre parfaitement dans un système

complet de mesure industrielle pour systèmes embarqués temps-réel spatiaux. Il est possible de

réguler entièrement la contention mémoire avec un ensemble de dispositifs réalistes et intégrant

la complexité des nouveaux systèmes. Ce chapitre conclut sur notre deuxième et dernier apport

majeur de la thèse.

Quatrième partie

Chapitre 12

Conclusions et perspectives

Sommaire

12.1 Problématique . . . 151

12.2 Principales contributions . . . 152

12.3 Perspectives . . . 153

12.4 Synthèse générale . . . 153

Les satellites hypervisés multiprocesseurs constituent un apport majeur au monde de

l’élec-tronique embarqué dans le domaine spatial. Grâce à l’utilisation de ces nouvelles technologies, le

coût de production est restreint et le nombre de satellites nécessaire dans l’espace est diminué par

autant de clients que peut l’accepter le système. Les enjeux sont multiples, notamment dans le

domaine commercial. Ce type de système est particulièrement modulable et adaptable aux

diffé-rents besoins. Faisant gagner un temps de production précieux, il améliore encore les performances

générales d’un ensemble toujours à la pointe de la technologie.

Malgré tous ces avantages, cette nouvelle technologie n’a pas encore l’intégralité des outils

industriels pour une exploitation optimale. L’évolution des normes est constante et répond peu à

peu au besoin toujours croissant. La conception même d’un satellite est aujourd’hui entièrement

modifiée et le schéma de production industriel fortement complexifié. L’appel à des sociétés de

sous-traitance, ou la mise a disposition de plate-forme de développement pour le client acheteur

rend la production et le contrôle de celle-ci particulièrement difficile. A cela s’ajoutent de nouvelles

menaces. Le caractère géo-stratégique des satellites et le pouvoir qu’ils représentent, devient une

cible prioritaire pour tout état, groupe, ou entreprise souhaitant contrôler ou perturber un ou

plusieurs clients. Le noeud de communication que représente le satellite est fondamental et doit

être protégé au mieux face aux nouveaux types d’attaques.

12.1 Problématique

Dans cette thèse, nous développons dans un premier temps l’évolution de la production d’un

satellite et son impact en terme de sûreté de fonctionnement et de sécurité. C’est cet impact qui

nous permet d’aborder deux problématiques majeures.

La première est directement liée au schéma industriel mis en place pour la production des

satellites. Le schéma retenu par l’industrie est de sous-traiter au maximum le travail à effectuer

afin de diminuer les coûts sur le long terme. Cela implique que le producteur final n’a pas la

maîtrise complète du système. C’est d’autant plus vrai que le client produit son propre code. Le

client comme le producteur final souhaitent vérifier la qualité du satellite, sans s’impliquer dans la

complexité du système étudié. Ils utilisent alors des techniques dynamiques qu’ils maîtrisent déjà.

Les sujets de questionnement découlent donc de l’analyse temporelle de ces techniques. Le système

étant de type temps-réel, il est nécessaire de connaître le temps maximal pris par chaque fonction,

quel que soit l’état du système. La problématique est donc :Comment observer dynamiquement le

pire temps d’exécution d’une fonction sur un satellite aussi complexe ?.

La deuxième problématique est liée aux caractéristiques des systèmes multi-coeur. Chaque

évolution technologique introduit de nouvelles problématiques. C’est en particulier le cas du

multi-coeur qui fait ré-apparaître le phénomène bien connu de la contention mémoire. Un système

em-barqué de manière générale utilise souvent de la mémoire qui, dans notre cas, est partagée entre

différents processeurs. Une politique de gestion des accès a été mise en place. Néanmoins,

l’in-tégration du cache commun à des fins de performances crée un effet de bord pouvant de façon

contradictoire les détériorer, ou mettre le système en défaut. Le contenu du cache, exécuté de

fa-çon malveillante aurait des conséquences graves sur le système. Notre deuxième problématique est

donc :Comment gérer le phénomène de contention mémoire dans un satellite ?.