Proposition de stage LIP6
Année 2012
TSAR : Contrôle du placement des données par le système d'exploitation pour un processeur manycore possédant une mémoire 3D
OBJECTIF
Ce stage s'inscrit dans le cadre du projet Européen SHARP piloté par BULL, dont les partenaires Français sont THALES, le LIP6 et le CEA/LETI. Ce projet vise la définition et l'implémentation d'une architecture de processeur many-cores utilisable dans des ordinateurs de type serveurs, 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.
L'architecture TSAR a été définie dans le cadre d'un premier projet Européen. Cette architecture NUMA (Non Uniform memory Access) 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 plusieurs milliers de coeurs sur une seule puce), tout en fournissant une mémoire partagée cohérente.
Une première version de l'architecture TSAR, comportant 512 cœurs a été modélisée en langage SystemC, en utilisant la plate-forme de prototypage virtuel SOCLIB et un style de modélisation « au cyle près » Différentes applications logicielles ont pu être déployées et exécutées (en simulation) sur ce prototype virtuel, démontrant la scalabilité du protocole de cohérence DHCCP.
Pour faire ces expériences, on a utilisé le système d'exploitation ALMOS (Advanced Locality Management Operating System) également développé au LIP6, qui prend en charge les caractéristiques NUMA (Non Uniform Memory Architecture) de l'architecture TSAR. Le noyau d'ALMOS implémente une mécanisme entièrement distribué permettant de contrôler de façon coordonnée le placement des tâches (threads et/ou processus) sur les processeurs et le placement des données sur les bancs mémoire physiques. Une évolution récente de l'architecture TSAR, réalisée par le CEA-LETI introduit un cache L3 possédant une topologie de grille 3D grâce à l'utilisation de techniques d'empilement tri-dimensionnel (technologie des Through Silicon Via). On souhaite introduire dans ALMOS différents mécanismes permettant à l'OS de contrôler et d'optimiser le placement des données dans cette structure tri-dimensionnelle.
Les différents mécanismes envisagés s'appuient tous sur le gestionnaire de mémoire virtuelle paginée existant dans ALMOS.
TRAVAIL PROPOSE
Le sujet proposé suppose donc une analyse approfondie de l'architecture interne du noyau ALMOS. Le gestionnaire de mémoire actuel de ALMOS fournit la plupart des services nécessaires, mais devra évidemment être enrichi pour fournir les nouveaux services souhaités. Ce stage suppose également certaines modifications dans l'architecture matérielle TSAR, en particulier dans l'infrastructure de communication et dans le contrôleur de cache de 2e niveau.
Ce stage se déroulera en plusieurs étapes
1. étude de l'architecture TSAR et du protocole DHCCP
2. prise en main du prototype virtuel SystemC de la version V4
3. Etude du gestionnaire de mémoire virtuelle du noyau ALMOS
4. Spécification détaillée du mécanisme de contrôle du placement (matériel/logiciel)
5. Introduction des modifications matérielles nécessaires dans le prototype SystemC
6. Implémentation des mécanismes proposés dans le noyau ALMOS
7. Evaluation des mécanismes proposés par exécution de différents benchmarks.
ENCADREMENT
Ce stage sera encadré par Ghassan Almaless (ghassan.almaless(at)lip6(.)fr) sous la responsabilité de Alain Greiner (Alain.greiner@lip6.fr).