EP3374866A1 - Procede de controle commande par un microprocesseur multicoeur - Google Patents
Procede de controle commande par un microprocesseur multicoeurInfo
- Publication number
- EP3374866A1 EP3374866A1 EP16809965.3A EP16809965A EP3374866A1 EP 3374866 A1 EP3374866 A1 EP 3374866A1 EP 16809965 A EP16809965 A EP 16809965A EP 3374866 A1 EP3374866 A1 EP 3374866A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- tasks
- synchronous
- software
- periodic
- group
- 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.)
- Withdrawn
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
Definitions
- the invention relates to a control method by a multi-core microprocessor, that is to say, several cores also called processing units.
- the invention is in the field of real-time processing using multi-core processor resources.
- Such an open system architecture can be an architecture according to the Autosar standard for an open architecture system for automotive also known under the name "AUTOMOTIVE Open System Architecture", without this being an obligation for this invention. .
- processors with a single processing unit, that is to say a single-core processor. More recently there is the appearance of processors comprising at least two processing units, also called multi-core processors that allow a computing power greater than that of single-core processors, while using an operating frequency equal to that of a single processor. single-core processor.
- the functional architecture divides the functions into sub-functions according to needs of work distribution or management of the diversity of options.
- this functional division is at the basis of the software distribution processes on several computing cores.
- a study of graphs of transitions between the different sub-functions is sometimes used for that.
- the implementation of functions on two processor units of a multi-core processor is for example performed by an allocation on a core of the application software over an interface of the architecture of the open system and a basic system software allocation on another processor core.
- the executable entities of the software are grouped into software tasks according to their type of activation. Each software task has executable entities of only one type of activation. These software tasks are thus able to be managed in real time by a task monitor that activates them according to their type of trigger.
- Multi-core processors may theoretically offer more computing power but they require parallelizing the processing on different cores, while these treatments were until now performed sequentially on a single core.
- the processing that is distributed over its different processing units must not include precedence relationships. In other words, the processing units must be able to operate in a desynchronised manner, without expecting each other.
- a module that is to say an atomic component in the sense of Autosar, can not be split on several cores. So all the executable entities of a module must go to the same core or compute unit. This constraint is sometimes also found in software that is not part of an open system architecture because it is simply linked to a design of the software that shares global variables to a function by the different sub-functions.
- control command loops often include several functions and give rise to executable entities divided into different sub-functions that have the same type of trigger.
- These executable entities must follow a predefined sequencing order within their software task: they must therefore also be on the same processing unit. It follows that in this conventional design it is necessary to put a large part of the functional system on the same processing unit, which produces a calculation overhead on it while other processing units are underemployed .
- executable entities of the same type of trigger are nevertheless distributed over different processing units, under the constraint of precedence relations between the processing units to respect the order of execution of these executable entities.
- the problem underlying the invention is to accelerate the processing of multiple cores of a multicore processor so that these processing can be done in real time without delay.
- these tasks are grouped into at least one first group of periodic software tasks and a second group of synchronous tasks and in that the group of periodic tasks, on the one hand, and the group of synchronous tasks, on the other hand, are treated by at least one core of the microprocessor specific to them, the tasks neither synchronous nor periodic being processed by said at least one heart of the first group of periodic tasks or at least one core of the second group of synchronous tasks or by at least one other core that specific cores synchronous and periodic tasks by forming at least a third group.
- Executable entities that have a synchronous engine-type trigger may be grouped into one or more tasks and supported by one or more other specific processor units, i.e. one or more microprocessor cores, other than the processing unit (s) that process the periodic tasks.
- This distribution of software tasks makes it possible to make the execution of the periodic tasks, which then take place in a stable and deterministic order, much more regular, without being interrupted by synchronous tasks of the engine which are in general priority.
- the system is thus simpler to validate because the response time margins for the periodic tasks no longer depend on the operating conditions of the organ or organs to be controlled.
- the operating conditions include the engine speed. At full engine speed, which corresponds to a maximum computing load in the microprocessor of an engine control, the computing load is well distributed between the processing units which are in charge of the synchronous motor tasks and those which have in load periodic tasks.
- said at least a third group of tasks includes tasks that activate randomly. Given the non-predictive nature of randomly activated tasks, it will also be advantageous to dedicate at least one processing unit or a specific heart. In this way, the periodic or synchronous tasks are not disturbed by randomly activated tasks.
- the randomly activating tasks comprise tasks activated by undesired interruption of a function controlled and / or controlled by the microprocessor or at least one control and / or control member dedicated to the function and controlled by the microprocessor.
- Part of the tasks that activate randomly are similar to failures of the organ or organs controlled by the microprocessor.
- the first group of periodic tasks is split into at least two subgroups corresponding to tasks having different periods, each subgroup being processed by a different heart.
- a first of the subgroups corresponds to software tasks being performed at periods less than or equal to a first threshold
- the second of the subgroups corresponds to software tasks being performed at higher periods. at a second threshold, the first threshold being less than or equal to the second threshold.
- At least one executable entity is specific to at least one respective task of part of the tasks of the first and second groups.
- the current The invention thus proposes that a software module be decomposed more finely with respect to the current state of the art in order to contain executable entities that only one type of activation.
- a task monitor is used at least for each task of the first and second groups and is integrated in the heart of the specific microprocessor for said task.
- At least one of the synchronous tasks is relative to one or more synchronous functions of a motor controlled by a control command by rotating at a variable speed, these functions having a variable execution period depending on the speed of the engine. a given moment.
- the invention also relates to a multicore processor for a control command, characterized in that it implements such a method.
- the invention also relates to a control of a motor vehicle, characterized in that it comprises a processor as previously mentioned.
- FIG. 1 is a schematic representation of an example of multicore processor with n calculation units, this processor being able to implement the method according to the invention
- FIG. 2 is a schematic representation of an example of functional decomposition in function and sub-functions in a multi-core processor according to the state of the art
- FIG. 3 is a schematic representation of an exemplary composition of a software with m modules and executable entities in each module in a processor that can allow the implementation of the method according to the invention. It is to be borne in mind that the figures are given by way of examples and are not limiting of the invention. They constitute schematic representations of principle intended to facilitate the understanding of the invention.
- the invention relates to the organization of the task processing in a processor that implements different processing units, that is to say different cores of a multiple core processor. It proposes to architect the software to be able to distribute it on the various processing units, according to a favorable scenario to maximize the use of the processing units or cores and to obtain optimal response times.
- a multi-core processor 1 is characterized by the fact that it implements several processing units 1 .1, 1 .2 to 1 .p.
- a multi-core processor for motor control of a motor vehicle frequently used may comprise three processing units.
- This example will be used to illustrate the invention, but one could advantageously similarly use a processor with more processing units, such as a processor having six processing units or any other number greater than 3.
- processing units of a multi-core processor must be able to work independently without expecting each other. For this it is proceeded to put in parallel of the treatments.
- Figure 1 illustrates an example of a multiple core processor with p computing units as processing units.
- a functional architecture divides the functions into sub-functions according to needs of distribution of the work of design or management of the diversity of the options.
- Figure 2 shows an example of functional decomposition in function and sub-functions for a functional architecture that can be at two levels. It is then made a distinction between:
- FIG. 3 shows an example of a software architecture resulting from a functional design according to the state of the art existing but capable of implementing the method according to the present invention, the architecture comprising m modules and Executable entities in each module.
- modules in the remainder of the present description in the number of m, 3.1 to 3 m, which correspond to software components in the context of a system architecture, elementary execution entities of the software corresponding to portions of modules which are each activated by a particular mechanism, hereinafter referred to as executable entities in the remainder of the present description, to the number of R1 in the module 3.1 and to the number of Rm in the module 3. m.
- executable entities in the remainder of the present description, to the number of R1 in the module 3.1 and to the number of Rm in the module 3. m.
- functional system 2 corresponds to software 3
- functions 2.x correspond to modules 3.x and to elementary functions 2.x.
- a software task is a set of executable entities of the same type of trigger.
- a task monitor has the role of activating the various tasks as they occur.
- the present invention consists in designing a functional architecture of the software with an additional level of division of functions defined by the separation of executable entities 3.x.y by activation type. Thus, each function has only elementary functions of a type of activation.
- the invention relates to a control method implementing software tasks by a multi-core microprocessor comprising several cores as processing units working in parallel, these software tasks comprising so-called synchronous software tasks with variable period, so-called periodical software tasks with a fixed period of time, software tasks that are neither synchronous nor periodic.
- these tasks are grouped into at least one first group of periodic software tasks and a second group of synchronous tasks and the group of periodic tasks, on the one hand, and the group of synchronous tasks, on the other hand, are processed by at least one core of the microprocessor specific to them, that is to say by at least one different heart.
- Software tasks that are neither synchronous nor periodic are processed by said at least one core of the first group of periodic tasks or at least one core of the second group of synchronous tasks or by at least one other core than the specific cores of the synchronous tasks. and periodicals by forming at least a third group. As will be seen later, this second solution is preferred.
- An analysis of an engine control software shows that the majority of the computing load is divided between two large groups, namely synchronous tasks and periodic tasks. Synchronous engine tasks have no precedence relationship with periodic tasks at all. They can therefore be put in parallel with the periodic tasks.
- the synchronous software tasks have priority over the periodic software tasks.
- periodic software tasks are entrusted to the control-command, as soon as these periodic software tasks have started, they can restore control to the main program without having necessarily completed their execution.
- Randomly activated tasks may comprise mainly tasks activated by undesired interruption of a function controlled and / or controlled by the microprocessor or at least one control and / or control organ dedicated to the function and controlled by the microprocessor. These interrupts are frequently hardware interrupts. In the engine, these randomly activating software tasks have priority over synchronous software tasks.
- the present invention allows for example the following distribution which best balances the calculation load between the three hearts:
- - processing unit for the synchronous tasks of the engine - processing unit for the tasks under material interruption and the periodic fast tasks for example of period less than or equal to 5ms.
- the first group of periodic tasks can be split into at least two subgroups corresponding to software tasks taking place at different periods, each subgroup being processed by a different core of the microprocessor.
- the first of the subgroups can thus correspond to software tasks taking place at periods less than or equal to a first threshold Sp1, for example 5 ms while the second subgroup can correspond to software tasks being carried out at periods greater than a second threshold Sp2, for example 10ms, the first threshold Sp1 being less than or equal to the second threshold Sp2.
- At least one executable entity 3.x.y may be specific to at least one respective software task of a portion of the software tasks of the first and second groups.
- each software task can have at least one executable entity 3.x.y unless several software tasks are similar.
- the task monitor previously mentioned in the description of the state of the art, may be, in the context of the invention, specific at least for each software task of the first and second groups and may be integrated in the heart of the microprocessor specific for said task.
- the invention also relates to a multi-core processor 1 .1, 1 .2 to 1 .p for control control, characterized in that it implements such a method.
- the invention also relates to a control of a motor vehicle, characterized in that it comprises a processor as previously mentioned.
- the present invention will now be developed in the context of a control system for a motor vehicle, mainly an engine control that can also control other features present in the motor vehicle. This is a preferred application of the present invention but is not limiting.
- a very large part of the periodic tasks consists first of all of the software tasks with a period of 10 ms then with those of period of 5 ms. If enough processing units are available, it is advantageous to reserve a processing unit for the majority of the tasks at 10 ms and to put the tasks at 5 ms on another processing unit.
- the invention relates to a motor vehicle comprising at least one motor and such control control at least in charge of the operation of said at least one engine.
- the control command can also control a vehicle driving aid, as taken individually or in combination with an anti-lock system for wheels or ABS, a programmed electrostatic or ESP, an automatic gearbox or BVA, a power steering electric, without this being limiting.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Microcomputers (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| FR1560783A FR3043808B1 (fr) | 2015-11-12 | 2015-11-12 | Procede de controle commande de taches fonctionnelles par un microprocesseur multicoeurs |
| PCT/FR2016/052871 WO2017081391A1 (fr) | 2015-11-12 | 2016-11-07 | Procede de controle commande par un microprocesseur multicoeur |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| EP3374866A1 true EP3374866A1 (fr) | 2018-09-19 |
Family
ID=55300546
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| EP16809965.3A Withdrawn EP3374866A1 (fr) | 2015-11-12 | 2016-11-07 | Procede de controle commande par un microprocesseur multicoeur |
Country Status (4)
| Country | Link |
|---|---|
| EP (1) | EP3374866A1 (fr) |
| CN (1) | CN108351809A (fr) |
| FR (1) | FR3043808B1 (fr) |
| WO (1) | WO2017081391A1 (fr) |
Families Citing this family (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR3071334B1 (fr) | 2017-09-19 | 2019-08-30 | Psa Automobiles Sa | Procede pour assurer la stabilite des donnees d’un processeur multicoeur d’un vehicule automobile |
| FR3071332B1 (fr) * | 2017-09-19 | 2019-09-27 | Psa Automobiles Sa | Procede de gestion de taches par un processeur multicoeur d’un vehicule automobile |
| FR3090157B1 (fr) * | 2018-12-12 | 2020-11-20 | Continental Automotive France | Procédé de commande d’une unité de contrôle moteur à processeur multicœur |
| EP3671450A1 (fr) * | 2018-12-18 | 2020-06-24 | Aptiv Technologies Limited | Unités de commande électroniques virtuelles dans autosar |
| CN111427742B (zh) * | 2020-03-09 | 2023-11-03 | 创驱(上海)新能源科技有限公司 | 一种基于autosar架构的复杂驱动任务实时监控方法 |
| CN113704156B (zh) * | 2021-08-30 | 2022-09-06 | 寒武纪行歌(南京)科技有限公司 | 感知数据处理装置、板卡、系统及方法 |
| CN117951064A (zh) * | 2022-10-31 | 2024-04-30 | 华为技术有限公司 | 一种芯片系统和集合通信方法 |
Family Cites Families (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8683471B2 (en) * | 2008-10-02 | 2014-03-25 | Mindspeed Technologies, Inc. | Highly distributed parallel processing on multi-core device |
| DE102010053490A1 (de) * | 2010-12-04 | 2011-07-28 | Daimler AG, 70327 | Lenkrad für ein Kraftfahrzeug |
| EP2707814A4 (fr) * | 2011-05-11 | 2015-04-29 | Google Inc | Génération parallèle de sujets à partir de documents |
| CN103207782B (zh) * | 2013-03-27 | 2014-02-26 | 北京航空航天大学 | 基于multi-kernel MOS 的分区系统构建方法 |
| US9223627B2 (en) * | 2013-03-27 | 2015-12-29 | Nice-Systems Ltd. | Management of task allocation in a multi-core processing system |
| CN103823706B (zh) * | 2014-02-12 | 2018-02-06 | 浙江大学 | 一种基于RTLinux的被控对象模型模拟仿真实时调度方法 |
-
2015
- 2015-11-12 FR FR1560783A patent/FR3043808B1/fr active Active
-
2016
- 2016-11-07 EP EP16809965.3A patent/EP3374866A1/fr not_active Withdrawn
- 2016-11-07 CN CN201680065648.4A patent/CN108351809A/zh active Pending
- 2016-11-07 WO PCT/FR2016/052871 patent/WO2017081391A1/fr not_active Ceased
Also Published As
| Publication number | Publication date |
|---|---|
| FR3043808A1 (fr) | 2017-05-19 |
| FR3043808B1 (fr) | 2017-12-08 |
| WO2017081391A1 (fr) | 2017-05-18 |
| CN108351809A (zh) | 2018-07-31 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3374866A1 (fr) | Procede de controle commande par un microprocesseur multicoeur | |
| EP3286647A1 (fr) | Placement d'une tâche de calcul sur un processeur fonctionnellement asymetrique | |
| EP3238056B1 (fr) | Methode d'ordonnancement de taches au niveau des noeuds d'un cluster informatique, ordonnanceur de taches et cluster associes | |
| WO2014170569A1 (fr) | Procédé d'allocation temporelle de tâches permettant une récupération d'erreur deterministe en temps réel | |
| WO2013107819A1 (fr) | Procédé d'optimisation de traitement parallèle de données sur une plateforme matérielle. | |
| EP2342636A1 (fr) | Procédé de réalisation d'un appel d'une instance d'une fonction, dispositif, et programme d'ordinateur correspondant | |
| WO2010105889A1 (fr) | Unité d'allocation et de contrôle | |
| EP0637798A1 (fr) | Procédé d'analyse d'interblocage dans un système d'exploitation | |
| FR3062357A1 (fr) | Procede de surveillance d'un defaut de controle du groupe motopropulseur d’un vehicule | |
| FR3075414B1 (fr) | Procede de gestion d'une pluralite de taches par un calculateur automobile multicœur | |
| FR3056782A1 (fr) | Generation de codes applicatifs a partir d'une specification formelle | |
| Pan et al. | Parm: Efficient training of large sparsely-activated models with dedicated schedules | |
| EP2029911A1 (fr) | Procede et systeme de contrôle antivibratoire et antibruit pour groupe motopropulseur d'un vehicule. | |
| WO2020120690A1 (fr) | Procédé de commande d'une unité de contrôle moteur à processeur multicoeur | |
| FR3071334B1 (fr) | Procede pour assurer la stabilite des donnees d’un processeur multicoeur d’un vehicule automobile | |
| FR3077403A1 (fr) | Procede de conception d’une architecture de taches applicative d’une unite de controle electronique avec un ou des cœurs virtuels | |
| FR2926146A1 (fr) | Dispositif informatique a memoire reservee pour des applications prioritaires. | |
| FR3031822A1 (fr) | Telechargement de donnees sur un equipement distant | |
| FR3082338A1 (fr) | Procede de gestion d’une pluralite de taches par un calculateur automobile multicœur | |
| EP4104056A1 (fr) | Calculateur électronique, système électronique, procédé de surveillance de l'exécution d'une application et programme d'ordinateur associé | |
| FR2989528A1 (fr) | Systeme d'alimentation electrique | |
| CN109947232A (zh) | 用于管理悬挂式电子控制单元中系统存储器完整性的系统和方法 | |
| CA2778576C (fr) | Procede et dispositif de traitement de taches optimise pour un fws | |
| FR2658628A1 (fr) | Systeme informatique pour gerer l'execution en temps reel de taches selon des priorites et hierarchies predeterminees. | |
| FR3071332B1 (fr) | Procede de gestion de taches par un processeur multicoeur d’un vehicule automobile |
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: 20180410 |
|
| 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 |
|
| AX | Request for extension of the european patent |
Extension state: BA ME |
|
| DAV | Request for validation of the european patent (deleted) | ||
| DAX | Request for extension of the european patent (deleted) | ||
| 17Q | First examination report despatched |
Effective date: 20200424 |
|
| RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: PSA AUTOMOBILES SA |
|
| STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
| 18D | Application deemed to be withdrawn |
Effective date: 20200905 |