FR2822561A1 - Procede d'emulation d'un microprocesseur enfoui - Google Patents

Procede d'emulation d'un microprocesseur enfoui Download PDF

Info

Publication number
FR2822561A1
FR2822561A1 FR0103853A FR0103853A FR2822561A1 FR 2822561 A1 FR2822561 A1 FR 2822561A1 FR 0103853 A FR0103853 A FR 0103853A FR 0103853 A FR0103853 A FR 0103853A FR 2822561 A1 FR2822561 A1 FR 2822561A1
Authority
FR
France
Prior art keywords
microprocessor
circuit
peripherals
bus
core
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
FR0103853A
Other languages
English (en)
Other versions
FR2822561B1 (fr
Inventor
Gauthier Barret
Jean Francois Pollet
Francis Lamotte
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.)
Dolphin Integration SA
Original Assignee
Dolphin Integration 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 Dolphin Integration SA filed Critical Dolphin Integration SA
Priority to FR0103853A priority Critical patent/FR2822561B1/fr
Priority to US10/103,349 priority patent/US7451074B2/en
Publication of FR2822561A1 publication Critical patent/FR2822561A1/fr
Application granted granted Critical
Publication of FR2822561B1 publication Critical patent/FR2822561B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/22Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
    • G06F11/26Functional testing
    • G06F11/261Functional testing by simulating additional hardware, e.g. fault simulation

Landscapes

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

Abstract

L'invention concerne un circuit et un procédé d'émulation ou de test fonctionnel d'un premier microprocesseur dans son environnement fonctionnel comprenant un ou plusieurs périphériques (32) et au moins un bus interne (36) de communication entre ce premier microprocesseur et ses périphériques, à partir d'un deuxième microprocesseur (10), consistant à désactiver le premier microprocesseur, à utiliser le ou les bus de communication pour communiquer entre les deux microprocesseurs et le ou les périphériques, et à activer le deuxième microprocesseur.

Description

<Desc/Clms Page number 1>
Figure img00010001
PROCÉDÉ D'ÉMULATION D'UN MICROPROCESSEUR ENFOUI La présente invention concerne le domaine des circuits comprenant un microprocesseur associé à d'autres fonctions, périphériques ou non. Il s'agit, par exemple, de microcontrôleurs ou autres circuits plus complexes comprenant un microprocesseur, des périphériques et/ou tout autre dispositif de traitement, par exemple, un autre microprocesseur, un circuit de traitement numérique du signal (DSP), etc.
L'invention concerne plus particulièrement les systèmes bi-processeurs où l'un des processeurs doit fournir momentanément ses périphériques à un autre processeur. Il s'agit, par exemple, de l'émulation d'un microprocesseur enfoui, c'est-à-dire d'un processeur intégré dans un circuit dont il ne représente qu'une partie et ayant des entrées-sorties qui ne sont pas accessibles depuis l'extérieur du circuit intégré. Lors de l'émulation, les périphériques du processeur enfoui sont sous contrôle d'un microprocesseur externe reproduisant, physiquement ou virtuellement, le microprocesseur enfoui. On définit comme périphérique tout bloc dont le fonctionnement est contrôlé par le microprocesseur, comme des timers, les ports d'entrée/sortie, des mémoires, etc.
L'invention sera décrite par la suite en relation avec un exemple d'application à l'émulation d'un microprocesseur enfoui. Toutefois, elle s'applique plus généralement à tout
<Desc/Clms Page number 2>
système ayant recours à deux processeurs et requérant une prise de contrôle d'un des processeurs sur des périphériques de l'autre processeur, ainsi qu'au test des fonctionnalités de périphériques d'un microprocesseur enfoui.
L'émulation consiste à contrôler le déroulement d'un programme en modifiant le moins possible son environnement. Le plus souvent, les microprocesseurs enfouis doivent être émulés dans leurs conditions de fonctionnement sur une carte d'application. En d'autres termes, ils sont associés à d'autres circuits, périphériques ou non, constitués par exemple de circuits intégrés avec lesquels ils sont montés sur une plaquette de circuit imprimé. La présente invention s'applique plus particulièrement aux émulateurs pour lesquels le circuit à émuler reste connecté sur la carte d'application.
Une première solution d'émulation connue consiste à remplacer le circuit intégrant le microprocesseur de la carte d'application par une sonde, connectée à une carte d'interface intermédiaire sur laquelle est monté un microprocesseur spécifique reproduisant les caractéristiques du microprocesseur enfoui. Ce microprocesseur spécifique, connu sous le nom de "bond-out chip", rend accessible, depuis des bornes d'entréesortie du circuit intégré, les connexions du bus interne du microprocesseur enfoui. Avec une telle solution, le programme exécuté est stocké dans une mémoire de l'émulateur au lieu d'être stocké dans une mémoire intégrée avec le microprocesseur enfoui.
Le contrôle du bus d'accès à ces mémoires permet d'obtenir des fonctionnalités performantes d'émulation telles que l'enregistrement de la trace, l'analyse de performances ou encore l'analyse de la couverture de code. L'inconvénient majeur de cette solution est que toutes les fonctions du circuit remplacé doivent être implémentées dans l'émulateur. Cette solution doit donc être adaptée à chaque application du circuit. Un autre inconvénient d'une telle solution est qu'elle ne laisse pas le circuit intégré à émuler dans ses conditions réelles de fonction-
<Desc/Clms Page number 3>
Figure img00030001

