FR2721725A1 - Module de test pour analyser l'exécution d'un programme par une carte à microprocesseur. - Google Patents

Module de test pour analyser l'exécution d'un programme par une carte à microprocesseur. Download PDF

Info

Publication number
FR2721725A1
FR2721725A1 FR9407717A FR9407717A FR2721725A1 FR 2721725 A1 FR2721725 A1 FR 2721725A1 FR 9407717 A FR9407717 A FR 9407717A FR 9407717 A FR9407717 A FR 9407717A FR 2721725 A1 FR2721725 A1 FR 2721725A1
Authority
FR
France
Prior art keywords
memory
microprocessor
address
data
card
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9407717A
Other languages
English (en)
Other versions
FR2721725B1 (fr
Inventor
Louis Marie Gloanec
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Matra Marconi Space France SA
Original Assignee
Matra Marconi Space France SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Matra Marconi Space France SA filed Critical Matra Marconi Space France SA
Priority to FR9407717A priority Critical patent/FR2721725B1/fr
Publication of FR2721725A1 publication Critical patent/FR2721725A1/fr
Application granted granted Critical
Publication of FR2721725B1 publication Critical patent/FR2721725B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3636Software debugging by tracing the execution of the program
    • G06F11/364Software debugging by tracing the execution of the program tracing values on a bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Le module comprend une unité logique (30) reliée aux lignes de commande (18) de la carte (1) et à des lignes de commande (26) provenant d'un système de commande extérieur; une mémoire de conditions sur les adresses dont l'entrée d'adresse est reliée au bus d'adresses (16) de la carte (1) pendant les cyles d'accès du microprocesseur (12) exécutant le programme à analyser, et dont l'accès de donnée est relié à l'unité logique (30); et des mémoires de contrôle (34) dont le contenu peut être lu vers l'interface système. La mémoire de conditions contient des bits de condition programmables déterminant les conditions dans lesquelles le contenu de certaines des mémoires de contrôle (34) est modifié. Pendant l'exécution du programme à analyser, la mémoire de conditions est lue à chaque cycle d'accès du microprocesseur, et l'unité logique (30) commande des écritures dans les mémoires de contrôle (34) en fonction des bits de condition lus et des signaux présents sur les lignes de commande (18).

Description

MODULE DE TEST POUR ANALYSER L'EXECUTION D'UN
PROGRAMME PAR UNE CARTE A MICROPROCESSEUR
La présente invention concerne un module de test, raccordable aux bus d'adresses et de données et à des lignes de commande d'une carte à microprocesseur, pour analyser l'exécution d'un programme par le microprocesseur. Ceirodule sert principalement à la mise au point et au test de programmes devant avoir un très haut degré de fiabilité, par exemple des programmes de commande de vol pour satellites.
Tant qu'on ne considère pas les performances en temps réel du programme, sa mise au point se fait généralement à l'aide d'un outil logiciel de développement qui simule la carte à microprocesseur sur un ordinateur. Pour valider le programme sur la carte à microprocesseur ellemême, on peut utiliser des émulateurs spécifiques de cette carte. Mais si les émulateurs sont performants pour la mise au point matérielle de la carte à microprocesseur, ils sont mal adaptés à l'environnement matériel de la validation du programme, notamment parce qu'ils peuvent interférer avec l'exécution du programme, et parce qu'ils impliquent l'utilisation de sondes accédant à des lignes de communication situées au coeur de la carte.
Un but principal de la présente invention est de proposer un nouvel outil de mise au point et de test d'un programme exécuté par carte à microprocesseur, qui soit bien adapté à une analyse en temps réel, et qui ne perturbe pas l'environnement matériel du programme.
Un module de test selon l'invention comprend : une interface système pour communiquer avec un système de commande extérieur ; une unité logique reliée aux lignes de commande de la carte à microprocesseur et à des lignes de commande système provenant de l'interface système ; une mémoire de conditions sur les adresses dont l'entrée d'adresse est reliée au bus d'adresses de la carte à microprocesseur pendant les cycles d'accès du microprocesseur exécutant le programme à analyser, et dont l'accès de donnée est relié à l'unité logique ; et des mémoires de contrôle dont le contenu peut être modifié pendant les cycles d'accès du microprocesseur, et lu vers l'interface système.La mémoire de conditions sur les adresses contient des bits de condition programmables déterminant les conditions dans lesquelles le contenu de certaines des mémoires de contrôle est modifié pendant l'exécution du programme à analyser lorsque l'adresse de ces bits de condition dans la mémoire de conditions est présente sur le bus d'adresses. Pendant l'exécution du programme à analyser, la mémoire de condition sur les adresses est lue à chaque cycle d'accès du microprocesseur à l'adresse présente sur le bus d'adresses, et l'unité logique commande des écritures dans les mémoires de contrôle en fonction des bits de condition lus dans la mémoire de conditions sur les adresses et des signaux présents sur les lignes de commande de la carte à microprocesseur.
Ainsi, les bus de la carte sont observés à chaque cycle d'accès du microprocesseur sans interférer avec l'exécution du programme. En programmant les bits de condition, l'utilisateur peut définir les opérations de contrôle à effectuer au fur et à mesure de l'exécution du programme.
Les mémoires de contrôle comprendront généralement des mémoires de trace dont l'entrée d'adresse est reliée à un compteur d'adresse de trace pendant les cycles d'accès du microprocesseur. Pendant l'exécution du programme à analyser, l'unité logique commande d'écriture dans les mémoires de trace et l'incrémentation du compteur d'adresse de trace en fonction des bits de condition lus dans la mémoire de conditions sur les adresses et des signaux présents sur les lignes de commande de la carte à microprocesseur. Ceci permet à l'utilisateur de ne garder trace que des échanges du microprocesseur qui présentent un intérêt dans l'analyse de telle ou telle partie du programme, et évite les problèmes de capacité de stockage qu'on rencontrerait en gardant trace de chacun des échanges du microprocesseur.
Les éléments enregistrés dans les mémoires de trace comprennent typiquement les adresses présentées par le microprocesseur sur son bus d'adresses, les données présentes sur le bus de données, le temps d'exécution jusqu'à chaque enregistrement, et des bits d'état indiquant la nature de chaque échange faisant l'objet d'un enregistrement.
De préférence, le module de test comprend un registre d'adresses chargé par le système de commande extérieur via l'interface système, et un registre tampon de données lu par le système de commande extérieur via l'interface système, l'unité logique étant agencée pour répondre entre deux cycles d'accès du microprocesseur à une requête de lecture d'une des mémoires de contrôle transmise sur les lignes de commande système en commandant une lecture de ladite mémoire de contrôle à l'adresse présente dans le registre d'adresses et un chargement de la donnée ainsi lue dans le registre tampon de données. Ceci permet d'observer le contenu d'une ou plusieurs des mémoires de contrôle sans avoir à interrompre l'exécution du programme à analyser, ou à interférer avec la carte à microprocesseur.
La mémoire de contrôle ainsi lue entre les cycles d'accès du microprocesseur peut notamment être une mémoire image associée à une mémoire de données de la carte à microprocesseur, dont les accès d'adresse et de donnée sont respectivement reliés au bus d'adresses et au bus de données pendant les cycles d'accès du microprocesseur, l'unité logique transmettant à la mémoire image, pendant l'exécution du programme à analyser, les commandes d'écriture dans la mémoire de données que le microprocesseur présente sur les lignes de commande de la carte, pour que les écritures de données aient lieu conjointement dans la mémoire de données et dans la mémoire image.
Ainsi, la mise à jour de la mémoire image est faite par les mêmes cycles d'accès que ceux de la mémoire de données de la carte. Ceci permet d"'espionner" en temps réel les données échangées par le microprocesseur. Une telle mémoire image peut d'ailleurs être utilisée dans un module de test ne comportant pas de mémoire de conditions sur les adresses.
D'autres particularités et avantages de la présente invention apparaîtront dans la description ci-après d'un exemple de réalisation préféré mais non limitatif, lue conjointement aux dessins annexés, dans lesquels
- la figure 1 est un schéma d'ensemble d'une installation de test incluant un module selon l'invention
- la figure 2 est un schéma synoptique du module de test et de la carte à microprocesseur à laquelle il est raccordé
- les figures 3 et 4 sont des schémas illustrant l'agencement des mémoires de contrôle dans le module de test de la figure 2
- les figures 5 et 6 montrent des chronogrammes servant à expliquer le fonctionnement du module de test ; et
- la figure 7 est un schéma illustrant l'agencement des mémoires de conditions dans le module de test de la
figure 2.
L'installation représentée sur la figure 1 sert à analyser l'exécution, par une carte à microprocesseur 1, d'un programme tel que le programme de commande de vol d'un
satellite. La carte 1 est typiquement réalisée selon la norme 1750, le microprocesseur étant par exemple du type
Marconi MAS 281.
Physiquement, la carte à tester peut être située dans le même châssis 3 que le module de test 4, comme
représenté sur le figure 1, ou dans un équipement distinct
relié au châssis 3 par des câbles. Dans le cas de la figure
1, le châssis 3 reçoit en outre une carte 2 servant d'inter face entre la carte à tester 1 et le module de test 4, et une carte 7 servant d'interface entre le module de test 4 et un système de commande extérieur. Le système de commande extérieur se compose de deux cartes à microprocesseur 5,6 également montées dans le châssis 3, et d'une station de travail 8 accessible à l'opérateur. La carte à microprocesseur 5 fonctionne en temps réel pour fournir des données et des commandes au module de test 4 par l'intermédiaire de la carte 7 qui assure une interface rapide au format VSB. La carte à microprocesseur 6 ne fonctionne pas en temps réel.
Elle est reliée à la carte 5 par un bus de fond de panier au format C'ME, et à la station de travail 8 par l'intermédiaire d'une liaison Ethernet 9.
Une architecture typique de la carte à microprocesseur 1 est illustrée sur la figure 2. Le microprocesseur 12 est associé à deux mémoires 13, 14 adressables sur 16 bits, l'une contenant le programme du microprocesseur 12, et l'autre contenant les données. Une logique d'interface 15 assure les échanges entre les mémoires 13, 14 et le microprocesseur 12. La logique 15 délivre les signaux de commande et de sélection aux mémoires 13, 14, les adresses et les données étant transmises sur un bus d'adresses 16 et un bus de données 17 de 16 bits. La logique d'interface 15 supervise en outre les échanges de la carte 1 avec son environnement. A bord du satellite, la carte 1 est prévue pour être associée à une ou plusieurs cartes d'entrées/sorties avec lesquelles les données et les adresses sont échangées par l'intermédiaire des bus 16, 17.Ces cartes d'entrées/sorties mettent en forme les signaux destinés aux équipements de commande de vol et reçus de différents capteurs. Lorsque le microprocesseur accède à l'espace d'entrées/sorties, la logique d'interface 15 positionne un bit de sélection IO et envoie les commandes de lecture ou d'écriture aux cartes d'entrées/sorties. Les cartes d'entrées/sorties répondent en retournant un signal ACK d'accusé de réception et, le cas échéant, en présentant les données lues sur le bus de données 17.
Les bus 16, 17, ainsi que certaines lignes de commande 18 de la carte 1 sont accessibles pour le module de test 4. Pour clarifier l'exposé, on n'a représenté sur la figure 2 que certaines de ces lignes de commande 18, servant à expliquer le fonctionnement du module de test 4. Les lignes 18 représentées portent les signaux suivants
- H : signal d'horloge de travail du microprocesseur 12, délivré par une horloge 19 faisant partie de la carte 1 ; la cadence du signal H est typiquement de 20 MHz
- R : signal de réinitialisation du microprocesseur 12
- S : signal d'exécution ou d'arrêt d'exécution du programme du microprocesseur
- CA : signal de cadencement des cycles d'accès du microprocesseur ; chaque cycle d'accès (CA=1) a en général une durée double de la période du signal d'horloge H
- RW : signal indiquant si le cycle d'accès courant correspond à une lecture (ru=1) ou à une écriture (RW=0) par le microprocesseur
- DP : signal indiquant si l'accès courant est un accès en données (DP=1) ou en instructions (DP=O)
- IO : signal indiquant si l'accès courant est dans l'espace d'entrées/sorties (IO=1) de la carte 1 ou dans ses mémoires internes 13,14 (IO=O)
- ACK : signal d'accusé de réception des entrées/sorties.
Suivant les besoins de chaque application particulière, d'autres lignes de commande 18 pourront être accessibles, par exemple des lignes de commande d'interruption du microprocesseur pour faire exécuter certaines portions du programme, des lignes de commande d'accès direct aux registres et aux mémoires de la carte 1
(mode DMA), etc...
Les bus 16, 17 et les lignes de commande 18 sont reliés à la carte d'interface 2 qui se compose de portes de puissance assurant des niveaux de signal suffisants pour les échanges avec le module de test. Le module de test est relié à la car-te d'interface par des câbles 20 (figure 1) constitués par une paire torsadée pour chaque ligne de signal.
Le module de test 4 représenté sur la figure 2 comporte une interface système 25 constituée par un ensemble de coupleurs optiques coopérant avec des coupleurs correspondants prévus sur la carte d'interface VSB 7. Ces coupleurs assurent une isolation électrique de la carte 1 et du module 4 vis-à-vis de l'extérieur, d'une manière conforme aux conditions opérationnelles de la carte 1 qui est électriquement flottante. Les lignes issues de l'interface système 25 et servant aux échanges entre le module de test 4 et le système de commande extérieur 5,6,8 comprennent des lignes de comr..ande système 26, un bus d'adresses système 27 et un bus de données système 28.
Le module 4 comporte une unité logique 30 reliée aux lignes de commande i8 de la carte 1 et aux lignes de commande système 26.
Le module 4 comporte des mémoires de conditions 32 et des mémoires de contrôle 34, dont les accès d'adresse et/ou de donnée sont reliés soit à un bus d'adresses interne 35 soit à un bus de données interne 36. Les bus internes 35 et 36 sont respectivement reliés au bus d'adresses 16 et au bus de données 17 de la carte 1 par l'intermédiaire de commutateurs 37 et 38 commandés par l'unité logique 30 pour être fermés pendant les cycles d'accès du microprocesseur 12
(CA=1) et ouverts entre ces cycles d'accès (CA=0) . Le bus d'adresses interne 35 est en outre relié à la sortie d'un registre d'adresses FA de i6 bits par l'intermédiaire d'un commutateur 40 commandé par l'unité logique 30. L'entrée du registre d'adresses FA est reliée au bus d'adresses système 27.Le bus de données interne 36 est relié au bus de données système 28 par l'intermédiaire d'un commutateur 42 commandé par l'unité logique 30. En parallèle du commutateur 42, le bus de données interne 36 est relié à l'entrée d'un registre tampon de données DR de 16 bits dont la sortie est reliée au bus de données système 28 par l'intermédiaire d'un autre commutateur 43 commandé par l'unité logique 30.
Les mémoires de contrôle 34 comprennent les mémoires de trace TX, TY, TZ, TU illustrées sur la figure 3. Ces quatre mémoires, de capacité 216 x 16 bits, reçoivent toutes la même adresse sur leurs entrées d'adresse. En mode d'écriture, cette adresse est celle fournie par un compteur d'adresse de trace TA de 16 bits dont la sortie est reliée aux entrées d'adresse des mémoires TX, TY, TZ, TU par l'intermédiaire d'un commutateur 45 commandé par l'unité logique 30 pour être fermé pendant les cycles d'accès du microprocesseur 12 (CA=1) et ouvert entre ces cycles (CA=O).
L'incrémentation du compteur TA s'effectue sous le contrôle de l'unité logique 30 en fonction des bits de condition lus dans les mémoires de conditions 32 et des signaux présents sur les lignes de commande 18 comme il sera expliqué plus loin. On peut également prévoir que le contenu du compteur d'adresse de trace TA soit modifiable par le système de commande extérieur. Le compteur TA est en fait un registre de 16 bits dont l'entrée est reliée au bus de données
système 28 par l'intermédiaire d'un commutateur 48. Pour
Imposer une adresse particulière dans le compteur TA, le
système de commande extérieur présente cette adresse sur le
bus 28 et commande à l'unité logique 30 de fermer le
commutateur 48 et de provoquer une écriture dans le
registre-compteur TA. En mode de lecture, les mémoires TX,
TY, TZ, TU reçoivent l'adresse fournie par le registre FA
dont la sortie est reliée aux entrées d'adresse des mémoires
de trace par l'intermédiaire d'un commutateur 46 commandé
par l'unité logique 30.
La mémoire TX est une mémoire de trace des adresses
dont l'accès de donnée est relié au bus d'adresses interne
35. La mémoire TY est une mémoire de trace des données dont
l'accès de donnée est relié au bus de données interne 36. La mémoire TU est une mémoire de trace du temps d'exécution du programme à analyser. Son accès de donnée est relié à un compteur de temps sur 16 bits TL par i'intermédiaire d'un commutateur 50 commandé par l'unité logique 30 pour être fermé pendant les cycles d'accès du microprocesseur 12 (CA=1) et ouvert entre ces cycles (CA=O). Le compteur TL est incrémenté d'une unité à chaque période du signal d'horloge
H que lui transmet l'unité logique 30. Ainsi, le contenu du compteur TL mesure le temps d'exécution du programme jusqu'à 216 fois la période de l'horloge.Le bit de débordement du compteur TL est adressé à un autre compteur TM sur 11 bits permettant de mesurer le temps d'exécution jusqu'à 216+11 fois la période de l'horloge. La mémoire TZ est mixte : elle sert à la fois à garder trace des bits les plus significatifs du comptage du temps (les 11 bits du compteur
TM) et à enregistrer des bits d'état BE obtenus par l'unité logique 30 sur la base des signaux reçus sur les lignes de commande 18.L'accès de donnée de la mémoire TZ reçoit les bits du compteur TM et les bits d'état BE par l'intermédiaire d'un cor.mutateur 51 commandé par l'unité logique 30 pour être fermé pendant les cycles d'accès du microprocesseur 12 (CA=1) et ouvert entre ces cycles (CA=0) . Les bits d'état BE comprennent par exemple les signaux RW, DP et IO reçus par l'unité logique 30 via les lignes de commande 18, pour indiquer si l'accès faisant l'objet de l'enregistrement est une lecture ou une écriture, s'il s'agit d'un accès à une instruction, ou d'un accès dans l'espace d'entrées/sorties de la carte 1.Les accès de donnée des mémoires TX, TU et TZ sont en outre reliés au bus de données interne 36 par l'intermédiaire de commutateurs respectifs 53,54 et 55 commandés par l'unité logique 30.
Pendant l'exécution du programme à analyser, les écritures dans les mémoires de trace TX, TY, TZ, TU sont effectuées pendant les cycles d'accès du microprocesseur sous le contrôle de l'unité logique 30. Une façon simple de réaliser ces écritures est d'envoyer une commande d'écriture à chaque mémoire de trace à tous les cycles d'accès du microprocesseur (commutateurs 37,38,45,50 et 51 fermés, commutateurs 40,42,46,53,54,55 ouverts) et à n'incrémenter le compteur d'adresses TA qu'après les cycles pour lesquels le contenu des mémoires de conditions requiert un enregistrement. Après l'exécution du programme, les mémoires de trace peuvent être lues vers l'interface système 25 et le système de commande extérieur pour que l'opérateur puisse analyser le déroulement du programme.Pour lire une des mémoires de trace, le système de commande extérieur envoie des signaux de commande appropriés à l'unité logique 30 sur les lignes 26 et inscrit successivement les adresses de lecture dans le registre FA. L'unité logique 30 répond en ouvrant les commutateurs 37,38,45,50 et 51, en fermant les commutateurs 42 et 46, en envoyant des commandes de lecture à la mémoire concernée et, le cas échéant, en fermant un des commutateurs 53 (lecture de TX), 54 (lecture de TU) et 55
(lecture de TZ) . Le contenu de la mémoire à l'adresse présentée dans le registre FA est alors lu sur le bus de données système 28.
Les mémoires de contrôle 34 comprennent en outre les mémoires RA, ES et TC dont l'agencement est illustré sur la
figure 4. Chacune de ces trois mémoires a son entrée d'adresse sur 16 bits reliée au bus d'adresses interne 35.
Les mémoires RA et ES ont leurs accès de donnée sur 16 bits reliés au bus de données interne 36.
La mémoire TC est une mémoire de couverture du test, de capacité utile 216 x 1 bit. Elle est entièrement initialisée à zéro par l'unité logique 30 avant l'exécution du programme à analyser. Son accès de donnée est relié d'une part à une borne 60 maintenue au niveau logique 1 par
l'intermédiaire d'un commutateur 61 commandé par l'unité
logique 30 pour être fermé pendant les cycles d'accès du microprocesseur 12 (CA=1) et ouvert entre ces cycles (CA=O),
et d'autre part à une ligne 29 communiquant avec l'interface système par l'intermédiaire d'un commutateur 62 commandé par l'unité logique 30. La ligne 29 peut simplement être l'une des lignes binaires du bus de données système 28.Pendant l'exécution du programme à analyser, l'unité logique 30 commande une écriture dans la mémoire TC lorsque le microprocesseur est dans un cycle de lecture de la mémoire de programme 13 (RW=1 et DP=IO=0) . Ainsi, après l'exécution du programme, la mémoire TC contient des 1 aux adresses des instructions du programme qui ont été effectivement exécutées et des 0 aux adresses des instructions non testées. En lisant a posteriori la mémoire TC, l'opérateur peut donc déterminer quelle a été la couverture du test.Le mécanisme de lecture de la mémoire TC est analogue à celui décrit précédemment pour les mémoires de trace : l'unité logique 30 est commandée par le système de commande extérieur pour ouvrir les commutateurs 37,38 et 61, pour fermer les commutateurs 40 et 62 et pour adresser des ordres de lecture à la mémoire TC ; le système de commande extérieur présente successivement les adresses de lecture dans le registre FA et lit les bits de couverture sur la ligne 29.
La mémoire RA est une mémoire image associée à la mémoire de données 14 de la carte 1. Pendant l'exécution du programme à analyser, l'unité logique 30 commande une écriture dans la mémoire RA lorsque le microprocesseur 12 est dans un cycle d'écriture dans la mémoire de données 14
(DP=1 et RW=IO=0). Ainsi, le contenu de la mémoire image KA reproduit en temps réel celui de la mémoire de données 14.
La mémoire ES simule les entrées/sorties de la carte
1. Pendant l'exécution du programme à analyser, l'unité
logique 30 commande une écriture dans le mémoire ES lorsque
le microprocesseur 12 est dans un cycle d'écriture dans
l'espace d'entrées/sorties (DP=IO=1 et RW=0) . En outre, pendant l'exécution du programme à analyser, l'unité logique
30 commande une lecture de la mémoire ES lorsque le microprocesseur 12 est dans un cycle de lecture dans l'espace d'entrées/sorties (DP=IO=RW=1).
La figure 4 illustre une partie de l'unité logique 30 servant à gérer les accès aux mémoires RA, ES et TC depuis le microprocesseur 12 pendant l'exécution du programme à analyser. Une bascule D 64 cadencée par le signal d'horloge H reçu de la carte 1 produit sur sa sortie
Q des impulsions de commande d'accès dans un signal VA. Une porte ET 66 a deux entrées recevant le signal CA et le complément logique du signal VA, et une sortie reliée à l'entrée D de la bascule 64. Le signal VA fourni par la sortie Q de la bascule 64 présente une impulsion ayant la durée d'une période d'horloge pendant chaque cycle d'accès du microprocesseur, comrte le montre la troisième ligne de la figure 5.Pendant chaque cycle d'accès du microprocesseur
(CA=1), l'adresse et la donnée faisant l'objet de cet accès sont présentes sur les bus 16 et 17 de la carte 1, et donc également sur les bus internes 35 et 36 puisque les commutateurs 37 et 38 sont ouverts (tandis que les commutateurs 40 et 42 sont fermés). L'impulsion de commande d'accès VA est transmise à la mémoire appropriée RA, ES ou
TC pour donner lieu à une écriture ou à une lecture.Le signal VA est transmis à l'entrée de commande d'écriture de
la mémoire TC par l'intermédiaire d'une porte ET 68 dont les
trois autres entrées reçoivent le signal RW et les compléments logiques des signaux DP et IO. Le signal VA est
transmis à l'entrée de commande d'écriture de la mémoire RA par l'intermédiaire d'une porte ET 69 dont les trois autres
entrées reçoivent le signal DP et les compléments logiques des signaux KW et IO. Le signal VA est transmis à l'entrée de commande d'écriture de la mémoire ES par l'intermédiaire d'une porte ET 70 dont les trois autres entrées reçoivent
les signaux DP et IO et le complément logique du signal RW.
Le signal VA est transmis à l'entrée de commande de lecture de la mémoire ES par l'intermédiaire d'une porte ET 71 dont
les trois autres entrées reçoivent les signaux RW, DP et IO.
Les mémoires KA et ES peuvent être lues après l'exécution du programme à analyser par un mécanisme semblable à celui décrit précédemment pour les mémoires TX,
TY, TZ, TU et TC. Avant l'exécution du programme, le système de commande extérieur peut en outre initialiser le contenu des mémoires KA et ES en envoyant sur les lignes 26 des commandes appropriées auxquelles l'unité logique 30 répond en provoquant des écritures dans l'une des mémoires RA, ES, en ouvrant les commutateurs 37, 38 et en fermant les commutateurs 40, 42 ; le système de commande extérieur présente alors les données d'initialisation sur le bus 28 et les adresses correspondantes sur le bus 27 pour les charger dans le registre FA.
L'invention prévoit un autre mécanisme d'accès aux mémoires KA et ES par le système de commande extérieur, pendant l'exécution du programme à analyser. Ce mécanisme consiste à accéder à la mémoire RA ou ES entre les cycles d'accès du microprocesseur (CA=0). Ce mécanisme peut également être utilisé pour accéder à l'une des mémoires TX, TY, TZ, TU et TC. Pour la mémoire RA, il est essentiellement appliqué en lecture, pour permettre à l'utilisateur d'observer en temps réel le contenu de la mémoire KA (et donc celui de la mémoire de données 14 de la carte 1) au fur et à mesure de l'exécution du programme et sans interférer avec celle-ci.Par exemple, l'utilisateur peut suivre, au moyen de graphiques affichés sur la station de travail 8 et générés par des logiciels inclus dans celle-ci, l'évolution au cours du temps d'un ou plusieurs paramètres repérés par des adresses particulières dans la mémoire de données 14.
La figure 4 illustre une partie de l'unité logique 30 servant à gérer les accès aux mémoires KA et ES par le système de commande extérieur pendant l'exécution du programme à analyser. Les requêtes d'accès par le système de commande extérieure sont codées par des signaux MCA, MIO,
MRW et MRA transmis sur des lignes de commande système 26.
Le signal MCA est au niveau logique 1 lorsqu'une requête d'accès est présentée par le système de commande extérieur
(troisième ligne de la figure 6). Une requête de lecture de la mémoire KA correspond à MRA=1 ; une requête de lecture de la mémoire ES correspond à MIO=MRW=1 ; et une requête d'écriture dans la mémoire ES correspond à MIO=1 et MRW=O.
Un circuit logique, comprenant trois bascules D 74,75,76 cadencées par le signal d'horloge H reçu de la carte 1, est utilisé pour produire des impulsions de commande d'accès dans un signal MVA. L'entrée D de la bascule 74 est reliée à la sortie d'une porte ET 77 dont les deux entrées reçoivent les signaux CA et MCA. La sortie Q de la bascule 74 délivre un signal MSA resynchronisé sur l'horloge, illustré sur la quatrième ligne de la figure 6.
Ce signal MSA est adressé à une entrée d'une porte ET 78 dont les deux autres entrées reçoivent le complément logique du signal CA et le complément logique d'un signal TVA fourni par la sortie Q de la bascule 76. La sortie de la porte ET 78 est reliée à l'entrée D de la bascule 75, dont la sortie
Q délivre le signal MVA. Une porte OU 79 a deux entrées reliées à la sortie de la porte ET 78 et à la sortie Q de la bascule 76. Sa sortie est reliée à une entrée d'une porte ET 80 dont l'autre entrée reçoit le signal MCA et dont la sortie est reliée à l'entrée D de la bascule 76.La figure 6 montre qu'une impulsion ayant la durée d'une période d'horloge est produite dans le signal MVA entre deux cycles d'accès du microprocesseur 12 (c'est-à-dire pendant que CA=O). Le signal TVA passe au niveau 1 en même temps que le signal MVA, mais reste à ce niveau jusqu'à ce que le signal
MCA soit remis à zéro par le système de commande extérieur, afin d'éviter que plusieurs impulsions soient produites dans le signal MVA au cours de la même requête d'accès. L'impulsion de commande d'accès MVA est transmise à la mémoire appropriée ES ou KA pour donner lieu à une écriture ou à une lecture. Le signal MVA est transmis à l'entrée de commande d'écriture de la mémoire ES par l'intermédiaire d'une porte
ET 81 dont les deux autres entrées reçoivent le signal MIO et le complément logique du signal MRW.Le signal MVA est transmis à l'entrée de commande de lecture de la mémoire ES par l'intermédiaire d'une porte ET 82 dont les deux autres entrées reçoivent les signaux MIO et MRW. Le signal MVA est transmis à l'entrée de commande de lecture de la mémoire KA par l'intermédiaire d'une porte ET 83 dont l'autre entrée reçoit le signal MRA. En outre, le signal MVA commande directement la fermeture (MVA=1) et l'ouverture (MVA=O) des commutateurs 40 et 42, et active le verrouillage des données dans le registre tampon 42. Le verrouillage des données dans le registre 42 intervient sur les fronts montants du signal d'horloge H lorsque MVA=1, commue l'indique la flèche f sur la figure 6.
Pour accéder à la mémoire KA ou ES pendant l'exécution du programme par la carte 1, le système de commande met à 1 le signal MCA, positionne les signaux MRA, MIO et MRW et place une adresse dans le registre FA par l'intermédiaire du bus 27. Le signal MCA n'a pas besoin d'être synchronisé sur l'horloge de la carte 1 dès lors qu'il reste à 1 pendant au moins la durée de deux périodes du signal CA. Pour écrire dans la mémoire ES (MIO=1, MRW=MRA=0), le système de commande extérieur présente la donnée à écrire sur le bus 28 pendant que MCA=1. L'impulsion produite dans le signal MVA provoque l'écriture de cette donnée entre deux cycles d'accès du microprocesseur 12.Pour lire la mémoire ES, le
système de commande extérieur positionne à 1 les bits MRW et
MIO (MRA=0). Pour lire la mémoire RA, le système de commande
extérieur positionne à 1 le bit MRA (mis=0). La donnée lue
est inscrite dans le registre tampon DR, et le système de
commande extérieur peut ensuite la lire de manière
asynchrone en provoquant la fermeture du commutateur 43, le
signal TVA empêchant alors la fermeture du commutateur 42.
Ces accès aux mémoires KA et ES par le système de commande
extérieur n'interfèrent en rien avec l'exécution du programme par la carte 1.
En ce qui concerne les accès aux mémoires de trace
TX, TY, TZ, TU, on notera que le mécanisme ci-dessus de lecture vers le système de commande extérieur entre les cycles d'accès du microprocesseur 12 est également applicable, comme l'illustrent les portes ET 84 et 85 sur la figure 4 pour les mémoires TX et TY. Une requête (MCA=1) de lecture dans la mémoire TX est codée par des signaux
MIO=MRA=MTY=0 et MTX=1 transmis par l'intermédiaire de l'interface système 25, et une requête de lecture dans la mémoire TY correspond à MIO=MRA=MTX=0 et MTY=1. Pour effectuer la lecture, le signal MVA est transmis à l'entrée de commande de lecture de la mémoire TX par l'intermédiaire d'une porte ET 84 dont l'autre entrée reçoit le signal MTX, et à l'entrée de commande de lecture de la mémoire TY par l'intermédiaire d'une porte ET 85 dont l'autre entrée reçoit le signal MTY.Par ailleurs, les écritures dans les mémoires TX, TY, TZ, TU et TC pendant les cycles d'accès du microprocesseur sont effectuées en envoyant directement le signal VA aux entrées de commande d'écriture de ces mémoires.
Les mémoires de conditions 32 comprennent une mémoire CO de conditions sur les adresses et une mémoire QU de conditions sur les données, dont l'agencement est illustré sur la figure 7. La mémoire CO a par exemple une capacité de 2 16x 16 bits. Son entrée d'adresse est reliée au bus d'adresses interne 35, et son entrée de donnée est relié au bus de données interne 36 par l'intermédiaire d'un commutateur 88. La mémoire QU a par exemple une capacité de 2 16x 4 bits. Son entrée d'adresse est reliée d'une part au bus de données interne 36 par l'intermédiaire d'un commutateur 89 et d'autre part au bus d'adresses interne 35 par l'intermédiaire d'un commutateur 90. L'accès de donnée de la mémoire
QU est relié à quatre lignes du bus de données interne 36 par l'intermédiaire d'un commutateur 91.
Le chargement des mémoires de conditions CO et QU est effectué sous le contrôle du système de commande extérieur avant l'exécution du programme à analyser, les bits de condition à charger étant définis par l'opérateur selon le test à effectuer. Pour le chargement, l'unité logique 30 est commandée pour fermer les commutateurs 40,42,88,90 et 91 et ouvrir les commutateurs 37,38 et 89. Les bits de condition à charger sont présentés sur le bus de données système 28 et les adresses correspondantes sur le bus d'adresses système 27, et l'unité logique 30 est commandée pour provoquer une écriture soit dans la mémoire CO soit dans la mémoire QU. Pendant l'exécution du programme à analyser, les commutateurs 88, 90 et 91 sont ouverts et le commutateur 89 est fermé.
Les accès de données des mémoires CO et QU sont en outre reliés à l'entrée d'un registre KR de 20 bits. Pendant l'exécution du programme à analyser, les mémoires CO et QU sont lues à chaque cycle d'accès du microprocesseur.
L'adresse de lecture de la mémoire CO est celle présente sur le bus d'adresses 16 de la carte 1 (commutateur 37 fermé).
L'adresse de lecture de la mémoire QU est constituée par la donnée présente sur le bus de données 17 de la carte 1 (commutateurs 38 et 89 fermés) . La co.mm,ande de lecture des mémoires CO et QU par l'unité logique 30 peut simplement consister à envoyer le signal VA (figures 4 et 5) à l'entrée de commande d'écriture des mémoires CO et QU. A la fin de l'impulsion du signal VA (instants repérés par les flèches g sur la figure 5), les données lues dans les mémoires CO et QU sont verrouillées dans le registre KR, et les signaux
IO, RW et DP présents sur les lignes de commande 18 sont inscrits dans un registre PR. Le contenu des registres KR et
PR est ensuite décodé par l'unité logique 30, par exemple de la manière exposée ci-après.
La signification des bits de condition à inscrire à chaque adresse dans les mémoires CO et QU est par exemple la suivante
a/ Bits 0,1 et 2 de la mémoire CO : protection de la mémoire
- bit 0=cpp : autorisation en accès instruction.
cpp est mis à 1 pour les adresses dans la
mémoire 13 des instructions devant être
exécutées au cours d'une séquence de test, et
à 0 pour les autres adresses (absence
d'instruction utile ou instruction ne devant
pas être exécutée).
- bit l=cpd et bit 2=cpw : autorisation en accès
données. cpd est mis à 1 pour les adresses de
la mémoire 14 auxquelles le processeur 12 est
autorisé à accéder au cours d'une séquence de
test. cpw a la même signification, mais pour
les accès en écriture seulement.
En cas de violation des conditions définies par les bits cpp, cpd et cpw, l'unité logique 13 positionne le signal S adressé à la carte 1 de manière à arrêter l'exécution du programme. L'opérateur peut alors analyser les raisons de la violation en examinant le contenu des mémoires de contrôle.
Le décodage des bits de condition cpp, cpd et cpw et des signaux RW, DP, IO peut par exemple être effectué au moyen de portes ET 93,94,95 et d'une porte OU 96 agencées comme indiqué sur la figure 7.
b/ Bits 3 à 7 de la mémoire CO, bit 0 de la mémoire
OU : validation des actions
Le décodage de ces six bits, ainsi que des signaux RW, DP et IO reçus sur les lignes de commande 18 sert à déterminer la valeur d'un signal de validation VQ:VQ=1 lorsque l'unité logique 30 doit déclencher une action, VQ=0 sinon.
- bit 3=cprg : mis à 1 si une action doit être
déclenchée lors d'un accès en instruction
(mémoire 13) par le microprocesseur 12 à
l'adresse considérée
- bit 4=crd : mis à 1 si une action doit être
déclenchée lors d'une lecture à l'adresse
considérée dans la mémoire de données 14
- bit 5=cwr mis à 1 si une action doit être
déclenchée lors d'une écriture à l'adresse
considérée dans la mémoire de données 14
- bit 6=cio : mis à 1 si une action doit être
déclenchée lors d'un accès à l'adresse considérée
dans l'espace d'entrées/sorties
- bit 7=cd0 : mis à 1 si la valeur de la donnée
présente sur le bus 17 en même temps que
l'adresse considérée sur le bus 16 intervient
pour conditionner l'action à déclencher par
l'unité logique 30 (accès en mémoire de données
14 seulement) ;
- bit 0 de la mémoire QU=scdO (utilisé lorsque
cdO=l) : mis à 1 aux adresses de la mémoire QU
correspondant à des données qui, lorsqu'elles
sont présentes sur le bus 17 en même temps qu'une
adresse particulière sur le bus 16 (adresse pour
laquelle cdO=l), doivent entraîner une action par
l'unité logique 30.
Le décodage des bits de validation ci-dessus et des signaux KW, DP, IO peut par exemple être effectué au moyen de portes ET et OU 98 à 104 agencées comme indiqué sur la figure 7 pour produire le signal de validation VQ.
c/ Bits 8 à 15 de la mémoire CO, bits 1 à 3 de la mémoire OU : définition des actions
- bit 8=ctr0 et bit 9=ctrl dans la mémoire CO:
autorisation des enregistrements dans les
mémoires de trace par activation ou désactiva
tion d'un signal binaire TRON (TRON actif à 1)
validée par le signal VQ. Le signal TRON est
présent à la sortie Q d'une bascule RS 106. il
est activé lorsque VQ=1, ctr0=l et ctrl=O
(porte ET 107 reliée à l'entrée S de la
bascule 106) et désactivé lorsque VQ=1, ctrO=O
et ctrl=l (porte ET 108 reliée à l'entrée R de
la bascule 106).
- bit l=sctr0 et bit 2=sctrl dans la mémoire
QU : même signification que ctr0 et ctrl
lorsque cdO=l à l'adresse courante (portes ET
109 et 110).
- bit 10=cact0 et bit ll=cactl dans la mémoire
CO : demandent une interruption vers la carte
5 du système de commande extérieur ou
provoquent l'arrêt de l'exécution du programme
par la carte 1 lorsque VQ=1, avec le codage
suivant : cact0=l et cactl=0 génère une
interruption vers la carte 5 ; cact0=0 et
cactl=l arrête l'exécution du programme par la
carte 1. Le décodage correspondant est par
exemple effectué par les portes ET 111 et 112
agencées comme illustré sur la figure 7.
- bit 12=cer0 dans la mémoire CO : provoque un
enregistrement dans les mémoires de trace
(c'est-à-dire l'incrémentation du compteur TA)
lorsque VQ et TRON sont à 1. Le décodage est
assuré par la porte ET 113.
- bit 15=ciack dans la mémoire CO : mis à 1 aux
adresses de l'espace d'entrées/sorties pour
lesquelles le microprocesseur 12 attend un
accusé de réception après un accès.
L'opération de décodage correspondant peut
être de former le ET logique (porte 116) entre
les signaux ciack, IO et VQ pour générer une
impulsion dans le signal d'accusé de réception
ACK aux instants appropriés.
- les bits 13 et 14 de la mémoire CO et le bit
3 de la mémoire QU sont en réserve.
On comprendra que l'agencement de l'unité logique 30 n'est illustré qu'à titre indicatif sur la figure 7.
Certaines parties du décodage peuvent être effectuées de façon différente et d'autres fonctions de décodage peuvent être ajoutées. Dans la pratique, l'unité logique 30 pourra être constituée par des ensembles de portes logiques (PAL) configurés pour superviser les opérations effectuées par le module de test 4. Si de nombreux types de test sont envisagés, on peut associer l'unité logique 30 à un registre de configuration CR (figure 2) contenant des bits de configuration initialisés avant chaque test en fonction de la nature de ce test. Ce registre de configuration CR a son entrée reliée au bus de données système 28 par l'intermédiaire d'un commutateur 120 fermé lors du chargement des bits de configuration. I1 ne peut être que lu par l'unité logique 30.
Par ailleurs, l'unité logique 30 peut être associée à d'autres registres tels que les registres FR et SR illustrés sur la figure 2. Le registre FR est un registre de fonction dans lequel sont stockés différents signaux non volatils intervenant dans le fonctionnement de l'unité logique 30 (par exemple le signal TRON commenté en référence à la figure 7). I1 peut être lu vers l'interface système 25, y compris pendant l'exécution du programme à analyser, en fermant le commutateur 121 qui relie le registre FR au bus de données système 28.Le registre SR est un registre d'état, lisible vers l'interface système par un mécanisme analogue (commutateur 122), dans lequel sont stockés d'autres signaux intervenant dans le fonctionnement de l'unité logique 30, relatifs à l'état de l'interface entre le module de test 4 et la carte à microprocesseur 1. Les registres FR et SR permettent à l'opérateur un suivi très simple de certains aspects du déroulement du test. Dans certains cas, on peut prévoir que le système de commande extérieur intervienne au cours du déroulement d'un test en modifiant directement le contenu du registre FR ou SR (par exemple en positionnant à 1 le bit TRON pour provoquer des enregistrements dans les mémoires de trace).
EXEMPLES D'UTILISATION DU MODULE DE TEST
Exemple 1 : Mesure de performances
Pour mesurer le temps d'exécution d'une partie sensible du programme, allant par exemple d'une adresse Al à une adresse A2 dans la mémoire de programme 13, l'opérateur met à 1 les bits cprg et cerO aux adresses Al et
A2 dans la mémoire de conditions CO, et définit ctr0=l et ctrl=0 à l'adresse Al. Le signal VQ sera donc mis à 1 au moment où le programme lira les instructions aux adresses Al et A2 (portes ET 100 et porte OU 104). Le signal TRON passera également à 1 à partir du moment où le programme lira l'instruction à l'adresse Al (porte ET 107 et bascule
RS 106).En conséquence, l'incrémentation du compteur d'adresse de trace TA (et donc l'enregistrement dans les mémoires de trace) sera effectuée au début et à la fin de la partie sensible du programme (porte ET 113). En examinant a posteriori les bits de comptage du temps dans les mémoires de trace TZ et TU, l'opérateur pourra déterminer le temps mis par le processeur pour exécuter la partie sensible du programme, les adresses Al et A2 pouvant être retrouvées dans la mémoire de trace TX, et le bit IO inclus dans les bits d'état BE dans la mémoire TZ confirmant que ces adresses ont bien fait l'objet d'accès en instructions.
On notera que si on nla pas besoin d'une résolution temporelle à l'échelle de la période du signal d'horloge H, il est possible de soumettre ce signal H à une division de fréquence avant de l'adresser aux compteurs de temps TL et
TM.
Exemple 2 : Visualisation des données en temps réel
Pour suivre en temps réel l'évolution de la valeur d'une donnée particulière, stockée à une adresse A3 dans la mémoire de données 14, l'opérateur programme le système de commande extérieur, via la station de travail 8, pour faire lire le contenu de la mémoire image RA à l'adresse A3 entre les cycles d'accès du microprocesseur 12. L'adresse A3 est donc inscrite dans le registre FA et les signaux
MIO=MTX=MTY=0 et MRA=1 sont présentés sur l'interface système 25. Avec la périodicité requise par la résolution en temps recherchée, le signal MCA est activé par le système de commande extérieur. Chaque activation de MCA est suivie par une lecture du registre DR dans laquelle la donnée considérée a été inscrite par suite du fonctionnement expliqué précédemment en référence aux figures 4 et 6.Les données ainsi reçues successivement par le système de commande extérieur peuvent alors être traitées, mémorisées et par exemple visualisées sous forme graphique sur la station de travail 8. Les données correspondant à plusieurs paramètres peuvent également être visualisées (avec une moindre résolution temporelle) en présentant à tour de rôle les adresses correspondantes dans le registre FA. Ces opérations de visualisation en temps réel n'interfèrent pas avec l'exécution du programme, l'environnement de la carte 1 reproduisant son environnement opérationnel.
Exemple 3 : Détection d'anomalies logicielles
Une violation d'accès en mémoire peut d'abord être détectée par les bits cpp, cpd et cpw de la mémoire de conditions CO. Dans ce cas l'exécution du programme est stoppée (portes 93 à 96) après l'écriture dans les mémoires de trace (l'incrémentation du compteur TA n'est pas nécessaire puisque le programme est stoppé). L'opérateur peut donc examiner le contenu des mémoires de trace à la dernière adresse pour déterminer le contexte dans lequel l'anomalie s'est produite. Il peut en outre faire réexécuter quelques instructions précédant l'adresse de l'anomalie en provoquant à certaines au moins des adresses un enregistrement dans les mémoires de trace (bits cerO, cprg, cio, crd, cwr mis à 1 et bit cdO mis à 0 aux adresses correspondantes dans la mémoire CO), ce qui permet un débogage interactif.
D'autres types d'anomalies peuvent être détectées et conduire aux mêmes possibilités de diagnostic. Par exemple, une anomalie peut être caractérisée par une certaine valeur de donnée D4, connue de l'opérateur, prise à une certaine adresse A4 de la mémoire de données 14. L'opérateur peut définir cprg=cio=cact0=0 et crd=cwr=cd0=cactl=l à l'adresse
A4 dans la mémoire CO et scd0=l à l'adresse D4 dans la mémoire QU. Si l'anomalie se produit au cours de l'exécution du programme par la carte 1, le signal VQ sera activé (portes 98,99,101,102,104), et l'exécution sera immédiatement stoppée (portes 112 et 96) comme dans le cas d'une violation d'accès en mémoire.
Exemple 4 : Simulation d'équipements manquants
On a vu que l'installation représentée sur la figure 1 reproduit l'environnement opérationnel de la carte à microprocesseur 1. Toutefois, elle ne comporte pas les capteurs et actionneurs supervisés par la carte 1 dans son environnement opérationnel, ni les cartes d'entrées/sorties associées. Or la carte 1 a besoin de certains signaux en provenance de ces équipements manquants. Pour les actionneurs, il suffit en général de fournir un accusé de réception après réception d'un ordre envoyé par la carte 1.
Ces accusés de réception peuvent être gérés par programmation des bits ciack aux adresses appropriées dans la mémoire CO.
La réponse est plus complexe en ce qui concerne les capteurs qui doivent fournir des valeurs de données en réponse à une interrogation par la carte 1. La fourniture de ces valeurs fait appel à la mémoire ES de simulation des entrées/sorties. Une interrogation par la carte 1 consiste en l'envoi d'une valeur D5 à une certaine adresse A5 dans l'espace d'entrées/sorties. La logique de commande d'écriture dans la mémoire ES (en particulier la porte ET 70) est telle que cette valeur D5 est immédiatement stockée à l'adresse A5 dans la mémoire ES. Après l'interrogation, le microprocesseur attend une valeur de réponse D6 à une certaine adresse A6 de l'espace d'entrées/sorties. Un ordre de lecture de l'espace d'entrées/sorties à l'adresse A6 est ainsi présenté quelques cycles plus tard par le microprocesseur.Souvent, ce laps de temps sera suffisant pour qu'on soit en mesure de pourvoir à la réponse de la manière expliquée ci-après.
Avant l'exécution du programme, l'opérateur inscrit cio=cer0=cact0=l et cactl=0 à l'adresse AS dans la mémoire de conditions CO. Ainsi, lorsque le microprocesseur 12 accède à l'adresse A5 dans l'espace d'entrées/sorties, le signal VQ est mis à 1 (porte ET 103 et porte OU 104), une interruption est déclenchée vers le système de commande extérieur (porte ET 111), et l'adresse AS et la donnée D5 sont stockées dans les mémoires de trace TX et TY (porte ET 113) . L'interruption fait entrer le système de commande extérieur, plus exactement la carte 5 de traitement en temps réel, dans un sous-programme de fourniture de la réponse. Ce sous-programme se déroule de la façon suivante.D'abord, les mémoires de trace TX et TY sont lues à l'adresse courante dans le compteur TA afin d'obtenir l'adresse A5 et la donnée
D5. Cette lecture est effectuée entre les cycles d'accès du microprocesseur sans interférer avec l'exécution du programme au moyen du registre tampon DR par activation du signal MCA avec MRA=MIO=O et MTX ou MTY=1. Une autre possibilité est de lire l'adresse A5 dans la mémoire TX (MTX=1) et d'aller ensuite lire la donnée D5 à l'adresse A5 dans la mémoire ES (MIO=MRW=l). Ensuite, la carte 5 détermine l'adresse A6 et la donnée D6 de la réponse. Cette détermination peut s'effectuer de façon rapide au moyen de tableaux de correspondance stockés dans les mémoires de la carte 5.
Un premier tableau adressable sur 16 bits contient, à chaque adresse, une référence à un second tableau qui correspond à l'adresse A6. Le premier tableau est lu à l'adresse A5 pour déterminer l'adresse A6 correspondant à l'emplacement de la réponse. Le second tableau, adressable sur 16 bits, est lu à l'adresse égale à la donnée DS pour obtenir la donnée de réponse D6. Les premier et seconds tableaux sont initialisés par l'opérateur selon le comportement simulé du satellite.
Le nombre des "seconds tableaux" peut être important si la carte 5 a une capacité de mémoire de, par exemple, 3 mégaoctets, étant par ailleurs noté qu'on n'a pas besoin d'un "second tableau" pour chaque adresse possible. Ensuite, la carte 5 fait écrire la donnée D6 à l'adresse A6 dans la mémoire ES. Cette écriture est effectuée entre les cycles d'accès du microprocesseur 12 comme expliqué en référence aux figures 4 et 6, par activation du signal MCA avec MIO=1 et MRW=MRA=MTX=MTY=0. Au moment où le microprocesseur 12 accédera à l'adresse A6 dans l'espace d'entrées/sorties, il pourra alors lire la réponse obtenue D6 (porte ET 71). Si l'obtention de l'adresse A6 et de la donnée D6 prend trop de temps à la carte 5, le module de test peut en outre envoyer un ordre d'attente à la carte 1.
Bien entendu, les exemples d'utilisation ci-dessus sont des illustrations non exhaustives des possibilités offertes par le module de test selon l'invention.

Claims (12)

REVENDICATIONS
1. Module de test (4), raccordable aux bus d'adresses (16) et de données (17) et à des lignes de commande (18) d'une carte à microprocesseur (1), pour analyser l'exécution d'un programme par le microprocesseur (12), caractérisé en ce qu'il comprend
- une interface système (25) pour communiquer avec un système de commande extérieur (5,6,8)
- une unité logique (30) reliée aux lignes de commande (18) de la carte à microprocesseur et à des lignes de commande système (26) provenant de l'interface système
- une mémoire de conditions sur les adresses (CO) dont l'entrée d'adresse est reliée au bus d'adresses (16) de la carte à microprocesseur pendant les cycles d'accès du microprocesseur exécutant le programme à analyser, et dont l'accès de donnée est relié à l'unité logique (30) ; et
- des mémoires de contrôle (34) dont le contenu peut être modifié pendant les cycles d'accès du microprocesseur, et lu vers l'interface système,
en ce que la mémoire de conditions sur les adresses (CO) contient des bits de condition programmables déterminant les conditions dans lesquelles le contenu de certaines des mémoires de contrôle (34) est modifié pendant l'exécution du programme à analyser lorsque l'adresse de ces bits de condition dans la mémoire de conditions est présente sur le bus d'adresses (16), et en ce que, pendant l'exécution du programme à analyser, la mémoire de conditions sur les adresses (CO) est lue à chaque cycle d'accès du microprocesseur à l'adresse présente sur le bus d'adresses (16), et l'unité logique (30) commande des écritures dans les mémoires de contrôle (34) en fonction des bits de condition lus dans la mémoire de conditions sur les adresses et des signaux présents sur les lignes de commande
(18) de la carte à microprocesseur.
2. Module de test selon la revendication 1, caractérisé en ce qu il comprend un registre d'adresses (FA) chargé par le système de commande extérieur via l'interface système (25), et un registre tampon de données (DR) lu par le système de commande extérieur via l'interface système, l'unité logique (30) étant agencée pour répondre entre deux cycles d'accès du microprocesseur à une requête de lecture d'au moins une des mémoires de contrôle (34) transmise sur les lignes de commande système (26), en commandant une lecture de ladite mémoire de contrôle à l'adresse présente dans le registre d'adresses (FA) et un chargement de la donnée ainsi lue dans le registre tampon de données (DR).
3. Module de test selon la revendication 2, caractérisé en ce que ladite mémoire de contrôle est une mémoire image (RA) associée à une mémoire de données (14) de la carte à microprocesseur (1), dont les accès d'adresse et de donnée sont respectivement reliés au bus d'adresses (16) et au bus de données (17) pendant les cycles d'accès du microprocesseur, et en ce que, pendant l'exécution du programme à analyser, l'unité logique (30) transmet à la mémoire image (RA) les commandes d'écriture dans la mémoire de données que le microprocesseur présente sur les lignes de commande (18) de la carte, pour que les écritures de données aient lieu conjointement dans la mémoire de données et dans la mémoire image.
4. Module de test selon l'une quelconque des revendications 1 à 3, caractérisé en ce que les mémoires de contrôle comprennent des mémoires de trace (TX,TY,TZ,TU) dont l'entrée d'adresse est reliée à un compteur d'adresse de trace (TA) pendant les cycles d'accès du microprocesseur, et en ce que, pendant l'exécution du programme à analyser, l'unité logique (30) commande l'écriture dans les mémoires de trace et l'incrémentation du compteur d'adresse de trace en fonction de bits de condition lus dans la mémoire de conditions sur les adresses (CO) et des signaux présents sur les lignes de commande (18) de la carte à microprocesseur.
5. Module de test selon la revendication 4, caractérisé en ce que les mémoires de trace comprennent une mémoire de trace des adresses (TX) dont l'entrée de donnée est reliée au bus d'adresses (16) pendant les cycles d'accès du microprocesseur.
6. Module de test selon la revendication 4 ou 5, caractérisé en ce que les mémoires de trace comprennent une mémoire de trace des données (TY) dont l'entrée de donnée est reliée au bus de données (17) pendant les cycles d'accès du microprocesseur.
7. Module de test selon l'une quelconque des revendications 4 à 6, caractérisé en ce que les mémoires de trace comprennent au moins une memoire (TZ,TU) dont l'entrée de donnée est reliée à un compteur de temps (TM,TL) pendant les cycles d'accès du microprocesseur, le compteur de temps étant incrémenté pendant l'exécution du programme à analyser par un signal de cadencement (H) reçu sur une ligne de commande de la carte à microprocesseur.
8. Module de test selon l'une quelconque des revendications 4 à 7, caractérisé en ce que les mémoires de trace comprennent une mémoire de trace d'état (TZ) dont l'entrée de donnée reçoit, pendant les cycles d'accès du microprocesseur, des bits d'état obtenus par l'unité logique
(30) sur la base de signaux reçus sur les lignes de commande
(18) de la carte à microprocesseur.
9. Module de test selon l'une quelconque des revendications 1 à 8, caractérisé en ce que les mémoires de contrôle comprennent une mémoire de couverture du test (TC) dont l'entrée d'adresse est reliée au bus d'adresses (16) pendant les cycles d'accès du microprocesseur et dont l'entrée de donnée reçoit une valeur de donnée prédéterminée, le contenu à chaque adresse de la mémoire de couverture du test (TC) étant initialisé à une valeur différente de ladite valeur prédéterminée, et l'unité logique (30) commandant une écriture dans la mémoire de couverture du test lorsqu'elle reçoit sur les lignes de commande (18) de la carte à microprocesseur des signaux indiquant que le microprocesseur est dans un cycle de lecture d'une mémoire de programme (13).
10. Module de test selon l'une quelconque des revendications 1 à 9, caractérisé en ce que les mémoires de contrôle comprennent une mémoire (ES) de simulation des entrées/sorties associée à un espace d'entrées/sorties de la carte à microprocesseur (1), dont les accès d'adresse et de donnée sont respectivement reliés aux bus d'adresses (16) et de données (17) de la carte à microprocesseur pendant les cycles d'accès du microprocesseur, et en ce que, pendant l'exécution du programme à analyser, l'unité logique (30) transmet à la mémoire (ES) de simulation des entrées/sorties les commandes de lecture et d'écriture dans l'espace d'entrées/sorties que le microprocesseur (12) présente sur le lignes de commande (18) de la carte, l'unité logique (30) étant agencée pour permettre au système de commande extérieur de lire ou d'écrire dans la mémoire (ES) de simulation des entrées/sorties entre deux cycles d'accès du microprocesseur.
11. Module de test selon l'une quelconque des revendications 1 à 10, caractérisé en ce que les bits de condition contenus dans la mémoire de conditions sur les adresses comprennent un bit (cdO) dont la valeur indique si la donnée présente sur le bus de données (17) lorsque l'adresse de ces bits de condition est présente sur le bus d'adresses (16) est à considérer pour déterminer les opérations à commander par l'unité logique (30), et en ce qu'il comprend en outre une mémoire de conditions sur les données (QU) dont l'entrée d'adresse est reliée au bus de données (17) de la carte à microprocesseur pendant les cycles d'accès du microprocesseur, et dont l'accès de donnée est reliée à l'unité logique (30), la mémoire de conditions sur les données (QU) contenant d'autres bits de condition programmables lus à chaque cycle d'accès du microprocesseur.
12. Module de test selon l'une quelconque des revendications 1 à 11, caractérisé en ce que l'interface système (25) comporte un ensemble de coupleurs optiques assurant une isolation électrique de la carte à microprocesseur (1) et du module de test (4) vis-à-vis de l'extérieur.
FR9407717A 1994-06-23 1994-06-23 Module de test pour analyser l'exécution d'un programme par une carte à microprocesseur. Expired - Fee Related FR2721725B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR9407717A FR2721725B1 (fr) 1994-06-23 1994-06-23 Module de test pour analyser l'exécution d'un programme par une carte à microprocesseur.

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9407717A FR2721725B1 (fr) 1994-06-23 1994-06-23 Module de test pour analyser l'exécution d'un programme par une carte à microprocesseur.

Publications (2)

Publication Number Publication Date
FR2721725A1 true FR2721725A1 (fr) 1995-12-29
FR2721725B1 FR2721725B1 (fr) 1996-09-20

Family

ID=9464562

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9407717A Expired - Fee Related FR2721725B1 (fr) 1994-06-23 1994-06-23 Module de test pour analyser l'exécution d'un programme par une carte à microprocesseur.

Country Status (1)

Country Link
FR (1) FR2721725B1 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0849670A1 (fr) * 1996-12-19 1998-06-24 STMicroelectronics Limited Calculateur intégré capable de tracer des instructions
EP1117046A1 (fr) * 2000-01-07 2001-07-18 Sony Corporation Système et méthode de surveillance d'un bus interne en temps réel

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0189848A2 (fr) * 1985-01-31 1986-08-06 Hewlett-Packard Company Méthode et appareil de déverminage de logiciel
EP0434081A2 (fr) * 1989-12-22 1991-06-26 Bull HN Information Systems Inc. Appareil de surveillance pour la détection sélective de l'état de signaux dans un système opérationnel

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0189848A2 (fr) * 1985-01-31 1986-08-06 Hewlett-Packard Company Méthode et appareil de déverminage de logiciel
EP0434081A2 (fr) * 1989-12-22 1991-06-26 Bull HN Information Systems Inc. Appareil de surveillance pour la détection sélective de l'état de signaux dans un système opérationnel

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0849670A1 (fr) * 1996-12-19 1998-06-24 STMicroelectronics Limited Calculateur intégré capable de tracer des instructions
US6279103B1 (en) 1996-12-19 2001-08-21 Sgs-Thomson Microelectronics Limited Method and device for providing an instruction trace from an on-chip CPU using control signals from the CPU
EP1117046A1 (fr) * 2000-01-07 2001-07-18 Sony Corporation Système et méthode de surveillance d'un bus interne en temps réel
US7024588B2 (en) 2000-01-07 2006-04-04 Sony Corporation System monitoring system and monitoring method

Also Published As

Publication number Publication date
FR2721725B1 (fr) 1996-09-20

Similar Documents

Publication Publication Date Title
US11782818B2 (en) Providing debug information on production containers using debug containers
US9697108B2 (en) System, method, and apparatus for automatic recording and replaying of application executions
US7080283B1 (en) Simultaneous real-time trace and debug for multiple processing core systems on a chip
US8584097B2 (en) Post-execution software debugger with event display
US20030233601A1 (en) Non-intrusive signal observation techniques usable for real-time internal signal capture for an electronic module or integrated circuit
US20150318059A1 (en) Memory tester design for soft error rate (ser) failure analysis
US10571519B2 (en) Performing system functional test on a chip having partial-good portions
EP1310847B1 (fr) Système de téléchargement et de télémaintenance d'une carte électronique
US8015552B1 (en) Post-execution software debugger with coverage display
US10169184B2 (en) Identification of storage performance shortfalls
FR2721725A1 (fr) Module de test pour analyser l'exécution d'un programme par une carte à microprocesseur.
JP2006252267A (ja) システム検証用回路
US9852048B2 (en) Simulating process variable changes during process runtime
CN117076337A (zh) 一种数据传输方法、装置、电子设备及可读存储介质
US5941995A (en) Reloading state analyzer
CN114610557B (zh) 设备驱动单元的测试方法及装置
US6615377B1 (en) Integrated circuit with signal-vector queue for normal and test modes of operation
US10169192B2 (en) Automatic collection and presentation of runtime data semantics
US11307966B2 (en) Shared software debugging service
US10372589B2 (en) Multi environment aware debugger
FR2897174A1 (fr) Processeur comportant une interface de debogage integree controlee par l'unite de traitement du processeur
US9098628B2 (en) Memory system with multiple block write control to control state data
US20230205673A1 (en) A computing platform and method for synchronize the prototype execution and simulation of hardware devices
US20220417079A1 (en) Reproducing a state of a system and a network upon occurrence of an error
CN115220969A (zh) 基于高频事件的硬件诊断

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20060228