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. Nicolas.

Slides:



Advertisements
Présentations similaires
Module Systèmes d’exploitation
Advertisements

Électronique de base du processeur
Tests et Validation du logiciel
Le Concept du programme enregistré
Architecture de machines Le microprocesseur
ARCHITECTURE INTERNE d’un MICROPROCESSEUR
LIRMM 1 Journée Deuxièmes années Département Microélectronique LIRMM.
Performances 1 Évolution : Performance. Performances 2 Évolution : Mémoire.
Objectifs Identifier l’interface entre le logiciel de plus bas niveau et le matériel Comprendre la problématique de l’architecture du jeu d’instruction.
Objectifs Nous allons concevoir une mise en œuvre contenant un noyau de jeu d’instructions. Nous verrons comment l’architecture de jeu d’instructions.
Le codage de l ’information
Le Concept du programme enregistré
Le jeu d ’instructions Introduction Un jeu d ’instruction classique
Auto Apprentissage Le DSP
Les microprocesseurs A. Objectifs de la séquence:
Système d’exploitation : Assembleur
Plan Problématique Modélisation des fautes de délai
Chapitre 8 : L’architecture de base des ordinateurs
ARCHITECTURE GLOBALE CAPTAGE Traitement DES des données GRANDEURS
Application des algorithmes génétiques
Architecture de base d’un ordinateur
LE MICROPROCESSEUR 8086/8088 Architecture externe du 8086
Architecture des Ordinateurs
Méthodologies de test pour un FPGA
Optimisation et parallélisation de code pour processeur à instructions SIMD multimedia François Ferrand.
Architecture Fondamentale des Microprocesseurs
LES SYSTEMES AUTOMATISES
©Frédéric Bastien 2006 Université de Montréal 1 LISATek LISATek pour concevoir des processeurs.
Introduction Objectifs du cours Évaluation Références
Gei 431 Architecture des ordinateurs II – Frédéric Mailhot Systèmes Pipeline – opérations multicycles Nous avons vu jusquà maintenant comment faire un.
Test de systèmes électronique
Plan Introduction DFT d’un additionneur asynchrone
Test de l’intégrité des signaux numériques des interconnexions des SoC
Plan Problématique Fautes de délai Techniques de test « at-speed »
Réduction de la consommation de puissance durant le test des circuits munis de chaines de scan khalid El Amrani-ele6306 khalid El Amrani.
Réalisé par Mr CALVO du Lycée Bon Secours à PERPIGNAN
Analyse d’algorithmes
NORMALISATION DES LANGAGES DE PROGRAMMATION des Automates Programmables Industriels CEI
Introduction Un test sur les tests Ce que n’est pas le test
L'Unité centrale (CPU) Le CPU doit être rapide (mesuré en temps de CPU) UNITE DE CONTROLE Générer les signaux de control/temps Contrôler le décodage/exécution.
Informatique 1. Les applications de l’informatique
Lycée ELKHAWARIZMI De SAFI
1 Notations Asymptotiques Et Complexité Notations asymptotiques : 0 et  Complexité des algorithmes Exemples de calcul de complexité.
Logique programmée & Microprocesseurs
Cours Architecture des Systèmes Informatiques
Banc d’essai pour un circuit combinatoire
Chapitre 3 Simulation de Fautes
Processeurs et chemins des données
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Processeurs sous-RISC et application aux réseaux Quand.
Supports de formation au SQ Unifié
André Seznec Caps Team IRISA/INRIA 1 Processeurs Hautes Performances Panorama et Nouveaux Défis André Seznec IRISA/INRIA
INF8505: processeurs embarqués configurables Département de génie informatique et génie logiciel Langages de description architecturale.
J.-M. ADAM – D. BARDOU Fonctionnement de l'unité centrale.
Le processeur Xtensa de Tensilica: paramétrage et extensibilité
Cours de Structure et Technologie des composants d’ordinateurs
TD0 - Rappels. Acquis du programme 1 ère année Analyser et modéliser : un problème, une situation ; Imaginer et concevoir : une solution algorithmique.
Conception de processeurs – partie 1
Les systèmes mono-puce
3-Présentation d’un µP simple
L’architecture du processeur Xtensa de Tensilica
Les Machines RAM.
Projet de Fin d’Etudes – Optimisation SSE 1/28. 1) Présentation du Stage 2) Les instructions SSE 3) Algorithme DSP Audio Conclusion 2/28 Projet de Fin.
Techniques de BIST à puissance réduite
1 Université Henri Poincaré, Nancy 1 La préemption appliquée aux FPGAs Soutenance de rapport bibliographique de DEA Faculté des Sciences Vandoeuvre-lès-Nancy.
Exécution d ’un programme en 6809: Présentation du programme
ELE6306 : Test de systèmes électroniques Adaptation d’une interface de communication pour implants en vue du test Laurent Aubray, Dominique Pâquet-Ferron.
Simulateur de microcontrôleur Intel 80C51
ELE6306 : Test de systèmes électroniques Test intégré et Modèle de faute de délai Etudiante : S. BENCHIKH Professeur : A. Khouas Département de génie électrique.
Patricia Renault UPMC 2005/2006
Création et Optimisation de Modules Audio avec les instructions SSE
Transcription de la présentation:

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. Nicolas Beucher. Vincent Binet.

