[go: up one dir, main page]

FR2911415A1 - MULTIPLE INDEPENDENT MICROCONTROLLER SYSTEM AND METHOD OF CONTROLLING THE SAME - Google Patents

MULTIPLE INDEPENDENT MICROCONTROLLER SYSTEM AND METHOD OF CONTROLLING THE SAME Download PDF

Info

Publication number
FR2911415A1
FR2911415A1 FR0752727A FR0752727A FR2911415A1 FR 2911415 A1 FR2911415 A1 FR 2911415A1 FR 0752727 A FR0752727 A FR 0752727A FR 0752727 A FR0752727 A FR 0752727A FR 2911415 A1 FR2911415 A1 FR 2911415A1
Authority
FR
France
Prior art keywords
mcu
program
memory
functional logic
location
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR0752727A
Other languages
French (fr)
Other versions
FR2911415B1 (en
Inventor
Jung Lin Chang
Chuan Po Ling
Shih Yu Lin
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Padauk Tech Co Ltd
Original Assignee
Padauk Tech Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Padauk Tech Co Ltd filed Critical Padauk Tech Co Ltd
Publication of FR2911415A1 publication Critical patent/FR2911415A1/en
Application granted granted Critical
Publication of FR2911415B1 publication Critical patent/FR2911415B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Microcomputers (AREA)
  • Programmable Controllers (AREA)
  • Hardware Redundancy (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

La présente invention décrit un système à microcontrôleurs multiples autonomes et un procédé de commande de celui-ci, dans lequel toute logique centrale de MCU (30, 31, 32) du système à microcontrôleurs multiples peut directement placer l'adresse de départ d'un programme inséré dans le compteur de programme (302, 312, 322) d'une logique centrale de MCU commandée. L'adresse du programme interrompu de la logique centrale de MCU commandée (30, 31, 32) est temporairement stockée dans la mémoire de pile (34) selon l'indice du pointeur de pile (303, 313, 323) de la logique centrale de MCU (30, 31, 32) de telle sorte que la logique centrale de MCU commandée (30, 31, 32) peut reprendre l'exécution du programme interrompu après qu'elle a achevée l'exécution du programme inséré.The present invention describes an autonomous multi-microcontroller system and a control method thereof, wherein any MCU central logic (30, 31, 32) of the multiple microcontroller system can directly set the starting address of a program inserted into the program counter (302, 312, 322) of a controlled central MCU logic. The interrupted program address of the controlled MCU central logic (30, 31, 32) is temporarily stored in the stack memory (34) according to the index of the stack pointer (303, 313, 323) of the central logic. of the MCU (30, 31, 32) so that the central MCU logic controlled (30, 31, 32) can resume execution of the interrupted program after it has completed execution of the inserted program.

Description

SYSTEME A MICROCONTROLEURS MULTIPLES AUTONOMES ET PROCÉDÉ DE COMMANDE DEMULTIPLE SELF-CONTAINED MICROCONTROLLER SYSTEM AND METHOD OF CONTROLLING

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.  The present invention relates to a multi-microcontroller system and the control method thereof, particularly to a multi-autonomous microcontroller system and to the control method thereof. A microcontroller / microprocessor (MCU / MPU), which is also called a single chip microcomputer, is an integrated circuit that establishes control instructions in a system. It can operate without the help of any other auxiliary circuit. A microcontroller provides functions almost equivalent to those provided by a miniature computer. In recent years, microcontrollers have been widely applied in many fields, such as consumer electronics, industrial controllers, medical equipment, vehicle controllers, and so on. Depending on the domain to which it is applied, a microcontroller may have a different specification and may cooperate with different peripheral devices.

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).  The history of microcontroller development is a story of continuous improvement of three targets: (1) acceleration of data processing speed, (2) miniaturization of chip size by unit function, and (3) reduction of the size of the chip. power consumption. Many important advances of the microcontrollers have thus been realized, including: an increase in the number of bits processed, a faster clock frequency, an improvement of the arithmetic units, a better management of the memory, a cache technology, architectures of pipeline processing, pre-decoding and prefetching of instructions, new sets of instructions for multimedia, new manufacturing processes and new enclosure technologies. Nevertheless, all the successes mentioned above are attributed to the improvement of two key technologies: semiconductor processing technology and hardware architecture development technology. Advances in semiconductor processing technology increase the number of transistors per chip and reduce the distances between devices, so that the operating voltage can be lowered, the operating speed can be increased and more advanced functions can be insured. Advances in hardware architecture development include: super-pipeline architecture, internal cache architecture, super-scalar technology, predictive-execution technology, and microcode trace technology. Among the above, pipeline technology is the largest contributor to improving hardware architecture debugging technology. Pipeline technology performs a task partition, which divides a task into multiple parts and assigns them to multiple units. Even though the clock rate of a microcontroller can not be increased, the execution speed of a microcontroller can still be increased due to such pipeline technology. A conventional multi-microcontroller system and a conventional Hyper-Flot (Hyperthread) microcontroller system performing a task partitioning function are shown in the block diagrams of Figure 1 (a) and Figure 1 (b). The conventional multi-microcontroller system (FIG. 1 (a)) essentially comprises multiple microcontrollers 10, 11 and 12, which are coupled to a common data memory 13 and to common peripheral devices 14 via buses (illustrated by FIG. the double hollow arrows). Each of the MCUs (microcontroller unit) comprises a central logic 102, 112 and 122 which cooperates respectively with a corresponding program memory 101, 111 and 121. The MCUs operate mutually independently. The conventional Hyperthread microcontroller system (Fig. 1 (b)) essentially comprises multiple microcontroller central units 15 and 16. Each of the microcontroller central units 15 and 16 comprises a central MCU logic (152 and 162) and a buffer. corresponding dedicated instructions (151 and 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.  The MCU CPUs 15 and 16 are respectively coupled to a data memory 18 and a program memory 17 via buses (represented by the double hollow arrows). By this arrangement of the instruction buffers, the microcontroller units can run in parallel and separately corresponding programs, so that each MCU has less access to the program memory 17. Thus, the probability that the CPUs will Microcontroller interfere with each other during access to program memory 17 is greatly reduced and programs can be run more efficiently. Whether it be multiple conventional microcontrollers for the microcontroller system or for the conventional Hyperthread system, their program execution operation in response to an interrupt request is identical. Referring to Figure 2, it can be seen that since each microcontroller operates independently of any other MCU, when an interrupt occurs, the interrupt task must wait until one MCUs are able to detect and respond to the interruption. It is assumed that an MCU having a central logic of MCU 20 is the MCU responding to the interrupt. When the central logic 20 of MCU detects an interrupt request, the central logic 20 of MCU will first put the contents of its own program counter 24 in a stack memory 26 and then obtain the starting address of an Interrupt Service Routine Routine Interrupt Service Routine to perform the interrupt task. As can be seen from the foregoing, in these two conventional multi-microcontroller systems, microcontrollers can not control each other in a direct and efficient manner. A microcontroller (not shown in FIG. 2) can only inform another microcontroller (such as the MCU having the central logic 20) by activating a flag or sending an interrupt request to the latter. , that the program that it runs should be changed. Then the first MCU must wait for the last MCU to respond. In such a case, the tasks may be inappropriately distributed to the microcontrollers, and the overall performance of the multiple microcontroller system as a whole may be degraded. In addition to the inability to direct and efficient cross-control, the interrupt action also takes time in such a mode of operation. Therefore, it is difficult for such conventional technology to meet the higher and more complex requirements of advanced electronic products. Accordingly, the present invention provides an autonomous multi-microcontroller system and a control method thereof for overcoming the above-mentioned problems, the microcontroller units of a multi-microcontroller system being able to control each other effectively, and starting address of the interrupt (inserted) program that can be directly placed in the controlled microcontroller unit, so that the time required for the interrupt action can be shortened, and each microcontroller unit can thus reach the best 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.  The main objective of the present invention is to provide an autonomous multi-microcontroller system, in which multiple central MCU logic (microcontroller units) are used to run multiple programs in parallel, and the operation of each MCU core logic. is precisely and efficiently controlled via software, so that each central MCU logic of the multiple microcontroller system can achieve the best possible efficiency. Another object of the present invention is to provide a system with multiple independent microcontrollers and a control method thereof, wherein, according to the instruction from a central control MCU logic, the starting address of an inserted program is sent to the program counter of a controlled central MCU logic, so that the centralized MCU logic can instantly execute the inserted program, and thus the required interaction time between the microcontrollers is made minimal. To achieve the above-mentioned objectives, the present invention provides an autonomous multi-microcontroller system, comprising: a multi-microcontroller unit, comprising a plurality of MCU (Microcontroller Unit) functional logic and a corresponding plurality of program counters respectively coupled to said MCU functional logic for providing a program address to said MCU functional logic; a microcontroller activation register, coupled to said multimicrocontroller unit, for enabling or disabling said MCU functional logic; and at least one memory, coupled to said multi-microcontroller unit, for storing a program required by said multi-microcontroller unit; each of said functional logic of MCU being capable of changing the contents of any one of said program counters.

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.  Each of said MCU functional logic can be arranged to independently run at least one program and simultaneously execute an instruction to control another of said MCU functional logic. Said instruction may be an instruction selected from the group consisting of: activating said other MCU functional logic; disabling said other functional logic of MCU; transferring a program address in a program counter corresponding to said other MCU functional logic; and transferring the contents of a program counter corresponding to said other MCU functional logic to said one or more memories. Said memory or memories may comprise at least one program memory, coupled to said multi-microcontroller unit via a program memory bus, and having a plurality of program memory addresses for storing at least one program ; and at least one stack memory, coupled to said multi-microcontroller unit via a stack memory bus, and having a plurality of stack memory addresses for storing at least one program address of a program executed by said multimicrocontroller unit; and said multi-microcontroller unit further comprises a plurality of stack pointers respectively coupled to said MCU functional logic to provide a stack memory address. Said instruction for transferring the contents of a program counter corresponding to said other MCU functional logic to said one or more memories may be an instruction selected from the group consisting of a Push instruction and a Move instruction. ). Said instruction for transferring a program address in a program counter corresponding to said other MCU functional logic may be an instruction selected from the group consisting of a Pop instruction, a Move instruction, a Cali_ (Call) statement, a Return statement, and a Load Table operation. The present invention also provides a method of push command control for a multiple microcontroller system having at least one control MCU (Control Microcontroller Unit) functional unit, a controlled MCU functional logic, a program counter corresponding to said controlled MCU and a memory location, the method comprising the steps of: said control MCU functional logic issues a push instruction; and said system stores the contents of said program counter corresponding to said controlled MCU functional logic in a memory location.

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.  The present invention further relates to a Pop instruction control method for a multi-microcontroller system having at least one control MCU (Microcontroller Unit) functional logic, a controlled MCU functional logic, a program counter corresponding to said controlled MCU and a memory location, the method comprising the steps of: said control MCU functional logic issues a Pop instruction; and said system interposes a program address in said program counter corresponding to said controlled MCU functional logic. In addition, the present invention also provides a control method for an autonomous multi-microcontroller system, the system having at least one control MCU (Microcontroller Unit) functional logic, a controlled MCU functional logic, a corresponding program counter said controlled MCU and a memory, the method comprising the steps of: deactivating said controlled MCU functional logic; freeze said program counter; transferring the content to a location of said memory in said program counter; and activate said controlled MCU functional logic. Said steps of activating and deactivating said controlled MCU functional logic can be performed by means of a microcontroller activation register. The method may further include the step of, prior to transferring the contents to a first location of said memory in said program counter, storing the contents of said program counter in a second location of said memory. The method may further include the step of, after activation of said controlled MCU functional, whereby said MCU functional logic terminates the task corresponding to the content in said first location of said memory, restoring the content in said second memory location. location of said memory in said program counter. Said step of transferring the content in a first location of said memory into said program counter may be an instruction selected from the group consisting of a Pop instruction, a Move instruction, a Call instruction, and a Load Table operation.

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.  Said step of storing the contents of said program counter in a second location of said memory may be an instruction selected from the group consisting of a push instruction and a move instruction.

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.  Said step of restoring the content in said second location of said memory in said program counter may be an instruction selected from the group consisting of a Pop instruction, a Move instruction, a Call statement, a Return statement, and a Load Table operation. . Said first location of said memory may be a location in a program memory.

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.  Said second location of said memory may be a location in a stack memory. The system may further include a stack pointer corresponding to said stack memory, and wherein said step of storing the contents of said program counter in a second location of said memory may include the step of storing the contents of said counter program in a location of said stack memory according to the index of said stack pointer. The system may further include a stack memory and a stack pointer corresponding to said stack memory, and wherein said step of transferring the contents to a first location of said memory in said program counter may include the step of temporarily storing the contents in a first location of said memory in a location of said stack memory according to a first index of said stack pointer; and storing the contents in said location of said stack memory in said program counter according to a second index of said stack pointer. In addition, the present invention also provides a control method for an autonomous multi-microcontroller system, the system having at least one control MCU (Microcontroller Unit) functional logic, a controlled MCU functional logic, a corresponding program counter said controlled MCU, a program memory, a stack memory, and a stack pointer corresponding to said stack memory, the method comprising the steps of: disabling said controlled MCU functional logic; freeze said program counter; storing the contents of said program counter in a first location of said stack memory according to a first index of said stack pointer; temporarily storing an address of said program memory in a second location of said stack memory according to a second index of said stack pointer; storing the contents in said second location of said stack memory in said program counter according to said second index of said stack pointer; enabling said controlled MCU functional logic, whereby said MCU functional logic terminates the task corresponding to the content in said address of said program memory; disabling said controlled MCU functional logic; restoring the contents in said second location of said stack memory in said program counter; and enabling said controlled MCU functional logic, whereby said controlled MCU functional logic resumes its original task. For a better understanding of the purposes, technical contents, features and effectiveness of the present invention, the present invention will be described below in detail by illustrative embodiments, with reference to the accompanying drawings.

Sur les dessins :On the drawings:

- 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 ;  Figure 1 (a) is a block diagram schematically showing the architecture of the conventional multi-microcontroller system; Figure 1 (b) is a block diagram schematically showing the architecture of the conventional Hyperthread microcontroller system;

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 ;  Figure 2 is a block diagram schematically showing the architecture of the conventional microcontroller system for operation when an interrupt request occurs;

35 - la Figure 3 est un diagramme à blocs montrant schématiquement l'architecture du système à microcontrôleurs multiples autonomes selon cette invention ;  Figure 3 is a block diagram schematically showing the architecture of the multi-autonomous microcontroller system according to this invention;

- la Figure 4 est un organigramme selon un premier mode de 5 réalisation de la présente invention ;  Figure 4 is a flowchart according to a first embodiment of the present invention;

- la Figure 5 est un organigramme selon un second mode de réalisation de la présente invention.  Figure 5 is a flowchart according to a second embodiment of the present 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.  The present invention is based on the architecture of a multiple microcontroller system in which each central logic of the MCU (Microcontroller Unit) can independently execute its program. According to the present invention, during the execution of its respective program, each central logic of MCU can enter the starting address of a program assigned to the program counter of another central logic of MCU to determine the next task for this central logic of MCU (central logic of MCU 20 ordered). In this way, the time required to change programs of the central logic of MCU is made minimal. As an example, a first embodiment of the present invention will be described to explain how the system and method operate when an MCU core logic of the standalone multiple microcontroller system aims to control an unspecified MCU core logic (c that is, any other central logic) of the same system. Referring to Figure 3, it can be seen that the multiple autonomous microcontroller system of the present invention comprises: three central logic of MCUs 30, 31 and 32; a microcontroller activation register 35; a program memory 33; and a stack memory 34. The central logic of MCU 30, 31 and 32 respectively comprise functional logic 301, 311 and 321; program counters 302, 312 and 322; and stack pointers 303, 313 and 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.  The central logic of MCU 30, 31 and 32 are related to program memory 33 via a program memory bus 334; in this way, the central logic of MCU 30, 31 and 32 can access program memory 33 to retrieve programs and instructions stored in system program block 330 and in the first, second and third program blocks 331 , 332 and 333 of MCU Central Logic. The central logic of MCUs 30, 31 and 32 are also related to the stack memory 34 via a stack memory bus 344; in this way, when the central logic of MCU 30, 31, and 32 execute programs, the contents of the first, second, and third program counters 302, 312, and 322 may be temporarily stored separately in the first, second, and third stack blocks 341, 342 and 343 of corresponding MCU central logic. The control method of the multi-autonomous microcontroller system of the present invention will be described in detail below. Referring to Figure 3 and Figure 4, Figure 4 is a flowchart of the control method according to the first embodiment of the present invention. First, in Step S01, the three central logic of MCU 30, 31 and 32 respectively execute their own programs. To be more illustrative, it is assumed that the functional logic 301 of the first MCU central logic 30 is executing the instruction in the program address pointed by the first program counter 302, and the program address is c101 of the program memory 33; the functional logic 311 of the second central logic of MCU 31 executes the instruction in the program address pointed by the second program counter 312, and the program address is c201 of the program memory 33; and the functional logic 321 of the third MCU central logic 32 executes the instruction in the program address pointed by the third program counter 322, and the program address is c301 of the program memory 33. interrupt occurs, which requires the system to run a program starting at the 00fO program address. The program addresses of this inserted program have been stored, for example, in the system program block 330. The interrupt requires the second central logic of MCU 31 to stop its current program of the second program block 332 of central logic of MCU, and execute the inserted system program with starting address 00fO. Assuming that the functional logic 311 of the second central logic of MCU 31 is not necessary to resume execution of its initial program, the initial program will be stopped at its current program address (for example c202), and the second counter program 312 will be correspondingly frozen at address c202. In Step S02, the first central logic of MCU 30 cooperates with the microcontroller activation register 35 to send a deactivation signal to the second central logic of MCU 31 (and thus to its functional logic 311), stopping the executing the program in progress and freezing the program counter 312 to the program address c202. In Step S03, as the index of the first stack pointer 303 of the first central logic unit 30 of MCU is at address i of the stack memory, and that the starting address of the program inserted, which must be executed by the functional logic 311 of the second centralized MCU logic 31 is 00f0, the functional logic 301 of the first MCU central logic 30 stores 00f0 in the address i of the stack memory 34. At step SO4 , the functional logic 301 of the first central logic of MCU 30 transfers (for example, by a Pop instruction such as pop PC2) the contents of the stack memory address i of the stack memory 34 (ie say 00fO) to the second program counter 312 of the second MCU 31; thus, when the second central logic of MCU 31 is activated later, it will execute the program from the address 00f0. In Step S05, the first central logic of MCU 30 cooperates with the microcontroller activation register 35 to send an activation signal to the second central logic of MCU 31 (and thus to its functional logic 311), such that so that the functional logic 311 of the second central logic of MCU 31 can begin to execute the inserted program with the start program address 00f0 pointed by the second program counter 312. In Step S06, since the content the second program counter 312 of the second MCU 31 has been changed to 00f0, the state of the three central logic of MCU 30, 31 and 32 is as follows: the functional logic 301 of the first central logic of MCU 30 always executes the program in the program address pointed by the first program counter 302, and the program address is in the first MCU central logic program block 331 of the program memory 33; the functional logic 311 of the second central logic 31 of the MCU executes the program in the program address pointed by the second program counter 312, but the program address is in the system program block 330 of the program memory 33; and the functional logic 321 of the third MCU central logic 32 always executes the program in the program address pointed by the third program counter 322, and the program address is in the third MCU central logic program block 333 of the program memory 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.  The first embodiment mentioned above explained in detail the reciprocal control method for the control MCU central logic and the controlled MCU central logic 31. In this first embodiment, after the centralized MCU logic completes the execution of the inserted program, the centralized MCU logic may begin executing a new program or resume execution of the interrupted program. The second embodiment of the present invention further describes how the system operates when the centralized MCU logic needs to resume execution of the interrupted program after it has completed execution of the inserted program. Referring to Figure 3 and Figure 5, Figure 5 is a flowchart of the control method according to the second embodiment of the present 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.  The architecture of the multi-autonomous microcontroller system of the present invention has been described above and is not repeated here. The control method of the multiple microcontroller system according to the second embodiment of the present invention will now be described in detail below. Firstly, in Step S11, the three central logic units of MCU 30, 31 and 32 respectively execute their own programs, i.e., the functional logic 301 of the first central logic of MCU 30 executes the program. instruction at the program address pointed by the first program counter 302, and the instruction is at the first program block 331 of the MCU central logic of the program memory 33; the functional logic 311 of the second MCU central logic 31 executes the instruction at the program address pointed to by the second program counter 312, and the instruction is at the second MCU central logic program block 332 of the program memory 33; and the functional logic 321 of the third MCU central logic 32 executes the instruction in the program address pointed by the third program counter 322, and the instruction is in the third MCU central logic program block 333. program memory 33. Next, an interrupt occurs, which requires the system to execute a program starting from the program address 00f0 which is now stored in the system program block 330. This requires that the second logic MCU central station 31 stops its current program from the second MCU central logic program block 332, and executes the inserted system program with start address 00f0; furthermore, the second central logic of MCU 31 will have to resume execution of its initial program after completion of the inserted system program. In Step S12, the first central logic of MCU 30 cooperates with the microcontroller activation register 35 to send a deactivation signal to the second central logic of MCU 31 (and thus to its functional logic 311), stopping the executing the current program and freezing the program counter 312 to the current program address (for example c202). In Step S13, as the index of the first stack pointer 303 of the first central logic of MCU 30 is at the stack memory address i, the functional logic 301 of the first central logic of MCU 30 stores (by for example, by a push instruction such as Push PC2) the contents of the second program counter 312 of the second central logic MCU 311 in the stack memory address i. In Step S14, as the index of the first stack pointer 303 of the first central logic of MCU 30 is now at the address i + 1 of stack memory, and that the starting address of the program inserted, which must be executed by the second centralized MCU logic 31, is 00f0, the functional logic 301 of the first central logic of MCU 30 stores 00fO in the i + 1 address of the stack memory 34 of the stack memory. Step S15, the functional logic 301 of the first central logic of MCU 30 transfers (for example, by a Pop instruction such as Pop PC2) the contents of the i + 1 address of the stack memory of the stack memory 34 ( i.e. 00fO) to the second program counter 312 of the second central logic of MCU 31. In Step S16, the first central logic of MCU 30 cooperates with the microcontroller activation register 35 to send a activation signal to the central logic second MCU 31 (and thus its logic functi onnel 311), so that the functional logic 311 of the second central logic of MCU 31 can begin to execute the inserted system program with the start address 00f0 pointed by the second program counter 312. At step S17 after completing the execution of the program inserted with the start address 00f0, the second central logic of MCU 31 informs the first central logic of MCU 30 that execution of the inserted program has been completed. In Step S18, in cooperation with the microcontroller activation register 35, the first central logic of MCU 30 sends a deactivation signal for the second central logic of MCU 31 to pause and stop its execution of the current program. . In Step S19, according to the index of the first stack pointer 303 of the first central logic of MCU 30, the functional logic 301 of the first central logic of MCU 30 restores (for example, by a Pop instruction such as Pop PC2 ) the content (i.e., c202) of the stack memory address i of the stack memory 34 to the second program counter 312 of the second central logic of MCU 31, and this means that the second program Counter 312 of the second central logic of MCU 31 is now again pointing to the program memory address c202 of the program memory 33. In Step S20, the first central logic of MCU 30 cooperates with the program register. activation of microcontroller 35 for sending an activation signal to the second central logic of MCU 31, activating the functional logic 311 of the second central logic of MCU 31 to resume the interrupted program stored in the second central logic program block 332 ofMCU according to the program address pointed by the second program counter 312. Finally, in Step S21, as the second program counter 312 of the second central logic of MCU 31 pointed back to the memory address of program c202 of program memory 33, the state of the three central logic of MCU 30, 31 and 32 is as follows: the functional logic 301 of the first central logic of MCU 30 always executes the program in the program address pointed by the first program counter 302, and the program address is at the first MCU central logic program block 331 of the program memory 33; the functional logic 311 of the second central logic of MCU 31 has resumed the execution of its initial program, that is to say the program at the program address pointed by the second program counter 312, and the address program is at the second MCU central logic program block 332 of the program memory 33; and the functional logic 321 of the third MCU central logic 32 always executes the program in the program address pointed by the third program counter 322, and the program address is at the third MCU central logic program block 333 of program memory 33. It should be noted that in the previous embodiments, the first central logic of MCU is described as the central control MCU logic; however, any of the central MCU logic may act as a control MCU central logic to set the start address of a program inserted into the program counter of a controlled MCU central logic. And, although it is shown in Figure 3 that an MCU functional logic, a program counter, and a stack pointer together constitute a core MCU logic, this is only for a better understanding of the architecture of the MCU. present invention. In fact, each of the functional logic of the MCU can have a dynamic match with one of the program counters and one of the stack pointers. Moreover, in the previous embodiments, the program addresses of the inserted program are stored in the system program block 330. However, as one skilled in the art can readily understand, the program addresses of the inserted program may be stored in any convenient location, such as in a general registry. The system program block 330 described here is only an example. In addition, in the previous embodiments, the program addresses are transferred from and to the centralized MCU logic (the second central logic of MCU 31 in the embodiments) by means of a stack memory, together with the use of the stack pointer of the central control MCU logic (the first central logic of MCU 30). However, those skilled in the art can easily think of many equivalent approaches to achieve the same goal. For example, the program addresses may be transferred from and to any other memory location, such as a general register, a data memory, or any other memory. Similarly, using a push instruction or a pop instruction is not the only way to transfer program addresses between memory locations; there are many equivalent ways to do this, such as using a Move statement, a Call statement, a Return statement, Load Table operation, and so on. Compared with conventional technology, the present invention directly changes the content of the program counter of the controlled MCU, and therefore it is not necessary for the control MCU to activate a flag and wait until the MCU ordered answers; the loss of several or even several tens of clock cycles of time can thus be saved. Therefore, what the present invention describes is a simple, efficient and fast response autonomous multiple microcontroller system and a control method thereof.

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.  The embodiments described above are by way of illustration only, so that those skilled in the art understand the present invention. The embodiments are in no way intended to limit the scope of the present invention. Any modification and variation within the spirit of the present invention should be within the scope of the present invention.

Claims (8)

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).  1 - Multi-autonomous microcontroller system characterized in that it comprises: a multi-microcontroller unit, comprising a plurality of MCU (Microcontroller Unit) functional logic (301, 311, 321) and a corresponding plurality of counter meters; program (302, 312, 322) respectively coupled to said MCU functional logic (301, 311, 321) for providing a program address to said MCU functional logic (301, 311, 321); a microcontroller activation register (35), coupled to said multi-microcontroller unit, for activating or deactivating said MCU functional logic (301, 311, 321); and - at least one memory, coupled to said multi-microcontroller unit, for storing a program required by said multi-microcontroller unit; each of said MCU functional logic (301, 311, 321) being capable of changing the contents of any one of said program counters (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).  2 - System with multiple autonomous microcontrollers according to claim 1, characterized in that each of said functional logic MCU (301, 311, 321) is arranged to be able to independently run at least one program and simultaneously execute an instruction to control another of said functional logic of 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.  3 - autonomous multi-microcontroller system according to claim 2, characterized in that said instruction is an instruction selected from the group consisting of the operations of: -activate said other MCU functional logic (301, 311, 321); disabling said other MCU functional logic (301, 311, 321); transferring a program address in a program counter (302, 312, 322) corresponding to said other MCU functional logic (301, 311, 321); and - transferring the contents of a program counter (302, 312, 322) corresponding to said other MCU functional logic (301, 311, 321) to said one or more memories. 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.  4 - System with multiple autonomous microcontrollers according to claim 1, characterized in that said one or more memories comprise: - at least one program memory (33), coupled to said multi-microcontroller unit via a bus program memory (334), and having a plurality of program memory addresses for storing at least one program; and - at least one stack memory (34), coupled to said multi-microcontroller unit via a stack memory bus (344), and having a plurality of stack memory addresses for storing at least a program address of a program executed by said multi-microcontroller unit; and said multi-microcontroller unit further comprising: - a plurality of stack pointers (303, 313, 323) respectively coupled to said MCU functional logic (301, 311, 321) for providing a stack memory address. 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  5 - autonomous multi-microcontroller system according to claim 3, characterized in that said instruction for transferring the contents of a program counter (302, 312, 322) corresponding to said other functional logic of the MCU (301, 311, 321) to said one or more memories is an instruction selected from the group consisting of: a Push instruction (Put in the Stack) and a Move instruction (Move). 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).  6 - System with multiple independent microcontrollers according to claim 3, characterized in that said instruction to transfer a program address in a program counter (302, 312, 322) corresponding to said other functional logic MCU (301, 311 , 321) is an instruction selected from the group consisting of: a Pop instruction (Pile Extraction), a Move instruction, a Cali_ (Call) instruction, a Return statement, and a Load Table operation. Loading 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.  A method of push command control for a multi-microcontroller system according to any one of claims 1 to 6, having at least one operating unit of MCU (Microcontroller Unit) control (301, 311, 321), a controlled MCU functional logic (301, 311, 321), a program counter (302, 312, 322) corresponding to said controlled MCU and a memory location, characterized in that it comprises the following steps: said functional logic MCU command issues a push instruction; and said system stores the contents of said program counter (302, 312, 322) corresponding to said controlled MCU functional logic in a memory location. 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.A pop instruction control method for a multi-microcontroller system according to any one of claims 1 to 6, having at least one control MCU (Control Microcontroller Unit) functional logic (301, 311, 321), logic controlled MCU functional unit (301, 311, 321), a program counter (302, 312, 322) corresponding to said controlled MCU and a memory location, characterized in that it comprises the following steps. said control MCU functional logic issues a Pop instruction; and said system interposes a program address in said program counter (302, 312, 322) corresponding to said controlled MCU functional logic. 9 - Control method for a multiple microcontroller system according to any one of claims 1 to 6, having at least one control MCU (Microcontroller Unit) functional logic, a controlled MCU functional logic, a program counter (302, 312, 322) corresponding to said controlled MCU and a memory, characterized in that it comprises the following steps: - deactivating said controlled MCU functional logic; freezing said program counter (302, 312, 322); -transferring the contents to a first location of said memory in said program counter (302, 312, 322); and - activate said controlled MCU functional logic. 10 - Control method according to claim 9, characterized in that said steps of activating and deactivating said controlled MCU functional logic are performed by means of a microcontroller activation register (35). 11 - Control method according to claim 9, characterized in that it further comprises the step of: - before transferring the contents to a first location of said memory in said program counter (302, 312, 322), storing the contents of said program counter in a second location of said memory. 12 - control method according to claim 11, characterized in that it further comprises the step of: - after activation of said controlled MCU functional logic, whereby said command MCU functional logic completes the task corresponding to the contents in said first location of said memory, restoring the contents in said second location of said memory in said program counter (302, 312, 322). 13 - control method according to claim 9, characterized in that said step of transferring the content in a first location of said memory in said program counter (302, 312, 322) is an instruction selected from the group consisting of : a Pop instruction, a Move statement, a Call statement, and a Load Table operation. 14 - control method according to claim 11, characterized in that said step of storing the contents of said program counter (302, 312, 322) in a second location of said memory is an instruction selected from the group consisting of: a push statement and a move statement. Control method according to claim 12, characterized in that said step of restoring the content in said second location of said memory in said program counter (302, 312, 322) is an instruction selected from the group consisting of : a Pop instruction, a Move statement, a Call statement, a Return statement, and a Load Table operation. 16 - Control method according to claim 9, characterized in that said first location of said memory is a location in a program memory (33). 17 - Control method according to claim 11, characterized in that said second location of said memory is a location in a stack memory (34). 18. The control method as claimed in claim 17, characterized in that said system further comprises a stack pointer (303, 313, 323) corresponding to said stack memory (34), and wherein said step of storing the content of said program counter (302, 312, 322) in a second location of said memory (34) comprises the step of: - storing the contents of said program counter (302, 312, 322) in a location of said stack memory (34) according to the index of said stack pointer (303, 313, 323). 19 - control method according to claim 16, characterized in that said system further comprises a stack memory (34) and a stack pointer (303, 313, 323) corresponding to said stack memory (34), and wherein said step of transferring the contents to a first location of said memory in said program counter (302, 312, 322) comprises the step of: - temporarily storing the contents in a first location of said memory in a location of said stack memory (34) according to a first index of said stack pointer (303, 313, 323); and storing the contents in said location of said stack memory (34) in said program counter (302, 312, 322) according to a second index of said stack pointer (303, 313, 323). Control method for a multi-microcontroller system according to any of claims 1 to 6, having at least one control MCU (Microcontroller Unit) functional logic, a controlled MCU functional logic, a program counter ( 302, 312, 322) corresponding to said controlled MCU, a program memory (33), a stack memory (34) and a stack pointer (303, 313, 323) corresponding to said stack memory (34), characterized in that it comprises the steps of: - disabling said controlled MCU functional logic - freezing said program counter (302, 312, 322); Storing the contents of said program counter (302, 312, 322) in a first location of said staple memory (34) according to a first index of said stack pointer (303, 313, 323); temporarily storing an address of said program memory (33) in a second location of said stack memory (34) according to a second index of said stack pointer (303, 313, 323); storing the contents in said second location of said stack memory (34) in said program counter (302, 312, 322) according to said second index of said stack pointer (303, 313, 323); enabling said controlled MCU functional logic, whereby said MCU functional logic terminates the task corresponding to the content in said address of said program memory (33); - disabling said controlled MCU functional logic - restoring the contents in said second location of said stack memory (34) in said program counter (302, 312, 322); and - activating said controlled MCU functional logic, whereby said controlled MCU functional logic resumes its original task.
FR0752727A 2006-04-14 2007-01-17 MULTIPLE INDEPENDENT MICROCONTROLLER SYSTEM AND METHOD OF CONTROLLING THE SAME Active FR2911415B1 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW095113415A TW200725393A (en) 2005-12-23 2006-04-14 Self-control multi-microcontroller system and method

