FR 2885430 A1 20061110 FR 0651076 A 20060328 ARCHITECTURE D'UN SYSTÈME MULTI-MICROCONTROLEURS A TRAITEMENT EN PARALLÈLE ET PROCÉDÉ DE COMMANDE DE SYNCHRONISATION DE CELUI-CI La présente invention porte sur un système multimicrocontrôleurs et sur un procédé de commande de synchronisation de celui-ci, en particulier sur un système multi-microcontrôleurs à traitement en parallèle et sur un procédé de commande de synchronisation de celui-ci. Un microcontrôleur/microprocesseur, désigné par MCU/MPU, est également appelé microordinateur monopuce. Un microcontrôleur, qui est un circuit intégré donnant des ordres de commande dans un système, peut fonctionner sans aucun autre circuit auxiliaire. Un microcontrôleur fournit les fonctions qui sont presque équivalentes à celles fournies par un ordinateur miniature. Des microcontrôleurs sont largement appliqués à de nombreux domaines, tels que les produits électroniques grand public, des dispositifs de commande industriels, des équipements médicaux, des dispositifs de commande de véhicule, etc. Le microcontrôleur peut coopérer avec différents dispositifs périphériques, selon les différents domaines d'application, et ces différents dispositifs périphériques peuvent fonctionner sous différents protocoles d'établissement de liaison. Des protocoles d'établissement de liaison courants comprennent: le protocole I2C, le protocole récepteur/émetteur asynchrone universel (UART - Universal Asynchronous Receiver/Transmitter), etc. Un microcontrôleur a besoin de fonctionner avec différents dispositifs périphériques selon différents protocoles. Dans certaines applications, le microcontrôleur a besoin d'exécuter un processus selon une synchronisation spécifique ou une synchronisation fixe dans le but, par exemple, de commander ses dispositifs périphériques ou de mesurer des formes d'onde, comme la réalisation d'une modulation de largeur d'impulsion (pulse width modulation - PWM) pour commander un moteur. Ainsi, le microcontrôleur est par conséquent nécessaire pour générer une synchronisation précise afin de commander ses dispositifs périphériques ou de fonctionner sous la synchronisation précise pour mesurer des signaux d'entrée. Pour atteindre les exigences, il y a deux approches: émulations logicielles ou ajout de parties de circuit matériel spécial supplémentaires. Par exemple, si un microcontrôleur a besoin de communiquer avec l'un de ses dispositifs périphériques à l'aide du protocole d'établissement de liaison I2C, le microcontrôleur peut utiliser le logiciel pour émuler un protocole d'établissement de liaison I2C, ou un circuit matériel peut être rajouté au circuit original du microcontrôleur, pour réaliser l'établissement de liaison I2C. En ce qui concerne les avantages et les inconvénients des approches, l'émulation logicielle peut économiser le coût du matériel; cependant, il est difficile pour une émulation logicielle de générer de façon précise une synchronisation spécifique ou une synchronisation fixe pour commander un dispositif périphérique. L'ajout de parties de circuit matériel supplémentaires peut générer la synchronisation précise souhaitée, mais cela augmente le coût de l'aspect matériel. De plus, différents dispositifs périphériques peuvent respectivement utiliser différents protocoles d'établissement de liaison, et ainsi, davantage de circuits matériels supplémentaires sont nécessaires; par conséquent, le prix du matériel est davantage augmenté. Si l'on se réfère à la Figure 1, l'architecture d'un système à microcontrôleur classique est représentée. Ici, un microcontrôleur 11 lit des instructions à partir d'une mémoire de programme 12 par l'intermédiaire d'un bus de mémoire de programme, et le nombre de mémoires de données 13 dépend du besoin du système. Etant donné que le microcontrôleur 11 doit lire continuellement la mémoire de programme 12, le microcontrôleur 11 a accès à la mémoire de données 13 autrement par l'intermédiaire d'un bus de mémoire de données. Le microcontrôleur 11 a besoin de coopérer avec de multiples dispositifs périphériques différents 14 (représentés comme un bloc matériel pour la simplicité) pour réaliser la spécification du système souhaitée, et le microcontrôleur 11 commande ces différents dispositifs périphériques par l'intermédiaire de différents bus de commande de dispositif périphérique. Dans un tel système à microcontrôleur, lorsqu'une interruption se produit, ni la séquence d'exécution de programme ni la synchronisation d'exécution de programme ne peuvent être prédites. Ainsi, il serait très difficile ou même impossible par une émulation logicielle de commander les dispositifs périphériques qui nécessitent une synchronisation fixe précise, ou de mesurer des signaux de façon précise. Si l'on se réfère à la Figure 2, l'architecture d'un système multimicrocontrôleurs classique est représentée. Ici, par l'intermédiaire d'un bus, de multiples unités de microcontrôleur 25, 26 et 27 partagent une mémoire de données commune 28 et coopèrent avec de multiples dispositifs périphériques 29 (représentés comme un bloc pour la simplicité) pour former un système multimicrocontrôleurs. Le nombre d'unités de microcontrôleur dans le système multi-microcontrôleurs dépend de l'exigence. Dans ce système, comme chaque unité de microcontrôleur a sa propre mémoire de programme, toutes les unités de microcontrôleur peuvent fonctionner de façon indépendante, et chaque unité de microcontrôleur peut fonctionner sous sa propre synchronisation d'horloge. Les inconvénients de cette architecture comprennent: la complexité de la programmation, l'exigence de multiples mémoires de programme, et le coût matériel du système complet. Le progrès de la technologie des semi-conducteurs permet à une mémoire de supporter une bande passante plus élevée, et ainsi, un système multimicrocontrôleurs super-scalaire à hyperflots hyperthreading apparaît. Si l'on se réfère à la Figure 3, l'architecture du système multimicrocontrôleurs super-scalaire à hyperthreading est représentée. Des microcontrôleurs 31 et 32 partagent une mémoire de programme commune 33, chacun des microcontrôleurs 31 et 32 a un tampon d'instructions. A cause du tampon d'instructions, le microcontrôleur 31 ou 32 lit la mémoire de programme 33 moins fréquemment, ce qui réduit la probabilité d'interférence de telle sorte que le programme peut être plus susceptible de s'exécuter que prévu. Cependant, une telle architecture peut évidemment seulement réduire mais ne peut pas complètement éviter l'occurrence possible d'interférence. Il est toujours difficile par émulation logicielle de commander ces dispositifs périphériques qui fonctionnent sous des synchronisations précises. En outre, le coût matériel d'une telle architecture est toujours très élevé. Pour résoudre les problèmes mentionnés ci-dessus, la présente invention propose un système de multi- microcontrôleurs à traitement en parallèle et un procédé de commande de synchronisation de celui-ci pour surmonter de façon effective le problème d'interférence dans les microcontrôleurs et réduire le coût de fabrication de ceux- ci. L'objectif principal de la présente invention est de proposer un système multi-microcontrôleurs à traitement en parallèle et un procédé de commande de synchronisation de celui-ci, dans lequel de multiples modules d'état d'exécution de programme de microcontrôleur sont fournis pour exécuter en parallèle de multiples programmes de telle sorte que chacun des programmes peut être traité et exécuté de façon indépendante dans une synchronisation souhaitée et précise. Un autre objectif de la présente invention est de proposer un système de multi-microcontrôleurs à traitement en parallèle et un procédé de commande de synchronisation de celui-ci, dans lequel une logique de commande de multimicrocontrôleurs est utilisée pour commander la séquence d'exécution des multiples modules d'état d'exécution de programme de microcontrôleur, ce par quoi le matériel est simplifié et le coût global est ainsi réduit. Encore un autre objectif de la présente invention est de proposer un système multi-microcontrôleurs à traitement en parallèle et un procédé de commande de synchronisation de celui-ci pour permettre de générer de façon précise une synchronisation fixe pour la commande du dispositif périphérique. L'architecture d'un système multi- microcontrôleurs à traitement en parallèle selon la présente invention comprend: au moins deux modules d'état d'exécution de programme de microcontrôleur avec chaque module d'état d'exécution de programme de microcontrôleur qui est capable d'exécuter au moins un programme; une logique de commande de multimicrocontrôleurs, qui est couplée à ces modules d'état d'exécution de programme de microcontrôleur et qui commande ces modules d'état d'exécution de programme de microcontrôleur pour exécuter leurs programmes correspondants à des synchronisations d'horloge séparées respectivement; et une logique opérationnelle de microcontrôleur, qui est couplée à chacun des modules d'état d'exécution de programme de microcontrôleur et réalise une commande et un calcul de séquence de programme. Un autre aspect de la présente invention est un procédé de commande de synchronisation pour un système multi-microcontrôleurs qui comprend X modules d'état d'exécution de programme de microcontrôleur partageant Y mémoires de programme, où X est un entier supérieur ou égal à 2 et Y est un entier supérieur ou égal à 1, le système est doté de fréquence d'horloge de fonctionnement de base de 1/T, et les X modules d'état d'exécution de programme de microcontrôleur fonctionnent séparément à des fréquences d'horloge 1/T1, 1/T2 1/TX, où 1/TX désigne la fréquence d'horloge de fonctionnement du Xème module d'état d'exécution de programme de microcontrôleur, et chacune des fréquences d'horloge de fonctionnement 1/T1, 1/T2 1/TX est inférieure à 1/T, dans laquelle: 1/T1 + 1/T2 + ... + 1/TX 2 et Y > 1. Encore un autre aspect de la présente invention est que parmi ces X modules d'état d'exécution de programme de microcontrôleur, un module dédié est attribué au traitement des demandes d'interruption. La présente invention a donc pour objet un 15 système multimicrocontrôleurs à traitement en parallèle, caractérisé par le fait qu'il comprend: au moins deux modules d'état d'exécution de programme de microcontrôleur, chacun desdits modules d'état d'exécution de programme de microcontrôleur étant apte à exécuter au moins un programme; une logique de commande de multi-microcontrôleurs, couplée auxdits modules d'état d'exécution de programme de microcontrôleur, et commandant lesdits modules d'état d'exécution de programme de microcontrôleur pour exécuter leurs programmes correspondants à des synchronisations d'horloge séparées; une logique opérationnelle de microcontrôleur, couplée auxdits modules d'état d'exécution de programme de microcontrôleur, et réalisant une commande et un calcul de séquence de programme. L'un desdits modules d'état d'exécution de programme de microcontrôleur et ladite logique opérationnelle de microcontrôleur peuvent être intégrés 35 dans un microcontrôleur. Au moins l'un desdits modules d'état d'exécution de programme de microcontrôleur peut être attribué de façon dédiée au traitement d'une demande d'interruption. Ladite logique opérationnelle de microcontrôleur peut comprendre en outre un séquenceur de programme et une unité arithmétique et logique, et ledit séquenceur de programme et ladite unité arithmétique et logique peuvent être couplés à un bus pour émettre/recevoir des signaux. Chacun desdits modules d'état d'exécution de programme de microcontrôleur peut comprendre en outre un compteur de programme et un drapeau arithmétique, et ledit compteur de programme et ledit drapeau arithmétique peuvent être couplés à un bus pour émettre/recevoir des signaux. Des signaux de commande desdits modules d'état d'exécution de programme de microcontrôleur peuvent être émis ou reçus par l'intermédiaire d'un protocole d'établissement de liaison aux dispositifs périphériques. Ledit protocole d'établissement de liaison peut être choisi parmi le groupe constitué par le protocole I2C, le protocole Récepteur/Emetteur Asynchrone Universel (UART Universal Asynchronous Receiver/Transmitter), l'Interface Périphérique Série (SPI - Serial Peripheral Interface), une modulation de largeur d'impulsion (PWM - pulse width modulation), un programme de mesure de largeur d'impulsion, et un programme de registre d'horloge. Ledit système selon la présente invention peut comprendre en outre une mémoire de programme, qui stocke des programmes et est couplée auxdits modules d'état d'exécution de programme de microcontrôleur par l'intermédiaire d'un bus de mémoire de programme. Lesdits modules d'état d'exécution de programme de microcontrôleur peuvent lire les programmes, ladite mémoire de programme pouvant être installée à l'intérieur ou à l'extérieur desdits microcontrôleurs. Lesdits programmes peuvent comprendre: un programme principal, un programme de génération de formes d'onde PWM (pulse width modulation), un programme de mesure de largeur d'impulsion pour un signal d'entrée, un programme de protocole d'établissement de liaison I2C, un programme de protocole d'établissement de liaison UART (Récepteur/Emetteur Asynchrone Universel - Universal Asynchronous Receiver/Transmitter), un programme de protocole d'établissement de liaison SPI (Interface Périphérique Série Serial Peripheral Interface) et un programme d'horloge. Ledit système selon la présente invention peut comprendre en outre une mémoire de données, qui est couplée auxdits modules d'état d'exécution de programme de microcontrôleur par l'intermédiaire d'un bus de mémoire de données. La présente invention a également pour objet un procédé de commande de synchronisation pour un système multi-microcontrôleurs, dans lequel ledit système multimicrocontrôleurs comprend X modules d'état d'exécution de programme de microcontrôleur et partageant Y mémoires de programme, où X > 2 et Y > 1, et ledit système multimicrocontrôleurs est doté d'une fréquence d'horloge de base de 1/T, caractérisé par le fait que ledit procédé de commande de synchronisation comprend: lesdits X modules d'état d'exécution de programme de microcontrôleur fonctionnant de façon séparée à des fréquences d'horloge de fonctionnement de 1/T1, 1/T2.... 1/TX sous la condition suivante: 1/T1 + 1/T2 + ... + 1/TX Au moins l'un desdits modules d'état d'exécution de programme de microcontrôleur peut être attribué de façon dédiée au traitement d'une demande d'interruption. Lesdites Y mémoires de programme peuvent être installées à l'intérieur ou à l'extérieur desdits microcontrôleurs. Chacun desdits X modules d'état d'exécution de programme de microcontrôleur peut être combiné avec une logique opérationnelle correspondante pour former un microcontrôleur complet. Chacun desdits X modules d'état d'exécution de programme de microcontrôleur peut être intégré de façon dynamique avec une seule et unique logique opérationnelle de microcontrôleur pour former un microcontrôleur dynamique. Dans ledit procédé de commande de synchronisation selon la présente invention, 1/T1, 1/T2.... 1/TX peut être désigné par 1/Tn (n=1,2, .. X), et: quand n = 1,2.. X-1; 1/Tn =(1/2n)*Y*(1/T) ; et quand n = X; 1/Tn = (1/2 (X-1)) *Y* (1/T) . Lesdits modules d'état d'exécution de programme de microcontrôleur X peuvent partager de façon égale ladite fréquence d'horloge de base, c'est-à-dire 1/T1 = 1/T2 = . 1/TX. Lorsque x desdits modules d'état d'exécution de programme de microcontrôleur ne sont pas utilisés parmi lesdits X modules d'état d'exécution de programme de microcontrôleur, seulement (X-x) desdits modules d'état d'exécution de programme de microcontrôleur peuvent partager ladite fréquence d'horloge de base, et 1/T1 + 1/T2 + ... + 1/TXx La présente invention a également pour objet un procédé de traitement d'interruption pour un système multimicrocontrôleurs, dans lequel ledit système multi- microcontrôleurs comprend X modules d'état d'exécution de programme de microcontrôleur, ledit procédé de traitement d'interruption étant caractérisé par le fait qu'il comprend l'opération consistant à : attribuer au moins l'un desdits modules d'état d'exécution de programme de microcontrôleur pour traiter de façon dédiée une demande d'interruption. Chacun desdits X modules d'état d'exécution de programme de microcontrôleur peut être combiné avec une logique opérationnelle de microcontrôleur correspondante pour former un microcontrôleur complet. Chacun desdits X modules d'état d'exécution de programme de microcontrôleur peut être intégré de façon dynamique avec une seule et unique logique opérationnelle de microcontrôleur pour former un microcontrôleur dynamique. Pour permettre aux objectifs, contenus techniques, caractéristiques et accomplissements de la présente invention d'être plus facilement compris, les modes de réalisation de la présente invention vont être décrits cidessous en détail conjointement avec les dessins annexés. Sur ces dessins. la Figure 1 est un diagramme de l'architecture d'un système à microcontrôleur classique; - la Figure 2 est un diagramme de l'architecture d'un système multi-microcontrôleurs classique; la Figure 3 est un diagramme de l'architecture d'un autre système multimicrocontrôleurs classique; la Figure 4 est un diagramme illustrant une architecture haut-niveau de la présente invention; la Figure 5 est un schéma fonctionnel de l'architecture selon un mode de réalisation de la présente invention; la Figure 6 est un schéma fonctionnel de l'architecture selon un autre mode de réalisation de la présente invention; la Figure 7 est un diagramme de synchronisation représentant la synchronisation d'horloge d'encore un autre mode de réalisation selon la présente invention, qui comprend quatre modules d'état d'exécution de programme de microcontrôleur; et la Figure 8 est un diagramme de l'architecture selon encore un autre mode de réalisation de la présente invention. La présente invention propose un système multimicrocontrôleurs à traitement en parallèle pour permettre l'exécution en parallèle précise et souhaitée de multiples programmes sans interférence et pour permettre la génération d'une synchronisation précise et souhaitée. Si l'on se réfère à la Figure 4, un diagramme de l'architecture selon un mode de réalisation de la présente invention est représenté. Un système multi- microcontrôleurs (MMCU) comprend X microcontrôleurs fonctionnant indépendamment MCU 1, MCU 2, MCU 3, et MCU 4 (pour illustrer et simplifier, X=4 dans ce mode de réalisation) ; MCU 1 est utilisé pour exécuter le programme principal; MCU 2 est utilisé pour générer des formes d'onde de modulation de largeur d'impulsion (pulse width modulation - PWM) ; MCU 3 est utilisé pour mesurer les largeurs d'impulsion des signaux d'entrée; et MCU 4 est utilisé pour exécuter un protocole d'établissement d'une liaison I2C. Si l'on se réfère à la Figure 5, un schéma 35 fonctionnel de l'architecture selon un mode de réalisation de la présente invention est représenté. Il y a quatre modules d'état d'exécution de programme du microcontrôleur 51, 52, 53, et 54 correspondant aux microcontrôleurs MCU 1, MCU 2, MCU 3, et MCU 4 respectivement. Le module 51 d'état d'exécution de programme du microcontrôleur, qui comprend un compteur de programme 1, un accumulateur 1, et un drapeau arithmétique 1, fait partie de MCU 1. Le module 52 d'état d'exécution de programme de microcontrôleur, qui comprend un compteur de programme 2, un accumulateur 2, et un drapeau arithmétique 2, fait partie de MCU 2. Le module 53 d'état d'exécution de programme de microcontrôleur, qui comprend un compteur de programme 3, un accumulateur 3, et un drapeau arithmétique 3, fait partie de MCU 3. Le module 54 d'état d'exécution de programme de microcontrôleur, qui comprend un compteur de programme 4, un accumulateur 4, et un drapeau arithmétique 4, fait partie de MCU 4. Une logique de commande de multi- microcontrôleurs 55 est utilisée pour sélectionner différents modules d'état d'exécution de programme de microcontrôleur pour fonctionner à différentes synchronisations. Chacun de ces quatre modules d'état d'exécution de programme de microcontrôleur 51, 52, 53, et 54 exécute au moins un programme indépendamment. La logique de commande de multi-microcontrôleurs 55 est couplée à ces quatre modules d'état d'exécution de programme de microcontrôleur 51, 52, 53, et 54 et permet à ces quatre modules d'état d'exécution de programme de microcontrôleur 51, 52, 53, et 54 d'exécuter leurs programmes correspondants à des synchronisations d'horloge séparées respectivement. Une logique opérationnelle 50 de microcontrôleur est couplée à ces quatre modules d'état d'exécution de programme de microcontrôleur 51, 52, 53, et 54 et réalise une commande et un calcul de séquence de programme d'une façon dynamique (qui sera expliquée ci-après). La logique opérationnelle 50 du microcontrôleur comprend en outre un séquenceur de programme 514, et une unité arithmétique et logique (ALU arithmetic logic unit) 515, et toutes deux sont couplées à un bus pour transmettre et recevoir des signaux. Chacun des quatre modules d'état d'exécution de programme de microcontrôleur 51, 52, 53, et 54 a un compteur de programme, un accumulateur, et un drapeau arithmétique respectivement. Dans l'architecture mentionnée ci-dessus, les modules d'état d'exécution de programme de microcontrôleur 51, 52, 53, et 54 partagent de façon dynamique la logique opérationnelle 50 de microcontrôleur. Chacun des modules d'état d'exécution de programme de microcontrôleur 51, 52, 53, et 54, par fonction, se combinant avec la logique opérationnelle 50 de microcontrôleur, constitue de façon dynamique un microcontrôleur complet et entièrement fonctionnel. Si l'on se réfère à la Figure 6, un schéma fonctionnel de l'architecture selon un autre mode de réalisation de la présente invention est représenté. L'architecture comprend: un microcontrôleur 60, qui peut exécuter au moins un programme; trois modules d'état d'exécution de programme de microcontrôleur 62, 63, et 64, dont chacun peut également exécuter au moins un programme; et une logique de commande 65 de multimicrocontrôleurs, qui est couplée au microcontrôleur 60 et aux trois modules d'état d'exécution de programme de microcontrôleur 62, 63, et 64 et permet au microcontrôleur 60 et aux trois modules d'état d'exécution de programme de microcontrôleur 62, 63, et 64 d'exécuter respectivement leurs programmes correspondants à des synchronisations d'horloge séparées. Le microcontrôleur 60 comprend un compteur de programme 1, un accumulateur 1, un drapeau arithmétique 1, un séquenceur de programme 601, et une unité arithmétique et logique 602. Les modules d'état d'exécution de programme de microcontrôleur 62, 63, et 64 respectivement ont leurs propres compteurs de programme, accumulateurs, et drapeaux arithmétiques. Le compteur de programme 1, l'accumulateur 1, et le drapeau arithmétique 1 peuvent également être considérés comme un module d'état d'exécution de programme de microcontrôleur 61. Les architectures sur la Figure 5 et la Figure 6 sont équivalentes en substance. L'objectif de la Figure 6 est d'expliquer qu'un concepteur peut utiliser un microcontrôleur classique comme microcontrôleur 60, et ajouter des parties de circuit supplémentaires pour constituer l'architecture de la présente invention. Le travail de conception est ainsi plus simple. Si l'on se réfère à la Figure 7, un diagramme de synchronisation d'horloge de quatre modules d'état d'exécution de programme de microcontrôleur selon encore un autre mode de réalisation de la présente invention est représenté. Dans le cycle 1# de l'horloge (CLK) du système, la logique de commande 55 de multimicrocontrôleurs amène le module d'état 51 d'exécution de programme de microcontrôleur à fonctionner, c'est-à- dire à exécuter le programme de MCU 1. Dans le cycle 2# de l'horloge (CLK) , la logique de commande 55 de multi- microcontrôleurs amène le module d'état 52 d'exécution de programme de microcontrôleur à fonctionner, c'est-à-dire à exécuter le programme de MCU 2. Dans le cycle 3# de l'horloge (CLK), la logique de commande 55 de multimicrocontrôleurs amène le module d'état 51 d'exécution de programme de microcontrôleur à fonctionner, c'est-à-dire à suivre l'exécution du programme de MCU 1. Dans le cycle 4# de l'horloge (CLK), la logique de commande 55 de multimicrocontrôleurs amène le module d'état 53 d'exécution du programme de microcontrôleur à fonctionner, c'est-à-dire à exécuter le programme de MCU 3. Dans le cycle 5# de l'horloge (CLK), la logique de commande 55 de multimicrocontrôleurs amène le module d'état 51 d'exécution de programme de microcontrôleur à fonctionner, c'est-à-dire à poursuivre l'exécution du programme de MCU 1. Dans le cycle 6# de l'horloge (CLK), la logique de commande 55 de multi-microcontrôleurs amène le module d'état 52 d'exécution de programme de microcontrôleur à fonctionner, c'est-à-dire a poursuivre l'execution du programme de MCU 2 et ainsi de suite. Dans l'architecture de la présente invention, il peut être facilement entendu que l'on peut ajouter davantage de modules d'état d'exécution de programme de microcontrôleur pour exécuter simultanément plus de programmes. Pour donner un aperçu, la synchronisation à laquelle MCU 1 exécute des instructions est dans les cycles 1#, 3#, 6#, 7#, ; la Nème action du programme principal est exécutée dans le cycle 1#, et la N+lème action du programme principal est exécutée dans le cycle 3#, et la N+2ème action du programme principal est exécutée dans le cycle 5#, et ainsi de suite. Ainsi, la fréquence d'horloge de fonctionnement de MCU 1 est 1/2 de la fréquence d'horloge de fonctionnement de base du système multimicrocontrôleurs. La synchronisation à laquelle MCU 2 exécute des instructions est dans les cycles 2#, 6#, 10#, 14#, ; la Mème action de la fonction PWM est exécutée dans le cycle 2#, et la M+lème action de la fonction PWM est exécutée dans le cycle 6#, et la M+2ème action de la fonction PWM est exécutée dans le cycle 10#, et ainsi de suite. Ainsi, la fréquence d'horloge de fonctionnement de MCU 2 est 1/4 de celle de la fréquence d'horloge de fonctionnement de base du système multimicrocontrôleurs. La synchronisation à laquelle MCU 3 exécute des instructions est dans les cycles 4#, 12#, ; la Uème action de la mesure de largeur d'impulsion est exécutée dans le cycle 4#, et la U+lème action de mesure de largeur d'impulsion est exécutée dans le cycle 12#, et ainsi de suite. Ainsi, la fréquence d'horloge d'exécution de MCU 3 est 1/8 de celle de la fréquence d'horloge de fonctionnement de base du système multi-microcontrôleurs. La synchronisation à laquelle MCU 4 exécute des instructions est dans les cycles 8#, 16#, ; la Vème action de la fonction I2C est exécutée dans le cycle 8#, et la V+lème action de la fonction I2C est exécutée dans le cycle 16#, et ainsi de suite. Ainsi, la fréquence d'horloge defonctionnement de MCU 4 est 1/8 de celle de la fréquence de fonctionnement de base du système multi- microcontrôleurs. Etant donné que les microcontrôleurs MCU 1, MCU 2, MCU 3 et MCU 4 représentés sur la Figure 7 fonctionnent à des synchronisations d'horloge séparées, ils peuvent partager une mémoire de programme commune, et aucun tampon d'instructions n'est nécessaire pour réduire l'interférence entre différents microcontrôleurs. Ainsi, l'arrangement matériel est bien moins coûteux et le logiciel associé est bien moins complexe. Sur la base de la description ci-dessus, le corollaire est que plus d'une mémoire de programme commune peut être utilisée et partagée parmi les MCU. (Par exemple quatre MCU partagent deux mémoires de programme communes). La relation parmi les MCU, les mémoires de programmes, et les fréquences d'horloge est: 1/T1 + 1/T2 + ... 1/TX Dans l'exemple représenté sur la Figure 7, X=4, Y=1, et la fréquence d'horloge fournie par le système est partagée en 1/2T, 1/4T, 1/8T, et 1/8T. La présente invention n'est pas limitée à un tel arrangement, et le concepteur peut facilement concevoir d'autres alternatives, telles que, par exemple, partager la fréquence de base en 1/4T, 1/4T, 1/4T et 1/4T. En tant qu'autre exemple, on peut de façon dynamique arrêter d'allouer la fréquence d'horloge à un ou plusieurs MCU au repos qui ne sont pas en utilisation, c'est-à-dire partager la fréquence d'horloge de base seulement entre les MCU actifs, par exemple, en 1/2T, 1/4T, 1/4T, et O. Il doit être noté que l'arrangement de partage de la fréquence d'horloge mentionné ci-dessus est un autre nouvel aspect de la présente invention, sans tenir compte du fait qu'elle soit ou non appliquée à l'architecture matérielle représentée sur la Figure 5 et sur la Figure 6 ou appliquée à une architecture classique, telle que celle représentée sur la Figure 3. En d'autres termes, les MCU mentionnés conjointement avec la Figure 7 peuvent être soit un MCU classique, tel que celui représenté sur la Figure 3, soit un MCU dynamique (c'est-à-dire un module d'état d'exécution de programme de microcontrôleur plus une logique opérationnelle de microcontrôleur), tel que celui représenté sur la Figure 5 et sur la Figure 6. Dans la description ci-avant où il est décrit que la fréquence d'horloge de fonctionnement de base fournie par le/au système est 1/T , il doit être entendu que cela signifie que la fréquence d'horloge de fonctionnement minimale est 1/T, sans tenir compte de ce qu'est la fréquence d'horloge générée à l'origine du système. Par exemple, dans un circuit à double fréquence qui fonctionne deux fois par cycle (une fois dans le demi-cycle positif et une fois dans le demi-cycle négatif) 1/T dans la présente invention représente deux fois la fréquence d'horloge initiale fournie par le système. Lorsque la fréquence d'horloge de fonctionnement pour de multiples MCU est fournie d'une autre façon, le 1/T dans la présente invention porte sur la fréquence de fonctionnement ainsi fournie. Pour l'expliquer plus en détail: si la fréquence d'horloge initiale fournie par le (ou au) système est de 1 MHz, tandis que le système génère une fréquence d'horloge de fonctionnement de 3 MHz par l'intermédiaire d'un procédé de circuiterie, alors, ladite fréquence d'horloge de fonctionnement de base fournie par le système (1/T) dans la présente invention doit être de 3 MHz. En d'autres termes, 1/T dans la présente invention porte sur la fréquence d'horloge de fonctionnement réellement utilisée dans le fonctionnement du système. Sur la base du procédé de partage de fréquence mentionné ci-dessus, lorsque le système reçoit une demande d'interruption, le programme de service d'interruption peut être attribué à un ou à un nombre fixe de MCU dédiés, de telle sorte que les autres MCU ne seront jamais interrompus. De plus, un tel arrangement pour allouer un MCU de service d'interruption dédié (ou quelques MCU) est applicable non seulement aux architectures représentées sur la Figure 5 et la Figure 6 mais encore à l'architecture représentée sur la Figure 3. Lorsque tous les MCU sont complètement chargés, une nouvelle demande d'interruption se produit à nouveau, ce nouvel arrangement d'interruption peut assurer que les synchronisations de la plupart des MCU peuvent être précisément commandées. Il devrait être noté en outre que différentes synchronisations pour différentes combinaisons fonctionnelles de MCU multiples peuvent être reprogrammées par l'intermédiaire d'une logique de commande 55 de multimicrocontrôleurs, et la reprogrammation des synchronisations devrait satisfaire les spécifications du système et des dispositifs périphériques. Par exemple, un protocole d'établissement de liaison plus rapide nécessite une synchronisation de fréquence plus élevée. Si l'on se réfère à la Figure 8, un diagramme de l'architecture selon encore un autre mode de réalisation de la présente invention est représenté. Cette architecture a six microcontrôleurs: le premier microcontrôleur MCU 1 exécute le programme principal; le second microcontrôleur MCU 2 exécute la fonction I2C; le troisième microcontrôleur MCU 3 exécute la fonction UART; le quatrième microcontrôleur MCU 4 exécute la fonction PWM; le cinquième microcontrôleur MCU 5 exécute une première fonction de génération de formes d'onde; le sixième microcontrôleur MCU 6 exécute une seconde fonction de génération de formes d'onde. Chacun des microcontrôleurs a respectivement des modules d'état d'exécution de programme de microcontrôleur correspondants, c'est-à-dire X=6. Conformément à la présente invention, un concepteur peut employer tout nombre de modules d'état d'exécution de programme de microcontrôleur pour parvenir à une performance souhaitée équivalente à l'emploi du même nombre de microcontrôleurs. Il est également possible pour chaque microcontrôleur d'exécuter des programmes multiples afin d'accomplir un équilibre capacité/efficacité et un équilibre coût/performance. De plus, lorsque différents protocoles d'établissement de liaison et des communications avec divers dispositifs périphériques sont nécessaires, la présente invention peut facilement générer des synchronisations fixes précises pour différents dispositifs périphériques, une mesure précise de la largeur d'impulsion des signaux, etc. De possibles applications comprennent, mais sans être limitées aux applications mentionnées ci- dessus, le protocole d'établissement de liaison SPI (Serial Peripheral Interface - Interface Périphérique Série), le programme de registre d'horloge et un autre programme de mesure de la largeur d'impulsion pour des signaux d'entrée. La présente invention non seulement réduit grandement le coût du matériel mais également fournit plus de flexibilité à l'utilisation des microcontrôleurs. La présente invention utilise de multiples modules d'état d'exécution de programme de microcontrôleur en combinaison dynamique avec une logique opérationnelle de microcontrôleur pour exécuter des programmes respectifs, et une logique de commande de multi-microcontrôleurs permet aux multiples microcontrôleurs dynamiques d'exécuter respectivement leurs programmes correspondants à des synchronisations d'horloge séparées. En conséquence, la présente invention propose une architecture d'un système multi-microcontrôleurs à traitement en parallèle et un procédé de commande de la synchronisation de celui-ci afin de traiter de multiples programmes en parallèle, qui non seulement peuvent surmonter le problème des contrôleurs classiques qui est que la synchronisation est perturbée et ne peut pas être précisément commandée, mais également peuvent simplifier l'architecture matérielle avec un coût réduit. Ces modes de réalisation décrits ci-dessus doivent permettre à l'homme du métier de comprendre, de réaliser et d'utiliser la présente invention, mais ne sont pas destinés à limiter la portée de la présente invention. Toute modification et variation équivalente dans l'esprit de la présente invention décrite ici devrait être comprise dans la portée revendiquée de la présente invention. REVENDICATIONS 1 - Système multi-microcontrôleurs à traitement en parallèle, caractérisé par le fait qu'il comprend: au moins deux modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur, chacun desdits modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur étant apte à exécuter au moins un programme; une logique (55; 65) de commande multimicrocontrôleurs, couplée auxdits modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur, et commandant lesdits modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur pour exécuter leurs programmes correspondants à des synchronisations d'horloge séparées; une logique opérationnelle (50; 601, 602) de microcontrôleur, couplée auxdits modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur, et réalisant une commande et un calcul de séquence de programme. 2 - Système multi-microcontrôleurs à traitement en parallèle selon la revendication 1, caractérisé par le fait que l'un desdits modules (61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur et ladite logique opérationnelle (601, 602) de microcontrôleur sont intégrés dans un microcontrôleur (60). 3 - Système multi-microcontrôleurs à traitement en parallèle selon la revendication 1, caractérisé par le fait qu'au moins l'un desdits modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur est attribué de façon dédiée au traitement 35 d'une demande d'interruption. 4 - Système multi-microcontrôleurs à traitement en parallèle selon la revendication 1, caractérisé par le fait que ladite logique opérationnelle (50; 601, 602) de microcontrôleur comprend en outre un séquenceur de programme (514, 601) et une unité arithmétique et logique(515, 602), et ledit séquenceur de programme (514, 601) et ladite unité arithmétique et logique (515, 602) sont couplés à un bus pour émettre/recevoir des signaux. - Système multi-microcontrôleurs à traitement en parallèle selon la revendication 1, caractérisé par le fait que chacun desdits modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur comprend en outre un compteur de programme et un drapeau arithmétique, et ledit compteur de programme et ledit drapeau arithmétique sont couplés à un bus pour émettre/recevoir des signaux. 6 - Système multi-microcontrôleurs à traitement en parallèle selon la revendication 1, caractérisé par le fait que des signaux de commande desdits modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur sont émis ou reçus par l'intermédiaire d'un protocole d'établissement de liaison aux dispositifs périphériques. 7 - Système multi-microcontrôleurs à traitement en parallèle selon la revendication 6, caractérisé par le fait que ledit protocole d'établissement de liaison est choisi parmi le groupe constitué par le protocole I2C, le protocole Emetteur/Récepteur Asynchrone Universel (UART Universal Asynchronous Receiver/Transmitter), l'Interface Périphérique Série (SPI - Serial Peripheral Interface), une modulation de largeur d'impulsion (PWM - pulse width modulation), un programme de mesure de largeur d'impulsion, et un programme de registre d'horloge. 8 - Système multi-microcontrôleurs à traitement en parallèle selon la revendication 1, caractérisé par le fait qu'il comprend en outre une mémoire de programme, qui stocke des programmes et est couplée auxdits modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur par l'intermédiaire d'un bus de mémoire de programme. 9 - Système multi-microcontrôleurs à traitement en parallèle selon la revendication 8, caractérisé par le fait que lesdits modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur lisent les programmes, ladite mémoire de programme pouvant être installée à l'intérieur ou à l'extérieur desdits microcontrôleurs. - Système multi-microcontrôleurs à traitement en parallèle selon la revendication 9, caractérisé par le fait que lesdits programmes comprennent: un programme principal, un programme de génération de formes d'onde PWM (pulse width modulation), un programme de mesure de largeur d'impulsion pour un signal d'entrée, un programme de protocole d'établissement de liaison I2C, un programme de protocole d'établissement de liaison UART (Récepteur/Emetteur Asynchrone Universel - Universal Asynchronous Receiver/Transmitter), un programme de protocole d'établissement de liaison SPI (Interface Périphérique Série - Serial Peripheral Interface) et un programme d'horloge. 11 - Système multi-microcontrôleurs à traitement en parallèle selon la revendication 1, caractérisé par le fait qu'il comprend en outre une mémoire de données, qui est couplée auxdits modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur par l'intermédiaire d'un bus de mémoire de données. 12 - Procédé de commande de synchronisation pour un système multimicrocontrôleurs, dans lequel ledit système multi-microcontrôleurs comprend X modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur et partageant Y mémoires de programme, où X > 2 et Y > 1, et ledit système multi-microcontrôleurs est doté d'une fréquence d'horloge de base de 1/T, et ledit procédé de commande de synchronisation étant caractérisé par le fait qu'il comprend: lesdits X modules d'état d'exécution de programme de microcontrôleur fonctionnant de façon séparée à des fréquences d'horloge de fonctionnement de 1/T1, 1/T2... 1/TX sous la condition suivante: 1/T1 + 1/T2 + ... + 1/TX 13 - Procédé de commande de synchronisation pour un système multimicrocontrôleurs selon la revendication 12, caractérisé par le fait qu'au moins un desdits modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur est attribué de façon dédiée au traitement d'une demande d'interruption. 14 - Procédé de commande de synchronisation pour un système multimicrocontrôleurs selon la revendication 12, caractérisé par le fait que lesdites Y mémoires de programme sont installées à l'intérieur ou à l'extérieur desdits microcontrôleurs. - Procédé de commande de synchronisation pour un système multimicrocontrôleurs selon la revendication 12, caractérisé par le fait que chacun desdits X modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur est combiné avec une logique opérationnelle (50; 601, 602) correspondante pour former un microcontrôleur complet. 16 - Procédé de commande de synchronisation pour un système multimicrocontrôleurs selon la revendication 12, caractérisé par le fait que chacun desdits X modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur est intégré de façon dynamique avec une seule et unique logique opérationnelle (50; 601, 602) de microcontrôleur pour former un microcontrôleur dynamique. 17 - Procédé de commande de synchronisation pour un système multimicrocontrôleurs selon la revendication 12, caractérisé par le fait que 1/T1, 1/T2.... 1/TX est désigné par 1/Tn (n=1,2,.. X), et quand n = 1,2.. X-1; 1/Tn =(1/2n)*Y*(1/T) ; et quand n = X; 1/Tn = (1/2 (X-1)) *Y* (1/T) . 18 - Procédé de commande de synchronisation pour un système multimicrocontrôleurs selon la revendication 12, caractérisé par le fait que lesdits modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur X partagent de façon égale ladite fréquence d'horloge de base, c'est-à-dire 1/T1 = 1/T2 = ... 1/TX. 19 - Procédé de commande de synchronisation pour un système multimicrocontrôleurs selon la revendication 12, caractérisé par le fait que lorsque x desdits modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur ne sont pas utilisés parmi lesdits X modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur, seulement (X-x) desdits modules d'état d'exécution de programme de microcontrôleur partagent ladite fréquence d'horloge de base, et 1/T1 + 1/T2 + ... + 1/TX-x - Procédé de traitement d'interruption pour un système multimicrocontrôleurs, dans lequel ledit système multi-microcontrôleurs comprend X modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur, ledit procédé de traitement d'interruption étant caractérisé par le fait qu'il comprend l'opération consistant à : attribuer au moins un desdits modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur pour traiter de façon dédiée une demande d'interruption. 21 - Procédé de traitement d'interruption pour un système multimicrocontrôleurs selon la revendication 20, caractérisé par le fait que chacun desdits X modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur est combiné avec une logique opérationnelle (50; 601, 602) de microcontrôleur correspondante pour former un microcontrôleur complet. 22 - Procédé de traitement d'interruption pour un système multimicrocontrôleurs selon la revendication 20, caractérisé par le fait que chacun desdits X modules (51, 52, 53, 54; 61, 62, 63, 64) d'état d'exécution de programme de microcontrôleur est intégré de façon dynamique avec une seule et unique logique opérationnelle (50;601, 602) de microcontrôleur pour former un microcontrôleur dynamique.