WO2004046930A1 - Dispositif a liaison serie de surveillance d'un microprocesseur - Google Patents

Dispositif a liaison serie de surveillance d'un microprocesseur Download PDF

Info

Publication number
WO2004046930A1
WO2004046930A1 PCT/FR2002/003928 FR0203928W WO2004046930A1 WO 2004046930 A1 WO2004046930 A1 WO 2004046930A1 FR 0203928 W FR0203928 W FR 0203928W WO 2004046930 A1 WO2004046930 A1 WO 2004046930A1
Authority
WO
WIPO (PCT)
Prior art keywords
register
microprocessor
flag
memory space
memory
Prior art date
Application number
PCT/FR2002/003928
Other languages
English (en)
Inventor
Catherine Robert
Xavier Robert
Jehan-Philippe Barbiero
Original Assignee
Stmicroelectronics S.A.
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 Stmicroelectronics S.A. filed Critical Stmicroelectronics S.A.
Priority to PCT/FR2002/003928 priority Critical patent/WO2004046930A1/fr
Publication of WO2004046930A1 publication Critical patent/WO2004046930A1/fr

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/3648Software debugging using additional hardware
    • 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
    • G06F11/3656Software debugging using additional hardware using a specific debug interface

Definitions

  • FIG. 1 schematically represents an integrated circuit 10 comprising a microprocessor ( ⁇ P) 12, an internal memory (MEM) 14 and input / output terminals (I / O) 16.
  • the microprocessor 12 is intended to execute a program or software stored in memory 14. Under the command of the program, the microprocessor 12 can process data supplied by the input / output terminals 16 or stored in memory 14 and read or write data by the input / terminals exit 16.
  • a monitoring circuit 18 is generally integrated into the integrated circuit 10.
  • the monitoring circuit 18 is adapted to read specific data supplied by the microprocessor 12 during the course of a program, and to possibly perform processing on the data read.
  • Test terminals connect the monitoring circuit 18 to an analysis tool 20.
  • the analysis tool 20 can carry out processing of the signals received, for example as a function of commands supplied by a user, and ensuring a detailed analysis of the operation of the microprocessor 12.
  • the analysis tool 20 can determine the sequence of instructions of the program actually executed by the microprocessor 12.
  • the number of test terminals can be of the same order of magnitude as the number of input / output terminals 16, for example 200 to 400 terminals.
  • the test terminals and the connections of the monitoring circuit 18 occupy a large area of silicon, which leads to an undesirable increase in the cost of the circuit.
  • a first version of the integrated circuit 10 including the monitoring circuit 18 and the test terminals is produced in small quantities to carry out the development of the microprocessor program 12 or "user program".
  • a version of the integrated circuit 10 freed from the monitoring circuit 18 and the test terminals is marketed. This implies the realization of two versions of the integrated circuit, which requires significant work and remains relatively expensive.
  • the final chip is not necessarily identical to the chip tested.
  • it is sought to produce a monitoring circuit 18 which occupies a reduced surface and only requires a reduced number of test terminals, which reduces the cost of the monitoring circuit.
  • the monitoring circuit 18 can then be left on the integrated circuit 10 finally marketed.
  • the standard IEEE-ISTO-5001 or standard Nexus in preparation offers in its version of 1999, accessible for example on the site www.ieee-isto.org/Nexus5001, a circuit of monitoring 18 requiring only a reduced number of test terminals.
  • the standard provides for four versions of the monitoring circuit, called class 1 to 4, of different complexity and size.
  • FIG. 1 schematically represents a monitoring circuit 18 meeting the Nexus class 2, 3 or 4 standard.
  • the circuit 18 is connected to the analysis tool 20 both by a serial access 22 and by a parallel access 24 .
  • the serial access 22 is connected to a serial interface 26 of the IEEE-1149.1 type (JTAG).
  • JTAG IEEE-1149.1 type
  • the serial interface 26 allows the analysis tool 20 to write or read in series the content of control registers 28 of circuit 18.
  • a single control register 28 is shown in FIG. 1
  • the control registers 28 are connected to predetermined key points of the microprocessor in such a way that the values written in the control registers 28 make it possible to modify the operation of the microprocessor.
  • Appropriate programming of the control registers 28 by the analysis tool 20 thus makes it possible to implement certain basic error search functions.
  • the analysis tool 20 can force the microprocessor to suspend the execution of the program when the program reaches a certain execution point.
  • the analysis tool 20 can command the microprocessor to write in the registers 28 the values of the predetermined key points to which these registers are connected, then read the registers 28.
  • Section 4.1.1 of the IEEE-ISTO-5001 standard describes in more detail the characteristics and functions of the serial interface.
  • the parallel access 24 is connected to a buffer memory 30 intended to store predetermined messages produced by the circuit 18 when certain predetermined instructions are executed. Part 6 of the IEEE-ISTO-5001 standard lists these predetermined messages. Messages stored in the buffer memory 30 are then sent to the analysis tool 20.
  • the analysis tool 20 is provided for reconstructing the operation of the microprocessor, that is to say the progress of the program in the microprocessor, from the received messages and program code.
  • a particular data acquisition message "Data Acquisition”, described in section 6.4.6 of the IEEE-ISTO-5001 standard, allows the circuit 18 to supply the analysis tool 20 with each new value taken by a variable predetermined program during program execution by the microprocessor.
  • the program is modified so that each new value of the predetermined variable is written in a register 32 of the circuit 18.
  • the program is also modified to signal the writing in the register 32 by activating a flag in a memory cell 34 of circuit 18.
  • the microprocessor program can be provided to suspend its execution as long as the flag remains activated.
  • the register 32 and the memory box 34 of the circuit 18 are connected so as to be part of the memory space of the microprocessor 12 so that the program can write directly to the register 32 and the memory box 34.
  • the circuit 18 When the flag of the memory box 34 is activated, the circuit 18 produces a "Data Acquisition" message containing the data written in the register 32, and it stores the message in the buffer memory 30 so that the message is sent to the analysis tool 20. When the "Data Acquisition" message stored in the buffer memory 30 is sent to the analysis tool 20, the circuit 18 deactivates the flag of the memory box 34. If the execution of the microprocessor program has been suspended by the activation of the flag, it can then resume.
  • the modification of the program making it possible to write each new value of the predetermined variable in the register 32 and to activate the flag of the memory box 34 is carried out by compiling the program for which we want to study the unfolding by means of an appropriate compiler, or by a modification of the code by the user.
  • a monitoring circuit 18 of class 2, 3 or 4 as shown in FIG. 1 occupies a relatively large surface, in particular because of the presence of the parallel access 24 and of the buffer memory 30.
  • the standard IEEE-ISTO-5001 thus provides a class 1 monitoring circuit of reduced size, devoid of elements allowing the production of messages, namely the parallel access 24 and the buffer memory 30 shown in FIG. 1.
  • a class 18 circuit 18 is provided with the single serial interface 26, and it makes it possible to implement basic error search functions as described above.
  • a circuit 1 of class 1 has a reduced size but only makes it possible to supply the analysis tool with key point values as described above. However, it would be desirable for the analysis circuit to be able to supply a “Data Acquisition” type message to the analysis tool 20.
  • control registers 28 are not connected so as to be part memory space of the microprocessor, no conventional instruction allows the microprocessor to write data in the control registers 28.
  • a modified instruction forcing the key points of the microprocessor connected to the registers
  • An object of the present invention is to provide a monitoring circuit comprising only a serial link with an analysis tool, but which makes it possible to supply this analysis tool with each new value taken by a predetermined variable of the program during the execution of the program by the microprocessor.
  • the present invention provides an integrated device for monitoring a microprocessor exchanging data with a first memory space, comprising a first register located in the first memory space in which the microprocessor comes to write data. , a serial interface for exchanging data between an external analysis tool and a second memory space distinct from the first memory space, and a copying means for copying the data written in the first register into a second register located in the second memory space .
  • the monitoring device comprises a first memory box located in the first memory space intended to contain a first flag activated by the microprocessor during each writing in the first register and a second memory box intended for contain a second flag and located in the second memory space, and the copying means activates the second flag and copies in the second register the data written in the first register when the microprocessor activates the first flag, and deactivates the first flag when an inactivation of the second flag under the control of the analysis tool.
  • the monitoring device comprises a third register located in the first memory space in which the microprocessor comes to write data, the first flag being activated when writing to any one of the first and third registers, the copying means copying the data written in the first or the third register when the microprocessor activates the first flag, and writing in a third memory cell located in the second memory space a value indicating the origin of the data copied into the second register.
  • the third memory box is formed by an additional bit of the second register.
  • FIG. 1 previously described , schematically represents an integrated microprocessor provided with a class 2, 3 or 4 monitoring circuit;
  • FIG. 2 schematically represents an integrated microprocessor provided with a class 1 monitoring circuit according to the present invention;
  • FIG. 3 schematically represents a class 1 monitoring circuit according to a variant of the present invention.
  • FIG. 2 schematically represents an integrated circuit 10 comprising, as in FIG. 1, a microprocessor 12, a memory 14 and input / output terminals 16.
  • the circuit 10 comprises a modified Nexus 18 ′ class 1 monitoring circuit according to the present invention which comprises a register 32 and a memory box 34 connected so as to each constitute an area of the memory space of the microprocessor, and a serial interface 26 connected to the analysis tool by a serial access 22.
  • the serial interface 26 allows access not only to the control registers provided for by the IEEE-ISTO-5001 standard (represented by register 28), but also to a register 36 of the same size as the register 32 and a memory box 38.
  • the microprocessor is programmed to write each new value of a predetermined variable of the program in the register 32 and activates the flag of the memory box 34 to indicate that it has just carried out such a writing.
  • a means 40 is provided for, when the flag of the memory box 34 is activated, activate a flag
  • the analysis tool 20 is programmed to periodically read the memory box 38. When the analysis tool 20 determines that the flag of memory box 38 has been activated, it reads the data stored in register 36 to process it, then it deactivates the flag of memory box 38.
  • the means 40 is provided for inactivating the flag of memory box 34 when the flag of memory box 38 is deactivated. It will be noted that the program executed by the microprocessor can be provided to enter a suspended state as soon as the flag of the memory box 34 is activated and to exit this state as soon as the flag is inactivated. This ensures that the microprocessor does not write new data to register 32 before the current data has been read by the analysis tool.
  • a class 1 monitoring circuit thus makes it possible to provide the analysis tool with each new value taken by a predetermined variable of the program executed by the microprocessor, without using the buffer memory and the parallel access provided in the class 2, 3 or 4 monitoring circuits.
  • the additional register, memory box and means 40 provided by the present invention occupy a reduced surface area, which makes the circuit surveillance class 1 according to the invention particularly advantageous.
  • FIG. 3 schematically represents a monitoring circuit 18 "according to a variant of the present invention.
  • the circuit 18 comprises, in addition to the register 32 and the memory box 34, a register 32 'connected so as to constitute a zone of the memory space of the microprocessor.
  • the circuit 18 “includes like the circuit 18 'a serial interface 26 connected to the analysis tool by a serial access 22.
  • the serial interface 26 allows access to a register 36' having a part A of the size of the register 32 or 32 'and a part B comprising a bit, in addition to the control registers represented by the register 28 and the memory box 38.
  • the circuit 18 “comprises a means 40' connected to the registers 32, 32 'and 36' and in memory boxes 34 and 38.
  • the microprocessor is programmed to write respectively in the register 32 or in the register 32 'each new value of a first predetermined variable or of a second predetermined variable of the program.
  • the program comes to write in one or other of the registers 32 and 32 ', it activates the flag of the memory box 34.
  • the means 40' is provided for then activating the flag of the memory box 38, copying the data written in register 32 or register 32 'in part A of register 36', and to enter a value 1 or 0 in part B of register 36 'indicating that the data copied in part A comes from register 32 or register 32 '.
  • This value then allows the analysis tool 20 to process the data read from the register 36 'according to their origin.
  • the monitoring circuit according to this variant of the invention thus makes it possible to supply the analysis tool with each new value taken by any one of two predetermined variables of the program executed by the microprocessor.
  • the present invention is susceptible to various variants and modifications which will appear to humans. of career.
  • the present invention has been described in relation to a register 32 or two registers 32 and 32 ′ to enable the variations of one or two predetermined program variables to be followed.
  • Those skilled in the art will easily adapt the present invention to any number of registers fulfilling a similar function to allow the acquisition of the same number of predetermined variables.
  • the part B of the register 36 ′ will then comprise a number of bits suitable for coding a value indicating from which from said registers the data written in the part A comes.