Test de l’unité d’exécution d’une instruction par application d’instructions de test Plan Introduction - Problématique Revue de littérature sur le test basé sur le logiciel Présentation de l’architecture du Xtensa Génération et utilisation des vecteurs de test Résultats Conclusion

Test de l’unité d’exécution d’une instruction par application d’instructions de test Plan Introduction - Problématique Revue de littérature sur le test basé sur le logiciel Présentation de l’architecture du Xtensa Génération et utilisation des vecteurs de test Résultats Conclusion

Introduction - Problématique Microprocesseurs : complexes, pipelinés, rapides. ASIP : processeurs à jeu d’instruction spécialisé. Test d’un 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 Test de l’unité d’exécution d’une instruction par application d’instructions 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. Test de l’unité d’exécution d’une instruction par application d’instructions de test

Plan Introduction - Problématique Revue de littérature sur le test basé sur le logiciel Présentation de l’architecture du Xtensa Génération et utilisation des vecteurs de test Résultats Conclusion

Principe :  Description au niveau porte du processeur  Vecteurs de test permettant d’identifier 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 Revue de littérature sur le test basé sur le logiciel Test de l’unité d’exécution d’une instruction par application d’instructions 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. 461–475, [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. 369–380, [4] K. Batcher and C. Papachristou, “Instruction randomization self test for processor cores,” in VLSI Test Symposium, Proceedings. 17th IEEE, 1999, pp. 34–40. [5] N. Kranitis, D. Gizopoulos, A. Paschalis, and Y. Zorian, “Instructionbased self-testing of processor cores,” in VLSI Test Symposium, (VTS 2002). Proceedings 20th IEEE, 2002, pp. 223–228. Test de l’unité d’exécution d’une instruction par application d’instructions de test

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 d’exécution (cycles) Chaîne de scan NONOUIN/A BIST OUINONN/A Technique [2] OUINON1129/ Technique [5] OUINON923 / Revue de littérature sur le test basé sur le logiciel Technique [2] : description du processeur niveau porte Technique [5] : description haut niveau (RTL) Test de l’unité d’exécution d’une instruction par application d’instructions de test

Revue de littérature sur le test basé sur le logiciel Amélioration de la technique [1] par rapport à l’ATPG classique pour une structure régulière du type Multiplieur : Taille du code (mots) Nombre de cycles Taux de couverture ATPG % Technique [1] % Opérandes de la forme [preuve] X=X N-1 …..X 1 X 0 = (C 7 C 6 C 5 C 4 ) …… ……. (C 7 C 6 C 5 C 4 ) Y= Y N-1 …..Y 1 Y 0 = (C 3 C 2 C 1 C 0 ) …… ……. (C 3 C 2 C 1 C 0 ) 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 , Sep 1999 Test de l’unité d’exécution d’une instruction par application d’instructions de test

Plan Introduction - Problématique Revue de littérature sur le test basé sur le logiciel Présentation de l’architecture du Xtensa Génération et utilisation des vecteurs de test Résultats Conclusion

Présentation de l’architecture Xtensa Processeur configurable (ASIP). Possibilité de création d’un jeu d’instruction spécialisé. Processeur pipeliné à 5 étages :  étage de chargement d ’instruction I.  étage de décodage et chargement des registres R.  étage d’exécution E.  étage de relation mémoire M (deuxième niveau d’exécution si nécessaire).  étage de writeback W (écriture du résultat dans les registres). Test de l’unité d’exécution d’une instruction par application d’instructions de test

PC Inst Memory Decode Regfile Execution Unit Regfile update IREMW Présentation de l’architecture Xtensa Test de l’unité d’exécution d’une instruction par application d’instructions de test

Présentation de l’architecture 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 Test de l’unité d’exécution d’une instruction par application d’instructions de test

Plan Introduction - Problématique Revue de littérature sur le test basé sur le logiciel Présentation de l’architecture du Xtensa Génération et utilisation des vecteurs de test Résultats Conclusion

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 d’adresse complexe dans un tableau. Complexité et utilisation des instructions différentes. Test de l’unité d’exécution d’une instruction par application d’instructions 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 d’entre eux et le taux de couverture. PC Inst Memory Decode Regfile Execution Unit Regfile update IREMW Génération des vecteurs de test. Test de l’unité d’exécution d’une instruction par application d’instructions de test

Génération et utilisation des vecteurs de test Les vecteurs sont ensuite traduits en valeurs à appliquer à l’instruction. Avec ces valeurs que l’on stocke dans un tableau, on appelle l’instruction 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 l’unité d’éxécution considérée. Test de l’unité d’exécution d’une instruction par application d’instructions de test

PC Inst Memory Decode Regfile Execution Unit Regfile update IREMW Génération et utilisation des vecteurs de test Conversion en instructions des vecteurs : opérandes de l’instruction. Test de l’unité d’exécution d’une instruction par application d’instructions de test

PC Inst Memory Decode Regfile Execution Unit Regfile update IREMW Génération et utilisation des vecteurs de test Conversion en instructions des vecteurs : Chargement des opérandes dans les registres. Test de l’unité d’exécution d’une instruction par application d’instructions de test

PC Inst Memory Decode Regfile Execution Unit Regfile update IREMW Génération et utilisation des vecteurs de test Conversion en instructions des vecteurs : Application de l’instruction de test. Test de l’unité d’exécution d’une instruction par application d’instructions de test

PC Inst Memory Decode Regfile Execution Unit Regfile update IREMW Génération et utilisation des vecteurs de test Conversion en instructions des vecteurs : Récupération du résultat. Test de l’unité d’exécution d’une instruction par application d’instructions 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 s’arrê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. Test de l’unité d’exécution d’une instruction par application d’instructions de test

Génération et utilisation des vecteurs de test Test de l’instruction MULTI : int test_MULTI(){ int i,r ; for(i=0 ;i<NVEC;i++){ r = MULTI(op1[i],op2[i]); if(r !=result[i]) return i+1 ; } return 0 ; } C’est une instruction simple ce qui est reflété dans sa fonction de test. Test de l’unité d’exécution d’une instruction par application d’instructions de test

Génération et utilisation des vecteurs de test Test de l’instruction INDEXC : int test_INDEXC(){ int i,r ; for(i=0 ;i<NVEC;i++){ WUR_CUR_W(INDEXC_w[i]) ; WUR_CUR_X(INDEXC_cx[i]) ; WUR_CUR_Y(INDEXC_cy[i]) ; WUR_MIN_X(INDEXC_mx[i]) ; WUR_MIN_Y(INDEXC_my[i]) ; r = INDEXC(INDEXC_op1[i],INDEXC_op2[i]); if(r !=INDEXC_result[i]) return i+1 ; } return 0 ; } C’est une instruction plus complexe qui utilise des registres d’états du processeur en entrée. Ces registres font partie du vecteur de test. Test de l’unité d’exécution d’une instruction par application d’instructions de test

Génération et utilisation des vecteurs de test Test de registre : int test_ REG_CUR_X () { WUR_CUR_X(0x ); if(RUR_CUR_X() != 0x ) return 1; WUR_CUR_X(0x ); if(RUR_CUR_X() != 0x ) return 1; WUR_CUR_X(0xFFFFFFFF); if(RUR_CUR_X() != 0xFFFFFFFF) return 1; WUR_CUR_X(0xFFFFFFFF); if(RUR_CUR_X() != 0xFFFFFFFF) return 1; WUR_CUR_X(0x ); if(RUR_CUR_X() != 0x ) return 1; return 0; } On teste toutes les transitions possibles pour le registre. Test de l’unité d’exécution d’une instruction par application d’instructions de test

Génération et utilisation des vecteurs de test Programme de test complet : … if(test_REG_CUR_X()) return 1;... if(test_INDEXC()) 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 s’arrête. Test de l’unité d’exécution d’une instruction par application d’instructions de test

Plan Introduction - Problématique Revue de littérature sur le test basé sur le logiciel Présentation de l’architecture du Xtensa Génération et utilisation des vecteurs de test Résultats Conclusion

Résultats InstructionNombre de vecteurs Taux de couverture (%) Temps d’éxécution (cycles) Temps réel (µs) MULTI ,02 INDEXC4193, ,948 REG_CUR_X ,3 Ces résultats sont cohérents avec la complexité de chaque instruction. Test de l’unité d’exécution d’une instruction par application d’instructions 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 d’instruction complet. 80 instructions de base + 20 instructions spécialisées. 10 µs de test par instruction (estimation haute). Test de l’unité d’exécution d’une instruction par application d’instructions de test 1ms pour tester toutes les unités d’exécution du processeur.

Test de l’unité d’exécution d’une instruction par application d’instructions de test Plan Introduction - Problématique Revue de littérature sur le test basé sur le logiciel Présentation de l’architecture du Xtensa Génération et utilisation des vecteurs de test Résultats Conclusion

Nécessité d’un test basé sur le logiciel pour tester les processeurs d’aujourd’hui 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 Conclusion Test de l’unité d’exécution d’une instruction par application d’instructions de test Taux de couverture de 95 %, temps de test de l’ordre de la ms

Questions ? Test de l’unité d’exécution d’une instruction par application d’instructions de test