FR2779252A1 - Dispositif d'emulation de composant physique - Google Patents
Dispositif d'emulation de composant physique Download PDFInfo
- Publication number
- FR2779252A1 FR2779252A1 FR9806669A FR9806669A FR2779252A1 FR 2779252 A1 FR2779252 A1 FR 2779252A1 FR 9806669 A FR9806669 A FR 9806669A FR 9806669 A FR9806669 A FR 9806669A FR 2779252 A1 FR2779252 A1 FR 2779252A1
- Authority
- FR
- France
- Prior art keywords
- component
- resources
- processor
- memory
- module
- 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
- 238000011156 evaluation Methods 0.000 title 1
- 238000004891 communication Methods 0.000 claims description 7
- 230000006399 behavior Effects 0.000 description 8
- 230000003993 interaction Effects 0.000 description 7
- 238000012545 processing Methods 0.000 description 6
- 238000004088 simulation Methods 0.000 description 5
- 239000000463 material Substances 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000012423 maintenance Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000012360 testing method Methods 0.000 description 3
- 101001044908 Cairina moschata Chymotrypsin inhibitor Proteins 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 238000010348 incorporation Methods 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000000034 method Methods 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/26—Functional testing
- G06F11/261—Functional testing by simulating additional hardware, e.g. fault simulation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/30—Circuit design
- G06F30/32—Circuit design at the digital level
- G06F30/33—Design verification, e.g. functional simulation or model checking
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Geometry (AREA)
- Quality & Reliability (AREA)
- Debugging And Monitoring (AREA)
Abstract
Le dispositif d'émulation est constitué d'un système informatique comprenant un module (1), ledit module (1) comprenant une unité de mémoire à accès aléatoire (3) et au moins un premier processeur (10) et un deuxième processeur (11) reliés à l'unité de mémoire (3) par un bus système (2). Pour émuler un composant physique, le système comprend deux ensembles de ressources physiques vues de façon distinctes sur le bus système (2) : - un premier ensemble de ressources comprenant le premier processeur (10) et une première zone mémoire (7) de l'unité de mémoire (3),- un deuxième ensemble de ressources comprenant le deuxième processeur (11) et une deuxième zone mémoire (8) de l'unité de mémoire (3).
Description
1 2779252
Le domaine technique auquel se rapporte l'invention est celui du développement de nouveaux composants pour machine informatique, de sorte
à produire une nouvelle machine en y intégrant ces nouveaux composants.
Pour obtenir des performances intéressantes, ces nouveaux composants sont souvent complexes. La fabrication d'un nouveau composant tel qu'un circuit intégré ou une carte comprenant un ou plusieurs circuits intégrés, nécessite un investissement lourd et coûteux. Il est donc préférable qu'à l'issue du développement, on puisse o10 s'assurer que le composant qui sera fabriqué, procure les performances attendues, ceci avant sa fabrication, de façon à éviter de devoir refabriquer le nouveau composant si, à l'issue d'une phase de test, on s'apercevait qu'il ne
procure pas les performances attendues.
Il existe des outils prévus pour simuler de façon logicielle le comportement électrique et ou logique d'un nouveau composant à partir de sa spécification fonctionnelle. La spécification fonctionnelle d'un composant le décrit au moyen d'un langage formel tel que par exemple le langage VHDL. En CAO (Conception Assistée par Ordinateur), une synthèse de la spécification fonctionnelle permet d'obtenir des schémas électriques du composant répondant à cette spécification et des masques pour intégrer des éléments matériels du composant dans un matériau semi- conducteur. La spécification fonctionnelle permet aussi d'étudier le comportement du circuit en simulant des états logiques de ses variables, états logiques qui résultent de signaux de contrôle commande reçus par le circuit, tels que par exemple ceux provenant d'un protocole de communication ou de façon plus générale d'une application logicielle faisant appel aux fonctionnalités du composant. Pour élaborer ces signaux dans l'environnement dans lequel est appelé à fonctionner le composant, on peut prévoir de décrire sous forme fonctionnelle cet environnement et de simuler sur un ordinateur l'ensemble des spécifications fonctionnelles ainsi obtenues. L'inconvénient d'une telle solution est dans la
2 2779252
difficulté de prévoir tous les états possibles par exemple d'une machine destinée à incorporer le composant et dans la nécessité d'un temps
d'exécution dépassant une échelle humaine de temps.
Une autre solution consiste à brancher une machine spécifique sur les interfaces de la machine destinée à incorporer le composant, à la place du futur composant. La machine spécifique simule alors le comportement du composant à l'aide de sa seule spécification fonctionnelle, de façon logicielle. Il est cependant difficile de faire fonctionner la machine destinée à incorporer le
composant dans des conditions proches de ses conditions réelles d'utilisation.
En effet, la machine spécifique ralentit considérablement la machine destinée à incorporer le composant car une simulation logicielle au moyen d'une spécification fonctionnelle est nécessairement plus lente qu'une exécution réelle par les éléments matériels du composant. D'autre part, il est parfois intéressant de tester le composant dans la machine destinée à l'incorporer, en figeant les horloges de synchronisation de façon à pouvoir observer leur état à un instant donné. Ceci est difficile avec une machine spécifique extérieure à la
machine à tester.
Pour palier les inconvénients précédemment cités, I'invention propose un système informatique comprenant au moins un module. Ledit module comprend une unité de mémoire à accès aléatoire et au moins un premier processeur et un deuxième processeur reliés à l'unité de mémoire par un bus système. Le système informatique est caractérisé en ce qu'il comprend deux ensembles de ressources physiques vues de façon distinctes sur le bus système: - un premier ensemble de ressources comprenant le premier processeur et une première zone mémoire de l'unité de mémoire, - un deuxième ensemble de ressources comprenant le deuxième processeur et
une deuxième zone mémoire de l'unité de mémoire.
3 2779252
Le premier ensemble de ressources permet de simuler la machine destinée à incorporer le nouveau composant et le deuxième ensemble de ressources permet de simuler le nouveau composant. L'accessibilité des deux ensembles de ressources sur le même bus système permet de simuler le comportement du nouveau composant avec un niveau d'exactitude appréciable car dans un environnement très proche de celui obtenu avec le nouveau composant
lorsqu'il sera effectivement incorporé dans la machine.
On peut envisager de faire exécuter deux types d'applications par le système io informatique. Un premier type d'applications utilise alors le premier ensemble de ressources pour simuler des fonctionnalités de la machine destinée à incorporer le nouveau composant, intéressantes pour étudier le comportement du nouveau composant et ses interactions avec la machine. Un deuxième type d'applications utilise alors le deuxième ensemble de ressources pour simuler des fonctionnalités du nouveau composant, intéressantes pour étudier son
comportement et ses interactions avec la machine.
Un avantage supplémentaire est obtenu lorsque le premier ensemble de ressources est utilisé par un premier système d'exploitation et le deuxième
ensemble de ressources est utilisé par un deuxième système d'exploitation.
Le deuxième ensemble de ressources joint au deuxième système d'exploitation qui lui est propre constitue alors une entité matérielle dont les interactions sur le bus systèmes sont semblables à celle du nouveau composant. Le premier ensemble de ressources joint au premier système d'exploitation qui lui est propre constitue alors une entité matérielle dont les interactions sur le bus systèmes sont semblables à celle de la machine intégrant le nouveau composant. Les performances de simulation du système informatique sont augmentées lorsque la zone mémoire du second ensemble de ressources contient un
4 2779252
ensemble minimal de primitives nécessaires au deuxième système d'exploitation et de librairies pour exécuter des applications simples au moyen
du deuxième système d'exploitation.
Ceci évite d'attribuer au second système d'exploitation une quantité de ressources supérieure à celle nécessaire à la simulation du nouveau composant. Lorsque la simulation le nécessite, le deuxième ensemble de ressources io comprend un composant matériel relié au bus système et capable d'en prendre le contrôle. Une telle nécessité est par exemple motivée par l'existence de prises de contrôle matérielles par le nouveau composant sur certaines ressources physiques de la machine destinée à son incorporation: envoi
d'interruptions, priorités d'accès sur le bus système.
Il est ainsi possible de remplacer le nouveau composant dans la machine destinée à l'incorporer, par un composant intermédiaire comprenant quelques fonctionnalités simples du nouveau composant, de réserver des ressources de la machine et de mettre en oeuvre au moyen des ressources réservées, un automate réalisant les fonctionnalités du nouveau composant, non réalisées
par le composant simple.
D'autres détails et avantages de l'invention ressortent de la description de mise
en oeuvre qui suit en référence aux figures annexées: - La figure 1 illustre schématiquement un module du système informatique, objet de l'invention; - La figure 2 illustre schématiquement des moyens possibles pour mettre en ceuvre le deuxième ensemble de ressources; - La figure 3 illustre schématiquement une utilisation intéressante de l'invention.
2779252
En référence à la figure 1, un module 1 de système informatique comprend une unité de mémoire à accès aléatoire 3 de type RAM (Random Access Memory en anglais). L'unité de mémoire 3 comprend habituellement des bancs de mémoire RAM et un contrôleur mémoire 6. Ici, les bancs de mémoire dynamique sont regroupés en une première zone mémoire 7 et en une deuxième zone mémoire 8. Le contrôleur mémoire 6 accède en écriture et en lecture à chacune des zones mémoires 7 et 8 en fonction d'adresses transmises sur un bus système 2 auquel est reliée l'unité de mémoire 3 de io façon à constituer des ressources physiques d'un système informatique. Un premier processeur 10 et un deuxième processeur 11 sont reliés au bus système 2 de façon à constituer d'autres ressources physiques du système informatique. Les ressources physiques reliées au bus système 2 sont réparties en deux ensembles vus de façon distincte par leurs adresses sur le
bus 2. Un premier ensemble comprend le processeur 10 et la zone mémoire 7.
Un deuxième ensemble comprend le processeur 11 et la zone mémoire 8.
Chaque ensemble peut contenir d'autres ressources physiques. Par exemple, le premier ensemble peut contenir d'autres processeurs 12, 13 reliés au bus système 2. Un composant matériel 4, relié lui aussi au bus 2, appartient ici au deuxième ensemble, de façon à constituer un composant intermédiaire de simulation. Un contrôleur d'interruptions 5 sur le bus système 2, distingue les interruptions destinées au premier ensemble de celles destinées au deuxième ensemble. Le contrôleur d'interruptions 5 est essentiellement constitué d'un commutateur paramétrable connu. Il reçoit en entrée des signaux d'interruptions en provenance de chaque élément matériel du système au moyen de liaisons point à point. Il aiguille chaque signal d'interruption d'une de ses entrées vers une de ses sorties en fonction de paramètres contenus dans des registres initialisés au moyen du bus système 2. Chacune de ses sorties est reliée à un
6 2779252
processeur 10, 11, 12, 13 du module 1. Dans le cadre de la mise en oeuvre ici décrite, le commutateur est paramétré de façon à ce qu'une interruption en provenance du composant matériel 4 soit systématiquement redirigée vers le processeur 11 et de façon à ce que les autres interruptions soient alternativement redirigées vers l'un des processeurs 10, 12, 13. Les processeurs 10 à 13 sont des unités centrales de traitement (CPU pour Central Processor Unit en langue anglaise), courantes dans le commerce. Les unités centrales de traitement sont destinées à exécuter des tâches effectuées 1o par le système, en collaboration avec ses autres ressources. Le système ici présenté est un système multiprocesseur au sens o il comprend plus d'un processeur de type CPU. Les bancs de mémoire RAM sont souvent constitués de mémoire dynamique. La mémoire dynamique est non seulement volatile en cas de disparition de tension d'alimentation, mais elle nécessite aussi un
rafraîchissement permanent pour ne pas perdre les données qu'elle contient.
Cependant, son faible coût actuel permet de lui donner une taille appréciable.
Le contrôleur mémoire 6 est d'un type SMC (System Memory Controller en
langue anglaise) connu.
Un processeur 14 et une mémoire 9 reliés à un bus de maintenance ne font pas à proprement parler partie des ressources du système considéré. Le processeur 14 et la mémoire 9 servent essentiellement à assurer le démarrage et la maintenance du système lorsque celui-ci est complexe, ce qui est particulièrement le cas d'un système multiprocesseur. La liaison du bus de maintenance 15 aux différents éléments matériels 4, 5, 6, et 10 à 13, permet de contrôler les ressources du système considéré. Au démarrage du système, le processeur 14 reconnaît et paramètre les différents éléments matériels au moyen de la mémoire 9 et du bus 15. Pendant le fonctionnement du système, le processeur 14 effectue divers contrôles de base tels que des contrôles de parité ou le bon état, sur les différents éléments matériels au moyen de la
mémoire 9 et du bus 15.
7 2779252
Le processeur 14 est un processeur de service (SP pour Service Processor en langue anglaise). Il est souvent de constitution plus simple que les processeurs de type CPU car les tâches qu'il effectue sont peu évoluées. La mémoire 9 est une mémoire programmable à lecture seule effaçable par irradiation, de type connu (FEPROM pour Flash Erasable Programmable Read Only Memory en langue anglaise). La mémoire 9 est divisée en différents segments dont certains contiennent des microprogrammes (FW pour FirmWare en langue anglaise). Un premier segment contient un microprogramme nommé BUMP (Bring Up Micro Processor en langue anglaise). A la mise sous tension du module 1, le processeur 14 se branche systématiquement sur la première instruction du microprogramme BUMP dans la mémoire 9. Dans une première phase, le microprogramme BUMP a pour tâche connue de reconnaître et de configurer les éléments matériels du système considéré dont l'unité de mémoire 3, la mémoire 9 et chacun des processeurs 10 à 13. Dans une deuxième phase, le microprogramme BUMP a pour tâche connue de transférer l'exécution du code contenu dans la mémoire 9, au delà du premier segment, vers l'un des processeurs 10 à 13. Dans une troisième phase, le microprogramme BUMP a pour tâche connue de contrôler ces éléments matériels jusqu'à la mise hors
tension du module 1.
Un deuxième segment contient un microprogramme nommé INITFW. Le microprogramme INITFW est activé par la fin de la deuxième phase du microprogramme BUMP, sur l'un des processeurs de type CPU, par exemple le processeur 10. Le microprogramme INITFW a pour tâche de se charger dans l'unité mémoire 3 et d'assurer la configuration minimale du système informatique ( Bus système, tables de correspondance entre adresses
virtuelles et adresses réelles pour chacun des processeurs).
8 2779252
Un troisième segment contient un microprogramme nommé MDM (Multiprocessor Debug Monitor en langue anglaise). Le microprogramme MDM
est activé par et à la suite du microprogramme INITFW sur le processeur 10.
Le microprogramme MDM permet de contrôler le démarrage du système.
Un quatrième segment contient un microprogramme nommé OF (Open Firmware en langue anglaise). Le microprogramme OF est activé par la fin du microprogramme MDM. Le microprogramme OF a pour tâche connue de construire un arbre de périphériques qui permet d'accéder à des ressources io physiques externes telles qu'un disque, un CDROM ou un périphérique de communication. Le microprogramme OF active un système d'exploitation ( OS pour Operating System en langue anglaise) en lui indiquant le périphérique sur lequel le système d'exploitation OS doit démarrer ainsi qu'en fournissant
l'ensemble des caractéristiques matérielles du système.
Le système d'exploitation OS permet de faire exécuter divers applications par le système considéré. Il est par exemple possible de programmer une application qui simule de façon logicielle les fonctions qui seraient réalisées par l'insertion d'un nouveau composant matériel dans le système. Au niveau système d'exploitation, il est envisageable de définir le deuxième ensemble de ressources au moyens d'instructions spécifiques qui lient l'exécution de l'application d'émulation à la zone mémoire 8 et au processeur 11. Le deuxième ensemble de ressources est alors défini en liant l'exécution de toutes les autres applications à la zone mémoire 7 et aux autres processeurs 10, 12, 13. Un avantage supplémentaire est procuré si le système d'exploitation OS, alors appelé premier système d'exploitation, n'utilise que le premier ensemble de ressources. Le deuxième ensemble de ressources, alors masqué au premier système d'exploitation, est également masqué à toutes les applications exécutées au moyen du premier système d'exploitation, sans nécessiter de
9 2779252
modifications de ces applications ni du premier système d'exploitation. Un deuxième système d'exploitation utilise le deuxième ensemble de ressources. Il est ainsi possible d'exécuter, au moyen du deuxième système d'exploitation, une application spécifique qui émule le nouveau composant, indépendamment du premier système d'exploitation. Tout se passe vis à vis du premier système d'exploitation, comme si les fonctions exécutées par l'application spécifique, étaient exécutées dans le nouveau composant matériel, alors que le nouveau
composant matériel n'est pas inséré dans le système considéré.
io Pour cela, un cinquième segment de la mémoire 9 contient un ensemble minimal de primitives nécessaires au deuxième système d'exploitation et de librairies pour exécuter des applications simples au moyen du deuxième système d'exploitation. De façon avantageuse, un sixième segment de la mémoire 9 contient du code d'instructions d'une application destinée à être exécutée au moyen du deuxième système d'exploitation. Le microprogramme INITFW réquisitionne le processeur 11 et la mémoire 8 comme ressources disponibles pour le deuxième système d'exploitation le contenu de la mémoire 9, à partir du cinquième segment, dans la mémoire 8. Le microprogramme INITFW démarre ensuite le deuxième système d'exploitation sur le processeur 11. Les éléments du deuxième ensemble de ressources sont rendues
indisponibles pour le microprogramme OF.
Le composant matériel 4 est utile pour simuler les interfaces matérielles du nouveau composant avec le bus système 2 et éventuellement avec d'autres éléments matériels du système. Le composant matériel 4 est par exemple capable de prendre le contrôle du bus système 2 de façon prioritaire sur tout
autre élément matériel du système, ce que ne peut faire un composant logiciel.
En référence à la figure 2, le composant matériel 4 comprend différents registres 35 à 39 accessibles en lecture et en écriture sur le bus système 2. Le nombre de registres n'est pas limitatif. Le contrôleur d'interruption 5 est
2779252
configuré par le micrologiciel INITFW de façon à ce que les interruptions générées par un générateur d'interruptions 40 du composant matériel 4 sur le
bus système 2, soient reçues uniquement par le deuxième processeur 11.
L'ensemble décrit en référence à la figure 1 fonctionne de la façon suivante. Le code d'instructions de l'application chargée en mémoire 8 constitue un
automate dont les fonctionnalités sont celles du nouveau composant matériel.
Le processeur 11 exécute une première portion de code, contenue dans la
zone mémoire 8, qui constitue une boucle infinie en attente d'une interruption.
io Lorsqu'une interruption est générée par le générateur d'interruptions 40 du composant matériel 4, le contrôleur d'interruption 5 aiguille cette interruption vers le processeur 11. A réception de l'interruption, le processeur 11 exécute une deuxième portion de code, contenue dans la zone mémoire 8, qui consiste à lire un ou plusieurs des registres 35 à 39 du composant matériel 4, au moyen du bus système 2. Ensuite, le processeur 11 exécute une troisième portion de code qui traite la ou les valeurs lues dans le ou les registres 35, 36, 37, 38, 39, en tant qu'entrées de l'automate. Des valeurs obtenues par ce traitement constituent des valeurs de sortie de l'automate. En fin de traitement, le processeur 11 exécute une quatrième portion de code qui consiste à écrire les valeurs de sortie obtenues dans un ou plusieurs des registres 35 à 39 du
composant matériel 4, au moyen du bus système 2.
L'exécution du code d'instructions de l'application chargée en mémoire 8 se fait au moyen de librairies et du deuxième système d'exploitation chargés en
mémoire 8 par le micrologiciel INITFW.
Les interruptions générées par le générateur d'interruption 40, résultent d'événements sur le bus système 2, observés par le composant matériel 4. Ces événements sont par exemple des transactions effectuées par le premier
ensemble de ressources, sur le bus système 2.
i 2779252 En prenant le contrôle du bus système 2, le composant 4 peut modifier le contenu des transactions au moyen de ses registres 35 à 39. Sur le bus système 2, le deuxième ensemble de ressources se comporte alors, vis à vis du premier ensemble de ressources, de façon identique au nouveau composant matériel qu'il est prévu d'introduire dans le système considéré. La figure 3 présente une mise en oeuvre particulièrement intéressante de l'invention. Le système considéré comprend un ou plusieurs module 31 identiques au module 1 décrit en référence à la figure 1. On reconnaît dans le io module 31 un bus système 32 identique au bus système 2, des processeurs , 22, 23 identiques aux processeurs 10, 12, 13, des zones mémoires 27 et 28, respectivement identiques aux zones mémoires 7 et 8. Certains éléments tels que le contrôleur d'interruptions 5, le contrôleur mémoire 6, la mémoire 9 et le processeur 14 ne sont pas représentés pour ne pas surcharger inutilement la figure. Les explications qui précèdent pour le module I restent
valables pour le module 31.
Dans le module 31, un composant matériel 24, identique au composant matériel 4, est relié au composant matériel 4 au moyen d'un lien externe de communication 30 entre modules. Les composants matériels 4, 24, comprennent alors des éléments standards pour gérer des communications sur
le lien 30.
Le module 1 comprend un composant d'interface 16 à double canal nommé DPCI (Dual Chanel PCI en langue anglaise, le sigle PCI indiquant une norme de bus connue). Le composant d'interface 16 est relié d'une part au bus système 2 et d'autre part à deux ports de communication 17 et 18 nommés respectivement Coml et Com2. Une console 35 est branchée sur le port 17 et
une console 19 est branchée sur le port 18.
12 2779252
Le module 31 comprend un composant d'interface 26 à double canal nommé DPCI (Dual Chanel PCI en langue anglaise, le sigle PCI indiquant une norme de bus connue). Le composant d'interface 26 est relié d'une part au bus système 32 et d'autre part à deux ports de communication 29 et 33 nommés respectivement Coml et Com2. Une console 34 est branchée sur le port 33. Le programme INITFW décrit en référence à la figure 1 est lancé séparément à partir d'une copie distincte propre à chacun des modules 1, 31. De la sorte, le système informatique dispose d'un deuxième ensemble de ressources distinct io pour chacun des modules 1, 31. La console 19 permet des interractions avec le deuxième système d'exploitation du module 1. La console 34 permet des
interractions avec le deuxième système d'exploitation du module 31.
Le premier système d'exploitation étant lancé par l'exécution du i5 microprogramme OF, celui-ci dispose du premier ensemble de ressources de chacun des modules 1, 31. C'est à dire que le premier système d'exploitation voit l'ensemble des processeurs 10, 12, 13, 20, 22, 23 et des zones mémoires 7, 27 comme reliés à un seul bus système constitué des bus 1, 32. La console permet des interractions avec le premier système d'exploitation commun
aux modules 1, 31.
Ainsi, un opérateur humain, chargé d'étudier la simulation du nouveau composant dans un environnement proche de son environnement futur, a la possibilité d'observer le comportement de la machine destinée à incorporer le nouveau composant au moyen de la console 35 et d'observer le comportement
de chaque occurence du nouveau composant au moyen des consoles 19 et 34.
Les explications qui suivent pour le module 1, restent valables de façon symétrique pour le module 31. L'automate décrit précédemment dispose en plus de valeurs d'entrée et de sortie accessibles dans la zone mémoire 8. Dans le cadre d'une architecture CCNUMA qui ne fait pas partie de l'invention en
13 2779252
tant que telle, les valeurs d'entrée et de sortie sont par exemple celles contenues dans une table LMD (Local Memory Directory en langue anglaise) dite de présence locale et dans une table RCT (Remote Cache Tag en langue
anglaise) dite de présence distante.
Le but de la description n'est pas d'expliquer en détails un protocole de
cohérence antémémoire pour machine avec mémoire à accès non uniforme (CCNUMA pour Cache Coherent Non Uniform Memory Access en langue anglaise). La complexité d'un tel protocole fait qu'il est préférable de se o reporter à la littérature publiée à ce sujet. Le protocole est émulé par l'automate dont le code réside dans chacune des zones mémoires 8, 28 des
modules 1, 31.
La présente description se tient donc aux seules explications sommaires utiles
à une bonne compréhension du fonctionnement de la mise en oeuvre présentée pour le module 1 en référence à la figure 3. La table LMD contient les adresses de données résidentes sur le module 1, objets d'un accès sous le premier système d'exploitation OS par un processeur 20, 22, 23 d'un module distant tel que le module 31. La table RCT contient les adresses de données résidentes sur un module distant tel que le module 31, objets d'un accès sous le premier système d'exploitation OS par un processeur 10, 12, 13 du module 1 local. A chacune de ces adresses dans les tables LMD et RCT sont joints différents indicateurs tels que des indicateurs de partage, de validité ou de modification. Lorsqu'un élément du premier ensemble de ressources génère une première transaction sur le bus système 2, le composant matériel 4 gèle cette première transaction et sauvegarde dans ses registres 35 à 39 les valeurs utiles de la
transaction, telles que l'adresse accédée, le mode d'accès lecture ou écriture.
Le composant matériel 4 émet ensuite une interruption à destination du processeur 11. Le traitement de ces valeurs par l'automate précédemment
14 2779252
décrit analyse si l'adresse accédée concerne une adresse locale ou une adresse distante. L'automate met à jour ses sorties pour indiquer si la première transaction peut être satisfaite en local ou nécessite une transaction à distance. Cette mise à jour est effectuée au moyen de la table LMD pour une adresse locale et au moyen de la table RCT pour une adresse distante. Le processeur 11 retranscrit ensuite les sorties mises à jour dans les registres 35 à 39 adéquats du composant 4. S'il résulte des valeurs contenues dans les registres 35 à 39 que la première transaction peut être satisfaite en local, le composant matériel 4 dégèle la transaction. S'il résulte des valeurs contenues io dans les registres 35 à 39 que la première transaction nécessite une transaction à distance, le composant matériel 4 émet une requête sur le lien , basée sur le contenu de ses registres 35 à 39 et met la première
transaction en échec.
i5 Lorsque le composant matériel 24 reçoit une requête en provenance du lien , il sauvegarde dans ses registres 35 à 39 les valeurs utiles de la requête, telles que l'adresse accédée, le mode d'accès lecture ou écriture. Le composant matériel 24 émet ensuite une interruption à destination du processeur 21. Le traitement de ces valeurs par l'automate précédemment décrit, ici résident en zone mémoire 28, analyse si l'adresse accédée concerne une adresse locale ou une adresse distante. L'automate met à jour ses sorties pour indiquer si la requête peut être satisfaite en local ou nécessite une autre transaction à distance. Cette mise à jour est effectuée au moyen de la table LMD en zone mémoire 28, pour une adresse locale et au moyen de la table RCT en zone mémoire 28, pour une adresse distante. Le processeur 21 retranscrit ensuite les sorties mises à jour dans les registres 35 à 39 adéquats du composant 24. S'il résulte des valeurs contenues dans les registres 35 à 39 que la requête peut être satisfaite en local, le composant matériel 24 émet une seconde transactionsur le bus 32 dont la réponse est sauvegardée dans les registres adéquats 35 à 39. Le composant 24 émet ensuite une réponse sur le lien 30, basée sur le contenu de ses registres 35 à 39. S'il résulte des valeurs
2779252
contenues dans les registres 35 à 39 que la requête nécessite une autre transaction à distance, le composant matériel 24 émet une autre requête sur le
lien 30 basée sur le contenu de ses registres 35 à 39.
Lorsque le composant matériel 4 reçoit une réponse en provenance du lien 30, il génère une troisième transaction sur le bus système 2, à destination de la zone mémoire 7, basée sur le contenu de ses registres 35 à 39. Le composant matériel 4 émet simultanément une interruption à destination du processeur 11 de façon à ce que l'automate remette à jour la table LMD ou la table RCT en
io zone mémoire 8.
La description a permis de montrer comment un système selon l'invention
permet d'émuler un composant particulier tel qu'un composant d'interconnexion entre modules d'une machine CCNUMA. Il est évident qu'un tel système permet d'émuler d'autres types de composants en chargeant dans la mémoire
8 des automates exécutant les fonctionalités de ces composants.
16 2779252
Claims (8)
1. Système informatique comprenant un module (1), ledit module (1) comprenant une unité de mémoire à accès aléatoire (3) et au moins un premier processeur (10) et un deuxième processeur (11) reliés à l'unité de mémoire (3) par un bus système (2), caractérisé en ce qu'il comprend deux ensembles de ressources physiques vues de façon distinctes sur le bus système (2): - un premier ensemble de ressources comprenant le premier processeur (10) et io une première zone mémoire (7) de l'unité de mémoire (3), - un deuxième ensemble de ressources comprenant le deuxième processeur
(11) et une deuxième zone mémoire (8) de l'unité de mémoire (3).
2. Système informatique selon la revendication 1, caractérisé en ce que: le premier ensemble de ressources est utilisé par un premier système d'exploitation, - le deuxième ensemble de ressources est utilisé par un deuxième système d'exploitation.
3. Système informatique selon la revendication 2, caractérisé en ce que la zone mémoire (8) contient un ensemble minimal de primitives nécessaires au deuxième système d'exploitation et de librairies pour exécuter des applications
simples au moyen du deuxième système d'exploitation.
4. Système informatique selon l'une des revendications précédentes,
caractérisé en ce que le deuxième ensemble de ressources comprend un composant matériel (4) relié au bus système (2) et capable d'en prendre le contrôle.
5. Système informatique selon la revendication 4, caractérisé en ce que des interruptions générées par le composant matériel (4) sont gérées par un
17 2779252
contrôleur d'interruption (5) de façon à être reçues uniquement par le deuxième
processeur (11).
6. Système informatique selon la revendication 5, caractérisé en ce que la zone mémoire (8) contient du code d'instructions dont l'exécution par le deuxième processeur (11) constitue un automate qui lit et écrit dans des registres du composant (4) à chaque interruption reçue du composant (4) en
fonction de l'état résultant de l'automate.
io
7. Système informatique selon la revendication 6, caractérisé en ce qu'à la mise sous tension du système, un processeur de service (14) exécute un microprogramme de lancement résidant dans une mémoire non volatile (9) qui paramètre un contrôleur mémoire (6) de façon à définir le premier et le
deuxième ensemble de ressources.
8. Système informatique selon la revendication 6, caractérisé en ce qu'il comprend un ou plusieurs modules (31) identiques au module (1), dont un composant (24) est connecté au composant (4) du module (1) au moyen d'un lien de communication (30) extérieur aux modules (1) et (31) de façon à ce qu'une première zone mémoire (27) de chaque module (31), reliée au composant (24) au moyen d'un bus système (32), appartienne au dit premier
ensemble de ressources du système.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9806669A FR2779252B1 (fr) | 1998-05-27 | 1998-05-27 | Dispositif d'emulation de composant physique |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9806669A FR2779252B1 (fr) | 1998-05-27 | 1998-05-27 | Dispositif d'emulation de composant physique |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2779252A1 true FR2779252A1 (fr) | 1999-12-03 |
FR2779252B1 FR2779252B1 (fr) | 2001-08-10 |
Family
ID=9526758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9806669A Expired - Fee Related FR2779252B1 (fr) | 1998-05-27 | 1998-05-27 | Dispositif d'emulation de composant physique |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2779252B1 (fr) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3809771A1 (de) * | 1988-03-23 | 1989-10-05 | Bodenseewerk Geraetetech | Verfahren zur systemverifikation mit hilfe von computerunterstuetzten entwicklungswerkzeugen |
JPH02148163A (ja) * | 1988-11-29 | 1990-06-07 | Nec Software Ltd | マルチオペレーティングシステム |
US5239654A (en) * | 1989-11-17 | 1993-08-24 | Texas Instruments Incorporated | Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode |
-
1998
- 1998-05-27 FR FR9806669A patent/FR2779252B1/fr not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE3809771A1 (de) * | 1988-03-23 | 1989-10-05 | Bodenseewerk Geraetetech | Verfahren zur systemverifikation mit hilfe von computerunterstuetzten entwicklungswerkzeugen |
JPH02148163A (ja) * | 1988-11-29 | 1990-06-07 | Nec Software Ltd | マルチオペレーティングシステム |
US5239654A (en) * | 1989-11-17 | 1993-08-24 | Texas Instruments Incorporated | Dual mode SIMD/MIMD processor providing reuse of MIMD instruction memories as data memories when operating in SIMD mode |
Non-Patent Citations (5)
Title |
---|
BARROSO L A ET AL: "RPM: A RAPID PROTOTYPING ENGINE FOR MULTIPROCESSOR SYSTEMS", COMPUTER, vol. 28, no. 2, 1 February 1995 (1995-02-01), pages 26 - 34, XP000502736 * |
GOSCH J: "MERGING REAL-TIME PROCESSING AND UNIX V", ELECTRONICS, vol. 63, no. 9, 1 September 1990 (1990-09-01), pages 62 - 63, XP000161822 * |
MAGDIC D: "Limes: a multiprocessor simulation environment for PC platforms", 1997 21ST INTERNATIONAL CONFERENCE ON MICROELECTRONICS PROCEEDINGS. MIEL '97 (CAT. NO.97TH8232), 1997 21ST INTERNATIONAL CONFERENCE ON MICROELECTRONICS. PROCEEDINGS, NIS, YUGOSLAVIA, 14-17 SEPT. 1997, ISBN 0-7803-3664-X, 1997, New York, NY, USA, IEEE, USA, pages 841 - 844 vol.2, XP002094394 * |
ONER K ET AL: "The design of RPM: an FPGA-based multiprocessor emulator", FPGA '95. 1995 ACM THIRD INTERNATIONAL SYMPOSIUM ON FIELD-PROGRAMMABLE GATE ARRAYS, PROCEEDINGS OF ASSOCIATION FOR COMPUTING MACHINERY INTERNATIONAL SYMPOSIUM ON FIELD PROGRAMMABLE GATE ARRAYS (FPGA'95), MONTEREY, CA, USA, 12-14 FEB. 1995, ISBN 0-89791-743-X, 1995, New York, NY, USA, ACM, USA, pages 60 - 66, XP002094393 * |
PATENT ABSTRACTS OF JAPAN vol. 014, no. 392 (P - 1096) 23 August 1990 (1990-08-23) * |
Also Published As
Publication number | Publication date |
---|---|
FR2779252B1 (fr) | 2001-08-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10599599B2 (en) | Selectable peripheral logic in programmable apparatus | |
Hallinan | Embedded Linux primer: a practical real-world approach | |
CN109791536A (zh) | 可配置逻辑平台 | |
Hollabaugh | Embedded Linux: hardware, software, and interfacing | |
EP3910469A1 (fr) | Interface et chemin de réinitialisation à chaud pour les mises à niveau de micrologiciel de dispositifs de mémoire | |
US11250193B1 (en) | Productivity platform using system-on-chip with programmable circuitry | |
US9710575B2 (en) | Hybrid platform-dependent simulation interface | |
EP1310847B1 (fr) | Système de téléchargement et de télémaintenance d'une carte électronique | |
CN115964093A (zh) | 用于访问存储设备上的设备程序的系统、方法和设备 | |
JP2023547070A (ja) | アプリケーションの実行を停止しない更新された共有ライブラリの再読み込み | |
CN114385524B (zh) | 嵌入式固件仿真系统及其方法、装置和电子设备 | |
US10430200B2 (en) | Slave processor within a system-on-chip | |
US10474610B1 (en) | Hardware trace and introspection for productivity platform using a system-on-chip | |
Bapp et al. | Towards fail-operational systems on controller level using heterogeneous multicore soc architectures and hardware support | |
Meike et al. | Inside the android OS: building, customizing, managing and operating android system services | |
FR2779252A1 (fr) | Dispositif d'emulation de composant physique | |
CN106485020A (zh) | 带有非易失性存储器的处理器芯片仿真器 | |
US12073155B2 (en) | Method and system for building hardware images from heterogeneous designs for electronic systems | |
Ansari et al. | Design and implementation of character device driver for customized kernel of ARM based platform | |
Reinhardt et al. | Using the m5 simulator | |
Hintermann | Operating system components for an embedded linux system | |
Stanley-Marbell | Implementation of a distributed full-system simulation framework as a filesystem server | |
Chadwick et al. | LEVERAGING CONFIDENTIAL COMPUTING TO ENABLE SECURE INFORMATION SHARING | |
CN113467861A (zh) | 文件调用方法和装置、存储介质及电子设备 | |
CN117130931A (zh) | 一种嵌入式软件调试方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 18 |
|
ST | Notification of lapse |
Effective date: 20170131 |