FR2990281A1 - Titre non renseigne. - Google Patents

Titre non renseigne. Download PDF

Info

Publication number
FR2990281A1
FR2990281A1 FR1254162A FR1254162A FR2990281A1 FR 2990281 A1 FR2990281 A1 FR 2990281A1 FR 1254162 A FR1254162 A FR 1254162A FR 1254162 A FR1254162 A FR 1254162A FR 2990281 A1 FR2990281 A1 FR 2990281A1
Authority
FR
France
Prior art keywords
hardware
instruction
processing device
target
transaction
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.)
Withdrawn
Application number
FR1254162A
Other languages
English (en)
Inventor
Eric Paire
Nicolas Sauzede
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 Grenoble 2 SAS
Original Assignee
STMicroelectronics Grenoble 2 SAS
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 Grenoble 2 SAS filed Critical STMicroelectronics Grenoble 2 SAS
Priority to FR1254162A priority Critical patent/FR2990281A1/fr
Priority to PCT/EP2013/058688 priority patent/WO2013167394A1/fr
Publication of FR2990281A1 publication Critical patent/FR2990281A1/fr
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/3664Environments for testing or debugging software

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

L'invention concerne un procédé pour simuler, en utilisant un modèle de processeur cible (112) comprenant au moins un dispositif de traitement hôte, l'exécution d'instructions de programme sur un dispositif de traitement cible (102), les instructions de programme comprenant au moins une instruction de transaction impliquant une transaction entre le dispositif de traitement cible (102) et au moins un composant matériel (116) associé à une adresse matérielle, les instructions étant dans le jeu d'instructions dudit au moins un dispositif de traitement hôte du modèle de processeur cible, le procédé comprenant les étapes suivantes : affecter chaque adresse matérielle de ladite au moins une instruction de transaction à une ou plusieurs adresses mémoire piégées ; exécuter les instructions du programme d'ordinateur par lesdits un ou plusieurs dispositifs de traitement hôtes du modèle de processeur cible, un piège logiciel étant généré à chaque exécution de ladite moins une instruction de transaction ; et en réponse à chaque piège logiciel, décoder et mettre en oeuvre l'instruction de transaction provoquant le piège logiciel.

Description