nement. En particulier, le circuit testé ne correspond pas au circuit réel.
Une deuxième solution connue, dérivée de la première, e consiste, pour réduire le nombre de bornes du circuit intégré contenant le microprocesseur à émuler, à utiliser des multiplexeurs pour partager ses bornes d'entrée-sortie. Un inconvénient de cette solution est que cela ne permet pas de tester le circuit dans des conditions réelles de fonctionnement.
Comme la première solution, cette solution n'est pas versatile et doit être adaptée à chaque application du circuit.
Une troisième solution, connue sous le nom BDM ou Nexus, consiste à laisser l'exécution du programme à la charge du microprocesseur enfoui et à surveiller son fonctionnement par l'intermédiaire d'une liaison vers un dispositif externe. Une telle solution d'émulation n'utilisant que des ressources internes au circuit, offre peu de fonctionnalités performantes d'émulation telles que celles inventoriées pour la première solution.
La présente invention vise à proposer une nouvelle solution à l'émulation d'un microprocesseur enfoui ou au test fonctionnel de ses périphériques. D'une part, elle vise à permettre la mise au point du programme avec le circuit dans son application, avec toute la flexibilité souhaitée. D'autre part, elle vise à permettre le test des périphériques dans le circuit, indépendamment du coeur.
L'invention vise également à différencier les périphériques du coeur du microprocesseur enfoui, pour que seul le rôle du microprocesseur, et de tout ou partie des mémoires, soit joué par l'extérieur.
L'invention vise également à permettre l'émulation alors que le microprocesseur enfoui est dans son environnement applicatif, c'est-à-dire que le circuit intégré le comportant est connecté avec d'autres circuits, périphériques ou non, sur une carte d'application.
<Desc/Clms Page number 4>
L'invention vise également à minimiser le nombre de bornes du circuit intégrant le microprocesseur enfoui, en permettant une communication de type série entre le circuit et l'émulateur. On entend par liaison série, une liaison sur un nombre réduit de fils par rapport au nombre de bits véhiculés, quelle que soit l'importance de la réduction.
Plus généralement, la présente invention vise à proposer un procédé et un système permettant à un microprocesseur, en place dans son environnement fonctionnel, de donner accès à son bus de communication avec ses périphériques à un autre processeur physique ou virtuel.
Pour atteindre ces objets, la présente invention prévoit un procédé d'émulation ou de test fonctionnel d'un premier microprocesseur dans son environnement fonctionnel comprenant un ou plusieurs périphériques et au moins un bus interne de communication entre ce premier microprocesseur et ses périphériques, à partir d'un deuxième microprocesseur, ce procédé consistant : à désactiver le premier microprocesseur ; à utiliser le ou les bus de communication pour communiquer entre les deux microprocesseurs et le ou les périphériques ; et à activer le deuxième microprocesseur.
Selon un mode de réalisation de la présente invention, le premier microprocesseur communique avec le deuxième microprocesseur par une liaison série.
Selon un mode de réalisation de la présente invention, le premier microprocesseur est implanté sur une carte d'application.
Selon un mode de réalisation de la présente invention, des interruptions émanant des périphériques, lorsqu'elles existent, sont traitées par le deuxième microprocesseur.
Selon un mode de réalisation de la présente invention, le deuxième microprocesseur est un microprocesseur physique.
<Desc/Clms Page number 5>
Selon un mode de réalisation de la présente invention, le deuxième microprocesseur est réalisé par un modèle de simu- lation.
La présente invention prévoit également un circuit intégrant un premier microprocesseur, des périphériques, au moins un premier bus de communication entre ce premier microprocesseur et ses périphériques, et des moyens pour désactiver un coeur du premier microprocesseur et pour rendre accessible le premier bus depuis l'extérieur du circuit.
Selon un mode de réalisation de la présente invention, le coeur du premier microprocesseur intègre au moins un premier multiplexeur pour commander le ou les premiers bus sélectionnant soit un deuxième bus provenant de l'intérieur du coeur, soit un troisième bus provenant d'un circuit d'interface avec l'extérieur du circuit.
Selon un mode de réalisation de la présente invention, le circuit comporte au moins un aiguilleur de distribution de l'état des registres d'interruptions vers le coeur du premier microprocesseur ou le circuit d'interface, et un deuxième multiplexeur de sélection des signaux de contrôle des interruptions entre le coeur du premier microprocesseur et le circuit d'interface.
Selon un mode de réalisation de la présente invention, le circuit comporte une borne d'application d'un signal de sélection entre un mode de fonctionnement normal et un mode d'émulation.
Selon un mode de réalisation de la présente invention, le premier bus est un bus de registres de fonctions spéciales.
La présente invention prévoit en outre un émulateur d'un premier microprocesseur, comportant un coeur de microprocesseur fonctionnellement équivalent à celui du premier microprocesseur et des moyens pour utiliser les périphériques et bus du premier microprocesseur dans une phase d'émulation.
<Desc/Clms Page number 6>
En comparant certaines caractéristiques de l'invention par rapport aux trois solutions de l'art antérieur citées plus haut, on peut considérer que : le circuit à émuler reste en place lors de l'émulation dans la troisième solution connue, ainsi que dans l'invention ; le circuit que l'on utilise lors de l'émulation est le même que celui de l'application finale dans la troisième solution connue, ainsi que dans l'invention ; et les mémoires et fonctions d'émulation sont hors du circuit dans les première et deuxième solutions connues ainsi que potentiellement dans l'invention, ce qui confère une grande flexibilité à l'émulateur.
L'invention est la seule parmi les solutions décrites à regrouper l'ensemble des caractéristiques et avantages ci-dessus décrits, ainsi que d'autres.
Ces objets, caractéristiques et avantages, ainsi que d'autres de la présente invention seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non-limitatif en relation avec les figures jointes parmi lesquelles : la figure 1 représente, de façon très schématique et sous forme de blocs, un mode de réalisation selon l'invention d'un circuit intégrant un microprocesseur enfoui, monté sur une carte d'application et associé à un émulateur ; la figure 2 représente, de façon plus détaillée, un mode de réalisation d'un émulateur selon l'invention ; la figure 3 représente, de façon plus détaillée, un mode de réalisation selon l'invention d'un circuit intégrant un microprocesseur enfoui, monté sur une carte d'application 'et la figure 4 représente, partiellement et de façon très schématique, les éléments de deux microprocesseurs qui participent à la mise en oeuvre d'un mode de réalisation de la présente invention.
Les mêmes éléments ont été désignés par les mêmes références aux différentes figures. Pour des raisons de clarté, seuls
<Desc/Clms Page number 7>
les éléments du système et les étapes de procédé qui sont nécessaires à la compréhension de l'invention ont été représentés aux figures et seront décrits par la suite. En particulier, les détails constitutifs des circuits périphériques n'ont pas été détaillés et ne font pas l'objet de la présente invention. De même, les structures internes des microprocesseurs n'ont été illustrées que pour les éléments explicites pour la mise en oeuvre de l'invention. En outre, les étapes d'émulation et de test fonctionnel proprement dites sont classiques et ne font pas l'objet de l'invention.
L'invention se base sur le fait que les périphériques du microprocesseur enfoui, côté carte dite d'application, communiquent avec le coeur de ce microprocesseur par l'intermédiaire d'au moins un bus. Pour cette raison, le coeur du processeur côté carte d'application est, selon l'invention, modifié pour contenir certaines logiques d'émulation. Ceci pour permettre à un autre microprocesseur de communiquer avec ce ou ces bus d'accès aux périphériques du microprocesseur enfoui, et le cas échéant avec son contrôleur d'interruptions, à travers une interface.
Côté émulateur, le coeur du microprocesseur enfoui est reproduit, physiquement ou virtuellement. Quand on choisit le mode d'émulation, l'émulateur est connecté à la carte d'application au moyen d'une interface série ou parallèle. Le microprocesseur à émuler du circuit intégré est fonctionnellement désactivé. Toutes les instructions sont traitées par le coeur de processeur côté émulateur, la communication entre l'émulateur et la carte d'application se limite aux accès aux périphériques.
Les mémoires (programme et de données) qui sont utilisées lors de l'émulation sont, de préférence, déportées à l'extérieur du circuit intégré, c'est-à-dire dans l'émulateur. Une logique permettant de déporter ces mémoires est donc présente dans le circuit côté carte d'application. En variante, l'émulateur exploite tout ou partie des mémoires intégrées avec le microprocesseur enfoui ou présentes sur la carte d'application.
<Desc/Clms Page number 8>
Une caractéristique de l'invention est que le microprocesseur enfoui est dans son environnement fonctionnel. Au sens de la présente invention, cela signifie que le microprocesseur enfoui est monté sur la carte d'application. Par extension, le microprocesseur peut être monté sur une carte d'essai reproduisant les périphériques de l'application intégrés ou non avec le microprocesseur, ou être intégré avec tous ses périphériques (cas d'une carte à puce, par exemple).
L'invention sera décrite par la suite en relation avec un microprocesseur enfoui monté sur une carte d'application. Toutefois, elle s'applique plus généralement à l'émulation d'un microprocesseur dans son environnement fonctionnel.
La figure 1 représente, de façon très schématique et sous forme de blocs, un mode de réalisation d'un système d'émulation d'un circuit 3 intégrant un microprocesseur enfoui et divers périphériques selon l'invention. L'émulateur 1 est symbolisé par un bloc comprenant un microprocesseur 10 (, uP2) et des circuits annexes 11 (OIC). Le microprocesseur 10 comporte, de façon classique, un coeur 101 (PC2) et une interface 102 (EMU) reliant un bus 103 interne au microprocesseur 10 à une liaison 2 entre 1'émulateur et le circuit à émuler. L'émulateur a été représenté de façon très simplifiée. Parmi les circuits 11, on trouve généralement des mémoires, et autres dispositifs de commande et d'exploitation.
Le circuit 3 est représenté monté sur une plaquette ou carte 5 de circuit imprimé correspondant à la carte d'application, c'est-à-dire dans son environnant fonctionnel. Le circuit intégré 3 est donc associé à des périphériques 51 (BLP) sur la carte d'application. Il peut s'agir, par exemple, de mémoires, d'autres microprocesseurs, de circuits de mesure, etc. En variante, la carte d'application est une carte d'essai (prototype).
Le circuit 3 comprend, de façon classique, un microprocesseur enfoui dont seul le coeur 31 (jUPC1) a été représenté en figure 1, et divers périphériques 32 intégrés (ICLP). Parmi ces
<Desc/Clms Page number 9>
Figure img00090001

périphériques, on trouve des mémoires, des circuits d'entréesortie, etc. Selon l'invention, le circuit 3 comprend également un circuit 33 d'interface (EMU) reliant un bus 36, interne au microprocesseur enfoui, à la liaison 2. Le bus 36 communique directement avec le coeur 31 du microprocesseur enfoui.
Une caractéristique de la présente invention est que, de préférence, seul le coeur du microprocesseur enfoui et, le cas échéant tout ou partie des mémoires qui lui sont associées, sont émulés par l'émulateur 1. Le reste des constituants du circuit intégré (dont les périphériques qu'il intègre) ainsi que les périphériques de la carte d'application ne sont pas émulés et restent donc en situation réelle de fonctionnement. Au sens de l'invention, on entend par émuler, le fait de déporter un élément à l'extérieur de la carte d'application tout en maintenant à cet élément un fonctionnement identique. En figure 1, le circuit 3 n'a pas été détaillé. On se référera à la description de la figure 3 pour plus de détails d'un exemple particulier.
La figure 2 représente un exemple d'émulateur 1 selon l'invention. Tous les constituants de cet émulateur n'ont pas été représentés et son microprocesseur a été symbolisé uniquement par son coeur 101. Parmi les autres circuits (11, figure 1) symbolisés sous forme de blocs, l'émulateur comporte généralement une mémoire d'émulation de type mémoire vive (RAEM, 112) et des circuits logiques 113,114 et 115. Par exemple, un circuit 113 (TML, Trace Module Logic) permet à l'émulateur d'afficher en temps réel ce qui se passe dans le microprocesseur enfoui (mode TRACE), un circuit 114 (CCP, Code Coverage, Profiler) analyse le taux de couverture du code programme et un circuit 115 (SEF, Specific Emulation Functions) contient d'autres fonctions spécifiques à l'émulation. L'émulateur 1 communique avec un système de commande (par exemple, un micro-ordinateur PC) par un bus 12 relié, côté émulateur 1, à un contrôleur local (LOC-CONT) 13.
L'émulateur 1 inclut un circuit 102 d'interface (IF), de même que la carte d'application 5 inclut un circuit d'interface 33.
<Desc/Clms Page number 10>
La figure 3 détaille le côté carte d'application. La liaison 2 connecte les circuits d'interface 33 et 102 selon l'invention. En figure 3, le circuit 3 (jus) a été représenté de façon plus détaillée qu'en figure 1. On y retrouve les circuits périphériques (ICLP) 32 intégrés. Le coeur 31 (PC1) du microprocesseur enfoui a été représenté inclus dans un bloc 34 symbolisant ce microprocesseur (gPl). Le bloc 34 comporte des circuits d'entrée-sortie 341 (I/O) ainsi que, si besoin, des circuits périphériques 342 (FLP).
Du point de vue de l'émulation, les périphériques 342 sont traités comme les périphériques 32 et 51. Ainsi, l'invention permet de ne pas faire de distinction entre les différents périphériques accessibles par le bus, ce qui respecte les conditions réelles de fonctionnement. A l'intérieur du coeur 31, on s'est contenté de représenter un contrôleur d'interruptions 311 (INTER CTRS) et un circuit 312 de gestion du bus de communication entre le coeur 31 et les périphériques. Par exemple, il s'agit du bus de registres de fonctions spéciales (SFR CTRL) d'un microprocesseur de type 8051. Dans ce mode de réalisation de l'invention, le bus communique avec le contrôleur 311 et, à l'extérieur du coeur, avec le circuit d'interface 33. Le bus 36 relie le circuit 312 aux différents périphériques 32 et 342 de façon bidirectionnelle. Un bloc 35 illustrant une mémoire programme et/ou de données (PG/D MEM) a été représenté à cheval sur les lignes séparatrices du microprocesseur 34 et du circuit 3. Ceci pour faire ressortir que cette mémoire peut constituer indifféremment un périphérique du niveau de la carte 5, un périphérique du niveau du circuit 3, ou encore un périphérique du niveau du microprocesseur 34.
Le microprocesseur à émuler est utilisé dans son environnement en exploitant les périphériques 51 présents sur la carte d'application 5 et les périphériques 32 et 342 intégrés.
Dans l'exemple représenté de mise en oeuvre de l'inven- tion, le coeur du microprocesseur enfoui contient toute la logique nécessaire à l'exécution des instructions. Le coeur 31
<Desc/Clms Page number 11>
peut également contenir le contrôleur d'interruptions capable de gérer des registres et des interruptions spécifiques à la mise en oeuvre de l'invention.
Pour un fonctionnement en émulation, le coeur 101 de l'émulateur exécute le programme, en utilisant de préférence la mémoire programme (111) et la mémoire de données (112) de l'émulateur. Il communique avec la carte d'application 5 au moyen de l'interface d'émulation dédiée. Les périphériques (y compris les ports d'entrée-sortie 341) sont en fonctionnement normal et sous contrôle du microprocesseur 101 de l'émulateur. Les interruptions sont gérées par le contrôleur d'interruptions 311 de la carte d'application, puis envoyées vers le coeur de microprocesseur 101 côté émulateur. Certaines interruptions peuvent, par exception, être gérées directement par l'émulateur. Il s'agira, par exemple, des interruptions logicielles.
Un avantage de l'invention est que seul le coeur du microprocesseur enfoui et, si besoin tout ou partie des mémoires auxquelles il est associé, sont remplacés par l'émulateur. Tous ses périphériques, qu'ils soient intégrés ou présents sur la carte d'application, sont actifs pendant l'émulation (ou pendant leur test fonctionnel). Les périphériques restent dans l'environnement fonctionnel, et n'ont pas besoin d'être modélisés dans l'émulateur.
Parmi les autres avantages de l'invention, on notera : une possibilité de test en condition réelle de fonctionnement en vue du diagnostic in-situ ; une facilité de mise à jour de l'émulateur si celui-ci est réalisé sous forme programmable (matérielle ou logicielle). Chaque nouvelle mise à jour du coeur de processeur peut être immédiatement chargée dans celui de l'émulateur et la mise à jour est effectuée sans changer physiquement aucun composant. Cette différence est importante par rapport aux systèmes d'émulation dans lesquels toutes les fonctions d'émulation sont exécutées par le processeur enfoui ;
<Desc/Clms Page number 12>
l'utilisation d'un même émulateur pour différents circuits intégrés contenant le même microprocesseur enfoui, même si d'autres circuits ou processeurs sont intégrés avec ou sont montés sur la carte d'application ; et l'économie d'une réalisation complexe de périphériques côté émulateur.
La mise en oeuvre de l'invention requiert quelques bornes supplémentaires sur le circuit intégrant le microprocesseur enfoui. Selon un mode de réalisation préféré de l'invention, la liaison entre l'émulateur et la carte d'application est une liaison de type série. La mise en série est effectuée par les circuits d'interface 102 et 33. Un avantage d'une liaison série est que l'on économise des bornes sur le circuit intégré.
L'invention requiert, outre un accès au bus de données, quelques bits de commande (par exemple, un signal d'interruption, un signal de validation, un signal de commande de lecture-écriture et un signal d'horloge). Par exemple, cinq bornes suffisent pour une interface série de type JTAG, voir moins pour une interface série élémentaire comprenant un signal de données bidirectionnel et un signal d'horloge. De plus, ces bornes peuvent être déjà disponibles dans le circuit intégré et être rendues accessibles par multiplexage. Une différence fonctionnelle entre une interface série et une interface parallèle est qu'un fonctionnement en temps réel n'est pas toujours permis au moyen d'une interface série. Toutefois, dans la plupart des applications, les accès aux périphériques interviennent après l'initialisation pour programmer les registres de commande et à la suite d'interruptions. Par la suite, le nombre d'accès à ces périphériques est relativement faible et est le plus souvent acceptable par un utilisateur n'ayant pas d'accès en temps réel.
Toutefois, dans des applications nécessitant un grand nombre d'interruptions, on pourra augmenter le débit de transfert de plusieurs façons, par exemple, en multipliant les signaux de données ou en effectuant des transferts à haute fréquence de manière asynchrone par rapport au microprocesseur, tout en
<Desc/Clms Page number 13>
conservant, de préférence, l'objectif de minimiser le nombre de bornes.
La figure 4 illustre un exemple de modification structurelle d'un microprocesseur enfoui et d'un microprocesseur d'émulateur pour la mise en oeuvre de l'invention.
Dans l'exemple de la figure 4, le circuit d'interface propre à l'invention est symbolisé par un bloc 63 (I/F M) constituant un circuit maître en mode d'émulation. Le circuit 63 reçoit le bus 61 issu de bornes 62 du coeur 101 et des signaux 64 provenant également du coeur 101 et servant au contrôle du traitement des interruptions, notamment pour initialiser des lectures et des écritures dans le contrôleur d'interruptions du microprocesseur sur la carte d'application. Le circuit 63 effectue ces lectures et écritures et délivre, à destination du coeur 101, sur une liaison 65, le résultat de ces opérations.
Côté carte d'application (AB), on a représenté en figure 4 uniquement le microprocesseur 34 (Pl) et les constituants internes ajoutés par l'invention. La structure du coeur du microprocesseur 31 est similaire à celle du microprocesseur 101. Un multiplexeur 70, sélectionnant le contrôle du bus d'accès aux périphériques, est commandé par un signal indicateur du mode de fonctionnement MNE entre le mode normal et le mode d'émulation. Une première entrée du multiplexeur 70, dédiée au mode normal, reçoit les signaux classiques du bus 71 du coeur de microprocesseur pour les délivrer sur des bornes 72 par un bus interne 71. En sortie des bornes 72, le bus 71 se poursuit, sous la forme du bus 36, jusqu'à des bornes 80 du microprocesseur 34 à destination des registres externes et, à l'intérieur du microprocesseur 34, à destination des périphériques intégrés comme, par exemple, des séquenceurs et les ports d'entrée-sortie. Une deuxième entrée du multiplexeur 70 est reliée à des bornes 73 d'entrée du coeur 31 connectées à un circuit 74 d'interface selon l'invention. Ce circuit, symbolisé par un bloc 74 (I/F S), constitue un circuit d'interface esclave en mode d'émulation. Une sortie 75 du coeur 31 véhiculant les signaux de contrôle d'inter-
<Desc/Clms Page number 14>
ruptions est, selon l'invention, reliée à une première entrée d'un multiplexeur 76. Une deuxième entrée du multiplexeur 76 reçoit des signaux équivalents depuis l'interface 74 pour le mode émulation. Le multiplexeur 76 est commandé par le signal MNE. De façon similaire, les signaux provenant du contrôleur d'interruptions 311 indiquant l'état des interruptions (registres de statuts) traversent un aiguilleur 77 de distribution de l'état des registres d'interruptions. Une première sortie de l'aiguilleur 77 est reliée au coeur 31 et une deuxième sortie envoie les signaux vers l'interface 74, qui les mettra en forme avant envoi vers l'émulateur. L'aiguilleur 77 est également commandé par le signal MNE.
Le reste des constituants des microprocesseurs est classique. De plus, la réalisation pratique nécessaire à la mise en oeuvre de l'invention se déduit des indications fonctionnelles décrites ci-dessus selon les fonctions intégrées dans le microprocesseur enfoui. En particulier, bien que l'on n'ait pas toujours fait la distinction entre les liaisons multifilaires (bus) et unifilaires, cette distinction est à la portée de l'homme du métier à partir des indications fonctionnelles données sur ces liaisons. Par ailleurs, différents séquencements sont bien entendu possibles et on pourra être amené à modifier le nombre et le rôle des multiplexers de sélection et aiguilleurs entre les modes de fonctionnement normal et d'émulation.
Bien entendu, l'invention est susceptible de diverses variantes et modifications qui apparaîtront à l'homme de l'art. En particulier, bien que l'émulateur ait été décrit en relation avec un exemple matériel, toutes les fonctions d'émulation pourront être regroupées de façon logicielle, le coeur de microprocesseur reproduit étant alors un coeur virtuel (un modèle de simulation).
De plus, le coeur de microprocesseur enfoui doit pouvoir être désactivé et doit donc comprendre des signaux et/ou instructions nécessaires à cette désactivation. Par exemple, on force un signal spécifique ou un signal de commande de réinitia-
<Desc/Clms Page number 15>
lisation, l'exécution du programme interne au microprocesseur étant alors autorisée à partir du moment où le mode d'émulation n'est pas sélectionné. Le signal spécifique correspond, par exemple, au signal MNE alors accessible depuis une borne du circuit intégrant le microprocesseur enfoui.
En outre, bien que l'on ait fait référence dans la description qui précède à un bus interne 36, il pourra s'agir de plusieurs bus. En se référant à la figure 2, cela revient à dire que le bus 36 est en fait constitué de deux bus (ou plus) reliant le coeur aux périphériques 342,32 ou 51. Par exemple, dans le cas d'un microprocesseur de type 8051, on peut donner accès au bus SFR ainsi qu'à un bus mémoire.
Enfin, dans certains cas, une partie des périphériques pourra être déportée du côté de l'émulateur, par exemple, pour respecter un besoin de fonctionnement en temps réel.

