Brevet FR2911415A1 — publié le 20080718

SYSTEME A MICROCONTROLEURS MULTIPLES AUTONOMES ET PROCÉDÉ DE COMMANDE DE CELUI-CI La présente invention porte sur un système à microcontrôleurs multiples et sur le procédé de commande de celui-ci, en particulier sur un système à microcontrôleurs multiples autonomes et sur le procédé de commande de celui- ci. Un microcontrôleur/microprocesseur (MCU/MPU), qui est également appelé micro-ordinateur monopuce, est un circuit intégré établissant des instructions de commande dans un système. Il peut fonctionner sans l'aide d'un quelconque autre circuit auxiliaire. Un microcontrôleur assure les fonctions presque équivalentes à celles assurées par un ordinateur miniature. Depuis quelques années, les microcontrôleurs sont largement appliqués à de nombreux domaines, tels que les produits électroniques grand public, les contrôleurs industriels, les équipements médicaux, les contrôleurs de véhicule, etc. Selon le domaine auquel il est appliqué, un microcontrôleur peut avoir une spécification différente et peut coopérer avec différents dispositifs périphériques. L'historique du développement des microcontrôleurs est une histoire d'amélioration continue de trois cibles : (1) accélération de la vitesse de traitement des données, (2) miniaturisation de la dimension de la puce par fonction unitaire et (3) réduction de la consommation de courant. De nombreux progrès importants des microcontrôleurs ont ainsi été réalisés, comprenant : une augmentation du nombre de bits traités, une fréquence d'horloge plus rapide, une amélioration des unités arithmétiques, une meilleure gestion de la mémoire, une technologie de cache, des architectures de traitement pipeline, un pré-décodage et une préexécution des instructions, de nouveaux ensembles d'instructions pour le multimédia, de nouveaux procédés de fabrication et de nouvelles technologies de boîtiers. Néanmoins, toutes les réussites mentionnées ci-dessus sont attribuées à l'amélioration de deux technologies clés : la technologie de traitement des semi-conducteurs et la technologie de mise au point d'architecture matérielle. Les progrès dans la technologie de traitement des semi-conducteurs augmentent le nombre de transistors par puce et réduisent les distances entre les dispositifs, de telle sorte que la tension de fonctionnement peut être abaissée, la vitesse de fonctionnement peut être augmentée et des fonctions plus avancées peuvent être assurées. Les progrès dans la mise au point d'architecture matérielle comprennent : l'architecture super-pipeline, l'architecture à cache interne, la technologie super-scalaire, la technologie à exécution prédictive et la technologie à trace de microcode. Parmi ce qui précède, la technologie pipeline est le plus important contributeur à l'amélioration de la technologie de mise au point d'architecture matérielle. La technologie pipeline réalise une partition de tâches, qui divise une tâche en de multiples parties et les attribue à de multiples unités. Même si la fréquence d'horloge d'un microcontrôleur ne peut pas être augmentée, la vitesse d'exécution d'un microcontrôleur peut toujours être augmentée en raison d'une telle technologie pipeline. Un système à microcontrôleurs multiples classique et un système à microcontrôleurs multiples à Hyper-Flots (Hyperthread) classique réalisant une fonction de partition de tâches sont représentés sur les diagrammes à blocs de la Figure 1 (a) et de la Figure 1 (b) . Le système à microcontrôleurs multiples classique (Figure 1(a)) comprend essentiellement de multiples microcontrôleurs 10, 11 et 12, qui sont couplés à une mémoire de données commune 13 et à des dispositifs périphériques communs 14 par l'intermédiaire de bus (illustrés par les doubles flèches creuses). Chacune des MCU (Unité de microcontrôleur) comprend une logique centrale 102, 112 et 122 qui coopère respectivement avec une mémoire de programme correspondante 101, 111 et 121. Les MCU fonctionnent mutuellement de façon indépendante. Le système à microcontrôleur Hyperthread classique (Figure 1(b)) comprend essentiellement de multiples unités centrales de microcontrôleur 15 et 16. Chacune des unités centrales de microcontrôleur 15 et 16 comprend une logique centrale de MCU (152 et 162) et un tampon d'instructions dédié correspondant (151 et 161). Les unités centrales de MCU 15 et 16 sont respectivement couplées à une mémoire de données 18 et à une mémoire de programme 17 par l'intermédiaire de bus (représentés par les doubles flèches creuses). Par cette disposition des tampons d'instructions, les unités de microcontrôleur peuvent exécuter en parallèle et de façon séparée des programmes correspondants, de telle sorte que chaque MCU a moins accès à la mémoire de programme 17. Ainsi, la probabilité que les unités centrales de microcontrôleur interfèrent les unes avec les autres pendant l'accès à la mémoire de programme 17 est grandement réduite et les programmes peuvent être exécutés de manière plus efficace. Que ce soit multiples classique microcontrôleur à pour le système à microcontrôleurs ou pour dans le système à Hyperthread classique, leur fonctionnement d'exécution de programme en réponse à une requête d'interruption est identique. Si l'on se réfère à la Figure 2, on peut voir qu'étant donné que chaque microcontrôleur fonctionne indépendamment de toute autre MCU, lorsqu'une interruption se produit, la tâche d'interruption doit attendre jusqu'à ce que l'une des MCU soit capable de détecter et de répondre à l'interruption. On suppose qu'une MCU ayant une logique centrale de MCU 20 est la MCU répondant à l'interruption. Lorsque la logique centrale 20 de MCU détecte une requête d'interruption, la logique centrale 20 de MCU mettra tout d'abord le contenu de son propre compteur de programme 24 dans une mémoire de pile 26 et obtiendra ensuite l'adresse de départ d'une ISR (Interrupt Service Routine Routine de Service d'Interruption) de façon à exécuter la tâche d'interruption. Comme il peut être observé à partir de ce qui précède, dans ces deux systèmes à microcontrôleurs multiples classiques, les microcontrôleurs ne peuvent pas se commander mutuellement de façon directe et efficace. Un microcontrôleur (non représenté sur la Figure 2) peut uniquement informer un autre microcontrôleur (tel que la MCU ayant la logique centrale 20) par l'activation d'un drapeau ou par l'envoi d'une requête d'interruption à ce dernier, que le programme que ce dernier exécute devrait être changé. Ensuite, la première MCU doit attendre que la dernière MCU réponde. Dans un tel cas, les tâches peuvent être distribuées de façon inappropriée aux microcontrôleurs, et la performance globale du système à microcontrôleurs multiples dans sa totalité peut être dégradée. Outre l'incapacité de commande croisée directe et efficace, l'action d'interruption prend également du temps dans un tel mode de fonctionnement. Par conséquent, il est difficile pour une telle technologie classique de satisfaire des exigences plus élevées et plus complexes des produits électroniques avancés. En conséquence, la présente invention propose un système à microcontrôleurs multiples autonomes et un procédé de commande de celui-ci pour surmonter les problèmes mentionnés ci-dessus, les unités de microcontrôleur d'un système à microcontrôleurs multiples pouvant se commander réciproquement efficacement, et l'adresse de départ du programme (inséré) d'interruption pouvant être directement placée dans l'unité de microcontrôleur commandée, de telle sorte que le temps requis pour l'action d'interruption peut être raccourci, et chaque unité de microcontrôleur peut ainsi atteindre la meilleure performance possible. L'objectif principal de la présente invention est de proposer un système à microcontrôleurs multiples autonomes, dans lequel de multiples logiques centrales de MCU (Unités de microcontrôleur) sont utilisées pour exécuter en parallèle de multiples programmes, et le fonctionnement de chaque logique centrale de MCU est précisément et efficacement commandé par l'intermédiaire d'un logiciel, de telle sorte que chaque logique centrale de MCU du système à microcontrôleurs multiples peut atteindre la meilleure efficacité possible. Un autre objectif de la présente invention est de proposer un système à microcontrôleurs multiples autonomes et un procédé de commande de celui-ci, dans lequel, selon l'instruction provenant d'une logique centrale de MCU de commande, l'adresse de départ d'un programme inséré est envoyée au compteur de programme d'une logique centrale de MCU commandée, de telle sorte que la logique centrale de MCU commandée peut exécuter instantanément le programme inséré, et de ce fait, le temps d'interaction requis entre les microcontrôleurs est rendu minimal. Pour atteindre les objectifs mentionnés ci-dessus, la présente invention propose un système à microcontrôleurs multiples autonomes, comprenant : une unité multi-microcontrôleurs, comprenant une pluralité de logiques fonctionnelles de MCU (Unité de microcontrôleur) et une pluralité correspondante de compteurs de programme respectivement couplés auxdites logiques fonctionnelles de MCU pour fournir une adresse de programme auxdites logiques fonctionnelles de MCU ; un registre d'activation de microcontrôleur, couplé à ladite unité multimicrocontrôleurs, pour activer ou désactiver lesdites logiques fonctionnelles de MCU ; et au moins une mémoire, couplée à ladite unité multi-microcontrôleurs, pour stocker un programme requis par ladite unité multimicrocontrôleurs ; chacune desdites logiques fonctionnelles de MCU étant capable de changer le contenu de n'importe lequel desdits compteurs de programme. Chacune desdites logiques fonctionnelles de MCU peut être agencée pour pouvoir exécuter indépendamment au moins un programme et simultanément exécuter une instruction pour commander une autre desdites logiques fonctionnelles de MCU. Ladite instruction peut être une instruction choisie dans le groupe constitué par les opérations consistant à : activer ladite autre logique fonctionnelle de MCU ; désactiver ladite autre logique fonctionnelle de MCU ; transférer une adresse de programme dans un compteur de programme correspondant à ladite autre logique fonctionnelle de MCU ; et transférer le contenu d'un compteur de programme correspondant à ladite autre logique fonctionnelle de MCU à ladite ou lesdites mémoires. Ladite ou lesdites mémoires peuvent comprendre au moins une mémoire de programme, couplée à ladite unité multi-microcontrôleurs par l'intermédiaire d'un bus de mémoire de programme, et ayant une pluralité d'adresses de mémoire de programme pour stocker au moins un programme ; et au moins une mémoire de pile, couplée à ladite unité multi-microcontrôleurs par l'intermédiaire d'un bus de mémoire de pile, et ayant une pluralité d'adresses de mémoire de pile pour stocker au moins une adresse de programme d'un programme exécuté par ladite unité multimicrocontrôleurs ; et ladite unité multi-microcontrôleurs comprend en outre une pluralité de pointeurs de pile respectivement couplés auxdites logiques fonctionnelles de MCU pour fournir une adresse de mémoire de pile. Ladite instruction de transfert du contenu d'un compteur de programme correspondant à ladite autre logique fonctionnelle de MCU à ladite ou auxdites mémoires peut être une instruction choisie dans le groupe constitué par une instruction Push (Mise dans la Pile) et une instruction Move (Déplacement). Ladite instruction de transfert d'une adresse de programme dans un compteur de programme correspondant à ladite autre logique fonctionnelle de MCU peut être une instruction choisie dans le groupe constitué par une instruction Pop (Extraction de la Pile), une instruction Move (Déplacement), une instruction Cali_ (Appel), une instruction Return (Retour) et un fonctionnement par Load Table (Chargement d'une Table). La présente invention a également pour objet un procédé de commande d'instruction Push pour un système à microcontrôleurs multiples ayant au moins une unité fonctionnelle de MCU (Unité de Microcontrôleur) de commande, une logique fonctionnelle de MCU commandée, un compteur de programme correspondant à ladite MCU commandée et un emplacement de mémoire, le procédé comprenant les étapes suivantes : ladite logique fonctionnelle de MCU de commande émet une instruction Push ; et ledit système stocke le contenu dudit compteur de programme correspondant à ladite logique fonctionnelle de MCU commandée dans un emplacement de mémoire. La présente invention a encore pour objet un procédé de commande d'instruction Pop pour un système à microcontrôleurs multiples ayant au moins une logique fonctionnelle de MCU (Unité de Microcontrôleur) de commande, une logique fonctionnelle de MCU commandée, un compteur de programme correspondant à ladite MCU commandée et un emplacement de mémoire, le procédé comprenant les étapes suivantes : ladite logique fonctionnelle de MCU de commande émet une instruction Pop ; et ledit système interpose une adresse de programme dans ledit compteur de programme correspondant à ladite logique fonctionnelle de MCU commandée. De plus, la présente invention propose également un procédé de commande pour un système à microcontrôleurs multiples autonomes, le système ayant au moins une logique fonctionnelle de MCU (Unité de Microcontrôleur) de commande, une logique fonctionnelle de MCU commandée, un compteur de programme correspondant à ladite MCU commandée et une mémoire, le procédé comprenant les étapes suivantes consistant à : désactiver ladite logique fonctionnelle de MCU commandée ; geler ledit compteur de programme ; transférer le contenu dans un emplacement de ladite mémoire dans ledit compteur de programme ; et activer ladite logique fonctionnelle de MCU commandée. Lesdites étapes consistant à activer et à désactiver ladite logique fonctionnelle de MCU commandée peuvent être effectuées au moyen d'un registre d'activation de microcontrôleur. Le procédé peut comprendre en outre l'étape consistant à, avant de transférer le contenu dans un premier emplacement de ladite mémoire dans ledit compteur de programme, stocker le contenu dudit compteur de programme dans un second emplacement de ladite mémoire. Le procédé peut comprendre en outre l'étape consistant à, après activation de ladite fonctionnelle de MCU commandée, ce par quoi ladite logique fonctionnelle de MCU commandée achève la tâche correspondant au contenu dans ledit premier emplacement de ladite mémoire, restaurer le contenu dans ledit second emplacement de ladite mémoire dans ledit compteur de programme. Ladite étape consistant à transférer le contenu dans un premier emplacement de ladite mémoire dans ledit compteur de programme peut être une instruction choisie dans le groupe constitué par une instruction Pop, une instruction Move, une instruction Call, et un fonctionnement par Load Table. Ladite étape consistant à stocker le contenu dudit compteur de programme dans un second emplacement de ladite mémoire peut être une instruction choisie dans le groupe constitué par une instruction Push et une instruction Move. Ladite étape consistant à restaurer le contenu dans ledit second emplacement de ladite mémoire dans ledit compteur de programme peut être une instruction choisie dans le groupe constitué par une instruction Pop, une instruction Move, une instruction Call, une instruction Return et un fonctionnement par Load Table. Ledit premier emplacement de ladite mémoire peut être un emplacement dans une mémoire de programme. Ledit second emplacement de ladite mémoire peut être un emplacement dans une mémoire de pile. Ledit système peut comprendre en outre un pointeur de pile correspondant à ladite mémoire de pile, et dans lequel ladite étape consistant à stocker le contenu dudit compteur de programme dans un second emplacement de ladite mémoire peut comprendre l'étape consistant à stocker le contenu dudit compteur de programme dans un emplacement de ladite mémoire de pile selon l'indice dudit pointeur de pile. Ledit système peut comprendre en outre une mémoire de pile et un pointeur de pile correspondant à ladite mémoire de pile, et dans lequel ladite étape consistant à transférer le contenu dans un premier emplacement de ladite mémoire dans ledit compteur de programme peut comprendre l'étape consistant à stocker de façon temporaire le contenu dans un premier emplacement de ladite mémoire dans un emplacement de ladite mémoire de pile selon un premier indice dudit pointeur de pile ; et stocker le contenu dans ledit emplacement de ladite mémoire de pile dans ledit compteur de programme selon un second indice dudit pointeur de pile. De plus, la présente invention propose également un procédé de commande pour un système à microcontrôleurs multiples autonomes, le système ayant au moins une logique fonctionnelle de MCU (Unité de Microcontrôleur) de commande, une logique fonctionnelle de MCU commandée, un compteur de programme correspondant à ladite MCU commandée, une mémoire de programme, une mémoire de pile et un pointeur de pile correspondant à ladite mémoire de pile, le procédé comprenant les étapes consistant à : désactiver ladite logique fonctionnelle de MCU commandée ; geler ledit compteur de programme ; stocker le contenu dudit compteur de programme dans un premier emplacement de ladite mémoire de pile selon un premier indice dudit pointeur de pile ; stocker temporairement une adresse de ladite mémoire de programme dans un second emplacement de ladite mémoire de 25 pile selon un second indice dudit pointeur de pile ; stocker le contenu dans ledit second emplacement de ladite mémoire de pile dans ledit compteur de programme selon ledit second indice dudit pointeur de pile ; activer ladite logique fonctionnelle de MCU commandée, ce par quoi ladite logique fonctionnelle de MCU commandée achève la tâche correspondant au contenu dans ladite adresse de ladite mémoire de programme ; désactiver ladite logique fonctionnelle de MCU commandée ; restaurer le contenu dans ledit second emplacement de ladite mémoire de pile dans ledit compteur de programme ; et activer ladite logique fonctionnelle de MCU commandée, ce par quoi ladite logique fonctionnelle de MCU commandée reprend sa tâche initiale. Pour une meilleure compréhension des objectifs, des contenus techniques, des caractéristiques et de l'efficacité de la présente invention, la présente invention va être décrite ci-dessous en détail par des modes de réalisation illustratifs, avec référence aux dessins annexés. Sur les dessins : - la Figure 1(a) est un diagramme à blocs montrant schématiquement l'architecture du système à microcontrôleurs multiples classique ; - la Figure 1(b) est un diagramme à blocs montrant schématiquement l'architecture du système à microcontrôleur Hyperthread classique ; 30 - la Figure 2 est un diagramme à blocs montrant schématiquement l'architecture du système de microcontrôleur classique pour un fonctionnement lorsqu'une requête d'interruption survient ; 35 - la Figure 3 est un diagramme à blocs montrant schématiquement l'architecture du système à microcontrôleurs multiples autonomes selon cette invention ; - la Figure 4 est un organigramme selon un premier mode de 5 réalisation de la présente invention ; - la Figure 5 est un organigramme selon un second mode de réalisation de la présente invention. 10 La présente invention est basée sur l'architecture d'un système à microcontrôleurs multiples dans lequel chaque logique centrale de MCU (Unité de Microcontrôleur) peut exécuter indépendamment son programme. Selon la présente invention, pendant 15 l'exécution de son programme respectif, chaque logique centrale de MCU peut entrer l'adresse de départ d'un programme attribué au compteur de programme d'une autre logique centrale de MCU pour déterminer la tâche suivante pour cette logique centrale de MCU (logique centrale de MCU 20 commandée). De cette façon, le temps nécessaire pour changer des programmes de la logique centrale de MCU est rendu minimal. Comme exemple, un premier mode de réalisation de la présente invention va être décrit pour expliquer comment 25 le système et le procédé fonctionnent lorsqu'une logique centrale de MCU du système à microcontrôleurs multiples autonomes vise à commander une logique centrale de MCU non spécifiée (c'est-à-dire toute autre logique centrale) du même système. Si l'on se réfère à la Figure 3, on peut 30 voir que le système à microcontrôleurs multiples autonomes de la présente invention comprend : trois logiques centrales de MCU 30, 31 et 32 ; un registre d'activation de microcontrôleur 35 ; une mémoire de programme 33 ; et une mémoire de pile 34. Les logiques centrales de MCU 30, 31 35 et 32 comprennent respectivement des logiques fonctionnelles 301, 311 et 321 ; des compteurs de programme 302, 312 et 322 ; et des pointeurs de pile 303, 313 et 323. Les logiques centrales de MCU 30, 31 et 32 sont liées à la mémoire de programme 33 par l'intermédiaire d'un bus de mémoire de programme 334 ; de cette façon, les logiques centrales de MCU 30, 31 et 32 peuvent accéder à la mémoire de programme 33 pour extraire des programmes et des instructions stockés dans le bloc de programme de système 330 et dans les premier, second et troisième blocs de programme 331, 332 et 333 de logique centrale de MCU. Les logiques centrales de MCU 30, 31 et 32 sont également liées à la mémoire de pile 34 par l'intermédiaire d'un bus de mémoire de pile 344 ; de cette façon, lorsque les logiques centrales de MCU 30, 31 et 32 exécutent des programmes, les contenus des premier, second et troisième compteurs de programme 302, 312 et 322 peuvent être temporairement stockés séparément dans les premier, second et troisième blocs de pile 341, 342 et 343 de logique centrale de MCU correspondants. Le procédé de commande du système à microcontrôleurs multiples autonomes de la présente invention va être décrit en détail ci-dessous. On se réfère à la Figure 3 et à la Figure 4, la Figure 4 étant un organigramme du procédé de commande selon le premier mode de réalisation de la présente invention. Tout d'abord, à l'Etape S01, les trois logiques centrales de MCU 30, 31 et 32 exécutent respectivement leurs propres programmes. Pour être plus illustratif, on suppose que la logique fonctionnelle 301 de la première logique centrale de MCU 30 est en train d'exécuter l'instruction dans l'adresse de programme pointée par le premier compteur de programme 302, et l'adresse de programme est c101 de la mémoire de programme 33 ; la logique fonctionnelle 311 de la seconde logique centrale de MCU 31 exécute l'instruction dans l'adresse de programme pointée par le second compteur de programme 312, et l'adresse de programme est c201 de la mémoire de programme 33 ; et la logique fonctionnelle 321 de la troisième logique centrale de MCU 32 exécute l'instruction dans l'adresse de programme pointée par le troisième compteur de programme 322, et l'adresse de programme est c301 de la mémoire de programme 33. Ensuite, une interruption se produit, laquelle nécessite que le système exécute un programme commençant à l'adresse de programme 00fO. Les adresses de programme de ce programme inséré ont été stockées, par exemple, dans le bloc de programme de système 330. L'interruption nécessite que la seconde logique centrale de MCU 31 stoppe son programme en cours du second bloc de programme 332 de logique centrale de MCU, et exécute le programme de système inséré avec l'adresse de départ 00fO. En supposant que la logique fonctionnelle 311 de la seconde logique centrale de MCU 31 ne soit pas nécessaire pour reprendre l'exécution de son programme initial, le programme initial sera stoppé à son adresse de programme courante (par exemple c202), et le second compteur de programme 312 sera gelé de manière correspondante à l'adresse c202. A l'Etape S02, la première logique centrale de MCU 30 coopère avec le registre d'activation de microcontrôleur 35 pour envoyer un signal de désactivation à la seconde logique centrale de MCU 31 (et ainsi à sa logique fonctionnelle 311), stoppant l'exécution du programme en cours et gelant le compteur de programme 312 à l'adresse de programme c202. A l'Etape S03, comme l'indice du premier pointeur de pile 303 de la première logique centrale 30 de MCU est à l'adresse i de la mémoire de pile, et que l'adresse de départ du programme inséré, qui doit être exécuté par la logique fonctionnelle 311 de la seconde logique centrale de MCU commandée 31, est 00fO, la logique fonctionnelle 301 de la première logique centrale de MCU 30 stocke 00fO dans l'adresse i de la mémoire de pile 34. A l'Etape SO4, la logique fonctionnelle 301 de la première logique centrale de MCU 30 transfère (par exemple, par une instruction Pop telle que pop PC2) le contenu de l'adresse i de mémoire de pile de la mémoire de pile 34 (c'est-à-dire 00fO) au second compteur de programme 312 de la seconde MCU 31 ; ainsi, lorsque la seconde logique centrale de MCU 31 est activée plus tard, elle exécutera le programme à partir de l'adresse 00fO. A l'Etape S05, la première logique centrale de MCU 30 coopère avec le registre d'activation de microcontrôleur 35 pour envoyer un signal d'activation à la seconde logique centrale de MCU 31 (et ainsi à sa logique fonctionnelle 311), de telle sorte que la logique fonctionnelle 311 de la seconde logique centrale de MCU 31 peut commencer à exécuter le programme inséré avec l'adresse de programme de départ 00fO pointée par le second compteur de programme 312. A l'Etape S06, étant donné que le contenu du second compteur de programme 312 de la seconde MCU 31 a été changé en 00fO, l'état des trois logiques centrales de MCU 30, 31 et 32 est comme suit : la logique fonctionnelle 301 de la première logique centrale de MCU 30 exécute toujours le programme dans l'adresse de programme pointée par le premier compteur de programme 302, et l'adresse de programme se trouve au premier bloc de programme 331 de logique centrale de MCU de la mémoire de programme 33 ; la logique fonctionnelle 311 de la seconde logique centrale 31 de MCU exécute le programme dans l'adresse de programme pointée par le second compteur de programme 312, mais l'adresse de programme se trouve au bloc de programme de système 330 de la mémoire de programme 33 ; et la logique fonctionnelle 321 de la troisième logique centrale de MCU 32 exécute toujours le programme dans l'adresse de programme pointée par le troisième compteur de programme 322, et l'adresse de programme se trouve au troisième bloc de programme de logique centrale de MCU 333 de la mémoire de programme 33. Le premier mode de réalisation mentionné ci-dessus a expliqué en détail le procédé de commande réciproque pour la logique centrale de MCU 30 de commande et la logique centrale de MCU 31 commandée. Dans ce premier mode de réalisation, après que la logique centrale de MCU commandée achève l'exécution du programme inséré, la logique centrale de MCU commandée peut commencer l'exécution d'un nouveau programme ou reprendre l'exécution du programme interrompu. Le second mode de réalisation suivant de la présente invention décrit davantage comment le système fonctionne lorsque la logique centrale de MCU commandée a besoin de reprendre l'exécution du programme interrompu après qu'elle ait achevée l'exécution du programme inséré. On se réfère à la Figure 3 et à la Figure 5, la Figure 5 étant un organigramme du procédé de commande selon le second mode de réalisation de la présente invention. L'architecture du système à microcontrôleurs multiples autonomes de la présente invention a été décrite ci-dessus et n'est pas répétée ici. Le procédé de commande du système à microcontrôleurs multiples autonomesselon le second mode de réalisation de la présente invention va maintenant être décrit en détail ci-dessous. Tout d'abord, à l'Etape S11, les trois logiques centrales de MCU 30, 31 et 32 exécutent respectivement leurs propres programmes, c'est-à-dire que la logique fonctionnelle 301 de la première logique centrale de MCU 30 exécute l'instruction à l'adresse de programme pointée par le premier compteur de programme 302, et l'instruction se trouve au premier bloc de programme 331 de la logique centrale de MCU de la mémoire de programme 33 ; la logique fonctionnelle 311 de la seconde logique centrale de MCU 31 exécute l'instruction à l'adresse de programme pointée par le second compteur de programme 312, et l'instruction se trouve au second bloc de programme 332 de logique centrale de MCU de la mémoire de programme 33 ; et la logique fonctionnelle 321 de la troisième logique centrale de MCU 32 exécute l'instruction dans l'adresse de programme pointée par le troisième compteur de programme 322, et l'instruction se trouve au troisième bloc de programme 333 de logique centrale de MCU de la mémoire de programme 33. Ensuite, une interruption se produit, laquelle nécessite que le système exécute un programme commençant à partir de l'adresse de programme 00fO qui est maintenant stockée dans le bloc de programme de système 330. Ceci nécessite que la seconde logique centrale de MCU 31 arrête son programme en cours du second bloc de programme 332 de logique centrale de MCU, et exécute le programme de système inséré avec l'adresse de départ 00fO ; de plus, la seconde logique centrale de MCU 31 aura à reprendre l'exécution de son programme initial après l'achèvement du programme de système inséré. A l'Etape S12, la première logique centrale de MCU 30 coopère avec le registre d'activation de microcontrôleur 35 pour envoyer un signal de désactivation à la seconde logique centrale de MCU 31 (et ainsi à sa logique fonctionnelle 311), stoppant l'exécution du programme en cours et gelant le compteur de programme 312 à l'adresse de programme courante (par exemple c202). A l'Etape S13, comme l'indice du premier pointeur de pile 303 de la première logique centrale de MCU 30 est à l'adresse i de mémoire de pile, la logique fonctionnelle 301 de la première logique centrale de MCU 30 stocke (par exemple, par une instruction Push telle que Push PC2) le contenu du second compteur de programme 312 de la seconde logique centrale 311 de MCU dans l'adresse i de mémoire de pile. A l'Etape S14, comme l'indice du premier pointeur de pile 303 de la première logique centrale de MCU 30 est maintenant à l'adresse i+1 de mémoire de pile, et que l'adresse de départ du programme inséré, qui doit être exécuté par la seconde logique centrale de MCU commandée 31, est 00fO, la logique fonctionnelle 301 de la première logique centrale de MCU 30 stocke 00fO dans l'adresse i+1 de mémoire de pile de la mémoire de pile 34. A l'Etape S15, la logique fonctionnelle 301 de la première logique centrale de MCU 30 transfère (par exemple, par une instruction Pop telle que Pop PC2) le contenu de l'adresse i+1 de mémoire de pile de la mémoire de pile 34 (c'est-à-dire 00fO) au second compteur de programme 312 de la seconde logique centrale de MCU 31. A l'Etape S16, la première logique centrale de MCU 30 coopère avec le registre d'activation de microcontrôleur 35 pour envoyer un signal d'activation à la seconde logique centrale de MCU 31 (et ainsi à sa logique fonctionnelle 311), de telle sorte que la logique fonctionnelle 311 de la seconde logique centrale de MCU 31 peut commencer à exécuter le programme de système inséré avec l'adresse de départ 00fO pointée par le second compteur de programme 312. A l'étape S17, après avoir achevé l'exécution du programme inséré avec l'adresse de départ 00fO, la seconde logique centrale de MCU 31 informe la première logique centrale de MCU 30 que l'exécution du programme inséré a été achevée. A l'Etape S18, en coopération avec le registre d'activation de microcontrôleur 35, la première logique centrale de MCU 30 envoie un signal de désactivation pour que la seconde logique centrale de MCU 31 passe en pause et arrête son exécution du programme en cours. A l'Etape S19, selon l'indice du premier pointeur de pile 303 de la première logique centrale de MCU 30, la logique fonctionnelle 301 de la première logique centrale de MCU 30 restaure (par exemple, par une instruction Pop telle que Pop PC2) le contenu (c'est-à-dire c202) de l'adresse i de mémoire de pile de la mémoire de pile 34 au second compteur de programme 312 de la seconde logique centrale de MCU 31, et ceci signifie que le second programme de compteur 312 de la seconde logique centrale de MCU 31 pointe maintenant à nouveau vers l'adresse de mémoire de programme c202 de la mémoire de programme 33. A l'Etape S20, la première logique centrale de MCU 30 coopère avec le registre d'activation de microcontrôleur 35 pour envoyer un signal d'activation à la seconde logique centrale de MCU 31, activant la logique fonctionnelle 311 de la seconde logique centrale de MCU 31 pour reprendre le programme interrompu stocké dans le second bloc de programme 332 de logique centrale de MCU selon l'adresse de programme pointée par le second compteur de programme 312. Enfin, à l'Etape S21, comme le second compteur de programme 312 de la seconde logique centrale de MCU 31 a pointé à nouveau vers l'adresse de mémoire de programme c202 de la mémoire de programme 33, l'état des trois logiques centrales de MCU 30, 31 et 32 est comme suit : la logique fonctionnelle 301 de la première logique centrale de MCU 30 exécute toujours le programme dans l'adresse de programme pointée par le premier compteur de programme 302, et l'adresse de programme est au premier bloc de programme 331 de logique centrale de MCU de la mémoire de programme 33 ; la logique fonctionnelle 311 de la seconde logique centrale de MCU 31 a repris l'exécution de son programme initial, c'est-à-dire le programme à l'adresse de programme pointée par le second compteur de programme 312, et l'adresse de programme est au second bloc de programme 332 de logique centrale de MCU de la mémoire de programme 33 ; et la logique fonctionnelle 321 de la troisième logique centrale de MCU 32 exécute toujours le programme dans l'adresse de programme pointée par le troisième compteur de programme 322, et l'adresse de programme est au troisième bloc de programme 333 de logique centrale de MCU de la mémoire de programme 33. Il devrait être noté que dans les modes de réalisation précédents, la première logique centrale de MCU est décrite comme étant la logique centrale de MCU de commande ; cependant, n'importe laquelle parmi les logiques centrales de MCU peut agir en tant que logique centrale de MCU de commande pour mettre l'adresse de départ d'un programme inséré dans le compteur de programme d'une logique centrale de MCU commandée. Et, bien qu'il soit représenté sur la Figure 3 qu'une logique fonctionnelle de MCU, un compteur de programme et un pointeur de pile constituent ensemble une logique centrale de MCU, ceci est uniquement pour une meilleure compréhension de l'architecture de la présente invention. En fait, chacune des logiques fonctionnelles de MCU peut avoir une correspondance dynamique avec l'un des compteurs de programme et l'un des pointeurs de pile. De plus, dans les modes de réalisation précédents, les adresses de programme du programme inséré sont stockées dans le bloc de programme de système 330. Cependant, comme l'homme du métier peut facilement le comprendre, les adresses de programme du programme inséré peuvent être stockées dans n'importe quel emplacement approprié, tel que dans un registre général. Le bloc de programme de système 330 ici décrit est seulement un exemple. De plus, dans les modes de réalisation précédents, les adresses de programme sont transférées à partir de et vers la logique centrale de MCU commandée (la seconde logique centrale de MCU 31 dans les modes de réalisation) au moyen d'une mémoire de pile, conjointement avec l'utilisation du pointeur de pile de la logique centrale de MCU de commande (la première logique centrale de MCU 30). Cependant, l'homme du métier peut facilement penser à de nombreuses approches équivalentes pour atteindre le même objectif. Par exemple, les adresses de programme peuvent être transférées à partir de et vers tout autre emplacement mémoire, tel qu'un registre général, une mémoire de données ou n'importe quelle autre mémoire. De la même façon, l'utilisation d'une instruction Push ou d'une instruction Pop n'est pas la seule manière de transférer les adresses de programme entre les emplacements de mémoire ; il existe de nombreuses manières équivalentes de la faire, telles qu'au moyen d'une instruction Move, d'une instruction Call, d'une instruction Return, par un fonctionnement par Load Table, etc. Par comparaison avec la technologie classique, la présente invention change directement le contenu du compteur de programme de la MCU commandée, et, par conséquent, il n'est pas nécessaire pour la MCU de commande d'activer un drapeau et d'attendre que la MCU commandée réponde ; la perte de plusieurs ou même de plusieurs dizaines de cycles d'horloge de temps peut ainsi être économisée. Par conséquent, ce que la présente invention décrit est un système à microcontrôleurs multiples autonomes simple, efficace et à réponse rapide et un procédé de commande de celui-ci. Les modes de réalisation décrits ci-dessus sont à titre d'illustration seulement, pour que l'homme du métier comprenne la présente invention. Les modes de réalisation ne sont aucunement destinés à limiter la portée de la présente invention. Toute modification et variation dans l'esprit de la présente invention devrait être comprise dans la portée revendiquée de la présente invention. REVENDICATIONS 1 - Système à microcontrôleurs multiples autonomes caractérisé par le fait qu'il comprend : - une unité multi-microcontrôleurs, comprenant une pluralité de logiques fonctionnelles de MCU (Unité de Microcontrôleur) (301, 311, 321) et une pluralité correspondante de compteurs de programme (302, 312, 322) respectivement couplés auxdites logiques fonctionnelles de MCU (301, 311, 321) pour fournir une adresse de programme auxdites logiques fonctionnelles de MCU (301, 311, 321) ; - un registre d'activation de microcontrôleur (35), couplé à ladite unité multi-microcontrôleurs, pour activer ou désactiver lesdites logiques fonctionnelles de MCU (301, 311, 321) ; et - au moins une mémoire, couplée à ladite unité multimicrocontrôleurs, pour stocker un programme requis par ladite unité multi-microcontrôleurs ; chacune desdites logiques fonctionnelles de MCU (301, 311, 321) étant capable de changer le contenu de n'importe lequel desdits compteurs de programme (302, 312, 322). 2 - Système à microcontrôleurs multiples autonomes selon la revendication 1, caractérisé par le fait que chacune desdites logiques fonctionnelles de MCU (301, 311, 321) est agencée pour pouvoir exécuter indépendamment au moins un programme et simultanément exécuter une instruction pour commander une autre desdites logiques fonctionnelles de MCU (301, 311, 321). 3 - Système à microcontrôleurs multiples autonomes selon la revendication 2, caractérisé par le fait que ladite instruction est une instruction choisie dans le groupe constitué par les opérations consistant à : -activer ladite autre logique fonctionnelle de MCU (301, 311, 321) ; -désactiver ladite autre logique fonctionnelle de MCU (301, 311, 321) ;-transférer une adresse de programme dans un compteur de programme (302, 312, 322) correspondant à ladite autre logique fonctionnelle de MCU (301, 311, 321) ; et - transférer le contenu d'un compteur de programme (302, 312, 322) correspondant à ladite autre logique fonctionnelle de MCU (301, 311, 321) à ladite ou auxdites mémoires. 4 - Système à microcontrôleurs multiples autonomes selon la revendication 1, caractérisé par le fait 10 que ladite ou lesdites mémoires comprennent : - au moins une mémoire de programme (33), couplée à ladite unité multi-microcontrôleurs par l'intermédiaire d'un bus de mémoire de programme (334), et ayant une pluralité d'adresses de mémoire de programme pour stocker au moins 15 un programme ; et - au moins une mémoire de pile (34), couplée à ladite unité multi-microcontrôleurs par l'intermédiaire d'un bus de mémoire de pile (344), et ayant une pluralité d'adresses de mémoire de pile pour stocker au moins une adresse de 20 programme d'un programme exécuté par ladite unité multi- microcontrôleurs ; et ladite unité multi-microcontrôleurs comprenant en outre : - une pluralité de pointeurs de pile (303, 313, 323) respectivement couplés auxdites logiques fonctionnelles 25 de MCU (301, 311, 321) pour fournir une adresse de mémoire de pile. 5 - Système à microcontrôleurs multiples autonomes selon la revendication 3, caractérisé par le fait que ladite instruction de transfert du contenu d'un 30 compteur de programme (302, 312, 322) correspondant à ladite autre logique fonctionnelle de MCU (301, 311, 321) à ladite ou auxdites mémoires est une instruction choisie dans le groupe constitué par : une instruction Push (Mise dans la Pile) et une instruction Move (Déplacement). 35 6 - Système à microcontrôleurs multiples autonomes selon la revendication 3, caractérisé par le fait que ladite instruction de transfert d'une adresse deprogramme dans un compteur de programme (302, 312, 322) correspondant à ladite autre logique fonctionnelle de MCU (301, 311, 321) est une instruction choisie dans le groupe constitué par : une instruction Pop (Extraction de la Pile), une instruction Move (Déplacement), une instruction Cali_ (Appel), une instruction Return (Retour) et un fonctionnement par Load Table (Chargement de Table). 7 - Procédé de commande d'instruction Push pour un système à microcontrôleurs multiples selon l'une quelconque des revendications 1 à 6, ayant au moins une unité fonctionnelle de MCU (Unité de Microcontrôleur) de commande (301, 311, 321), une logique fonctionnelle de MCU commandée (301, 311, 321), un compteur de programme (302, 312, 322) correspondant à ladite MCU commandée et un emplacement de mémoire, caractérisé par le fait qu'il comprend les étapes suivantes : ladite logique fonctionnelle de MCU de commande émet une instruction Push ; et ledit système stocke le contenu dudit compteur de programme (302, 312, 322) correspondant à ladite logique fonctionnelle de MCU commandée dans un emplacement de mémoire. 8 Procédé de commande d'instruction Pop pour un système à microcontrôleurs multiples selon l'une quelconque des revendications 1 à 6, ayant au moins une logique fonctionnelle de MCU (Unité de Microcontrôleur) de commande (301, 311, 321), une logique fonctionnelle de MCU commandée (301, 311, 321), un compteur de programme (302, 312, 322) correspondant à ladite MCU commandée et un emplacement mémoire, caractérisé par le fait qu'il comprend les étapes suivantes . ladite logique fonctionnelle de MCU de commande émet une instruction Pop ; et ledit système interpose une adresse de programme dans 35 ledit compteur de programme (302, 312, 322) correspondant à ladite logique fonctionnelle de MCU commandée.9 - Procédé de commande pour un système à microcontrôleurs multiples selon l'une quelconque des revendications 1 à 6, ayant au moins une logique fonctionnelle de MCU (Unité de Microcontrôleur) de commande, une logique fonctionnelle de MCU commandée, un compteur de programme (302, 312, 322) correspondant à ladite MCU commandée et une mémoire, caractérisé par le fait qu'il comprend les étapes suivantes consistant à : - désactiver ladite logique fonctionnelle de MCU commandée ; - geler ledit compteur de programme (302, 312, 322) ; -transférer le contenu dans un premier emplacement de ladite mémoire dans ledit compteur de programme (302, 312, 322) ; et - activer ladite logique fonctionnelle de MCU commandée. 10 - Procédé de commande selon la revendication 9, caractérisé par le fait que lesdites étapes consistant à activer et à désactiver ladite logique fonctionnelle de MCU commandée sont effectuées au moyen d'un registre d'activation de microcontrôleur (35). 11 - Procédé de commande selon la revendication 9, caractérisé par le fait qu'il comprend en outre l'étape consistant à : - avant de transférer le contenu dans un premier 25 emplacement de ladite mémoire dans ledit compteur de programme (302, 312, 322), stocker le contenu dudit compteur de programme dans un second emplacement de ladite mémoire. 12 - Procédé de commande selon la revendication 30 11, caractérisé par le fait qu'il comprend en outre l'étape consistant à : - après activation de ladite logique fonctionnelle de MCU commandée, ce par quoi ladite logique fonctionnelle de MCU commandée achève la tâche correspondant au contenu 35 dans ledit premier emplacement de ladite mémoire, restaurer le contenu dans ledit second emplacement deladite mémoire dans ledit compteur de programme (302, 312, 322). 13 - Procédé de commande selon la revendication 9, caractérisé par le fait que ladite étape consistant à transférer le contenu dans un premier emplacement de ladite mémoire dans ledit compteur de programme (302, 312, 322) est une instruction choisie dans le groupe constitué par : une instruction Pop, une instruction Move, une instruction Call, et un fonctionnement par Load Table. 14 - Procédé de commande selon la revendication 11, caractérisé par le fait que ladite étape consistant à stocker le contenu dudit compteur de programme (302, 312, 322) dans un second emplacement de ladite mémoire est une instruction choisie dans le groupe constitué par : une instruction Push et une instruction Move. 15 -Procédé de commande selon la revendication 12, caractérisé par le fait que ladite étape consistant à restaurer le contenu dans ledit second emplacement de ladite mémoire dans ledit compteur de programme (302, 312, 322) est une instruction choisie dans le groupe constitué par : une instruction Pop, une instruction Move, une instruction Call, une instruction Return et un fonctionnement par Load Table. 16 - Procédé de commande selon la revendication 9, caractérisé par le fait que ledit premier emplacement de ladite mémoire est un emplacement dans une mémoire de programme (33). 17 - Procédé de commande selon la revendication 11, caractérisé par le fait que ledit second emplacement de 30 ladite mémoire est un emplacement dans une mémoire de pile (34). 18 - Procédé de commande selon la revendication 17, caractérisé par le fait que ledit système comprend en outre un pointeur de pile (303, 313, 323) correspondant à 35 ladite mémoire de pile (34), et dans lequel ladite étape consistant à stocker le contenu dudit compteur de programme(302, 312, 322) dans un second emplacement de ladite mémoire (34) comprend l'étape consistant à : - stocker le contenu dudit compteur de programme (302, 312, 322) dans un emplacement de ladite mémoire de pile (34) selon l'indice dudit pointeur de pile (303, 313, 323). 19 - Procédé de commande selon la revendication 16, caractérisé par le fait que ledit système comprend en outre une mémoire de pile (34) et un pointeur de pile (303, 313, 323) correspondant à ladite mémoire de pile (34), et dans lequel ladite étape consistant à transférer le contenu dans un premier emplacement de ladite mémoire dans ledit compteur de programme (302, 312, 322) comprend l'étape consistant à : - stocker de façon temporaire le contenu dans un premier emplacement de ladite mémoire dans un emplacement de ladite mémoire de pile (34) selon un premier indice dudit pointeur de pile (303, 313, 323) ; et - stocker le contenu dans ledit emplacement de ladite mémoire de pile (34) dans ledit compteur de programme (302, 312, 322) selon un second indice dudit pointeur de pile (303, 313, 323). 20 - Procédé de commande pour un système à microcontrôleurs multiples selon l'une quelconque des revendications 1 à 6, ayant au moins une logique fonctionnelle de MCU (Unité de Microcontrôleur) de commande, une logique fonctionnelle de MCU commandée, un compteur de programme (302, 312, 322) correspondant à ladite MCU commandée, une mémoire de programme (33), une mémoire de pile (34) et un pointeur de pile (303, 313, 323) correspondant à ladite mémoire de pile (34), caractérisé par le fait qu'il comprend les étapes consistant à : -désactiver ladite logique fonctionnelle de MCU commandée - geler ledit compteur de programme (302, 312, 322) ; 35 - stocker le contenu dudit compteur de programme (302, 312, 322) dans un premier emplacement de ladite mémoire depile (34) selon un premier indice dudit pointeur de pile (303, 313, 323) ; stocker temporairement une adresse de ladite mémoire de programme (33) dans un second emplacement de ladite mémoire de pile (34) selon un second indice dudit pointeur de pile (303, 313, 323) ; stocker le contenu dans ledit second emplacement de ladite mémoire de pile (34) dans ledit compteur de programme (302, 312, 322) selon ledit second indice dudit pointeur de pile (303, 313, 323) ; activer ladite logique fonctionnelle de MCU commandée, ce par quoi ladite logique fonctionnelle de MCU commandée achève la tâche correspondant au contenu dans ladite adresse de ladite mémoire de programme (33) ; - désactiver ladite logique fonctionnelle de MCU commandée - restaurer le contenu dans ledit second emplacement de ladite mémoire de pile (34) dans ledit compteur de programme (302, 312, 322) ; et - activer ladite logique fonctionnelle de MCU commandée, ce par quoi ladite logique fonctionnelle de MCU commandée reprend sa tâche initiale.