Landscapes

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

Abstract

L'invention concerne un dispositif intégré de surveillance (18', 18") d'un microprocesseur (12) échangeant des données avec un premier espace mémoire, comprenant un premier registre (32) situé dans le premier espace mémoire dans lequel le microprocesseur vient écrire des données, et une interface série (26) pour échanger des données entre un outil d'analyse externe (20) et un second espace mémoire (28) distinct du premier espace mémoire, et comprenant un moyen (40; 40') pour recopier les données écrites dans le premier registre (32; 32') dans un deuxième registre (36; 36'A) situé dans le second espace mémoire.

Description

DISPOSITIF A LIAISON SERIE DE SURVEILLANCE D'UN MICROPROCESSEUR
La présente invention concerne le test de microprocesseurs. Elle concerne plus particulièrement un dispositif intégré sur la puce d'un microprocesseur pour surveiller l'exécution d'un programme par le microprocesseur. La figure 1 représente de façon schématique un circuit intégré 10 comportant un microprocesseur (μP) 12, une mémoire interne (MEM) 14 et des bornes d'entrée/sortie (I/O) 16. Le microprocesseur 12 est destiné à exécuter un programme ou logiciel stocké dans la mémoire 14. Sous la commande du programme, le microprocesseur 12 peut traiter des données fournies par les bornes d'entrée/sortie 16 ou stockées dans la mémoire 14 et lire ou écrire des données par les bornes d' entrée/sortie 16.
De façon à vérifier le bon fonctionnement du microprocesseur, on intègre généralement au circuit intégré 10 un circuit de surveillance 18. Le circuit de surveillance 18 est adapté à lire des données spécifiques fournies par le microprocesseur 12 lors du déroulement d'un programme, et à réaliser éventuellement un traitement sur les données lues . Des bornes de test relient le circuit de surveillance 18 à un outil d'analyse 20. L'outil d'analyse 20 peut effectuer un traitement des signaux reçus, par exemple en fonction de commandes fournies par un utilisateur, et assurer une analyse détaillée du fonctionnement du microprocesseur 12. En particulier, l'outil d'analyse 20 peut déterminer la séquence d'instructions du programme réellement exécutée par le microprocesseur 12. Le nombre de bornes de test peut être du même ordre de grandeur que le nombre de bornes d'entrée/sortie 16, par exemple 200 à 400 bornes. Les bornes de test ainsi que les connexions du circuit de surveillance 18 occupent une surface de silicium importante, ce qui entraîne un accroissement indésirable du coût du circuit. Pour réduire les coûts, une première version du circuit intégré 10 incluant le circuit de surveillance 18 et les bornes de test est produite en petites quantités pour effectuer la mise au point du programme du microprocesseur 12 ou "programme utilisateur". Après cette mise au point, une version du circuit intégré 10 débarrassée du circuit de surveillance 18 et des bornes de test est commercialisée. Cela implique la réalisation de deux versions du circuit intégré, ce qui demande un travail important et reste relativement coûteux. De plus, la puce finale n'est pas forcément identique à la puce testée. Pour pallier les inconvénients précédemment mentionnés, on cherche à réaliser un circuit de surveillance 18 qui occupe une surface réduite et nécessite seulement un nombre réduit de bornes de test, ce qui diminue le coût de revient du circuit de surveillance. Le circuit de surveillance 18 peut alors être laissé sur le circuit intégré 10 finalement commercialisé .
On cherche donc à diminuer le nombre de signaux fournis par le circuit de surveillance 18. Pour ce faire, on fait réaliser directement au niveau du circuit de surveillance 18 certaines opérations logiques sur les données mesurées au niveau du microprocesseur 12 de façon à transmettre seulement des informations importantes .
Ainsi, la norme IEEE-ISTO-5001 ou norme Nexus en préparation propose dans sa version de 1999, accessible par exemple sur le site www.ieee-isto.org/Nexus5001, un circuit de surveillance 18 ne nécessitant qu'un nombre réduit de bornes de test. La norme prévoit quatre versions du circuit de surveillance, dites de classe 1 à 4, de complexité et de taille différentes. On peut, pour obtenir plus de précisions sur chaque classe du circuit de surveillance, se reporter à la norme précédente et en particulier à la section 3 de la norme.
La figure 1 représente schématiquement un circuit de surveillance 18 répondant à la norme Nexus de classe 2, 3 ou 4. Le circuit 18 est relié à l'outil d'analyse 20 à la fois par un accès série 22 et par un accès parallèle 24.
L'accès série 22 est relié à une interface série 26 de type IEEE-1149.1 (JTAG) . L'interface série 26 permet à l'outil d'analyse 20 d'écrire ou de lire en série le contenu de registres de commande 28 du circuit 18. Pour des raisons de clarté, un seul registre de commande 28 est représenté en figure 1. Les registres de commande 28 sont reliés à des points clefs prédéterminés du microprocesseur de telle manière que les valeurs écrites dans les registres de commande 28 permettent de modifier le fonctionnement du microprocesseur. Une programmation appropriée des registres de commande 28 par l'outil d'analyse 20 permet ainsi de mettre en oeuvre certaines fonctions de base de recherche d'erreurs. Notamment, l'outil d'analyse 20 peut forcer le microprocesseur à suspendre 1 ' exécution du programme lorsque le programme atteint un certain point d'exécution. Une fois l'exécution du programme suspendue, l'outil d'analyse 20 peut commander au microprocesseur d'écrire dans les registres 28 les valeurs des points clefs prédéterminés auxquels ces registres sont reliés, puis lire les registres 28. La section 4.1.1 de la norme IEEE-ISTO-5001 décrit plus en détail les caractéristiques et les fonctions de 1 ' interface série .
L'accès parallèle 24 est relié à une mémoire tampon 30 destinée à stocker des messages prédéterminés produits par le circuit 18 lorsque certaines instructions prédéterminées sont exécutées. La partie 6 de la norme IEEE-ISTO-5001 donne une liste de ces messages prédéterminés. Les messages stockés dans la mémoire tampon 30 sont ensuite envoyés à l'outil d'analyse 20. L'outil d'analyse 20 est prévu pour reconstituer le fonctionnement du microprocesseur, c'est-à-dire le déroulement du programme dans le microprocesseur, à partir des messages reçus et du code du programme.
Un message particulier d'acquisition de données "Data Acquisition", décrit dans la section 6.4.6 de la norme IEEE- ISTO-5001, permet au circuit 18 de fournir à l'outil d'analyse 20 chaque nouvelle valeur prise par une variable prédéterminée du programme lors de l'exécution du programme par le microprocesseur. Pour permettre au circuit 18 de produire un tel message, le programme est modifié pour que chaque nouvelle valeur de la variable prédéterminée soit écrite dans un registre 32 du circuit 18. Le programme est également modifié pour signaler l'écriture dans le registre 32 en activant un drapeau dans une case mémoire 34 du circuit 18. Le programme du microprocesseur peut être prévu pour suspendre son exécution tant que le drapeau reste activé. Le registre 32 et la case mémoire 34 du circuit 18 sont connectés de manière à faire partie de 1 ' espace mémoire du microprocesseur 12 pour que le programme puisse écrire directement dans le registre 32 et la case mémoire 34. Lorsque le drapeau de la case mémoire 34 est activé, le circuit 18 produit un message "Data Acquisition" contenant les données écrites dans le registre 32, et il stocke le message dans la mémoire tampon 30 pour que le message soit envoyé à l'outil d'analyse 20. Lorsque le message "Data Acquisition" stocké dans la mémoire tampon 30 est envoyé à l'outil d'analyse 20, le circuit 18 inactive le drapeau de la case mémoire 34. Si l'exécution du programme du microprocesseur a été suspendue par l'activâtion du drapeau, elle peut alors reprendre. La modification du programme permettant d'écrire chaque nouvelle valeur de la variable prédéterminée dans le registre 32 et d'activer le drapeau de la case mémoire 34 est réalisée en compilant le programme dont on veut étudier le déroulement au moyen d'un compilateur approprié, ou par une modification du code par l'utilisateur.
Un circuit de surveillance 18 de classe 2, 3 ou 4 tel que représenté en figure 1 occupe une surface relativement importante, notamment à cause de la présence de l'accès parallèle 24 et de la mémoire tampon 30. La norme IEEE-ISTO-5001 prévoit ainsi un circuit de surveillance de classe 1 de taille réduite, dépourvu d ' éléments permettant la production des messages, à savoir l'accès parallèle 24 et la mémoire tampon 30 représentés en figure 1. Un circuit 18 de classe 1 est muni de la seule interface série 26, et il permet de mettre en oeuvre des fonctions de base de recherche d'erreurs telles que décrites précédemment. Un circuit 18 de classe 1 a une taille réduite mais permet seulement de fournir à l'outil d'analyse des valeurs de points clefs comme cela a été décrit précédemment. Or, il serait souhaitable que le circuit d'analyse puisse fournir un message de type "Data Acquisition" à l'outil d'analyse 20.
On a vu précédemment que 1 ' interface série permet à l'outil d'analyse 20 d'écrire ou de lire le contenu de registres de commande 28 du circuit 18. Les registres de commande 28 n'étant pas connectés de manière à faire partie de l'espace mémoire du microprocesseur, aucune instruction classique ne permet au microprocesseur d'écrire des données dans les registres de commande 28. En outre, une instruction modifiée forçant les points clefs du microprocesseur reliés aux registres
28 à une valeur identique à la valeur d'une variable prédéterminée du programme demanderait notamment une modification de la chaîne de compilation du programme du microprocesseur, ce qui n'est pas souhaitable. Il n'est donc pas possible de programmer le microprocesseur pour écrire une valeur d'une variable prédéterminée du programme dans les registres de commande 28, afin d'utiliser l'interface série pour fournir cette valeur à l'outil d'analyse 20.
Un objet de la présente invention est de prévoir un circuit de surveillance comportant seulement une liaison série avec un outil d'analyse, mais qui permette de fournir à cet outil d'analyse chaque nouvelle valeur prise par une variable prédéterminée du programme lors de 1 ' exécution du programme par le microprocesseur. Pour atteindre cet objet ainsi que d'autres, la présente invention prévoit un dispositif intégré de surveillance d'un microprocesseur échangeant des données avec un premier espace mémoire, comprenant un premier registre situé dans le premier espace mémoire dans lequel le microprocesseur vient écrire des données, une interface série pour échanger des données entre un outil d'analyse externe et un second espace mémoire distinct du premier espace mémoire, et un moyen de recopie pour recopier les données écrites dans le premier registre dans un deuxième registre situé dans le second espace mémoire .
Selon un mode de réalisation de 1 ' invention, le dispositif de surveillance comprend une première case mémoire située dans le premier espace mémoire destinée à contenir un premier drapeau activé par le microprocesseur lors de chaque écriture dans le premier registre et une deuxième case mémoire destinée à contenir un deuxième drapeau et située dans le second espace mémoire, et le moyen de recopie active le deuxième drapeau et recopie dans le deuxième registre les données écrites dans le premier registre lorsque le microprocesseur active le premier drapeau, et inactive le premier drapeau lors d'une inactivation du deuxième drapeau sous la commande de 1 ' outil d' analyse .
Selon un mode de réalisation de 1 ' invention, le dispositif de surveillance comprend un troisième registre situé dans le premier espace mémoire dans lequel le microprocesseur vient écrire des données, le premier drapeau étant activé lors d 'une écriture dans 1 'un quelconque des premier et troisième registres, le moyen de recopie recopiant les données écrites dans le premier ou le troisième registre lorsque le microprocesseur active le premier drapeau, et écrivant dans une troisième case mémoire située dans le second espace mémoire une valeur indiquant la provenance des données recopiées dans le deuxième registre.
Selon un mode de réalisation de l'invention, la troisième case mémoire est formée par un bit supplémentaire du deuxième registre.
La présente invention vise également un microprocesseur intégré sur une puce comprenant un dispositif de surveillance tel que décrit précédemment. Ces objets, caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non-limitatif en relation avec les figures jointes parmi lesquelles : la figure 1, précédemment décrite, représente de manière schématique un microprocesseur intégré muni d'un circuit de surveillance de classe 2, 3 ou 4 ; la figure 2 représente de manière schématique un microprocesseur intégré muni d'un circuit de surveillance de classe 1 selon la présente invention ; et la figure 3 représente de manière schématique un circuit de surveillance de classe 1 selon une variante de la présente invention.
Seuls les éléments nécessaires à la compréhension de la présente invention sont décrits par la suite. Pour obtenir de plus amples détails sur un circuit Nexus de classe 1, l'homme du métier se reportera à la norme IEEE-ISTO-5001.
La figure 2 représente de façon schématique un circuit intégré 10 comportant, comme en figure 1, un microprocesseur 12, une mémoire 14 et des bornes d'entrée/sortie 16. Le circuit 10 comporte un circuit Nexus de surveillance 18 ' de classe 1 modifié selon la présente invention qui comporte un registre 32 et une case mémoire 34 connectés de manière à constituer chacun une zone de l'espace mémoire du microprocesseur, et une interface série 26 reliée à l'outil d'analyse par un accès série 22. Selon la présente invention, l'interface série 26 permet d'accéder non seulement aux registres de commande prévus par la norme IEEE-ISTO-5001 (représentés par le registre 28) , mais également à un registre 36 de même taille que le registre 32 et à une case mémoire 38.
Le microprocesseur est programmé pour écrire chaque nouvelle valeur d'une variable prédéterminée du programme dans le registre 32 et vient activer le drapeau de la case mémoire 34 pour indiquer qu'il vient d'effectuer une telle écriture. Selon la présente invention, un moyen 40 est prévu pour, lorsque le drapeau de la case mémoire 34 est activé, activer un drapeau
(initialement inactivé) dans la case mémoire 38 et recopier dans le registre 36 les données écrites dans le registre 32. L'outil d'analyse 20 est programmé pour lire périodiquement la case mémoire 38. Lorsque l'outil d'analyse 20 détermine que le drapeau de la case mémoire 38 a été activé, il lit les données stockées dans le registre 36 pour les traiter, puis il inactive le drapeau de la case mémoire 38. Le moyen 40 est prévu pour inactiver le drapeau de la case mémoire 34 lorsque le drapeau de la case mémoire 38 est inactivé. On notera que le programme exécuté par le microprocesseur peut être prévu pour entrer dans un état suspendu dès que le drapeau de la case mémoire 34 est activé et pour sortir de cet état dès que le drapeau est inactivé. Cela permet de garantir que le microprocesseur n'écrit pas de nouvelles données dans le registre 32 avant que les données courantes aient été lues par 1 ' outil d' analyse .
Un circuit de surveillance de classe 1 selon la présente invention permet ainsi de fournir à 1 ' outil d' analyse chaque nouvelle valeur prise par une variable prédéterminée du programme exécuté par le microprocesseur, sans utiliser la mémoire tampon et l'accès parallèle prévus dans les circuits de surveillance de classe 2, 3 ou 4. Le registre, la case mémoire ainsi que le moyen 40 supplémentaires prévus par la présente invention occupent une surface réduite, ce qui rend le circuit de surveillance de classe 1 selon 1 ' invention particulièrement avantageu .
La figure 3 représente de manière schématique un circuit de surveillance 18" selon une variante de la présente invention. Le circuit 18" comporte en plus du registre 32 et de la case mémoire 34 un registre 32 ' connecté de manière à constituer une zone de l'espace mémoire du microprocesseur. Le circuit 18" comporte comme le circuit 18' une interface série 26 reliée à l'outil d'analyse par un accès série 22. Selon cette variante de l'invention, l'interface série 26 permet d'accéder à un registre 36' ayant une partie A de la taille du registre 32 ou 32' et une partie B comportant un bit, en plus des registres de commande représentés par le registre 28 et de la case mémoire 38. Le circuit 18" comporte un moyen 40' relié aux registres 32, 32' et 36' et aux cases mémoire 34 et 38.
Le microprocesseur est programmé pour venir respectivement écrire dans le registre 32 ou dans le registre 32' chaque nouvelle valeur d'une première variable prédéterminée ou d'une deuxième variable prédéterminée du programme. Lorsque le programme vient écrire dans l'un ou l'autre des registres 32 et 32 ' , il active le drapeau de la case mémoire 34. Le moyen 40' est prévu pour activer alors le drapeau de la case mémoire 38, recopier les données écrites dans le registre 32 ou le registre 32' dans la partie A du registre 36', et pour inscrire une valeur 1 ou 0 dans la partie B du registre 36' indiquant que les données copiées dans la partie A proviennent du registre 32 ou du registre 32 ' . Cette valeur permet ensuite à 1 ' outil d ' analyse 20 de traiter les données lues dans le registre 36' en fonction de leur origine. Le circuit de surveillance selon cette variante de l'invention permet ainsi de fournir à l'outil d'analyse chaque nouvelle valeur prise par l'une quelconque de deux variables prédéterminées du programme exécuté par le microprocesseur.
Bien entendu, la présente invention est susceptible de diverses variantes et modifications qui apparaîtront à l'homme du métier. A titre d'exemple, la présente invention a été décrite en relation avec un registre 32 ou deux registres 32 et 32' pour permettre de suivre les variations d'une ou deux variables prédéterminées du programme. L'homme du métier adaptera sans difficulté la présente invention à un nombre quelconque de registres remplissant une fonction semblable pour permettre l'acquisition d'un même nombre de variables prédéterminées. La partie B du registre 36' comprendra alors un nombre de bits approprié pour coder une valeur indiquant duquel desdits registres proviennent les données écrites dans la partie A.

