Changes between Version 34 and Version 35 of MethoCourseTp4


Ignore:
Timestamp:
Oct 15, 2007, 4:47:48 PM (17 years ago)
Author:
alain
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MethoCourseTp4

    v34 v35  
    55[[PageOutline]]
    66
    7 = Objectifs =
     7= A) Objectifs =
    88
    99Le but de cette séance est de vous apprendre à déboguer le modèle comportemental d'un circuit qui sera réutilisé dans les TP suivants. L'intérêt est donc double:
     
    1111 * Vous inciter à analyser en détail les fonctionnalités du circuit Am2901.
    1212
    13 = Le débogage =
     13= B) Débogage des systèmes num"riques synchrones =
    1414
     15On se place dans une contexte où on utilise une technique de simulation pour valider le comportement du système matériel.
    1516Le débogage comprend 5 étapes:
    16  * Reconnaître l'existence d'un dysfonctionnement.
    17    - Cette étape peut être effectuée de deux manières (en général, elles sont utilisées conjointement):
     17
     18 1. Créer une situation de dysfonctionnement.
     19     Cette étape peut être effectuée de deux manières (en général, elles sont utilisées conjointement):
    1820     * Passive: on attend le report d'un bogue.
    19      * Active: on utilise d'importants jeux de test pour valider l'application.
    20  * Localiser la source du bogue.
    21    - C'est l'étape la plus difficile. La source du dysfonctionnement n'est pas forcemment la même que la source des symptômes. La méthode la plus courante consiste à tester de manière itérative: on vérifie les fonctionnalités les unes après les autres.
    22  * Identifier la cause d'un bogue.
    23    - Une fois le problème localisé il est important d'en déterminer la cause. En effet on peut constater qu'une valeur est fausse mais l'origine de cette valeur peur provenir d'une autre autre portion de l'application à tester.
    24  * Ecrire le correctif pour le bogue.
    25    - La difficulté dépend fortement du type de bogue. Cette étape est simple dans le cas d'une erreur d'inattention, elle peut s'avérer très complexe quand le bogue est lié à une mauvaise architecture de l'application.
    26  * Corriger et tester l'application.
    27    - Il faut ici vérifier que le correctif supprime le bogue et n'en apporte pas de nouveaux. Il est pour cela préférable d'utiliser des tests anti régression.
     21     * Active: on utilise des scénarios (ou ''jeux de test''), en essayant de maximiser le ''taux de couverture'', en activant le maximum de fonctionnalités du circuit ou du système analysé.
    2822
    29 = Circuit Am2901 =
     23 1. Identifier un comportement anormal
     24     La simulation d'un système soumis à une séquence de stimuli définit une séquence d'événements ordonnés par dates croissantes. Dans un système complexe, il n'est pas possible de vérifier toutes les valeurs de tous les signaux à tous les cycles, et on se contente d'observer certains signaux à certains instants. Par exemple, dans un système intégré sur puce contenant un coeur de processeur exécutant du code binaire stocké dans une mémoire embarquée sur la puce, on commencera par observer les valeurs affichées par le processeur sur un terminal. Dans ces conditions, il peut y avoir un retard important (plusieurs dizaines, ou plusieurs milliers de cycles) entre le moment où apparaissent les premiers symptômes observables du dysfonctionnement (affichage d'une valeur erronée), et le moment ou le système a commencé à dévier de son comportement ''normal''. On commence par vérifier que le dysfonctionnement est reproductible, et qu'en relançant la simulation, on observe le même comportement anormal.
     25 
     26 1. Remonter à la cause du dysfonctionnement
     27     C'est la partie la plus délicate.  On sait qu'à une certaine date T1 (en pratique à un certain cycle), le système est dans un état anormal, mais on ne sait généralement pas à partir de quel cycle le système a commencé à ''dérailler''. Il faut donc ''remonter le temps'' pour déterminer la date précise TC à partir de laquelle le système à quitté son fonctionnement normal pour entrer dans un état anormal. Pour cela, il faut commencer par retrouver un état normal du système, à une date T0, la plus tardive possible, mais  évidemment antérieure à T1. Quand on a déterminé les deux dates T0 et T1 Il faut analyser - cycle par cycle- le comportement du système entre T0 et T1 pour déterminer l'instant exact le système passe
     28d'un état normal au cycle TC (l'état est défini par les valeurs stockées dans les registres), à un état anormal au cycle TC+1.
     29
     30 1. Analyser la cause du dysfonctionnement
     31     Lorsqu'on a déterminer l'instant TC, il est généralement assez facile de détarminer la cause du dysfonctionnement du matériel, en analysant les fonctions de transition des
     32différents automates impliqués dans le fonctionnement du système.
     33
     34  1. Corriger le bogue
     35      Il faut prendre le temps de réfléchir sur la bonne façon de corriger le bogue, car il arrive souvent que la soi-disant ''correction'' d'un bogue introduise un autre dysfonctionnement. Il faut donc relancer la simulation sur l'ensemble des scénarios définis à l'étape 1, et pas seulement le scénario qui a mis en évidence le bogue corrigé. C'est ce qu'on appelle un test de ''non régression''.
     36 
     37= C) Circuit Am2901 =
    3038
    3139Vous devez, au cours de cette séance, analyser et corriger
     
    4755
    4856
    49 = Compte-Rendu =
     57= D) Compte-Rendu =
    5058Il vous est demandé un rapport au format .pdf. Vous joindrez tous vos tests en annexe.
    5159Votre méthodologie sera évaluée en priorité sur les résultats.