v
Résumé
Nous proposons une méthodologie de preuve pour la spécification et la vérification
formelles des microarchitectures de processeurs RISC dans un environnement fonctionnel.
La méthodologie modélise des microarchitectures comme machines d'état et prouve leur
correction après décomposition de l’état global, d'une manière systématique. Pour une
meilleure scalabilité, La méthodologie proposée utilise une approche incrémentale pour
modéliser et vérifier des microarchitectures de complexité croissante : séquentielle,
pipeline et superscalaire.
Pour les microarchitectures séquentielles, le critère de correction est fondé
essentiellement sur le diagramme commutatif standard. Ce dernier permet de démontrer
l'équivalence fonctionnelle de la spécification du jeu d’instructions (Instruction-Set-
Architecture : ISA) et de l'implémentation micro architecturale (MA) correspondante, en
utilisant une fonction d'abstraction appropriée. En adoptant une approche hiérarchique,
notre méthodologie raffine la preuve jusqu'au niveau composant observable. Un tel
raffinement permet au processus de débogage de continuer l’exploration à partir du niveau
où le processus de preuve échoue.
Pour les microarchitectures pipeline et superscalaire, l'approche du diagramme
commutatif ne peut pas être appliquée directement à cause de la latence des événements du
pipeline.
Pour
cette
raison,
notre
approche
vérifie
une
implémentation
pipeline
vis-à-vis
d'une implémentation multi cycle séquentielle. Puisque les deux modèles (séquentiel et
pipeline) sont formalisés en termes de cycles d'horloge, tous les états intermédiaires
synchrones représentent des points utiles où la comparaison entre les deux modèles
pourrait être réalisée facilement. Aussi, puisque les deux modèles appartiennent au niveau
microarchitecture, la méthodologie n’exige aucune fonction d’abstraction de données (qui
reste extrêmement difficile à définir pour la majorité des approches), uniquement une
fonction d'abstraction de temps est demandée pour synchroniser les deux modèles. Un
avantage majeur de ce choix élégant est l'habilité d'effectuer la preuve par induction au
sein du même langage de spécification, plutôt que par la simulation symbolique à travers
un outil de preuve qui reste très difficile à manipuler .
Les caractéristiques potentielles de la méthodologie proposée ont été démontrées sur les
processeurs MIPS dans un environnement fonctionnel.