4.2 Verication de calcul
4.2.5 Ordonnancement du graphe de test en-ligne
L'architecture testable en-ligne est generee par le regroupement de deux graphes de ot de
donnee. Ce sont le graphe nominal et celui du test en-ligne. Le graphe de test en-ligne
est ordonnance dans les temps oisifs de l'ordonnancement nominal. A priori, les operations
de test en-ligne ne sont ordonnancees que dans les temps oisifs. Ceci reduit au minimum
le surco^ut en surface de la methode. Cependant, des unites fonctionnelles supplementaires
peuvent ^etre ajoutees si la latence de faute n'est toujours pas satisfaite. Les contraintes
de surface doivent ^etre respectees. Cela implique l'introduction partielle de la technique de
redondance materielle a c^ote de la technique de redondance temporelle pour la realisation de
l'architecture testable en-ligne. Deux cas sont donc a considerer lors de l'ordonnancement
du graphe de test en-ligne.
Le premier est le cas ou les contraintes de surface ne permettent pas l'ajout d'unites
fonctionnelles supplementaires pour le graphe de test en-ligne. Dans ce cas il faut appuyer
sur la structure et l'ordonnancement du graphe de test en-ligne pour repondre aux contraintes
de test en-ligne. Un ensemble de variante-duales du graphe de ot de donnees nominal peut
^etre explore pour rechercher le graphe de test en-ligne qui convient aux contraintes imposees.
Le deuxieme cas est celui ou les contraintes de surface permettent l'ajout de nouvelles
unites fonctionnelles pour le graphe de test en-ligne. Dans ce cas, il est possible de repondre
a des contraintes de test en-ligne plus critiques mais avec une degradation de surface. Le
nombre des unites fonctionnelles supplementaires est ajoute au nombre des temps oisifs des
unites fonctionnelles nominales pour formuler une nouvelle contrainte de surface.
L'ordonnancement du graphe de test en-ligne se fait en deux etapes. La premiere etape
comprend l'ordonnancement des operations du chemin critique. A la n de cette etape la
latence de faute peut ^etre calculee. Si les contraintes de test en-ligne sont satisfaites, la
deuxieme etape prend eet. Sinon, un autre graphe de test en-ligne est selectionne.
L'ordonnancement oriente par liste est utilise pour inserer les operations du graphe de test
en-ligne dans l'architecture nominale. Une liste des operations est etablie. Cette liste contient
les operations du graphe de test en-ligne dans un ordre de priorite. Une operation est
priori-taire si son intervalle de positionnement est critique. Un intervalle de positionnement, ou de
71
mobilite, d'une operation est compris entre les ordonnancements le plut^ot possible (ASAP)
et le plus tard possible (ALAP) du graphe nominal. La mobilite d'une operation represente
le nombre de pas de contr^ole auxquels cette operation peut ^etre associee. Cette mobilite est
comprise entre 1 et le nombre total de pas de contr^ole de l'ordonnancement. Les operations
ayant le m^eme degre de mobilite sont classees selon leur relation de precedence. Ce premier
etablissement de la liste des operations permet l'identication du chemin critique du graphe
de test en-ligne. Une fois que les operations du chemin critique sont ordonnancees, la
testa-bilite en-ligne est evaluee. Si la latence de faute obtenue ne correspond pas aux contraintes
de test en-ligne, la decision est prise d'ajouter des unites fonctionnelles supplementaires ou
d'explorer d'autres graphes de test en-ligne. Cela depend des contraintes de surface.
Si la latence de faute est satisfaisante, la mobilitedes operations restant a ordonnancer est
donc recalculee en tenant compte du nouveau nombre de pas de contr^ole et de la distribution
des temps oisifs dans l'ordonnancement nominal
1.
En general, l'ordonnancement du graphe de test en-ligne se fait par les etapes suivantes:
1. Eectuer les ordonnancements ASAP et ALAP du graphe de test en-ligne
2. Calculer les mobilites des operations
3. Classer les operations par mobilite croissante
4. Ordonnancer les operations du chemin critique
5. Si la latence de faute obtenue est satisfaisante, continuer
6. Calculer les mobilites des autres operations selon le nouveau nombre de pas de contr^ole
et la distribution des temps oisifs.
7. Classer les operations par mobilite croissante, puis par ordre de precedence
8. Ordonnancer les operations en donnant la priorite aux operations de mobilite faible
jusqu'a concurrence des ressources disponibles.
Les ressources disponibles sont exprimees par les temps oisifs des unites fonctionnelles de
l'architecture nominale. Si les contraintes de surface le permettent, il est possible d'ajouter
un certain nombre d'unites fonctionnelles pour ameliorer la latence de faute. Dans ce cas,
les unites fonctionnelles supplementaires sont ajoutees comme des temps oisifs dans tous les
pas de contr^ole de l'ordonnancement nominal.
Apres chaque ordonnancement d'une operation dans la liste, la mobilitede ses predecesseurs
et ses successeurs non ordonnances est recalculee et la liste des operations a ordonnancer est
modiee. Il est possible qu'une partie seulement des temps oisifs dans chaque pas de contr^ole
soit utilisee. Cela depend de la structure du graphe de test en-ligne et de la distribution des
temps oisifs dans l'architecture nominale. Lorsque les temps oisifs restant dans le cycle
fonc-tionnel ne correspondent plus a l'operation selectionnee pour l'ordonnancement ou lorsqu'il
n'existe plus de temps oisifs dans le cycle fonctionnel actuel, un nouveau cycle fonctionnel
est insere. L'algorithme dans la gure (4.14) represente l'ordonnancement du graphe de test
en-ligne dans l'architecture nominale.
1
Une operation peut ^etre associee a un pas de contr^ole si ce pas appartient a l'intervalle de positionnement
72
Start
Latence de faute satisfaisante?
End Séléction d’une opération dans la liste
Ordonnancement de l’opération dans le premier temps oisif disponible
Fin de la liste des opérations?
Non
Oui
Modification de la liste des opérations
Fin du cycle fonctionnel?
Non Oui
Identification des temps oisifs
dans l’ordonnancement nominal SDFG
temps oisifs + ressources supplémentaires Calcul du nombre de "ressource disponible" :
Calcul de la mobilité des opérations
Insertion d’un nouveau cycle fonctionnel Etablissement de la liste des opérations à ordonnancer
Non Oui
Architecture testable en-ligne Exploration d’autres méthodes de test en-ligne
73
Exemple
Considerons l'exemple dans la gure (4.12). Ce graphe de test en-ligne doit ^etre insere dans
l'architecture nominale dont l'ordonnancement est dans la gure (4.10). Il represente une
variante-duale du graphe nominal. Les ordonnancements ASAP et celui ALAP du graphe
de test en-ligne sont presentes dans la gure (4.15). En premier temps, les mobilites des
operations sont calculees comme le montre le tableau (4.3). Une liste des operations a
mobilite croissante est etablie. L'ordre de precedence est pris en compte pour classer les
operations ayant le m^eme degre de mobilite.
*
2ctrl
x
dx
x
+
1 <1A
+2 4*
y
dx
u
y
+2 4*
y
dx
u
y
ctrl
x
dx
x
+
1 <1A
*
2*
1 1 3 2*
-dx
#3
x
u
u
u
y
Ordonnancement ASAP
*
1 1 3 2*
-x
u
u
u
y
Ordonnancement ALAP
dx
#3
Figure 4.15: L'ordonnancement ASAP et ALAP du graphe de test en-ligne.
Liste des operations
1 ; 1 3 ; 2 2 4
+
2+
1<
1Mobilite 1 1 1 1 2 3 3 3 3
Table 4.3: La mobilite des operations du graphe de test en-ligne.
La premiere operation a ordonnancer est l'operation
1
. Un premier cycle fonctionnel
est introduit dans l'architecture testable en-ligne. Le premier pas de contr^ole contenant un
temps oisif qui correspond a l'operation selectionnee se trouve en pas 4 du cycle introduit.
L'operation
1
est ordonnancee dans ce pas de contr^ole. La mobilite ne change pas pour ses
successeurs.
La deuxieme operation est selectionnee, c'est l'operation
;1
. Celle-ci a une relation
de precedence avec l'operation
1
, il n'existe plus de temps oisifs qui correspondent a ce
type d'operations dans le cycle fonctionnel actuel. Un nouveau cycle fonctionnel est
intro-duit. L'operation selectionnee peut ^etre ordonnancee dans le premier ou le deuxieme pas de
contr^ole. De m^eme facon, l'operation
3
est ordonnancee dans le quatrieme pas de contr^ole
et un nouveau cycle fonctionnel est introduit pour ordonnancer l'operation
;74
Au niveau de cette etape, les operations du chemin critiques ont ete ordonnancees. Le
nombre de cycles fonctionnels introduits determine la latence de faute. Supposons que la
latence de faute obtenue soit satisfaisante. L'ordonnancement du graphe de test en-ligne
continue. Les mobilites des operations restant a ordonnancer sont recalculees. Le nouveau
nombre de pas de contr^ole et la distribution des temps oisifs dans les cycles fonctionnels
introduits sont consideres. Par exemple, l'operation
2
a une mobilite de 1. En eet, cette
operation ne peut ^etre ordonnancee que dans le quatrieme pas de contr^ole du premier cycle
fonctionnel. Il existe deux raisons pour cette valeur de mobilite, la relation de precedence
avec l'operation
3
et l'indisponibilite de temps oisifs pour la multiplication dans les trois
premiers pas de contr^ole du cycle fonctionnel. La nouvelle liste des operations avec leurs
mobilites est en tableau (4.4).
Liste des operations
2
4
+
2+
1<
1Mobilite 1 1 1 3 3
Table 4.4: Les nouvelles valeurs de la mobilite des operations.
L'operation suivante, a ordonnancer, est donc
2
. Cette operation a une relation de
precedence avec les operations deja ordonnancees. L'exploration des temps oisifs qui
convi-ennent pour l'ordonnancement de cette operation commence par le premier cycle fonctionnel.
Le quatrieme pas de contr^ole convient car il reste encore un temps oisif pour la
multipli-cation. L'ordonnancement de cette operation n'aecte pas l'ordre des operations dans la
liste. L'operation
4
est selectionnee pour l'ordonnancement. Elle est ordonnancee dans le
quatrieme pas de contr^ole du deuxieme cycle fonctionnel. Un successeur existe. Sa
mo-bilite ne change pas. A noter que, apres l'ordonnancement du chemin critique, les pas de
contr^ole associes au graphe de test en-ligne sont entre le quatrieme pas de contr^ole du
pre-mier cycle fonctionnel et le prepre-mier pas de contr^ole du troisieme cycle fonctionnel. Par
consequent, la mobilite de l'operation +
2devient 1 et cette operation devient prioritaire
pour l'ordonnancement. Le pas de contr^ole auquel l'operation +
2peut ^etre associee contient
un temps oisif pour l'addition. Dans le cas ou le (ou les pas) de contr^ole ne contiennent pas
les temps oisifs necessaires, les pas de contr^ole suivants sont explores et un nouveau cycle
fonctionnel est introduit si necessaire.
Les operations +
1et <
1peuvent ^etre ordonnancees dans le deuxieme cycle fonctionnel.
On a le choix entre les deux premiers et les deux derniers pas de contr^ole.
A la n de cette t^ache d'ordonnancement, l'architecture testable en-ligne peut ^etre generee
par l'allocation de ressources et l'assignation.
L'insertion d'un graphe de test en-ligne pour la verication globale du calcul entra^ne
un surco^ut en surface. Cela revient au fait de l'utilisation de quelques multiplexeurs pour
le chemin de donnees de test et a la modication necessaire en contr^ole. Ce co^ut reste
cependant tres faible en raison du co^ut tres faible des multiplexeurs et de la patrie contr^ole
par rapport aux additionneurs et aux multiplieurs. A titre d'exemple, si l'on utilise 10
multiplexeurs supplementaires pour assurer le test en-ligne d'une architecture composee de
deux multiplieurs et d'un additionneur, le co^ut total de ces multiplexeurs ne depasse pas
75
10% de la surface des multiplieurs et de l'additionneur (voir gure (3.6), de largeur 16 bit
des unites fonctionnelles).
4.3 Conclusion
Dans cette partie, deux methodes de test ligne ont ete proposees. La methode de test
en-ligne non-concurrent et la methode de test en-en-ligne semi-concurrent. L'etape de l'integration
de ces deux methodes de test en-ligne au nouveau ot de synthese de haut niveau pour le
test en-ligne est montree dans la gure (4.16).
Experiences
End
Description comportementale Start
Etape1: Optimisation
comportementale (orienté testabilité)
Etape2: HLSFT
Cible technologique Optimisation de la description
Compilation/Ordonnancement Contraintes de test en-ligne,
de surface, et de délai
Méthode de test en-ligne non-concurrent
Méthode de test en-ligne semi-concurrent
Nouvelle experience Architecture testable en-ligne
Insertion de la méthode de test en-ligne Etape3: DFT