Brevet FR2779252A1 — publié le 19991203

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 REVENDICATIONS 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.