FR2593621A1 - Appareil de point de rupture pour microprocesseur - Google Patents

Appareil de point de rupture pour microprocesseur 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
English (en)
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/fr
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)
  • Memory System Of A Hierarchy Structure (AREA)
  • Microcomputers (AREA)

Abstract

La présente invention concerne un appareil générant des points de rupture 30 intégré sur la même puce qu'un microprocesseur. Cet appareil permet de déterminer des points de rupture en référence spécifique à des instructions de programme ou à des données. L'étendue d'une adresse de point de rupture peut être modifiée ; l'appareil comprend un circuit logique pour déterminer si la référence représentée par l'adresse de point de rupture recouvre l'adresse virtuelle en cours. (CF DESSIN DANS BOPI)

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.
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.
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.
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.
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.
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.
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.
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.
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é.
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.
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ù.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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é.
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

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
un premier registre (34) pour mémoriser une adresse à laquelle un point de rupture doit prend place ;;
un second registre (32) pour mémoriser des bits de commande
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 ;
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
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
les premier et second registres, le moyen comparateur, le premier moyen logique et le moyen de porte étant incorporés sur le substrat,
d'où il résulte qu'un signal de point de rupture en temps réel est fourni au microprocesseur.
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.
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).
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.
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.
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
un premier registre (34) pour mémoriser une adresse virtuelle à laquelle un point de rupture doit survenir (adresse de point de rupture)
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 ;
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
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 ;
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 ;;
les premier et second registres, le moyen comparateur, le premier moyen logique et le moyen de porte étant incorporés au substrat ;
d'où il résulte qu'un signal de point de rupture en temps réel est fourni au microprocesseur.
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.
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)
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).
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
FR8617748A 1986-01-24 1986-12-18 Appareil de point de rupture pour microprocesseur Pending FR2593621A1 (fr)

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 (fr) 1987-07-31

Family

ID=25235601

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8617748A Pending FR2593621A1 (fr) 1986-01-24 1986-12-18 Appareil de point de rupture pour microprocesseur

Country Status (3)

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

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0411904A2 (fr) * 1989-07-31 1991-02-06 Texas Instruments Incorporated Circuits, systèmes et procédés de détection d'état de processeur
EP0443556A2 (fr) * 1990-02-22 1991-08-28 Mitsubishi Denki Kabushiki Kaisha Procédé et appareil de déroulement partiel d'un programme de séquence pour le débogage dudit programme
EP0473410A2 (fr) * 1990-08-28 1992-03-04 Nec Corporation Unité centrale de traitement
EP0591753A2 (fr) * 1992-09-22 1994-04-13 Hitachi, Ltd. Processeur de données et appareil de déverminage l'utilisant
EP0701206A1 (fr) * 1994-09-12 1996-03-13 Nec Corporation Emulateur avec provision de détection d'accès illégal à un registre de fonction spéciale
EP0762279A1 (fr) * 1995-08-30 1997-03-12 Motorola, Inc. Processeur de données avec circuit d'émulation incorporé
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 (ja) * 1987-11-30 1997-12-17 株式会社リコー プロセッサ集積回路装置
JPH02297225A (ja) * 1989-05-11 1990-12-07 Mitsubishi Electric Corp マイクロプロセッサ
JP4837247B2 (ja) * 2003-09-24 2011-12-14 パナソニック株式会社 プロセッサ
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 (ja) * 1981-07-30 1983-02-08 ヤマハ株式会社 電子楽器
JPS5856051A (ja) * 1981-09-29 1983-04-02 Fujitsu Ltd アクセス割込みによるアドレス・コンペア方式

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 (fr) * 1989-07-31 1991-02-06 Texas Instruments Incorporated Circuits, systèmes et procédés de détection d'état de processeur
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 (fr) * 1990-02-22 1991-08-28 Mitsubishi Denki Kabushiki Kaisha Procédé et appareil de déroulement partiel d'un programme de séquence pour le débogage dudit programme
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 (fr) * 1990-08-28 1992-03-04 Nec Corporation Unité centrale de traitement
EP0591753A2 (fr) * 1992-09-22 1994-04-13 Hitachi, Ltd. Processeur de données et appareil de déverminage l'utilisant
EP0591753A3 (fr) * 1992-09-22 1994-08-03 Hitachi Ltd
EP0701206A1 (fr) * 1994-09-12 1996-03-13 Nec Corporation Emulateur avec provision de détection d'accès illégal à un registre de fonction spéciale
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 (fr) * 1995-08-30 1997-03-12 Motorola, Inc. Processeur de données avec circuit d'émulation incorporé

Also Published As

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

Similar Documents

Publication Publication Date Title
EP1619589B1 (fr) Procédé de programmation d'un contrôleur de DMA dans un système sur puce et système sur puce associé
USRE36766E (en) Microprocessor breakpoint apparatus
FR2593621A1 (fr) Appareil de point de rupture pour microprocesseur
EP1619590B1 (fr) Procédé de programmation d'un contrôleur de DMA dans un système sur puce et système sur puce associé
EP0006478B1 (fr) Dispositif programmable de verrouillage de signaux de commande dans un système de traitement de données
FR2583540A1 (fr) Gestion de memoire pour systeme a microprocesseur.
US4860195A (en) Microprocessor breakpoint apparatus
US5249278A (en) Microprocessor breakpoint apparatus
FR2634919A1 (fr) Interface de bus pour microprocesseur
EP0683454A1 (fr) Procédé pour tester le déroulement d'un programme d'instructions
EP0784257A1 (fr) Système de protection de logiciel pour ordinateur écrit en langage interprété
FR2762683A1 (fr) Circuit testable a faible nombre de broches
FR2632092A1 (fr) Circuit de conditionnement d'ecriture d'antememoire retarde pour un systeme de microcalculateur a bus double comprenant une unite 80386 et une unite 82385
EP1489517B1 (fr) Protection d'un programme en attente d'exécution dans une mémoire utilisée par un microprocesseur
FR2498782A1 (fr) Systeme de traitement de l'information
EP1338956A1 (fr) Dispositif électronique de traitement de données, en particulier processeur audio pour un décodeur audio/vidéo
FR3129499A1 (fr) Gestion dynamique d’un pare-feu de mémoire
US5053944A (en) Microprocessor breakpoint apparatus
JP4387640B2 (ja) 半導体装置
EP1576476B1 (fr) Circuit de surveillance d'un microprocesseur et outil d'analyse et ses entrees/sorties
EP1556767B1 (fr) Correlation temporelle de messages transmis par un circuit de surveillance d'un microprocesseur
EP0733977B1 (fr) Système informatique avec mémoires hiérarchisées
FR3102268A1 (fr) Procédé d’authentification d’un circuit sur puce et système sur puce associé
EP1570356B1 (fr) Dispositif de surveillance a memoire tampon optimisee
FR2695228A1 (fr) Micro-ordinateur pour carte à circuit intégré.