-
-
-
-
-
-
-
HomeSite map
SoC/Offres d'emplois/Stages/2011-2012/ALSOC/TSAR : Introduction d'un mécanisme d'aide au debug du matériel respectant la norme JTAG dans une architecture de processeur many-cores Print page

Proposition de stage LIP6
Année 2012
TSAR : Introduction d’un mécanisme d’aide au debug du matériel respectant la norme JTAG dans une architecture de processeur many-cores

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.

Un des objectifs du projet SHARP est la réalisation d’un prototype matériel, sous la forme d’un prototype FPGA comportant 128 cœurs. Un premier prototype PPGA comportant 8 coeurs et 4 clusters (version V1, sans mémoire virtuelle) a permis la mise au point de certains composants critiques, tels que le coeur de processeur MIPS32, ou le micro-réseau intégré VDSPIN. Cette première réalisation matérielle a montré qu’il était nécessaire d’améliorer sensiblement les moyens d’observation et de contrôle du comportement interne du matériel en cas de dysfonctionnement.

TRAVAIL PROPOSE

Le prototype virtuel SystemC fournit différents mécanismes facilitant le debug : points d’arrêt, inspection des valeurs internes des registres et mémoires, ou génération de traces permettant d’analyser cycle par cycle le comportement du matériel.

On souhaite donc intégrer dans les modèles VHDL de l’architecture TSAR les mécanismes matériels permettant de fournir le même type de services. Pour faciliter la mise en oeuvre, on souhaite piloter ces mécanismes d’exécution contrôlée sur un PC, communicant avec la carte FPGA à travers une interface respectant la norme JTAG.

Il s’agit plus précisément d’observer et de contrôler un sous-ensemble des registres du modèle VHDL, en particulier les registres d’état des automates des caches et éventuellement certains registres des processeurs, en tant réel, sans perturber le fonctionnement du code s’exécutant sur les processeurs.

Le principe de fonctionnement en observation seul serait le suivant : gel du système par un conditionnement du signal d’horloge afin de figer l’état des registres et mémoires (le déclenchement du gel pourra être provoqué par un compteur de cycles) ; lecture en parallèle des registres à observer dans des registres internes contrôlés par le JTAG ; extraction en série des registres du JTAG pour un transfert vers la station du concepteur ; dégel du système en relâchant le conditionnement d’horloge, pour au moins un cycle de fonctionnement normal. Ce processus pourra être répété, à chaque cycle, pendant une durée choisie.

Ce stage se déroulera en plusieurs étapes :

  1. Étude de l’architecture TSAR

  2. Analyse des services de debug existant dans le prototype virtuel SystemC

  3. Analyse de la norme JTAG.

  4. Spécification du contrôleur JTAG intégré sur le FPGA.

  5. Spécification de l’interface utilisateur sur station (en mode texte).

  6. Spécification d’une procédure de test du mécanisme d’observation et de contrôle des

    registres du FPGA depuis la station, via le JTAG, sur un système simple (p.ex. compteur).

  7. Choix des registres à observer/contrôler par un audit des concepteurs.

  8. Spécification de l’architecture générale de debug et des services fournis à l’utilisateur (par exemple est-ce que les utilisateurs veulent avoir le séquence des noms d’état des automates observés ou seulement leur code ?).

  9. Définition des mécanismes matériels à introduire dans les composants TSAR.

  10. Développement et validation du mécanisme d’observation et de contrôle.

  11. Intégration des différentes briques sur le prototype FPGA TSAR V1

  12. Écriture et validation du programme d’observation et de contrôle pour TSAR V1

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

LIP6 LIP6-SoC LIP6 CNRS UPMC