Claims (12)

  1. REVENDICATIONS 1. Procédé d'émulation ou de test fonctionnel d'un pre- mier microprocesseur (34) dans son environnement fonctionnel comprenant un ou plusieurs périphériques (32,342) et au moins un bus interne (36) de communication entre ce premier microprocesseur et ses périphériques, à partir d'un deuxième microprocesseur (10), caractérisé en ce qu'il consiste : à désactiver le premier microprocesseur ; à utiliser le ou les bus de communication (36) pour communiquer entre les deux microprocesseurs et le ou les périphériques ; et à activer le deuxième microprocesseur.
  2. 2. Procédé selon la revendication 1, caractérisé en ce que le premier microprocesseur (34) communique avec le deuxième microprocesseur (10) par une liaison série (2).
  3. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que le premier microprocesseur (34) est implanté sur une carte d'application (5).
  4. 4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que des interruptions émanant des périphériques (32,342, 51,52), lorsqu'elles existent, sont traitées par le deuxième microprocesseur (10).
  5. 5. Procédé selon l'une quelconque des revendications 1 à 4, caractérisé en ce que le deuxième microprocesseur (10) est un microprocesseur physique.
  6. 6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que le deuxième microprocesseur (10) est réalisé par un modèle de simulation.
  7. 7. Circuit (3) intégrant un premier microprocesseur (34), des périphériques (32,342) et au moins un premier bus (36) de communication entre ce premier microprocesseur et ses périphériques, caractérisé en ce qu'il comporte en outre des moyens pour désactiver un coeur (31) du premier microprocesseur et pour rendre accessible le premier bus depuis l'extérieur du circuit.
    <Desc/Clms Page number 17>
  8. 8. Circuit selon la revendication 7, caractérisé en ce que le coeur (31) du premier microprocesseur (34) intègre au moins un premier multiplexeur (70) pour commander le ou les premiers bus (36), sélectionnant soit un deuxième bus provenant de l'intérieur du coeur, soit un troisième bus provenant d'un circuit d'interface (74) avec l'extérieur du circuit.
  9. 9. Circuit selon la revendication 8, caractérisé en ce qu'il comporte au moins un aiguilleur (77) de distribution de l'état des registres d'interruptions vers le coeur (31) du premier microprocesseur ou le circuit d'interface (74), et un deuxième multiplexeur (76) de sélection des signaux de contrôle des interruptions entre le coeur du premier microprocesseur et le circuit d'interface.
  10. 10. Circuit selon l'une quelconque des revendications 7 à 9, caractérisé en ce qu'il comporte une borne d'application d'un signal de sélection (MNE) entre un mode de fonctionnement normal et un mode d'émulation.
  11. 11. Circuit selon l'une quelconque des revendications 7 à 10, caractérisé en ce que le premier bus (36) est un bus de registres de fonctions spéciales (SFR).
  12. 12. Emulateur d'un premier microprocesseur (34), caractérisé en ce qu'il comporte un coeur (101) de microprocesseur fonctionnellement équivalent à celui du premier microprocesseur et des moyens pour utiliser les périphériques et bus du premier microprocesseur dans une phase d'émulation.
