EP3685256A1 - Procede pour assurer la stabilite des donnees d'un processeur multicoeur d'un vehicule automobile - Google Patents
Procede pour assurer la stabilite des donnees d'un processeur multicoeur d'un vehicule automobileInfo
- Publication number
- EP3685256A1 EP3685256A1 EP18778959.9A EP18778959A EP3685256A1 EP 3685256 A1 EP3685256 A1 EP 3685256A1 EP 18778959 A EP18778959 A EP 18778959A EP 3685256 A1 EP3685256 A1 EP 3685256A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- task
- protected
- variable data
- variable
- consuming
- 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; CALCULATING OR 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/52—Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F9/526—Mutual exclusion algorithms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/313—Logic programming, e.g. PROLOG programming language
Definitions
- the invention relates, in general, calculator processors, in particular mounted within motor vehicles.
- the invention relates more specifically to the management of the data stability of a multicore processor, in particular integrated in a motor vehicle, by means of a method for assisting the design of a software program.
- a motor vehicle comprises different computers adapted to support functions receiving sensor data and / or controlling different organic elements of the vehicle.
- a calculator comprises at least one processor comprising at least one processing unit, also designated "heart".
- a processor comprising a single processing unit is referred to as a “single-core processor”.
- a heart makes it possible to implement functions that process the data received from sensors and generate instructions to actuators. The power of such a heart depends greatly on its frequency of operation given in Hz. Also, the power of a single-core processor is limited by the maximum frequency of the heart.
- the present invention finds a particular but nonlimiting application in the field of motor vehicles comprising computers having a so-called "open" system architecture, that is to say in it is possible to reuse functionalities according to a standard interface or in a so-called adaptable version of the system to which it is therefore possible to add or remove new functionalities during execution.
- Such an open system architecture may be an architecture according to the Autosar standard for a system designed to be integrated with a motor vehicle, the term Autosar being a contraction of the English name "AUTomotive Open System Architecture", as this is known to those skilled in the art.
- microprocessors 100 comprising several cores 101, 102, 103, including three cores as shown in Figure 1.
- Such a processor 100 is then designated "multicore processor". This makes it possible to increase the computing power of the microprocessor 100 by means of several cores 101, 102, 103 each having a frequency, for example equal to the heart frequency of a single-core processor. This thus makes it possible to increase the power of the processor.
- Such a processor 100 also includes a memory 104.
- the processing operations that are distributed over its different processing units must be able to run in parallel and, as a result, these processes must not have precedence relationships between each other.
- this document FR 3043808 proposes a partitioning of the functional tasks implemented by a multicore microprocessor configured so that said tasks are differentiated between a first group of periodic tasks and a second group of synchronous tasks, each task group being executed by at least one core of the microprocessor dedicated to it.
- the present invention relates to a protection device for ensuring the stability of a data, in addition to the method described in document FR 3043808. However, not all functions need the data they share to be stable.
- the present invention proposes a protection method to ensure the stability of at least one datum in a systematic way in the event of lack of knowledge of the stability requirements for this datum or, according to one embodiment, on a case-by-case basis when a need for stability is identified by the designer of functions that use this data multiple times.
- the combustion mode of a heat engine is a variable updated by an engine management function implemented as all the management tasks in a periodic task, for example having a period of 10 ms.
- the variable "engine combustion mode" is consumed by various elementary injection functions, namely pre-combustion injections and injections during combustion and post-combustion injections, which are implemented in a synchronous task of combustion.
- the synchronous task has priority over the periodic task period 10 ms because its period is greater than 10 ms at the highest engine speeds.
- this synchronous task is generally preemptive so as to ensure its processing without delay.
- the inputs of the synchronous task of the combustion are always stable because the synchronous task performs all the basic functions of injections without being interrupted.
- the variable "motor combustion mode" may change during the execution of the synchronous task, which potentially causes a malfunction in the synchronous task. absence of a protection device ensuring the stability of this data.
- variable data that had a stable value during the duration of a task in a single-core software architecture does not necessarily have a stable value in another multicore software architecture.
- this has no consequence because there is no functional need for stability of the variable data.
- this can cause a malfunction during a change of software architecture.
- variable data may not have been identified as being to be protected for stability, while it was or becomes so because of the new architecture or the arrival of the new software program part.
- variable data stability problem may arise when variable data is consumed by a consuming task external to the producing task and having a priority higher than that of said producing task. It should be noted, in fact, that when a production task takes precedence over a consuming task, the question of the protection of variable data is necessarily already taken into account in the previous conception of a mono-architecture. heart.
- variable data when designing a new multicore architecture from a single-core architecture in a context of preemptive tasks, particular attention is required when variable data is consumed by a consumer task external to the producing task and having a priority greater than or equal to that of said producing task.
- Such variable data in the pre-existing software program, may not have been identified as having to be protected from the point of view of stability, even if this need exists.
- the new software program changes the order of priority between tasks, for example, a data inconsistency may occur, whereas stability was implicitly ensured by the choice of priorities.
- the present invention aims to optimize the design of a software program to meet the need for stability of variable data by minimizing development efforts while optimizing the use of the capabilities of a microprocessor.
- the present invention aims a method for assisting the design of a software program, in the context described above, so as to ensure the stability of variable data by implementing a protection mechanism according to two approaches possible: a systematic approach and a differentiated approach.
- the systematic approach to protection concerns data that will be systematically protected, whether the need exists or not from a functional point of view.
- the differentiated approach makes it possible to protect data for which there is a need for protection previously identified by the functional designers.
- the systematic approach is advantageously applied to limit the study effort on a specific perimeter which will involve a limited number of data so as not to consume too much capacity of the microprocessor.
- the differentiated approach requires an exhaustive search of all needs, which limits the use of microprocessor capabilities.
- the present invention is particularly concerned with the case where a program or part of a program is intended to cooperate with a pre-existing program, with tasks executed in parallel, since problems of instability of variable data involving the pre-existing program may not have been identified before the design of the new software program.
- the present invention aims at a method of stability protection of at least one variable datum, for a program or part of a program comprising at least two tasks implemented by a multicore microprocessor, said method comprising: the determination of at least one variable datum to be protected systematically, said variable datum to be systematically protected consisting of a variable datum produced and consumed, respectively, by at least two tasks, executed in parallel on two different cores of the multicore microprocessor each core forming an independent processing unit, said at least two tasks each having a priority of execution and consisting of at least one task producing said variable data to be protected and at least one consuming task of said variable data to be protected, said a consuming task having an execution priority higher than that of the producing task, said consuming task realizing at least two accesses to the variable data to be protected during the execution of said consuming task, via the successive execution of one or more consuming functions, of rte said variable data to be protected is likely to have evolved between said at least two accesses, the implementation of a protection function
- said protection function consists of a local copy function, in the consuming task, of the value of said variable data item to be protected at the beginning of the execution of said consuming task.
- said producer task consists of a periodic task.
- said consuming task consists of a periodic task.
- said consuming task is a synchronous task intended to achieve at least two successive accesses to the variable data to be protected during an execution of said synchronous task.
- the method comprises the protection in stability of a variable defined as being to be protected in a differentiated manner, said variable variable to be protected differentially being produced and consumed, respectively, by at least two tasks, performed in parallel on two different cores of the multicore microprocessor, said at least two tasks having any execution priority and consisting of at least a second task producing said variable data to protect and at least a second task twice consuming said data variable to be protected, the method comprising the implementation of a protection function of said variable data to be protected in a differentiated manner, at the beginning of the execution of said second consuming task, only if said variable data item is defined as data variable to be protected in a differentiated way.
- said protection function consists of a local copy function, in the second consuming task, of said variable data item.
- said second producing task consists of a periodic task.
- said second consuming task consists of a periodic task.
- said second consuming task is a synchronous task intended to achieve at least two successive accesses to the variable data to be protected during an execution of said synchronous task.
- FIG. 1 a diagram of a single-chip microprocessor
- FIG. 2 a diagram of an exemplary multi-core microprocessor architecture
- FIG. 3 a diagram highlighting an example of variable data to be protected in a multicore context with preemptive scheduling
- FIG. 4 a diagram showing an exemplary implementation of a basic function for protecting a variable data item to be protected.
- the described embodiments focus more particularly on an implementation of the processor according to the invention within a motor vehicle.
- any implementation in a different context, in particular in any type of vehicle, is also covered by the present invention.
- a motor vehicle (not shown) comprises a chassis resting on a taxiway by wheels. To allow the movement of the vehicle on the driving lane, the vehicle further comprises a powertrain adapted to drive at least a portion of the wheels in rotation.
- the powertrain (not shown) comprises at least one internal combustion engine and / or an electric drive system.
- the vehicle further comprises at least one control computer.
- a control computer allows the execution of various software functions control and control of the various organic elements of the vehicle, such as propulsion group engines, the gearbox, etc..
- the control computer comprises in this case a multicore processor 1 as shown in Figure 2, comprising a plurality of cores, including two, three, four, five cores, etc..
- Multicore processor 1 comprises two partitions 10, 20, including a first control partition 10 of a first group of tasks and a second control partition 20 of a second group of tasks.
- Each partition 10, 20 comprises at least one core 1 1, 12, 21.
- the first partition 10 comprises 2 cores 11, 12 and the second partition 20 comprises a core 21.
- the number of cores per partition 10, 20 could be different.
- Each partition 10, 20 further comprises a storage space 13, 23 specific to each partition 10, 20.
- a software using the heart 21 of the second partition 20 will be stored in the storage space 23 of the second partition 20. This allows to update separately the software using the first partition 10 software using the second score 20.
- the tasks belonging to the first group or the second group may each have a priority of execution.
- the present invention applies whether protection is provided according to a systematic or differentiated approach and regardless of the type of task scheduling determined by a sequencer or by the use of a task monitor or a task monitor. other methods, and applies in particular in the context of a "preemptive type scheduling", the scheduling allowing the main tasks, for example relating to safety or engine control in a motor vehicle, to have the Access priority to data and hardware resources when multiple tasks are supposed to be executed simultaneously.
- a task having a higher priority will thus have priority access to the data with respect to a task having a lower priority.
- periodic tasks synchronous tasks the latter relating, in particular, to the engine control.
- periodic tasks may have execution periods greater than 10 ms or less than 5 ms, for example.
- periodic tasks having a short period typically less than 5 ms
- periodic tasks having a longer period typically greater than 10 ms
- synchronous tasks relating to motor control always have a higher priority than any periodic task.
- a first group of tasks may be composed of periodic tasks having a period of less than or equal to 5 ms
- a second group of tasks may consist of periodic tasks with a period greater than or equal to 10 ms
- a third group of tasks may be composed of synchronous tasks relating to the motor control.
- the present invention proposes to highlight, on the one hand, the variable data produced by consuming tasks, periodic of period greater than or equal to 10 ms per example, consumed several times in periodic consumer tasks.
- the periodic generating tasks of period less than or equal to 5 ms, for example, consumed several times within a synchronous consuming task having relating to engine control.
- variable data consumed by synchronous consuming tasks relating to the motor control it is expected that these variable data are all identified as being to be protected to the extent that it can be very difficult. predicting whether or not a synchronous consuming task relating to the motor control will access variable data more or less over a period of time less than the period of the task generating said variable data item.
- the method for designing a software program makes it possible to limit the amount of work to be performed to identify the requirements for variable data stability by limiting the examination to a list of variable data produced by periodic tasks consumed several times per period by tasks with a higher priority. Indeed, in the case where the producing tasks have a higher priority than the consuming tasks, the need to provide protection of the variable data is necessarily anticipated, regardless of the present method.
- variable data when it is not possible to ensure that variable data must be protected by carrying out the analysis above, it will be considered to be protected.
- the present invention therefore aims to ensure the stability of the variable data to be protected in a software program, in the context of implementation of parallel tasks by a multicore microprocessor, as described above.
- the present invention makes it possible to implement a function systematic protection only for said variable data to be protected.
- FIG. 2 illustrates a case in which variable data is identified as being to be protected.
- the microprocessor P comprises two cores 1, 2, also called processing units.
- the producing task A is executed several times in the processing unit 1, the producing task A is executed several times in the processing unit 1, the producing task A is executed several times in the processing unit 1, the producing task A is executed several times in the processing unit 1, the producing task A is executed several times in the processing unit 1, the producing task A is executed several times in the processing unit 1, the producing task A is executed several times in the processing unit 1, the producing task A is executed several times in the processing unit 1, the producing task A is executed several times in
- the producing task A produces a data item D1 updated regularly each time the production task A is executed, ie at the times t0, t1, t2, etc.
- the consuming task B is executed once in
- the consuming task B has a higher priority than the producing task A, so that, in a single-core context, the task A was blocked and the data D1 was stable for the task B.
- tasks A and B are performed simultaneously in parallel on two different cores.
- the functions F1 and F2 of the consuming task B, which consume the data D1 do not see the same value of said variable data D1 within one and the same execution of the consuming task B: the variable data D1 is therefore not stable.
- FIG. 3 and the description below illustrate a non-limiting exemplary embodiment of such a protection function.
- FIG. 3 thus shows the presence of an elementary protection function F0 executed at the beginning of each execution of the consuming task B.
- the elementary protection function F0 executed at the beginning of the consuming task B, performs a local copy within said consuming task B of the variable data D1 to be protected, and more generally of all the data. variables to be protected consumed by one or more functions of said consuming task B.
- the consuming function or functions of the variable data D1 in the same way as the consuming task B, then uses the local copy produced by the elementary protection function F0, so that said variable data to protect, from the point of view of the consuming task B, has a stable value.
- An advantage of this proposed protection method lies in the fact that it is generally possible not to rename the data D1 in the consumer task B, which makes it possible to avoid having to retouch the possibly existing code of the functions F1. and F2.
- the only operation to be performed consists in informing the new connections between the functions F1, F2 and the producing tasks A and consumer B, by means of a link file, independently of the code of each function F1, F2.
- the method according to the invention remains valid, but requires modifying all the consuming functions of the data D1 to indicate the new name replacing D1.
- said elementary protection function F0 is implemented so as to comply with the Autosar standard by means of a protection component belonging to a synchronous task relating to the motor control, by priority definition before any periodic task, so that said elementary protection function F0 is called before any other function of the consuming task B.
- the present invention involves only a minimum increase in material resources consumed.
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Microcomputers (AREA)
- Debugging And Monitoring (AREA)
Abstract
Description
Claims
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1758645A FR3071334B1 (fr) | 2017-09-19 | 2017-09-19 | Procede pour assurer la stabilite des donnees d’un processeur multicoeur d’un vehicule automobile |
PCT/FR2018/052147 WO2019058042A1 (fr) | 2017-09-19 | 2018-09-03 | Procede pour assurer la stabilite des donnees d'un processeur multicoeur d'un vehicule automobile |
Publications (1)
Publication Number | Publication Date |
---|---|
EP3685256A1 true EP3685256A1 (fr) | 2020-07-29 |
Family
ID=60182770
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP18778959.9A Withdrawn EP3685256A1 (fr) | 2017-09-19 | 2018-09-03 | Procede pour assurer la stabilite des donnees d'un processeur multicoeur d'un vehicule automobile |
Country Status (5)
Country | Link |
---|---|
EP (1) | EP3685256A1 (fr) |
CN (1) | CN111108471A (fr) |
FR (1) | FR3071334B1 (fr) |
MA (1) | MA50262A (fr) |
WO (1) | WO2019058042A1 (fr) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR3101460B1 (fr) * | 2019-09-27 | 2021-09-03 | Continental Automotive | Procédé et calculateur de gestion d’échanges de données entre une pluralité de tâches |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE10056046A1 (de) * | 2000-11-11 | 2002-05-23 | Bosch Gmbh Robert | Verfahren zur Realisierung einer Intertask-Kommunikation in einem Multitasking-Betriebssystem |
DE102004017050A1 (de) * | 2004-04-07 | 2005-10-27 | Robert Bosch Gmbh | Datenkonsistenz in Datenverarbeitungsanlagen |
CN103080903B (zh) * | 2010-08-27 | 2016-07-06 | 富士通株式会社 | 调度器、多核处理器系统以及调度方法 |
DE102013202774A1 (de) * | 2013-02-20 | 2014-08-21 | Robert Bosch Gmbh | Vorrichtung, Verfahren und System zum Steuern eines Prozessors |
WO2015086357A1 (fr) * | 2013-12-09 | 2015-06-18 | Dspace Digital Signal Processing And Control Engineering Gmbh | Procédé pour influer sur un programme de commande d'un appareil de commande |
DE102014103139B4 (de) * | 2014-03-10 | 2017-08-10 | Denso Automotive Deutschland Gmbh | Parallelisierte Ausführung von Single-Core Steuerungssoftware auf Multi-Core Fahrzeugsteuergeräten |
DE102014019531A1 (de) * | 2014-12-23 | 2016-06-23 | Liebherr-Aerospace Lindenberg Gmbh | Verfahren zum Betrieb einer Steuerungskomponente für ein Luftfahrzeug sowie Steuerungskomponente |
FR3043808B1 (fr) * | 2015-11-12 | 2017-12-08 | Peugeot Citroen Automobiles Sa | Procede de controle commande de taches fonctionnelles par un microprocesseur multicoeurs |
-
2017
- 2017-09-19 FR FR1758645A patent/FR3071334B1/fr active Active
-
2018
- 2018-09-03 CN CN201880061027.8A patent/CN111108471A/zh active Pending
- 2018-09-03 WO PCT/FR2018/052147 patent/WO2019058042A1/fr unknown
- 2018-09-03 EP EP18778959.9A patent/EP3685256A1/fr not_active Withdrawn
- 2018-09-03 MA MA050262A patent/MA50262A/fr unknown
Also Published As
Publication number | Publication date |
---|---|
CN111108471A (zh) | 2020-05-05 |
WO2019058042A1 (fr) | 2019-03-28 |
FR3071334B1 (fr) | 2019-08-30 |
MA50262A (fr) | 2020-07-29 |
FR3071334A1 (fr) | 2019-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3238056B1 (fr) | Methode d'ordonnancement de taches au niveau des noeuds d'un cluster informatique, ordonnanceur de taches et cluster associes | |
FR2771193A1 (fr) | Appareil de commande d'un systeme et procede de mise en oeuvre d'un tel appareil de commande | |
FR3043808A1 (fr) | Procede de controle commande de taches fonctionnelles par un microprocesseur multicoeurs | |
EP0637798B1 (fr) | Procédé d'analyse d'interblocage dans un système d'exploitation | |
FR2972821A1 (fr) | Procede et dispositif d'installation/desinstallation de modules logiciels, avec resolution centralisee de contraintes, dans des equipements d'aeronef | |
FR3071334B1 (fr) | Procede pour assurer la stabilite des donnees d’un processeur multicoeur d’un vehicule automobile | |
CA2886466C (fr) | Systeme multicoeur de traitement de donnees a dispositifs d'entree/sortie locaux et globaux et interface graphique comportant un tel systeme de traitement de donnees | |
FR3075414B1 (fr) | Procede de gestion d'une pluralite de taches par un calculateur automobile multicœur | |
WO2013171227A1 (fr) | Procede de gestion d'une execution de taches dans un systeme informatique | |
EP2856323B1 (fr) | Procédé, dispositif et programme d'ordinateur de contrôle dynamique de distances d'accès mémoire dans un système de type numa | |
WO2012110445A1 (fr) | Dispositif pour accélérer l'exécution d'une simulation system c | |
WO2016034447A1 (fr) | Système embarqué mettant en oeuvre des fonctions avioniques critiques | |
EP3663953A1 (fr) | Procédé et dispositif de contrôle d'accès à une ressource partagée entre tâches logicielles exécutées dans un contexte applicatif prédéterminé | |
EP2545449B1 (fr) | Procédé de configuration d'un système informatique, programme d'ordinateur et système informatique correspondants | |
EP2756398B1 (fr) | Procede, dispositif et programme d'ordinateur pour allouer dynamiquement des ressources d'un cluster a l'execution de processus d'une application | |
WO2018001956A1 (fr) | Architecture de calcul notamment pour un systeme embarque aeronautique | |
WO2019145632A1 (fr) | Procédé de conception d'une architecture de tâches applicative d'une unité de contrôle électronique avec un ou des coeurs virtuels | |
WO2021058773A1 (fr) | Procédé et calculateur de gestion d'échanges de données entre une pluralité de tâches | |
WO2010109609A1 (fr) | Dispositif de traitement et dispositif de commande de moteur de véhicule | |
EP3131005A1 (fr) | Equipement électronique ferroviaire comprenant un programme de démarrage comportant une ou plusieurs partitions de démarrage, véhicule ferroviaire et système ferroviaire associés | |
WO2011144847A1 (fr) | Procede d'optimisation de gestion de veille d'un microprocesseur permettant la mise en oeuvre de plusieurs coeurs logiques et programme d'ordinateur mettant en oeuvre un tel procede | |
WO2024160750A1 (fr) | Procede de gestion de donnees partagees | |
FR2658628A1 (fr) | Systeme informatique pour gerer l'execution en temps reel de taches selon des priorites et hierarchies predeterminees. | |
WO2016116574A1 (fr) | Procede de gestion d'une execution de taches et processeur pour mettre en œuvre ce procede | |
FR2829848A1 (fr) | Procede de gestion d'acces a des ressources partagees dans un systeme embarque et systeme embarque pour la mise en oeuvre d'un tel procede |
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 |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: REQUEST FOR EXAMINATION WAS MADE |
|
17P | Request for examination filed |
Effective date: 20200217 |
|
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 |
|
RAP1 | Party data changed (applicant data changed or rights of an application transferred) |
Owner name: PSA AUTOMOBILES SA |
|
DAX | Request for extension of the european patent (deleted) | ||
RAV | Requested validation state of the european patent: fee paid |
Extension state: MA Effective date: 20200217 |
|
18D | Application deemed to be withdrawn |
Effective date: 20201110 |