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 ?.
Dans le document
Sécurité temps réel dans les systèmes embarqués critiques
(Page 162-169)