WO2020120690A1 - Procédé de commande d'une unité de contrôle moteur à processeur multicoeur - Google Patents
Procédé de commande d'une unité de contrôle moteur à processeur multicoeur Download PDFInfo
- Publication number
- WO2020120690A1 WO2020120690A1 PCT/EP2019/084930 EP2019084930W WO2020120690A1 WO 2020120690 A1 WO2020120690 A1 WO 2020120690A1 EP 2019084930 W EP2019084930 W EP 2019084930W WO 2020120690 A1 WO2020120690 A1 WO 2020120690A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- subtask
- executables
- period
- daughter
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/004—Error avoidance
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/3013—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is an embedded system, i.e. a combination of hardware and software dedicated to perform a certain function in mobile devices, printers, automotive or aircraft systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3065—Monitoring arrangements determined by the means or processing involved in reporting the monitored data
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3836—Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/38—Concurrent instruction execution, e.g. pipeline or look ahead
- G06F9/3877—Concurrent instruction execution, e.g. pipeline or look ahead using a secondary processor, e.g. coprocessor
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5066—Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5083—Techniques for rebalancing the load in a distributed system
- G06F9/5088—Techniques for rebalancing the load in a distributed system involving task migration
Definitions
- the invention relates to the automotive field and relates to the control of engine control units which control the operation of the internal combustion engine of a motor vehicle.
- the engine control unit usually located under the engine hood.
- This engine control unit is connected to sensors enabling information to be acquired on the state of the engine (temperatures, pressures, vibrations, position of the various components, etc.). Taking into account the data collected by these sensors, the engine control unit controls the internal combustion engine by controlling actuators such as fuel injectors, possible spark plugs, valves arranged in the various fluid circuits. associated with the engine, etc.
- the engine control unit comprises, to perform its function, electronic information processing means, such as microprocessors.
- Recent motor vehicles have a growing number of sensors and their engine control units are programmed to control the sensors with increasing complexity and finesse.
- the engine control units are therefore generally dimensioned upward from the point of view of their computing capacity, that is to say of the capacity of their microprocessor.
- recent research leads to employing, within engine control units, multicore microprocessors, that is to say microprocessors having several physical cores operating simultaneously. Several programs can therefore be executed in parallel and independently of each other.
- an engine control unit being to drive a complex physical organ such as an internal combustion engine
- its failure rate is necessarily close to zero insofar as its failure would cause malfunctions up to engine breakage, as well as causing safety issues for vehicle passengers.
- the reliability of digital operations within an engine control unit is therefore critical. Exploitation of the possibilities offered by multicore microprocessors (the execution of several programs in parallel) can only take place with a guarantee that these possibilities do not lead to a loss of reliability. However, certain operations are particularly critical because they must take place at high frequencies. This is the case, for example, of cyclic operations indexed on the rotation of the engine, during high engine speeds.
- the methods of controlling an engine control unit having a multicore microprocessor generally use semaphore principles, that is to say that when an executable of a task reads or modifies a variable, it locks this variable so that no other executable can read or modify the variable concurrently.
- semaphore principles that is to say that when an executable of a task reads or modifies a variable, it locks this variable so that no other executable can read or modify the variable concurrently.
- the invention provides a method for controlling an engine control unit which secures operations when using at least two microprocessor cores.
- the invention relates to a method for controlling an engine control unit which is connected to sensors and actuators associated with the internal combustion engine of a vehicle, the engine control unit comprising at least two cores microprocessor, the control method comprising steps of executing a cyclic task, the execution of this task being triggered by a recurring event which is repeated according to a period linked to the rotation of the motor, this cyclic task being composed of 'executables divided into a mother subtask, triggered by the recurring event and executed by a microprocessor core, and at least one daughter subtask executed following the mother subtask by another microprocessor core.
- the process includes the following steps:
- This method according to the invention is particularly advantageous for the cyclic tasks indexed on the motor rotation, that is to say when the execution of such a cyclic task is triggered by an event which is repeated according to a period linked to the motor rotation.
- This same cyclical task is therefore repeated over a period which decreases when the engine speed increases. At high speed, a new cycle of this cyclic task therefore starts again very quickly after the start of the previous task.
- the method distributes each task to be performed in a cycle into different sub-tasks distributed over the different cores of the microprocessor.
- the division of a task into subtasks makes it possible to distribute the computational load on the available microprocessor cores. This cutting is advantageous because it allows to take advantage of the set of available calculation means, and allows faster and more powerful processing, as well as balancing the calculation loads between the different microprocessor cores.
- the process makes it possible to secure the sequence of cyclic tasks.
- the method determines how many executables of the child subtask remain to be executed as well as the number of executables already executed in the parent subtask. The recovery period between the last child subtask and the mother subtask of the following cycle is thus identified.
- the method according to the invention can allow a diagnosis of the engine control unit.
- the overlapping of subtasks at the time of the linking of cyclic tasks can be studied to identify executables which would conflict with each other, during the overlapping phases which have been identified.
- executables can conflict if they are executed simultaneously.
- the executables which can conflict are for example executables which modify the same variable.
- the method according to the invention also allows a more secure distribution of the executables within the same task. Indeed, the executables brought to be executed during the recovery of tasks are identified. Dynamically (during operation) or statically (during maintenance phases), executables known to be competitors can be moved within a task to be executed outside this overlap range.
- the method according to the invention therefore allows a better understanding of the potential malfunctions of an engine control unit and makes it possible to avoid these malfunctions, in particular those which are linked to the execution of competing executables during the recovery period.
- the engine control unit and therefore the engine itself, benefits from more precise and reliable control. For example, if a parent task has executables for calculating in which cylinder the next fuel injection must be performed, the engine control unit prevents the executables of a daughter task from being executed during recovery with a task mother of the next cycle do not use an incorrect cylinder number (which would be calculated by the new parent task) compared to the current cycle. Consequently, the quantity of petrol injected is optimal and the emission of pollutants or consumption is better controlled.
- the process for controlling an engine control unit can have the following additional characteristics, alone or in combination: - Following the step of determining the number of executables which remain to be executed in the last child subtask of the first period, the method comprises the step of memorizing this number of executables in a memory;
- the method includes the step of memorizing this number of executables in a memory
- the method comprises a diagnostic step consisting in reading the diagnostic memory
- the step of determining the number of executables which remain to be executed in the last daughter subtask of the first period comprises the implementation of an executable counter of the daughter subtask
- the initial value of the executable counter of the daughter subtask corresponds to the total number of executables in the daughter subtask, this counter being decremented during the execution of each executable of the daughter subtask;
- the step of determining the number of executables already executed in the mother subtask of the second period comprises the implementation of an executable counter of the mother subtask
- FIG. 1 represents an engine control unit capable of implementing the control method according to the invention ’
- FIG. 2 is a diagram illustrating the sequence of two cyclical tasks without a recovery period.
- FIG. 3 is similar to Figure 2 and illustrates the case where the tasks are linked with a recovery period.
- FIG. 4 is a detailed view of FIG. 2.
- FIG. 5 is a detailed view of FIG. 3.
- FIG. 1 schematically represents an engine control unit 1 intended for piloting an internal combustion engine of a motor vehicle.
- the engine control unit 1 is connected to a series of sensors 3 such as position, temperature, pressure, flow sensors, etc.
- the engine control unit 1 is by also connected to control outputs 4 capable of controlling the actuators involved in driving the motor.
- These actuators are, for example, spark plugs, fuel injectors, valves, etc.
- the engine control unit 1 is programmed in a known manner to, on the one hand, acquire the measurement values supplied by the sensors 3, and on the other hand to control the actuators to ensure the operation of the engine.
- the engine control unit 1 comprises a microprocessor 2 which is, in the present example, provided with two cores C1, C2.
- the unit 1 comprises a first executable counter RTF and a second executable counter RTM intended for the implementation of the method described below. These RTF and RTM executable counters are each associated with an executable store 1 1 12.
- a diagnostic memory 13 allows backup memories of executable 11, 12.
- FIG. 2 illustrates the progress of a cyclic task within the microprocessor 2.
- the microprocessor 2 is a conventional multicore microprocessor.
- the engine control unit 1 comprises an operating system suitable for implementing the computer programs designed for the engine control unit 1.
- the microprocessor 2 is thus required to execute tasks (a task is also called "wire d 'execution') corresponding to the various functions fulfilled by the engine control unit 1.
- One of these tasks may for example be the command of a fuel injection sequence, of an ignition sequence of a spark plug, or opening a valve.
- Some of these tasks are cyclical and are indexed to the rotation of the engine, this is the case for example for injection and ignition tasks. In these cases, the execution of the task is triggered by an event which is identified by one of the sensors 3, this event being linked to the rotation of the motor.
- a trigger event 14A is shown at the start of the graph. This event 14A triggers an FA task.
- event 14A is the presence of an engine piston at top dead center, or at a position close to this top dead center, and task FA is a fuel injection task in the corresponding cylinder.
- event 14B corresponds to the same event occurring during the next engine cycle.
- the events 14A, 14B therefore follow one another according to a period 8A, 8B which depends on the engine rotation speed.
- the engine speed is constant and the duration of the period 8A, 8B is greater than the duration of the tasks FA, FB.
- the microprocessor 2 being, in the present example, a microprocessor with double cores C1, C2, the execution of each task FA, FB is distributed over the different cores C1, C2 of the microprocessor 2.
- the upper strip bears the reference C1 and corresponds to the operations executed by the first heart C1 while the lower strip bearing the reference C2 corresponds to the operations carried out by the second heart C2 of the microprocessor 2.
- Each task FA, FB is thus divided into two sub -tasks called "mother subtask" FA1, FB1 and "daughter subtask" FA2, FB2.
- the parent subtask FA1, FB1 is executed on the first heart C1 while the daughter subtask FA2, FB2 is executed on the second heart C2.
- the sequence of the parent subtask FA1, FB1 and of the daughter subtask FA2, FB2 is done in a chained manner, that is to say that the daughter subtask FA2, FB2 does not start until the parent subtask FA1, FB1 is finished.
- Figure 3 shows the same elements as Figure 2 when the engine speed has been increased.
- the period 9A, 9B, 9C between two events 14A, 14B, 14C is less than the period 8A, 8B in FIG. 2.
- the period 9A, 9B, 9C is now less than the time necessary for the execution of a task FA, FB, FC.
- each daughter subtask FA2, FB2 ends while the parent subtask FB1, FC1 of the following cycle has already started.
- a recovery time zone 10 (represented by hatching in FIG. 3) therefore exists between a task FA, FB, FC of a period 9A, 9B, 9C and the task of the following period.
- FIGS. 4 and 5 illustrate in more detail the method allowing the management of this overlap zone 10.
- FIG. 4 corresponds to the configuration of FIG. 2 in which the period 8A, 8B has a duration sufficient for the daughter subtask FA2 and the parent subtask FB1 of the following cycle not to overlap.
- FIG. 5 corresponds to the configuration of FIG. 3 in which the reduced period 9A, 9B results in the overlap of the daughter subtask FA2 and of the mother subtask FB1 of the following cycle.
- the detail of the tasks has been shown. The tasks are in fact made up of executables R shown diagrammatically in these figures.
- a task such as a fuel injection operation generally comprises around fifty executables R which are each a function (a simple mathematical operation) or a group of functions which can be executed by the microprocessor 2.
- the setting of a variable indicating the number of the engine cylinder where the next fuel injection will take place is an example of executable R.
- the control method of the engine control unit 1 implements a first executable counter RTF for the executables of the daughter subtask FA2, as well as a second executable counter RTM for the executables of the sub- mother task FB1.
- the executable counters RTF and RTM have been represented under the subtasks FA2, FB1 with the values successively taken by the latter.
- the RTF counter takes an initial value equal to the total number of executables R constituting the child sub-task FA2.
- the RTF counter is therefore worth 6 (according to the example illustrated).
- the RTF counter is a decremented counter, from the first executable, the execution of each new executable R causes the RTF counter to be decremented.
- the RTF counter is then decremented to the value 5 and so on.
- the counter RTF is worth 1 and, at the end of the execution of this last executable R, the counter RTF then takes the value 0.
- this is an incremental counter and is associated with the counting of the R executables of the parent subtask FB1.
- the counter RTM takes the initial value of zero.
- the RTM counter takes the value of 1.
- the RTM counter starts with the value 0 and is incremented by one with each new R executable executed during the sub - mother task FB1.
- the counter RTM takes the value of 5 (in the example illustrated, the sub-task mother FB1 includes 5 executables R).
- the engine control unit 1 When the FA task, that is to say the FA2 child subtask, is closed, the engine control unit 1 will read the value of the RTM counter. Similarly, when the task FB of the next cycle starts, that is to say when the parent subtask FB1 starts, the engine control unit 1 will read the value of the RTF counter.
- the counter RTM is worth 0 at the time of its reading (at the end of the daughter subtask FA2), and the RTF counter is 0 when it is read (at the start of the parent subtask FB1).
- the daughter subtask FA2 and the parent subtask FB1 of the following cycle overlap.
- the mother subtask FB1 starts the counter RTF is worth 4.
- the value of the counter RTM is worth 3.
- the value of the RTF counter indicates, in this example, that there are still 4 executables R to be executed for the child subtask FA2 when the mother subtask FB1 starts.
- the value of the RTM counter indicates that, when the child subtask FA2 is finished, the mother subtask FB1 of the following cycle has already executed 3 executables R (more precisely: the first two executables R have been executed completely and the third executable is running).
- the counter memories 11, 12 relating to the executable counters RTF and RTM, make it possible to store the last value read by the engine control unit 1.
- the value of the counter RTM is read and stored in memory 12 and, at the start of the mother sub-task FB1, the value of the counter RTF is read and stored in memory 1 1.
- the diagnostic memory 13 saves all the values of counters RTM and RTF, memorized by the memories 1 1, 12 when they are greater than zero.
- the diagnostic memory 13 can be consulted in order to know what are the sequences of tasks which, in the past, have presented an overlap 10 and which have been the executables which have been executed during this recovery. This diagnosis can be made punctually or periodically.
- the organization of the tasks can be modified so that the executables R considered to be critical when they are part of an overlap area 10, can be moved to the start of the daughter sub-task FA2 or at the end of the mother sub-task FB1 so as to no longer be present in the overlap areas 10.
- This reorganization of the tasks can also be done dynamically from one cycle to another.
- the example described refers to an engine control unit equipped with a microprocessor 2 comprising two cores C1, C2, however the invention also applies to all digital processing means making it possible to execute subtasks in parallel, for example an engine control unit with several microprocessors and / or processors with any number of cores greater than 2.
- a number of digital processing means greater than 2 for example a microprocessor at 4 cores, the mother subtask FA1 will give birth to as many cascading daughter tasks as there are microprocessor cores available to process it.
- the mother subtask will run on a first core and may give birth to a first subtask girl executed on the second heart, this girl subtask itself giving birth, when it ends, to a second girl subtask executed on the third heart, a fourth daughter subtask being then executed on the fourth heart .
- the method according to the invention will then implement the RTF and RTM executable counters during the chaining of the last child subtask and of the mother subtask of the following cycle.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Quality & Reliability (AREA)
- Mathematical Physics (AREA)
- Combined Controls Of Internal Combustion Engines (AREA)
- Electrical Control Of Air Or Fuel Supplied To Internal-Combustion Engine (AREA)
Abstract
Procédé de commande d'une unité de contrôle moteur qui comporte au moins deux cœurs de microprocesseur, comportant des étapes d'exécution d'une sous-tâche mère (FA1, FB1) et au moins une sous-tâche fille (FA2, FB2). Le procédé comporte les étapes suivantes : - déterminer le nombre d'exécutables (R) qui restent à exécuter dans la dernière sous-tâche fille (FA2) de la première période (9A), lorsque la sous-tâche mère (FB1) de la deuxième période (9B) démarre; - déterminer le nombre d'exécutables (R) déjà exécutés dans la sous-tâche mère (FB1) de la deuxième période (9B), lorsque la dernière sous-tâche fille (FA2) de la première période (9A) se termine.
Description
Description
Procédé de commande d’une unité de contrôle moteur à processeur multicœur
Domaine technique
L’invention a trait au domaine de l’automobile et concerne la commande des unités de contrôle moteur qui pilotent le fonctionnement du moteur à combustion interne d’un véhicule automobile.
La plupart des véhicules automobiles actuels disposent d’une unité de contrôle moteur généralement placée sous le capot moteur. Cette unité de contrôle moteur est reliée à des capteurs permettant d’acquérir des informations sur l’état du moteur (températures, pressions, vibrations, position des différents organes, etc.). En tenant compte des données recueillies par ces capteurs, l’unité de contrôle moteur pilote le moteur à combustion interne en commandant des actionneurs tels que des injecteurs de carburant, d’éventuelles bougies d’allumage, des vannes disposées dans les différents circuits de fluide associés au moteur, etc. L’unité de contrôle moteur comporte, pour assurer sa fonction, des moyens électroniques de traitement de l’information, tel que des microprocesseurs.
Les véhicules automobiles récents embarquent un nombre croissant de capteurs et leurs unités de contrôle moteur sont programmées pour piloter les capteurs avec une complexité et une finesse croissante. Les unités de contrôle moteur sont donc généralement dimensionnées à la hausse du point de vue de leur capacité de calcul, c'est-à-dire de la capacité de leur microprocesseur. Dans ce cadre, les recherches récentes conduisent à employer, au sein des unités de contrôle moteur, des microprocesseurs multicœurs c'est- à-dire des microprocesseurs possédant plusieurs cœurs physiques fonctionnant simultanément. Plusieurs programmes peuvent donc être exécutés en parallèle et indépendamment les uns des autres.
Cependant, la fonction d’une unité de contrôle moteur étant de piloter un organe physique complexe tel qu’un moteur à combustion interne, son taux de défaillance est nécessairement proche de zéro dans la mesure où sa défaillance entraînerait des dysfonctionnements pouvant aller jusqu’à la casse du moteur, ainsi que poser des problèmes de sécurité pour les passagers du véhicule. La fiabilité des opérations numériques au sein d’une unité de contrôle moteur est donc critique. L’exploitation des possibilités offertes par les microprocesseurs multicœurs (l’exécution de plusieurs programmes en parallèle) ne peut avoir lieu qu’avec une garantie que ces possibilités offertes ne se traduisent pas par une perte de fiabilité. Or, certaines opérations sont particulièrement critiques car elles doivent avoir lieu à des fréquences élevées. C’est le cas par exemple des opérations cycliques indexées sur la rotation du moteur, lors des hauts régimes moteur.
Dans l’art antérieur, pour sécuriser ces opérations, les procédés de commande d’une unité de contrôle moteur disposant d’un microprocesseur multicœur utilisent généralement des principes de sémaphore, c'est-à-dire que lorsqu’un exécutable d’une tâche lit ou modifie une variable, il verrouille cette variable de sorte qu’aucun autre exécutable ne puisse lire ou modifier de manière concurrente la variable. Ces procédés sont satisfaisants du point de vue de la sécurité, mais entraînent un temps de latence important puisque les exécutables sont alors exécutés séquentiellement et ces procédés ne tirent donc pas le meilleur parti des possibilités de traitement en parallèle offert par les processeurs multicœurs.
Résumé de l'invention
L’invention propose un procédé de commande d’une unité de contrôle moteur qui sécurise les opérations lors de l’usage d’au moins deux cœurs de microprocesseur.
À cet effet, l’invention vise un procédé de commande d’une unité de contrôle moteur qui est reliée à des capteurs et des actionneurs associés au moteur à combustion interne d’un véhicule, l’unité de contrôle moteur comportant au moins deux cœurs de microprocesseur, le procédé de commande comportant des étapes d’exécution d’une tâche cyclique, l’exécution de cette tâche étant déclenchée par un évènement récurent qui se répète selon une période liée à la rotation du moteur, cette tâche cyclique étant composée d’exécutables répartis en une sous-tache mère, déclenchée par l’évènement récurent et exécutée par un cœur de microprocesseur, et au moins une sous-tâche fille exécutée à la suite de la sous- tâche mère par un autre cœur de microprocesseur.
Le procédé comporte les étapes suivantes:
- déterminer le nombre d’exécutables qui restent à exécuter dans la dernière sous-tâche fille de la première période, lorsque la sous-tâche mère de la deuxième période démarre;
- déterminer le nombre d’exécutables déjà exécutés dans la sous-tâche mère de la deuxième période, lorsque la dernière sous-tâche fille de la première période se termine. Ce procédé selon l’invention est particulièrement avantageux pour les tâches cycliques indexées sur la rotation moteur, c'est-à-dire lorsque l’exécution d’une telle tâche cyclique est déclenchée par un évènement qui se répète selon une période liée à la rotation du moteur. Cette même tâche cyclique se répète donc selon une période qui diminue lorsque le régime du moteur augmente. À haut régime, un nouveau cycle de cette tâche cyclique recommence donc très rapidement après le début de la tâche précédente.
Le procédé répartit chaque tâche à réaliser dans un cycle en différentes sous-tâches distribuées sur les différents cœurs du microprocesseur. Le découpage d’une tâche en sous-tâches permet de répartir la charge de calcul sur les cœurs de microprocesseur disponibles. Ce découpage est avantageux car il permet de tirer parti de
l’ensemble des moyens de calcul disponibles, et permet un traitement plus rapide et plus puissant, ainsi que d’équilibrer les charges de calcul entre les différents cœurs de microprocesseur.
Le procédé permet de sécuriser l’enchaînement des tâches cycliques. Lorsque la dernière sous-tâche fille d’un cycle se termine et que la sous-tâche mère du cycle suivant commence, le procédé détermine combien d’exécutables de la sous-tâche fille reste à exécuter ainsi que le nombre d’exécutables déjà exécutés dans la sous-tâche mère. La période de recouvrement entre la dernière sous-tâche fille et la sous-tâche mère du cycle suivant est ainsi identifiée.
Le procédé selon l’invention peut permettre un diagnostic de l’unité de contrôle moteur. Ainsi, à intervalle régulier ou ponctuellement, le recouvrement de sous-tâches au moment de l’enchainement des tâches cycliques peut être étudié pour identifier des exécutables qui entreraient en conflit les uns avec les autres, durant les phases de chevauchement qui ont été identifiées. En effet, lorsqu’une sous-tâche fille et la sous-tâche mère du cycle suivant se chevauche, des exécutables peuvent entrer en conflit s’ils sont exécutés simultanément. Les exécutables qui peuvent entrer en conflit sont par exemple des exécutables qui modifient une même variable.
Le procédé selon l’invention permet également une répartition plus sûre des exécutables au sein d’une même tâche. En effet, les exécutables amenés à être exécutés pendant le recouvrement des tâches sont identifiés. De manière dynamique (en cours de fonctionnement) ou de manière statique (lors des phases de maintenance), les exécutables connus pour être concurrents peuvent être déplacés au sein d’une tâche pour être exécutés en dehors de cette plage de recouvrement.
Le procédé selon l’invention permet donc une meilleure connaissance des dysfonctionnements potentiels d’une unité de contrôle moteur et permet d’éviter ces dysfonctionnements, notamment ceux qui sont liés à l’exécution d’exécutables concurrents pendant la période de recouvrement.
L’unité de contrôle moteur, et donc le moteur lui-même, bénéficie ainsi d’un contrôle plus précis et plus fiable. Par exemple, si une tâche mère comporte des exécutables permettant de calculer dans quel cylindre doit être réalisée la prochaine injection de carburant, l’unité de contrôle moteur empêche que les exécutables d’une tâche fille amenés à être exécutés pendant le recouvrement avec une tâche mère du cycle suivant n’utilisent un numéro de cylindre erroné (qui serait calculé par la nouvelle tâche mère) par rapport au cycle en cours. En conséquence, la quantité d'essence injectée est optimale et l'émission de produit polluants ou la consommation est mieux maîtrisée.
Le procédé de commande d’une unité de contrôle moteur peut présenter les caractéristiques additionnelles suivantes, seules ou en combinaison :
- suite à l’étape de déterminer le nombre d’exécutables qui restent à exécuter dans la dernière sous-tâche fille de la première période, le procédé comporte l’étape de mémoriser ce nombre d’exécutables dans une mémoire ;
- suite à l’étape de déterminer le nombre d’exécutables déjà exécutés dans la sous-tâche mère de la deuxième période, le procédé comporte l’étape de mémoriser ce nombre d’exécutables dans une mémoire ;
- le nombre d’exécutables mémorisé dans une mémoire est de plus sauvegardé dans une mémoire de diagnostic ;
- le procédé comporte une étape de diagnostic consistant à lire la mémoire de diagnostic ;
- l’étape de déterminer le nombre d’exécutables qui restent à exécuter dans la dernière sous-tâche fille de la première période, comporte la mise en œuvre d’un compteur d’exécutables de la sous-tâche fille ;
- la valeur initiale du compteur d’exécutables de la sous-tâche fille correspond au nombre total d’exécutables dans la sous-tâche fille, ce compteur étant décrémenté lors de l’exécution de chaque exécutable de la sous-tâche fille ;
- l’étape de déterminer le nombre d’exécutables déjà exécutés dans la sous-tâche mère de la deuxième période, comporte la mise en œuvre d’un compteur d’exécutables de la sous- tâche mère ;
- la valeur initiale du compteur d’exécutables de la sous-tâche mère est de zéro, ce compteur étant incrémenté lors de l’exécution de chaque exécutable.
Brève description des dessins
Un exemple préféré de réalisation de l’invention va maintenant être décrit en référence aux dessins annexés dans lesquels :
[Fig. 1] représente une unité de contrôle moteur apte à mettre en œuvre le procédé de commande selon l’invention’
[Fig. 2] est un diagramme illustrant l’enchaînement de deux tâches cycliques sans période de recouvrement.
[Fig. 3] est similaire à la figure 2 et illustre le cas où les tâches s’enchaînent avec une période de recouvrement.
[Fig. 4] est une vue de détail de la figure 2.
[Fig. 5] est une vue de détail de la figure 3.
Description des modes de réalisation
La figure 1 représente schématiquement une unité de contrôle moteur 1 destinée au pilotage d’un moteur à combustion interne d’un véhicule automobile.
L’unité de contrôle moteur 1 est reliée à une série de capteurs 3 tels que des capteurs de position, de température, de pression, de débit, etc. L’unité de contrôle moteur 1 est par
ailleurs reliée à des sorties de contrôle 4 aptes à contrôler les actionneurs intervenant dans le pilotage du moteur. Ces actionneurs sont, par exemple, des bougies d’allumage, des injecteurs de carburant, des vannes, etc.
L’unité de contrôle moteur 1 est programmée de manière connue pour, d’une part, faire l’acquisition des valeurs de mesure fournies par les capteurs 3, et d’autre part pour commander les actionneurs pour assurer le fonctionnement du moteur.
L’unité de contrôle moteur 1 comporte un microprocesseur 2 qui est, dans le présent exemple, muni de deux cœurs C1 , C2. En plus des éléments classiques permettant le fonctionnement du microprocesseur 2 tels que mémoire vive, bus divers, etc. (non représentés), l’unité 1 comporte un premier compteur d’exécutable RTF et un deuxième compteur d’exécutable RTM destinés à la mise en œuvre du procédé décrit plus loin. Ces compteurs d’exécutables RTF et RTM sont associés chacun à une mémoire d’exécutable 1 1 , 12. Une mémoire de diagnostic 13 permet la sauvegarde des mémoires d'exécutables 11 , 12.
La figure 2 illustre le déroulement d’une tâche cyclique au sein du microprocesseur 2.
Le microprocesseur 2 est un microprocesseur multicœur classique. L’unité de contrôle moteur 1 comporte un système d’exploitation adapté à mettre en œuvre les programmes informatiques conçus pour l’unité de contrôle moteur 1. Le microprocesseur 2 est ainsi amené à exécuter des tâches (une tâche est également dénommée « fil d’exécution ») correspondant aux diverses fonctions remplies par l’unité de contrôle moteur 1. L’une de ces tâches peut être par exemple la commande d’une séquence d’injection de carburant, d’une séquence d’allumage d’une bougie d’allumage, ou de l’ouverture d’une vanne. Certaines de ces tâches sont cycliques et sont indexées sur la rotation du moteur, c'est le cas par exemple pour les tâches d’injection et d’allumage. Dans ces cas, l’exécution de la tâche est déclenchée par un évènement qui est repéré par l’un des capteurs 3, cet évènement étant lié à la rotation du moteur. Par exemple, le fait que l’un des pistons du moteur parvienne à son point mort haut, ou à une autre position prédéterminée, est un évènement déclenchant une séquence d’injection de carburant dans le cylindre correspondant. Ces tâches cycliques sont donc déclenchées par un évènement qui se répète selon une période liée au régime du moteur. L’augmentation de la vitesse de rotation du moteur entraîne donc une diminution de la période qui s’écoule entre deux évènements. Sur la figure 2, un évènement déclencheur 14A est représenté en début de graphique. Cet évènement 14A déclenche une tâche FA. En poursuivant l’exemple donné précédemment, l’évènement 14A est la présence d’un piston du moteur au point mort haut, ou à une position proche de ce point mort haut, et la tâche FA est une tâche d’injection de carburant dans le cylindre correspondant. Cet évènement est cyclique puisqu’il se répète à chaque cycle de rotation du moteur, lorsque le piston revient à cette même place.
Sur la figure 2, l’évènement 14B correspond au même évènement survenant au cours du cycle de moteur suivant. Les évènements 14A, 14B se succèdent donc selon une période 8A, 8B qui dépend du régime de rotation du moteur.
Sur l’exemple de la figure 2, le régime moteur est constant et la durée de la période 8A, 8B est supérieure à la durée de déroulement des tâches FA, FB.
Le microprocesseur 2 étant, dans le présent exemple, un microprocesseur à doubles cœurs C1 , C2, l’exécution de chaque tâche FA, FB est répartie sur les différents cœurs C1 , C2 du microprocesseur 2. Sur le diagramme schématique de la figure 2, le bandeau supérieur porte la référence C1 et correspond aux opérations exécutées par le premier cœur C1 tandis que le bandeau inférieur portant la référence C2 correspond aux opérations réalisées par le deuxième cœur C2 du microprocesseur 2. Chaque tâche FA, FB est ainsi divisée en deux sous-tâches dénommées « sous-tâche mère » FA1 , FB1 et « sous-tâche fille » FA2, FB2. La sous-tâche mère FA1 , FB1 est exécutée sur le premier cœur C1 tandis que la sous-tâche fille FA2, FB2 est exécutée par le deuxième cœur C2.
Pour chaque tâche FA, FB, l’enchaînement de la sous-tâche mère FA1 , FB1 et de la sous- tâche fille FA2, FB2 se fait de manière chaînée, c'est-à-dire que la sous-tâche fille FA2, FB2 ne commence que lorsque la sous-tâche mère FA1 , FB1 est terminée.
La figure 3 représente les mêmes éléments que la figure 2 lorsque la vitesse de rotation du moteur a été augmentée. La période 9A, 9B, 9C entre deux évènements 14A, 14B, 14C est inférieure à la période 8A, 8B de la figure 2.
Dans cet exemple de la figure 3, la période 9A, 9B, 9C est maintenant inférieure au temps nécessaire pour l’exécution d’une tâche FA, FB, FC. Ainsi, chaque sous-tâche fille FA2, FB2 se termine alors que la sous-tâche mère FB1 , FC1 du cycle suivant a déjà commencé. Une zone temporelle de recouvrement 10 (représentée en hachuré sur la figure 3) existe donc entre une tâche FA, FB, FC d’une période 9A, 9B, 9C et la tâche de la période suivante.
Les figures 4 et 5 illustrent plus en détail le procédé permettant la gestion de cette zone de recouvrement 10.
Les figures 4 et 5 sont similaires et illustrent chacune la sous-tâche fille FA2 d’une première période et la sous-tâche mère FB1 de la période suivante. La figure 4 correspond à la configuration de la figure 2 dans laquelle la période 8A, 8B a une durée suffisante pour que la sous-tâche fille FA2 et la sous-tâche mère FB1 du cycle suivant ne se recouvrent pas. La figure 5 correspond à la configuration de la figure 3 dans laquelle la période 9A, 9B réduite entraîne le recouvrement de la sous-tâche fille FA2 et de la sous-tâche mère FB1 du cycle suivant.
Sur les figures 4 et 5, le détail des tâches a été représenté. Les tâches sont en effet constituées d’exécutables R schématisés sur ces figures. Une tâche telle qu’une opération d’injection de carburant comporte généralement aux alentours d’une cinquantaine d’exécutables R qui sont chacun une fonction (une opération mathématique simple) ou un groupe de fonctions pouvant être exécutés par le microprocesseur 2. La mise à jour d’une variable indiquant le numéro du cylindre du moteur où aura lieu la prochaine injection de carburant est un exemple d’exécutable R.
Le procédé de commande de l’unité de contrôle moteur 1 met en œuvre un premier compteur d’exécutable RTF pour les exécutables de la sous-tâche fille FA2, ainsi qu’un deuxième compteur d’exécutable RTM pour les exécutables de la sous-tâche mère FB1. Sur les figures 4 et 5, les compteurs d’exécutables RTF et RTM ont été représentés sous les sous-tâches FA2, FB1 avec les valeurs successivement prises par ces derniers.
Lorsque la sous-tâche file FA2 démarre, le compteur RTF prend une valeur initiale égale au nombre total d’exécutables R constituant la sous-tâche fille FA2. Lors de l’exécution du premier exécutable R de la sous-tâche fille FA2, le compteur RTF vaut donc 6 (selon l’exemple illustré). Le compteur RTF est un compteur décrémentai, à partir du premier exécutable, l’exécution de chaque nouvel exécutable R entraîne la décrémentation du compteur RTF. Lors de l’exécution du deuxième exécutable R, le compteur RTF est alors décrémenté à la valeur 5 et ainsi de suite. Pendant l’exécution du dernier exécutable R, le compteur RTF vaut 1 et, à la fin de l’exécution de ce dernier exécutable R, le compteur RTF prend alors la valeur 0.
En ce qui concerne le deuxième compteur d’exécutable RTM, celui-ci est un compteur incrémental et est associé au comptage des exécutables R de la sous-tâche mère FB1. Avant le début de la sous-tâche mère FB1 , le compteur RTM prend la valeur initiale de zéro. Lors de l’exécution du premier exécutable R de la sous-tâche mère FB1 , le compteur RTM prend la valeur de 1. Le compteur RTM démarre par la valeur 0 et est incrémenté d’une unité à chaque nouvel exécutable R exécuté durant la sous-tâche mère FB1. En démarrant l’exécution du dernier exécutable R, le compteur RTM prend la valeur de 5 (dans l’exemple illustré, la sous-tâche mère FB1 comporte 5 exécutables R).
À la clôture de la tâche FA, c'est-à-dire de la sous-tâche fille FA2, l’unité de contrôle moteur 1 va lire la valeur du compteur RTM. De même, au moment du démarrage de la tâche FB du cycle suivant, c'est-à-dire du démarrage de la sous-tâche mère FB1 , l’unité de contrôle moteur 1 va lire la valeur du compteur RTF.
Dans l’exemple de la figure 4 où la sous-tâche fille FA2 et la sous-tâche mère FB1 ne se recouvrent pas, le compteur RTM vaut 0 au moment de sa lecture (à la fin de la sous-tâche fille FA2), et le compteur RTF vaut 0 au moment de sa lecture (au démarrage de la sous- tâche mère FB1).
En référence à la figure 5, la sous-tâche fille FA2 et la sous-tâche mère FB1 du cycle suivant se chevauchent. Dans ce cas, lorsque la sous-tâche mère FB1 démarre le compteur RTF vaut 4. Lorsque l’exécution de la sous-tâche fille FA2 est terminée, la valeur du compteur RTM vaut 3.
La valeur du compteur RTF indique, dans cet exemple, qu’il reste encore 4 exécutables R à exécuter pour la sous-tâche fille FA2 lorsque la sous-tâche mère FB1 démarre. La valeur du compteur RTM indique quant à lui que, lorsque la sous-tâche fille FA2 est terminée, la sous-tâche mère FB1 du cycle suivant a déjà exécuté 3 exécutables R (plus précisément : les deux premiers exécutables R ont été exécutés complètement et le troisième exécutable est en cours d’exécution).
Les mémoires de compteur 11 , 12 relatives aux compteurs d’exécutable RTF et RTM, permettent de stocker la dernière valeur lue par l’unité de contrôle moteur 1. En fin de sous- tâche fille FA2, la valeur du compteur RTM est lue et stockée dans la mémoire 12 et, au démarrage de la sous-tâche mère FB1 , la valeur du compteur RTF est lue et stockée dans la mémoire 1 1. La mémoire de diagnostic 13 sauvegarde toutes les valeurs de compteurs RTM et RTF, mémorisées par les mémoires 1 1 , 12 lorsqu’elles sont supérieures à zéro. Lors d’un diagnostic de l’unité de contrôle moteur 1 , la mémoire de diagnostic 13 pourra être consultée pour connaître quels sont les enchaînements de tâches qui, par le passé, ont présenté un recouvrement 10 et quels ont été les exécutables qui ont été exécutés pendant ce recouvrement. Ce diagnostic peut être fait ponctuellement ou périodiquement. Dans le cas où ce diagnostic est fait périodiquement, l’organisation des tâches peut être modifiée pour que les exécutables R considérés comme critiques lorsqu’ils font partie d’une zone de recouvrement 10, puissent être déplacés en début de sous-tâche fille FA2 ou en fin de sous-tâche mère FB1 de manière à ne plus être présents dans les zones de recouvrement 10. Cette réorganisation des tâches peut également être faite de manière dynamique d’un cycle à l’autre.
Des variantes de l’exemple décrit précédemment peuvent être mises en œuvre sans sortir du cadre de l’invention. Par exemple, l’exemple décrit se réfère à une unité de contrôle moteur équipée d’un microprocesseur 2 comportant deux cœurs C1 , C2, cependant l’invention s’applique également à tous moyens de traitements numériques permettant d’exécuter des sous-tâches en parallèle, par exemple une unité de contrôle moteur à plusieurs microprocesseurs et/ou des processeurs avec un nombre quelconque de cœurs supérieur à 2. Dans le cas d’un nombre de moyens de traitement numérique supérieur à 2, par exemple un microprocesseur à 4 cœurs, la sous-tâche mère FA1 donnera naissance à autant de tâches filles en cascade, que de cœurs de microprocesseur disponibles pour la traiter. Par exemple, si un microprocesseur comporte 4 cœurs, la sous-tâche mère s’exécutera sur un premier cœur et pourra donner naissance à une première sous-tâche
fille exécutée sur le deuxième cœur, cette sous-tâche fille donnant elle-même naissance, lorsqu’elle se termine, à une deuxième sous-tâche fille exécutée sur le troisième cœur, une quatrième sous-tâche fille étant ensuite exécutée sur le quatrième cœur. Le procédé selon l’invention mettra alors en œuvre les compteurs d’exécutable RTF et RTM lors de l’enchaînement de la dernière sous-tâche fille et de la sous-tâche mère du cycle suivant.
Claims
[Revendication 1] Procédé de commande d’une unité de contrôle moteur (1) qui est reliée à des capteurs (3) et des actionneurs associés au moteur à combustion interne d’un véhicule, l’unité de contrôle moteur (1) comportant au moins deux cœurs (C1 , C2) de microprocesseur (2), le procédé de commande comportant des étapes d’exécution d’une tâche (FA, FB, FC) cyclique, l’exécution de cette tâche (FA, FB, FC) étant déclenchée par un évènement (14A, 14B, 14C) récurent qui se répète selon une période (8, 9) liée à la rotation du moteur, caractérisé en ce que la tâche (FA, FB, FC) cyclique est composée d’exécutables (R) répartis en une sous-tâche mère (FA1 , FB1), déclenchée par l’évènement (14A, 14B, 14C) récurent et exécutée par un cœur de microprocesseur, et au moins une sous-tâche fille (FA2, FB2) exécutée à la suite de la sous-tâche mère (FA1 , FB1) par un autre cœur de microprocesseur, le procédé comportant les étapes suivantes, lors de l’enchaînement de la tâche (FA) d’une première période (9A) et de la tâche (FB) d’une deuxième période (9B) qui suit la première période (9A) :
- déterminer le nombre d’exécutables (R) qui restent à exécuter dans la dernière sous-tâche fille (FA2) de la première période (9A), lorsque la sous-tâche mère (FB1) de la deuxième période (9B) démarre ;
- déterminer le nombre d’exécutables (R) déjà exécutés dans la sous-tâche mère (FB1) de la deuxième période (9B), lorsque la dernière sous-tâche fille (FA2) de la première période (9A) se termine.
[Revendication 2] Procédé selon la revendication 1 , caractérisé en ce que, suite à l’étape de déterminer le nombre d’exécutables (R) qui restent à exécuter dans la dernière sous-tâche fille (FA2) de la première période (9A), il comporte l’étape de mémoriser ce nombre d’exécutables dans une mémoire (1 1).
[Revendication 3] Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que, suite à l’étape de déterminer le nombre d’exécutables (R) déjà exécutés dans la sous-tâche mère (FB1) de la deuxième période (9B), il comporte l’étape de mémoriser ce nombre d’exécutables dans une mémoire (12).
[Revendication 4] Procédé selon les revendications 2 et 3, caractérisé en ce que le nombre d’exécutables mémorisé dans une mémoire (11 , 12) est de plus sauvegardé dans une mémoire de diagnostic (13).
[Revendication 5] Procédé selon la revendication 4, caractérisé en ce qu’il comporte une étape de diagnostic consistant à lire la mémoire de diagnostic (13).
[Revendication 6] Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que l’étape de déterminer le nombre d’exécutables (R) qui restent à
exécuter dans la dernière sous-tâche fille (FA2) de la première période (9A), comporte la mise en œuvre d’un compteur d’exécutables (RTF) de la sous-tâche fille (FA2).
[Revendication 7] Procédé selon la revendication 6, caractérisé en ce que la valeur initiale du compteur d’exécutables (RTF) de la sous-tâche fille (FA2) correspond au nombre total d’exécutables dans la sous-tache fille (FA2), ce compteur (RTF) étant décrémenté lors de l’exécution de chaque exécutable (R) de la sous-tâche fille (FA2).
[Revendication 8] Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que l’étape de déterminer le nombre d’exécutables (R) déjà exécutés dans la sous-tâche mère (FB1) de la deuxième période (9B), comporte la mise en œuvre d’un compteur d’exécutables (RTM) de la sous-tâche mère (FB1).
[Revendication 9] Procédé selon la revendication 8, caractérisé en ce que la valeur initiale du compteur d’exécutables (RTM) de la sous-tâche mère (FB1) est de zéro, ce compteur (RTM) étant incrémenté lors de l’exécution de chaque exécutable (R).
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/312,490 US11907757B2 (en) | 2018-12-12 | 2019-12-12 | Method for controlling a multicore-processor engine control unit |
| CN201980082396.XA CN113302592B (zh) | 2018-12-12 | 2019-12-12 | 用于控制具有多核处理器的发动机控制单元的方法 |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1872750 | 2018-12-12 | ||
| FR1872750A FR3090157B1 (fr) | 2018-12-12 | 2018-12-12 | Procédé de commande d’une unité de contrôle moteur à processeur multicœur |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2020120690A1 true WO2020120690A1 (fr) | 2020-06-18 |
Family
ID=67262370
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/EP2019/084930 Ceased WO2020120690A1 (fr) | 2018-12-12 | 2019-12-12 | Procédé de commande d'une unité de contrôle moteur à processeur multicoeur |
Country Status (4)
| Country | Link |
|---|---|
| US (1) | US11907757B2 (fr) |
| CN (1) | CN113302592B (fr) |
| FR (1) | FR3090157B1 (fr) |
| WO (1) | WO2020120690A1 (fr) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2022104990A1 (fr) * | 2020-11-20 | 2022-05-27 | 清华大学 | Dispositif de déclenchement et système informatique analogue au cerveau |
| FR3142578A1 (fr) * | 2022-11-28 | 2024-05-31 | Vitesco Technologies | Procédé et système avec un microcontrôleur multi-cœurs avec tâche chaînée et logique de délestage |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110321051A1 (en) * | 2010-06-25 | 2011-12-29 | Ebay Inc. | Task scheduling based on dependencies and resources |
| FR3060150A1 (fr) * | 2016-12-12 | 2018-06-15 | Continental Automotive France | Procede de diagnostic d'un ordonnancement de taches |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3678495A (en) * | 1970-02-26 | 1972-07-18 | Technical Management Services | Target indicating system and method |
| KR101622168B1 (ko) * | 2008-12-18 | 2016-05-18 | 삼성전자주식회사 | 실시간 스케쥴링 방법 및 이를 이용한 중앙처리장치 |
| US9043078B2 (en) | 2010-08-13 | 2015-05-26 | Deere & Company | Method and system for performing diagnostics or software maintenance for a vehicle |
| CN103080719B (zh) | 2010-09-10 | 2016-04-06 | 迪尔公司 | 用于执行车辆的诊断或软件维护的方法和系统 |
| CN103377035A (zh) * | 2012-04-12 | 2013-10-30 | 浙江大学 | 针对粗颗粒度流应用的流水并行化方法 |
| FR3043808B1 (fr) | 2015-11-12 | 2017-12-08 | Peugeot Citroen Automobiles Sa | Procede de controle commande de taches fonctionnelles par un microprocesseur multicoeurs |
| JP6961974B2 (ja) * | 2017-03-28 | 2021-11-05 | 富士フイルムビジネスイノベーション株式会社 | 情報処理装置及び情報処理プログラム |
| DE102017130552B3 (de) * | 2017-12-19 | 2019-03-14 | Beckhoff Automation Gmbh | Verfahren zur Datenverarbeitung und speicherprogrammierbare Steuerung |
| CN108595179A (zh) | 2018-05-10 | 2018-09-28 | 北京小度信息科技有限公司 | 任务生成方法、装置、电子设备及计算机可读存储介质 |
| US11194651B2 (en) * | 2019-10-11 | 2021-12-07 | EMC IP Holding Company LLC | Method for gracefully handling QAT hardware or CPU software failures by dynamically switching between QAT hardware and CPU software for data compression and decompression |
-
2018
- 2018-12-12 FR FR1872750A patent/FR3090157B1/fr active Active
-
2019
- 2019-12-12 US US17/312,490 patent/US11907757B2/en active Active
- 2019-12-12 CN CN201980082396.XA patent/CN113302592B/zh active Active
- 2019-12-12 WO PCT/EP2019/084930 patent/WO2020120690A1/fr not_active Ceased
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20110321051A1 (en) * | 2010-06-25 | 2011-12-29 | Ebay Inc. | Task scheduling based on dependencies and resources |
| FR3060150A1 (fr) * | 2016-12-12 | 2018-06-15 | Continental Automotive France | Procede de diagnostic d'un ordonnancement de taches |
Cited By (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2022104990A1 (fr) * | 2020-11-20 | 2022-05-27 | 清华大学 | Dispositif de déclenchement et système informatique analogue au cerveau |
| FR3142578A1 (fr) * | 2022-11-28 | 2024-05-31 | Vitesco Technologies | Procédé et système avec un microcontrôleur multi-cœurs avec tâche chaînée et logique de délestage |
| WO2024115183A1 (fr) * | 2022-11-28 | 2024-06-06 | Vitesco Technologies GmbH | Procédé et système avec un microcontrôleur multi-cœurs avec tâche chaînée et logique de délestage |
Also Published As
| Publication number | Publication date |
|---|---|
| FR3090157A1 (fr) | 2020-06-19 |
| US20220129309A1 (en) | 2022-04-28 |
| US11907757B2 (en) | 2024-02-20 |
| FR3090157B1 (fr) | 2020-11-20 |
| CN113302592A (zh) | 2021-08-24 |
| CN113302592B (zh) | 2024-08-23 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| FR3043808A1 (fr) | Procede de controle commande de taches fonctionnelles par un microprocesseur multicoeurs | |
| FR3090157A1 (fr) | Procédé de commande d’une unité de contrôle moteur à processeur multicœur | |
| CN112240251B (zh) | 一种颗粒捕集器再生处理方法及装置 | |
| FR2911980A1 (fr) | Procede de conception d'un systeme comprenant des composants materiels et logiciels | |
| FR2781897A1 (fr) | Procede de commande de taches effectuees par un systeme d'exploitation, pour la commande d'un moteur de vehicule | |
| CA2918215C (fr) | Procede d'estimation sur une courbe d'un point pertinent pour la detection d'anomalie d'un moteur et systeme de traitement de donnees pour sa mise en oeuvre | |
| WO2007028584A1 (fr) | Procédé de détermination de l'inversion du sens de rotation d'un moteur | |
| FR3075414B1 (fr) | Procede de gestion d'une pluralite de taches par un calculateur automobile multicœur | |
| FR3071642B1 (fr) | Procede d'execution d'un programme par un appareil electronique | |
| JP6306530B2 (ja) | 自動車用電子制御装置 | |
| EP2480776B1 (fr) | Procédé de prédiction du régime de rotation d'un vilebrequin de moteur en phase de fin de rotation et application du procédé a la prédiction du cylindre d'arrêt | |
| FR3071334B1 (fr) | Procede pour assurer la stabilite des donnees d’un processeur multicoeur d’un vehicule automobile | |
| WO2016051044A1 (fr) | Moteur a combustion de véhicule automobile a pilotage de richesse améliore | |
| FR3082338A1 (fr) | Procede de gestion d’une pluralite de taches par un calculateur automobile multicœur | |
| EP1124042B1 (fr) | Système d'aide à la régénération d'un filtre à particules intégré dans une ligne d'échappement d'un moteur Diesel | |
| FR2539820A1 (fr) | Procede de commande d'allumage pour moteur a combustion interne et circuit electronique pour sa mise en oeuvre | |
| FR3101460A1 (fr) | Procédé et calculateur de gestion d’échanges de données entre une pluralité de tâches | |
| WO2022189291A1 (fr) | Optimisation d'un procede de controle d'un moteur a combustion interne | |
| FR3142578A1 (fr) | Procédé et système avec un microcontrôleur multi-cœurs avec tâche chaînée et logique de délestage | |
| WO2024160750A1 (fr) | Procede de gestion de donnees partagees | |
| WO2021028147A1 (fr) | Procédé de traitement d'un capteur arbre à came | |
| CN117990374A (zh) | 一种齿周期确定方法、装置、电子设备及介质 | |
| FR3091611A1 (fr) | Procédé de calibration d’un système de transmission automatique | |
| FR3106375A1 (fr) | Diagnostic de l’état d’une pompe dans un système d’injection pour moteur diesel | |
| FR3081070A1 (fr) | Procede d'echange de donnees |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19816773 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |
|
| 122 | Ep: pct application non-entry in european phase |
Ref document number: 19816773 Country of ref document: EP Kind code of ref document: A1 |