Publications (2)

Publication Number Publication Date
FR2911415A1 true FR2911415A1 (en) 2008-07-18
FR2911415B1 FR2911415B1 (en) 2013-12-27

Family

ID=38758803

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0752727A Active FR2911415B1 (en) 2006-04-14 2007-01-17 MULTIPLE INDEPENDENT MICROCONTROLLER SYSTEM AND METHOD OF CONTROLLING THE SAME

Country Status (4)

Country Link
JP (1) JP2007287126A (en)
KR (1) KR100946561B1 (en)
FR (1) FR2911415B1 (en)
TW (1) TW200725393A (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101833476B (en) * 2010-05-28 2013-08-14 西安交通大学 Independent stack function calling method based on CMP speculation multi-thread mechanism

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5881063A (en) * 1996-04-08 1999-03-09 Ford Motor Company Half-message based multiplex communication interface circuit which uses a main microcontroller to detect a match in addresses and generate a qualified signal
US6085307A (en) * 1996-11-27 2000-07-04 Vlsi Technology, Inc. Multiple native instruction set master/slave processor arrangement and method thereof
US6341344B1 (en) 1998-03-20 2002-01-22 Texas Instruments Incorporated Apparatus and method for manipulating data for aligning the stack memory

Also Published As

Publication number Publication date
FR2911415B1 (en) 2013-12-27
JP2007287126A (en) 2007-11-01
KR20070102370A (en) 2007-10-18
KR100946561B1 (en) 2010-03-11
TWI312941B (en) 2009-08-01
TW200725393A (en) 2007-07-01

Similar Documents

Publication Publication Date Title
EP0059018B1 (en) Multiprocessor with dynamic task assignment in multiprogramming mode and its use
US9531775B2 (en) Mobile application migration to cloud computing platform
TWI421681B (en) Memoy and system for memory management in a computing environment
EP3591536B1 (en) Storage device including reconfigurable logic and method of operating the storage device
WO2007051935A1 (en) Method and system for conducting intensive multitask and multiflow calculation in real-time
FR2881540A1 (en) Input output cache memory usage method for computer system, involves assuring that prefetch locking indicator of cache memory line of cache memory associated to memory request is in locked condition, if memory request is not speculative
CN113448735A (en) Memory leak processing method and device and electronic equipment
WO2022042127A1 (en) Coroutine switching method and apparatus, and device
WO2010105889A1 (en) Allocation and monitoring unit
EP3258380B1 (en) Asynchronous processor core and communicating sensor node microcontroller comprising such a processor core
WO2014158216A1 (en) On-demand scalable timer wheel
FR2911415A1 (en) MULTIPLE INDEPENDENT MICROCONTROLLER SYSTEM AND METHOD OF CONTROLLING THE SAME
EP2726985B1 (en) Device and method for synchronizing tasks executed in parallel on a platform comprising several calculation units
EP2585931B1 (en) Device, string, and method for processing data, and corresponding computer program
FR2850179A1 (en) Cache memory device for digital signal processor, has cache memory to provide instructions to core and to deactivate flag signal operation, and another memory to provide instruction to core when operation of signal is deactivated
EP3215933B1 (en) Coarse-grain reconfigurable architecture method and device for executing an application code in its entirety
CN117271423A (en) Inter-core communication method, system, equipment and medium, and vehicle
US7503047B1 (en) System and method for enhancing the sharing of application libraries between different JVM's and systems with a dynamic relocation based on usage patterns
EP2836913A1 (en) Device for generating a signature during execution of a program task, and method for comparing flows of execution
CN100538665C (en) Multicomputer system, system board and high-speed cache replacement request disposal route
FR2681963A1 (en) TRANSPARENT INTERRUPTIONS FOR THE SYSTEM WITH AUTOMATIC RESTART OF INPUT / OUTPUT SEQUENCE.
US11645200B2 (en) Reducing load balancing work stealing
EP1256880B1 (en) Data processing system and method for distributing memory access
FR2864660A1 (en) Logic or arithmetic data processing device for computer, has controller controlling transfer of processing threads between RAM memory and one of two stations when multithread processor processes threads on another station
WO2024248855A1 (en) Efficient stack-related processor instructions

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 10

PLFP Fee payment

Year of fee payment: 11

PLFP Fee payment

Year of fee payment: 12

PLFP Fee payment

Year of fee payment: 14

PLFP Fee payment

Year of fee payment: 15

PLFP Fee payment

Year of fee payment: 16

PLFP Fee payment

Year of fee payment: 17

PLFP Fee payment

Year of fee payment: 18

PLFP Fee payment

Year of fee payment: 19