-
-
-
-
-
-
-
HomeSite map
SoC/Offres d'emplois/Stages/2009-2010/ALSOC 4 Print page

Définition et implantation d’un serveur GDB sur FPGA pour l’architecture de processeur multi-core TSAR

CONTEXTE

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é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 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

Des modèles VHDL synthétisables existent pour tous les composants matériels de cette architecture, et deux prototypes matériels sont en cours de synthèse sur circuit FPGA. Le premier contiendra 4 cœurs de processeur (un seul cluster). Le second contiendra 16 cœurs de processeur (4 clusters).

Le sujet du stage porte sur la définition et l’intégration dans le FPGA d’un mécanisme matériel d’aide à la mise au point des applications logicielles parallèles s’exécutant sur cette architecture. La mise au point d’applications multi-tâches s’exécutant sur des architectures multi-cores est généralement délicate à cause du parallélisme d’exécution.

Quand on utilise un prototype virtuel (modèle de simulation SystemC), on dispose de l’outil GDBServer, qui permet d’utiliser l’environnement standard GDB pour poser des points d’arrêt, exécuter la simulation en mode pas à pas, et analyser les éventuels dysfonctionnements en inspectant les valeurs stockées dans les registres ou dans la mémoire du prototype virtuel.

Sur le prototype matériel (circuit FPGA), on peut exécuter des applications logicielles beaucoup plus grosses (car les durées d’exécution sont beaucoup plus courtes qu’en simulation) , mais on ne dispose pas des mêmes possibilités d’observation que sur le prototype virtuel. On souhaite donc définir, et implanter dans le prototype FPGA, un mécanisme matériel  se comportant comme un serveur GDB associé à chacun des processeurs embarqués sur le FPGA, permettant de piloter l’exécution depuis un client GDB s’exécutant sur un PC. La communication entre le PC hôte et la carte FPGA utilisera vraisemblablement une liaison série de type RS232 ou USB.

La principale difficulté de ce projet est qu’il nécessite : (1) d’intervenir dans le logiciel GDB (sur linux) afin qu’il puisse contrôler le matériel d’inspection intégré sur le FPGA ; (2) de concevoir le mdodèle VHDL d’inspection qui permet d’accéder aux registes des processeurs et à la mémoire de TSAR ; (3) de concevoir le médium de communication entre le PC qui éxécute GDB et le FPGA. Le candidat doit donc avoir des compétences, ou être intéressé par la programmation en C, la conception matérielle en VHDL et  les aspects électroniques et système du protocole USB.

ENCADREMENT 

Ce stage sera encadré par Franck Wajsburt, Franck.Wajsbürt@lip6.fr

REMUNERATION

Ce stage sera rémunéré pendant toute la durée du stage.

 

LIP6 LIP6-SoC LIP6 CNRS UPMC