FR0103853A 2001-03-21 2001-03-21 Procede d'emulation d'un microprocesseur enfoui Expired - Fee Related FR2822561B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR0103853A FR2822561B1 (fr) 2001-03-21 2001-03-21 Procede d'emulation d'un microprocesseur enfoui
US10/103,349 US7451074B2 (en) 2001-03-21 2002-03-21 Embedded microprocessor emulation method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0103853A FR2822561B1 (fr) 2001-03-21 2001-03-21 Procede d'emulation d'un microprocesseur enfoui

Publications (2)

Publication Number Publication Date
FR2822561A1 true FR2822561A1 (fr) 2002-09-27
FR2822561B1 FR2822561B1 (fr) 2004-01-23

Family

ID=8861412

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0103853A Expired - Fee Related FR2822561B1 (fr) 2001-03-21 2001-03-21 Procede d'emulation d'un microprocesseur enfoui

Country Status (2)

Country Link
US (1) US7451074B2 (fr)
FR (1) FR2822561B1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103204114A (zh) * 2012-01-17 2013-07-17 湖南纽曼数码科技有限公司 一种多系统车载设备及其使用方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB0121990D0 (en) * 2001-09-11 2001-10-31 Beach Solutions Ltd Emulation system & method
US7548842B2 (en) * 2005-06-02 2009-06-16 Eve S.A. Scalable system for simulation and emulation of electronic circuits using asymmetrical evaluation and canvassing instruction processors
US20060277020A1 (en) * 2005-06-02 2006-12-07 Tharas Systems A reconfigurable system for verification of electronic circuits using high-speed serial links to connect asymmetrical evaluation and canvassing instruction processors

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0462328A1 (fr) * 1990-06-18 1991-12-27 ALCATEL BELL Naamloze Vennootschap Dispositif de test pour une puce électronique
EP0957431A1 (fr) * 1998-05-11 1999-11-17 Alcatel Système à processeur et méthode pour tester un système à processeur

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE175043T1 (de) * 1992-03-27 1999-01-15 Siemens Ag Integrierter mikroprozessor
US6546477B1 (en) * 1999-09-20 2003-04-08 Texas Instruments Incorporated Memory management in embedded systems with dynamic object instantiation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0462328A1 (fr) * 1990-06-18 1991-12-27 ALCATEL BELL Naamloze Vennootschap Dispositif de test pour une puce électronique
EP0957431A1 (fr) * 1998-05-11 1999-11-17 Alcatel Système à processeur et méthode pour tester un système à processeur

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
KAISER M R: "DMA EMULATION AND ITS USE IN MICROPROCESSOR SYSTEM TROUBLESHOOTING", WESCON TECHNICAL PAPERS, WESTERN PERIODICALS CO. NORTH HOLLYWOOD, US, vol. 36, 17 November 1992 (1992-11-17), pages 718 - 723, XP000354187 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103204114A (zh) * 2012-01-17 2013-07-17 湖南纽曼数码科技有限公司 一种多系统车载设备及其使用方法
CN103204114B (zh) * 2012-01-17 2015-07-08 湖南纽曼数码科技有限公司 一种多系统车载设备及其使用方法

