FR2645991A1 - Dispositif de traitement parallele d'information pour la commande en temps reel - Google Patents

Dispositif de traitement parallele d'information pour la commande en temps reel Download PDF

Info

Publication number
FR2645991A1
FR2645991A1 FR8905110A FR8905110A FR2645991A1 FR 2645991 A1 FR2645991 A1 FR 2645991A1 FR 8905110 A FR8905110 A FR 8905110A FR 8905110 A FR8905110 A FR 8905110A FR 2645991 A1 FR2645991 A1 FR 2645991A1
Authority
FR
France
Prior art keywords
bus
common
information
memory
microcontroller
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR8905110A
Other languages
English (en)
Other versions
FR2645991B1 (fr
Inventor
Jacques Pierre Franco Sonzogni
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Siemens Bendix Automotive Electronics SA
Original Assignee
Siemens Bendix Automotive Electronics SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Siemens Bendix Automotive Electronics SA filed Critical Siemens Bendix Automotive Electronics SA
Priority to FR8905110A priority Critical patent/FR2645991B1/fr
Publication of FR2645991A1 publication Critical patent/FR2645991A1/fr
Application granted granted Critical
Publication of FR2645991B1 publication Critical patent/FR2645991B1/fr
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • FMECHANICAL ENGINEERING; LIGHTING; HEATING; WEAPONS; BLASTING
    • F02COMBUSTION ENGINES; HOT-GAS OR COMBUSTION-PRODUCT ENGINE PLANTS
    • F02DCONTROLLING COMBUSTION ENGINES
    • F02D41/00Electrical control of supply of combustible mixture or its constituents
    • F02D41/24Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means
    • F02D41/26Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor
    • F02D41/266Electrical control of supply of combustible mixture or its constituents characterised by the use of digital means using computer, e.g. microprocessor the computer being backed-up or assisted by another circuit, e.g. analogue
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Chemical & Material Sciences (AREA)
  • Combustion & Propulsion (AREA)
  • Mechanical Engineering (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Le dispositif comprend plusieurs microcontrôleurs reliés par un bus commun 15 à des mémoires externes communes 16, 17. Chaque microcontrôleur est relié au bus commun 15 par un contrôleur de bus 18, 18', 18'' également relié au bus interne 14, 14', 14'' du microcontrôleur et aux deux autres contrôleurs, suivant une chaîne bouclée. Une mémoire-cache 21 contenant des informations extraites des mémoires externes permet d'assurer une exploitation locale de ces informations, sans passer constamment par une requête en propriété du bus commun 15. Application à un dispositif multicontrôleur, de puissance de calcul accru, notamment pour la commande d'un moteur à combustion interne de véhicule automobile.

Description

La présente invention est relative à un dispositif de traitement parallèle d'informations dans le cadre d'une commande en temps réel et, plus particulièrement, a un tel dispositif du type "multicontrôleur".
On connait des dispositifs de traitement d'informations en temps réel conçus pour commander un système physique tel que, par exemple, un moteur a combustion interne pour véhicule automobile. De nos jours, un calculateur électronique commande couramment certaines fonctions du moteur telles que l'allumage et/ou l'injection d'essence. A ces fonctions de base s'ajoutent de plus en plus souvent des fonctions additionnelles de diagnostic, de commande de pompe å essence, par exemple ou des fonctions optionnelles : régulation du mélange air/carburant par sonde å oxygène, fonction d'allumage anticliquetis, commande de climatisation, de ralenti, de la recirculation des gaz d'échappement, d'un turbocompresseur, etc...
Toutes ces fonctions conduisent à concevoir des calculateurs présentant une puissance de calcul de plus en plus grande. Une première solution consiste donc à utiliser dans ces calculateurs, des microcontrôleurs de plus en plus puissants, en remplaçant par exemple des microcontrôleurs 8 bits par des microcontrôleurs 16 bits.
On appelle "microcontrôleur" un circuit constitué par un processeur et des unités périphériques interconnectés de manière à assurer la gestion de signaux externes en temps réel. Cette solution n'est cependant pas avantageuse du fait du faible développement actuel des microcontrôleurs 16 bits et surtout du fait que, dans les applications citées plus haut en particulier, la part des calculs à 8 bits est supérieure à celle des calculs à 16 bits.
On arrive alors å accroître la puissance de calcul par l'utilisation de plusieurs microcontrôleurs. Le dispositif "multicontroleur" ainsi constitué présente couramment une architecture du type maître/esclave telle que celle représentée a la figure 1 du dessin annexé. Sur cette figure il apparaît qu'un microcontrleur-maitre 1 peut accéder à un programme enregistré dans une mémoire
EPROM externe 2, par l'intermédiaire d'un bus 3 qui établit également une liaison avec un microcontrôleur- esclave 4 à travers une mémoire RAM de dialogue, interne au microcontrôleur- esclave 4. Celui-ci accède aussi à un programme enregistré dans une mémoire ROM interne 6.
Dans les applications citées dessus, il est indispensable que le calculateur puisse être adapté aux caractéristiques spécifiques du système physique commandé, tel qu'un moteur à combustion interne, pour que le calculateur soit-utilisable avec des moteurs différents.
Dans le cas -du dispositif de la figure 1, on peut pour cela programmer convenablement la mémoire EPROM -2.
Le microcontrôleur-maitre peut alors piloter le microcontrôleur-esclave 4 qui exécute les tâches qui lui sont demandées. Pour ce faire, le microcontrôleur-esclave utilise un programme situé en mémoire ROM 6 à l'intérieur mêe du microcontrôleur-esclave, ce programme étant alors non modifiable en vue d'une adaptation à tel ou tel moteur.
L'architecture maître/esclave représentée à la figure 1, n'offre donc pas une souplesse optimale du point de vue programmabilité et évolutivité. Elle est en effet limitée en souplesse par le fait que le microcontrôleur-esclave n'accède pas à la mémoire externe
EPROM, du fait que le microcontrôleur-maitre 1 est le seul propriétaire du bus de liaison 3. Elle est en outre limitée en puissance de calcul par la taille de la ROM interne du microcontrôleur-esclave et par les temps d'attente qui sont imposés à ce dernier par le micro contrôleur-maître.
La présente invention a pour but de réaliser un dispositif de traitement d'informations, dans le cadre d'une commande en temps réel, qui ne présente pas ces inconvénients.
La présente invention a aussi pour but de réaliser un tel dispositif qui présente une grande souplesse de programmation, et une puissance de calcul supérieure à celle obtenue avec une architecture maître/esclave, même dans une configuration à deux microcontrôleurs.
La présente invention a encore pour but de réaliser un tel dispositif dont l'architecture permet la construction de systèmes à plus de deux microcontrôleurs, permettant d'accroître la puissance de calcul à volonté.
La présente invention a également pour but de réaliser un tel dispositif- dans lequel les microcontrôleurs utilisés ne comprennent pas de mémoire fermée (ROM), à programmation non modifiable, de manière à accroître la souplesse d'adaptation du dispositif.
On atteint ces buts de l'invention, ainsi que d'autres qui apparaîtront dans la suite de la présente description, avec un dispositif de traitement parallèle d'informations en temps réel pour la commande d'un système physique dont l'état est connu par des signaux externes délivrés par des capteurs et exploités par le dispositif pour former des signaux de commande en temps réel d'actionneurs réagissant sur l'état du système physique.
Ce dispositif, wqui comprend plusieurs microcontrôleurs, est remarquable en ce qu'il comprend un bus commun à tous les microcontrôleurs, des moyens de mémoire communs accessibles à tous les microcontrôleurs par l'intermédiaire du bus commun et des moyens pour commander sélectivement l'accès de chaque microcontrôleur à ces moyens de mémoire communs.
Ces moyens de commande sélective d'accès sont constitués par plusieurs contrôleurs de bus interconnectés, propre chacun à un microcontrôleur particulier, installés entre le bus interne du microcontrôleur et le bus commun, chaque contrôleur de bus étant muni d'une mémoire-cache pour conserver des informations sélectivement extraites des moyens de mémoire communs sous la commande du microcontrôleur.
Suivant une caractéristique avantageuse du dispositif selon l'invention, les contrôleurs de bus sont interconnectés en chaîne bouclée.
Chaque contrôleur de bus comprend un bloc de gestion de cohérence connecté au bus commun et au bus interne pour envoyer par une ligne sur le bus interne des signaux d'interruption assurant la transmission de signaux de Hrendez-vous" entre microcontrôleurs et la synchronisation des transmissions de messages circulant sur le bus commun.
Pour la lecture d'informations contenues dans les moyens de mémoire communs, chaque contrôleur de bus comprend un bloc de mémorisation et de comparaison d'adresses d'informations délivrées par le processeur du microcontrôleur considéré, pour comparer ces adresses à celles des informations contenues en mémoire-cache, de manière à commander le transfert d'une information de la mémoire-cache vers le processeur quand cette information est contenue dans la mémoire-cache, et un bloc de gestion de propriété du bus commun actionné par le bloc de mémorisation et de comparaison quand l'information recherchée n'est pas en mémoire-cache, pour prendre sélectivement propriété du bus en fonction des requêtes en propriété émises par les autres contrôleurs, de manière à assurer le transfert de l'information recherchée, non contenue en mémoire-cache, des moyens de mémoire communs vers la mémoire-cache.
Pour l'écriture des informations dans les moyens de mémoire communs, le contrôleur de bus associé au microcontrôleur émetteur de l'information comprend des moyens de mise en mémoire-tampon des informations à écrire, le bloc de gestion de la propriété du bus commun commandant sélectivement le transfert de l'information de la mémoiretampon vers les moyens de mémoire communs, en fonction des requêtes d'accès au bus commun posées par les autres microcontrôleurs.
Les moyens de mémoire communs peuvent comprendre une mémoire de programme du type EPROM et, éventuellement, une mémoire de données du type RAM.
Ces mémoires, combinées à l'utilisation d'une mémoire-cache dans le contrôleur de bus incorporé à chaque microcontrôleur permettent, grâce à l'architecture choisie, d'accroître considérablement la puissance de calcul disponible à partir d'un nombre donné de microcontrôleurs. En effet, les mémoires-caches, comme on le verra plus loin, permettent de diminuer le taux d'occupation du bus commun par-chaque microcontrôleur.
Grâce à cette diminution du taux d'occupation il est alors possible de connecter plusieurs microcontrôleurs au bus commun, ces microcontrôleurs accédant alors tous aux moyens de mémoire communs, alors que dans la configuration maître-esclave écrite en préambule de la présente description, seul le microcontrôleur-maitre peut accéder à une mémoire externe.
Au dessin annexé, donné seulement à titre d'exemple
la figure 1 illustre un dispositif multicontrôleur de la technique antérieure, présentant l'architecture maître-esclave décrite et discutée en préambule de la présente description,
la figure 2 illustre de manière générale l'architecture du dispositif multicontrôleur suivant la présente invention et,
la figure 3 est un diagramme fonctionnel d'un contrôleur de bus incorporé à chacun des microcontrôleurs du dispositif de la figure 2.
A la figure 2 du dessin annexé il apparaît que le dispositif suivant l'invention comprend trois microcon trôleurs 10, 10', 10" identiques. Comme on le verra plus loin, le dispositif suivant l'invention n'est pas limité à l'utilisation de trois microcontrôleurs et pourrait en comporter, par exemple, deux ou quatre, suivant la puissance de calcul nécessaire. Classiquement, les microcontrôleurs 10, 10', 10" comprennent des processeurs 11, 11n l1" respectivement associés à des périphériques d'entrées/sorties 12, 12', 12" et à une mémoire interne 13, 13', 13" respectivement. Un bus interne 14, 14', 14", respectivement interconnecte dans chaque microcontrôleur le processeur, la mémoire interne, les périphériques d'entrées/sorties et les contrôleurs de bus.
Suivant la présente invention, les microcontrôleurs sont interconnectés par un bus commun 15 bidirectionnel qui permet à chaque microcontrôleur d'accéder à des moyens de mémoire communs. Ces moyens de mémoire communs sont constitués par exemple par une mémoire morte du type EPROM 16 et une mémoire vive RAM 17. La mémoire EPROM 16 est propre à recevoir les instructions d'un ou plusieurs programmes tandis que la mémoire vive 17 reçoit des informations échangées par les microcontrôleurs.
L'architecture choisie, qui présente l'avantage de mettre à la disposition des microcontrôleurs des moyens de mémoire communs de manière à augmenter la souplesse et la puissance de calcul de l'ensemble, implique néanmoins la détermination, à chaque instant, du microcontrôleur qui est le propriétaire du bus commun 15. Pour ce faire, les microcontrôleurs du dispositif suivant l'invention comprennent chacun un contrôleur de bus 18, 18', 18" respectivement, relié au bus interne du microcontrôleur et au bus commun. Sur la figure 2 il apparaît en outre que les contrôleurs de bus 18, 18', 18", sont interconnectés par des lignes 20, 20', 20", suivant une configuration connue dite "en chaîne bouclée".Ces lignes autorisent l'arbitrage de propriété du-bus entre microcontrôleurs et la configuration en "chaîne bouclée" qui a été adoptée permet de limiter le nombre des entrées et des sorties nécessaires à ces arbitrages.
On peut, à titre d'exemple seulement, illustrer l'invention dans son application à la commande d'un système physique tel qu'un moteur à combustion interne de véhicule automobile. Dans cette application, des signaux externes venus de capteurs de pression, de vitesse, de température, etc... sont traités par le dispositif pour en déduire des signaux de commande d'actionneurs, tels que des injecteurs de carburant, un circuit d'allumage, etc... Pour ces traitements on charge en mémoire EPROM 16 des jeux d'instructions et des cartographies, du type pression d'admission/vitesse de rotation du moteur, pour la commande de l'avance à l'allumage, du temps d'ouverture d'injecteurs d'essence ou de l'une des autres fonctions mentionnées en préambule, par exemple.Du fait du chargement de ces programmes et cartographies en mémoire externe, il est aisé d'adapter le dispositif suivant l'invention à un moteur particulier, en chargeant en mémoire les cartographies qui lui sont spécifiques, notamment. Dans le dispositif suivant l'invention, on évite l'utilisation d'une ROM interne non modifiable incorporée au microcontrôleur-esclave dans l'architecture maître/esclave de la technique antérieure, représentée à la figure 1.
Toujours dans l'application ci-dessus, la RAM commune 17 sert de "boite å lettres" entre les microcontrôleurs et accueille les données qui doivent être échangées par ceux-ci, pour l'exécution de certaines tâches. Par exemple, un microcontrôleur peut traiter un signal venu d'un capteur de position d'un arbre à came, le résultat du traitement étant nécessaire à l'exécution des tâches d'un autre microcontrôleur traitant les informations en provenance d'un autre capteur sensible, lui, au défilement de dents formées à la périphérie d'un disque tournant avec l'arbre de sortie du moteur, pour permettre le repérage précis de la position des différents cylindres du moteur. Des données sont alors échangées par les microcontrôleurs concernés grâce à la mémoire RAM 17.
On revient à la description générale de la structure du dispositif suivant l'invention, et en particulier à la description de la structure d'un contrôleur de bus incorporé à un des microcontrôleurs du dispositif. On se réfère notamment à la figure 3 du dessin annexé, où l'on a représenté l'architecture d'un des contrôleurs de bus 18, 18', 18", ceux-ci étant tous identiques comme on l'a indiqué précédemment. A titre d'exemple on a représenté le contrôleur de bus 18 du microcontrôleur 10 de la figure 2.
Suivant une caractéristique essentielle du dispositif selon l'invention, un contrôleur de bus comprend une mémoire-cache telle que celle référencée 21 à la figure 3. Les mémoires-caches, ou antémémoires, sont des mémoires-tampons interposées dans certains systèmes informatiques entre des unités de traitement et la mémoire centrale du système. Suivant l'invention, la mémoire-cache est utilisée pour retenir dans le contrôleur de bus des informations telles que des instructions de programmes ou des données, venues des mémoires communes 16 et 17, de manière à établir un accès direct à ces informations pour le processeur du microcontrôleur, qui n'a donc pas- à aller les chercher en mémoire commune 16 ou 17.On diminue ainsi considérablement le taux d'occupation du bus commun ce qui, par contrecoup, permet des utilisations successives du même bus par plusieurs microcontrôleurs, pour accéder aux mémoires communes dans le cas où l'information recherchée ne se trouve pas en mémoirecache.
Les commandes en temps réel telles que celles évoquées ci-dessus, concernant la commande d'un moteur à combustion interne, sont mises en oeuvre à l'aide de programmes essentiellement séquentiels (donc à exécutions consécutives), à faible taux de récurrence (donc avec peu de boucles) et comportant un grand nombre de sauts (rupture de séquence).
On pourra alors, à titre d'exemple seulement, avec une mémoire-cache de taille limitée, par exemple à quelques mots, organiser de manière optimale un transfert local d'informations entre le processeur et la mémoirecache, de manière à minimiser le taux d'occupation du bus commun.
On améliore encore la performance du dispositif en choisissant judicieusement le rapport entre la largeur du bus commun 15 et celle du bus interne du microcontrôleur.
Lors de l'exécution d'une section de programme séquentielle (donc à instructions consécutives), l'accès par le processeur du microcontrôleur à une instruction non contenue en mémoire-cache déclenche l'accès par le contrôleur de bus aux moyens de mémoire communs.
Ainsi, en un seul accès aux moyens de mémoire communs, le contrôleur de bus peut acquérir n instructions, n étant le rapport largeur bus commun/largeur bus interne, qu'il peut servir consécutivement au processeur, réduisant ainsi le taux d'occupation du bus commun.
Outre la mémoire-cache 21, le contrôleur de bus représenté à la figure 3 comprend un bloc 22 de mémorisation et de comparaison d'adresses, un bloc 23 de gestion de propriété du bus 15, un bloc 24 de gestion de cohérence, et une mémoire-tampon 25 utilisée pour l'écriture d'informations par le processeur 11, dans la
RAM commune 17. Le bloc 22 sert à comparer les adresses des informations contenues dans la mémoire-cache 21 avec une adresse demandée par le processeur. Si l'adresse demandée existe dans la mémoire cache, l'information correspondante est transférée sur le bus interne 14 pour
J être exploitée par le processeur.Dans le cas contraire, le bloc 22 déclenche l'activation du bloc 23 de gestion de propriété qui émet une requête d'accès au bus commun 15, visant à aller rechercher l'information dans les moyens de mémoire communs 16, 17, comme on l'expliquera en détail dans la suite en liaison avec la description du fonctionnement du dispositif suivant l'invention. La mémoire-tampon 25 permet de retenir une information que le processeur souhaite écrire en mémoire commune jusqu'S ce que le microcontrôleur ait pu prendre la propriété du bus 15, qui permet au processeur d'accéder à la mémoire commune.
Le bloc 23 de gestion de propriété regroupe des moyens d'attente de la prise en compte d'une requête du microcontrôleur aux mémoires communes, des moyens d'émission/réception de signaux de contrôle, et un moyen qui détermine le microcontrôleur qui dispose de la propriété du bus 15 pour accéder aux mémoires communes. Ce moyen est, par exemple, constitué par une connexion en chaîne bouclée 20, 20' aux contrôleurs de bus des microcontrôleurs adjacents.
Le bloc 24 de gestion de cohérence est connecté au bus commun 15, au bus interne 14 et au bloc 22 de comparaison pour a) envoyer par une ligne 29 sur le bus interne des signaux d'interruption assurant la transmission de signaux de "rendez-vous" entre microcontrôleurs et la synchronisation des transmissions de messages circulant sur le bus commun 15 et b) émettre sur une ligne 28 des signaux d'invalidation reçus par le bloc 22 pour assurer l'invalidation sélective des informations contenues dans la mémoire-cache 22, quand l'une de celles-ci a connu une mise à jour.
Il est à noter que le bloc de mémorisation et de comparaison d'adresses 22 comprend une mémoire (non représentée) qui contient les adresses des informations contenues dans la mémoire-cache 21, ces adresses étant sélectivement invalidées comme décrit ci-dessus par des signaux reçus du bloc 24 de gestion de cohérence.
La mémoire-tampon 25 est utilisée lorsque le processeur veut écrire une information à une adresse donnée de la RAM commune 17. Une requête en propriété du bus commun 15 est alors envoyée au bloc 23 qui va commander sélectivement le transfert de l'information, de la mémoire-tampon 25 vers la RAM commune 17, en fonction des requêtes en propriété du bus posées par les autres microcontrôleurs.
On décrira maintenant l'enchaînement des tâches exécutées par le dispositif suivant l'invention, à la suite d'une requête en lecture d'instructions ou de données posée par le microcontrôleur. On décrira ensuite l'enchaînement des tâches qui correspond à une requête en écriture de données, posée par le microcontrôleur.
On notera tout d'abord que pour la lecture d'une instruction par le microcontrôleur, celui-ci s'adresse à la mémoire EPROM 16 tandis que pour la lecture d'une donnée, le microcontrôleur s'adresse à la mémoire RAM commune 17. A cette différence près, l'organisation de la suite des tâches en lecture est la même et la description qui va suivre, relative à la lecture d'une instruction en mémoire EPROM 16, ne sera donc pas répétée pour la lecture d'une donnée en mémoire RAM 17.
Pour la lecture d'une instruction en mémoire EPROM 16, le microcontrôleur déclenche un accès de lecture de cette mémoire et fournit une adresse. Le contrôleur de bus détecte la demande d'accès, enregistre l'adresse et la compare à celles stockées par le bloc de mémorisation et comparaison d'adresses 22. Si la comparaison révèle la présence de l'adresse demandée dans la mémoire-cache 21, le bloc 22 commande, par une ligne 26, l'extraction de l'instruction demandée, de la mémoire-cache, et l'envoie au processeur li par le bus interne 14.
Si la comparaison fait apparaître que l'adresse demandée n'est pas contenue en mémoire-cache, le bloc 22 enregistre alors la nouvelle adresse et active le bloc 23 de gestion de propriété par une ligne 27. Le bloc 23 demande alors la propriété du bus commun 15 et attend, suivant le principe de la "chaîne bouclée", l'autorisation d'émettre sur le bus commun 15. Il émet alors soit des signaux d'attente enyoyés au microcontrôleur pour l'informer de ce que le bus est indisponible, soit des signaux de contrôle adressés à la mémoire 16 pour un accès immédiat à cette mémoire. Le bloc 22 de mémorisation et de comparaison d'adrésses envoie ensuite par le bus 15, à la mémoire 16, l'adresse de l'instruction recherchée, la mémoire-cache 21 sauvegardant en retour le mot d'instruction demandé.L'instruction demandée est alors immédiatement disponible pour un emploi par le microcon trôleur.
Pour l'écriture d'une donnée en RAM commune 17, le microcontrôleur déclenche un accès d'écriture en mémoire 17 et- fournit une adresse pour l'écriture de cette donnée.
Le contrôleur de bus détecte la demande d'accès, enregistre l'adresse et active le bloc de gestion de propriété 23. Le contrôleur enregistre ensuite, en mémoire-tampon 25, la donnée à écrire en mémoire 17 de données. Le bloc de gestion de propriété 23 demande la propriété du bus commun 15 et attend, suivant le principe de la chaîne bouclée, l'autorisation d'émettre sur le bus commun. Il émet ensuite soit des signaux d'attente destinés au processeur (pour lui indiquer que le bus n'est pas disponible) soit des signaux de contrôle adressés à la mémoire 17*en accès immédiat. Après acquisition du bus 15, le bloc de mémorisation et de comparaison 22 envoie à la mémoire 17 l'adresse de la donnée à écrire. Celle-ci est ensuite transmise par la mémoire tampon 25.On notera que la taille du transfert élémentaire alors opéré est minimale, c'est-à-dire de 1 octet. Les blocs de gestion de cohérence des contrôleurs de bus 18' et 18" des autres microcontrôleurs détectent une écriture en mémoire de données et comparent l'adresse à celles stockées dans leurs blocs de mémorisation. Si la comparaison fait apparaître que cette adresse est déjà enregistrée dans ces blocs de mémorisation, le bloc de gestion de cohérence envoie par la ligne 28 un signal d'invalidation de l'adresse concernée ' dans le bloc 22. Ainsi un microcontrôleur ne risque-t-il pas d'utiliser la donnée anciennement contenue cette adresse dans -sa mémoirecache et qui n'est plus valable du fait de la mise à jour qui vient d'être réalisée par le microcontrôleur par écriture d'une nouvelle donnée à cette adresse. Si, au contraire, la comparaison fait apparaître que l'adresse en question n'est pas contenue dans le bloc de mémorisation et de comparaison d'adresses 22, la ligne 28 reste inactive. Ceci découle du fait que les informations contenues en mémoire-cache n'ayant pas été mises à jour, il nty a pas lieu de les modifier.
Ainsi il apparaît que, tant en lecture de données ou d'instructions qu'en écriture de données, le dispositif suivant l'invention est protégé d'une utilisation, par les microcontrôleurs du dispositif, d'informations non mises à jour dans les mémoires-caches.
Pour l'échange d'informations entre les microcon frôleurs du dispositif suivant l'invention, le bloc de gestion de cohérence est sensible aux informations circulant surs le bus 15, par exemple à l'écriture d'un message quelconque à une adresse prédéterminée, pour envoyer sur le bus interne 14, par la ligne 29, des signaux d'interruption propres à synchroniser des "rendezvous" entre microcontrôleurs. De tels "rendez-vous" interviennent, par exemple, lorsque l'exécution de certaines tâches par un microcontroleur exige des informations mises à jour par un autre microcontrôleur.
Dans l'application citée plus haut à la commande d'un moteur à combustion interne, c'est le cas, par exemple, entre les microcontrôleurs responsables du traitement d'un signal de position d'un arbre à came et celui qui est responsable du traitement d'un signal "dents" venu d'un capteur sensible au défilement des dents périphériques d'un disque solidaire en rotation de l'arbre de sortie du moteur, car c'est l'ensemble des informations ainsi transmises et traitées qui permet au microcontrôleur qui traite le signal "dents" de délivrer continuellement une information précise concernant les positions respectives des cylindres du moteur, à l'intérieur de leurs cycles de fonctionnement.
A la fin d'une série d'écritures de données, le microcontrôleur qui a mis à jour la mémoire 17 peut on prévenir les autres microcontrôleurs en écrivant, à une adresse prédéterminée, une donnée codée, fonction du message qu'il veut transmettre. Ceci permet de synchroniser et de séquencer les tâches entre les différents microcontrôleurs.
Ayant ainsi décrit la structure et le fonctionnement du dispositif de traitement parallèle d'informations en temps réel suivant la présente invention, il apparaît que celui-ci présente divers avantages. Tout d'abord, du fait que chaque microcontroleur peut accéder à une mémoire ouverte telle que la mémoire EPROM 16, il est possible de programmer simplement le dispositif suivant l'invention, avec une grande souplesse. Comme on l'a vu plus haut, cet avantage est tout-à-fait déterminant dans l'exemple d'application cité ci-dessus à la commande d'un moteur à combustion interne, car cette possibilité de programmation permet d'adapter simplement le dispositif à des moteurs différents, suivant les souhaits du constructeur dudit moteur.
L'architecture du dispositif suivant l'invention procure en outre une augmentation notable de la puissance de calcul. En effet, grâce aux mémoires-caches, les microcontrôleurs n' accèdent pas constamment aux ressources communes constituées par les mémoires 16 et 17. Des estimations statistiques ont permis de mettre en évidence le fait que, dans un dispositif suivant l'invention à deux microcontrôleurs, la puissance de calcul est nettement supérieure à celle obtenue avec la solution maître- esclave. En effet, dans cette dernière solution, la puissance de calcul est égale à environ 1,2 fois la puissance de calcul d'un microcontrôleur seul. Avec l'architecture du dispositif suivant l'invention cette puissance passe à 1,5 fois la puissance de calcul d'un microcalculateur unique.D'une manière plus générale on a pu estimer, suivant l'application traitée, que la puissance de calcul du dispositif suivant l'invention avec deux microcontrôleurs est comprise entre 1,31 fois la puissance de calcul d'un microcontrôleur unique et deux fois la puissance de calcul d'un tel microcontrôleur.
L'architecture du dispositif suivant l'invention permet de construire des systèmes comprenant plus de deux microcontrôleurs, par exemple trois ou quatre microcontrôleurs, en fonction de la puissance de calcul demandée. Par ordre de puissance de calcul croissante, on peut alors adopter l'une quelconque des configurations suivantes
a) un microcontrôleur avec un bus commun 8 bits,
b) deux microcontrôleurs avec un bus commun 8 bits,
c) deux microcontrôleurs avec un bus commun à 16
bits,
d) trois microcontrôleurs avec un bus commun à 16
bits,
e) quatre microcontrôleurs avec un bus commun à 16
bits.
On remarquera en outre que les microcontrôleurs du dispositif suivant l'invention ne comprennent pas une mémoire fermée ROM, contrairement aux architectures "maître-esclave" décrites en préambule de la présente description. Ceci accroît encore la souplesse de programmation du dispositif puisqu'on évite ainsi la fabrication du circuit du microcontrôleur en version finale, dans laquelle une telle mémoire ROM devrait être programmée définitivement.
Bien entendu l'invention n'est pas limitée au mode de réalisation décrit et représenté, qui n'a été donné qu'à titre d'exemple. Outre les fonctionnalités décrites ci-dessus du contrôleur de bus incorporé à chacun des microcontrôleurs du dispositif suivant l'invention, d'autres fonctionnalités spéciales pourraient être ajoutées : anticipation des demandes d'instructions, tests de parité lors des transferts, etc...

