logo EDITE Sujets de doctorat

Étude des mécanismes matériels et logiciels nécessaires à l'exécution sécurisée et simultanée de machines virtuelles communicantes sur des systèmes multiprocesseurs hétérogènes intégrés sur puce

Sujet proposé par
Directeur de thèse:
Encadré par
Doctorant: Sylvain LEROY
Unité de recherche UMR 7606 Laboratoire d'informatique de Paris 6

Projet

La course à la performance des PCs actuels a cessé de tout miser sur l'augmentation de la fréquence pour se tourner vers les processeurs multicœurs parce que ceux-ci offrent plus de performances pour une consommation énergétique moindre (meilleur rapport mips/Watt). Cette tendance lourde se propage aux systèmes embarqués, car ceux-ci demandent également un accroissement de leur puissance de calcul afin de réaliser, en temps réel, du traitement d'image ou du traitement de signal, et sont naturellement sensibles à la consommation énergétique. Il est probable que, dans un futur proche, des systèmes sur puce pour l'embarqué soient disponibles comportant plusieurs dizaines de processeurs généralistes et spécialisés (DSPs ou accélérateurs matériels à capacité DMA), par conséquent hétérogènes (MPSoC : Mutiprocessor System-on-Chip).

Si l'on ne veut pas faire d'hypothèses sur le modèle de programmation des applications multitâches, tous les processeurs doivent partager un espace d'adressage unique. Si l'on dispose de beaucoup de processeurs et beaucoup de bancs de mémoire, la communication entre les processeurs et les bancs de mémoire doit être réalisée par un réseau sur puce (NoC).

Par ailleurs, les MPSOC intégrant plusieurs processeurs, plusieurs bancs de mémoire, plusieurs accès aux périphériques, le tout connecté par un micro-réseau intégré devraient être résilients, c'est-à-dire intrinsèquement plus résistant aux pannes et parvenir à fonctionner même si une partie est endommagée.

Pour exploiter efficacement ce type de SOC, il est possible, voire nécessaire, d'y déployer plusieurs machines virtuelles protégées les unes des autres. Chaque machine virtuelle utilise une partie des processeurs, de la mémoire et des entrées-sorties et exécute une application simple (sans OS) ou un OS complet.

Ce partage du matériel par les machines virtuelles est géré par un hyperviseur. Ce partage doit être sûr. Il ne faut pas qu'une application s'exécutant sur une machine virtuelle puisse espionner une autre machine, ni se faire espionner par une autre machine, ni encore dégrader le fonctionnement du système.

Pour effectuer son travail, l'hyperviseur ne peut pas supposer l'existence d'un mode d'exécution plus privilégié que le mode noyau sur tous les processeurs de la plate-forme, car ce mode n'est pas disponible sur tous les types de processeurs et il n'existe généralement pas sur les coprocesseurs spécialisés.

Enjeux

L'idée serait de mettre la sécurité c'est-à-dire la vérification de la légalité des accès mémoire dans le NOC, car tout passe par lui. Les solutions de confinement pourront donc s'appuyer sur des techniques logicielles (comme l'utilisation d'une couche hyperviseur entre le matériel et les piles logicielles), mais elles pourront aussi s'appuyer sur des techniques matérielles (introduction de mécanisme de protection générique dans le micro-réseau NoC).

La solution devra autoriser des communications entre machines avec un niveau de sécurité contrôlé ainsi qu'un partage des périphériques (par exemple un disque dur ou une interface réseau).

La solution devra être évaluée en terme de sécurité, de performance et de résilience.