Title: Diapositive 1
1Test de lunité dexécution dune instruction par
application dinstructions de test
Projet du cours ELE6306 Tests des systèmes
électroniques.
Nicolas Beucher. Vincent Binet.
2Test de lunité dexécution dune instruction par
application dinstructions de test
Plan
- Introduction - Problématique
- Revue de littérature sur le test basé sur le
logiciel - Présentation de larchitecture du Xtensa
- Génération et utilisation des vecteurs de test
- Résultats
- Conclusion
3Test de lunité dexécution dune instruction par
application dinstructions de test
Plan
- Introduction - Problématique
- Revue de littérature sur le test basé sur le
logiciel - Présentation de larchitecture du Xtensa
- Génération et utilisation des vecteurs de test
- Résultats
- Conclusion
4Test de lunité dexécution dune instruction par
application dinstructions de test
Introduction - Problématique
- Microprocesseurs complexes, pipelinés,
rapides. - ASIP processeurs à jeu dinstruction
spécialisé. - Test dun microprocesseur à vitesse réelle
coûteux. - Machines de test ne peuvent pas opérer à cette
vitesse. - BIST coûteux et dégrade les performances.
- Logique supplémentaire et horloge moins rapide
- Nécessité de tester autrement.
SOLUTION Test basé sur des instructions software
-based self testing
5Test de lunité dexécution dune instruction par
application dinstructions de test
Introduction - Problématique
- Création de programme de test
- Fonctionnent à vitesse réelle.
- Ne nécessitent aucune logique supplémentaire.
- Permettent de réaliser des tests de bonne qualité.
- On utilise le Processeur Xtensa de Tensilica
pour appliquer cette méthode de test.
6Test de lunité dexécution dune instruction par
application dinstructions de test
Plan
- Introduction - Problématique
- Revue de littérature sur le test basé sur le
logiciel - Présentation de larchitecture du Xtensa
- Génération et utilisation des vecteurs de test
- Résultats
- Conclusion
7Test de lunité dexécution dune instruction par
application dinstructions de test
Revue de littérature sur le test basé sur le
logiciel
- Principe
- Description au niveau porte du processeur
- Vecteurs de test permettant didentifier les
fautes de collage - Programme permettant de générer les instructions
et les données de test engendrant les vecteurs de
test - Test du processeur
-
ATPG
8Test de lunité dexécution dune instruction par
application dinstructions de test
Revue de littérature sur le test basé sur le
logiciel
- Différentes méthodes
- Test de haut niveau avec des instructions
aléatoires (faible taux de couverture) 4 - Test basé sur une description bas niveau (portes)
du processeur (taux de couverture plus élevé mais
coûteux en temps 2 - Test haut niveau (RTL) taux de couverture
élevé, plus rapide 5 - Test haut niveau (RTL) couplé avec une analyse
détaillée pour les modules présentant une
structure régulière 1
1 N. Kranitis, A. Paschalis, D. Gizopoulos, and
G. Xenoulis, Software-based self-testing of
embedded processors, Computers, IEEE
Transactions on, vol. 54, no. 4, pp. 461475,
2005. 2 L. Chen and S. Dey, Software-based
self-testing methodology for processor cores,
Computer-Aided Design of Integrated Circuits and
Systems,IEEE Transactions on, vol. 20, no. 3, pp.
369380, 2001. 4 K. Batcher and C.
Papachristou, Instruction randomization self
test for processor cores, in VLSI Test
Symposium, 1999. Proceedings. 17th IEEE, 1999,
pp. 3440. 5 N. Kranitis, D. Gizopoulos, A.
Paschalis, and Y. Zorian, Instructionbased
self-testing of processor cores, in VLSI Test
Symposium, 2002. (VTS 2002). Proceedings 20th
IEEE, 2002, pp. 223228.
9Test de lunité dexécution dune instruction par
application dinstructions de test
Revue de littérature sur le test basé sur le
logiciel
Comparaison des différentes techniques
Aire Additionnelle () Taux de couverture () A la vitesse de fonctionnement ? Équipement de test externe ? Taille du programme/ Taille des réponses (en bytes) Temps dexécution (cycles)
Chaîne de scan 11.95 89.39 NON OUI N/A N/A
BIST 169.09 88.69 OUI NON N/A N/A
Technique 2 0 91.42 OUI NON 1129/514 137 649
Technique 5 0 91.34 OUI NON 923 /124 16 667
Technique 2 description du processeur niveau
porte Technique 5 description haut niveau
(RTL)
10Test de lunité dexécution dune instruction par
application dinstructions de test
Revue de littérature sur le test basé sur le
logiciel
Amélioration de la technique 1 par rapport à
lATPG classique pour une structure régulière
du type Multiplieur
Opérandes de la forme preuve XXN-1 ..X1X0
(C7C6C5C4) . (C7C6C5C4) Y YN-1 ..Y1Y0
(C3C2C1C0) . (C3C2C1C0)
Taille du code (mots) Nombre de cycles Taux de couverture
ATPG 373 3895 99.5
Technique 1 28 3122 99
Technique 1 RTL analyse des structures
régulières preuve Gizopoulos, D. Paschalis,
A. Zorian, Y., "An effective built-in self-test
scheme for parallel multipliers," Computers, IEEE
Transactions on , vol.48, no.9pp.936-950, Sep 1999
11Test de lunité dexécution dune instruction par
application dinstructions de test
Plan
- Introduction - Problématique
- Revue de littérature sur le test basé sur le
logiciel - Présentation de larchitecture du Xtensa
- Génération et utilisation des vecteurs de test
- Résultats
- Conclusion
12Test de lunité dexécution dune instruction par
application dinstructions de test
Présentation de larchitecture Xtensa
- Processeur configurable (ASIP).
- Possibilité de création dun jeu dinstruction
spécialisé. - Processeur pipeliné à 5 étages
- étage de chargement d instruction I.
- étage de décodage et chargement des registres R.
- étage dexécution E.
- étage de relation mémoire M (deuxième niveau
dexécution si nécessaire). - étage de writeback W (écriture du résultat dans
les registres).
13Test de lunité dexécution dune instruction par
application dinstructions de test
Présentation de larchitecture Xtensa
I
R
E
M
W
Execution Unit
Inst Memory
Decode
Regfile update
Regfile
PC
14Test de lunité dexécution dune instruction par
application dinstructions de test
Présentation de larchitecture Xtensa
- Conception de processeurs adaptés aux besoins
- Fournis avec des outils de simulation et de
création - Le processeur possède deux méthodes pour le test
- Le JTAG
- Les programmes de test
15Test de lunité dexécution dune instruction par
application dinstructions de test
Plan
- Introduction - Problématique
- Revue de littérature sur le test basé sur le
logiciel - Présentation de larchitecture du Xtensa
- Génération et utilisation des vecteurs de test
- Résultats
- Conclusion
16Test de lunité dexécution dune instruction par
application dinstructions de test
Génération et utilisation des vecteurs de test
- 2 instructions ont été utilisées INDEXC et
MULTI. - MULTI réalise une multiplication entière 16 bits
signée. - INDEXC réalise un calcul dadresse complexe dans
un tableau. - Complexité et utilisation des instructions
différentes.
17Test de lunité dexécution dune instruction par
application dinstructions de test
Génération et utilisation des vecteurs de test
- Les unités déxécution, décrites au niveau
porte, des 2 instructions sont testés. - Avec un ATPG, on génère les vecteurs de test de
chacune des unités. - Le générateur retourne le nombre de vecteurs,
les vecteurs, les résultats attendue pour chacun
dentre eux et le taux de couverture.
I
R
E
M
W
Execution Unit
Inst Memory
Decode
Regfile update
Regfile
PC
Génération des vecteurs de test.
18Test de lunité dexécution dune instruction par
application dinstructions de test
Génération et utilisation des vecteurs de test
- Les vecteurs sont ensuite traduits en valeurs à
appliquer à linstruction. - Avec ces valeurs que lon stocke dans un
tableau, on appelle linstruction au travers du
programme de test. - Le programme de test effectue alors la séquence
suivante sur le processeur qui a pour effet de
tester lunité déxécution considérée.
19Test de lunité dexécution dune instruction par
application dinstructions de test
Génération et utilisation des vecteurs de test
I
R
E
M
W
Execution Unit
Inst Memory
Decode
Regfile update
Regfile
PC
Conversion en instructions des vecteurs
opérandes de linstruction.
20Test de lunité dexécution dune instruction par
application dinstructions de test
Génération et utilisation des vecteurs de test
I
R
E
M
W
Execution Unit
Inst Memory
Decode
Regfile update
Regfile
PC
Conversion en instructions des vecteurs
Chargement des opérandes dans les registres.
21Test de lunité dexécution dune instruction par
application dinstructions de test
Génération et utilisation des vecteurs de test
I
R
E
M
W
Execution Unit
Inst Memory
Decode
Regfile update
Regfile
PC
Conversion en instructions des vecteurs
Application de linstruction de test.
22Test de lunité dexécution dune instruction par
application dinstructions de test
Génération et utilisation des vecteurs de test
I
R
E
M
W
Execution Unit
Inst Memory
Decode
Regfile update
Regfile
PC
Conversion en instructions des vecteurs
Récupération du résultat.
23Test de lunité dexécution dune instruction par
application dinstructions de test
Génération et utilisation des vecteurs de test
- Les résultats obtenus sont testés avec les
résultats attendus. - Le programme sarrête si le test détecte une
erreur. - Les acétates suivantes présentent les fonctions
testant les instructions MULTI et INDEXC, ainsi
que le programme de test complet.
24Test de lunité dexécution dune instruction par
application dinstructions de test
Génération et utilisation des vecteurs de test
- Test de linstruction MULTI
int test_MULTI() int i,r for(i0
iltNVECi) r MULTI(op1i,op2i) if(r
!resulti) return i1 return 0
- Cest une instruction simple ce qui est reflété
dans sa fonction de test.
25Test de lunité dexécution dune instruction par
application dinstructions de test
Génération et utilisation des vecteurs de test
- Test de linstruction INDEXC
int test_INDEXC() int i,r for(i0
iltNVECi) WUR_CUR_W(INDEXC_wi)
WUR_CUR_X(INDEXC_cxi) WUR_CUR_Y(INDEXC_c
yi) WUR_MIN_X(INDEXC_mxi)
WUR_MIN_Y(INDEXC_myi) r
INDEXC(INDEXC_op1i,INDEXC_op2i) if(r
!INDEXC_resulti) return i1 return 0
- Cest une instruction plus complexe qui utilise
des registres détats du processeur en entrée.
Ces registres font partie du vecteur de test.
26Test de lunité dexécution dune instruction par
application dinstructions de test
Génération et utilisation des vecteurs de test
int test_REG_CUR_X () WUR_CUR_X(0x00000000) i
f(RUR_CUR_X() ! 0x00000000) return
1 WUR_CUR_X(0x00000000) if(RUR_CUR_X() !
0x00000000) return 1 WUR_CUR_X(0xFFFFFFFF) if(R
UR_CUR_X() ! 0xFFFFFFFF) return
1 WUR_CUR_X(0xFFFFFFFF) if(RUR_CUR_X() !
0xFFFFFFFF) return 1 WUR_CUR_X(0x00000000) if(
RUR_CUR_X() ! 0x00000000) return 1 return
0
- On teste toutes les transitions possibles pour
le registre.
27Test de lunité dexécution dune instruction par
application dinstructions de test
Génération et utilisation des vecteurs de test
- Programme de test complet
if(test_REG_CUR_X()) return 1 ... if(test_INDEX
C()) return 1 if(test_MULTI()) return 1 ...
- On appelle successivement les fonctions de test
des différentes instructions. Chaque retour de
fonction doit indiqué un succès sinon le
programme sarrête.
28Test de lunité dexécution dune instruction par
application dinstructions de test
Plan
- Introduction - Problématique
- Revue de littérature sur le test basé sur le
logiciel - Présentation de larchitecture du Xtensa
- Génération et utilisation des vecteurs de test
- Résultats
- Conclusion
29Test de lunité dexécution dune instruction par
application dinstructions de test
Résultats
Instruction Nombre de vecteurs Taux de couverture () Temps déxécution (cycles) Temps réel (µs)
MULTI 32 98 1255 5,02
INDEXC 41 93,4 2940 12,948
REG_CUR_X 5 100 91 0,3
- Ces résultats sont cohérents avec la complexité
de chaque instruction.
30Test de lunité dexécution dune instruction par
application dinstructions de test
Résultats
- En considérant INDEXC comme un pire cas et MULTI
comme un cas simple on peut extrapoler ces
résultats pour le jeu dinstruction complet. - 80 instructions de base 20 instructions
spécialisées. - 10 µs de test par instruction (estimation
haute).
1ms pour tester toutes les unités dexécution du
processeur.
31Test de lunité dexécution dune instruction par
application dinstructions de test
Plan
- Introduction - Problématique
- Revue de littérature sur le test basé sur le
logiciel - Présentation de larchitecture du Xtensa
- Génération et utilisation des vecteurs de test
- Résultats
- Conclusion
32Test de lunité dexécution dune instruction par
application dinstructions de test
Conclusion
- Nécessité dun test basé sur le logiciel pour
tester les processeurs daujourdhui - Plusieurs techniques différentes ( niveau portes,
niveau RTL) - Avantages du test basé sur le logiciel
- Utilise les ressources déjà présentes du
processeurs - Taux de couverture élevé
- Sans équipement de test coûteux
- A vitesse Réelle
- Application au processeur Xtensa de Tensilica
-
Taux de couverture de 95 , temps de test de
lordre de la ms
33Test de lunité dexécution dune instruction par
application dinstructions de test
Questions
?