Dans le cadre du travail de recherche bibliographique devant être effectué à l'IRCCyN qui a comme sujet "La validation de modèles de pipeline, vis à vis de leur cible réelle", il m'étais imparti de trouver des méthodes de vérification formelle d'automates finies.
Le présent slide présente deux algorithmes de vérification formelle : La méthode de Chow, et la méthode de Tour de Transition
Vérification formelle de modèle - Méthode de Chow et Méthode de Tour de Transition
1. Validation temporelle d’un modèle de
pipeline vis à vis de la cible réelle
Présentation Recherche Bibliographique
BENBOUIDDA Ossama
Ecole Centrale de Nantes – Master ARIA TRCS
2014 - 2015
2. 2
Introduction (1) :
Contexte :
Contexte général :
• Vérification des modèles d’automates à états finis
• Validation des modèles
Contexte particulier/Domaine d’application :
• Modélisation des pipelines (Processeur)
• Vérification des modèles pipeline (Processeur)
• Simulation de pipeline
• Génération de simulateurs de pipelines
3. 3
Introduction (2) :
Données du problème :
• 1. Spécification du pipeline : Spécification matérielle d’un
pipeline
4. 4
Introduction (3) :
Données du problème :
• 2. Un modèle d’un pipeline : Un modèle de pipeline sous
forme de Machine de Mealy/Automate.
5. 5
Introduction (4) :
Le problème :
• Comment valider nos modèles : • Quelle méthode choisir :
7. 7
Introduction (6) :
Dans le cadre de ce séminaire :
Introduction aux notions relatives au sujet :
• Architecture des processeurs
• Modélisation, types d’erreur et vérification
Généralités et notions sur la théorie des graphes
Application de la méthode des séquences caractéristiques[CHO78]
Application de la méthode de Tour de Transition[NT81]
9. 9
Introduction aux notions relatives au sujet :
Architectures des processeurs (1) :
Tout système utilisant un microprocesseurs est organisé selon les
niveaux suivants1 :
1 : Andrew Tanenbaum,Structured Computer Organization (5th Edition)
Niveau 5 : Langage
compilé
Niveau 4 : Langage
assembleur
Niveau 3 : Traitement
Système d’exploitation
Niveau 2 : Architecture
jeu d’instruction (ISA)
Niveau 1 : Micro-
architecture
Niveau 0 : Réalisation
logique numérique
10. 10
Introduction aux notions relatives au sujet :
Architectures des processeurs (2) :
Niveau 2 - Architecture jeu d’instruction :
Instructions logiques câblés en microprocesseur (LOAD, Or, XOR..)
Niveau 1 - Microarchitecture :
Vue logique du processeur, elle présente :
Nombre de pipeline, longueurs.
Les mémoires caches
Etc
Niveau 0 – Réalisation logique numérique:
Le niveau où l’information transite de l’état physique à l’état numérique, via
des techniques comme l’échantillonage et la quantification
11. 11
Introduction aux notions relatives au sujet :
Architectures des processeurs (3) :
Concept pipeline :
Elément en microarchitecture dans lequel l’éxécution des instructions
est découpé en étages
Exemple pipeline et modélisation (Avec automate fini) [HML07] :
12. 12
Introduction aux notions relatives au sujet :
Modélisation – Type d’erreurs à éviter:
Erreurs d’operation:
Il y’a une erreur d’opération entre automate « A » (modèle) et « A’ »
spécification, si en changeant les sorties de l’automate « A », les
automates « A » et « A’ » deviennent équivalents.
13. 13
Introduction aux notions relatives au sujet :
Modélisation – Type d’erreurs à éviter:
Erreurs de transfert :
Il y’a une erreur d’opération entre automate « A » (modèle) et « A’ »
spécification, si en changeant un des prochains états de « A », les
automates « A » et « A’ » deviennent équivalents.
14. 14
Introduction aux notions relatives au sujet :
Modélisation – Type d’erreurs à éviter:
Autres types d’erreurs:
Les erreurs mixtes (de transfert ET d’opération), ou des erreurs
d’existence d’état de plus ou de moins.
15. 15
Introduction aux notions relatives au sujet :
Méthodes de detection d’erreurs:
La méthode de Tour de Transition :
La méthode la plus simple pour générer une séquence de test. Les
séquences d’entrées sont appliquées au hasard au modèle, jusqu’à ce que
les transitions soient traversées au moins une seule fois.
La méthode de Chow :
Elle génère un ensemble de séquences qui distingue deux paires d’état.
Autres méthodes [GEN92]:
• Méthode des sequences probabilistes
• Méthode UIO (Unique Input Output)
• Méthode des séquence distinguée
17. 17
Introduction à la théorie des graphes :
Graphe orienté et degré d’un sommet:
Graphe orienté:
Un graphe orienté est défini par
un ensemble d’états, et d’arcs
reliant ces états. Ces arcs ont
un sens, ceci dit : u->v ≠ v-u
Degré d’un sommet :
Le degré d’un sommet est égal
à la somme des arcs entrants et
des arcs sortants. On le note
« d » .
Exemple :
Le graphe orienté à gauche se
compose de 5 arcs.
On a :
d(‘1’)=3, d(‘2’)=2, d(‘0’)=4
18. 18
Introduction à la théorie des graphes :
Graphe simple et multigraphe:
Graphe simple:
Un graphe orienté est dit
simple, quand il ne comporte
pas de boucle (Extrémité initiale
= extrémité finale), et deux
arcs, entre deux sommets, de
même sens.
Multigraphe :
Un multigraphe est un graphe
orienté, qui n’est pas simple.
Donc qui peut comporter des
boucles, et deux arcs de même
sens entre les même sommets.
Graphe pas simple Graphe « pas simple»
(Présence boucle)
Multigraphe
19. 19
Introduction à la théorie des graphes :
Chemin et circuit :
Chemin:
Un chemin, est une suite de
sommets reliés par des arcs
La longueur d’un chemin est
le nombre de ses arcs.
Circuit :
Un circuit est un chemin dont
l’extrémité initiale et finale est
confondue
La séquence (0,1,2) constitue un chemin
de longueur 2
La séquence (0,1,2,3,0) consitute un
circuit (Et un chemin aussi)
La séquence/état (2) consitute un chemin
de longueur 0
20. 20
Introduction à la théorie des graphes :
Circuit eulérien et graphe eulérien :
Circuit eulérien :
Un circuit est dit eulérien s’il
passe par tous les sommets du
graphe, en ne passant qu’une
seule fois par chaque arc.
Graphe eulérien:
Un graphe est dit eulérien s’il
admet un circuit eulérien (Pas
forcément un seul !)
Circuit eulérien constitué de la séquence (2,0,1,0,1,2)
21. 21
Introduction à la théorie des graphes :
Graphe connexe et graphe fortement connexe :
Graphe connexe :
Un graphe est dit connexe, s’il
existe un chemin pour tout
couple de sommet (u,v).
Graphe fortement connexe :
Un graphe est fortement
connexe, s’il existe un chemin,
dans « les deux sens », pour
tout couple (u,v)
Graphe convexeGraphe non convexe Graphe fortement convexe
22. 22
Introduction à la théorie des graphes :
Machine de Mealy:
Définition Machine de Mealy :
On peut définir une machine de Mealy par le quantuplé 𝑆, 𝐼, 𝑂, 𝛿, 𝜆 tel que :
• S est un ensemble d’états finis
• I est un ensemble fini des symboles d’entrée.
• O est un ensemble fini des symboles de sorties
• 𝛿: 𝑆 × 𝐼 ⟶ 𝑆 est la fonction de transfert
• 𝜆: 𝑆 × 𝐼 ⟶ 𝑂 est la fonction de sortie
23. 23
Introduction à la théorie des graphes :
Définitions relatives à la machine de Mealy:
Etats équivalents :
On dira que deux états q1 et q2 sont
équivalents si toutes les entrées qui
leur sont appliqué donnent lês
mêmes sorties
Machine de Mealy minimale :
On dira qu’une machine de Mealy est
réduite ou minimale s’elle ne contient
pas des états équivalents.
Machine de Mealy “pas minimale”
25. 25
La méthode de Chow [CHO78]:
Ou la méthode des sequences caractéristiques
Objectif :
Générer une sequence de tests, qui nous permettra de verifier un
modèle par rapport à sa spécification
Principe :
On distingue chaque paire d’état d’une Machine de Mealy avec
une sequence s caractéristique, de distinction de ces deux états.
Hypothèses de l’algorithme :
Machine de Mealy minimale
Machine de Mealy complete (On a toutes les transitions
possibles depuis chaque état)
26. 26
La méthode de Chow [CHO78]:
Les étapes de realisation de la méthode :
Etape 1 : Estimer le nombre maximum d’états k dans la spécification de la
machine M.
Etape 2 : Construire l’ensemble de caractérisation W de la machine M.
Etape 3 : Construire l’arbre de test de la machine M.
Etape 4 : Générer, à partir de l’arbre de test, l’ensemble P : L’ensemble de
couverture des transitions.
Etape 5 : Construire l’ensemble Z à partir de la donnée de P, et de k.
Etape 6 : Faire les tests P.Z (Ou “.” denote la concatenation), en partant à
chaque fois de l’état initial.
27. 27
La méthode de Chow [CHO78]:
Etape 1 : Estimation du nombre k dans la specification
L’estimation de k est basée sur la connaissance de l’implémentation. En cas
d’absence de cette donnée, on prendra k = Card(S) (Avec S = l’ensemble
de sommets de notre modélisation)
28. 28
La méthode de Chow [CHO78]:
Etape 2 : Construire l’ensemble de caracétérisation W
C’est quoi W ?
Soit M 𝑆, 𝐼, 𝑂, 𝛿, 𝜆 une machine de Mealy complète et minimale.
On appellera W, l’ensemble des séquences qui nous permettra de distinguer
chaque paire de deux états distincts via leurs sorties.
Si, on a deux états qi et qj ∈ 𝑆, alors ∃ 𝑠 ∈ 𝐼∗ tel que 𝜆(qi,s) ≠ 𝜆(qj,s)
29. 29
La méthode de Chow [CHO78]:
Etape 2 : Construire l’ensemble de caracétérisation W
Exemple de l’ensemble W
W={baaa,aa,aaa}
𝜆(q1,baaa) = 1101
𝜆(q2,baaa) = 1100
Du coup, la sequence “baaa”
distingue l’état q1 de l’état q2.
30. 30
La méthode de Chow [CHO78]:
Etape 2 : Construire l’ensemble de caracétérisation W
Etapes de construction de l’ensemble W :
• Etape 1 : Construire un ensemble de partitions k-équivalentes de
S, dénotés P1, P2..Pk avec k>0
• Etape 2 : Traverser les k-équivalences dans l’inverse pour obtenir
des sequences de distinctions de chaque paire d’état et ainsi
construire l’ensemble W.
31. 31
La méthode de Chow [CHO78]:
Etape 2 : Construire l’ensemble de caracétérisation
Etape 1 : Construction de partitions k-équivalentes
Etape 1 : construction des partitions k-équivalentes :
Définition : Une partition k-équivalente de S, est un ensemble
d’ensembles Si Tel que ∪ 𝑆𝑖 = S et les états dans chaque Si sont k-
équivalents
Prenons cet exemple :
⟹
Format tabulaire
32. 32
La méthode de Chow [CHO78]:
Etape 2 : Construire l’ensemble de caracétérisation
Etape 1 : Construction de partitions k-équivalentes
On construit la 1-partition:
On regroupe les états ayant les mêmes sorties et on construit de sous
ensembles
33. 33
La méthode de Chow [CHO78]:
Etape 2 : Construire l’ensemble de caracétérisation
Etape 1 : Construction de partitions k-équivalentes
On construit la 1-partition:
On rechange les indices des “états suivants” pour ajouter l’indice de
l’ensemble auquel appartient l’état, on supprime aussi la colonne des
sortie. Ceci nous donne la table suivante, la table P1 :
34. 34
La méthode de Chow [CHO78]:
Etape 2 : Construire l’ensemble de caracétérisation
Etape 1 : Construction de partitions k-équivalentes
On construit la 2-partition:
On regroupe tous les “états suivants” ayant le même indice pour une
transition donnée, “a” ou “b” dans le même sous ensemble. Ceci nous
donne alors la table P2. On change le deuxième indice au niveau de la
2ème colonne.
35. 35
La méthode de Chow [CHO78]:
Etape 2 : Construire l’ensemble de caracétérisation
Etape 1 : Construction de partitions k-équivalentes
On réitère le processus :
A chaque fois, on va regrouper à chaque fois les deuxième indices dans la
colonne “état suivant”, jusqu’à ce que l’on trouve chaque état à lui seul
dans un ensemble. Ceci nous donne alors
Si Etat
Coutant
Etat suivant
36. 36
La méthode de Chow [CHO78]:
Etape 2 : Construire l’ensemble de caracétérisation
Etape 2 : Traverser les k-equivalence dans l’inverse.
Trouver une sequence caractéristique pour q1 et q2 par exemple :
Etape 1 : On essaie de trouver les tables Pi and Pi+1 de tel sorte
à ce que (q1, q2) sont dans le même ensemble dans la table Pi
et dans différents ensembles dans a table Pi+1. Nous trouvons
alors P3 et P4.
Etape 2 : Nous initialisons z=. Nous essayons de trouver la
lettre/Transition qui distingue “a” et “b” dans P3, nous trouvons
que c’est b . Nous faisons alors z=b.z
Etape 3 : On réitère l’étape 2, en allant à chaque vers une table
inférieure (P2, puis P1, puis P0), jusqu’à ce que l’on s’arrête
avec la representation tabulaire de notre machine de M. Et nous
trouvons alors z=baaa
𝑂𝑛 𝑎 𝑏𝑖𝑒𝑛 ∶ 𝜆(q1,baaa) = 1101 , 𝜆(q2,baaa) = 1100 et 𝜆(q1,baaa) ≠ 𝜆(q2,baaa)
37. 37
La méthode de Chow [CHO78]:
Etape 2 : Construire l’ensemble de caracétérisation
Etape 2 : Traverser les k-equivalence dans l’inverse
On répète le processus pour chaque paire d’état:
On trouve alors pour notre exemple :
W={a, aa, aaa, baaa}
38. 38
La méthode de Chow [CHO78]:
Les étapes de realisation de la méthode :
Etape 1 : Estimer le nombre maximum d’états k dans la spécification de la
machine M.
Etape 2 : Construire l’ensemble de caractérisation W de la machine M.
Etape 3 : Construire l’arbre de test de la machine M.
Etape 4 : Générer, à partir de l’arbre de test, l’ensemble P : L’ensemble de
couverture des transitions.
Etape 5 : Construire l’ensemble Z à partir de la donnée de P, et de k.
Etape 6 : Faire les tests P.Z (Ou “.” denote la concatenation), en partant à
chaque fois de l’état initial.
On est arrivé ici
Rappel
39. 39
La méthode de Chow [CHO78]:
Etape 3 : Construction arbre de test
Construction arbre de test : On commence par l’état initial,et on
franchit toutes les transitions, à chaque fois qu’on trouve un
nouveau état, on continue, et on répète. Sinon, on termine.
=>
Arbre de test
40. 40
La méthode de Chow [CHO78]:
Etape 4 : Génération de l’ensemble P à partir de l’arbre de test
La generation de l’ensemble P: La generation se fait avec un
parcours de l’arbre en profondeur de l’arbre de test. 𝜀 appartient
à l’arbre de test aussi
=>
P={, a, b, bb, ba, bab, baa, baab, baaa,
baaab, baaaa}
41. 41
La méthode de Chow [CHO78]:
Etape 5 : Construire de Z à partir de W et k
On a : Z = I0.W I1.W ….. Ik-1-n.W Ik-n.W
avec k=card(Sommetspecification), et n=card(Sommetmodel)
Pour le cas particulier ou k=n, on a:
Z = I0.W = W
Pour notre cas, I={a,b}, W={a, aa, aaa, baaa} et k=6, on a :
Z = W X1.W ={a, aa, aaa, baaa} {a, b}.{a, aa, aaa, baaa}
={a, aa, aaa, baaa, aa, aaa, aaaa, baaaa, ba, baa, baaa,
bbaaa}
42. 42
La méthode de Chow [CHO78]:
Etape 6 : Générer la suite de test T = P.Z
La séquence de test, à tester sur notre modèle est alors : T = P.Z
Ainsi, on essaie d’abord de connaître la réponse par la spécification.
On fait le même test dans modélisation
Et on sort avec un verdict. Prenons t2=baaba
Spécification
M(t2)=11011
44. 44
La méthode de Chow [CHO78]:
Ou la méthode des sequences caractéristiques
Objectif :
Générer une sequence de tests, qui nous permettra de verifier un
modèle par rapport à sa spécification
Principe :
On fait le parcours du graphe en intégralité pour générér la
sequence de test
Hypothèses de l’algorithme :
Machine de Mealy minimale
Machine de Mealy complete (On a toutes les transitions
possibles depuis chaque état)
Machine de Mealy fortement convexe
45. 45
La méthode de Tour de Transition [NT81]:
Etape 1 : Vérifier si le graphe est fortement connexe
Etape 2 : Vérifier si tous les sommets sont équilibrés. S’ils le sont
on passe directement à l’étape 5 (Puisque notre graphe serait
éulérien1)
Etape 3 : Equilibrer les sommets en utilisant l’algorithme de
transport.
Etape 4 : Construire le nouveau graphe, en ajoutant les arcs dans
l’étape 3.
1 : Théorème : Tout graphe fortement connexe et équilibré est eulérien
Etape 5 : Faire le parcours du graphe eulérien et générer une suite
de test.
46. 46
La méthode de Tour de Transition [NT81]:
Application de la méthode sur un exemple :
Etape 1 : Le graphe est bel et bien
fortement complexe.
Etape 2 : On a :
𝛿 0 = 𝑑+
0 − 𝑑−
0 = 2 − 2 = 0 ⟹ Sommet équilibré.
𝛿 1 = 𝑑+
1 − 𝑑−
1 = 2 − 3 = −1 ⟹ Sommet
déséquilibré.
𝛿 2 = 𝑑+
2 − 𝑑−
2 = 3 − 2 = +1 ⟹ Sommet
déséquilibré.
𝛿 3 = 𝑑+
3 − 𝑑−
3 = 1 − 2 = −1 ⟹ Sommet
déséquilibré.
𝛿 4 = 𝑑+
4 − 𝑑−
4 = 2 − 1 = +1 ⟹ Sommet
déséquilibré.
47. 47
La méthode de Tour de Transition [NT81]:
Application de la méthode sur un exemple :
Etape 3 : Il y’a des sommets déséquilibrés, il faut les équilibrer en
ajoutant des arcs de plus.
1. On a en général des sommets qui ont un surplus d’arcs entrant par
rapport aux sortants. Leur ensemble, on le note D+
2. On a des sommets qui ont un surplus d’arcs sortant par rapport
aux arcs entrants. Leur ensemble, on le note D-
On essaie alors d’ajouter des arcs de plus allant de sommets ∈ D- au
sommets ∈ D+
Problème linéaire, on utilisera l’algorithme de transport pour le résoudre
48. 48
La méthode de Tour de Transition [NT81]:
Application de la méthode sur un exemple :
Etape 3 : Tout calcul fait avec l’algorithme de Transport, on voit qu’il
faudrait ajouter un arc (1,4) et un arc (3,2), et rend notre circuit eulérien
49. 49
La méthode de Tour de Transition [NT81]:
Application de la méthode sur un exemple :
Etape 4 : Détérmination circuit eulérien.
Etape 1 : Construction arbre de couverture (Arbre reliant tous
les sommets de notre graphe).
Etape 2 : Construction d’un tableau avec les sommets de
notre arbre de couverture, des sommets prédécésseurs et
arcs prédécesseurs. On part de l’état premier de notre
tableau, et on ajoute le premier arc prédécesseur
correspondant à la fin d’une liste, et on repart au sommet
prédécesseur, et on refait la même procedure, jusqu’à ce que
l’on ait plus d’arcs prédécesseurs.
50. 50
La méthode de Tour de Transition [NT81]:
Application de la méthode sur un exemple :
Etape 4 : Détérmination circuit eulérien.
Le circuit trouvé consitituera notre séquence de test, et on
va faire les tests avec :
a/1, b/4, c/1, b/4, e/3, f/2, g/3, f/2, h/0, i/2, j/1, d/0
51. 51
Séquences de tests avec Tour de Transition
On part de l’état initial qu’on avait pris dans notre arbre de
couverture et on fait alors la séquence de tests suivants :
53. 53
Références :
[CHO78] : T.S. Chow. Testing software design modeled by finite-state
machines. Software Engineering, IEEE Transactions on, (3) :178–187,
1978
[NT81] : Sachio Naito and Masahiro Tsunoyama. Fault detection for
sequential machines by transition tours. In Proc. FTCS, volume 81,
pages 238–243, 1981
[HML07] : Rola Kassem, Mikäel Briday, Jean-Luc Béchennec, Guillaume
Savaton, Yvon Trinquet. Harmless, a Hardware Architecture Description
Language Dedicated to Real-Time Embedded System Simulation.
Journal of Systems Architecture, Elsevier, 2012, 58 (8), pp.318-337.
[GEN92] Towards a New World in Computer Communication: Eleventh
International Conference on Computer Communication, Genova, Italy,
1992