FR2897174A1 - Processeur comportant une interface de debogage integree controlee par l'unite de traitement du processeur - Google Patents

Processeur comportant une interface de debogage integree controlee par l'unite de traitement du processeur Download PDF

Info

Publication number
FR2897174A1
FR2897174A1 FR0601091A FR0601091A FR2897174A1 FR 2897174 A1 FR2897174 A1 FR 2897174A1 FR 0601091 A FR0601091 A FR 0601091A FR 0601091 A FR0601091 A FR 0601091A FR 2897174 A1 FR2897174 A1 FR 2897174A1
Authority
FR
France
Prior art keywords
debug interface
ern
ero
internal
processor
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0601091A
Other languages
English (en)
Other versions
FR2897174B1 (fr
Inventor
Renaud Ayrignac
Xavier Robert
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics SA
Original Assignee
STMicroelectronics SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STMicroelectronics SA filed Critical STMicroelectronics SA
Priority to FR0601091A priority Critical patent/FR2897174B1/fr
Priority to US11/671,661 priority patent/US7689864B2/en
Publication of FR2897174A1 publication Critical patent/FR2897174A1/fr
Application granted granted Critical
Publication of FR2897174B1 publication Critical patent/FR2897174B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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

Landscapes

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

Abstract

L'invention concerne un processeur (&muP) comprenant une unité de traitement (CPU) et une interface de déboguage (OCE) susceptible d'être connectée à un émulateur externe (H) pour déboguer un programme exécuté par le processeur, l'interface de déboguage comprenant des ressources internes (ER0-ERn) au moins partiellement accessibles à l'émulateur externe. Selon l'invention, l'interface de déboguage (OCE) comprend un circuit de sélection pour sélectionner une ressource interne (ER0-ERn) de l'interface de déboguage, en fonction d'une référence (ADR) fournie par l'unité de traitement (CPU), et des moyens d'accès pour transférer une donnée entre la ressource sélectionnée et un champ de donnée (D) accessible par l'unité de traitement.

Description

PROCESSEUR COMPORTANT UNE INTERFACE DE DEBOGUAGE INTEGREE CONTROLEE PAR
L'UNITE DE TRAITEMENT DU PROCESSEUR
La présente invention concerne les processeurs (microprocesseurs ou microcontrôleurs) et plus particulièrement une interface de déboguage intégrée dans un processeur.
Une telle interface de déboguage permet à un émulateur externe de se connecter à l'unité de traitement du processeur et de lui envoyer des instructions à exécuter. Le processeur comprend un mode de mise au point dans lequel l'interface de déboguage est active et fournit à l'unité de traitement des instructions reçues de l'émulateur externe. Les instructions fournies au processeur par l'interface de déboguage remplacent alors les instructions provenant de la mémoire programme. A cet effet, l'interface de déboguage comprend généralement un ensemble de registres internes d'état, de commande et de transfert de données, qui sont accessibles à l'émulateur externe par l'intermédiaire d'un port externe. Le port externe est par exemple conforme au standard IEEE 1149.1 également appelé JTAG (Joint Test Access Group). Le registre commande mémorise des commandes reçues de l'émulateur externe à appliquer à l'interface de déboguage. Le registre d'état fournit à l'émulateur externe des informations sur l'état de l'interface de déboguage. Les registres de transfert de données mémorisent des données et des commandes à exécuter par l'unité de traitement, provenant de l'émulateur externe, et des données provenant de l'unité de traitement vers l'émulateur externe. Un objectif de la présente invention est de permettre à l'unité de traitement du processeur d'accéder en lecture et/ou en écriture aux registres internes de l'interface de déboguage, notamment lorsqu'aucun
émulateur externe n'est connecté à l'interface de déboguage. Cet objectif peut être atteint simplement en attribuant une adresse de l'espace adressable du processeur à chacun des registres internes de l'interface de déboguage, à rendre accessible. Cette solution est illustrée par la figure 1 représentant sous la forme de blocs un processeur pP connecté à un émulateur externe H par l'intermédiaire d'un port de connexion JTP par exemple de type JTAG. Le processeur comprend une unité centrale CPU et une interface de déboguage OCE, connectées par un bus MB à une mémoire externe MEM et à des organes périphériques PPH. L'interface de déboguage OCE comprend des registres internes ERO, ER1, ... ERn, accessibles de l'extérieur du processeur, en lecture et en écriture, par l'intermédiaire d'une unité d'interface de bus JRG connectée au port de connexion JTP. Chacun des registres internes ERO, ER1, ... ERn de l'interface de déboguage OCE est connecté directement au bus MB de communication entre l'unité de traitement CPU, la mémoire interne ou externe MEM du processeur pP, et les organes périphériques PPH. Dans les architectures classiques des processeurs, le bus d'accès à la mémoire et aux organes périphériques constitue fréquemment un chemin critique pouvant pénaliser les performances du système. La solution illustrée par la figure 1 contribue à charger davantage le bus d'accès à la mémoire. En terme de nombre de composants mis en oeuvre, cette solution n'est pas non plus optimale. Un autre objectif de la présente invention est de rendre les registres internes de l'interface de déboguage accessible en lecture et/ou en écriture à l'unité de traitement du processeur, sans charger davantage le bus
d'accès à la mémoire du processeur, et en limitant le nombre de composants supplémentaires nécessaires. Ces objectifs sont atteints par la prévision d'un...
Plus particulièrement, l'invention prévoit un processeur comprenant une unité de traitement et une interface de déboguage susceptible d'être connectée à un émulateur externe pour déboguer un programme exécuté par le processeur, l'interface de déboguage comprenant des ressources internes au moins partiellement accessibles à l'émulateur externe. Selon l'invention, l'interface de déboguage comprend un circuit de sélection pour sélectionner une ressource interne de l'interface de déboguage, en fonction d'une référence fournie par l'unité de traitement, et des moyens d'accès pour transférer une donnée entre la ressource sélectionnée et un champ de donnée accessible par l'unité de traitement. Selon un mode de réalisation de l'invention, l'interface de déboguage comprend des moyens pour charger dans le champ de donnée une donnée contenue dans la ressource interne sélectionnée, lorsqu'un mode de lecture est sélectionné. Selon un mode de réalisation de l'invention, l'interface de déboguage comprend des moyens pour charger dans la ressource sélectionnée, une donnée contenue dans le champ de donnée, lorsqu'un mode d'écriture est sélectionné. Selon un mode de réalisation de l'invention, l'interface de déboguage comprend un registre de communication accessible par l'unité de traitement, le registre de communication comprenant le champ de donnée, un champ d'adresse pour recevoir la référence de la ressource interne à sélectionner, et un champ de commande pour recevoir une commande spécifiant un mode d'accès, en
écriture ou en lecture, à la ressource interne sélectionnée par la référence figurant dans le champ d'adresse. Selon un mode de réalisation de l'invention, le registre de communication est également accessible à l'émulateur externe pour accéder aux ressources internes de l'interface de déboguage. Selon un mode de réalisation de l'invention, les ressources internes de l'interface de déboguage IO comprennent un ensemble de registres. Selon un mode de réalisation de l'invention, les ressources internes de l'interface de déboguage comprennent une commande agissant sur le fonctionnement de l'unité de traitement. 15 Selon un mode de réalisation de l'invention, les ressources internes de l'interface de déboguage comprennent une commande de surveillance d'un événement particulier survenant dans l'unité de traitement. L'invention concerne également un procédé d'accès 20 par une unité de traitement d'un processeur à des ressources internes d'une interface de déboguage intégrée au processeur et susceptible d'être connectée à un émulateur externe pour déboguer un programme exécuté par le processeur, les ressources internes étant au moins 25 partiellement accessibles à l'émulateur externe. Selon l'invention, le procédé comprend des étapes réalisées par l'interface de déboguage et consistant à : ù sélectionner une ressource interne de l'interface de déboguage, en fonction d'une référence fournie par 30 l'unité de traitement, et ù transférer une donnée entre la ressource interne sélectionnée et un champ donnée accessible par l'unité de traitement.
Selon un mode de réalisation de l'invention, le procédé comprend des étapes de sélection d'un mode de lecture, et de chargement dans le champ de donnée, d'une donnée contenue dans la ressource interne sélectionnée.
Selon un mode de réalisation de l'invention, le procédé comprend des étapes de sélection d'un mode d'écriture, et de chargement dans la ressource interne sélectionnée, d'une donnée contenue dans le champ donnée. Selon un mode de réalisation de l'invention, le procédé comprend une étape de sélection d'un mode d'accès, en écriture ou en lecture, de la ressource interne sélectionnée par le champ d'adresse, en fonction d'une commande fournie par l'unité de traitement à l'interface de déboguage.
Selon un mode de réalisation de l'invention, l'unité de traitement écrit dans un registre de communication de l'interface de déboguage, le registre de communication comprenant le champ de donnée, un champ d'adresse pour recevoir la référence de la ressource interne à sélectionner, et un champ de commande pour recevoir une commande spécifiant un mode d'accès, en écriture ou en lecture, à la ressource interne sélectionnée par la référence figurant dans le champ d'adresse.
Selon un mode de réalisation de l'invention, l'émulateur externe accède aux registres internes de l'interface de déboguage par l'intermédiaire du registre de communication. Selon un mode de réalisation de l'invention, les 30 ressources internes de l'interface de déboguage comprennent un ensemble de registres. Selon un mode de réalisation de l'invention, les ressources internes de l'interface de déboguage comprennent une commande agissant sur le fonctionnement 35 de l'unité de traitement.
Selon un mode de réalisation de l'invention, les ressources internes de l'interface de déboguage comprennent une commande de surveillance d'un événement particulier survenant dans l'unité de traitement.
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 de l'invention, faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : - la figure 1 déjà décrite représente sous la forme de blocs une architecture de processeur comportant une interface de déboguage, selon l'art antérieur, - la figure 2 représente sous la forme de blocs une architecture de processeur comportant une interface de déboguage, selon un premier mode de réalisation de la présente invention, - la figure 3 est un schéma électrique de l'interface de déboguage représentée sur la figure 2, - la figure 4 représente sous la forme de blocs une architecture de processeur comportant une interface de déboguage, selon un second mode de réalisation de la présente invention, - la figure 5 est un schéma électrique de l'interface de 25 déboguage représentée sur la figure 4. La figure 2 représente un processeur uP connecté à un émulateur externe H par l'intermédiaire d'un port de connexion JTP par exemple de type JTAG. Le processeur comprend une unité centrale CPU et une interface de 30 déboguage OCE, connectées par un bus de communication MB à une mémoire externe MEM et à des organes périphériques PPH. L'interface OCE comprend des registres internes ERO, ER1, ... ERn, accessibles de l'extérieur du processeur, en lecture et en écriture, par l'intermédiaire d'une
unité d'interface de bus JRG connectée au port de connexion JTP. Selon un premier mode de réalisation de l'invention, chacun des registres internes ERO-ERn de l'interface OCE est relié à un registre de communication COR de l'interface de test et à l'unité d'interface de bus JRG par l'intermédiaire d'un multiplexeur MX1. Le registre COR est accessible directement depuis le bus MB. De cette manière, l'unité de traitement CPU peut fournir dans le registre COR une donnée à écrire et une adresse de registre interne ERO-ERn dans lequel la donnée doit être inscrite. L'interface de déboguage peut déterminer à l'aide de ces informations, l'opération d'écriture à effectuer dans un registre interne.
De même, l'unité CPU peut fournir dans le registre COR une adresse de registre interne ERO-ERn à lire. L'interface de déboguage peut alors lire le registre correspondant à l'adresse reçue et inscrire la donnée lue dans le registre COR. L'unité de traitement peut ensuite lire le registre COR pour obtenir la valeur lue dans le registre interne correspondant à l'adresse fournie. Ces opérations d'écriture et de lecture sont possibles sans que les registres internes ERO-ERn aient une adresse dans l'espace adressable par le bus MB.
La figure 3 est un schéma électrique d'un mode de réalisation de l'interface de déboguage OCE représentée sur la figure 2. La figure 3 représente le registre de communication COR relié aux registres internes ERO-ERn de l'interface OCE par l'intermédiaire du multiplexeur MX1 réalisé par deux multiplexeurs MXla et MXlb. Le bus MB comporte deux bus unidirectionnels MBI, MBO de sens inverses. Le bus MBI est relié au registre COR par l'intermédiaire d'un multiplexeur MX2. Le bus MBO est connecté au registre COR. Le registre COR comprend un champ d'adresse ADR, un champ de donnée D et un champ de
mode d'accès CM, indiquant si le registre sélectionné par le champ adresse doit être accédé en écriture ou en lecture. Les entrées du multiplexeur MXla sont connectées au champ adresse ADR et à l'unité d'interface de bus JRG. Les entrées du multiplexeur MXlb sont connectées au champ CM et à l'unité JRG. La sortie du multiplexeur MXlb est connectée à une entrée de sélection de mode d'écriture/lecture des registres ERO-ERn. Les registres ERO-ERn sont connectés au champ D du registre COR et à l'unité JRG par l'intermédiaire de deux bus de donnée DBI et DBO unidirectionnels de sens inverses. Le bus DBO est connecté à une entrée du multiplexeur MX2 commandé par le signal CW. Par défaut (signal CW à 0), le multiplexeur MX2 transmet la donnée présente sur le bus DBO dans le registre COR. Lorsque le signal de commande CW est à 1, le multiplexeur MX2 transmet la donnée présente sur le bus MBI au registre COR. L'interface OCE comprend également un décodeur d'adresse ADEC connecté à la sortie du multiplexeur MXla et une bascule (Flip-Flop) UR recevant en entrée un signal de commande d'écriture CW du registre COR, provenant de l'unité de traitement CPU, et sur son entrée d'horloge le signal d'horloge du processeur pP. Le décodeur ADEC comprend une sortie de signal de sélection par registre interne ERO-ERn à accéder. Chaque sortie de signal de sélection du décodeur ADEC est connectée à l'entrée d'une porte logique AG2 de type ET dont une autre entrée reçoit le signal de sortie CS de la bascule UR par l'intermédiaire d'une porte logique OG2 de type OU. La sortie de chaque porte AG2 est connectée à une entrée de sélection d'un des registres ERO-ERn. Une autre entrée de la porte OG2 reçoit un signal de commande d'écriture JW provenant de l'unité JRG. De cette manière, le décodeur ADEC sélectionne un registre interne ERO-ERn
en fonction de l'adresse fournie dans le champ ADR lorsque la sortie de la bascule UR ou le signal JW est à 1. La sortie de la bascule UR est également connectée à l'entrée d'une porte logique AGI de type ET dont une autre entrée inversée reçoit le signal de sortie du multiplexeur MXlb. La sortie de la porte AGI est connectée à une entrée d'une porte logique OG1 de type OU dont une autre entrée reçoit le signal CW. La sortie de la porte OG1 est connectée à une entrée de commande d'écriture du registre COR. Lorsque l'unité CPU écrit une commande dans le registre COR par l'intermédiaire du bus MBI, elle met le signal CW à 1. Le signal de sortie CS de la bascule UR passe alors à l'état 1 au front montant suivant du signal d'horloge CK. Le registre ERO-ERn est sélectionné en fonction du champ ADR du registre COR, et le mode d'accès au registre est sélectionné grâce au champ CM. Si le champ CM est à 1 indiquant une commande d'écriture du registre ERO-ERn sélectionné, la donnée figurant dans le champ D est transférée dans le registre sélectionné en écriture par l'intermédiaire du bus DBI. Si le champ CM est à 0 indiquant une commande de lecture du registre sélectionné, la donnée figurant dans le registre ERO-ERn sélectionné est transférée sur le bus DBO. Par ailleurs, la bascule UR dont l'état est à 1 maintient le registre COR en mode d'écriture. Parallèlement, le signal CW est repassé à 0. Par conséquent, la donnée présente sur le bus DBO est transférée dans le champ D du registre COR par le multiplexeur MX2. La donnée lue dans le registre sélectionné est donc accessible à l'unité CPU par l'intermédiaire du bus MBO, dans le champ D du registre COR, au cycle d'horloge suivant. L'unité CPU peut donc émettre une commande de lecture d'un registre interne
ERO-ERn en exécutant une instruction d'écriture à l'adresse du registre COR, suivie d'une instruction de lecture de cette même adresse du registre COR. Si l'interface de déboguage OCE n'est pas capable de fournir la donnée à lire en un cycle d'horloge, il suffit d'intercaler autant d'instructions NOP (No Operation) que nécessaire entre l'instruction d'écriture et l'instruction de lecture. Grâce aux multiplexeurs MXla et MXlb et au signal JW, une commande analogue provenant de l'unité d'interface JRG est traitée de la manière décrite précédemment par le circuit représenté sur la figure 3. Toutefois, il n'est pas nécessaire dans ce cas de maintenir le registre COR en mode d'écriture dans le cas d'une commande de lecture d'un des registres ERO-ERn. Il est à noter que les valeurs des adresses des registres ERO-ERn, susceptibles d'être inscrites dans le champ adresse sont les mêmes que celles utilisées par l'interface de déboguage OCE pour accéder à ces registres. Le but de l'invention est notamment de fournir à l'unité de traitement CPU un accès à l'interface de déboguage OCE notamment lorsque celle-ci n'est pas connectée à un émulateur externe H. Les deux chemins d'accès par l'intermédiaire du registre COR, d'une part, et d'autre part, par l'intermédiaire de l'unité d'interface JRG sont donc exclusifs. Le multiplexeur MUX1 (MUX1a, MUXlb) réalise alors une fonction logique OU. Toutefois, il peut être intéressant d'autoriser les deux accès simultanés, en donnant une priorité par exemple à l'unité de traitement CPU qui communique avec l'interface C)CE beaucoup plus rapidement que l'émulateur externe. Dans ce cas, si un accès en provenance de l'émulateur externe H apparaît pendant un accès de l'unité CPU, l'accès en provenance de l'émulateur H est
perdu. Cependant, il peut être souhaitable de ne perdre aucun accès. A cet effet, un registre supplémentaire mémorise les demandes d'accès en provenance de l'émulateur externe H.
Les conflits éventuels entre les accès provenant de l'unité CPU et de l'émulateur externe H peuvent être gérés à l'aide d'une liste des registres internes ERO-ERn accédés par l'unité de traitement lors de l'exécution d'un programme. L'émulateur externe doit alors faire en sorte de ne pas utiliser ces registres lors de la mise au point du programme. La figure 4 représente un second mode de réalisation du processeur selon l'invention. La figure 4 est identique à la figure 2, mis à part que le registre COR n'est pas accessible directement depuis le bus MB mais par l'intermédiaire d'un multiplexeur MX1', et le registre COR est relié au reste du circuit sans passer par un multiplexeur tel que MX1. Une autre entrée du multiplexeur MX1' est connectée à l'unité d'interface de bus JRG. Dans le mode de réalisation illustré sur la figure 4, l'unité CPU peut fournir dans le registre COR une donnée à écrire et une adresse de registre interne EROERn dans lequel la donnée doit être inscrite. L'interface de déboguage OCE peut déterminer à l'aide de ces informations, l'opération d'écriture à effectuer dans un registre interne. De même, l'unité de traitement CPU peut également fournir dans le registre COR une adresse de registre interne ERO-ERn à lire. L'interface OCE peut alors de la même façon transférer le contenu du registre correspondant à l'adresse reçue dans le registre COR. L'unité de traitement peut ensuite lire le registre COR pour obtenir la valeur lue dans le registre interne correspondant à l'adresse fournie.
Ces opérations d'écriture et de lecture sont également possibles sans que les registres internes EROERn aient une adresse dans l'espace adressable par le bus MB.
La figure 5 est un schéma électrique d'un mode de réalisation de l'interface de déboguage OCE représentée sur la figure 4. La figure 5 représente le registre de communication COR, relié aux registres internes ERO-ERn de l'interface OCE. Le bus MB comporte deux bus MBI, MBO unidirectionnels de sens inverses. Le bus MBI est relié au registre COR par l'intermédiaire du multiplexeur MXl', tandis que le bus MBO est connecté au registre COR. Une entrée du multiplexeur MXl' est connectée à l'unité JRG. Le registre COR comprend un champ d'adresse ADR, un champ de donnée D et un champ de mode d'accès CM, indiquant le si le registre sélectionné par le champ d'adresse doit être accédé en écriture ou en lecture. Le champ CM du registre COR est connecté à une entrée de sélection de mode d'écriture/lecture des registres ERO-ERn. Les registres ERO-ERn sont connectés au champ D du registre COR et à l'unité JRG par l'intermédiaire de deux bus de donnée DBI et DBO unidirectionnels et de sens inverses. Le bus DBO est connecté à une entrée du multiplexeur MXl' commandé par les signaux CW et JW. Par défaut (signaux CW et JW à 0), le multiplexeur MXl' transmet la donnée présente sur le bus DBO dans le registre COR. Lorsque le signal de commande CW est à 1, le multiplexeur MXl' transmet la donnée présente sur le bus MBI au registre COR. Lorsque le signal de commande JW est à 1, le multiplexeur MXl' transmet la donnée fournie par l'unité JRG au registre COR. L'interface de déboguage OCE comprend également un décodeur d'adresse ADEC recevant le contenu du champ d'adresse ADR, et une bascule (Flip-Flop) UR recevant sur
son entrée d'horloge le signal d'horloge du processeur pP, et dont une entrée est connectée à une porte logique OG3 de type OU. La porte OG3 applique à la bascule UR un signal de commande d'écriture CW, JW du registre COR provenant soit de l'unité de traitement CPU, soit de l'interface OCE. Le décodeur d'adresse ADEC comprend une sortie de signal de sélection par registre interne ERO-ERn à accéder. Chaque sortie de signal de signal de sélection du décodeur ADEC est connectée à l'entrée d'une porte logique AG2 de type ET dont une autre entrée reçoit le signal de sortie CS de la bascule UR. La sortie de chaque porte AG2 est connectée à une entrée de sélection d'un des registres ERO-ERn. De cette manière, le décodeur ADEC sélectionne un registre interne ERO-ERn en fonction de l'adresse fournie dans le champ ADR lorsque la sortie de la bascule UR est à 1. La sortie de la bascule UR est également connectée à l'entrée d'une porte logique AGI de type ET dont une autre entrée inversée reçoit la valeur du champ CM du registre COR. La sortie de la porte AGI est connectée à une entrée d'une porte logique OG1 de type OU dont une autre entrée est connectée à la sortie de la porte OG3. La sortie de la porte OG1 est connectée à une entrée de sélection d'écriture du registre COR. Lorsque l'unité CPU écrit une commande dans le registre COR par l'intermédiaire du bus MBI, elle met le signal CW à 1. La bascule UR passe alors à l'état 1 au front montant suivant du signal d'horloge CK. Le registre ERO-ERn est sélectionné en fonction du champ ADR du registre COR, et le mode d'accès au registre sélectionné est commandé grâce au champ CM. Si le champ CM est à 1 indiquant une commande d'écriture du registre ERO-ERn sélectionné, la donnée figurant dans le champ D est transférée dans le registre
sélectionné et commandé en écriture par l'intermédiaire du bus DBI. Si le champ CM est à 0 indiquant une commande de lecture du registre sélectionné, la donnée figurant dans le registre sélectionné est transférée sur le bus DBO. Par ailleurs, la sortie de la bascule UR reliée à l'entrée de sélection de mode d'écriture par l'intermédiaire des portes AGI et OG1 maintient le registre COR en mode d'écriture. Par conséquent, la donnée présente sur le bus DB est transférée dans le champ D du registre COR par l'intermédiaire du multiplexeur MX1'. Grâce au multiplexeur MX1' et au signal JW, une commande analogue provenant de l'unité d'interface JRG est traitée de la manière décrite précédemment par le circuit représenté sur la figure 5. Dans un mode de réalisation alternatif, l'entrée de donnée de l'unité JRG est connectée, non pas au bus DBO, mais au bus MBO.
Par rapport au premier mode de réalisation décrit en référence aux figures 3 et 4, le second mode de réalisation présente l'avantage de donner à l'unité CPU un accès aux commandes émises par l'émulateur externe H et au résultat de l'exécution de ces commandes.
Il est à noter que dans les deux modes de réalisation décrits en référence aux figures 3 et 5, le nombre de composants supplémentaires à prévoir pour accéder aux ressources internes de l'interface de déboguage est notablement réduit. En outre, une grande partie de ces composants est utilisée à la fois par l'unité de traitement et l'émulateur externe. Il apparaîtra clairement à l'homme de l'art que la présente invention est susceptible de diverses variantes de réalisation. En particulier, le principe de l'invention ne s'applique pas uniquement à l'accès à des
registres internes. Il s'applique plus généralement à tout accès à une ressource interne de l'interface de déboguage OCE. Ainsi, ce principe peut par exemple être appliqué à la mise à disposition de commandes de configuration (par exemple initialisation) agissant sur le fonctionnement de l'unité de traitement CPU, qui sont prévues dans l'interface OCE. L'unité de traitement peut ainsi se configurer elle-même. D'une manière générale, le registre de communication COR peut être utilisé pour modifier ou lire l'état de n'importe quel signal interne de l'interface OCE. L'interface OCE peut également comprendre une ressource permettant de surveiller des événements particuliers pouvant se produire dans l'unité de traitement. Un tel événement est par exemple l'accès de l'unité de traitement à une adresse particulière. Grâce à l'invention, l'unité de traitement peut accéder à cette ressource pour commander à l'interface OCE de surveiller des événements particuliers, et accéder à un registre d'état de l'interface OCE pour déterminer si un événement ainsi surveillé s'est produit. Il n'est pas non plus nécessaire que l'accès aux ressources de l'interface OCE, qui est fourni à l'unité de traitement CPU soit bidirectionnel. L'accès aux ressources de l'interface OCE peut être limité simplement à la modification ou à la consultation du contenu de registres ou à la valeur de signaux internes. Par ailleurs, les ressources auxquelles l'unité de traitement à accès grâce à l'invention ne sont pas nécessairement toutes accessibles à l'émulateur externe H. Certains signaux apparaissant dans des traitements intermédiaires peuvent ainsi être rendus accessibles à l'unité de traitement. Inversement, il peut ne pas être nécessaire de donner à l'unité de traitement un accès à toutes les ressources de l'interface de déboguage accessibles à l'émulateur externe.

Claims (17)

REVENDICATIONS
1. Processeur (pP) comprenant une unité de traitement (CPU) et une interface de déboguage (OCE) susceptible d'être connectée à un émulateur externe (H) pour déboguer un programme exécuté par le processeur, l'interface de déboguage comprenant des ressources internes (ERO-ERn) au moins partiellement accessibles à l'émulateur externe, caractérisé en ce que l'interface de déboguage (OCE) comprend un circuit de sélection (ADEC) pour sélectionner une ressource interne (ERO-ERn) de l'interface de déboguage, en fonction d'une référence (ADR) fournie par l'unité de traitement (CPU), et des moyens d'accès pour transférer une donnée entre la ressource sélectionnée et un champ de donnée (D) accessible par l'unité de traitement.
2. Processeur selon la revendication 1, dans lequel l'interface de déboguage (OCE) comprend des moyens pour charger dans le champ de donnée (D) une donnée contenue dans la ressource interne (ERO-ERn) sélectionnée, lorsqu'un mode de lecture est sélectionné.
3. Processeur selon la revendication 1 ou 2, dans lequel l'interface de déboguage (OCE) comprend des moyens pour charger dans la ressource (ERO-ERn) sélectionnée, une donnée contenue dans le champ de donnée (D), lorsqu'un mode d'écriture est sélectionné.
4. Processeur selon l'une des revendications 1 à 3, dans lequel l'interface de déboguage (OCE) comprend un registre de communication (COR) accessible par l'unité de traitement (CPU), le registre de communication comprenant le champ de donnée (D), un champ d'adresse (ADR) pour 17 recevoir la référence de la ressource interne à sélectionner, et un champ de commande (CM) pour recevoir une commande spécifiant un mode d'accès, en écriture ou en lecture, à la ressource interne (ERO-ERn) sélectionnée par la référence figurant dans le champ d'adresse.
5. Processeur selon la revendication 4, dans lequel le registre de communication (COR) est également accessible à l'émulateur externe (H) pour accéder aux ressources internes (ERO-ERn) de l'interface de déboguage (OCE).
6. Processeur selon l'une des revendications 1 à 5, dans lequel les ressources internes de l'interface de 15 déboguage (OCE) comprennent un ensemble de registres (ERO-ERn).
7. Processeur selon l'une des revendications 1 à 6, dans lequel les ressources internes de l'interface de 20 déboguage (OCE) comprennent une commande agissant sur le fonctionnement de l'unité de traitement (CPU).
8. Processeur selon l'une des revendications 1 à 7, dans lequel les ressources internes de l'interface de 25 déboguage (OCE) comprennent une commande de surveillance d'un événement particulier survenant dans l'unité de traitement (CPU).
9. Procédé d'accès par une unité de traitement 30 (CPU) d'un processeur (pP) à des ressources internes (ERO-ERn) d'une interface de déboguage (OCE) intégrée au processeur et susceptible d'être connectée à un émulateur externe (H) pour déboguer un programme exécuté par le processeur, les ressources internes étant au moins 35 partiellement accessibles à l'émulateur externe, caractérisé en ce qu'il comprend des étapes réalisées par l'interface de déboguage (OCE) et consistant à : û sélectionner une ressource interne (ERO-ERn) de l'interface de déboguage, en fonction d'une référence (ADR) fournie par l'unité de traitement (CPU), et û transférer une donnée entre la ressource interne sélectionnée et un champ donnée (D) accessible par l'unité de traitement.
10. Procédé selon la revendication 9, comprenant des étapes de sélection d'un mode de lecture, et de chargement dans le champ de donnée (D), d'une donnée contenue dans la ressource interne (ERO-ERn) sélectionnée.
11. Procédé selon la revendication 9 ou 10, comprenant des étapes de sélection d'un mode d'écriture, et de chargement dans la ressource interne (ERO-ERn) sélectionnée, d'une donnée contenue dans le champ donnée (D).
12. Procédé selon l'une des revendications 9 à 11, comprenant une étape de sélection d'un mode d'accès, en écriture ou en lecture, de la ressource interne (ERO-ERn) sélectionnée par le champ d'adresse (ADR), en fonction d'une commande (CM) fournie par l'unité de traitement (CPU) à l'interface de déboguage (OCE).
13. Procédé selon l'une des revendications 9 à 12, dans lequel l'unité de traitement (CPU) écrit dans un registre de communication (COR) de l'interface de déboguage (OCE), le registre de communication comprenant le champ de donnée (D), un champ d'adresse (ADR) pour recevoir la référence de la ressource interne à sélectionner, et un champ de commande (CM) pour recevoir une commande spécifiant un mode d'accès, en écriture ou en lecture, à la ressource interne (ERO-ERn) sélectionnée par la référence figurant dans le champ d'adresse.
14. Procédé selon la revendication 13, dans lequel l'émulateur externe (H) accède aux registres internes (ERO-ERn) de l'interface de déboguage (0CE) par l'intermédiaire du registre de communication (COR).
15. Procédé selon l'une des revendications 9 à 14, dans lequel les ressources internes de l'interface de déboguage (0CE) comprennent un ensemble de registres (ERO-ERn).
16. Procédé selon l'une des revendications 9 à 15, dans lequel les ressources internes de l'interface de déboguage (O0E) comprennent une commande agissant sur le fonctionnement de l'unité de traitement (CPU). 20
17. Procédé selon l'une des revendications 9 à 16, dans lequel les ressources internes de l'interface de déboguage (OCE) comprennent une commande de surveillance d'un événement particulier survenant dans l'unité de 25 traitement (CPU). 10 15
FR0601091A 2006-02-08 2006-02-08 Processeur comportant une interface de debogage integree controlee par l'unite de traitement du processeur Expired - Fee Related FR2897174B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0601091A FR2897174B1 (fr) 2006-02-08 2006-02-08 Processeur comportant une interface de debogage integree controlee par l'unite de traitement du processeur
US11/671,661 US7689864B2 (en) 2006-02-08 2007-02-06 Processor comprising an integrated debugging interface controlled by the processing unit of the processor

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0601091A FR2897174B1 (fr) 2006-02-08 2006-02-08 Processeur comportant une interface de debogage integree controlee par l'unite de traitement du processeur

Publications (2)

Publication Number Publication Date
FR2897174A1 true FR2897174A1 (fr) 2007-08-10
FR2897174B1 FR2897174B1 (fr) 2008-04-18

Family

ID=37019049

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0601091A Expired - Fee Related FR2897174B1 (fr) 2006-02-08 2006-02-08 Processeur comportant une interface de debogage integree controlee par l'unite de traitement du processeur

Country Status (2)

Country Link
US (1) US7689864B2 (fr)
FR (1) FR2897174B1 (fr)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150019775A1 (en) * 2013-03-14 2015-01-15 Microchip Technology Incorporated Single Wire Programming and Debugging Interface
CN117056028B (zh) * 2023-09-25 2024-01-09 之江实验室 机器人仿真平台搭建方法、装置、计算机设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1091298A2 (fr) * 1999-10-01 2001-04-11 STMicroelectronics, Inc. Interface de transfert d'information de débogage

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5530804A (en) * 1994-05-16 1996-06-25 Motorola, Inc. Superscalar processor with plural pipelined execution units each unit selectively having both normal and debug modes
US6668339B1 (en) * 1999-07-28 2003-12-23 Mitsubishi Denki Kabushiki Kaisha Microprocessor having a debug interruption function
US6367032B1 (en) * 1999-10-21 2002-04-02 Sony Corporation Of Japan Method and system for debugging a microprocessor core

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1091298A2 (fr) * 1999-10-01 2001-04-11 STMicroelectronics, Inc. Interface de transfert d'information de débogage

Also Published As

Publication number Publication date
US20070220331A1 (en) 2007-09-20
FR2897174B1 (fr) 2008-04-18
US7689864B2 (en) 2010-03-30

Similar Documents

Publication Publication Date Title
US20150347263A1 (en) Function-level dynamic instrumentation
TW201133008A (en) On-die logic analyzer for semiconductor die
US20130074050A1 (en) Selective trace facility
US10489543B1 (en) Productivity platform using system-on-chip with programmable circuitry
FR2770659A1 (fr) Processeur de traitement perfectionne
EP1830264A1 (fr) Procédé et dispositif de sauvegarde et de restauration d'une manière interruptible d'un ensemble de registres d'un microprocesseur
FR2814555A1 (fr) Systeme et procede de gestion memoire de coherence de donnees et reseau multiprocesseur associe
EP1310847B1 (fr) Système de téléchargement et de télémaintenance d'une carte électronique
JP2006507586A (ja) 埋め込みシステムの解析装置及び方法
FR3002053A1 (fr) Tests sensibles de validation
FR2897174A1 (fr) Processeur comportant une interface de debogage integree controlee par l'unite de traitement du processeur
FR2575564A1 (fr) Microprocesseur a architecture facilitant la liaison avec des dispositifs peripheriques
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
CN113886264A (zh) 分布式数据库的内嵌方法、装置、设备及存储介质
FR2558613A1 (fr) Appareil de traitement de donnees du type pipeline
FR3089322A1 (fr) Gestion des restrictions d’accès au sein d’un système sur puce
FR2873466A1 (fr) Procede de programmation d'un controleur de dma dans un systeme sur puce et systeme sur puce associe
EP0809255B1 (fr) Cellule pour registre à décalage
FR3066606A1 (fr) Appareil de test et procede de test d'un circuit integre
US20210049028A1 (en) Model specific register (msr) instrumentation
EP1341087B1 (fr) Procédé et système de gestion d'un journal personnel d'évènements
EP0469507A1 (fr) Circuit intégré comprenant une cellule standard, une cellule d'application et une cellule de test
FR2938943A1 (fr) Systeme multiprocesseur.
EP0426531B1 (fr) Système de test d'un microprocesseur
FR2785405A1 (fr) Sequenceur d'actions synchrones dans un systeme a processeur, et circuit integre comportant un tel sequenceur

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20131031