![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
![]() ![]() |
|
Evaluation de performances pour l’architecture de processeur multi-cores TSARCONTEXTE Ce stage s’inscrit dans le cadre du projet Européen 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éraliste 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 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 Le sujet proposé porte sur le volet logiciel du projet TSAR. On souhaite évaluer les performances de cette architecture en exécutant des applications logicielles multi-threads sur le prototype virtuel à 16 processeurs de TSAR. Les applications choisies font partie du benchmark SPLASH ( Stanford Parallel Applications for Shared Memory) développé par l’Université de Stanford. On comparera les performances obtenues (temps d’exécution mesurés en nombre de cycles) aux performances obtenues en exécutant ces mêmes applications sur un PC multi-cores sous LINUX. Le système d’exploitation utilisé pour ces expérimentations sera un des système d’exploitation déjà disponibles sur TSAR (Unix NetBSD ou MutekH) ou en cours de portage (LINUX). Tous ces systèmes supportent en effet l’API des threads POSIX, qui est utilisée par les applications parallèles SPLASH. Le principal intérêt de ce travail est qu’on maîtrise totalement l’architecture matérielle : on peut re-dimensionnement les caches, re-configurer la MMU, et même faire évoluer le protocole de cohérence mémoire. On souhaite à travers ces expérimentations, identifier, localiser, et si possible corriger d’éventuelles faiblesses de l’architecture ou des protocoles de communication, ce qui nécessite évidemment de bien comprendre l’architecture matérielle. Un prototype matériel d’une architecture TSAR à 16 processeurs étant en cours de développement sur FPGA, il est possible que les applications mises au point sur le prototype virtuel puissent être portées et exécutées sur cette plate-forme matérielle avant la fin du stage.
ENCADREMENT : Ce stage sera encadré par le Professeur Alain Greiner : Alain.Greiner@lip6.fr REMUNERATION
Ce stage sera rémunéré pendant toute la durée du stage. |