![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() ![]() |
|
Implémentation et validation de mécanismes de virtualisation pour l’architecture de processeur multi-cores TSARCONTEXTE Ce stage s'inscrit dans le cadre du projet TSAR (Tera-Scale ARchitecture) dont les principaux partenaires industriels sont BULL (coordinateur), Thales et Philips. Ce projet vise la définition et l’implémentation d’une architecture de processeur multi-core utilisable dans des ordinateurs de type PC, c'est-à -dire une architecture matérielle supportant la mémoire virtuelle, et fournissant un mécanisme de cohérence des caches garantie par le matériel. Cette architecture supporte des systèmes d’exploitation généralistes de type UNIX ou LINUX. Son originalité est d’utiliser un grand nombre de « petits » cœurs de processeurs RISC 32 bits, plutôt que quelques gros processeurs, pour minimiser la consommation énergétique. L’architecture doit donc être réellement scalable (pour atteindre 4096 processeurs sur une seule puce), tout en fournissant une mémoire partagée cohérente. Dans le cadre de ce projet, le laboratoire LIP6 est chargé – en coopération avec BULL- de la définition du système mémoire. Une première version de cette architecture, comportant 16 cœurs de processeurs a été modélisée en langage SystemC, en utilisant la plate-forme de prototypage virtuel SOCLIB, et différentes applications logicielles synthétiques ont pu être déployées et exécutées (en simulation) sur ce prototype virtuel.
Comme indiqué sur le schéma ci-dessus, l’architecture TSAR est découpée en « clusters ». Chaque cluster est un sous-système contenant plusieurs processeurs (avec leurs caches L1 de premier niveau), un cache mémoire de 2e niveau, un bus local et un contrôleur d’accès au micro-réseau. Les sous-systèmes communiquent entre eux à travers un micro-réseau (Network on Chip) intégré sur puce. En cas de MISS, tous les processeurs peuvent accéder – à travers le micro-réseau - à tous les caches de 2e niveau. La mémoire est donc logiquement partagée (espace d’adressage unique), mais physiquement distribuée. TRAVAIL PROPOSE Ce stage porte sur la définition d’un ensemble de mécanismes supportant la virtualisation sécurisée de l’architecture TSAR. La virtualisation de machine permet d’exploiter une seule machine physique comme si on disposait de plusieurs machines virtuelles exécutant chacune leur propre systèmes d'exploitation, totalement isolées les uns des autres. En règle générale, l'intérêt de la virtualisation est de maximiser l'usage d'une ressource sous-exploitée. Par exemple, les processeurs des serveurs sont le plus souvent en attente d'opérations à effectuer. Le fait de placer différents serveurs (un serveur par machine virtuelle) sur une seule machine physique permet de diminuer les coûts, tout en augmentant la robustesse de l’infrastructure en cas d’attaque sur un serveur particulier. Notre but est donc d'ajouter un support matériel de virtualisation sur la plate-forme multi-cores TSAR offrant des garanties fortes en terme de confinement, de confidentialité, d'intégrité et de disponibilité tout en en minimisant les coûts en terme de performance.
Au cœur d’un virtualiseur de machine se trouve une TCB (trusted computing base) qui réalise les services les plus critiques. Une TCB c’est du matériel et du logiciel. La sécurité d’une TCB doit évidemment être garanti. C’est à dire qu’il doit être impossible pour un logiciel s’exécutant sur une machine virtuelle de réaliser des services, dépendant de la TCB, non autorisés. Nous souhaitons prouver formellement la sécurité de la TCB du virtualiseur de TSAR. Ceci nous impose de réduire au maximum sa taille afin de pouvoir utiliser des méthodes formelles pour la spécification du matériel et du logiciel qui la constitue.
Les politiques de virtualisation sont implantées en logiciel et s’exécutent sur des processeurs particuliers, mais elles s’appuient sur différents mécanismes matériels pour protéger l’accès à la mémoire et aux périphériques. Ces mécanismes sont bien spécifiés, et le but du stage est de modéliser en systemC les composants matériels supportant la virtualisation, et de valider l’architecture ainsi enrichie en exécutant (en simulation) plusieurs machines virtuelles sur le prototype virtuel à 16 processeurs actuellement disponible. ENCADREMENT : Ce stage sera encadré par Geoffrey Plouviez (Geoffrey.Plouviez(at)lip6(.)fr) sous la responsabilité de Franck Wajsburt : Franck.Wajsburt(at)lip6(.)fr REMUNERATION Ce stage sera rémunéré pendant toute la durée du stage.
|