EP2491491A1 - Electronic control unit having a real-time core managing partitioning - Google Patents

Electronic control unit having a real-time core managing partitioning

Info

Publication number
EP2491491A1
EP2491491A1 EP10771341A EP10771341A EP2491491A1 EP 2491491 A1 EP2491491 A1 EP 2491491A1 EP 10771341 A EP10771341 A EP 10771341A EP 10771341 A EP10771341 A EP 10771341A EP 2491491 A1 EP2491491 A1 EP 2491491A1
Authority
EP
European Patent Office
Prior art keywords
real
partition
tasks
time kernel
task
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.)
Ceased
Application number
EP10771341A
Other languages
German (de)
French (fr)
Inventor
Guy Renault
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.)
Safran Electronics and Defense SAS
Original Assignee
Sagem Defense Securite SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sagem Defense Securite SA filed Critical Sagem Defense Securite SA
Publication of EP2491491A1 publication Critical patent/EP2491491A1/en
Ceased legal-status Critical Current

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
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory

Definitions

  • the present invention relates to an electronic control unit with real-time kernel managing a partitioning.
  • the present invention is more particularly intended for aeronautical applications.
  • FADEC Edinburgh full authority digital engine control
  • FADEC a control unit comprising a microcontroller integrating an operating system software to perform operations. IT application tasks. These applications can be executed in whole or in part simultaneously.
  • the operating system incorporates a Real-Time Operating System (RTOS) to manage application execution and provide data routing between two applications and between applications and hardware. Partitioning is planned with partitions allocated to each application to prevent applications from interfering with each other during their execution. This partitioning is governed in the aeronautical field by the ARINC 653 standard, which provides for spatial partitioning, which guarantees that an application can not write to a memory area assigned to a partition of another application, and a temporal partitioning that guarantees that execution time will be allocated to each application.
  • ARINC 653 which provides for spatial partitioning, which guarantees that an application can not write to a memory area assigned to a partition of another application, and a temporal partitioning that guarantees that execution time will be allocated to each application.
  • the context of the first task i.e., the set of values of microcontroller states that are necessary for its execution and are notably recorded in the memory registers of the microcontroller
  • the changes of context are thus relatively long and all the more so as the microcontrollers include a number of registers to be saved more and more importantly. Partition changes are just as long for the same reasons. This is an additional disadvantage of multi-tasking kernels compatible with the ARINC 653 standard.
  • An object of the invention is to provide a control unit offering a strong spatial and temporal partitioning.
  • an electronic control unit comprising a microcontroller provided with a read-only memory containing a code of an operating software system incorporating a real-time kernel for performing computer tasks, and a dynamic memory containing variable data in relation to the tasks.
  • the read-only memory and the dynamic memory comprise zones assigned to partitions allocated for one to the real-time kernel and for others each to at least one of the tasks.
  • the read-only memory and the dynamic memory are associated with a physically programmed address bus to prevent each partition, on the one hand, from writing to another zone of the dynamic memory and, on the other hand, to execute a other areas of the ROM and the real-time kernel is associated with a delay to allocate each partition a run time.
  • the address bus is physically programmed so that a task executed in a partition has no hardware means for writing data or executing code in another partition than that allocated to it.
  • the exchange of data between partitions can not be done physically without going through the real-time kernel via the programming of the address bus.
  • the real-time kernel thus ensures the integrity of the data of the partitions other than those being executed.
  • the real-time kernel further ensures that each task can be executed by allocating each task a time window of execution. Tasks can then run concurrently, minimizing the risk of mutual disruption of their execution.
  • the real-time kernel is arranged to control the execution of the partitions according to a circular execution cycle and, more preferably, the execution cycle may comprise the same partition several times.
  • the run cycle includes a time reserve interval.
  • the time reserve makes it possible to add one or more tasks in a simple way without a complete reworking of the execution cycle.
  • the partition allocated to the real-time kernel contains memory pages each allocated to a task for containing the registers of each task, the real-time kernel being arranged to manage a task pointer intended to to contain the address of the page of the running task.
  • the partition allocated to the real-time kernel contains a list of tasks that are ready to be executed per partition and the real-time kernel is arranged to manage a partition pointer to access the list of tasks. ready, and preferably, the list of ready tasks is in the form of a chaining header that contains the context addresses of the first and the last of the tasks that are ready to be executed.
  • FIG. 1 is a schematic representation of the spatial partitioning of the read-only memory and the random access memory
  • FIG. 2 is a schematic representation of the control unit according to the invention showing in particular the organization of the partitioning of the alive,
  • FIG. 3 is a schematic representation of the scheduling of partitions.
  • the invention is here described in an aeronautical application for the regulation of one or more engines of an aircraft.
  • the control unit here is of the FADEC type and complies with the ARINC 653 standard.
  • control unit is a microcircuit of type SOC (English “System On Chip") comprising the instruction set of a microcontroller and its peripherals.
  • the control unit can also be implemented in the form of a programmable logic array or FPGA (Field Programmable Gate Array).
  • FPGA Field Programmable Gate Array
  • the microcontroller can be written in VHDL language and reprogrammable.
  • the control unit thus comprises a microcontroller 1 provided with a read-only memory 2 or ROM (for "Read Only Memory”) and a random access memory 3 or dynamic memory (also called RAM for "Random Access Memory”).
  • the control unit furthermore comprises, in particular, unrepresented means of connection to sensors arranged on the engine (s) and to control instruments arranged in the cockpit of the aircraft.
  • the read only memory 2 has partitions assigned to partitions (PO to P3) allocated for one to the code of an operating software system and for others to the application code or computer programs comprising tasks.
  • the ROM 2 is associated with a physically programmed address bus so that each partition can not execute code in another area of the ROM than the one assigned to it.
  • the operating system software incorporates a real-time kernel whose functions are to ensure the scheduling of the tasks and to guarantee the respect of predetermined temporal constraints for the execution of the tasks.
  • the partition PO is thus allocated to the code of the real-time kernel and the other partitions (here the partitions PI to P3) are each allocated to the code of one or more tasks (here tasks Tl to T6).
  • RAM 3 has partitions assigned to partitions (PO to P3) allocated for one to the real-time kernel and for others each to at least one of the tasks and is associated with a physically programmed address bus for each partition can not write to another area of the RAM that has been assigned to it.
  • the partition PO is thus allocated to the data and other variables of the real-time kernel and the other partitions (here the partitions PI to P3) are each allocated to the data of one or more tasks (here the tasks Tl to T6).
  • a buffer for the code and a buffer for the data of the partition PO allocated to the real-time kernel .
  • the real-time kernel is further arranged to implement a delay to allocate each partition PI to P3 execution time.
  • a timer is a multiple of a basic cycle clocked by an interrupt of the microcontroller's clock and the task activated by this interrupt calls the time routine of the real-time kernel so that the real-time kernel takes over. checks at each of these interrupts to decide whether the execution of the current partition should be suspended.
  • the real-time kernel is here more particularly designed to control the execution of partitions and therefore tasks according to a circular execution cycle.
  • the execution cycle includes a time reserve interval R allowing the addition of new partitions by taking the execution time thereof to the time reserve.
  • the partition P0 allocated to the real-time kernel contains memory pages (PMI to PM6) each allocated to a task (Tl to T6) for containing the memory registers. that task, the real-time kernel being arranged to manage a task pointer (PT) for containing the address of the page of the task being executed.
  • PT task pointer
  • the partition PO allocated to the real-time kernel contains a list of tasks ready to be executed per partition (LTP1 to LTP3) and the real-time kernel is arranged to manage a partition pointer (PP) to access the list of ready tasks ( LTP1 to LTP3).
  • PP partition pointer
  • Each list of ready tasks (LTP1 to LTP3) is in the form of a chaining header that contains the context addresses of the first and last tasks that are ready to be executed.
  • the real-time kernel maintains the list of tasks ready based on the occurrence of events (such as function calls or interrupts) triggering said tasks. In addition, the real-time kernel takes into account any priorities assigned to each task to order the list of ready tasks.
  • the real-time kernel triggers a timer and, at the end of the delay, suspends the execution of the partition to start the execution of the ready tasks of the next partition.
  • the partition change is done by updating the partition pointer.
  • the change of context prior to the execution of a new task is done by introducing in the task pointer PT the address of the memory page containing the registers of the task to be executed.
  • the structure of the control unit described above allows a particularly effective implementation of context change mode of the invention because it allows in particular changes in the instruction set and peripherals of the microcontroller.
  • the change of context (task or partition) is fast and of constant duration. Indeed, its duration is independent, on the one hand, of the number of internal registers of the microcontroller and, on the other hand, the number of tasks ready or the number of partitions to manage.
  • the invention thus enables multitasking and real time operation of the microcontroller while complying with the ARINC 653 standard by limiting the cost of the control unit.
  • the partition PO allocated to the real-time kernel contains other linked lists for managing the resources of the real-time kernel (timers, queues, etc.).
  • the partitions may have the same or different sizes.
  • the run cycle can include the same partition one or more times.
  • the read-only memory 2 may also be EEPROM (for "Electrically Erasable Programmable Read Only Memory") or NVM (for "Non Volatile Memory”).

Abstract

The invention relates to an electronic control unit including a microcontroller provided with a dynamic memory, corresponding to the variable data, and a read-only memory, corresponding to the code of an operating software system having a built-in real-time core for executing computer tasks, the dynamic and read-only memories comprising areas assigned to partitions allocated to the real-time core for one partition and to at least one of the tasks for each of the other partitions, said control unit being physically combined with a programmed address bus such that each partition cannot write into another area of the dynamic memory and moreover cannot execute another area of the read-only memory. The real-time core corresponds to timing for allocating an execution time to each partition.

Description

Unité électronique de commande à noyau temps réel gérant un partitionnement  Real-time kernel control unit handling partitioning
La présente invention concerne une unité électro- nique de commande à noyau temps réel gérant un partitionnement. La présente invention est plus particulièrement destinée à des applications aéronautiques . The present invention relates to an electronic control unit with real-time kernel managing a partitioning. The present invention is more particularly intended for aeronautical applications.
Parmi celles-ci, il est connu sous l'acronyme FADEC (de l'anglais « full authority digital engine control » ou régulateur moteur numérique à totale autorité) une unité de commande comportant un microcontrôleur intégrant un système logiciel d'exploitation pour exécuter des tâches d'applications informatiques. Ces applications peuvent être exécutées en tout ou partie de façon simultanée. Le système d'exploitation incorpore un noyau temps réel (ou RTOS de l'Anglais « Real-Time Operating System ») pour gérer l'exécution des applications et assurer un routage de données entre deux applications et entre les applications et le matériel. Il est prévu un partitionnement avec des partitions allouées à chaque application pour éviter que les applications ne se perturbent mutuellement lors de leur exécution. Ce partitionnement est régi dans le domaine aéronautique par la norme ARINC 653 qui prévoit un partitionnement spatial, qui ga- rantit qu'une application ne peut écrire dans une zone mémoire affectée à une partition d'une autre application, et un partitionnement temporel qui garantit qu'un temps d'exécution sera alloué à chaque application. Ce partitionnement permet d'avoir des applications de fournis- seurs différents et / ou de criticité différente. Les noyaux temps réel compatibles avec la norme ARINC 653 sont cependant onéreux et présente l'inconvénient que le partitionnement est purement logiciel et peut être rendu inefficace par une application qui s'exécuterait en- dehors du noyau temps réel. Among these, it is known by the acronym FADEC (English full authority digital engine control) a control unit comprising a microcontroller integrating an operating system software to perform operations. IT application tasks. These applications can be executed in whole or in part simultaneously. The operating system incorporates a Real-Time Operating System (RTOS) to manage application execution and provide data routing between two applications and between applications and hardware. Partitioning is planned with partitions allocated to each application to prevent applications from interfering with each other during their execution. This partitioning is governed in the aeronautical field by the ARINC 653 standard, which provides for spatial partitioning, which guarantees that an application can not write to a memory area assigned to a partition of another application, and a temporal partitioning that guarantees that execution time will be allocated to each application. This partitioning makes it possible to have applications of different suppliers and / or of different criticality. Real-time kernels compatible with the ARINC 653 standard are, however, expensive and have the disadvantage that partitioning is purely software-based and can be rendered inefficient by an application that executes on itself. outside the real-time kernel.
En outre, dans les noyaux multitâches, lorsque l'ordonnanceur du noyau commande le passage d'une première tâche à une deuxième tâche, le contexte de la pre- mière tâche (c'est-à-dire l'ensemble des valeurs d'états du microcontrôleur qui sont nécessaires à son exécution et sont notamment enregistrées dans les registres mémoires du microcontrôleur) doit être sauvegardé tandis que le contexte de la deuxième tâche doit être retrouvé et restauré. Les changements de contexte sont ainsi relativement longs et ce d'autant plus que les microcontrôleurs comportent un nombre de registres à sauvegarder de plus en plus important. Les changements de partitions sont tout aussi longs pour les mêmes raisons. Ceci constitue un inconvénient supplémentaire des noyaux multitâches compatibles avec la norme ARINC 653.  Furthermore, in multitasking kernels, when the kernel scheduler controls the transition from a first task to a second task, the context of the first task (i.e., the set of values of microcontroller states that are necessary for its execution and are notably recorded in the memory registers of the microcontroller) must be saved while the context of the second task must be found and restored. The changes of context are thus relatively long and all the more so as the microcontrollers include a number of registers to be saved more and more importantly. Partition changes are just as long for the same reasons. This is an additional disadvantage of multi-tasking kernels compatible with the ARINC 653 standard.
Un but de l'invention est de fournir une unité de commande offrant un partitionnement spatial et temporel fort.  An object of the invention is to provide a control unit offering a strong spatial and temporal partitioning.
A cet effet, on prévoit, selon l'invention, une unité électronique de commande comprenant un microcontrôleur pourvu d'une mémoire morte contenant un code d'un système logiciel d'exploitation intégrant un noyau temps réel pour exécuter des tâches informatiques, et d'une mé- moire dynamique contenant des données variables en relation avec les tâches. La mémoire morte et la mémoire dynamique comportent des zones affectées à des partitions allouées pour l'une au noyau temps réel et pour d'autres chacune à au moins une des tâches. La mémoire morte et la mémoire dynamique sont associées à un bus d'adresses programmé physiquement pour empêcher chaque partition, d'une part, d'écrire dans une autre des zones de la mémoire dynamique et, d'autre part, d'exécuter une autre des zones de la mémoire morte et le noyau temps réel est associé à une temporisation pour allouer à chaque partition un temps d'exécution. For this purpose, an electronic control unit is provided according to the invention comprising a microcontroller provided with a read-only memory containing a code of an operating software system incorporating a real-time kernel for performing computer tasks, and a dynamic memory containing variable data in relation to the tasks. The read-only memory and the dynamic memory comprise zones assigned to partitions allocated for one to the real-time kernel and for others each to at least one of the tasks. The read-only memory and the dynamic memory are associated with a physically programmed address bus to prevent each partition, on the one hand, from writing to another zone of the dynamic memory and, on the other hand, to execute a other areas of the ROM and the real-time kernel is associated with a delay to allocate each partition a run time.
Ainsi, le bus d'adresse est programmé physiquement de sorte qu'une tâche exécutée dans une partition n'a aucun moyen matériel pour écrire des données ou exécuter du code dans une autre partition que celle qui lui a été allouée. L'échange de données entre partitions ne peut pas matériellement être effectué sans passer par le noyau temps réel via la programmation du bus d'adresse. Le noyau temps réel assure de la sorte l'intégrité des données des partitions autres que celles en cours d'exécution. Le noyau temps réel garantit en outre que chaque tâche pourra s'exécuter en allouant à chacune des tâches une fenêtre temporelle d'exécution. Les tâches peuvent alors s'exécuter de manière concurrente en limitant au maximum le risque d'une perturbation mutuelle de leur exécution.  Thus, the address bus is physically programmed so that a task executed in a partition has no hardware means for writing data or executing code in another partition than that allocated to it. The exchange of data between partitions can not be done physically without going through the real-time kernel via the programming of the address bus. The real-time kernel thus ensures the integrity of the data of the partitions other than those being executed. The real-time kernel further ensures that each task can be executed by allocating each task a time window of execution. Tasks can then run concurrently, minimizing the risk of mutual disruption of their execution.
Avantageusement, le noyau temps réel est agencé pour commander une exécution des partitions selon un cy- cle d'exécution circulaire et, de préférence encore, le cycle d'exécution peut comprendre une même partition plusieurs fois .  Advantageously, the real-time kernel is arranged to control the execution of the partitions according to a circular execution cycle and, more preferably, the execution cycle may comprise the same partition several times.
Un tel cycle est simple à gérer.  Such a cycle is easy to manage.
De préférence encore, le cycle d'exécution com- prend un intervalle de réserve temporelle.  More preferably, the run cycle includes a time reserve interval.
La réserve temporelle permet de rajouter une ou plusieurs tâches de manière simple sans remaniement complet du cycle d'exécution.  The time reserve makes it possible to add one or more tasks in a simple way without a complete reworking of the execution cycle.
Selon une première caractéristique particulière- ment intéressante de l'invention, la partition allouée au noyau temps réel contient des pages mémoires allouées chacune à une tâche pour contenir les registres de chaque tâche, le noyau temps réel étant agencé pour gérer un pointeur de tâche destiné à contenir l'adresse de la page de la tâche en cours d'exécution. According to a first particularly interesting characteristic of the invention, the partition allocated to the real-time kernel contains memory pages each allocated to a task for containing the registers of each task, the real-time kernel being arranged to manage a task pointer intended to to contain the address of the page of the running task.
Ceci permet d'accélérer le changement de registre en évitant la nécessité d'une sauvegarde, dans une zone d'adresse fixe prédéfinie, des registres de la tâche en cours et une restitution des registres de la tâche à exécuter. Il en résulte un changement de contexte relativement rapide ayant une durée indépendante du nombre de registres. Ceci permet également d'assurer un partitionne- ment des registres en obligeant une commande appropriée du pointeur de tâches pour accéder à un registre.  This makes it possible to speed up the change of register by avoiding the need for a backup, in a predefined fixed address area, of the registers of the current task and a restitution of the registers of the task to be executed. This results in a relatively fast context change having a duration independent of the number of registers. This also ensures partitioning of the registers by requiring an appropriate task pointer command to access a registry.
Selon une deuxième caractéristique particulièrement intéressante de l'invention, la partition allouée au noyau temps réel contient une liste de tâches prêtes à être exécutées établie par partition et le noyau temps réel est agencé pour gérer un pointeur de partition pour accéder à la liste des tâches prêtes et, de préférence, la liste des tâches prêtes se présente sous la forme d'une tête de chaînage qui contient les adresses de contextes de la première et de la dernière des tâches prêtes à être exécutées.  According to a second particularly interesting characteristic of the invention, the partition allocated to the real-time kernel contains a list of tasks that are ready to be executed per partition and the real-time kernel is arranged to manage a partition pointer to access the list of tasks. ready, and preferably, the list of ready tasks is in the form of a chaining header that contains the context addresses of the first and the last of the tasks that are ready to be executed.
Ceci permet un changement rapide de partition par la simple mise à jour du pointeur de partition.  This allows a quick change of partition by simply updating the partition pointer.
D'autres caractéristiques et avantages de l'invention ressortiront à la lecture de la description qui suit de modes de réalisation particuliers non limitatifs de l'invention.  Other features and advantages of the invention will emerge on reading the following description of particular non-limiting embodiments of the invention.
Il sera fait référence aux dessins annexés, parmi lesquels :  Reference will be made to the appended drawings, among which:
- la figure 1 est une représentation schématique du partitionnement spatial de la mémoire morte et de la mémoire vive,  FIG. 1 is a schematic representation of the spatial partitioning of the read-only memory and the random access memory,
- la figure 2 est une représentation schématique de l'unité de commande conforme à l'invention montrant en particulier l'organisation du partitionnement de la mé- moire vive, FIG. 2 is a schematic representation of the control unit according to the invention showing in particular the organization of the partitioning of the alive,
- la figure 3 est une représentation schématique de l'ordonnancement des partitions.  FIG. 3 is a schematic representation of the scheduling of partitions.
L'invention est ici décrite dans une application aéronautique pour la régulation d'un ou plusieurs moteurs d'un aéronef. L'unité de commande est ici du type FADEC et est conforme à la norme ARINC 653.  The invention is here described in an aeronautical application for the regulation of one or more engines of an aircraft. The control unit here is of the FADEC type and complies with the ARINC 653 standard.
En référence aux figures, l'unité de commande conforme à l'invention est un microcircuit de type SOC (de l'anglais « System On Chip ») comportant le jeu d'instructions d'un microcontrôleur et ses périphériques. L'unité de commande peut également être réalisée sous la forme d'un réseau logique programmable ou FPGA (de l'anglais « Field Programmable Gâte Array ») . A titre d'exemple, le microcontrôleur peut être écrit en langage VHDL et reprogrammable .  With reference to the figures, the control unit according to the invention is a microcircuit of type SOC (English "System On Chip") comprising the instruction set of a microcontroller and its peripherals. The control unit can also be implemented in the form of a programmable logic array or FPGA (Field Programmable Gate Array). For example, the microcontroller can be written in VHDL language and reprogrammable.
L'unité de commande comprend ainsi un microcontrôleur 1 pourvu d'une mémoire morte 2 ou ROM (pour « Read Only Memory ») et d'une mémoire vive 3 ou dynami- que (également appelée RAM pour « Random Access Memory ») . L'unité de commande comprend en outre notamment des moyens non représentés de connexion à des capteurs disposés sur le ou les moteurs et à des instruments de commandes disposés dans le poste de pilotage de l'aéronef.  The control unit thus comprises a microcontroller 1 provided with a read-only memory 2 or ROM (for "Read Only Memory") and a random access memory 3 or dynamic memory (also called RAM for "Random Access Memory"). The control unit furthermore comprises, in particular, unrepresented means of connection to sensors arranged on the engine (s) and to control instruments arranged in the cockpit of the aircraft.
La mémoire morte 2 comporte des zones affectées à des partitions (PO à P3) allouées pour l'une au code d'un système logiciel d'exploitation et pour d'autres au code d'applications ou programmes informatiques comportant des tâches. La mémoire morte 2 est associée à un bus d'adresses programmé physiquement pour que chaque partition ne puisse pas exécuter du code dans une autre des zones de la mémoire morte que celle qui lui a été affectée. Le système logiciel d'exploitation incorpore un noyau temps réel ayant pour fonctions d'assurer l'ordonnancement des tâches et de garantir le respect de contraintes temporelles prédéterminées pour l'exécution des tâches. La partition PO est ainsi allouée au code du noyau temps réel et les autres partitions (ici les partitions PI à P3) sont allouées chacune au code d'une ou plusieurs tâches (ici les tâches Tl à T6) . The read only memory 2 has partitions assigned to partitions (PO to P3) allocated for one to the code of an operating software system and for others to the application code or computer programs comprising tasks. The ROM 2 is associated with a physically programmed address bus so that each partition can not execute code in another area of the ROM than the one assigned to it. The operating system software incorporates a real-time kernel whose functions are to ensure the scheduling of the tasks and to guarantee the respect of predetermined temporal constraints for the execution of the tasks. The partition PO is thus allocated to the code of the real-time kernel and the other partitions (here the partitions PI to P3) are each allocated to the code of one or more tasks (here tasks Tl to T6).
La mémoire vive 3 comporte des zones affectées à des partitions (PO à P3) allouées pour l'une au noyau temps réel et pour d'autres chacune à au moins une des tâches et est associée à un bus d'adresses programmé physiquement pour que chaque partition ne puisse pas écrire dans une autre des zones de la mémoire vive que celle qui lui a été affectée. La partition PO est ainsi allouée aux données et autres variables du noyau temps réel et les autres partitions (ici les partitions PI à P3) sont allouées chacune aux données d'une ou plusieurs tâches (ici les tâches Tl à T6) .  RAM 3 has partitions assigned to partitions (PO to P3) allocated for one to the real-time kernel and for others each to at least one of the tasks and is associated with a physically programmed address bus for each partition can not write to another area of the RAM that has been assigned to it. The partition PO is thus allocated to the data and other variables of the real-time kernel and the other partitions (here the partitions PI to P3) are each allocated to the data of one or more tasks (here the tasks Tl to T6).
Il est ainsi réalisé un partitionnement spatial mis en œuvre via un mécanisme d'adressage virtuel géré par un contrôleur mémoire qui est incorporé au microcontrôleur et qui gère un bus d'adresses et un bus de données (par analogie avec l'adressage virtuel classique, l'adresse programmée correspond à l'adresse virtuelle et l'adresse réelle à l'adresse physique ; voir la figure 1) . Des tampons (ou « buffers » ou TLB pour « Translation Lookaside Buffer » dans les microcontrôleurs de type MPC 5554) sont prévus pour programmer l'adresse de translation permettant de passer de l'adresse programmée à l'adresse réelle. Le microcontrôleur gère ainsi quatre tampons pour les deux partitions pouvant s'exécuter à un instant donné :  It is thus realized a spatial partitioning implemented via a virtual addressing mechanism managed by a memory controller which is incorporated in the microcontroller and which manages an address bus and a data bus (by analogy with conventional virtual addressing, the programmed address corresponds to the virtual address and the actual address to the physical address, see Figure 1). Buffers (or "buffers" or TLBs for "Translation Lookaside Buffer" in MPC 5554 type microcontrollers) are provided to program the translation address to go from the programmed address to the actual address. The microcontroller thus manages four buffers for the two partitions that can execute at a given moment:
. un tampon pour le code et un tampon pour les données de la partition PO allouée au noyau temps réel ; . un tampon pour le code et un tampon pour les données de la partition PX allouée à la tâche active audit instant. . a buffer for the code and a buffer for the data of the partition PO allocated to the real-time kernel; . a buffer for the code and a buffer for the data of the partition PX allocated to the active task at that instant.
Tous les accès aux codes et aux données s'effectuent via les tampons : lorsqu'un tampon est effacé, l'accès à l'adresse physique est impossible. Ainsi, en utilisant seulement quatre tampons, seules les deux partitions désirées (noyau temps réel et tâche applicative sélectionnée) sont accessibles. Les autres parti- tions sont inaccessibles.  All access to codes and data is via buffers: when a buffer is erased, access to the physical address is not possible. Thus, using only four buffers, only the two desired partitions (real-time kernel and selected application task) are accessible. The other parts are inaccessible.
De plus, il est possible de donner aux tampons des permissions superviseur et utilisateur de manière à protéger la partition PO (mode superviseur) allouée au noyau temps réel contre des accès non désirés par une partition applicative s 'exécutant en mode utilisateur.  In addition, it is possible to give the buffers supervisor and user permissions so as to protect the PO partition (supervisor mode) allocated to the real-time kernel against unwanted access by an application partition executing in user mode.
Le noyau temps réel est en outre agencé pour mettre en œuvre une temporisation pour allouer à chaque partition PI à P3 un temps d'exécution. Une temporisation est un multiple d'un cycle de base cadencé par une inter- ruption de l'horloge du microcontrôleur et la tâche activée par cette interruption appelle la routine de gestion du temps du noyau temps réel de sorte que le noyau temps réel reprend le contrôle à chacune de ces interruptions pour décider si l'exécution de la partition en cours doit être suspendue. Le noyau temps réel est ici plus particulièrement agencé pour commander une exécution des partitions et donc des tâches selon un cycle d'exécution circulaire. Le cycle d'exécution comprend un intervalle de réserve temporelle R permettant l'ajout de nouvelles par- titions en prenant le temps d'exécution de celles-ci à la réserve temporelle.  The real-time kernel is further arranged to implement a delay to allocate each partition PI to P3 execution time. A timer is a multiple of a basic cycle clocked by an interrupt of the microcontroller's clock and the task activated by this interrupt calls the time routine of the real-time kernel so that the real-time kernel takes over. checks at each of these interrupts to decide whether the execution of the current partition should be suspended. The real-time kernel is here more particularly designed to control the execution of partitions and therefore tasks according to a circular execution cycle. The execution cycle includes a time reserve interval R allowing the addition of new partitions by taking the execution time thereof to the time reserve.
La partition P0 allouée au noyau temps réel contient des pages mémoires (PMI à PM6) allouées chacune à une tâche (Tl à T6) pour contenir les registres de cha- que tâche, le noyau temps réel étant agencé pour gérer un pointeur de tâche (PT) destiné à contenir l'adresse de la page de la tâche en cours d'exécution. The partition P0 allocated to the real-time kernel contains memory pages (PMI to PM6) each allocated to a task (Tl to T6) for containing the memory registers. that task, the real-time kernel being arranged to manage a task pointer (PT) for containing the address of the page of the task being executed.
La partition PO allouée au noyau temps réel contient une liste de tâches prêtes à être exécutées établie par partition (LTP1 à LTP3) et le noyau temps réel est agencé pour gérer un pointeur de partition (PP) pour accéder à la liste des tâches prêtes (LTP1 à LTP3) .  The partition PO allocated to the real-time kernel contains a list of tasks ready to be executed per partition (LTP1 to LTP3) and the real-time kernel is arranged to manage a partition pointer (PP) to access the list of ready tasks ( LTP1 to LTP3).
Chaque liste des tâches prêtes (LTP1 à LTP3) se présente sous la forme d'une tête de chaînage qui contient les adresses de contextes de la première et de la dernière des tâches prêtes à être exécutées . Le noyau temps réel maintient à jour la liste des tâches prêtes en fonction de la survenance d'événements (comme des appels de fonctions ou des interruptions) déclencheurs desdites tâches. En outre, le noyau temps réel tient compte des priorités éventuelles accordées à chaque tâche pour ordonner la liste des tâches prêtes.  Each list of ready tasks (LTP1 to LTP3) is in the form of a chaining header that contains the context addresses of the first and last tasks that are ready to be executed. The real-time kernel maintains the list of tasks ready based on the occurrence of events (such as function calls or interrupts) triggering said tasks. In addition, the real-time kernel takes into account any priorities assigned to each task to order the list of ready tasks.
Au lancement de l'exécution des tâches prêtes de chaque partition, le noyau temps réel déclenche une temporisation et, à la fin de la temporisation, suspend l'exécution de ladite partition pour lancer l'exécution des tâches prêtes de la partition suivante.  At the start of the execution of the ready tasks of each partition, the real-time kernel triggers a timer and, at the end of the delay, suspends the execution of the partition to start the execution of the ready tasks of the next partition.
Le changement de partition se fait par la mise à jour du pointeur de partition.  The partition change is done by updating the partition pointer.
Le changement de contexte préalable à l'exécution d'une nouvelle tâche se fait en introduisant dans le pointeur de tâche PT l'adresse de la page mémoire contenant les registres de la tâche à exécuter. La structure de l'unité de commande décrite ci-dessus permet une mise en œuvre particulièrement efficace du mode de changement de contexte de l'invention car elle autorise notamment des modifications du jeu d'instructions et des périphériques du microcontrôleur. Le changement de contexte (tâche ou partition) est rapide et de durée constante. En effet, sa durée est indépendante, d'une part, du nombre de registres internes du microcontrôleur et, d'autre part, du nombre de tâches prêtes ou du nombre de partitions à gérer. The change of context prior to the execution of a new task is done by introducing in the task pointer PT the address of the memory page containing the registers of the task to be executed. The structure of the control unit described above allows a particularly effective implementation of context change mode of the invention because it allows in particular changes in the instruction set and peripherals of the microcontroller. The change of context (task or partition) is fast and of constant duration. Indeed, its duration is independent, on the one hand, of the number of internal registers of the microcontroller and, on the other hand, the number of tasks ready or the number of partitions to manage.
L'invention permet ainsi un fonctionnement multitâche et temps réel du microcontrôleur tout en respectant la norme ARINC 653 en limitant le coût de l'unité de commande .  The invention thus enables multitasking and real time operation of the microcontroller while complying with the ARINC 653 standard by limiting the cost of the control unit.
De manière classique, la partition PO allouée au noyau temps réel contient d'autres listes chaînées pour gérer les ressources du noyau temps réel (temporisations, files d'attente...).  In a conventional manner, the partition PO allocated to the real-time kernel contains other linked lists for managing the resources of the real-time kernel (timers, queues, etc.).
Bien entendu, l'invention n'est pas limitée aux modes de réalisation décrits mais englobe toute variante entrant dans le champ de l'invention telle que définie par les revendications .  Of course, the invention is not limited to the embodiments described but encompasses any variant within the scope of the invention as defined by the claims.
En particulier, les partitions peuvent avoir des tailles identiques ou différentes.  In particular, the partitions may have the same or different sizes.
Le cycle d'exécution peut comprendre une même partition une ou plusieurs fois.  The run cycle can include the same partition one or more times.
Différents moyens pour éviter une sauvegarde et une restauration ultérieure des registres sont envisageables :  Various means to avoid a backup and a subsequent restoration of the registers are possible:
- modifier les instructions d'accès aux registres pour y accéder en mode indexé, l'index étant fourni par le pointeur de tâche, et non en mode direct ;  - modify the access instructions to the registers to access them in indexed mode, the index being provided by the task pointer, and not in direct mode;
- quand l'adresse de la zone des registres est configurable, autoriser une reconfiguration dynamique (et pas uniquement au démarrage) à l'aide du pointeur de tâche (pas de modification des instructions) ;  - when the address of the register area is configurable, allow dynamic reconfiguration (and not only at startup) using the task pointer (no change of instructions);
- créer un bus d'adresse, dédié aux registres, dont une zone d'adresse peut être configurée dynamiquement à l'aide du pointeur de tâche. L'unité électronique peut avoir une structure différente de celle décrite. Par exemple, la mémoire morte 2 peut également être de type EEPROM (pour « Elec- trically Erasable Programmable Read Only Memory ») ou NVM (pour « Non Volatile Memory ») . - Create an address bus, dedicated to registers, an address area can be configured dynamically using the task pointer. The electronic unit may have a different structure from that described. For example, the read-only memory 2 may also be EEPROM (for "Electrically Erasable Programmable Read Only Memory") or NVM (for "Non Volatile Memory").

Claims

REVENDICATIONS
1. Unité électronique de commande comprenant un microcontrôleur pourvu d'une mémoire morte contenant un code d'un système logiciel d'exploitation intégrant un noyau temps réel pour exécuter des tâches informatiques, et d'une mémoire dynamique contenant des données variables en relation avec le noyau temps réel et les tâches, les mémoires dynamique et morte comportant des zones af- fectées à des partitions allouées pour l'une au noyau temps réel et pour d'autres chacune à au moins une des tâches et étant associées à un bus d'adresses programmé physiquement pour empêcher chaque partition, d'une part, d'écrire dans une autre des zones de la mémoire dynamique et, d'autre part, d'exécuter une autre des zones de la mémoire morte et le noyau temps réel est associé à une temporisation pour allouer à chaque partition un temps d' exécution. An electronic control unit comprising a microcontroller provided with a read-only memory containing a code of an operating software system incorporating a real-time kernel for performing computer tasks, and a dynamic memory containing variable data relating to the real-time kernel and the tasks, the dynamic and dead memories having zones assigned to partitions allocated for one to the real-time kernel and for each others to at least one of the tasks and being associated with a bus d. addresses programmed physically to prevent each partition, on the one hand, from writing to another areas of the dynamic memory and, on the other hand, to execute another of the ROM areas and the real-time kernel is associated with a timer to allocate each partition a runtime.
2. Unité selon la revendication 1, dans laquelle le noyau temps réel est agencé pour commander une exécution des partitions selon un cycle d'exécution circulaire .  2. The unit of claim 1, wherein the real-time kernel is arranged to control a partition execution in a circular execution cycle.
3. Unité selon la revendication 2, dans laquelle le cycle d'exécution comprend une même partition plu- sieurs fois.  The unit of claim 2, wherein the execution cycle comprises the same partition several times.
4. Unité selon la revendication 2, dans laquelle le cycle d'exécution comprend un intervalle de réserve temporelle .  The unit of claim 2, wherein the execution cycle comprises a time reserve interval.
5. Unité selon la revendication 1, dans laquelle la partition allouée au noyau temps réel contient des pages mémoires allouées chacune à une tâche pour contenir les registres de chaque tâche, le noyau temps réel étant agencé pour gérer un pointeur de tâche destiné à contenir l'adresse de la page de la tâche en cours d'exécution. 5. The unit as claimed in claim 1, in which the partition allocated to the real-time kernel contains memory pages each allocated to a task to hold the registers of each task, the real-time kernel being arranged to manage a task pointer intended to contain the task. Address of the page of the currently running task.
6. Unité selon la revendication 1, dans laquelle la partition allouée au noyau temps réel contient une liste de tâches prêtes à être exécutées établie par partition et le noyau temps réel est agencé pour gérer un pointeur de partition pour accéder à la liste des tâches prêtes. The unit of claim 1, wherein the partition allocated to the real-time kernel contains a list of ready-to-execute tasks established per partition and the real-time kernel is arranged to manage a partition pointer to access the list of ready tasks. .
7. Unité selon la revendication 6, dans laquelle la liste des tâches prêtes se présente sous la forme d'une tête de chaînage qui contient les adresses de contextes de la première et de la dernière des tâches prêtes à être exécutées.  The unit of claim 6, wherein the list of ready tasks is in the form of a chaining header that contains the context addresses of the first and the last of the tasks that are ready to be executed.
8. Unité selon la revendication 1, dans laquelle l'unité de commande est un microcircuit incorporant un jeu d'instructions d'un microcontrôleur et de périphéri- ques d'un tel microcontrôleur.  8. Unit according to claim 1, wherein the control unit is a microcircuit incorporating a set of instructions of a microcontroller and peripherals of such a microcontroller.
9. Unité selon la revendication 1, dans laquelle le microcontrôleur est un réseau logique programmable.  The unit of claim 1, wherein the microcontroller is a programmable logic array.
EP10771341A 2009-10-22 2010-10-19 Electronic control unit having a real-time core managing partitioning Ceased EP2491491A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0905077A FR2951840B1 (en) 2009-10-22 2009-10-22 ELECTRONIC CONTROL UNIT WITH REAL-TIME CORE MANAGING PARTITIONING
PCT/EP2010/006361 WO2011047823A1 (en) 2009-10-22 2010-10-19 Electronic control unit having a real-time core managing partitioning

Publications (1)

Publication Number Publication Date
EP2491491A1 true EP2491491A1 (en) 2012-08-29

Family

ID=42226714

Family Applications (1)

Application Number Title Priority Date Filing Date
EP10771341A Ceased EP2491491A1 (en) 2009-10-22 2010-10-19 Electronic control unit having a real-time core managing partitioning

Country Status (8)

Country Link
US (1) US8843937B2 (en)
EP (1) EP2491491A1 (en)
CN (1) CN102597956B (en)
BR (1) BR112012009290A2 (en)
CA (1) CA2777729C (en)
FR (1) FR2951840B1 (en)
RU (1) RU2524570C2 (en)
WO (1) WO2011047823A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104834567B (en) * 2015-04-13 2018-04-17 中国航空无线电电子研究所 A kind of subregion and application time window accordance detecting system
US9857975B2 (en) 2015-06-26 2018-01-02 International Business Machines Corporation Non-volatile memory drive partitions within microcontrollers
FR3071630B1 (en) 2017-09-25 2021-02-19 Schneider Electric Ind Sas MANAGEMENT PROCESS OF ONBOARD SOFTWARE MODULES FOR AN ELECTRONIC COMPUTER OF AN ELECTRICAL SWITCHING APPARATUS

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU1826787A1 (en) * 1990-07-18 1995-12-20 Научно-производственное объединение "Сфера" Processor
US6338074B1 (en) * 1997-07-23 2002-01-08 Filenet Corporation System for enterprise-wide work flow automation
RU10896U1 (en) * 1998-04-27 1999-08-16 Общество с ограниченной ответственностью "Радуга" PROGRAMMABLE CONTROLLER
FR2822971A1 (en) * 2001-04-03 2002-10-04 St Microelectronics Sa SYSTEM AND METHOD FOR CONTROLLING ACCESS TO PROTECTED DATA STORED IN A MEMORY
US7805514B2 (en) * 2003-08-26 2010-09-28 Yang Harold Haoran Accessing results of network diagnostic functions in a distributed system
US8789051B2 (en) * 2004-11-18 2014-07-22 Hamilton Sundstrand Corporation Operating system and architecture for embedded system
RU57497U1 (en) * 2006-03-14 2006-10-10 Олег Юрьевич Уваров DEMO STAND

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
None *
See also references of WO2011047823A1 *

Also Published As

Publication number Publication date
CA2777729C (en) 2015-06-09
CN102597956A (en) 2012-07-18
RU2524570C2 (en) 2014-07-27
BR112012009290A2 (en) 2016-05-31
US20120216213A1 (en) 2012-08-23
RU2012120848A (en) 2013-11-27
WO2011047823A1 (en) 2011-04-28
CN102597956B (en) 2016-02-24
US8843937B2 (en) 2014-09-23
FR2951840A1 (en) 2011-04-29
CA2777729A1 (en) 2011-04-28
FR2951840B1 (en) 2011-12-23

Similar Documents

Publication Publication Date Title
US8468532B2 (en) Adjusting CPU time allocated to next thread based on gathered data in heterogeneous processor system having plurality of different instruction set architectures
EP2891060B1 (en) Layout and execution of software applications using bpram
US6587937B1 (en) Multiple virtual machine system with efficient cache memory design
EP1337919B1 (en) Security method making deterministic real time execution of multitask applications of control and command type with error confinement
US20060282624A1 (en) Information processing apparatus, process control method and computer program therefor
US9740500B2 (en) Layout system for operating systems using BPRAM
EP1617335A1 (en) Method of programming a DMA controller in an on-chip system and the associated on-chip system
US10846251B1 (en) Scratchpad-based operating system for multi-core embedded systems
FR3103586A1 (en) Method for managing the operation of a system on chip forming for example a microcontroller, and corresponding system on chip
EP1522923A2 (en) Simultaneous multi-threaded (SMT) processor architecture
US10146575B2 (en) Heterogeneous enqueuing and dequeuing mechanism for task scheduling
CA2777729C (en) Electronic control unit having a real-time core managing partitioning
US20050228971A1 (en) Buffer virtualization
Ausavarungnirun Techniques for shared resource management in systems with throughput processors
US9038077B1 (en) Data transfer protection in a multi-tasking modeling environment
CN103154894B (en) For the method managing the task in microprocessor or microprocessor components
Iturbe et al. ATB: Area-time response balancing algorithm for scheduling real-time hardware tasks
US8321606B2 (en) Systems and methods for managing memory using multi-state buffer representations
Vuletic Unifying software and hardware of multithreaded reconfigurable applications within operating system processes
Baietto et al. Real-time linux: The redhawk approach
US20120194528A1 (en) Method and System for Context Switching
Bouyssounouse et al. Real-Time operating systems
FR3105855A1 (en) Processor with configurable distribution of privileged resources and exceptions to rings of protection
Andersson et al. Scheduling Constrained-Deadline Sporadic Parallel Tasks Considering Memory Contention
FR3031819A1 (en) METHOD FOR MANAGING TASK EXECUTION AND PROCESSOR FOR IMPLEMENTING SAID METHOD

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

17P Request for examination filed

Effective date: 20120416

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR

DAX Request for extension of the european patent (deleted)
RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: SAGEM DEFENSE SECURITE

RAP1 Party data changed (applicant data changed or rights of an application transferred)

Owner name: SAFRAN ELECTRONICS & DEFENSE

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20180809

REG Reference to a national code

Ref country code: DE

Ref legal event code: R003

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: THE APPLICATION HAS BEEN REFUSED

18R Application refused

Effective date: 20191105