Also Published As

Publication number Publication date
FR2822561B1 (fr) 2004-01-23
US20020162094A1 (en) 2002-10-31
US7451074B2 (en) 2008-11-11

Similar Documents

Publication Publication Date Title
EP0642683B1 (fr) Procede et plate-formes de test pour le developpement d&#39;un circuit integre
EP1376417B1 (fr) Procédé et système d&#39;émulation d&#39;un circuit sous test associé à un environnement de test
FR2862147A1 (fr) Reconfiguration dynamique de liaisons de type pci-express
FR2609175A1 (fr) Carte a circuits integres et systeme pour verifier le bon fonctionnement de la carte
WO1995016246A1 (fr) Carte a memoire et procede de fonctionnement
FR3103586A1 (fr) Procédé de gestion du fonctionnement d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant
FR2882448A1 (fr) Procede de gestion, de journalisation ou de rejeu du deroulement d&#39;un processus applicatif
FR2969334A1 (fr) Module materiel de securite et procede de debogage d&#39;un tel module
EP0850449B1 (fr) Procede de telechargement rapide de fonctions dans une memoire volatile
EP1310847B1 (fr) Système de téléchargement et de télémaintenance d&#39;une carte électronique
FR2884629A1 (fr) Dispositif d&#39;amelioration de la bande passante pour des circuits munis de controleurs memoires multiples
FR2765706A1 (fr) Lecteur de cartes a puces a protocole de transmission rapide
FR2822561A1 (fr) Procede d&#39;emulation d&#39;un microprocesseur enfoui
FR3103585A1 (fr) Procédé de gestion de la configuration d’accès à des périphériques et à leurs ressources associées d’un système sur puce formant par exemple un microcontrôleur, et système sur puce correspondant
FR2916546A1 (fr) Procede de simulation d&#39;un systeme embarque a bord d&#39;un aeronef pour tester un logiciel de fonctionnement et dispositif pour la mise en oeuvre de ce procede
EP1489517B1 (fr) Protection d&#39;un programme en attente d&#39;exécution dans une mémoire utilisée par un microprocesseur
FR2712998A1 (fr) Simulateur de bus numériques intégré dans un système de test automatique de boîtiers électroniques embarqués sur avion.
FR3066606A1 (fr) Appareil de test et procede de test d&#39;un circuit integre
CN112328269A (zh) ubifs镜像的软件挂载方法、智能设备、电子设备及存储介质
FR3129499A1 (fr) Gestion dynamique d’un pare-feu de mémoire
EP0733975A1 (fr) Interface de sortie de données binaires
FR2513778A1 (fr) Dispositif et procede d&#39;informatique
FR2815738A1 (fr) Controle d&#39;acces a une memoire integree avec un microprocesseur
EP1250645B1 (fr) Systeme de gestion de peripheriques dans un circuit integre
FR2779252A1 (fr) Dispositif d&#39;emulation de composant physique

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20141128