WO2004042579A1 - Surveillance d'un programme de microprocesseur par envoi de messages reperables dans le temps - Google Patents

Surveillance d'un programme de microprocesseur par envoi de messages reperables dans le temps Download PDF

Info

Publication number
WO2004042579A1
WO2004042579A1 PCT/FR2002/003724 FR0203724W WO2004042579A1 WO 2004042579 A1 WO2004042579 A1 WO 2004042579A1 FR 0203724 W FR0203724 W FR 0203724W WO 2004042579 A1 WO2004042579 A1 WO 2004042579A1
Authority
WO
WIPO (PCT)
Prior art keywords
message
instructions
microprocessor
instruction
buffer memory
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.)
Ceased
Application number
PCT/FR2002/003724
Other languages
English (en)
Inventor
Laurent Regnier
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.)
STMicroelectronics SA
Original Assignee
STMicroelectronics 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 STMicroelectronics SA filed Critical STMicroelectronics SA
Priority to DE60221721T priority Critical patent/DE60221721T2/de
Priority to JP2004549241A priority patent/JP4305389B2/ja
Priority to PCT/FR2002/003724 priority patent/WO2004042579A1/fr
Priority to EP02785559A priority patent/EP1556766B1/fr
Priority to US10/531,610 priority patent/US7831814B2/en
Publication of WO2004042579A1 publication Critical patent/WO2004042579A1/fr
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • G06F11/348Circuit details, i.e. tracer hardware
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/362Debugging of software
    • G06F11/3648Debugging of software using additional hardware
    • G06F11/3656Debugging of software using additional hardware using a specific debug interface

