-
-
-
-
-
-
-
HomeSite map
SoC/Offres d'emplois/Stages/2012-2013/ALSOC/Vérification compositionnelle du protocole de cohérence de la machine multiprocesseur TSAR Print page

Vérification compositionnelle du Protocole de Cohérence de Caches d'une Machine Multiprocesseur

 

Le  projet  TSAR  vise  la  définition  et  l’implantation  d’une  machine  multiprocesseurs  à  mémoire  partagée.  L’architecture  doit  être  pouvoir  supporter  jusqu’à  4000  processeurs  implantés  en clusters de 4 processeurs, interconnectés par un réseau de communication distribué (DSPIN). La mémoire est physiquement distribuée dans les différents clusters et elle est logiquement partagée par  l’ensemble des processeurs : l’espace d’adressage est commun à  tous, et  les données sont accessibles par  le biais de  fonctions de  lecture et d’écriture. Cette architecture  induit des  temps accès aux données non uniformes: selon la localisation relative du processeur réalisant un accès et  la  donnée  accédée,  le  temps  d’accès  est  variable.  La  hiérarchie  mémoire  permettant  de rapprocher  les  données  des  processeurs  induit  une  possible  réplication  des  données  dans différents  caches.  La  cohérence  des  différentes  copies  d’une même  donnée  est  implantée  en matériel au travers d’un protocole write-through original.

La définition de protocoles de cohérence de caches est une tâche particulièrement difficile car elle fait intervenir de nombreux processus concurrents asynchrones partageant certaines données critiques. Du fait de la complexité du protocole, des défauts de conception peuvent être introduits, qui sont très difficiles à mettre en évidence. Il faut prouver formellement que ce protocole garantit bien (1) les propriétés de cohérence (par ex. on ne peut pas répercuter une donnée incohérente en mémoire centrale, la liste et la localisation des copies sont cohérentes, …) et (2) qu’il est exempt de blocage (par ex. le système pourra toujours traiter une nouvelle requête de lecture ou d’écriture).

La preuve de tels protocoles a fait l’objet de nombreuses recherches, et en fait peu de solutions satisfaisantes sont applicables à de nouveaux protocoles. Nous proposons dans ce stage de vérifier des propriétés de cohérence et d’absence de blocage en utilisant la technique du model-checking, applicable pour des architectures intégrant un faible nombre de composants. 

Le model-checking consiste à parcourir symboliquement l’espace d’état du système, et à déterminer automatiquement, lors de ce parcours, si la structure de l’espace d’états est conforme aux propriétés désirées. Une première étude a permis de construire des modèles exécutables et vérifiables formellement des éléments  constitutifs du protocole DHCCP ; la vérification complètement automatique se heurte au problème d’explosion combinatoire de l’espace d’états du système à analyser. Le présent projet utilise des représentations symboliques d'espace d'états très efficaces sur les systèmes hiérarchiques pour contourner ces phénomènes d'explosion combinatoire.

 

Objectif:

L’objectif du projet est de proposer une démarche de vérification permettant l’analyse de propriétés de sûreté du protocole. Cette démarche repose sur la nature hiérarchique du protocole DHCCP, ainsi que sur la structure modulaire de l’architecture multi-processeur.

 

Le projet comprend plusieurs étapes :

1. Identification des niveaux hiérarchiques du protocole. Modélisation des entités constitutives du protocole (processeur, cache L1, contrôleur mémoire, mémoire, différents réseaux de communication).

2.  Construction d'une plate-forme permettant l'activation de tous les mécanismes du protocole

3. Identification des propriétés à vérifier (sûreté et vivacité).

4. Vérification des propriétés et analyse des résultats.

 

Connaissances souhaitées:

Modélisation des comportements d’un système numérique par automate et/ou analyse par exploration de l’espace d’états.

 

Ce projet permettra à l’étudiant de se former aux problèmes de cohérence de caches dans les architectures multiprocesseurs, aux méthodes et outils de modélisation et de vérification fonctionnelle de systèmes concurrents.

 

Outil:

Model-checker PNSDD développé au LIP6

 

Encadrants:

Emmanuelle Encrenaz : emmanuelle.encrenaz@lip6.fr

Yann Thierry-Mieg : yann.thierry-mieg@lip6.fr

 

Rémunération:

420 euros/mois (sous réserve de financement , réponse début janvier)

 

Bibliographie:

 

Vérification de logiciels : Méthodes et Outils du Model-Checking, P. Schnoebelen et al. Vuibert, 1999.

 

Documentation de l’architecture TSAR, A. Greiner et al. Rapport interne LIP6, 2009.

 

Building Efficient Model Checkers using Hierarchical Set Decision Diagrams and Automatic Saturation. A. Hamez, F. Kordon, Y. Thierry-Mieg, Fundamenta Informaticae Petri Nets (2008) 1–25 IOS Press

 

Modélisation et Vérification du Protocole de Cohérence de Caches de la Machine TSAR : Propriété de deadlock. A. Mansour. Rapport de projet Master 1. 2012. Université Pierre et Marie Curie. LIP6.

 

Efficient Methods for Formally Verifying Safety Properties of Hierarchical Cache Coherence Protocols. X. Chen, Y. Yang, G. Gopalakrishnan, C. Chou. Formal Methods in System Designs, vol 36, pp 37-64, 2010

LIP6 LIP6-SoC LIP6 CNRS UPMC