FR2593621A1 - Break point apparatus for a microprocessor - Google Patents

Break point apparatus for a microprocessor Download PDF

Info

Publication number
FR2593621A1
FR2593621A1 FR8617748A FR8617748A FR2593621A1 FR 2593621 A1 FR2593621 A1 FR 2593621A1 FR 8617748 A FR8617748 A FR 8617748A FR 8617748 A FR8617748 A FR 8617748A FR 2593621 A1 FR2593621 A1 FR 2593621A1
Authority
FR
France
Prior art keywords
address
register
breakpoint
microprocessor
stored
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.)
Pending
Application number
FR8617748A
Other languages
French (fr)
Inventor
Joseph C Krauskopf
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.)
Intel Corp
Original Assignee
Intel Corp
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 Intel Corp filed Critical Intel Corp
Publication of FR2593621A1 publication Critical patent/FR2593621A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging
    • G06F11/3648Software debugging using additional hardware
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7828Architectures of general purpose stored program computers comprising a single central processing unit without memory
    • G06F15/7832Architectures of general purpose stored program computers comprising a single central processing unit without memory on one IC chip (single chip microprocessors)

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Microcomputers (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

The present invention relates to an apparatus generating break points 30 integrated into the same chip as a microprocessor. This apparatus makes it possible to determine break points with specific reference to programme instructions or to data. The range of a break point address may be modified; the apparatus comprises a logic circuit for determining whether the reference represented by the break point address covers the current virtual address.

Description

La présente invention concerne le domaine des points de rupture mis en oeuvre par matériel pour des programmes de calculateur, essentiellement utilisés pour analyser ou corriger les défauts initiaux (couramment appelés dans la technique "bugs") des programmes. The present invention relates to the field of breaking points implemented by hardware for computer programs, essentially used to analyze or correct the initial faults (commonly called in the technique "bugs") of the programs.

De nombreuses techniques sont utilisées pour analyser les performances des programmes d'ordinateur, en particulier pendant leur développement. Il est reconnu que le processus de correction des défauts initiaux constitue une partie notable du développement d'un programme d'ordinateur et, dans certains cas, le temps requis pour la correction des défauts initiaux dépassé celui requis pour écrire le programme. Many techniques are used to analyze the performance of computer programs, especially during their development. It is recognized that the process of correcting initial faults is a significant part of the development of a computer program and, in some cases, the time required to correct initial faults exceeded that required to write the program.

Une première technique utilisée pour corriger les défauts initiaux des programmes d'ordinateur consiste à interrompre le programme au niveau d'événements prédéterminés et d'examiner alors, par exemple, les contenus des registres. Un tel événement est la génération d'adresses prédéterminées qui peuvent constituer des références pour le programme d'ordinateur ou des données. Quand l'adresse produite par l'ordinateur s'adapte à l'une des adresses prédéterminée, un "point de rupture" survient. Le fonctionnement de l'ordinateur est interrompu pour permettre l'analyse. A first technique used to correct the initial faults of computer programs consists in interrupting the program at predetermined events and then examining, for example, the contents of the registers. One such event is the generation of predetermined addresses which may constitute references for the computer program or data. When the address produced by the computer adapts to one of the predetermined addresses, a "breaking point" occurs. Computer operation is interrupted to allow analysis.

Un procédé pour fournir une interruption de point de rupture consiste à modifier le programme d'ordinateur lui-même. A certaines adresses dans le programme, le programme assure une interruption. Ce procédé est relativement peu coûteux ; il présente toutefois l'inconvénient que des points de rupture ne peuvent être établis pour des adresses référencées à des données. One method of providing a breakpoint interrupt is to modify the computer program itself. At certain addresses in the program, the program ensures an interruption. This process is relatively inexpensive; however, it has the disadvantage that breakpoints cannot be established for addresses referenced to data.

Dans un autre procédé, un matériel extérieur à l'ordinateur ou au microprocesseur est utilisé pour les interruptions de point de rupture. Ce matériel compare les adresses produites par l'ordinateur à des adresses prédéterminées et fournit un point de rupture ou signal d'interruption. Ce procédé est généralement coûteux et nécessite une quantité notable d'espace de cartes de circuits imprimés. En outre, pour des processeurs à haute vitesse, il ne réagit pas suffisamment rapidement pour fournir un point de rupture "en temps réel". Un problème notable se présente quand le microprocesseur comprend un module de traduction d'adresse telle qu'un module de gestion de mémoire dans le microprocesseur luimême. Les seules adresses produites par l'ordinateur accessibles pour un utilisateur sont les adresses physiques typiquement communiquées à une mémoire à accès aléatoire.C'est-à-dire que des adresses virtuelles utilisées par le programmeur peuvent ne pas être disponibles. Il est difficile d'établir les points de rupture basés sur les adresses physiques. In another method, hardware external to the computer or microprocessor is used for breakpoint interruptions. This material compares the addresses produced by the computer to predetermined addresses and provides a breaking point or interrupt signal. This process is generally expensive and requires a significant amount of printed circuit board space. In addition, for high speed processors, it does not react quickly enough to provide a "real time" breaking point. A notable problem arises when the microprocessor includes an address translation module such as a memory management module in the microprocessor itself. The only addresses produced by the computer accessible to a user are the physical addresses typically communicated to a random access memory, i.e. virtual addresses used by the programmer may not be available. It is difficult to establish breaking points based on physical addresses.

Comme on le verra, la présente invention prévoit un appareil générant des points de rupture qui résout les problèmes ci-dessus et assure en outre une sélection améliorée de points de rupture. As will be seen, the present invention provides an apparatus for generating break points which solves the above problems and further provides for improved selection of break points.

La présente invention prévoit un appareil générant des signaux de point de rupture utiles pour la correction des défauts initiaux de programmes d'ordinateur. L'appareil est particulièrement utile dans un microprocesseur à circuit intégré formé sur un substrat unique qui comprend des moyens de génération d'adresses pour produire des adresses virtuelles pour faire référence à des instructions de programme ou à des données, un bus d'adresse virtuelle, un moyen de traduction d'adresse pour convertir lradresse virtuelle sur le bus en une adresse physique, un moyen d'interprétation pour interpréter les instructions du programme, et un moyen arithmétique pour agir sur les données selon les instructions interprêtées. L'appareil comprend un premier registre pour mémoriser une adresse prédéterminée sous forme d'une adresse virtuelle à laquelle un point de rupture doit prendre place.Un second registre est utilisé pour mémoriser des bits de commande qui permettent à l'utilisateur de choisir certaines conditions de point de rupture telles que de choisir si le point de rupture doit prendre place en relation avec le programme de l'ordinateur ou avec des données. Un moyen comparateur compare l'adresse virtuelle prédéterminée à l'adresse produite par l'ordinateur (adresse virtuelle en cours). Un premier moyen logique détermine si l'adresse virtuelle en cours fait référence à des instructions de programme ou à des données en examinant les signaux de commande d'adresse. Ce moyen logique est également commandé par les bits de commande mémorisés dans le second registre. Des moyens de porte utilisés pour fournir le signal de point de rupture et interrompre le fonctionnement de l'ordinateur sont couplés à la sortie du moyen comparateur et au premier moyen logique.L'appareil complet est formé sur le même substrat que le microprocesseur. The present invention provides an apparatus for generating breakpoint signals useful for correcting initial faults in computer programs. The apparatus is particularly useful in an integrated circuit microprocessor formed on a single substrate which includes address generation means for producing virtual addresses to refer to program instructions or data, a virtual address bus , address translation means for converting the virtual address on the bus to a physical address, interpretation means for interpreting the instructions of the program, and arithmetic means for acting on the data according to the interpreted instructions. The apparatus includes a first register for storing a predetermined address in the form of a virtual address at which a breakpoint is to take place. A second register is used for storing command bits which allow the user to choose certain conditions of breaking point such as to choose if the breaking point should take place in relation to the program of the computer or with data. A comparator means compares the predetermined virtual address with the address produced by the computer (current virtual address). A first logic means determines whether the current virtual address refers to program instructions or data by examining the address control signals. This logic means is also controlled by the control bits stored in the second register. Gate means used to provide the break point signal and interrupt computer operation are coupled to the output of the comparator means and the first logic means. The complete apparatus is formed on the same substrate as the microprocessor.

L'appareil comprend également un second moyen logique pour déterminer si l'adresse virtuelle en cours se trouve à l'intérieur de la référence représentée par l'adresse prédéterminée ou si la référence représentée par l'adresse prédéterminée se trouve à l'intérieur du domaine de référence défini par l'adresse virtuelle. En fait, ceci permet à la largeur de l'adresse du point de rupture prédéterminé d'être choisie par des bits de commande mémorisés dans le second registre. The apparatus also comprises a second logical means for determining whether the current virtual address is inside the reference represented by the predetermined address or whether the reference represented by the predetermined address is inside the reference domain defined by the virtual address. In fact, this allows the width of the address of the predetermined breaking point to be chosen by control bits stored in the second register.

Ces objets, caractéristiques et avantages ainsi que d'autres de la présente invention seront exposés plus en détail dans la description suivante de modes de réalisation particuliers faite en relation avec les figures jointes parmi lesquelles
la figure 1 est un schéma sous forme de blocs illustrant la microarchitecture d'ensemble d'un microprocesseur dans lequel l'appareil selon la présente invention est utilisé.
These objects, characteristics and advantages as well as others of the present invention will be explained in more detail in the following description of particular embodiments made in relation to the attached figures among which
Figure 1 is a block diagram illustrating the overall microarchitecture of a microprocessor in which the apparatus according to the present invention is used.

La figure 2 est un schéma sous forme de blocs illustrant l'appareil générant des points de rupture selon la présente invention
la figure 3 est un schéma électrique d'un étage de l'un des registres utilisé dans le schéma bloc de la figure 2
la figure 4a est un schéma utilisé pour représenter le cas où la référence de mémoire représentée par l'adresse prédéterminée (point de rupture) est plus étendue qu'une référence d'adresse mémoire ; et
la figure 4b est un schéma utilisé pour représenter le cas où la référence de mémoire représentée par l'adresse prédéterminée (point de rupture) est plus étroite qu'une référence d'adresse mémoire.
Figure 2 is a block diagram illustrating the apparatus generating break points according to the present invention
Figure 3 is an electrical diagram of a stage of one of the registers used in the block diagram of Figure 2
FIG. 4a is a diagram used to represent the case where the memory reference represented by the predetermined address (breaking point) is more extensive than a memory address reference; and
FIG. 4b is a diagram used to represent the case where the memory reference represented by the predetermined address (breaking point) is narrower than a memory address reference.

Il est décrit un appareil générant des points de rupture qui est particulièrement adapté pour être utilisé dans unmicroprocesseùr où.  There is described an apparatus generating break points which is particularly suitable for use in a microprocesseùr where.

le microprocesseur comprend un module de traduction d'adresses fabriqué de façon intégrée avec le microprocesseur. Typiquement, dans de tels cas, les adresses virtuelles ne sont pas accessibles pour l'utilisateur rendant difficile d'établir les points de rupture. Dans le mode de réalisation particulier décrit, l'appareil générant des points de rupture est formé de façon intégrée sur le même substrat que le microprocesseur et son module de traduction d'adresses.the microprocessor comprises an address translation module manufactured in an integrated manner with the microprocessor. Typically, in such cases, the virtual addresses are not accessible to the user, making it difficult to establish the breaking points. In the particular embodiment described, the device generating break points is formed integrally on the same substrate as the microprocessor and its address translation module.

Dans la description suivante, de nombreux détails spécifiques sont exposés, tels que des nombres de bits particuliers, etc., pour permettre une compréhension approfondie de la présente invention. Toutefois, il sera clair pour l'homme de l'art, que la présente invention peut être mise en oeuvre sans ces détails particuliers. Dans d'autres exemples, des structures bien connues ne sont pas représentées en détail pour ne pas obscurcir de façon non nécessaire la présente invention. In the following description, many specific details are set forth, such as particular bit numbers, etc., to allow a deep understanding of the present invention. However, it will be clear to those skilled in the art that the present invention can be implemented without these particular details. In other examples, well-known structures are not shown in detail so as not to unnecessarily obscure the present invention.

Dans le mode de réalisation particulier décrit, le microprocesseur 10 de la figure 1 est fabriqué sur un substrat unique de silicium en utilisant une technologie CMOS (métal oxyde semiconducteur complémentaire). L'une quelconque des nombreuses technologies CMOS bien connues peut être utilisée ; il sera toutefois clair que la présente invention peut être réalisée avec d'autre technologies, par exemple des technologies MOS à canal -N, des technologies bipolaires, des technologies SOS, etc. In the particular embodiment described, the microprocessor 10 of FIG. 1 is fabricated on a single silicon substrate using a CMOS (complementary metal semiconductor oxide) technology. Any of the many well known CMOS technologies can be used; it will however be clear that the present invention can be implemented with other technologies, for example MOS technologies with -N channel, bipolar technologies, SOS technologies, etc.

En figure 1, le microprocesseur à puce unique 10 cojm*- prend un module d'interface de bus 14, un module décodeur d'instructions 16, un module d'exécution 18, un module dé w duction d'adresse 20, et le circuit générant des points de ruptùre 30 f4is#t fobjet de la présente invention qui est inclus dans le module 20. Le microprocesseur à 32 bits est représenté couplé à une mémoire externe à accès aléatoire 13. Le module de bus 14 comprend des tampons 14-1 pour transmettre l'adresse à 32 bits et pour recevoir et envoyer les 32 bits de données. De façon interne au microprocesseur le module de bus comprend un module de prêrecherche 14-2 pour rechercher les instructions à partir de la mémoire 13 et une file d'attente de prérecherche 14-3 qui communique avec le moduIe#-#ins- truction 16-1 du décodeur d'instructions. Les instructions mises en file sont interprétées et mises en files (16-2) dans le module 16. Le module arithmétique et logique (ALU) 18-1 du module d'exécution 18 exécute de façon générale les instructions. In FIG. 1, the single chip microprocessor 10 cojm * - takes a bus interface module 14, an instruction decoder module 16, an execution module 18, an address deduction module 20, and the circuit generating break points 30 f4is # t object of the present invention which is included in the module 20. The 32-bit microprocessor is shown coupled to an external random access memory 13. The bus module 14 comprises buffers 14- 1 to transmit the address at 32 bits and to receive and send the 32 bits of data. Internally to the microprocessor, the bus module includes a pre-search module 14-2 for searching instructions from memory 13 and a pre-search queue 14-3 which communicates with module # - # instruction 16 -1 of the instruction decoder. The queued instructions are interpreted and queued (16-2) in the module 16. The arithmetic and logic module (ALU) 18-1 of the execution module 18 generally executes the instructions.

Pour la microarchitecture représentée, le module de traduction d'adresses 20 assure deux fonctions de traduction d'adresses ; une première associée à des registres de description de segments 20-1 et l'autre associée à une mémoire de cache de description de pages 20-2. Ce module est associé à l'interface de bus 14. For the microarchitecture shown, the address translation module 20 provides two address translation functions; a first associated with segment description registers 20-1 and the other associated with a page description cache memory 20-2. This module is associated with the bus interface 14.

Ces fonctions sont décrites en détail dans la demande de brevet américain NO 744 389 déposée le 13 juin 1985 et ayant pour titre
MEMORY MANAGEMENT FOR MICROPROCESSOR SYSTEM, cédée au demandeur.
These functions are described in detail in American patent application NO 744 389 filed on June 13, 1985 and having as title
MEMORY MANAGEMENT FOR MICROPROCESSOR SYSTEM, assigned to the applicant.

Le circuit générant des points de rupture 30 est couplé entre les registres de description de segments 20-1 et la mémoire de cache de description de pages 20-2 sur un bus 19. Les adresses virtuelles sont transmises sur ce bus. Ces adresses virtuelles sont facilement accessibles pour un programmeur mais les adresses physiques ne le sont pas. Il est difficile de prévoir des points de rupture sur la base des adresses physiques, comme cela a été mentionné,
Un module de commande (non représenté) est couplé aux modules de la figure 1 pour assurer un contrôle de l'ensemble.
The circuit generating breakpoints 30 is coupled between the segment description registers 20-1 and the page description cache memory 20-2 on a bus 19. The virtual addresses are transmitted on this bus. These virtual addresses are easily accessible for a programmer, but the physical addresses are not. It's hard to predict break points based on physical addresses, as mentioned,
A control module (not shown) is coupled to the modules in FIG. 1 to ensure control of the assembly.

Comme cela est représenté en fiqure 2, le circuit générant des points de rupture 30 de la figure i comprend un registre/compara- teur à 32 bits 34. Dans le mode de réalisation actuellement préféré, le registre et le comparateur sont incorporés en un circuit unique ; un étage de ce registre/comparateur est représenté en figure 3. Le registredcornparateur 34 mémorise les adresses prédéterminées auxquelles des points de rupture doivent survenir, parfois appelés ci-après adresses de point de rupture. Le registre/comparateur 34 compare l'adresse de point de rupture mémorisée à l'adresse virtuelle produite par le microprocesseur, quelque fois appelée ci-après adresse virtuelle en cours ou adresse en cours.Quand le signal de chargement 35 est présent,uneadresse de point de rupture à 32 bits est chargée sur le bus 19a dans le registre/comparateur 34. Ensuite, le registre/comparateur 34 compare l'adresse de point de rupture à chaque adresse en cours sur le bus 19 et quand un accord a lieu, fournit un signal "HIT" sur une ligne 46. Les deux bits les moins significatifs de l'adresse de point de rupture dans le registre/comparateur 34 ne sont pas utilisés comme éléments de cette comparaison pour des raisons qui seront exposées ci-après, mais sont au lieu de cela couplés au réseau logique programmable (PLA) 38. As shown in Figure 2, the circuit generating breakpoints 30 of Figure i comprises a 32-bit register / comparator 34. In the presently preferred embodiment, the register and the comparator are incorporated into a circuit unique; a stage of this register / comparator is shown in FIG. 3. The registredcornparator 34 stores the predetermined addresses at which breakpoints must occur, sometimes called hereinafter breakpoint addresses. The register / comparator 34 compares the stored breaking point address with the virtual address produced by the microprocessor, sometimes referred to hereinafter as the current virtual address or the current address. When the loading signal 35 is present, an address of 32-bit breakpoint is loaded on the bus 19a in the register / comparator 34. Then, the register / comparator 34 compares the breakpoint address with each address in progress on the bus 19 and when an agreement takes place, provides a "HIT" signal on a line 46. The two least significant bits of the breakpoint address in the register / comparator 34 are not used as elements of this comparison for reasons which will be explained below, but are instead coupled to the programmable logic network (PLA) 38.

L'unité de décodage d'instructions 16 de la figure 1 interprète une instruction prédéterminée vers le microprocesseur commeun ordre de chargement du registre/comparateur 34 et permet à l'utilisateur de charger ainsi le registre/comparateur 34 par l'adresse de point de rupture. Une autre instruction permet à l'adresse mémorisée dans le registre/comparateur 34 d'être lue par l'utilisateur. The instruction decoding unit 16 of FIG. 1 interprets a predetermined instruction towards the microprocessor as an order to load the register / comparator 34 and allows the user to thus load the register / comparator 34 by the point address of rupture. Another instruction allows the address stored in the register / comparator 34 to be read by the user.

Dans le mode de réalisation particulier décrit, quatre registres/comparateurs 34 sont utilisés pour permettre de mémoriser quatre adresses différentes de point de rupture. Pour chaque registre comparateur 34, il existe un registre associé 32, permettant la mémorisation des bits de commande pour chaque adresse de point de rupture comme cela sera exposé. Dans des buts explicatifs, le circuit de la figure 2 est traité comme comprenant un seul premier registre/comparateur 34 et un seul second registre 32. Toutefois, il sera clair pour l'homme de l'art qu'un nombre quelconque de registres/comparateurs 32 et de registres 34 peut être utilisé permettant ainsi une interruption pour l'une quelconque d'une pluralité d'adresses de points de rupture. In the particular embodiment described, four registers / comparators 34 are used to allow four different breaking point addresses to be stored. For each comparator register 34, there is an associated register 32, allowing the storage of the control bits for each breaking point address as will be explained. For explanatory purposes, the circuit of Figure 2 is treated as comprising a single first register / comparator 34 and a single second register 32. However, it will be clear to those skilled in the art that any number of registers / comparators 32 and registers 34 can be used thereby allowing an interrupt for any one of a plurality of breaking point addresses.

Le registre de commande 32 mémorise quatre bits de commande pour chaque adresse de point de rupture. Un premier bit détermine si l'adresse de point de rupture représente une référence vers des données ou vers le programme d'ordinateur. Dans les cas d'une référence à des données, deux bits de commande sont utilisés pour déterminer l'étendue du point de rupture. Dans le mode de réalisation actuellement décrit, le point de rupture peut avoir une étendue de 1, 2 ou 4 multiplets. A nouveau, pour des points de rupture de données, un autre bit de commande est utilisé pour permettre l'interruption au niveau de cycles de lecture seulement ou de cycles de lecture-écriture. Comme cela est le cas avec le registre/comparateur 34, une instruction prédéterminée vers le micropro cesseur 10 est interprétée par le module 16 pour permettre à l'utilisateur de charger le registre 32.Ceci peut être la même instruction que celle utilisée pour charger le registre/comparateur 34. The control register 32 stores four control bits for each breakpoint address. A first bit determines whether the breakpoint address represents a reference to data or to the computer program. In the case of a reference to data, two control bits are used to determine the extent of the break point. In the embodiment currently described, the breaking point can have a range of 1, 2 or 4 bytes. Again, for data breakpoints, another control bit is used to allow interruption at read only or read-write cycles. As is the case with the register / comparator 34, a predetermined instruction to the microprocessor 10 is interpreted by the module 16 to allow the user to load the register 32. This can be the same instruction as that used to load the register / comparator 34.

Le circuit logique de validation 36 est couplé pour recevoir des signaux de commande de bus. Ces lignes contiennent les signaux de commande qui déterminent si une adresse en cours fait une référence à un programme ou à des données ; et dans le cas de références à des données, s'il s'agit d'un cycle de lecture seulement ou d'un cycle de lecture-écriture. Le circuit logique de validation 36 compare ces signaux de commande à deux bits de commande en provenance du registre 32 et, si le cycle de mémoire concorde avec celui choisi par l'utilisateur, une horloge de validation est produite vers la porte ET 40. Des circuits logiques classiques sont utilisés dans ce but. The validation logic circuit 36 is coupled to receive bus control signals. These lines contain the control signals which determine whether a current address refers to a program or to data; and in the case of references to data, whether it is a read-only cycle or a read-write cycle. The validation logic circuit 36 compares these control signals with two control bits from the register 32 and, if the memory cycle agrees with that chosen by the user, a validation clock is produced towards the AND gate 40. Classic logic circuits are used for this purpose.

Comme cela a été mentionné, le point de rupture peut avoir une étendue de 1, 2 ou 4 multiplets et cette étendue choisie par l'utilisateur est mémorisée dans le registre 32. Les deux bits requis pour cette sélection sont couplés au PLA 38. En outre, comme cela a été mentionné, les deux bits les moins significatifs mémorisés dans le registre/comparateur 34 sont couplés au PLA 38. As mentioned, the break point can have a range of 1, 2 or 4 bytes and this range chosen by the user is stored in register 32. The two bits required for this selection are coupled to PLA 38. In furthermore, as has been mentioned, the two least significant bits stored in the register / comparator 34 are coupled to the PLA 38.

Des signaux de synchronisation et de commande en provenance des lignes 20 sont également couplés au PLA 38. Le PLA n'est pas programmable par l'utilisateur mais, au lieu de cela, est programmé de façon permanente à sa fabrication. Le PLA met en oeuvre la logique établie dans le paragraphe suivant. L'utilisation d'un PLA n'est pas critique pour la réalisation de l'invention, c'est-àdire que d'autres circuits logiques peuvent être utilisés au lieu du PLA. Le PLA fournit un signal à la porte 40 quand un "accord" prend place.Synchronization and control signals from the lines 20 are also coupled to the PLA 38. The PLA is not user programmable but, instead, is permanently programmed upon manufacture. The PLA implements the logic established in the following paragraph. The use of a PLA is not critical for the realization of the invention, that is to say that other logic circuits can be used instead of the PLA. The PLA provides a signal to gate 40 when an "agreement" takes place.

En figure 4a, une référence d'adresse de point de rupture relativement étendue est représentée (par exemple quatre multiplets). L'adresse virtuelle de mémoire en cours peut être référencée à seulement une partie de la référence 70. Dans le cas d'une référence d'adresse de point de rupture étroite, comme cela est représenté en figure 4b, en tant que référence 74, une référence d'adresse virtuelle relativement étendue peut embrasser la référence d'adresse de point de rupture plus étroite 74. Les deux cas représentés en figures 4a et 4b sont résolus par le PLA 38. In FIG. 4a, a relatively large breaking point address reference is represented (for example four bytes). The current virtual memory address can be referenced to only part of the reference 70. In the case of a narrow breakpoint address reference, as shown in FIG. 4b, as reference 74, a relatively wide virtual address reference can embrace the narrower breaking point address reference 74. The two cases represented in FIGS. 4a and 4b are resolved by PLA 38.

Comme cela a été mentionné, des circuits logiques classiques peuvent être utilisés pour déterminer si la référence d'adresse de mémoire en cours tombe dans une référence d'adresse de point de rupture étendue, ou si une référence d'adresse de point de rupture plus étroite tombe dans la référence d'adresse de mémoire en cours plus étendue. Si l'une ou l'autre de ces conditions survient, un signal "d'accord" est fourni sur une ligne 52.As mentioned, conventional logic can be used to determine whether the current memory address reference falls into an extended breakpoint address reference, or whether a more breakpoint address reference narrow falls into the more extensive current memory address reference. If either of these conditions occurs, an "agree" signal is provided on line 52.

La porte ET 40 reçoit trois entrées, le signal HIT en provenance du registre/comparateur 34, l'horloge de validation en provenance du circuit logique 36 et le signal d'accord en provenance du circuit 38. Le signal HIT est produit quand les 30 bits les plus significatifs de l'adresse virtuelle en cours concordent avec les 30 bits d'adresse les plus significatifs de l'adresse de point de rupture mémorisée. La sortie de la porte 40 fournit le signal de point de rupture qui est utilisé pour interrompre le fonctionnement du microprocesseur. The AND gate 40 receives three inputs, the HIT signal from the register / comparator 34, the validation clock from the logic circuit 36 and the tuning signal from the circuit 38. The HIT signal is produced when the 30 the most significant bits of the current virtual address match the 30 most significant address bits of the stored breakpoint address. The output of gate 40 provides the break point signal which is used to interrupt the operation of the microprocessor.

L'étage unique représenté du registre/comparateur 34 représenté en figure 3 comprend une cellule de mémoire statique 53 et un comparateur 54. Les lignes de bus 19a et 13b transportent un bit d'adresse unique et son complément. La ligne HIT 46 est représentée couplée au comparateur 54 et à un transistor à canal P 56. The single stage shown in the register / comparator 34 shown in FIG. 3 comprises a static memory cell 53 and a comparator 54. The bus lines 19a and 13b transport a single address bit and its complement. The HIT line 46 is shown coupled to the comparator 54 and to a P-channel transistor 56.

Ce transistor est utilisé pour précharger la ligne 46 avant chaque cycle de bus d'adresse virtuelle. La ligne 46 est couplée aux autres étages du registre/comparateur 34.This transistor is used to preload line 46 before each virtual address bus cycle. Line 46 is coupled to the other stages of the register / comparator 34.

Les inverseurs couplés forment une bascule ou cellule de mémoire statique classique 55. Cette cellule est chargée à partir des lignes 19a et 19b quand le signal de charge est présent sur la ligne 35. Une fois que le registre est chargé, le signal de charge chute en potentiel, pour découpler effectivement la cellule 55 des lignes 19a et 19b. Après cela, quand l'adresse virtuelle en cours apparaît sur ces lignes et que le signal+1 est présent, les contenus de la cellule 55 sont comparés à l'adresse de bus 19 par le comparateur 54. Si l'une quelconque des paires à 32 bits qui sont comparés ne concordent pas, la ligne 46 est déchargée empêchant la porte ET 40 de la figure 2 d'être validée.Le circuit de la figure 3 est décrit plus en détail dans la demande de brevet susmentionnée où le circuit est utilisé en tant que partie d'une mémoire adressable par #on contenu. The coupled inverters form a flip-flop or conventional static memory cell 55. This cell is loaded from lines 19a and 19b when the load signal is present on line 35. Once the register is loaded, the load signal drops in potential, to effectively decouple cell 55 from lines 19a and 19b. After that, when the current virtual address appears on these lines and the + 1 signal is present, the contents of cell 55 are compared to bus address 19 by comparator 54. If any of the pairs at 32 bits which are compared do not match, line 46 is discharged preventing the AND gate 40 of FIG. 2 from being validated. The circuit of FIG. 3 is described in more detail in the aforementioned patent application where the circuit is used as part of a memory addressable by #on content.

En utilisation, l'utilisateur détermine jusqu a quatre adresses de points de rupture, et choisit si les adresses sont des références à des programmes ou à des données, et dans le cas de références à des données, la largeur de la référence et si le point de rupture doit survenir sur un cycle de lecture seulement ou sur un cycle de lecture-écriture. Au moyen d'une instruction particulière, l'utilisateur peut alors charger jusqu a quatre adresses de points de rupture dans le registre/comparateur 34 et établir les bits de commande correspondants pour chaque point de rupture dans le registre 32. Alors, en utilisant chaque cycle de bus d'adresse virtuelle, une comparaison prend place dans le registre/comparateur, 34 et les circuits logiques 36 et 38 déterminent si les conditions choisies par l'utilisateur existent. Si les adresses concordent et que les conditions concordent, alors un signal de point de rupture est produit au niveau de la porte 40. In use, the user determines up to four breakpoint addresses, and chooses whether the addresses are references to programs or to data, and in the case of references to data, the width of the reference and whether the breaking point must occur on a read-only cycle or on a read-write cycle. By means of a particular instruction, the user can then load up to four breakpoint addresses in the register / comparator 34 and establish the corresponding control bits for each breakpoint in the register 32. Then, using each virtual address bus cycle, a comparison takes place in the register / comparator, 34 and the logic circuits 36 and 38 determine whether the conditions chosen by the user exist. If the addresses match and the conditions match, then a breakpoint signal is produced at gate 40.

Contrairement aux procédés de l'art antérieur, un signal de point de rupture en temps réel est produit. Les comparaisons prennent place tandis que l'adresse virtuelle est présente sur le bus et puisqu'il y a très peu de retard de propagation, le signal d'interruption peut être produit à l'instant approprié. Unlike prior art methods, a real time breakpoint signal is produced. The comparisons take place while the virtual address is present on the bus and since there is very little propagation delay, the interrupt signal can be produced at the appropriate time.

Ainsi, on a décrit un appareil générant des points de rupture perfectionné. Cet appareil est particulièrement utile pour les microprocesseurs à puce unique où des adresses virtuelles sont traduites en adresses physiques sur la puce  Thus, there has been described an apparatus generating improved breaking points. This device is particularly useful for single chip microprocessors where virtual addresses are translated into physical addresses on the chip

Claims (10)

REVENDICATIONS 1. Microprocesseur sous forme de circuit intégré formé sur un substrat unique qui comprend un moyen de génération d'adresses pour produire des adresses virtuelles pour faire référence à des instructions de programmes et à des données, un bus d'adresses virtuelles, un moyen de traduction d'adresses (20) pour convertir des adresses virtuelles sur le bus en adresses physiques, un moyen d'interprétation pour interpréter les instructions de programme, et un moyen arithmétique pour agir sur les données en accord avec les instructions interprétées, caractérisé en ce qu'il comprend des moyens pour fournir un signal de point de rupture comprenant 1. Microprocessor in the form of an integrated circuit formed on a single substrate which comprises an address generation means for producing virtual addresses for referring to program instructions and data, a virtual address bus, a means for address translation (20) for converting virtual addresses on the bus into physical addresses, an interpretation means for interpreting the program instructions, and an arithmetic means for acting on the data in accordance with the interpreted instructions, characterized in that it comprises means for supplying a breaking point signal comprising un premier registre (34) pour mémoriser une adresse à laquelle un point de rupture doit prend place ;; a first register (34) for storing an address at which a breaking point must take place; un second registre (32) pour mémoriser des bits de commande a second register (32) for storing control bits un moyen comparateur (34) pour comparer au moins une partie d'adresse mémorisée à une adresse en cours sur le bus, ce moyen comparateur étant couplé au premier registre ; comparator means (34) for comparing at least part of the stored address with a current address on the bus, this comparator means being coupled to the first register; un premier moyen logique (36) pour déterminer si l'adresse en cours est une référence à des instructions de programme ou à des données, le premier moyen logique étant couplé au second registre pour détecter au moins l'un des bits de commande mémorisés first logic means (36) for determining whether the current address is a reference to program instructions or to data, the first logic means being coupled to the second register for detecting at least one of the stored control bits un moyen de porte (40) pour fournir le signal de point de rupture, ce moyen de porte étant couplé audit moyen comparateur et audit premier moyen logique gate means (40) for providing the breakpoint signal, said gate means being coupled to said comparator means and said first logic means les premier et second registres, le moyen comparateur, le premier moyen logique et le moyen de porte étant incorporés sur le substrat, the first and second registers, the comparator means, the first logic means and the gate means being incorporated on the substrate, d'où il résulte qu'un signal de point de rupture en temps réel est fourni au microprocesseur. where it follows that a real time breakpoint signal is supplied to the microprocessor. 2. Microprocesseur selon la revendication 1, caractérisé en ce que le moyen d'interprétation interprète une certaine instruction pour valider la charge du premier registre (34) à partir du bus.  2. Microprocessor according to claim 1, characterized in that the interpretation means interprets a certain instruction to validate the load of the first register (34) from the bus. 3. Microprocesseur selon la revendication 2, caractérisé en ce que le moyen d'interprétation interprète une instruction prédéterminée pour valider la charge du second registre (32). 3. Microprocessor according to claim 2, characterized in that the interpretation means interprets a predetermined instruction to validate the load of the second register (32). 4. Microprocesseur selon la revendication 3, caractérisé en ce qu'un autre des bits de commande mémorisés dans le second registre (32) détermine si un point de rupture doit prend place par suite à une référence à des données pendant un cycle de lecture seulement ou un cycle de lecture-écriture. 4. Microprocessor according to claim 3, characterized in that another of the control bits stored in the second register (32) determines whether a break point should take place as a result of a reference to data during a read cycle only or a read-write cycle. 5. Microprocesseur selon la revendication 3, caractérisé en ce que certains des bits de commande mémorisés dans le second registre (32) déterminent l'étendue d'une adresse à laquelle le point de rupture doit survenir, et en ce qu'il comprend en outre un second moyen logique (38) pour déterminer (i) si la référence de l'adresse en cours est incluse dans la référence représentée par l'adresse mémorisée quand la référence de l'adresse en cours est plus étroite que l'adresse mémorisée ou, (ii) si la référence représentée par 11 adresse mémorisée est incluse dans la référence de l'adresse en cours quand l'adresse en cours est plus étendue que la référence de l'adresse mémorisée. 5. Microprocessor according to claim 3, characterized in that some of the control bits stored in the second register (32) determine the extent of an address at which the breaking point must occur, and in that it comprises in in addition to a second logical means (38) for determining (i) whether the reference of the current address is included in the reference represented by the stored address when the reference of the current address is narrower than the stored address or, (ii) if the reference represented by the stored address is included in the reference of the current address when the current address is more extensive than the reference of the stored address. 6. Microprocesseur à circuit intégré formé sur un substrat unique qui comprend un moyen de génération d'adresses pour produire des adresses virtuelles pour faire référence à des instructions de programme et à des données, un bus d'adresses virtuelles, un moyen de traduction d'adresses (20) pour convertir les adresses virtuelles sur le bus en adresses physiques, un moyen d'interprétation pour interpréter les instructions de programme et un moyen arithmétique agissant sur les données selon les instructions interprétées, caractérisé en ce qu'il comprend des moyens pour fournir un signal de point de rupture comprenant 6. Integrated circuit microprocessor formed on a single substrate which includes address generation means for producing virtual addresses for referring to program instructions and data, a virtual address bus, translation means for 'addresses (20) for converting virtual addresses on the bus into physical addresses, an interpretation means for interpreting the program instructions and an arithmetic means acting on the data according to the interpreted instructions, characterized in that it comprises means to provide a breakpoint signal comprising un premier registre (34) pour mémoriser une adresse virtuelle à laquelle un point de rupture doit survenir (adresse de point de rupture) a first register (34) for storing a virtual address at which a breakpoint must occur (breakpoint address) un second registre (32) pour mémoriser les bits de commande, au moins certains des bits de commande déterminant l'étendue de l'adresse de point de rupture ;  a second register (32) for storing the control bits, at least some of the control bits determining the extent of the breakpoint address; un moyen comparateur (34) pour comparer au moins une partie de l'adresse virtuelle mémorisée avec l'adresse virtuelle en cours sur le bus, ce moyen comparateur étant couplé au premier registre comparator means (34) for comparing at least part of the stored virtual address with the current virtual address on the bus, this comparator means being coupled to the first register un premier moyen logique (38) pour déterminer si l'adresse virtuelle en cours est incluse dans la référence représentée par l'adresse de point de rupture ou bien si la référence représentée par l'adresse de point de rupture est incluse dans la référence formée par l'adresse virtuelle, ce premier moyen logique étant couplé aux premier et au second registres ;  first logic means (38) for determining whether the current virtual address is included in the reference represented by the breakpoint address or whether the reference represented by the breakpoint address is included in the formed reference by the virtual address, this first logical means being coupled to the first and to the second registers; un moyen de porte (40) pour fournir le signal de point de rupture, ce moyen de porte étant couplé au moyen comparateur et au premier moyen logique ;; gate means (40) for providing the break point signal, said gate means being coupled to the comparator means and the first logic means ;; les premier et second registres, le moyen comparateur, le premier moyen logique et le moyen de porte étant incorporés au substrat ;  the first and second registers, the comparator means, the first logic means and the gate means being incorporated into the substrate; d'où il résulte qu'un signal de point de rupture en temps réel est fourni au microprocesseur. where it follows that a real time breakpoint signal is supplied to the microprocessor. 7. Microprocesseur selon la revendication 6, caractérisé en ce que le moyen d'interprétation interprète une certaine instruction pour valider la charge du premier registre (34) à partir du bus. 7. Microprocessor according to claim 6, characterized in that the interpretation means interprets a certain instruction to validate the load of the first register (34) from the bus. 8. Microprocesseur selon la revendication 7, caractérisé en ce que le moyen d'interprétation interprète une instruction prédéterminée pour valider la charge du second registre (32)  8. Microprocessor according to claim 7, characterized in that the interpretation means interprets a predetermined instruction to validate the load of the second register (32) 9. Microprocesseur selon la revendication 8, comprenant un second moyen logique (36) pour déterminer si l'adresse virtuelle en cours est une référence à un programme ou à des données, ce second moyen logique étant couplé au second registre (32) pour détecter au moins un des bits de commande mémorisé, ce second moyen logique fournissant une sortie vers le moyen de porte (40).  9. Microprocessor according to claim 8, comprising a second logic means (36) for determining whether the current virtual address is a reference to a program or to data, this second logic means being coupled to the second register (32) for detecting at least one of the stored control bits, this second logic means providing an output to the door means (40). 10. Microprocesseur selon la revendication 9, caractérisé en ce qu'un autre des bits de commande mémorisés dans le second registre détermine si un point de rupture doit survenir en faisant référence à des données pendant un cycle de lecture seule ment ou un cycle de lecture-écriture  10. Microprocessor according to claim 9, characterized in that another of the control bits stored in the second register determines whether a breakpoint must occur by referring to data during a read-only cycle or a read cycle -writing
FR8617748A 1986-01-24 1986-12-18 Break point apparatus for a microprocessor Pending FR2593621A1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US82226386A 1986-01-24 1986-01-24

Publications (1)

Publication Number Publication Date
FR2593621A1 true FR2593621A1 (en) 1987-07-31

Family

ID=25235601

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8617748A Pending FR2593621A1 (en) 1986-01-24 1986-12-18 Break point apparatus for a microprocessor

Country Status (3)

Country Link
JP (1) JPS62179033A (en)
DE (1) DE3700800C2 (en)
FR (1) FR2593621A1 (en)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0411904A2 (en) * 1989-07-31 1991-02-06 Texas Instruments Incorporated Processor condition sensing circuits, systems and methods
EP0443556A2 (en) * 1990-02-22 1991-08-28 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for partially running a sequence program for debugging thereof
EP0473410A2 (en) * 1990-08-28 1992-03-04 Nec Corporation Central processing unit
EP0591753A2 (en) * 1992-09-22 1994-04-13 Hitachi, Ltd. A data processor and a debugging apparatus using it
EP0701206A1 (en) * 1994-09-12 1996-03-13 Nec Corporation Emulator with function for detecting illegal access to special function register
EP0762279A1 (en) * 1995-08-30 1997-03-12 Motorola, Inc. Data processor with built-in emulation circuit
US5717909A (en) * 1995-05-26 1998-02-10 National Semiconductor Corporation Code breakpoint decoder

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2690737B2 (en) * 1987-11-30 1997-12-17 株式会社リコー Processor integrated circuit device
JPH02297225A (en) * 1989-05-11 1990-12-07 Mitsubishi Electric Corp Microprocessor
JP4837247B2 (en) * 2003-09-24 2011-12-14 パナソニック株式会社 Processor
US10740220B2 (en) * 2018-06-27 2020-08-11 Microsoft Technology Licensing, Llc Cache-based trace replay breakpoints using reserved tag field bits

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4080650A (en) * 1976-07-28 1978-03-21 Bell Telephone Laboratories, Incorporated Facilitating return from an on-line debugging program to a target program breakpoint
JPS5821296A (en) * 1981-07-30 1983-02-08 ヤマハ株式会社 Electronic musical instrument
JPS5856051A (en) * 1981-09-29 1983-04-02 Fujitsu Ltd Address comparison system by access interruption

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
IBM TECHNICAL DISCLOSURE BULLETIN, vol. 28 no. 7, décembre 1985, pages 3078-3079, New York, US; "Microcode debug tool implementation" *
IEEE MICRO, vol. 5, no. 6, décembre 1985, pages 4-22, New York, US; K.A.EL-AYAT et al.: "The Intel 80386 - Architecture and implementation" *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0411904A2 (en) * 1989-07-31 1991-02-06 Texas Instruments Incorporated Processor condition sensing circuits, systems and methods
EP0411904A3 (en) * 1989-07-31 1992-05-27 Texas Instruments Incorporated Processor condition sensing circuits, systems and methods
US5218525A (en) * 1990-02-22 1993-06-08 Mitsubishi Denki K.K. Method and apparatus for partially running a sequence program for debugging thereof
EP0443556A2 (en) * 1990-02-22 1991-08-28 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for partially running a sequence program for debugging thereof
EP0443556A3 (en) * 1990-02-22 1992-05-27 Mitsubishi Denki Kabushiki Kaisha Method and apparatus for partially running a sequence program for debugging thereof
EP0473410A3 (en) * 1990-08-28 1993-06-16 Nec Corporation Central processing unit
EP0473410A2 (en) * 1990-08-28 1992-03-04 Nec Corporation Central processing unit
EP0591753A2 (en) * 1992-09-22 1994-04-13 Hitachi, Ltd. A data processor and a debugging apparatus using it
EP0591753A3 (en) * 1992-09-22 1994-08-03 Hitachi Ltd
EP0701206A1 (en) * 1994-09-12 1996-03-13 Nec Corporation Emulator with function for detecting illegal access to special function register
US5802347A (en) * 1994-09-12 1998-09-01 Nec Corporation Emulator with function for detecting illegal access to special function register
US5717909A (en) * 1995-05-26 1998-02-10 National Semiconductor Corporation Code breakpoint decoder
EP0762279A1 (en) * 1995-08-30 1997-03-12 Motorola, Inc. Data processor with built-in emulation circuit

Also Published As

Publication number Publication date
DE3700800C2 (en) 1996-04-18
DE3700800A1 (en) 1987-07-30
JPS62179033A (en) 1987-08-06

Similar Documents

Publication Publication Date Title
EP1619589B1 (en) Method for programming a system on a chip DMA controller and system on a chip therefore.
FR2593621A1 (en) Break point apparatus for a microprocessor
EP1619590B1 (en) Method for programming a system on a chip DMA controller and system on a chip therefore.
EP0006478B1 (en) Programmable control latch mechanism for a data processing system
FR2583540A1 (en) MEMORY MANAGEMENT FOR MICROPROCESSOR SYSTEM.
FR2697663A1 (en) Memory test circuit.
EP0683454B1 (en) Method for testing program flow
US5249278A (en) Microprocessor breakpoint apparatus
EP0784257A1 (en) Protection system for computer software written in interpreted language
EP0875830A1 (en) Testable circuit with reduced pin count
FR2632092A1 (en) DELAYED ANTEMEMORY WRITE CONDITIONING CIRCUIT FOR A DUAL BUS MICROCALCULATOR SYSTEM COMPRISING AN UNIT 80386 AND A UNIT 82385
FR2498782A1 (en) INFORMATION PROCESSING SYSTEM
EP1338956A1 (en) Electronic data processing apparatus, especially audio processor for audio/video decoder
FR3129499A1 (en) Dynamic management of a memory firewall
JP4387640B2 (en) Semiconductor device
EP1576476B1 (en) Circuit for monitoring a microprocessor and analysis tool and inputs/outputs thereof
EP1556767B1 (en) Temporal correlation of messages transmitted by a microprocessor monitoring circuit
EP0733977B1 (en) Computer system having hierarchical memories
FR3102268A1 (en) Method for authenticating a circuit-on-chip and associated system-on-chip
EP1570356B1 (en) Monitoring device with optimized buffer
FR2695228A1 (en) Microcomputer for integrated circuit card.
FR3104285A1 (en) Checking the integrity of a memory
EP1406445B1 (en) Management system of temporal rights linked to a digital content
FR2897174A1 (en) Processor e.g. microcontroller, has debugging interface with internal registers accessible to emulator, and selection circuit for selecting registers based on reference provided by CPU
FR2774784A1 (en) MICROPROCESSOR COMPRISING A SYNCHRONIZATION SYSTEM WITH AN EXPECTED ASYNCHRONOUS EVENT