Claims

REVENDICATIONS
1. Dispositif intégré de surveillance (18' ; 18") d'un microprocesseur (12) échangeant des données avec un premier espace mémoire, comprenant : un premier ' registre (32) situé dans le premier espace mémoire dans lequel le microprocesseur (12) vient écrire des données ; une interface série (26) pour échanger des données entre un outil d'analyse externe (20) et un second espace mémoire (28) distinct du premier espace mémoire ; et un moyen de recopie (40 ; 40') pour recopier les données écrites dans le premier registre (32 ; 32') dans un deuxième registre (36 ; 36 Α) situé dans le second espace mémoire .
2. Dispositif de surveillance (18' ; 18") selon la revendication 1, comprenant : une première case mémoire (34) située dans le premier espace mémoire, destinée à contenir un premier drapeau activé par le microprocesseur (12) lors de chaque écriture dans le premier registre (32) ; une deuxième case mémoire (38) destinée à contenir un deuxième drapeau, située dans le second espace mémoire ; et dans lequel ledit moyen de recopie (40 ; 40 ' ) active le deuxième drapeau et recopie dans le deuxième registre (36 ; 36 Α) les données écrites dans le premier registre (32) lorsque le microprocesseur (12) active le premier drapeau, et inactive le premier drapeau lors d'une inactivation du deuxième drapeau sous la commande de l'outil d'analyse (20) .
3. Dispositif de surveillance (18") selon la revendication 2, comprenant un troisième registre (32'), situé dans le premier espace mémoire, dans lequel le microprocesseur
(12) vient écrire des données, le premier drapeau étant activé lors d'une écriture dans l'un quelconque des premier (32) et troisième (32 ' ) registres, et dans lequel ledit moyen de recopie
(40') recopie les données écrites dans le premier (32) ou le troisième (32') registre lorsque le microprocesseur (12) active le premier drapeau, et écrit dans une troisième case mémoire (36 'B) située dans le second espace mémoire une valeur indiquant la provenance des données recopiées dans le deuxième registre (36 -A).
4. Dispositif de surveillance (18") selon la revendication 3, dans lequel la troisième case mémoire (36 'B) est formée par un bit supplémentaire du deuxième registre (36 Α) .
5. Microprocesseur (12) intégré sur une puce (10) comprenant un dispositif de surveillance (18' ; 18") selon l'une quelconque des revendications précédentes.
PCT/FR2002/003928 2002-11-15 2002-11-15 Dispositif a liaison serie de surveillance d'un microprocesseur WO2004046930A1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/FR2002/003928 WO2004046930A1 (fr) 2002-11-15 2002-11-15 Dispositif a liaison serie de surveillance d'un microprocesseur

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/FR2002/003928 WO2004046930A1 (fr) 2002-11-15 2002-11-15 Dispositif a liaison serie de surveillance d'un microprocesseur

Publications (1)

Publication Number Publication Date
WO2004046930A1 true WO2004046930A1 (fr) 2004-06-03

Family

ID=32319947

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2002/003928 WO2004046930A1 (fr) 2002-11-15 2002-11-15 Dispositif a liaison serie de surveillance d'un microprocesseur

Country Status (1)

Country Link
WO (1) WO2004046930A1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724505A (en) * 1996-05-15 1998-03-03 Lucent Technologies Inc. Apparatus and method for real-time program monitoring via a serial interface
WO2001080012A2 (fr) * 2000-04-11 2001-10-25 Analog Devices, Inc. Procede de d'etablissement de profil de code d'application sans intrusion et dispositif correspondant

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5724505A (en) * 1996-05-15 1998-03-03 Lucent Technologies Inc. Apparatus and method for real-time program monitoring via a serial interface
WO2001080012A2 (fr) * 2000-04-11 2001-10-25 Analog Devices, Inc. Procede de d'etablissement de profil de code d'application sans intrusion et dispositif correspondant

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"The Nexus 5001 Forum Standard for a global embedded processor debug interface", IEEE-ISTO, XP002247195 *
ANONYMOUS: "Data Transfer Interlock Mechanism Between the IBM Personal Computer and a Microprocessor-Controlled Attachment", IBM TECHNICAL DISCLOSURE BULLETIN, vol. 29, no. 11, 1 April 1987 (1987-04-01), New York, US, pages 4967 - 4968, XP001162808 *

Similar Documents

Publication Publication Date Title
EP0642683B1 (fr) Procede et plate-formes de test pour le developpement d'un circuit integre
FR2697663A1 (fr) Circuit de test de mémoire.
JP2005063442A (ja) メモリコントローラとそれを備えるスマートカード、およびメモリのデータ読出し動作制御方法
FR3055992A1 (fr) Gestion d'index dans une memoire flash
FR2762683A1 (fr) Circuit testable a faible nombre de broches
JPH10144095A (ja) 半導体メモリ試験装置用不良解析メモリ
EP0696031A1 (fr) Mémoire intégrée programmable comportant des moyens d'émulation
JPS61204744A (ja) 診断機能を有するram内蔵lsiおよびその診断方法
WO2004046930A1 (fr) Dispositif a liaison serie de surveillance d'un microprocesseur
FR3051574A1 (fr) Gestion du stockage dans une memoire flash
US20070150844A1 (en) Behavioral synthesizer system, operation synthesizing method and program
US5708842A (en) Apparatus for changing coefficients utilized to perform a convolution operation having address generator which uses initial count number and up/down count inputs received from external
EP3598314A1 (fr) Accès direct en mémoire
JP5279816B2 (ja) 試験モジュール、試験装置および試験方法
JP5279817B2 (ja) 試験装置および試験方法
FR2785405A1 (fr) Sequenceur d'actions synchrones dans un systeme a processeur, et circuit integre comportant un tel sequenceur
EP0733977B1 (fr) Système informatique avec mémoires hiérarchisées
US20030225558A1 (en) Logic simulation method for information handling system incorporated with memory macro
EP3246819A1 (fr) Compteur en mémoire flash
JP2794717B2 (ja) ディジタル素子モデリング装置
WO2004046928A1 (fr) Circuit de surveillance d'un microprocesseur et outil d'analyse et ses entrees/sorties
CN117573151A (zh) 一种在risc-v dsp芯片的闪存中烧录数据的方法、芯片
FR2897174A1 (fr) Processeur comportant une interface de debogage integree controlee par l'unite de traitement du processeur
de Oliveira et al. Exception handling with petri net for digital systems
JP2004348635A (ja) プログラム開発方法

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LU MC NL PT SE SK TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP