Brevet FR2902211A1 — publié le 20071214

Procédé de simulation d'un système complexe avec construction d'au moins un modèle comprenant au moins un routeur modélisé, produit programme d'ordinateur et moyen de stockage correspondants. 1. DOMAINE DE L'INVENTION Le domaine de l'invention est celui des systèmes complexes du type comprenant une pluralité de constituants, tels que par exemple un ou plusieurs processeurs exécutant un ensemble de fonctions sous le contrôle d'un ensemble hiérarchisé d'ordonnanceurs. Par processeur, on entend dans le présent document toute unité de ressource d'exécution. L'invention n'est pas limitée aux seuls processeurs logiciels et matériels, utilisés dans les systèmes électroniques et informatiques, mais s'applique également aux processeurs mécaniques (par exemple un robot qui exécute une ou plusieurs tâches) ou humains (par exemple un opérateur qui exécute une ou plusieurs tâches). Par ailleurs, dans le présent document, on entend par ordonnanceur une fonction capable d'établir un ordre d'exécution de fonctions ou tâches pour un processeur utilisé comme ressource. Cette fonction peut être réalisée sous forme logicielle et/ou matérielle, pour les processeurs matériels et logiciels, ou par toute autre technique pour les autres types de processeurs (mécaniques et humains). Ces systèmes complexes permettent notamment, mais non exclusivement, de faire fonctionner des programmes informatiques, aussi appelés applications ou logiciels. Plus précisément, l'invention concerne une technique de simulation d'un tel système complexe. En d'autres termes, la technique de l'invention concerne la conception et l'exploration des architectures des systèmes complexes. La technique de l'invention a été développée pour l'étude des architectures des systèmes électroniques complexes, qu'il s'agisse de cartes ou de systèmes intégrés dans une puce (ou SoC, pour System-on-Chip ). Ces systèmes intègrent systématiquement du matériel et du logiciel. Cependant, du fait que la technique de l'invention repose sur des concepts généraux de constituants (tels que des tâches (fonctions), des processeurs (et donc des ressources d'exécution) et des ordonnanceurs), elle a une application plus large que celle des microprocesseurs. Elle couvre tout type de processeurs (voir la définition ci-dessus) devant assurer du partage de ressources. La technique de l'invention se veut tout particulièrement adaptée aux technologies nouvelles des télécommunications et du multimédia. L'évolution des standards et leur stabilisation progressive conduisent à devoir créer des équipements évolutifs et donc téléconfigurables . La configuration dynamique et donc l'ordonnancement dynamique sont des solutions permettant de répondre à l'évolution des fonctionnalités des produits. Dans les systèmes électroniques et informatiques, les systèmes complexes sont réalisés par assemblage de composants matériels : processeurs standards (ou CPU, pour Central Processing Unit ), microprocesseurs (ou MCU, pour Microcontroller Unit ), processeurs de traitement du signal (ou DSP, pour Digital Signal Processor ), circuits intégrés à application spécifique (ou ASIC, pour Application-specific Integrated Circuits ), réseaux logiques programmables, notamment réseaux prédiffusés programmables (ou FPGA pour Field Programmable Gate Arrays ), constituant ainsi la plate-forme matérielle du système. S'ajoute à cette plate-forme un ensemble de logiciels (généralement des systèmes d'exploitation temps réel, comprenant notamment un ordonnanceur) développés pour chaque processeur logiciel (CPU, MCU, DSP), ainsi que la configuration des processeurs matériels (ASIC, FPGA). L'ensemble de ces constituants (matériels et logiciels) une fois intégrés (tendance vers les systèmes sur silicium û System-On-Chip ) constitue un système complexe dont il est quasi impossible de prévoir le comportement détaillé ainsi que certaines propriétés, telles que leurs performances. La conception de systèmes complexes est une activité en amont de la réalisation, intégration et test, qui requiert de la part des ingénieurs de prévoir très tôt les propriétés du système à développer afin de décider toutes les caractéristiques des constituants. Avec l'accroissement de la complexité et la réduction du temps de développement, les concepteurs doivent disposer d'outils d'aide à la conception (CAO). La technologie de l'invention répond à un tel besoin. La prévision des propriétés de tels systèmes en termes de performances au sens général, résulte de la simulation de modèles abstraits représentant au mieux les systèmes électroniques complexes pouvant mixer des processeur matériels (FPGA, ASIC) et des processeurs logiciels (CPU, MCU, DSP). La nature même des systèmes électroniques actuels et ceux du futur, qui résultent de l'intégration de logiciels temps réel s'exécutant sur un ou plusieurs processeurs eux-mêmes couplés avec un environnement matériel complexe et très varié, conduit à devoir disposer de techniques de simulation rapides et performantes afin de vérifier et valider le plus efficacement et le plus tôt possible les solutions durant leur conception. Pour cette raison, les technologies de simulation sont très critiques pour l'industrie de la conception électronique assistée par ordinateur (ou EDA, pour Electronic Design Automation ). 2. ART ANTÉRIEUR Aujourd'hui, de plus en plus de systèmes sont multi-domaines, mufti- applications et multiservices (ou multifonctions). Se pose alors le problème de créer des modèles de ces systèmes résultant de l'association d'un ensemble de cas d'utilisation afin de produire des scénarios représentatifs de situations envisagées mettant en oeuvre plusieurs applications et services du système. Pour l'illustration du problème, considérons les produits multimédia actuels et futurs. Ils visent à répondre simultanément à de multiple fonctionnalités suivant diverses situations ou scénarios d'utilisation : communiquer en même temps que filmer une petite séquence vidéo, recevoir un courriel (email) pendant une écoute musicale MP3, consulter un site Internet tout en suivant des indications GPS, etc. Chaque fonctionnalité correspond à un cas d'utilisation. Chaque cas d'utilisation est satisfait par un ensemble de services qui collaborent : la prise d'une photo fait intervenir un capteur d'image, une adaptation de l'image au format de l'afficheur LCD, une compression JPEG, une sauvegarde sur mémoire flash. La description du modèle fonctionnel répondant à une utilisation implique la description des couplages entre les services concernés, ce qui inclut le comportement temporel de chaque service et des communications entre services. Des scénarios d'utilisations réelles correspondent à la composition de plusieurs cas d'utilisation. Certains services sont alors partagés : afficheur LCD, mémoire de sauvegarde, capteur d'image, protocole de communication, etc. Se pose alors le problème de décrire la solution du système capable de réaliser une grande variété de scénarios. Le modèle à représenter implique de considérer quasiment tous les couplages possibles entre les services, ce qui se traduit par une vraie toile d'araignée d'interconnexions. Par ailleurs, la modélisation fonctionnelle n'est pas suffisante pour décider des solutions de réalisation. Le choix et l'exploration des architectures possibles nécessitent aussi de considérer les constituants nécessaires en tant que ressources pour l'exécution des services : processeur, mémoire, bus, contrôleur mémoire, etc. De plus, avec l'évolution des technologies de réalisation des systèmes intégrés tendant vers l'emploi de réseaux sur silicium, ces systèmes disposent de plus en plus d'un moyen physique d'interconnexion efficace des ressources d'exécution par le biais d'une structure distribuée de composants d'interconnexions (bus, ponts, routeurs, etc.). Le modèle architectural capable de permettre les analyses et évaluations devient ainsi presque impossible à obtenir par suite de la complexité des interconnexions fonctionnelles qu'il s'agit de réaliser par une structure distribuée de composants d'interconnexions physiques. Un nouveau degré de complexité apparaît aussi avec les produits configurables, et même reconfigurables dynamiquement. Par exemple, un terminal mobile se téléconfigure par le réseau de communication afin de satisfaire une fonction particulière temporaire telle qu'une transaction bancaire ou simplement son adaptation au moyen de communication le plus proche (radio logicielle). La technique actuelle de description des modèles fonctionnels ou comportementaux consiste à considérer que chaque service nécessaire est une boîte (ou composant fonctionnel/logique) assurant un comportement vis-à-vis de ses entrées-sorties. Ces boîtes sont couplées par des liens de communications fonctionnelles du type point à point ou multipoints. La simulation de ces modèles nécessite de décrire le comportement de chacun des services et de décrire les scénarios considérés pour les analyses des solutions. Du fait des multiples interconnexions potentielles entre services, toutes celles-ci doivent être exprimées dans le comportement des services. De plus, la création d'un modèle architectural mixant le comportement de l'application pour une variété de cas d'utilisation avec les topologies distribuées des plates-formes actuelles ou à venir est une tâche laborieuse et très coûteuse en temps. De plus, toute modification de l'application ou de la plate-forme nécessite de reprendre une grande partie du travail de modélisation. Ces difficultés freinent sérieusement les entreprises à investir dans de tels développements de modèles, ce qui veut dire que l'exploration d'architectures ne se fait pas et qu'en conséquence, les performances des choix architecturaux ne se découvrent que très tard dans le cycle de développement avec un risque très important d'obtenir des disfonctionnements et des contraintes non satisfaites. L'inconvénient majeur de la technique actuelle précitée est le temps important et la forte compétence requis pour développer de tels modèles du fait de la croissance exponentielle du travail lié à la nécessité d'expliciter toutes les communications potentielles. Un second inconvénient résultant est aussi le caractère monolithique du modèle. C'est-à-dire que le modèle contient tous les aspects d'une manière fortement imbriquée : découpage fonctionnel, mélange des comportements pour les traitements et les communications, les propriétés temporelles qui en résultent. Toute évolution ou nouvelle configuration d'utilisation engendre de devoir reconsidérer une grande partie du modèle. Un troisième inconvénient concerne la quasi-impossibilité de créer un modèle complexe multidomaines (et/ou multi-applicatiosn) par intégration de modèles, chacun développé pour son domaine. La technique de réutilisation et d'intégration de modèles considérées comme des IPs (Intellectual Properties) n'est pas exploitable. Les inconvénients ci-dessus conduisent à la situation que les concepteurs ne réalisent pas d'exploration des architectures possibles pour de tels systèmes, ceci pour des raisons de coût et par manque de temps, et donc tablent plus sur leur expérience et même leur intuition pour décider des choix d'architectures. Il en résulte des difficultés lors de la phase d'intégration voire plus tard durant l'exploitation du produit. De plus, les entreprises ne capitalisent pas non plus la connaissance et l'expertise par domaine par suite de l'impossibilité d'en assurer l'intégration multi-domaines. 3. OBJECTIFS DE L'INVENTION L'invention, dans au moins un mode de réalisation, a notamment pour objectif de pallier ces différents inconvénients de l'état de la technique. Plus précisément, l'un des objectifs de la présente invention, dans au moins un mode de réalisation, est de fournir une technique de simulation d'un système complexe avec construction d'au moins un modèle de ce système, cette technique permettant de réduire le temps et les compétences nécessaires pour développer le modèle. L'invention a également pour objectif, dans au moins un mode de réalisation, de fournir une telle technique permettant de générer un modèle qui ne soit pas monolithique dans sa construction. Un autre objectif de l'invention, dans au moins un mode de réalisation, est de fournir une telle technique permettant de créer un modèle plus complexe par intégration de modèles simples. 4. EXPOSÉ DE L'INVENTION Dans un mode de réalisation particulier de l'invention, il est proposé un procédé de simulation d'un système complexe comprenant une pluralité de constituants, ledit procédé comprenant une étape de construction d'au moins un modèle du système complexe, chaque modèle du système comprenant un ensemble hiérarchisé de constituants modélisés, chacun des constituants modélisés étant une instance d'une classe d'objet appartenant à un ensemble déterminé de classes d'objet. Ledit ensemble déterminé de classes d'objet comprend une classe Routeur , représentant un modèle abstrait de tout routeur, fictif ou réellement compris dans le système complexe, qui décrit un ensemble d'interconnexions entre au moins deux constituants modélisés, chaque instance de la classe Routeur étant appelée routeur modélisé. Chaque modèle du système comprend au moins un routeur modélisé. Ainsi, dans ce mode de réalisation particulier, le principe général consiste à remplacer l'inventaire de toutes les interconnexions entre constituants modélisés (aussi appelés composants) compris dans le modèle du système, par un ou plusieurs routeurs modélisés capables d'assurer ces interconnexions entre les constituants modélisés qui lui sont liés. En d'autres termes, on utilise un nouveau type de constituant modélisé, nommé routeur modélisé, permettant de router des messages ou des transactions entre constituants modélisés (composants) du modèle. Ceci permet de faciliter la création de modèles des systèmes complexes. On ne considère donc plus, contrairement à la technique de l'art antérieur, que chaque service est une boîte dont il faut décrire (par un inventaire d'interconnexions) le comportement de chacun des services et les scénarios d'utilisation de ces services. De façon avantageuse, chaque routeur modélisé possède un couple d'entrée/sortie pour chacun desdits au moins deux constituants modélisés dont ledit routeur modélisé décrit les interconnexions. Avantageusement, le nombre de couples d'entrée/sortie que possède chaque routeur modélisé peut être modifié de façon dynamique. Selon une caractéristique avantageuse, chaque routeur modélisé utilise une table de routage pour aiguiller une requête reçue sur une de ses entrées, provenant d'un premier constituant modélisé, vers une de ses sorties, à destination d'un second constituant modélisé, l'aiguillage étant fonction du contenu de ladite requête. Avantageusement, ladite table de routage effectue un routage appartenant au groupe comprenant des routages statiques et des routages dynamiques. De façon avantageuse, chaque modèle du système possède une topologie appartenant au groupe comprenant : - une topologie à un seul routeur modélisé ; - une topologie à au moins deux routeurs modélisés indépendants ; - une topologie à au moins deux routeurs modélisés hiérarchisés. Dans un mode de réalisation avantageux de l'invention, ladite étape de construction permet d'obtenir au moins deux modèles simples du système comprenant chacun au moins un routeur modélisé. En outre, ledit procédé comprend une étape de construction d'un modèle plus complexe du système par combinaison desdits au moins deux modèles simples du système, avec emploi d'au moins un routeur modélisé pour représenter les interconnexions requises entre lesdits au moins deux modèles simples du système. De façon avantageuse, chaque routeur modélisé est défini au moins par un premier attribut ( concurrency ) indiquant le nombre de communications simultanées possibles pour ledit routeur modélisé. Avantageusement, chaque routeur modélisé est défini au moins par un second attribut ( routing time ) indiquant un temps de transfert dû audit routeur modélisé. De façon avantageuse, le procédé comprend une étape de construction d'un modèle fonctionnel du système complexe, comprenant au moins un routeur fonctionnel modélisé. Avantageusement, le procédé comprend une étape de construction d'un modèle de plate-forme du système complexe, comprenant au moins un routeur physique modélisé. Dans un mode de réalisation particulier de l'invention, le procédé comprend une étape d'allocation distribuée (mapping) dudit modèle fonctionnel sur ledit modèle de plate-forme, par allocation distribuée dudit au moins un routeur fonctionnel modélisé sur ledit au moins un routeur physique modélisé, permettant d'obtenir un modèle architectural dudit système complexe. Avantageusement, ledit système complexe est un système électronique complexe. Dans un autre mode de réalisation, l'invention concerne un produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions de code de programme pour l'exécution des étapes du procédé précité, dans au moins un de ses modes de réalisation, lorsque ledit programme est exécuté sur un ordinateur. Dans encore un autre mode de réalisation, l'invention concerne un moyen de stockage, éventuellement totalement ou partiellement amovible, lisible par un ordinateur, stockant un jeu d'instructions exécutables par ledit ordinateur pour mettre en oeuvre le procédé précité, dans au moins un de ses modes de réalisation. 5. LISTE DES FIGURES D'autres caractéristiques et avantages de modes de réalisation de l'invention apparaîtront à la lecture de la description suivante d'un mode de réalisation préférentiel de l'invention, donné à titre d'exemple indicatif et non limitatif (tous les modes de réalisation de l'invention ne sont pas limités aux caractéristiques et avantages de ce mode de réalisation préférentiel), et des dessins annexés, dans lesquels : pour un même exemple de système complexe, la figure 1 illustre une modélisation souhaitée et la figure 2 une modélisation apportée par un mode de réalisation particulier du procédé selon l'invention ; la figure 3 illustre un premier exemple de modèle de système selon l'invention, comprenant deux routeurs modélisés indépendants ; la figure 4 illustre un second exemple de modèle de système selon l'invention, comprenant deux routeurs modélisés hiérarchisés ; la figure 5 illustre un exemple de modèle fonctionnel obtenu avec un mode de réalisation particulier du procédé selon l'invention ; la figure 6 illustre un exemple d'allocation du modèle fonctionnel de la figure 5 sur un modèle de plate-forme, avec allocation d'un routeur fonctionnel modélisé sur un routeur physique modélisé ; la figure 7 présente le modèle architectural résultant de l'allocation illustrée sur la figure 6 ; la figure 8 illustre un exemple d'outil logiciel d'édition des attributs des constituants modélisés (composants) d'un modèle, et notamment des attributs d'un routeur modélisé ; et la figure 9 présente un organigramme d'un mode de réalisation particulier du procédé de simulation selon l'invention. 6. DESCRIPTION DÉTAILLÉE Sur toutes les figures du présent document, les éléments et étapes identiques sont désignés par une même référence numérique. 6.1 Principe général L'invention concerne donc un procédé de simulation d'un système complexe comprenant une pluralité de constituants. Ce procédé comprend une étape de construction d'au moins un modèle du système complexe. Chaque ,nodèle du système comprend un ensemble hiérarchisé de constituants modélisés. Chacun des constituants modélisés est une instance d'une classe d'objet appartenant à un ensemble déterminé de classes d'objet. Selon l'invention, il est proposé une nouvelle classe d'objet Routeur , représentant un modèle abstrait de tout routeur, fictif ou réellement compris dans le système complexe, qui décrit un ensemble d'interconnexions entre au moins deux constituants modélisés. Chaque instance de la classe Routeur est appelée routeur modélisé. Chaque modèle du système comprend au moins un routeur modélisé. Ce principe général est maintenant présenté à travers un exemple, en relation avec les figures 1 et 2 qui, pour un même exemple de système complexe, illustrent une modélisation souhaitée (figure 1) et une modélisation selon un mode de réalisation particulier de l'invention (figure 2). Comme illustré par la figure 1, la modélisation souhaitée est un assemblage de services ou fonctions (référencées F1 à F8) en nombre important (généralement supérieur à dix). Chaque scénario fait intervenir un sous-ensemble des fonctions qui collaborent par échanges de données afin de produire une fonctionnalité pour l'utilisateur. La superposition des scénarios conduit à l'identification d'un réseau d'interconnexion fonctionnelle particulièrement complexe. Ainsi, dans l'exemple de la figure 1 : un premier scénario implique les fonctions modélisées F1, F3, F4, F5 et F7, les interconnexions fonctionnelles entre ces fonctions modélisées étant représentées par des flèches en pointillés ; - un deuxième scénario implique les fonctions modélisées F2, F4, F5, F6 et F7, les interconnexions fonctionnelles entre ces fonctions modélisées étant représentées par des flèches en trait continu simple ; et - un troisième scénario implique les fonctions modélisées F7 et F8, les interconnexions fonctionnelles entre ces fonctions modélisées étant représentées par des flèches en trait continu double. Comme illustré par la figure 2, la solution apportée par l'invention consiste à remplacer l'inventaire de toutes les interconnexions par un ou plusieurs composants fonctionnels (il n'y en qu'un, référencé 20, dans cet exemple) capables d'assurer toutes les interconnexions possibles entre les fonctions (ou services) modélisé(e)s qui lui sont liés. Un tel constituant modélisé est appelé routeur modélisé (on peut également remplacer le terme routeur par l'une quelconque des expressions suivantes : routeur de message, routeur de transactions ou encore routeur fonctionnel. La représentation du routeur modélisé faite sous la forme graphique d'un rectangle, sur la figure 2, n'est pas limitative. Toute forme est exploitable comme représentation de ce concept (texte par exemple). Chaque service modélisé est en général lié au routeur fonctionnel modélisé par deux liens au maximum (sans que ce soit une règle systématique) : l'un en entrée pour lui soumettre une requête, l'autre en sortie pour disposer d'un résultat ou pour générer une requête externe. Le nombre d'entrées et de sorties d'un routeur est totalement dynamique. Ainsi des liens peuvent s'ajouter et s'enlever sans perturber le comportement du modèle résultant. L'aiguillage de chaque requête ou transaction par le routeur modélisé 20 vers son destinataire est basé sur l'emploi d'une table de routage. Chaque requête doit contenir un indicateur permettant de trouver son destinataire. L'indicateur de la requête est interprété par le routeur modélisé afin de déterminer la sortie et ceci à l'aide de la table de routage. Le fonctionnement d'un routeur modélisé est le suivant : attente sur toutes les entrées ; - dès l'activation de chaque entrée, identification de la sortie destinatrice à partir du contenu de la transaction reçue ; - envoi de la transaction sur la sortie. Le routage peut être statique (défini à l'initialisation du modèle) ou dynamique (évolue par des changements durant l'évolution du modèle). La création des tables de routage peut être manuelle ou automatique. La solution basée sur un routeur modélisé central, comme représenté par la figure 2 n'est pas obligatoire. En effet, la technique de routage peut se faire par raffinement (hiérarchie de routeurs modélisés), comme illustré par la figure 4, et/ou par partitionnement en plusieurs routeurs modélisés indépendants, comme illustré par la figure 3. Le partitionnement (figure 3) consiste à traiter le problème par groupes de services ou de fonctions, ce qui conduit à faire apparaître des routeurs modélisés indépendants R1, R2. Un service lui-même peut nécessiter l'emploi de routeur(s) modélisé(s). Le raffinement d'un routeur modélisé (figure 4) se traduit par la mise en évidence, au sein d'un routeur modélisé 40, de routeurs modélisés internes R11, R12 plus élémentaires interconnectés entre eux. Le raffinement et le partitionnement favorisent l'étude d'architectures car les routeurs modélisés plus élémentaires sont plus facilement allouables sur des constituants physiques d'interconnexion. La technique du routeur modélisé représentée ci-dessus pour la description d'un modèle fonctionnel est applicable pour tout type de modèles contenant des liens d'échanges entre fonctions modélisées, modules modélisés, ou composants (c'est-à- dire constituants quelconques modélisés) au sens général. Dans le domaine des systèmes électroniques, cette technique est aussi bien entendu exploitable pour la description d'un modèle de plate-forme (ensemble de constituants physiques modélisés comme ressources de traitement ou de mémorisation et des interconnexions entre ces constituants modélisés). En effet, l'ensemble des interconnexions peut se décrire par un ou plusieurs composants du type routeur modélisé (voir la ,discussion ci-dessus). Un modèle architectural d'un système complexe (par exemple électronique) étant le résultat de l'allocation d'un modèle fonctionnel sur un modèle de plate-forme, se pose alors le problème de l'allocation des routeurs fonctionnels modélisés pour que les interconnexions qu'ils représentent soient modélisées par la plate-forme. Une technique d'allocation distribuée des routeurs fonctionnels modélisés sur les routeurs physiques modélisés et les interfaces de communications des ressources du type processeur permet d'obtenir le modèle architectural résultant. Cette technique est décrite ci-dessous par un exemple d'application. Par ailleurs, dans une variante de réalisation du procédé de l'invention, on construit des modèles plus complexes, par intégration ou agrégation de modèles plus simples par l'emploi de composants de routage pour représenter les interconnexions requises. Cette variante n'est pas limitée par la topologie de chaque modèle de départ et celui du modèle résultant. Un ou plusieurs routeurs modélisés peuvent exister dans chaque modèle. Le résultat peut se faire aussi bien par fusion que par ajout de routeurs modélisés. 6.2 Exemple d'application La technique de routeur modélisé de l'invention s'applique notamment, mais non exclusivement, à l'étude des architectures des systèmes électroniques complexes, qu'il s'agisse de cartes ou de systèmes intégrés dans une puce (SoC ù System-on-Chip). Ces systèmes intègrent systématiquement du matériel et du logiciel comme ressources d'exécution pour les services. L'étude de tels systèmes passe par leur modélisation fonctionnelle d'abord et architecturale ensuite. Ces modèles servent à assurer des vérifications et analyses de propriétés tant fonctionnelles que de performances. Les propriétés sont obtenues par simulation des modèles. Pour plus d'informations, se référer à la méthodologie MCSE (Méthode de Conception de Systèmes Electroniques) et aux outils CoFluent Studio (marque déposée) de la société CoFluent Design (déposante de la présente demande de brevet), qui mettent en oeuvre une partie de cette méthodologie MCSE. La technique de routeur modélisé de l'invention se veut toute particulièrement adaptée aux technologies nouvelles des télécommunications et du multimédia. L'évolution des besoins client, des standards de traitement des données, voix et vidéo et des communications conduisent à devoir créer des équipements évolutifs, multifonctions et même dynamiquement configurables. Dans la suite de la description, on présente un exemple d'exploitation du procédé selon l'invention (technologie sous-jacente de routeurs modélisés), dans une nouvelle version des outils CoFluent Studio (marque déposée), pour l'obtention d'un modèle fonctionnel puis d'un modèle architectural, ainsi que la technique de routage. Les différents modèles sont représentés suivant les notations et la sémantique décrites dans MCSE. Dans le mode de réalisation particulier présenté ci-après, et comme illustré par la figure 9, le procédé de simulation selon l'invention comprend : - une étape 91 de construction d'un modèle architectural, comprenant elle-même : * une étape 911 de génération d'un modèle fonctionnel du système complexe ; * une étape 912 de génération d'un modèle de plate-forme matérielle du système complexe ; * une étape 913 d'allocation du modèle fonctionnel sur le modèle de plate- forme, pour obtenir le modèle architectural du système complexe ; - une étape 92 de simulation native à partir de ce modèle architectural, comprenant elle-même : 30 * une étape 921 d'obtention d'un code binaire du modèle architectural, par compilation d'un code source de ce modèle architectural ; * une étape 922 d'exécution directe du code binaire du modèle architectural par un moteur de simulation. 6.2.1 Création du modèle fonctionnel L'un des outils CoFluent Studio (marque déposée) est un éditeur graphique qui sert à capturer les modèles fonctionnels (aussi appelés modèles d'applications) constitués de fonctions modélisées communicantes et concurrentes disposant de leur propre comportement et entrées-sorties. La figure 5 montre l'exemple illustratif considéré pour le modèle fonctionnel. Celui-ci est composé de fonctions modélisées simples (ANO, AN1, AN2, SNO, SN1) (hiérarchie possible) et de relations fonctionnelles assurées par un routeur fonctionnel modélisé 50 (MessageRouting). Pour l'exemple, les fonctions modélisées de gauche (référencées ANO, ANl et AN2) assurent des fonctionnalités dites applicatives intervenant pour différents cas d'utilisation. Les fonctions modélisées de droite (référencées SNO et SN1) assurent des services requis par les fonctions applicatives. Chaque fonction modélisée est connectée au routeur modélisé par deux canaux de communication. La technique de routage ne se restreint en aucun cas à ce schéma de connexions. Potentiellement, chaque fonction modélisée peut communiquer avec n'importe quelle autre fonction modélisée, par envoi de requêtes ou transactions séparées. Pour le routage, un champ de données de toute requête contient un identifiant permettant de connaître le canal d'accès à la fonction modélisée destinatrice. Cet identifiant est exploité par le routeur modélisé 50. La correspondance identifiant-destinataire est assurée par une table de routage associée à chaque routeur modélisé. La correspondance peut être directe, par désignation du canal, ou indirecte, par fourniture du nom logique de service permettant de déduire le canal concerné. Le caractère dynamique de la solution est obtenu par le fait que la table de routage et la méthode de routage (c'est-à-dire l'exploitation de la table pour déduire le canal de sortie) sont programmables, même dynamiquement. En effet, une fonction modélisée du modèle peut très bien assurer des changements dans la table de routage durant l'évolution du modèle. Cette particularité permet de supporter la reconfiguration dynamique d'un système, évoquée précédemment. Afin de disposer d'un modèle de routeur fonctionnel (routeur modélisé) représentant au mieux la réalité des interconnexions fonctionnelles, chaque routeur modélisé est caractérisé par des propriétés essentielles (appelées attributs ). La figure 8 illustre un exemple d'outil logiciel d'édition des attributs des constituants modélisés (composants) d'un modèle, et notamment des attributs d'un routeur modélisé. La fenêtre de gauche 81 affiche la hiérarchie du modèle fonctionnel (les noms des éléments sont identiques à ceux de la figure 5) ainsi que l'élément de cette hiérarchie couramment sélectionné (il apparaît dans un cadre grisé : MessageRouting dans cet exemple) et dont les attributs peuvent donc être définis. La fenêtre de droite 82 affiche les attributs de l'élément sélectionné dans la fenêtre de gauche 81. Dans l'exemple illustré, c'est le routeur modélisé appelé MessageRouting et référencé 50 sur la figure 5. La fenêtre de droite 82 comprend quatre colonnes, qui indiquent respectivement, pour chaque attribut : la catégorie d'attributs à laquelle appartient cet attribut, le nom de cet attribut, la valeur de cet attribut et l'unité dans laquelle s'exprime cette valeur. Parmi les différents attributs d'un routeur modélisé, on notera notamment les suivants : - l'attribut Concurrency 83 : il permet de définir le nombre de communications simultanées possibles pour le routeur modélisé. Concurrency = 1 implique des échanges séquentiels, Concurrency = grande valeur modélise des échanges simultanés, et donc l'équivalent d'un ensemble illimité de connexions permettant des échanges simultanés ; -l'attribut RoutingTime 84 : il permet de paramétrer le temps de transfert dû aux interconnexions. 6.2.2 Création du modèle architectural Le modèle architectural résulte de l'allocation d'un modèle fonctionnel sur un modèle de plate-forme, tel que préconisé par MCSE et supporté par les outils CoFluent Studio (marque déposée). Une plate-forme représente l'ensemble des ressources d'exécution et les interconnexions entre celles-ci. L'éditeur graphique de CoFluent Studio (marque déposée) sert aussi à capturer les modèles de plate-forme constitués de processeurs (logiciels de type CPU ou DSP ou matériels de type ASIC ou FPGA) et mémoires partagées communicant par le biais de noeuds de communication. La figure 6 montre l'exemple de modèle de plate-forme considérée pour le modèle fonctionnel de la figure 5. Ce modèle de plate-forme comprend quatre processeurs d'exécution (référencés ProO, Prof, Pro2 et Pro3) et un réseau d'interconnexion 60 construit sur la base de trois routeurs physiques (référencés Routerl, Router2 et Router3). Les liens physiques entre les processeurs et les routeurs, et entre les routeurs, sont représentés par des noeuds de communication bidirectionnels ("communication nodes") (référencés NodeO à Node7). Ces noeuds représentent une abstraction de tout type de lien physique : bus, lien point à point série ou parallèle, etc. L'opération d'allocation (ou de "mapping") du modèle fonctionnel sur le modèle de plate-forme est réalisée d'une manière interactive avec l'outil CoFluent Studio (marque déposée). Dans une première étape, l'utilisateur vient simplement placer chaque fonction modélisée sur le constituant physique modélisé qu'il souhaite. Pour l'exemple considéré, et comme illustré par la figure 6, les fonctions modélisées sont allouées sur les processeurs modélisés comme suit : - les fonctions modélisées ANO et SN1 sont allouées sur le processeur modélisé ProO ; - la fonction modélisée AN1 est allouée sur le processeur modélisé Prol ; - la fonction modélisée SNO est allouée sur le processeur modélisé Pro2 ; - la fonction modélisée AN2 est allouée sur le processeur modélisé Pro3. Puis, l'un des outils CoFluent Studio (marque déposée) produit d'une manière automatique le modèle architectural permettant l'évaluation de ses performances et l'exploration d'architectures. Comme l'objectif est d'obtenir automatiquement la solution de routage au niveau architectural à partir du routage fonctionnel, la technique de l'invention mise en oeuvre dans cet outil consiste à placer le routeur fonctionnel modélisé 50 sur l'un des routeurs physiques modélisés du réseau d'interconnexion (celui référencé Router2 dans cet exemple). L'objectif de la solution, pour l'outil, est de déterminer automatiquement tous les chemins d'interconnexions fonctionnelles afin de déduire les tables de routage de chaque routeur physique modélisé. Pour l'exemple, la méthode mise en oeuvre repose sur la déclaration des routeurs modélisés Routerl et Router3 comme des passerelles d'accès entre les processeurs modélisés (ProO à Pro3) et le routeur modélisé Router2. La figure 7 présente le modèle architectural résultant de l'allocation illustrée sur la figure 6. Dans ce modèle architectural résultant, le routeur modélisé est en fait réalisé par une structure distribuée de routage (cadre en pointillés référencé 70) qui inclut : - les interfaces d'entrée et de sortie (Out Interface, In Interface) (71 à 74) pour chaque processeur modélisé (ProO à Pro3) pour la communication du routeur modélisé avec ses liens externes. Chaque interface de sortie exploite la table et méthode de routage du routeur fonctionnel modélisé ; - l'ensemble des routeurs physiques modélisés (Routerl à Router3) du réseau d'interconnexion 60. Chaque routeur modélisé exploite une table de routage automatiquement générée par l'outil. Ainsi la solution de routage au niveau architectural résulte de la seule utilisation de constituants modélisés configurés comme des routeurs modélisés (caractérisés par un attribut "MessageRouting"). Le routage fonctionnel global qui résulte de cette technique est optimal. En effet, une communication fonctionnelle qui se retrouve locale à un processeur modélisé, par exemple entre les fonctions modélisées ANO et SNI, est assurée localement au processeur modélisé par les interfaces, sans exploiter le lien d'accès externe. De plus, une communication fonctionnelle en inter-processeurs modélisés est assurée par le chemin le plus court, par exemple le routeur physique modélisé Routerl assure directement les échanges entre les processeurs modélisés ProO et Pro 1. REVENDICATIONS 1. Procédé de simulation d'un système complexe comprenant une pluralité de constituants, ledit procédé comprenant une étape de construction d'au moins un modèle du système complexe (911, 912), chaque modèle du système comprenant un ensemble hiérarchisé de constituants modélisés, chacun des constituants modélisés étant une instance d'une classe d'objet appartenant à un ensemble déterminé de classes d'objet, caractérisé en ce que ledit ensemble déterminé de classes d'objet comprend une classe Routeur , représentant un modèle abstrait de tout routeur, fictif ou réellement compris dans le système complexe, qui décrit un ensemble d'interconnexions entre au moins deux constituants modélisés, chaque instance de la classe Routeur étant appelée routeur modélisé, et en ce que chaque modèle du système comprend au moins un routeur modélisé (20 ; R1, R2 ; 40 ; 50). 2. Procédé selon la revendication 1, caractérisé en ce que chaque routeur modélisé possède un couple d'entrée/sortie pour chacun desdits au moins deux constituants modélisés dont ledit routeur modélisé décrit les interconnexions. 3. Procédé selon la revendication 2, caractérisé en ce que le nombre de couples d'entrée/sortie que possède chaque routeur modélisé peut être modifié de façon dynamique. 4. Procédé selon l'une quelconque des revendications 2 et 3, caractérisé en ce que chaque routeur modélisé utilise une table de routage pour aiguiller une requête reçue sur une de ses entrées, provenant d'un premier constituant modélisé, vers une de ses sorties, à destination d'un second constituant modélisé, l'aiguillage étant fonction du contenu de ladite requête. 5. Procédé selon la revendication 4, caractérisé en ce que ladite table de routage effectue un routage appartenant au groupe comprenant des routages statiques et des routages dynamiques. 6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que chaque modèle du système possède une topologie appartenant au groupe comprenant : - une topologie à un seul routeur modélisé ; - une topologie à au moins deux routeurs modélisés indépendants ;- une topologie à au moins deux routeurs modélisés hiérarchisés. 7. Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que ladite étape de construction permet d'obtenir au moins deux modèles simples du système comprenant chacun au moins un routeur modélisé, et ce que ledit procédé comprend une étape de construction d'un modèle plus complexe du système par combinaison desdits au moins deux modèles simples du système, avec emploi d'au moins un routeur modélisé pour représenter les interconnexions requises entre lesdits au moins deux modèles simples du système. 8. Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce que chaque routeur modélisé est défini au moins par un premier attribut (83) indiquant le nombre de communications simultanées possibles pour ledit routeur modélisé. 9. Procédé selon l'une quelconque des revendications 1 à 8, caractérisé en ce que chaque routeur modélisé est défini au moins par un second attribut (84) indiquant un temps de transfert dû audit routeur modélisé. 10. Procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce qu'il comprend une étape (911) de construction d'un modèle fonctionnel du système complexe, comprenant au moins un routeur fonctionnel modélisé. 11. Procédé selon l'une quelconque des revendications 1 à 10, caractérisé en ce qu'il comprend une étape (912) de construction d'un modèle de plate-forme du système complexe, comprenant au moins un routeur physique modélisé. 12. Procédé selon les revendications 10 et 11, caractérisé en ce qu'il comprend une étape (913) d'allocation distribuée dudit modèle fonctionnel sur ledit modèle de plate-forme, par allocation distribuée dudit au moins un routeur fonctionnel modélisé sur ledit au moins un routeur physique modélisé, permettant d'obtenir un modèle architectural dudit système complexe. 13. Procédé selon l'une quelconque des revendications 1 à 2, caractérisé en ce que ledit système complexe est un système électronique complexe. 14. Produit programme d'ordinateur téléchargeable depuis un réseau de communication et/ou enregistré sur un support lisible par ordinateur et/ou exécutable par un processeur, caractérisé en ce qu'il comprend des instructions de code de programmepour l'exécution des étapes du procédé selon au moins une des revendications 1 à 13, lorsque ledit programme est exécuté sur un ordinateur. 15. Moyen de stockage, éventuellement totalement ou partiellement amovible, lisible par un ordinateur, stockant un jeu d'instructions exécutables par ledit ordinateur pour mettre en oeuvre le procédé d'au moins une des revendications 1 à 13.