Diapositive 1 - PowerPoint PPT Presentation

1 / 33
About This Presentation
Title:

Diapositive 1

Description:

Test de l unit d ex cution d une instruction par application d instructions de test Projet du cours ELE6306 : Tests des syst mes lectroniques. – PowerPoint PPT presentation

Number of Views:51
Avg rating:3.0/5.0
Slides: 34
Provided by: nico4208
Category:

less

Transcript and Presenter's Notes

Title: Diapositive 1


1
Test de lunité dexécution dune instruction par
application dinstructions de test
Projet du cours ELE6306 Tests des systèmes
électroniques.
Nicolas Beucher. Vincent Binet.
2
Test 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

3
Test 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

4
Test 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
5
Test 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.

6
Test 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

7
Test 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
8
Test 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.
9
Test 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)
10
Test 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
11
Test 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

12
Test 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).

13
Test 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
14
Test 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

15
Test 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

16
Test 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.

17
Test 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.
18
Test 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.

19
Test 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.
20
Test 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.
21
Test 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.
22
Test 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.
23
Test 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.

24
Test 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.

25
Test 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.

26
Test de lunité dexécution dune instruction par
application dinstructions de test
Génération et utilisation des vecteurs de test
  • Test de registre

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.

27
Test 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.

28
Test 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

29
Test 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.

30
Test 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.
31
Test 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

32
Test 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
33
Test de lunité dexécution dune instruction par
application dinstructions de test
Questions
?
Write a Comment
User Comments (0)
About PowerShow.com