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 PDFInfo
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
- G06F11/3656—Software 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)
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
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)
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)
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)
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 |
-
2006
- 2006-02-08 FR FR0601091A patent/FR2897174B1/fr not_active Expired - Fee Related
-
2007
- 2007-02-06 US US11/671,661 patent/US7689864B2/en active Active
Patent Citations (1)
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 |