Claims (11)

REVENDICATIONS
1. Dispositif de traitement parallèle d'informations en temps réel pour la commande d'un système physique dont l'état est connu par des signaux externes délivrés par des capteurs et exploités par le dispositif pour former des signaux de commande en temps réel d'actionneurs réagissant sur l'état du système physique, ce dispositif, du type comprenant plusieurs microcontrôleurs, étant caractérisé en ce qu'il comprend (a) un bus commun (15) à tous les microcontrôleurs (10, 10', 10"), (b) des moyens (16, 17) de mémoire communs accessibles à tous les microcontrôleurs (10, 10', 10") par l'intermédiaire du bus commun (15) et (c) des moyens (18, 18', 18") pour commander sélectivement l'acces de chaque microcontrôleur à ces moyens de mémoire communs.
2. Dispositif conforme à la revendication 1, caractérisé en ce que les moyens (18, 18 1 t 18") de commande sélective d'accès sont constitués par plusieurs contrôleurs de bus interconnectés, propre chacun à un microcontrôleur particulier, installés entre un bus interne (14, 14', 14") du microcontrôleur et le bus commun (15), chaque contrôleur de bus étant muni d'une mémoirecache (21) pour conserver des informations sélectivement extraites des moyens de mémoire communs (16, 17), sous la commande du microcontrôleur.
3. Dispositif conforme à la revendication 2, caractérisé en ce que chaque contrôleur de bus comprend un bloc de gestion de cohérence (24) connecté au bus commun (15) et au bus interne (14) pour envoyer par une ligne (29) sur le bus interne (14) des signaux d'interruption assurant la transmission de signaux de "rendez-vous" entre microcontrôleurs et la synchronisation des transmissions de messages circulant sur le bus commun (15).
4. Dispositif conforme à la revendication 3, caractérisé en ce que chaque contrôleur de bus comprend en outre, pour la lecture d'informations contenues dans les moyens de mémoire communs, un bloc (22) de mémorisation et de comparaison d'adresses d'informations délivrées par- le processeur du microcontrôleur, pour comparer ces adresses à celles des informations contenues en mémoire-cache (21), de manière à commander le transfert d'une information de la mémoire-cache vers le processeur quand cette information est contenue dans la mémoire-cache (21), et un bloc (23) de gestion de propriété du bus commun actionné par le bloc de mémorisation et comparaison (22) quand l'information recherchée n'est pas en mémoire-cache, pour prendre sélectivement propriété du bus en fonction des requêtes en propriété émises par les autres contrôleurs, de manière à- assurer le transfert de l'information recherchée non contenue en mémoire-cache, des moyens de mémoire communs vers la mémoire-cache.
5. Dispositif conforme à la revendication 4, caractérisé en ce que les blocs de gestion de propriété du bus sont interconnectés en chaîne bouclée (20, 20', 20").
6. Dispositif conforme à la revendication 4, caractérisé en ce que ladite information recherchée, non contenue en mémoire-cache, est sauvegardée dans cette mémoire avant d'être transférée au microcontrôleur sous la commande du bloc (22) de comparaison.
7. Dispositif conforme à l'une quelconque des revendications 4 à 6, caractérisé en ce que, pour l'écriture d'informations dans les moyens de mémoire communs, le contrôleur de bus associé au microcontrôleur émetteur de l'information comprend des moyens de mise en mémoire-tampon (25) des informations à écrire, le bloc (23) de gestion de la propriété du bus commun commandant sélectivement le transfert de l'information de la mémoiretampon (25) vers les moyens de mémoire communs (17), en fonction des requêtes d'accès au bus commun posées par les autres microcontrôleurs.
8. Dispositif conforme à l'une quelconque des revendications 4 à 7, caractérisé en ce que le bloc de gestion de cohérence (24) émet sur une ligne (28) des signaux d'invalidation reçus par le bloc (22) de comparaison pour assurer l'invalidation des informations contenues dans la mémoire-cache qui ont subies une mise à jour.
9. Dispositif conforme à la revendication 8, caractérisé en ce que le bloc de comparaison comprend une mémoire qui contient les adresses des informations contenues dans la mémoire-cache, ces adresses étant sélectivement invalidées par les signaux reçus du bloc de gestion de cohérence.
10. Dispositif conforme à l'une quelconque des revendications précédentes, caractérisé en ce que les moyens de mémoire communs (16, 17) comprennent une mémoire de programme du type EPROM (16) et, éventuellement, une mémoire de données du type RAM (17).
11. Application du dispositif conforme à l'une quelconque des revendications précédentes, à la commande des fonctions d'injection et/ou d'allumage d'un moteur à combustion interne.
FR8905110A 1989-04-18 1989-04-18 Dispositif de traitement parallele d'information pour la commande en temps reel Expired - Fee Related FR2645991B1 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR8905110A FR2645991B1 (fr) 1989-04-18 1989-04-18 Dispositif de traitement parallele d'information pour la commande en temps reel

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR8905110A FR2645991B1 (fr) 1989-04-18 1989-04-18 Dispositif de traitement parallele d'information pour la commande en temps reel

Publications (2)

Publication Number Publication Date
FR2645991A1 true FR2645991A1 (fr) 1990-10-19
FR2645991B1 FR2645991B1 (fr) 1994-09-09

Family

ID=9380841

Family Applications (1)

Application Number Title Priority Date Filing Date
FR8905110A Expired - Fee Related FR2645991B1 (fr) 1989-04-18 1989-04-18 Dispositif de traitement parallele d'information pour la commande en temps reel

Country Status (1)

Country Link
FR (1) FR2645991B1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10160476A1 (de) * 2001-12-08 2003-06-26 Daimler Chrysler Ag Universelle Steuervorrichtung und Verfahren zur Motorsteuerung bei Verkehrsmitteln

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4035777A (en) * 1973-12-14 1977-07-12 Derek Vidion Moreton Data processing system including parallel bus transfer control port
US4414624A (en) * 1980-11-19 1983-11-08 The United States Of America As Represented By The Secretary Of The Navy Multiple-microcomputer processing
EP0194462A2 (fr) * 1985-03-15 1986-09-17 Wang Laboratories Inc. Bus-système pour communication entre processeurs

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4035777A (en) * 1973-12-14 1977-07-12 Derek Vidion Moreton Data processing system including parallel bus transfer control port
US4414624A (en) * 1980-11-19 1983-11-08 The United States Of America As Represented By The Secretary Of The Navy Multiple-microcomputer processing
EP0194462A2 (fr) * 1985-03-15 1986-09-17 Wang Laboratories Inc. Bus-système pour communication entre processeurs

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CONFERENCE RECORD OF THE 29TH IEEE VEHICULAR TECHNOLOGY CONFERENCE, Arlington Heights, Illinois, 27-30 mars 1979, pages 396-403, IEEE, New York, US; M. BELTRAMI et al.: "Multiprocessor system for developing control strategies of car engines" *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10160476A1 (de) * 2001-12-08 2003-06-26 Daimler Chrysler Ag Universelle Steuervorrichtung und Verfahren zur Motorsteuerung bei Verkehrsmitteln
DE10160476B4 (de) * 2001-12-08 2004-09-30 Daimlerchrysler Ag Vorrichtung und Verfahren zur Motorsteuerung bei Verkehrsmitteln

Also Published As

Publication number Publication date
FR2645991B1 (fr) 1994-09-09

Similar Documents

Publication Publication Date Title
EP0032863B1 (fr) Procédé et dispositif pour gérer les conflits posés par des accès multiples à un même cache d'un système de traitement numérique de l'information comprenant au moins deux processeurs possédant chacun un cache
FR2881540A1 (fr) Procede et systeme destines a empecher que des lignes de memoire cache soient videes jusqu'a ce que les donnees stockees dans celles-ci ne soient utilisees.
EP0434483B1 (fr) Processeur à plusieurs unités de traitement microprogrammées
FR2539528A1 (fr) Systeme a microprocesseur comportant deux processeurs
EP1510925A2 (fr) Mémoire cache à lecture asynchrone et dispositif de controle de l'accès à une mémoire de données comprenant une telle mémoire cache
FR2632090A1 (fr) Commande du fonctionnement en pipe-line d'un systeme de micro-calculateur utilisant le dimensionnement dynamique des bus avec un processeur 80386 et une unite de commande d'antememoire 82385
FR2503899A1 (fr) Procede et dispositif de transmission de donnees numeriques
FR2528195A1 (fr) Systeme de communication entre ordinateurs
EP0684551B1 (fr) Circuit électronique et méthode pour l'utilisation d'un coprocesseur
FR2707774A1 (fr) Procédé de gestion cohérente des échanges entre des niveaux d'une hiérarchie de mémoires à au moins trois niveaux.
FR2834361A1 (fr) Module de securisation de donnees par chiffrement/dechiffrement et/ou signature/verification de signature
FR2764097A1 (fr) Detection de points chauds dans une machine avec memoire a acces non uniforme
FR2645991A1 (fr) Dispositif de traitement parallele d'information pour la commande en temps reel
FR2493562A1 (fr) Systeme d'utilisation de disques en commun et d'intercommunication entre disques
FR2536884A1 (fr) Reseau de transfert de donnees entre plusieurs processeurs et une memoire
FR2792745A1 (fr) Architecture d'interconnexion modulaire pour machine multiprocesseur extensible, mettant en oeuvre une hierarchie de bus virtuelle a plusieurs niveaux et la meme brique de base pour tous les niveaux
FR2717921A1 (fr) Dispositif de gestion de conflit d'accès entre un CPU et des mémoires.
FR2759178A1 (fr) Circuit de gestion de memoire dans un environnement multi-utilisateurs avec requete et priorite d'acces
EP1603049A1 (fr) Interfacage de modules fonctionnels dans un systeme sur une puce
FR2733614A1 (fr) Systeme multiprocesseur en groupes et procede pour controler une phase d'horloge de groupes
FR2769727A1 (fr) Procede et systeme de controle d'acces partages a une memoire vive
EP0557197B1 (fr) Système de partage de temps d'accès à une mémoire partagée entre un processeur et d'autres applications
EP0797153B1 (fr) Dispositif de traitement d'information comportant plusieurs processeurs en parallèle
EP0017585A1 (fr) Procédé et système d'exploitation d'une mémoire adressable permettant d'associer à volonté des extensions aux données contenues dans la mémoire
FR2624631A1 (fr) Systeme multiprocesseur, procede d'echange d'informations mis en oeuvre et composant memoire multiport serie susceptible d'equiper ledit systeme

Legal Events

Date Code Title Description
ST Notification of lapse