Definitions

  • the present invention relates to microprocessor testing. It relates more particularly to a device and a method for transmitting from a monitoring circuit integrated in a microprocessor chip dated digital messages making it possible to follow the operation of the microprocessor.
  • 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 (TEST) 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 possibly to carry out processing on the data read. of the test terminals 22 connect the monitoring circuit 18 to an analysis tool 24.
  • the analysis tool 24 can process the received signals, for example according to commands supplied by a user, and provide detailed analysis of the operation of the microprocessor 12. In particular, the analysis tool 24 can determine the sequence of program instructions actually executed by the microprocessor 12.
  • the number of test terminals 22 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 22 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 22 is produced in small quantities to carry out the development of the microprocessor program 12 or "user program". After this development, a version of the integrated circuit 10 freed from the monitoring circuit 18 and the test terminals 22 is marketed. This involves the production of two versions of the integrated circuit, which is labor intensive and relatively expensive. In addition, the final chip is not necessarily identical to the chip tested.
  • monitoring circuit 18 which occupies a reduced area and requires only a reduced number of test terminals 22, 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 in preparation offers in its version of 1999, accessible for example on the site www.ieee-isto.org/Nexus5001, a particular protocol for the exchange of messages between a monitoring circuit and a tool analysis for a monitoring circuit 18 requiring only a reduced number of test terminals 22.
  • the monitoring circuit is designed to monitor the operation of the microprocessor and to provide the test terminals with predetermined messages corresponding only to the execution of certain predetermined instructions.
  • predetermined messages corresponding only to the execution of certain predetermined instructions.
  • Several types of messages are provided, which correspond to the execution of instructions of different types. The different types of messages and their structure are described in section 6 of the IEEE ISTO-5001 standard.
  • a large number of messages can be produced in a short time interval.
  • the standard provides that each new message is stored in a buffer memory when the test terminals are not available (when they are used to transmit another message), then is sent to the analysis tool when the test terminals are available.
  • the standard provides that the message is divided into segments of appropriate size which are sent subsequently by the test terminals.
  • the analysis tool is provided for reconstructing the operation of the microprocessor, that is to say the progress of the program in the microprocessor, from the messages received and the code of the program.
  • the analysis tool easily determines the time that has elapsed between the receipt of two messages, the analysis tool has no means to determine the time that has elapsed. between the storage of these two messages. Indeed, the analysis tool receives each message at a time of reception which has no relation to the instant at which each message was stored by the circuit 18. Between the instant at which a message is stored and the instant at which this message is received by the analysis tool, the message remains in the buffer for a variable amount of time which depends on many factors such as the size and number of messages previously stored in the buffer.
  • a certain type of message provided for by the standard clearly indicates the number of instructions executed by the microprocessor since a previous message of the same type, but the speed at which the microprocessor executes the instructions varies from instruction to instruction, and the number of instructions executed between two messages just allows an evaluation of the time elapsed between these two messages. It is however desirable to measure with precision the time elapsed between the storage of two messages, in particular to measure the duration of execution of certain critical parts of the program of the microprocessor.
  • one solution consists in including in the monitoring circuit 18 a counter clocked at a predetermined frequency, the counting of which changes over time. It suffices to add in each message a data field containing the count at the instant when each message is stored to date this instant. However, for such dating to be sufficiently precise, the counter must be clocked at a high frequency. The count increases very quickly and the counter must be large in order not to be saturated. Such a counter occupies a large area, which is not desirable. In addition, the introduction of counting in messages significantly increases the size of messages. Messages including counting must be divided into a large number of segments whose transmission monopolizes the test terminals for a long time, which is not desirable.
  • An object of the present invention is to provide a monitoring circuit conforming to the IEEE-ISTO-5001 standard which makes it possible to measure the time elapsed between two messages.
  • Another object of the present invention is to provide a monitoring method in accordance with the IEEE-ISTO-5001 standard which makes it possible to measure the time elapsed between two messages.
  • the present invention provides a monitoring device integrated into the chip of a microprocessor executing a sequence of instructions, comprising: a message calculation means for, during each execution of a instruction among a plurality of instructions of predetermined types, producing a digital message corresponding to the instruction executed; a buffer memory for storing each message produced; and a plurality of output terminals connected to an external analysis tool; each output terminal being associated with one of the types of instructions and the means for calculating messages modifying the state of the output terminal associated with a type of instructions at the moment when a message corresponding to said type of instructions is stored in buffer.
  • the buffer memory is divided into several zones, each of which is associated with a different type of instruction and intended to store only messages associated with said type of instruction.
  • each output terminal is connected to a test terminal.
  • each output terminal is connected to an input terminal of a coding block comprising a predetermined number n of output terminals each of which is connected to a test terminal; each coding block being provided for changing each of its n output terminals once every n change of state of its input terminal and in such a way that only one of its n output terminals changes state at that time.
  • only certain types of instructions are associated with an output terminal of the message calculation means.
  • each of the possible types of instructions is associated with an output terminal of the message calculation means.
  • the present invention also relates to an integrated circuit comprising a microprocessor and such a monitoring device.
  • the present invention also relates to a method for monitoring a microprocessor executing a sequence of instructions by means of a device integrated into the chip of the microprocessor, comprising the following steps: during each execution of an instruction, producing a digital message corresponding to the instruction executed; and store each message produced in a buffer; and modify the state of one of a plurality of output terminals connected to an external analysis tool and each associated with a type of instructions when a message corresponding to the type of instructions with which said terminal is associated output is stored in buffer.
  • FIG. 1 shows schematically an integrated circuit provided with a monitoring device
  • FIG. 2 schematically represents an integrated circuit provided with a monitoring device according to the present invention
  • Figure 3 schematically shows a monitoring device according to a variant of the present invention
  • FIG. 4 illustrates the operation of a coding block of FIG. 3.
  • the present invention provides for using several additional test terminals changing state to directly indicate to the analysis tool the instant at which messages of several predetermined types are stored in the buffer memory included in the device. For this, the present invention provides for dividing the buffer memory into several predetermined areas each provided for receiving messages of one type from among several predetermined types, each area being associated with an additional test terminal connected to the analysis tool. When a new message is stored in one of the zones, the state of the additional test terminal associated with this zone is modified.
  • FIG. 2 schematically represents an integrated circuit 10 comprising, as in FIG. 1, a microprocessor 12 connected to an internal memory 14 and to input / output terminals
  • the circuit 10 includes a monitoring circuit 18 'according to the present invention connected to the microprocessor 12.
  • the circuit 18' includes a buffer memory 34 connected to the analysis tool 24 via test terminals constituting an access parallel 26.
  • a calculation means 36 receiving information on the instructions executed by the microprocessor, identifies the type of instructions concerned and calculates messages provided for by the standard.
  • the calculation means 36 is connected to the buffer memory 34 and is connected to the analysis tool 24 by additional test terminals 28, 30 and 32.
  • the IEEE-ISTO-5001 standard provides that a message must be produced.
  • Each type of instruction corresponds to a type of message.
  • the IEEE-ISTO-5001 standard distinguishes between program jump, write to memory, and of reading in memory, to which correspond messages of jump, of writing and of reading respectively.
  • the memory 34 comprises an area A in which the means 36 exclusively stores jump messages, an area B in which the means 36 stores exclusively writing messages and an area C in which the means 36 stores exclusively read messages.
  • Such a division of the buffer memory into three zones for these three types of messages is given only by way of example, and a person skilled in the art will easily adapt the present invention to another division of the buffer memory.
  • the calculation means 36 includes an FA output terminal connected to the test terminal 28.
  • the means 36 is provided for modifying the value (1 or 0) of its FA output terminal (and of the test 28) each time the means 36 stores a message in zone A of the buffer memory 34.
  • the analysis tool 24 is provided for memorizing the instants of change of state of the test terminal 28, it that is to say the instants for storing jump messages. The analysis tool thus knows that a first jump message received from the buffer memory 34 has been produced and stored at the time of the first change of state of the test terminal 28, and so on.
  • the means 36 comprises two output terminals FB and FC respectively connected to the test terminals 30 and 32, the value of which is modified each time the means 36 stores a message respectively in the area B or C of the buffer memory 34.
  • the present invention thus allows the analysis tool to precisely date the production and storage of each type of message produced by the calculation means 36 of the analysis circuit 18 '.
  • the three additional test terminals 28, 30 and 32 and the means for actuating them provided by the present invention occupy a reduced area compared to the known dating counter, which represents a first advantage of the present invention.
  • the present invention allows in addition to date with precision the instant of storage of the messages without increasing the size of the messages, which represents a second advantage of the invention.
  • microprocessors may be provided to execute several program instructions in parallel. For example, if the microprocessor program provides a program jump to an address obtained by a read, the microprocessor can be provided to execute simultaneously the "read” instruction and the "jump” instruction. In such a case, the means 36 produces a "jump” message, it stores it in the zone A and it modifies the state of the output terminal FA and simultaneously the means 36 produces a "read” message, it stores in area C and changes the state of the FC output terminal.
  • the analysis tool thus knows precisely when a simultaneous storage took place in zones A and C. Those skilled in the art will note that it is important for this that the storage in zones A and C be indicated by the change of state of two separate output terminals.
  • the present invention is thus particularly adapted to the fact that the microprocessor can execute several instructions or operations of the program in parallel, which constitutes an additional advantage of the present invention.
  • the output terminal FB then changes state with each message storage at each clock cycle of the microprocessor, which corresponds to an oscillation of the output terminal FB at half the working frequency of the microprocessor.
  • this frequency can be very high and the additional test terminal 30 connected to the output terminal FB may not be designed to operate at such a frequency.
  • the microprocessor can execute instructions at a frequency of 400 MHz, and cause an oscillation of the output terminal FB at 200 MHz, while the test terminal 30 cannot, by its structure, function above 100 MHz.
  • FIG. 3 schematically represents a monitoring circuit 18 "intended to solve the preceding problem according to a variant of the present invention, comprising, like the circuit 18 'in FIG. 2, a buffer memory 34 connected to a parallel access 26 and to a calculation means 36.
  • the three output terminals FA, FB and FC of the means 36 are each connected to an input F of three identical coding blocks, respectively 38, 40 and 42.
  • Each coding block has three output terminals 01, 02, 03.
  • the output terminals 01, 02 and 03 of block 38 are connected to the analysis tool
  • FIG. 4 illustrates the changes of state of the output terminals 01, 02 and 03 of any of the coding blocks 38, 40, 42 as a function of the changes of state of its input terminal F. Whatever the rate at which the state of the input terminal F changes, each of the output terminals 01, 02, 03 changes state once every three changes of state of the input terminal F, and only one of the three output terminals 01, 02, 03 changes state at a time.
  • the output terminals 01, 02 and 03 of the coding block 40 change state each at a frequency of 67 MHz, lower than the frequency maximum of 100 MHz at which test terminals 301, 302 and 303 can operate.
  • 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 monitoring circuit which associates an additional output terminal with each zone of the buffer memory so as to date each message written in the buffer memory, but the person skilled in the art will adapt without
  • the present invention has difficulties with a monitoring circuit which associates an additional output terminal only with certain zones of the buffer memory so as to date only the messages written in said zones.
  • the present invention has been described in relation to a monitoring circuit which associates an area of the buffer memory with a type of message, but a person skilled in the art will easily adapt the present invention to a monitoring circuit which associates several areas of the buffer to a particular type of message or to each type of message.
  • each zone of the buffer memory will consist of a separate first in / first out memory.
  • the present invention has been described in relation to a coding block having three output terminals for dividing by three the frequency of change of state of its output terminal, but a person skilled in the art will easily adapt the present invention to any block coding comprising a number of output terminals adapted to a frequency division according to a different ratio; for example 2 terminals for a division by 2, 4 terminals for a division by 4.
  • the present invention has been described in relation to a coding block having a particular operation, but a person skilled in the art will easily adapt the present invention to any coding block having a coding function. equivalent.
  • the coding block can supply by its output terminals a new value of a Gray code for each change of state of its input.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Test And Diagnosis Of Digital Computers (AREA)
  • Tests Of Electronic Circuits (AREA)
  • Debugging And Monitoring (AREA)