B11583FR - 11-GR2-1160FRO1 1 PLATEFORME MATÉRIELLE Domaine de l'invention La présente invention concerne un procédé de simulation de l'exécution d'instructions de programme par un dispositif de traitement cible, et une plateforme matérielle pour sa 5 réalisation. Exposé de l'art antérieur La plus grande partie du cycle de conception d'un dispositif électronique, comme un téléphone mobile, une tablette informatique ou similaire, est constituée par le développement 10 du logiciel embarqué. En particulier, il est nécessaire de générer puis de tester et de vérifier rigoureusement le logiciel embarqué qui va être exécuté par lesdits un ou plusieurs processeurs du dispositif électronique, et qui va aussi piloter les divers dispositifs matériels périphériques intégrés dans le 15 dispositif. Afin de réduire le délai de mise sur le marché, il est souvent souhaitable que le logiciel embarqué puisse être testé et vérifié avant que la puce matérielle soit disponible. Afin de de réaliser de tels tests, des modèles desdits un ou plusieurs 20 processeurs cibles et des dispositifs périphériques peuvent être mis en oeuvre sous forme de programmes de processeur hôte exécutés par un système hôte, et sont utilisés pour simuler le B11583FR - 11-GR2-1160FRO1 2 fonctionnement des processeurs cibles et des dispositifs périphériques. Dans de nombreux cas, les langages de programmation, en d'autres termes les jeux d'instructions, utilisés par le processeur cible et par le système hôte sont différents. Il a été proposé d'exécuter le logiciel embarqué sur le système hôte en utilisant l'une de deux solutions. Une première solution consiste à fournir le logiciel embarqué dans le jeu d'instructions de son processeur cible.
Pour exécuter ce logiciel embarqué en utilisant un ou plusieurs processeurs du système hôte, chaque instruction est décodée, de sorte qu'elle peut ensuite être simulée par des instructions exécutables par le système hôte. Un tel traitement est réalisé par ce qu'on appelle en général un "simulateur de jeu d'instructions". Toutefois, un problème présenté par une telle solution est qu'elle est de façon inhérente lente, en raison du traitement nécessaire pour chaque instruction. Une deuxième solution consiste à fournir le logiciel embarqué dans le jeu d'instructions du système hôte. Le logiciel embarqué doit être modifié de telle sorte que pour chaque instruction qui accède à un composant matériel, une fonction spécialisée est appelée pour simuler l'exécution de l'instruction. Par exemple, un procédé dans lequel le logiciel est modifié pour utiliser des fonctions d'appel explicites pour réaliser des transactions matérielles dans un environnement de simulation natif est décrit plus en détail dans la demande de brevet US publié sous le numéro US2005/0149897. Cependant, un problème présenté par cette solution est qu'il y a un risque d'erreurs et qu'il est coûteux de modifier le code source du logiciel embarqué de cette manière, et par conséquent, une telle modification n'est pas toujours possible. Ainsi, il existe un problème technique pour disposer d'une solution rapide, peu coûteuse et fiable pour simuler le fonctionnement d'un processeur cible dans une interaction avec 35 un composant d'une plateforme matérielle cible.
B11583FR - 11-GR2-1160FRO1 3 Résumé Un objet des modes de réalisation décrits ici est de résoudre au moins partiellement un ou plusieurs besoins de l'art antérieur.
Selon un aspect, on prévoit un procédé pour simuler, en utilisant un modèle de processeur cible comprenant au moins un dispositif de traitement hôte, l'exécution d'instructions de programme sur un dispositif de traitement cible, les instructions de programme comprenant au moins une instruction de transaction impliquant une transaction entre le dispositif de traitement cible et au moins un composant matériel associé à une adresse matérielle, les instructions étant dans le jeu d'instructions dudit au moins un dispositif de traitement hôte du modèle de processeur cible, le procédé comprenant les étapes suivantes : affecter chaque adresse matérielle de ladite au moins une instruction de transaction à une ou plusieurs adresses mémoire piégées ; exécuter les instructions du programme d'ordinateur par lesdits un ou plusieurs dispositifs de traitement hôtes du modèle de processeur cible, un piège logiciel étant généré à chaque exécution de ladite au moins une instruction de transaction ; et en réponse à chaque piège logiciel, décoder et mettre en oeuvre l'instruction de transaction provoquant le piège logiciel. Selon un mode de réalisation, le procédé comprend en 25 outre, après la mise en oeuvre de l'instruction, la reprise par ledit au moins un dispositif de traitement hôte du modèle de processeur cible, de l'exécution des instructions du programme. Selon un autre mode de réalisation, l'étape de mise en oeuvre de l'instruction de transaction comprend l'appel d'un 30 moniteur modélisant le comportement du dispositif de traitement cible en relation avec une instruction de transaction, dans lequel, lors de l'exécution, le moniteur met en oeuvre l'instruction de transaction. Selon un autre mode de réalisation, l'exécution de 35 l'instruction de transaction par le moniteur implique l'accès au B11583FR - 11-GR2-1160FRO1 4 composant matériel ou à un dispositif matériel mettant en oeuvre le composant matériel. Selon un autre mode de réalisation, en réponse à chaque piège logiciel, un gestionnaire de piège est agencé pour 5 appeler le moniteur. Selon un autre aspect, on prévoit un support lisible par un ordinateur mémorisant un programme d'ordinateur qui, lorsqu'il est exécuté par au moins un dispositif de traitement, entraîne la mise en oeuvre du procédé susmentionné. 10 Selon un autre aspect, on prévoit une plateforme matérielle pour simuler, en utilisant un modèle de processeur cible comprenant au moins un dispositif de traitement hôte, l'exécution d'instructions de programme sur un dispositif de traitement cible, les instructions de programme comprenant au 15 moins une instruction de transaction impliquant une transaction entre le dispositif de traitement cible et au moins un composant matériel associé à une adresse matérielle, les instructions étant dans le jeu d'instruction dudit au moins un dispositif de traitement hôte du modèle de processeur cible, le modèle de 20 processeur cible étant agencé pour : affecter une adresse mémoire piégée à chaque adresse matérielle de ladite au moins une instruction de transaction ; exécuter les instructions de programme par ledit au moins un dispositif de traitement hôte du modèle de processeur cible et générer un piège logiciel à chaque 25 exécution de ladite au moins une instruction de transaction ; et décoder et mettre en oeuvre, en réponse à chaque piège logiciel, l'instruction de transaction provoquant le piège logiciel. Selon un mode de réalisation, la plateforme matérielle comprend en outre un dispositif d'interconnexion couplant le 30 modèle de processeur cible à au moins un dispositif matériel représentant ledit au moins un composant matériel. Selon un autre mode de réalisation, ledit au moins un dispositif matériel comprend un ou plusieurs des éléments suivants : un dispositif matériel mettant en oeuvre le composant 35 matériel ; une interface vers un dispositif externe mettant en 1583FR - 11-GR2-1160FRO1 oeuvre le composant matériel ; une interface vers un dispositif externe émulant le composant matériel ; et une interface vers un dispositif externe simulant le composant matériel. Selon un autre aspect, on prévoit un système de simu5 lation comprenant la plateforme matérielle susmentionnée, un dispositif mémoire mémorisant les instructions de programme et au moins un dispositif représentant le composant matériel. Brève description des dessins Les aspects et avantages susmentionnés de l'invention, et d'autres, apparaîtront clairement à la lecture de la description détaillée suivante de modes de réalisation, donnée à titre d'illustration et non de limitation, en référence aux dessins joints, dans lesquels : la figure lA illustre schématiquement un exemple de 15 dispositif électronique ; la figure 1B illustre schématiquement un système de simulation selon un exemple de réalisation ; la figure 2 illustre schématiquement le système de simulation de la figure 1B plus en détail, selon un exemple de 20 réalisation ; la figure 3 représente une partie d'un espace d'exécution d'un modèle de processeur cible selon un exemple de réalisation ; la figure 4A est un organigramme illustrant des opéra-25 tions dans un procédé selon un exemple de réalisation ; la figure 4B est un organigramme illustrant plus en détail les étapes exécutées pendant une étape de la figure 4A d'exécution de logiciel embarqué selon un exemple de réalisation ; 30 la figure 5 est une ligne de temps représentant l'exécution d'une instruction de transaction selon un exemple de réalisation ; et la figure 6 est un organigramme illustrant plus en détail l'exécution d'une instruction de transaction selon un 35 exemple de réalisation.
B11583FR - 11-GR2-1160FRO1 6 Description détaillée Dans la description suivante, seuls les aspects utiles pour une compréhension de l'invention seront décrits en détail et ont été représentés dans les dessins. D'autres fonction- nalités, comme les fonctionnalités particulières mises en oeuvre par le logiciel embarqué, n'ont pas été décrites en détail, puisqu'il est clair pour l'homme de l'art que les modes de réalisation décrits ici pourraient être appliqués à du logiciel embarqué mettant en oeuvre une large gamme de fonctionnalités.
Dans le texte qui suit, les termes suivants auront les définitions suivantes : "dispositif de traitement cible" - circuit comprenant un ou plusieurs processeurs formant au moins une partie du matériel d'un produit final pour lequel du logiciel doit être 15 développé ; "dispositif de traitement hôte" - circuit comprenant un ou plusieurs processeurs formant au moins une partie d'une plateforme matérielle pour simuler le comportement du dispositif de traitement cible lors de l'exécution du logiciel en cours de 20 développement ; "modèle de processeur cible" - module mis en oeuvre par une combinaison d'au moins un dispositif de traitement hôte et par exemple d'un ou plusieurs programmes, et agencé pour modéliser l'exécution d'instructions de programme sur le 25 dispositif de traitement cible ; "logiciel embarqué" - tout type de logiciel qui fait par exemple partie intégrante d'un dispositif électronique, comme un produit final, et comporte des instructions qui, lorsqu'elles sont exécutées, provoquent une interaction avec des 30 composants matériels cibles, par exemple comprenant des pilotes pour un ou plusieurs autres dispositifs matériels cibles, ainsi qu'une ou plusieurs fonctionnalités ; "piège logiciel" - événement résultant d'une erreur d'exécution d'instruction hôte, comme une adresse piégée, qui 35 provoque un piège qui détourne le flux d'exécution d'instruc- B11583FR - 11-GR2-1160FRO1 7 tions du logiciel embarqué, permettant à un gestionnaire de piège de prendre le contrôle ; "composant matériel" - tout dispositif matériel, comme un dispositif périphérique, une mémoire, un registre, un port d'entrée/sortie, un décodeur vidéo, etc., qui peut être mis en oeuvre par un dispositif matériel spécifique, ou dont le fonctionnement peut être simulé ; "instruction de transaction" - une instruction, comme une instruction de chargement ou de mémorisation, qui implique 10 une transaction, comme une opération de lecture ou écriture, entre un processeur cible et un composant matériel ; et "moniteur" est un logiciel qui fait partie du modèle de processeur cible et qui modélise le comportement du dispositif de traitement cible en ce qui concerne des instructions de 15 transaction. La figure 1A illustre schématiquement un exemple de dispositif électronique 100. Le dispositif 100 comprend un dispositif de traitement (P) 102, qui sera appelé ici dispositif de traitement cible. En outre, le dispositif 100 comprend un 20 dispositif mémoire mémorisant du logiciel embarqué (ESW) 104 sous la forme d'instructions de programme pour exécution par le dispositif de traitement cible 102, et un composant matériel 106 couplé au dispositif de traitement cible 102. Le dispositif 100 est par exemple un dispositif électronique quelconque comme, 25 mais sans être limité à cela, un ordinateur portable, une tablette informatique ou un ordinateur personnel, un téléphone mobile, une caméra numérique, une console de jeu portable, un assistant numérique personnel, un lecteur de livres électroniques, un boîtier décodeur ou un lecteur de médias numériques. 30 Le dispositif de traitement cible 102 comprend par exemple un ou plusieurs processeurs, des unités DMA (accès direct en mémoire), et/ou d'autres éléments matériels sous le contrôle des instructions du programme du logiciel embarqué. Le composant matériel 106 est par exemple une mémoire 35 comme une mémoire RAM (mémoire à accès aléatoire) ou une mémoire B11583FR - 11-GR2-1160FRO1 8 Flash, un registre, un port d'entrée/sortie, un décodeur vidéo, une carte graphique, un dispositif périphérique comme une imprimante, un scanner, un microphone, un haut-parleur, etc., ou bien le contrôleur d'un tel dispositif périphérique. Bien que dans 5 l'exemple de la figure lA le dispositif 100 comprenne un seul composant matériel, en pratique il peut comprendre plusieurs composants de la sorte, ou même des dizaines de composants matériels. Bien que cela ne soit pas illustré en figure 1A, le dispositif 100 peut en outre comprendre des dispositifs 10 d'entrée/sortie comme un clavier et/ou une souris, un afficheur et/ou un écran tactile, etc. Comme cela a été expliqué dans la section d'art antérieur précédente, pendant la phase de développement du logiciel intégré à exécuter par le dispositif de traitement 15 cible 102, on peut utiliser un ou plusieurs composants pour simuler le fonctionnement du dispositif de traitement cible 102 et du composant matériel 106. Cela permet au développement logiciel de démarrer avant que le matériel du dispositif 100 soit disponible. 20 La figure 1B illustre schématiquement un exemple de système de simulation 110 comprenant un sous-système hôte 111 qui modélise le fonctionnement du dispositif de traitement cible 102 et du logiciel embarqué 104. Le sous-système 111 comprend un modèle de processeur cible 112 couplé à un dispositif mémoire 25 mémorisant un logiciel embarqué (ESW) 114, qui interagit avec le modèle de processeur cible 112. Le modèle de processeur cible 112 est mis en oeuvre par un ou plusieurs dispositifs de traitement hôtes (non illustrés en figure 1B), et modélise par exemple le comportement du dispositif de traitement cible 102 30 avec un certain niveau de précision en ce qui concerne ses fonctionnalités, ses caractéristiques temporelles, son comportement en termes de bits et de cycles, ou son fonctionnement au niveau portes. Le sous-système 111 communique par exemple avec un 35 dispositif matériel 116, qui représente le composant matériel B11583FR - 11-GR2-1160FRO1 9 106. En particulier, comme cela va être décrit plus en détail dans la suite, le dispositif 116 peut correspondre au composant matériel 106 lui-même, ou à une mise en oeuvre du composant matériel 106, en utilisant par exemple des outils de simu- lation/émulation. Alors que le dispositif de traitement cible 102 utilise un premier jeu d'instructions pour exécuter des instructions de programme du logiciel embarqué 104, lesdits un ou plusieurs dispositifs de traitement hôtes du modèle de processeur cible 112 utilisent un deuxième jeu d'instructions, qui est par exemple différent du premier, pour exécuter les instructions de programme du logiciel embarqué 114. Cependant, même si les jeux d'instructions des logiciels 104 et 114 sont différents, chaque logiciel 104, 114 est par exemple dérivé du même code source, ou au moins d'un code source qui est sensiblement identique. Comme on va le décrire plus en détail dans la suite, le logiciel embarqué 114 correspond à un programme d'ordinateur comprenant des instructions dans le langage de programmation desdits un ou plusieurs processeurs hôtes du modèle de processeur cible 112. Ces instructions comprennent par exemple du code non seulement pour contrôler le modèle de processeur cible 112, mais aussi pour piloter le composant matériel 116. Le programme d'ordinateur met en oeuvre par exemple un ou plusieurs tests, une ou plusieurs séquences de vérification, des pilotes de système d'exploitation (OS), ou des applications plus complexes. La figure 2 illustre plus en détail le système de simulation 110 de la figure 1B selon un exemple de réalisation. Comme cela est illustré, le modèle de processeur cible 30 112 est par exemple mis en oeuvre sur une plateforme matérielle 202. La plateforme matérielle 202 est par exemple mise en oeuvre par toute technologie telle que des modèles logiciels, des FPGA, une émulation matérielle, des dispositifs matériels, ou une de leurs combinaisons. En outre, un dispositif mémoire 204 est 35 couplé au modèle de processeur cible 112. Le dispositif mémoire B11583FR - 11-GR2-1160FRO1 10 204 peut être mis en oeuvre à l'aide d'une ou plusieurs mémoires physiques, et mémorise le logiciel embarqué (ESW) 114. Le dispositif mémoire 204 est géré par un gestionnaire de piège 208, dont le but va être décrit plus en détail dans la suite. Le dispositif mémoire 204 comprend en outre par exemple un logiciel 210 correspondant à un moniteur, qui prend le contrôle dans le cas d'un piège, comme on va le décrire plus en détail dans la suite. La plateforme de matériel 202 comprend par exemple un 10 dispositif d'interconnexion 212 qui couple le modèle de processeur cible 112 à chacun d'un certain nombre de dispositifs matériels. En particulier, dans l'exemple de la figure 2, le dispositif d'interconnexion 212 est couplé à un dispositif matériel simulé 214, et à des ports d'entrée/sortie 216, 218 et 15 220 respectivement fournissant un accès à des dispositifs matériels externes 222, 224 et 226. Le dispositif 222 est par exemple un ASIC (circuit intégré spécifique d'application), et correspond à un composant matériel, comme le composant 106 de la figure 1A. Le dispositif 224 est par exemple un dispositif qui 20 émule le fonctionnement d'un composant matériel, conutte le composant 106 de la figure 1A. En particulier, il comprend par exemple un dispositif de traitement programmable 228, comme un FPGA (réseau de portes programmable sur site), qui est configuré par du code RTL (niveau de transfert de registres) mémorisé dans 25 une mémoire 230. Le dispositif 226 est par exemple un modèle logiciel simulant le fonctionnement d'un composant matériel, comme le composant 106 de la figure 1A. En particulier, il comprend par exemple un dispositif de traitement 232 contrôlé par un code de modélisation, qui décrit la fonction matérielle à 30 mettre en oeuvre. Bien sûr, alors que l'exemple de la figure 2 illustre quatre types différents de dispositifs 214, 222, 224 et 226 mettant en oeuvre des composants matériels, il sera clair pour l'homme de l'art qu'un seul ou seulement quelques-uns de ces 35 dispositifs pourraient être prévus, et qu'il pourrait y avoir B11583FR - 11-GR2-1160FRO1 11 plus d'un seul dispositif de chaque type de dispositif. En outre, un ou plusieurs des composants matériels mis en oeuvre par chacun des dispositifs 214, 222, 224 et 226 pourraient être identiques, ou ils pourraient tous être différents.
En fonctionnement, pendant une simulation utilisant la plateforme matérielle 202, les instructions de programme 114 sont exécutées par lesdits un ou plusieurs dispositifs de traitement hôtes du modèle de processeur cible 112. Les instructions se trouvant dans le jeu d'instructions desdits un ou plusieurs processeurs hôtes, une telle exécution est relativement rapide. Cependant, comme on va le décrire plus en détail dans la suite, chaque instruction qui correspond à une instruction de transaction accédant à un composant matériel, colline les composants matériels 214, 222, 224, 226 de la figure 2, provoque l'occurrence d'un piège logiciel dans le dispositif mémoire 204. Le contrôle est alors passé au gestionnaire de piège 208 contrôlant la plateforme matérielle 202, et le gestionnaire de piège 208 passe à son tour le contrôle au moniteur 210, qui permet le traitement de l'instruction de transaction. Le fonctionnement du système de simulation 110 de la figure 2 va maintenant être décrit plus en détail en référence aux figures 3, 4A et 4B. La figure 3 représente une portion d'un espace d'exé- cution virtuelle du modèle de processeur cible 112. Par exemple, cet espace d'exécution correspond à un espace mémoire physique dans le dispositif 204, et/ou dans une mémoire sur la puce de la platefolme matérielle 202 (non illustré en figure 2). Dans l'exemple de la figure 3, l'espace d'exécution couvre les adres- ses "0000" à "FFFF", bien que bien entendu l'espace d'exécution pourrait avoir une taille et une position différentes. Le code d'instructions est par exemple mémorisé dans les adresses "A" à "B" de l'espace d'exécution, tandis que les adresses "C" à "D" sont affectées pour servir à la mémorisation de données pendant l'exécution du logiciel embarqué. Les autres zones, qui sont B11583FR - 11-GR2-1160FR01 12 hachurées avec des traits en diagonale en figure 3, correspondent à des adresses qui ne correspondent pas au logiciel embarqué. Dans l'exemple de la figure 3, ces zones correspondent aux adresses comprises entre "0000" et "A", entre "B" et "C" et entre "D" et "FFFF". Dans l'exemple de la figure 3, une portion de ces adresses entre l'adresse "0000" et une adresse "E" est constituée d'adresses matérielles réelles des composants matériels utilisés pendant les instructions de transaction. Ainsi, lorsque l'une quelconque de ces adresses est utilisée pendant une exécution d'instruction, un piège logiciel est généré automatiquement par lesdits un ou plusieurs dispositifs de traitement hôtes du modèle de processeur cible 112, en raison de la présence d'une adresse piégée. L'homme de l'art notera que, dans certains cas, des 15 adresses piégées peuvent aussi correspondre à des adresses mémoire d'un ou plusieurs dispositifs mémoire qui mémorisent les instructions de logiciel embarqué et/ou les données. La figure 4A et un organigramme illustrant un exemple d'étapes exécutées par la plateforme matérielle 202 pour la 20 simulation du fonctionnement du dispositif de traitement cible 102. Dans une étape Si, les plages d'adresse matérielle sont marquées comme zones piégées par la plateforme matérielle, et désignées de façon interne comme correspondant à des 25 instructions de transaction. Pendant cette procédure, à chaque fois qu'une adresse correspond à l'adresse matérielle d'un composant matériel, l'adresse virtuelle affectée est une adresse piégée, par exemple une adresse dans l'espace virtuel "0000" à "E" de la figure 3. 30 Dans une étape suivante de S2, les instructions du logiciel embarqué sont exécutées, comme on va le décrire maintenant plus en détail en référence à la figure 4B. La figure 4B est un organigramme illustrant un exemple des étapes réalisées pendant l'étape d'exécution d'instructions 35 S2 de la figure 4A.
B11583FR - 11-GR2-1160FRO1 13 Dans une étape S2A, un compteur d'instructions N est initialisé, par exemple à A. Dans une étape suivante S2B, l'instruction N des instructions du programme est exécutée, cette instruction initiale 5 correspondant par exemple à une première instruction A. Dans une étape suivante S2C, l'occurrence d'un piège est détectée. En particulier, si l'instruction N est une instruction de transaction impliquant l'adresse matérielle d'un composant matériel, un piège va être généré par lesdits un ou 10 plusieurs dispositifs de traitement hôtes du modèle de processeur cible 112. Dans ce cas, l'instruction suivante est S2D, dans laquelle l'instruction de transaction N est décodée et mise en oeuvre par le moniteur 210. Après l'étape S2D, ou après l'étape S2C dans le cas où 15 aucun piège ne survient sur l'exécution de l'instruction N, l'étape suivante est S2E, dans laquelle le compteur de programme N est incrémenté par le moniteur 210 ou par lesdits un ou plusieurs dispositifs de traitement hôte du modèle de processeur cible 112, puis le procédé revient à la répétition de l'étape 20 S2B sur la base de la nouvelle valeur du compteur d'instructions N. Le fonctionnement de la plateforme matérielle pendant l'exécution d'une instruction de transaction va maintenant être décrit plus en détail en référence aux figures 5 et 6. 25 La figure 5 est une ligne de temps illustrant les séquences d'exécution pendant l'exécution d'une instruction de transaction. La figure 6 est un organigramme illustrant des étapes d'un procédé de traitement d'une instruction de transaction. 30 Initialement, comme cela est représenté par une ligne en figure 5 représentant le logiciel embarqué, les instructions de programme du logiciel embarqué sont exécutées par lesdits un ou plusieurs processeurs hôtes du modèle de processeur cible 112. Ensuite, au niveau d'un point 502 représenté en figure 5, 1583FR - 11-GR2-1160FRO1 14 correspondant à l'étape 602 de la figure 6, une adresse piégée d'une instruction n déclenche un piège. Comme cela est illustré par une ligne de 504 en figure 5 et une étape correspondante 604 en figure 6, le contrôle est 5 passé du logiciel embarqué au gestionnaire de piège 208 de la figure 2. Ensuite, conutte cela est illustré par une flèche 506 en figure 5 et par une étape correspondante 606 en figure 6, le gestionnaire de piège 208 appelle le moniteur 210 de la figure 10 2. Ensuite, comme cela est illustré par une ligne 508 en figure 5 et par une étape correspondante 608A en figure 6, le moniteur 210 décode l'instruction de transaction n qui a provoqué le piège. Par exemple, le décodage de l'instruction implique 15 la récupération, sur la base du compteur d'instructions à l'instant du piège, de l'instruction correspondante provenant du logiciel embarqué. Le décodage de cette instruction fournit par exemple au moins un type d'instruction, comme "chargement" ou "mémorisation", l'adresse matérielle, une taille correspondant 20 au nombre de multiplets de données à lire ou écrire, et/ou les données à écrire dans le cas d'une instruction de mémorisation. Ensuite, si l'instruction est une instruction de chargement, une transaction de lecture est générée par le moniteur 210 afin de mettre en oeuvre l'opération de lecture sur la base des 25 paramètres d'instruction décodés. À titre de variante, si l'instruction est une instruction de mémorisation, une transaction d'écriture est générée par le moniteur 210 afin de mettre en oeuvre l'opération d'écriture sur la base des paramètres d'instruction décodés. Les transactions de lecture et d'écriture 30 sont par exemple exécutées par le modèle de processeur cible 112, provoquant une communication avec l'un des dispositifs matériels 214, 222, 224 ou 226 de la figure 2, par l'intermédiaire du dispositif d'interconnexion 212 et/ou des ports d'entrée/sortie 216, 218, 220.
B11583FR - 11-GR2-1160FRO1 15 Comme cela est illustré par une étape suivante 608B en figure 6, le moniteur 210 met en oeuvre l'opération de l'instruction de transaction une fois que la transaction, par exemple une lecture ou une écriture, a été achevée. Par exemple, dans le cas d'une instruction de lecture, le registre de destination de l'instruction de lecture est mis à jour avec une valeur appropriée fournie par la transaction de lecture et des drapeaux appropriés du processeur hôte sont positionnés. Dans le cas d'une instruction d'écriture, des drapeaux appropriés du processeur hôte sont positionnés. Le moniteur 210 incrémente le compteur d'instructions du logiciel embarqué puis rend brièvement le contrôle au gestionnaire de piège, qui à son tour rend le contrôle au logiciel embarqué, comme cela est représenté par le point 510 de la figure 5, et l'exécution d'instructions reprend à l'instruc- tion n+1. Le procédé se poursuit ensuite par exemple jusqu'à ce qu'un piège suivant soit rencontré, où le procédé redémarre à partir de l'étape 602.
Un avantage des modes de réalisation décrits ici est que, en affectant des adresses piégées aux adresses matérielles d'un ou plusieurs composants matériels correspondant à des instructions de transaction, des pièges vont être générés par lesdits un ou plusieurs dispositifs de traitement hôtes du modèle de processeur cible lorsque ces instructions sont exécutées, fournissant une manière simple et efficace pour permettre à un autre système de contrôle de prendre le contrôle, et de traiter les instructions de transaction. Cela permet de programmer le logiciel embarqué dans le jeu d'instructions du système hôte, et ainsi l'exécution du logiciel embarqué est particulièrement rapide. Avec la description ainsi faite d'au moins un mode de réalisation illustratif de l'invention, diverses altérations, modifications et améliorations apparaîtront facilement à l'homme de l'art.
B11583FR - 11-GR2-1160FRO1 16 Par exemple, bien qu'on ait fourni certains exemples montrant comment une instruction de transaction est mise en oeuvre suite à un piège logiciel, il sera clair pour l'homme de l'art qu'il existe d'autres façons pour réaliser cela, par 5 exemple en utilisant une table de correspondance pour simuler directement le comportement du composant matériel. En outre, bien que des modes de réalisation aient été décrits dans lesquels le logiciel 104 du dispositif électronique 102 et le logiciel 114 du système de simulation sont du logiciel 10 embarqué, il sera clair pour l'homme de l'art que dans certains cas le logiciel 104 et le logiciel 114 peuvent ne pas être embarqués. En outre, bien que des exemples d'instructions de transaction correspondant à des instructions de mémorisation et 15 de chargement aient été décrits, il sera clair pour l'homme de l'art que les modes de réalisation décrits ici pourraient s'appliquer également à d'autres types d'instructions, comme une instruction complexe "comparaison et permutation" ou une instruction de gestion de cache.
20 En outre, il sera clair pour l'homme de l'art que les diverses fonctionnalités décrites en relation avec les divers modes de réalisation pourraient être combinées d'une manière quelconque.

Claims (10)

  1. REVENDICATIONS1. Procédé pour simuler, en utilisant un modèle de processeur cible (112) comprenant au moins un dispositif de traitement hôte, l'exécution d'instructions de programme sur un dispositif de traitement cible (102), les instructions de 5 programme comprenant au moins une instruction de transaction impliquant une transaction entre le dispositif de traitement cible (102) et au moins un composant matériel (116) associé à une adresse matérielle, les instructions étant dans le jeu d'instructions dudit au moins un dispositif de traitement hôte 10 du modèle de processeur cible, le procédé comprenant les étapes suivantes : affecter chaque adresse matérielle de ladite au moins une instruction de transaction à une ou plusieurs adresses mémoire piégées ; 15 exécuter les instructions du programme d'ordinateur par lesdits un ou plusieurs dispositifs de traitement hôtes du modèle de processeur cible, un piège logiciel étant généré à chaque exécution de ladite au moins une instruction de transaction ; et 20 en réponse à chaque piège logiciel, décoder et mettre en oeuvre l'instruction de transaction provoquant le piège logiciel.
  2. 2. Procédé selon la revendication 1, comprenant en outre, après la mise en oeuvre de l'instruction, la reprise par 25 ledit au moins un dispositif de traitement hôte du modèle de processeur cible de l'exécution des instructions du programme.
  3. 3. Procédé selon la revendication 1 ou 2, dans lequel l'étape de mise en oeuvre de l'instruction de transaction comprend l'appel d'un moniteur modélisant le comportement du 30 dispositif de traitement cible en relation avec une instruction de transaction, dans lequel, lors de l'exécution, le moniteur met en oeuvre l'instruction de transaction.
  4. 4. Procédé selon la revendication 3, dans lequel l'exécution de l'instruction de transaction par le moniteurB11583FR - 11-GR2-1160FR01 18 implique l'accès au composant matériel (106, 116, 222) ou à un dispositif matériel (214, 224, 226) mettant en oeuvre le composant matériel.
  5. 5. Procédé selon les revendications 3 ou 4, dans 5 lequel en réponse à chaque piège logiciel, un gestionnaire de piège (208) est agencé pour appeler le moniteur (210).
  6. 6. Support lisible par un ordinateur mémorisant un programme d'ordinateur qui, lorsqu'il est exécuté par au moins un dispositif de traitement, entraîne la mise en oeuvre du 10 procédé de l'une quelconque des revendications 1 à 5.
  7. 7. Plateforme matérielle pour simuler, en utilisant un modèle de processeur cible comprenant au moins un dispositif de traitement hôte (112), l'exécution d'instructions de programme sur un dispositif de traitement cible (102), les instructions de 15 programme comprenant au moins une instruction de transaction impliquant une transaction entre le dispositif de traitement cible et au moins un composant matériel (106, 116, 214, 222, 224, 226) associé à une adresse matérielle, les instructions étant dans le jeu d'instruction dudit au moins un dispositif de 20 traitement hôte du modèle de processeur cible, le modèle de processeur cible étant agencé pour : affecter une adresse mémoire piégée à chaque adresse matérielle de ladite au moins une instruction de transaction ; exécuter les instructions de programme par ledit au 25 moins un dispositif de traitement hôte du modèle de processeur cible et générer un piège logiciel à chaque exécution de ladite au moins une instruction de transaction ; et décoder et mettre en oeuvre, en réponse à chaque piège logiciel, l'instruction de transaction provoquant le piège 30 logiciel.
  8. 8. Plateforme matérielle selon la revendication 7, comprenant en outre un dispositif d'interconnexion (212) couplant le modèle de processeur cible à au moins un dispositif matériel (214, 222, 224, 226) représentant ledit au moins un 35 composant matériel.B11583FR - 11-GR2-1160FRO1 19
  9. 9. PlatefoLme matérielle selon la revendication 7 ou 8, dans laquelle ledit au moins un dispositif matériel comprend un ou plusieurs des éléments suivants : un dispositif matériel (214) mettant en oeuvre le 5 composant matériel ; une interface (216) vers un dispositif externe (222) mettant en oeuvre le composant matériel ; une interface (218) vers un dispositif externe (224) émulant le composant matériel ; et 10 une interface (220) vers un dispositif externe (226) simulant le composant matériel.
  10. 10. Système de simulation comprenant : la plateforme matérielle (202) de l'une quelconque des revendications 7 à 9 ; 15 un dispositif mémoire (204) mémorisant les instruc- tions de programme ; et au moins un dispositif (214, 222, 224, 226) représentant le composant matériel.
FR1254162A 2012-05-07 2012-05-07 Titre non renseigne. Withdrawn FR2990281A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1254162A FR2990281A1 (fr) 2012-05-07 2012-05-07 Titre non renseigne.
PCT/EP2013/058688 WO2013167394A1 (fr) 2012-05-07 2013-04-26 Méthode de simulation d'exécution d'instruction utilisant des adresses capturées et matériel associé

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1254162A FR2990281A1 (fr) 2012-05-07 2012-05-07 Titre non renseigne.

Publications (1)

Publication Number Publication Date
FR2990281A1 true FR2990281A1 (fr) 2013-11-08

Family

ID=47019085

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1254162A Withdrawn FR2990281A1 (fr) 2012-05-07 2012-05-07 Titre non renseigne.

Country Status (2)

Country Link
FR (1) FR2990281A1 (fr)
WO (1) WO2013167394A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114706376A (zh) * 2022-06-06 2022-07-05 南京宏泰半导体科技有限公司 一种基于软件解耦的硬件控制装置及方法

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3951925B2 (ja) 2003-01-31 2007-08-01 セイコーエプソン株式会社 ハードウェア/ソフトウェア協調検証方法

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
FREDERIC PETROT ET AL: "On MPSoC Software Execution at the Transaction Level", IEEE DESIGN & TEST OF COMPUTERS, IEEE SERVICE CENTER, NEW YORK, NY, US, vol. 28, no. 3, 1 May 2011 (2011-05-01), pages 32 - 43, XP011322673, ISSN: 0740-7475, DOI: 10.1109/MDT.2010.118 *
HÉCTOR POSADAS ET AL: "Automatic HW/SW Interface Modeling for Scratch-Pad and Memory Mapped HW Components in Native Source-Code Co-simulation", THIRD IFIP TC 10 INTERNATIONAL EMBEDDED SYSTEMS SYMPOSIUM, IESS 2009,, 1 January 2009 (2009-01-01), pages 12 - 23, XP009167095 *
JASON E MILLER ET AL: "Graphite: A distributed parallel simulator for multicores", HIGH PERFORMANCE COMPUTER ARCHITECTURE (HPCA), 2010 IEEE 16TH INTERNATIONAL SYMPOSIUM ON, IEEE, PISCATAWAY, NJ, USA, 9 January 2010 (2010-01-09), pages 1 - 12, XP031670702, ISBN: 978-1-4244-5658-1 *
RICHARD UHLIG ET AL: "Trap-driven memory simulation with Tapeworm II", ACM TRANSACTIONS ON MODELING AND COMPUTER SIMULATION, vol. 7, no. 1, 1 January 1997 (1997-01-01), pages 7 - 41, XP055053456, ISSN: 1049-3301, DOI: 10.1145/244804.244805 *
S. SHUBHENDU MUKHERJEE ET AL: "Wisconsin Wind Tunnel II: A fast, portable parallel architecture simulator", IEEE CONCURRENCY, vol. 8, no. 4, 1 January 2000 (2000-01-01), pages 12 - 20, XP055053454, ISSN: 1092-3063, DOI: 10.1109/4434.895100 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114706376A (zh) * 2022-06-06 2022-07-05 南京宏泰半导体科技有限公司 一种基于软件解耦的硬件控制装置及方法
CN114706376B (zh) * 2022-06-06 2022-08-26 南京宏泰半导体科技有限公司 一种基于软件解耦的硬件控制装置及方法

Also Published As

Publication number Publication date
WO2013167394A1 (fr) 2013-11-14

Similar Documents

Publication Publication Date Title
CN109976761B (zh) 软件开发工具包的生成方法、装置及终端设备
US9536023B2 (en) Code generation for using an element in a first model to call a portion of a second model
WO2015055074A1 (fr) Procédé et dispositif pour dynamiquement charger et appeler un programme
US8806437B2 (en) Automated testing process
US20120102483A1 (en) Handling calls to native code in a managed code environment
CN103049375B (zh) 一种摄像头在线调试方法
WO2022083316A1 (fr) Procédé et appareil d'exécution d'application et support de stockage informatique
CN107729246B (zh) 针对目标应用的辅助测试方法、装置、设备及存储介质
US10754765B2 (en) Operating system validation
FR3103927A1 (fr) Procédé et appareil pour exécuter un applet
Pajankar Raspberry Pi Image Processing Programming
US20150143342A1 (en) Functional validation of software
US8959485B2 (en) Security protection domain-based testing framework
CN112189187A (zh) 统一平台的可扩展性
Tuovenen et al. MAuto: Automatic mobile game testing tool using image-matching based approach
CN105701854B (zh) 一种3d渲染方法、装置及引擎
FR2871590A1 (fr) Procede de chargement d'un logiciel en langage intermediaire oriente objet dans un appareil portatif.
Papoulias Remote Debugging and Reflection in Resource Constrained Devices
CN111782474A (zh) 日志处理方法、装置、电子设备和介质
US9003364B2 (en) Overriding system attributes and function returns in a software subsystem
FR2990281A1 (fr) Titre non renseigne.
CN110045966A (zh) 安装器的处理方法、装置及设备
US10705685B2 (en) Navigation system for a graphical user interface
US9262304B2 (en) Methods and systems for testing interactions between mobile applications
CN106294143B (zh) 芯片的寄存器的调试方法及装置

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20150130