Abstract

L'invention concerne un dispositif de surveillance (18', 18") intégré à la puce d'un microprocesseur (12) exécutant une suite d'instructions, comprenant un moyen de calcul de messages (36) pour, lors de chaque exécution d'une instruction, produire un message numérique correspondant ; une mémoire tampon (34) pour stocker chaque message produit ; et une pluralité de bornes de sorties (FA, FB, FC) reliées à un outil d'analyse externe (24), chaque borne de sortie (FA, FB, FC) étant associée à un type d'instructions ; le moyen de calcul de messages (36) modifiant l'état de la borne de sortie (FA, FB, FC) associée à un type d'instructions au moment où un message correspondant audit type d'instructions est stocké en mémoire tampon.

Description

SURVEILLANCE D'UN PROGRAMME DE MICROPROCESSEUR PAR ENVOI DE MESSAGES REPÊRABLES DANS LE TEMPS
La présente invention concerne le test de microprocesseurs. Elle concerne plus particulièrement un dispositif et un procédé pour transmettre depuis un circuit de surveillance intégré dans une puce de microprocesseur des messages numériques datés permettant de suivre le fonctionnement du 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 (TEST) . 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 22 relient le circuit de surveillance 18 à un outil d'analyse 24. L'outil d'analyse 24 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 24 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 22 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 22 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 cela, une première version du circuit intégré 10 incluant le circuit de surveillance 18 et les bornes de test 22 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 22 est commercialisée. Cela implique la réalisation de deux versions du circuit intégré, ce qui demande un travail important et est 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 22, 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 messages ayant un contenu informationnel important.
Ainsi, la norme IEEE-ISTO-5001 en préparation propose dans sa version de 1999, accessible par exemple sur le site www.ieee-isto.org/Nexus5001, un protocole particulier d'échanges de messages entre un circuit de surveillance et un outil d'analyse pour un circuit de surveillance 18 ne nécessitant qu'un nombre réduit de bornes de test 22.
Le circuit de surveillance est prévu pour surveiller le fonctionnement du microprocesseur et pour fournir aux bornes de test des messages prédéterminés correspondant seulement à l'exécution de certaines instructions prédéterminées. Plusieurs types de messages sont prévus, qui correspondent à l'exécution d'instructions de types différents. Les différents types de messages et leur structure sont décrits dans la section 6 de la norme IEEE ISTO-5001.
Un grand nombre de messages peut être produit dans un intervalle de temps réduit. La norme prévoit que chaque nouveau message est stocké dans une mémoire tampon lorsque les bornes de test ne sont pas disponibles (lorsqu'elles sont utilisées pour transmettre un autre message), puis est envoyé à l'outil d'analyse lorsque les bornes de test sont disponibles. Lorsqu'un message comporte plus de bits qu'il n'y a de bornes de test, la norme prévoit que le message est divisé en segments de taille appropriée qui sont envoyés à la suite par les bornes de test. Ainsi, plus un message est grand, plus il faut du temps pour 1 'envoyer à 1 'outil d'analyse. L'outil d'analyse 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 problème vient du fait que, si l'outil d'analyse détermine facilement le temps qui s'est écoulé entre la réception de deux messages, l'outil d'analyse ne dispose d'aucun moyen pour déterminer le temps qui s'est écoulé entre le stockage de ces deux messages. En effet, l'outil d'analyse reçoit chaque message à un instant de réception qui n'a pas de rapport avec l'instant auquel chaque message a été stocké par le circuit 18. Entre l'instant auquel un message est stocké et l'instant auquel ce message est reçu par l'outil d'analyse, le message demeure dans la mémoire tampon pendant une durée variable qui dépend de nombreux facteurs tels que la taille et le nombre des messages stockés auparavant dans la mémoire tampon. Un certain type de messages prévu par la norme indique bien le nombre d'instructions exécutées par le microprocesseur depuis un message précédent de même type, mais la vitesse à laquelle le microprocesseur exécute les instructions varie d'une instruction à l'autre, et le nombre d'instructions exécutées entre deux messages permet juste une évaluation du temps écoulé entre ces deux messages. Il est pourtant souhaitable de mesurer avec précision le temps écoulé entre le stockage de deux messages, notamment pour mesurer la durée d'exécution de certaines parties critiques du programme du microprocesseur.
Pour mesurer le temps écoulé entre le stockage de deux messages, une solution consiste à inclure dans le circuit de surveillance 18 un compteur cadencé à une fréquence prédéterminée, dont le comptage évolue avec le temps. Il suffit d'ajouter dans chaque message un champ de données contenant le comptage à 1 ' instant où chaque message est stocké pour dater cet instant. Cependant, pour qu'une telle datation soit suffisamment précise, le compteur doit être cadencé à une fréquence élevée. Le comptage augmente ainsi très rapidement et le compteur doit être de taille importante pour ne pas être saturé. Un tel compteur occupe une surface importante, ce qui n'est pas souhaitable. En outre, l'introduction du comptage dans les messages accroît sensiblement la taille des messages. Les messages incluant le comptage doivent être divisés en un grand nombre de segments dont la transmission monopolise longtemps les bornes de test, ce qui n'est pas souhaitable. Un objet de la présente invention est de prévoir un circuit de surveillance conforme à la norme IEEE-ISTO-5001 qui permette de mesurer le temps écoulé entre deux messages.
Un autre objet de la présente invention est de prévoir un procédé de surveillance conforme à la norme IEEE-ISTO-5001 qui permette de mesurer le temps écoulé entre deux messages.
Pour atteindre ces objets, ainsi que d'autres la présente invention prévoit un dispositif de surveillance intégré à la puce d'un microprocesseur exécutant une suite d'instructions, comprenant : un moyen de calcul de messages pour, lors de chaque exécution d'une instruction parmi une pluralité d'instructions de types prédéterminés, produire un message numérique correspondant à l'instruction exécutée ; une mémoire tampon pour stocker chaque message produit ; et une pluralité de bornes de sorties reliées à un outil d'analyse externe ; chaque borne de sortie étant associée à l'un des types d'instructions et le moyen de calcul de messages modifiant l'état de la borne de sortie associée à un type d'instructions au moment où un message correspondant audit type d' instructions est stocké en mémoire tampon.
Selon un mode de réalisation de la présente invention, la mémoire tampon est divisée en plusieurs zones dont chacune est associée à un type d'instructions différent et destinée à ne stocker que des messages associés audit type d' instructions . Selon un mode de réalisation de la présente invention, chaque borne de sortie est connectée à une borne de test.
Selon un mode de réalisation de la présente invention, chaque borne de sortie est connectée à une borne d'entrée d'un bloc de codage comportant un nombre prédéterminé n de bornes de sortie dont chacune est connectée à une borne de test ; chaque bloc de codage étant prévu pour faire changer chacune de ses n bornes de sortie une fois tous les n changements d'état de sa borne d'entrée et de telle manière qu'une seule de ses n bornes de sortie change d'état à la fois. Selon un mode de réalisation de la présente invention, certains types d'instructions seulement sont associés à une borne de sortie du moyen de calcul de messages.
Selon un mode de réalisation de la présente invention, chacun des types d'instructions possibles est associé à une borne de sortie du moyen de calcul de messages.
La présente invention vise également un circuit intégré comportant un microprocesseur et un tel dispositif de surveillance . La présente invention vise également un procédé de surveillance d'un microprocesseur exécutant une suite d' instructions au moyen d'un dispositif intégré à la puce du microprocesseur, comprenant les étapes suivantes : lors de chaque exécution d'une instruction, produire un message numérique correspondant à l'instruction exécutée ; et stocker chaque message produit dans une mémoire tampon ; et modifier 1 ' état de 1 'une d'une pluralité de bornes de sortie reliées à un outil d'analyse externe et associées chacune à un type d' instructions lorsqu'un message correspondant au type d'instructions auquel est associée ladite borne de sortie est stocké en mémoire tampon.
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 circuit intégré muni d'un dispositif de surveillance ; la figure 2 représente de manière schématique un circuit intégré muni d'un dispositif de surveillance selon la présente invention ; la figure 3 représente de manière schématique un dispositif de surveillance selon une variante de la présente invention ; et la figure 4 illustre le fonctionnement d'un bloc de codage de la figure 3.
La présente invention prévoit d'utiliser plusieurs bornes de test supplémentaires changeant d'état pour indiquer directement à l'outil d'analyse l'instant auquel des messages de plusieurs types prédéterminés sont stockés dans la mémoire tampon incluse dans le dispositif. Pour cela, la présente invention prévoit de diviser la mémoire tampon en plusieurs zones prédéterminées prévues chacune pour recevoir des messages d'un type parmi plusieurs types prédéterminés, chaque zone étant associée à une borne de test supplémentaire reliée à 1 ' outil d'analyse. Lorsqu'un nouveau message est stocké dans l'une des zones, l'état de la borne de test supplémentaire associée à cette zone est modifié.
La figure 2 représente de façon schématique un circuit intégré 10 comportant comme en figure 1 un microprocesseur 12 relié à une mémoire interne 14 et à des bornes d'entrée/sortie
16. Le circuit 10 comporte un circuit de surveillance 18' selon la présente invention relié au microprocesseur 12. Le circuit 18' comporte une mémoire tampon 34 reliée à l'outil d'analyse 24 par l'intermédiaire de bornes de test constituant un accès parallèle 26. Un moyen de calcul 36 recevant des informations sur les instructions exécutées par le microprocesseur, identifie le type d'instructions concerné et calcule des messages prévus par la norme. Le moyen de calcul 36 est relié à la mémoire tampon 34 et est relié à l'outil d'analyse 24 par des bornes de test supplémentaires 28, 30 et 32.
Les instructions prédéterminées pour lesquelles la norme IEEE-ISTO-5001 prévoit qu'un message doit être produit sont de plusieurs types. A chaque type d'instructions correspond un type de message. Notamment, la norme IEEE-ISTO-5001 distingue les instructions de saut de programme, d'écriture en mémoire, et de lecture en mémoire, auxquelles correspondent respectivement des messages de saut, d'écriture et de lecture. Selon la présente invention, la mémoire 34 comporte une zone A dans laquelle le moyen 36 stocke exclusivement des messages de saut, une zone B dans laquelle le moyen 36 stocke exclusivement des messages d'écriture et une zone C dans laquelle le moyen 36 stocke exclusivement des messages de lecture. Une telle division de la mémoire tampon en trois zones pour ces trois types de messages n'est donnée qu'à titre d'exemple, et l'homme du métier adaptera sans difficultés la présente invention à une autre division de la mémoire tampon.
Selon la présente invention, le moyen de calcul 36 comporte une borne de sortie FA reliée à la borne de test 28. Le moyen 36 est prévu pour modifier la valeur (1 ou 0) de sa borne de sortie FA (et de la borne de test 28) à chaque fois que le moyen 36 stocke un message dans la zone A de la mémoire tampon 34. L'outil d'analyse 24 est prévu pour mémoriser les instants de changement d'état de la borne de test 28, c'est-à-dire les instants de stockage de messages de saut. L'outil d'analyse sait ainsi qu'un premier message de saut reçu depuis la mémoire tampon 34 a été produit et stocké à l'instant du premier changement d'état de la borne de test 28, et ainsi de suite.
De même, le moyen 36 comporte deux bornes de sortie FB et FC respectivement reliées aux bornes de test 30 et 32, dont la valeur est modifiée à chaque fois que le moyen 36 stocke un message respectivement dans la zone B ou C de la mémoire tampon 34.
La présente invention permet ainsi à 1 ' outil d'analyse de dater avec précision la production et le stockage de chaque type de message produit par le moyen de calcul 36 du circuit d'analyse 18'. Les trois bornes de test 28, 30 et 32 supplémentaires et les moyens pour les actionner prévus par la présente invention occupent une surface réduite par rapport au compteur de datation connu, ce qui représente un premier avantage de la présente invention. La présente invention permet en outre de dater avec précision 1 ' instant de stockage des messages sans accroître la taille des messages, ce qui représente un deuxième avantage de l'invention.
Certains microprocesseurs peuvent être prévus pour exécuter en parallèle plusieurs instructions du programme. Par exemple, si le programme du microprocesseur prévoit un saut de programme à une adresse obtenue par une lecture, le microprocesseur peut être prévu pour exécuter simultanément l'instruction de "lecture" et l'instruction de "saut". Dans un tel cas, le moyen 36 produit un message de "saut", il le stocke dans la zone A et il modifie l'état de la borne de sortie FA et simultanément le moyen 36 produit un message de "lecture", il le stocke dans la zone C et il modifie 1 'état de la borne de sortie FC. L'outil d'analyse sait ainsi avec précision à quel instant un stockage simultané a eu lieu dans les zones A et C. L'homme du métier notera qu'il est important pour cela que les stockages dans les zones A et C soient indiqués par le changement d'état de deux bornes de sortie distinctes. La présente invention est ainsi particulièrement adaptée au fait que le microprocesseur peut exécuter plusieurs instructions ou opérations du programme en parallèle, ce qui constitue un avantage supplémentaire de la présente invention.
Un problème peut apparaître lorsque le microprocesseur exécute rapidement à la suite une pluralité d'instructions de même type. Si par exemple le microprocesseur exécute à la suite plusieurs instructions d'écriture, chacune en un cycle d'horloge, des messages d'écriture sont stockés à la suite dans la zone B de la mémoire tampon à chaque cycle d'horloge du microprocesseur. La borne de sortie FB change alors d'état avec chaque stockage de message à chaque cycle d'horloge du microprocesseur, ce qui correspond à une oscillation de la borne de sortie FB à la moitié de la fréquence de travail du microprocesseur. Or cette fréquence peut être très élevée et la borne de test supplémentaire 30 reliée à la borne de sortie FB peut ne pas être conçue pour fonctionner à une telle fréquence. A titre d'illustration, le microprocesseur peut exécuter des instructions à une fréquence de 400 MHz, et entraîner une oscillation de la borne de sortie FB à 200 MHz, alors que la borne de test 30 ne peut, de par sa structure, pas fonctionner au-delà de 100 MHz.
La figure 3 représente de manière schématique un circuit de surveillance 18" prévu pour résoudre le problème précédent selon une variante de la présente invention, comportant comme le circuit 18 ' de la figure 2 une mémoire tampon 34 reliée à un accès parallèle 26 et à un moyen de calcul 36. Les trois bornes de sortie FA, FB et FC du moyen 36 sont chacune reliée à une entrée F de trois blocs de codage identiques, respectivement 38, 40 et 42. Chaque bloc de codage comporte trois bornes de sorties 01, 02, 03. Les bornes de sortie 01, 02 et 03 du bloc 38 sont reliées à l'outil d'analyse
(non représenté) par des bornes de test supplémentaires 281, 282 et 283. Les bornes de sortie 01, 02, 03 des blocs de codage 40 et 42 sont respectivement reliées à l'outil d'analyse par des bornes de test supplémentaires 301, 302, 303 et 321, 322, 323. La figure 4 illustre les changements d'état des bornes de sortie 01, 02 et 03 de l'un quelconque des blocs de codage 38, 40, 42 en fonction des changements d'état de sa borne d'entrée F. Quelle que soit la cadence à laquelle l'état de la borne d'entrée F change, chacune des bornes de sortie 01, 02, 03 change d'état une fois tous les trois changements d'état de la borne d'entrée F, et seule l'une des trois bornes de sortie 01, 02, 03 change d'état à la fois.
Dans le cas décrit précédemment où la borne FB change d'état à une fréquence de 200 MHz, les bornes de sortie 01, 02 et 03 du bloc de codage 40 changent d'état chacune à une fréquence de 67 MHz, inférieure à la fréquence maximale de 100 MHz à laquelle peuvent fonctionner les bornes de test 301, 302 et 303.
Bien entendu, la présente invention est susceptible de diverses variantes et modifications qui apparaîtront à l'homme du métier. En particulier, la présente invention a été décrite en relation avec un circuit de surveillance qui associe une borne de sortie supplémentaire à chaque zone de la mémoire tampon de manière à dater chaque message écrit dans la mémoire tampon, mais l'homme du métier adaptera sans difficultés la présente invention à un circuit de surveillance qui n'associe une borne de sortie supplémentaire qu'à certaines zones de la mémoire tampon de manière à ne dater que les messages écrits dans lesdites zones. La présente invention a été décrite en relation avec un circuit de surveillance qui associe une zone de la mémoire tampon à un type de message, mais l'homme du métier adaptera sans difficultés la présente invention à un circuit de surveillance qui associe plusieurs zones de la mémoire tampon à un type de message particulier ou à chaque type de message.
La structure de la mémoire tampon utilisée par un circuit de surveillance selon la présente invention n'a pas été décrite, mais l'homme du métier adaptera sans difficultés la présente invention à toute structure appropriée de mémoire tampon, par exemple une mémoire tampon de type premier entré/premier sorti (FIFO) . Dans un tel cas, chaque zone de la mémoire tampon sera constituée d'une mémoire premier entré/premier sorti distincte.
La présente invention a été décrite en relation avec un bloc de codage ayant trois bornes de sortie pour diviser par trois la fréquence de changement d'état de sa borne de sortie, mais l'homme du métier adaptera sans difficultés la présente invention à tout bloc de codage comportant un nombre de bornes de sortie adapté à une division de fréquence selon un rapport différent ; par exemple 2 bornes pour une division par 2, 4 bornes pour une division par 4.
La présente invention a été décrite en relation avec un bloc de codage ayant un fonctionnement particulier, mais l'homme du métier adaptera sans difficultés la présente invention à tout bloc de codage ayant une fonction de codage équivalente. Par exemple, le bloc de codage peut fournir par ses bornes de sortie une nouvelle valeur d'un code de Gray pour chaque changement d'état de son entrée.

Claims

REVENDICATIONS
1. Dispositif de surveillance (18', 18") intégré à la puce d'un microprocesseur (12) exécutant une suite d'instructions, comprenant : un moyen de calcul de messages (36) pour, lors de chaque exécution d'une instruction parmi une pluralité d'instructions de types prédéterminés, produire un message numérique correspondant à 1 ' instruction exécutée ; une mémoire tampon (34) pour stocker chaque message produit ; et une pluralité de bornes de sorties (FA, FB, FC) reliées à un outil d'analyse externe (24) , chaque borne de sortie (FA, FB, FC) étant associée à l'un des types d'instructions et le moyen de calcul de messages (36) modifiant l'état de la borne de sortie (FA, FB, FC) associée à un type d'instructions au moment où un message correspondant audit type d'instructions est stocké en mémoire tampon.
2. Dispositif de surveillance (18', 18") selon la revendication 1, dans lequel la mémoire tampon est divisée en plusieurs zones (A, B, C) dont chacune est associée à un type d'instructions différent et destinée à ne stocker que des messages associés audit type d'instructions.
3. Dispositif de surveillance selon la revendication 1, dans lequel chaque borne de sortie (FA, FB, FC) est connectée à une borne de test (28, 30, 32) .
4. Dispositif de surveillance selon la revendication
1, dans lequel chaque borne de sortie (FA, FB, FC) est connectée à une borne d'entrée (F) d'un bloc de codage (38, 40, 42) comportant un nombre prédéterminé (n) de bornes de sortie (01,
02, 03) dont chacune est connectée à une borne de test (281, 282, 283 ; 301, 302, 303 ; 321, 322, 323) ; chaque bloc de codage étant prévu pour faire changer chacune de ses n bornes de sortie (01, 02, 03) une fois tous les n changements d'état de sa borne d'entrée (F) et de telle manière qu'une seule de ses n bornes de sortie (01, 02, 03) change d'état à la fois.
5. Dispositif de surveillance selon la revendication 1, dans lequel certains types d' instructions seulement sont associés à une borne de sortie du moyen de calcul de messages (24).
6. Dispositif de surveillance selon la revendication
1, dans lequel chacun des types d'instructions possibles est associé à une borne de sortie (FA, FB, FC) du moyen de calcul de messages (24) .
7. Circuit intégré (10) comportant un microprocesseur (12) et un dispositif de surveillance selon la revendication 1.
8. Procédé de surveillance d'un microprocesseur (12) exécutant une suite d'instructions au moyen d'un dispositif intégré à la puce du microprocesseur, comprenant les étapes suivantes : lors de chaque exécution d'une instruction, produire un message numérique correspondant à 1 ' instruction exécutée ; et stocker chaque message produit dans une mémoire tampon (34) ; et modifier l'état de l'une d'une pluralité de bornes de sortie (FA, FB, FC) reliées à un outil d'analyse externe (24) et associées chacune à un type d'instructions lorsqu'un message correspondant au type d'instructions auquel est associée ladite borne de sortie est stocké en mémoire tampon.
PCT/FR2002/003724 2002-10-29 2002-10-29 Surveillance d'un programme de microprocesseur par envoi de messages reperables dans le temps Ceased WO2004042579A1 (fr)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE60221721T DE60221721T2 (de) 2002-10-29 2002-10-29 Überwachung eines mikroprozessorprogramms durch senden von in der zeit lokalisierbaren botschaften
JP2004549241A JP4305389B2 (ja) 2002-10-29 2002-10-29 時間追跡可能メッセージを送信することによるマイクロプロセッサプログラムの監視
PCT/FR2002/003724 WO2004042579A1 (fr) 2002-10-29 2002-10-29 Surveillance d'un programme de microprocesseur par envoi de messages reperables dans le temps
EP02785559A EP1556766B1 (fr) 2002-10-29 2002-10-29 Surveillance d'un programme de microprocesseur par envoi de messages reperables dans le temps
US10/531,610 US7831814B2 (en) 2002-10-29 2002-10-29 Monitoring a microprocessor programme by sending time-trackable messages

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/FR2002/003724 WO2004042579A1 (fr) 2002-10-29 2002-10-29 Surveillance d'un programme de microprocesseur par envoi de messages reperables dans le temps

Publications (1)

Publication Number Publication Date
WO2004042579A1 true WO2004042579A1 (fr) 2004-05-21

Family

ID=32309750

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2002/003724 Ceased WO2004042579A1 (fr) 2002-10-29 2002-10-29 Surveillance d'un programme de microprocesseur par envoi de messages reperables dans le temps

Country Status (5)

Country Link
US (1) US7831814B2 (fr)
EP (1) EP1556766B1 (fr)
JP (1) JP4305389B2 (fr)
DE (1) DE60221721T2 (fr)
WO (1) WO2004042579A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007101972A1 (fr) * 2006-03-09 2007-09-13 Arm Limited Appareil, procédé et progiciel de création de données de traçage

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1570356B1 (fr) * 2002-11-21 2008-09-03 STMicroelectronics S.A. Dispositif de surveillance a memoire tampon optimisee

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1184790A2 (fr) * 1997-04-08 2002-03-06 Advanced Micro Devices, Inc. Mémoire cache pour traces dans un dispositif à microprocesseur

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4574354A (en) * 1982-11-19 1986-03-04 Tektronix, Inc. Method and apparatus for time-aligning data
SE470031B (sv) * 1991-06-20 1993-10-25 Icl Systems Ab System och metod för övervakning och förändring av driften av ett datorsystem
US5237684A (en) * 1991-08-12 1993-08-17 International Business Machines Corporation Customized and versatile event monitor within event management services of a computer system
JP3544214B2 (ja) * 1992-04-29 2004-07-21 サン・マイクロシステムズ・インコーポレイテッド プロセッサの状態を監視する方法及び監視システム
US5764885A (en) * 1994-12-19 1998-06-09 Digital Equipment Corporation Apparatus and method for tracing data flows in high-speed computer systems
US5642478A (en) * 1994-12-29 1997-06-24 International Business Machines Corporation Distributed trace data acquisition system
US5848264A (en) * 1996-10-25 1998-12-08 S3 Incorporated Debug and video queue for multi-processor chip
US5996092A (en) * 1996-12-05 1999-11-30 International Business Machines Corporation System and method for tracing program execution within a processor before and after a triggering event
US6167536A (en) * 1997-04-08 2000-12-26 Advanced Micro Devices, Inc. Trace cache for a microprocessor-based device
JP3277900B2 (ja) * 1998-09-30 2002-04-22 日本電気株式会社 プログラム検査方法、プログラム検査装置及び、検査プログラムを記憶したコンピュータ読み取り可能な記憶媒体
US6332117B1 (en) * 1998-10-22 2001-12-18 International Business Machines Corporation General event stamping scheme
US6519766B1 (en) * 1999-06-15 2003-02-11 Isogon Corporation Computer program profiler
US6918065B1 (en) * 1999-10-01 2005-07-12 Hitachi, Ltd. Method for compressing and decompressing trace information
US7080289B2 (en) * 2001-10-10 2006-07-18 Arm Limited Tracing multiple data access instructions
US7080283B1 (en) * 2002-10-15 2006-07-18 Tensilica, Inc. Simultaneous real-time trace and debug for multiple processing core systems on a chip

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1184790A2 (fr) * 1997-04-08 2002-03-06 Advanced Micro Devices, Inc. Mémoire cache pour traces dans un dispositif à microprocesseur

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PLAUGER D: "REAL-TIME UNIX: TIMING IS EVERYTHING", MINI MICRO SYSTEMS, CAHNERS PUBLISHING CY. BOSTON, US, vol. 22, no. 2, 1 February 1989 (1989-02-01), pages 72 - 76, XP000039292 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007101972A1 (fr) * 2006-03-09 2007-09-13 Arm Limited Appareil, procédé et progiciel de création de données de traçage
US8468394B2 (en) 2006-03-09 2013-06-18 Arm Limited Method of tracing selected activities within a data processing system by tagging selected items and tracing the tagged items

Also Published As

Publication number Publication date
EP1556766A1 (fr) 2005-07-27
DE60221721T2 (de) 2008-04-30
US7831814B2 (en) 2010-11-09
EP1556766B1 (fr) 2007-08-08
JP2006504204A (ja) 2006-02-02
US20060155970A1 (en) 2006-07-13
DE60221721D1 (de) 2007-09-20
JP4305389B2 (ja) 2009-07-29

Similar Documents

Publication Publication Date Title
EP2592558B1 (fr) Système et procédé de conception de circuit numérique à capteur d'activité
FR3045183A1 (fr) Procede de prediction d'une donnee a precharger dans une memoire cache
EP0667694B1 (fr) Procédé de mesure de paramètres de performance d'un réseau ATM et dispositif de mise en oeuvre
EP1556766B1 (fr) Surveillance d'un programme de microprocesseur par envoi de messages reperables dans le temps
EP0938048A1 (fr) Procédé de transfert de données en série, et interface de bus série synchrone mettant en oeuvre un tel procédé
EP1372074B1 (fr) Procédé et système de gestion des événements
EP1570356B1 (fr) Dispositif de surveillance a memoire tampon optimisee
EP2776931B1 (fr) Systeme et procede de conception de circuit numerique a capteur d'activite, circuit numerique correspondant
FR2854263A1 (fr) Procede d'execution de taches concurrentes par un sous-systeme gere par un processeur central
EP1576476B1 (fr) Circuit de surveillance d'un microprocesseur et outil d'analyse et ses entrees/sorties
WO2004042576A1 (fr) Transmission de messages numeriques generiques par un circuit de surveillance d'un microprocesseur
WO2002035466A1 (fr) Circuit de detection et de mise en forme de trames de donnees
FR2686991A1 (fr) Procede, systeme et processeur de communication entre une pluralite de sous-ensembles d'un equipement.
FR2887052A1 (fr) Architecture radar generique
FR2676320A1 (fr) Procede et dispositif de detection et de controle du gabarit de messages numeriques transmis a un dispositif de reception.
EP1556767A1 (fr) Correlation temporelle de messages transmis par un circuit de surveillance d'un microprocesseur
EP0449190B1 (fr) Programmateur produisant des signaux de sortie binaires en réponse à un signal de rythme
WO2004036442A1 (fr) Protocole de transmission de messages numeriques
CA2067890A1 (fr) Procede et dispositif de selection d'informations utilisables par une unite locale reliee a un systeme de transmission numerique
WO2004046929A1 (fr) Transmission d'un message numerique entre un circuit de surveillance d'un microprocesseur et un outil d'analyse
EP1971152A2 (fr) Gestion de données pour un traitement d'images
FR3084179A1 (fr) Acces direct en memoire
EP0595707B1 (fr) Séquenceur linéaire avec signaux de sortie binaires
FR3156932A1 (fr) Systeme informatique et procede pour effectuer un acces aleatoire d’un bit dans une memoire
JP2004327015A (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
ENP Entry into the national phase

Ref document number: 2006155970

Country of ref document: US

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 10531610

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2004549241

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2002785559

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2002785559

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 10531610

Country of ref document: US

WWG Wipo information: grant in national office

Ref document number: 2002785559

Country of ref document: EP