EP3827368A1 - Tool and method for designing and validating a data flow system by a formal model - Google Patents

Tool and method for designing and validating a data flow system by a formal model

Info

Publication number
EP3827368A1
EP3827368A1 EP19774160.6A EP19774160A EP3827368A1 EP 3827368 A1 EP3827368 A1 EP 3827368A1 EP 19774160 A EP19774160 A EP 19774160A EP 3827368 A1 EP3827368 A1 EP 3827368A1
Authority
EP
European Patent Office
Prior art keywords
actor
instance
data
actors
implementation
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.)
Pending
Application number
EP19774160.6A
Other languages
German (de)
French (fr)
Inventor
Paul DUBRULLE
Stéphane LOUISE
Christophe GASTON
Nikolay KOSMATOV
Mathieu JAN
Arnault LAPITRE
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Original Assignee
Commissariat a lEnergie Atomique CEA
Commissariat a lEnergie Atomique et aux Energies Alternatives CEA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Commissariat a lEnergie Atomique CEA, Commissariat a lEnergie Atomique et aux Energies Alternatives CEA filed Critical Commissariat a lEnergie Atomique CEA
Publication of EP3827368A1 publication Critical patent/EP3827368A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/10Geometric CAD
    • G06F30/15Vehicle, aircraft or watercraft design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/34Circuit design for reconfigurable circuits, e.g. field programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • G06F30/347Physical level, e.g. placement or routing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/16Matrix or vector computation, e.g. matrix-matrix or matrix-vector multiplication, matrix factorization
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F30/00Computer-aided design [CAD]
    • G06F30/30Circuit design
    • G06F30/32Circuit design at the digital level
    • G06F30/33Design verification, e.g. functional simulation or model checking
    • G06F30/3308Design verification, e.g. functional simulation or model checking using simulation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/04Constraint-based CAD
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2111/00Details relating to CAD techniques
    • G06F2111/10Numerical modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2113/00Details relating to the application field
    • G06F2113/02Data centres
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06313Resource planning in a project environment

Definitions

  • the present invention relates to a tool for designing and validating a system comprising a set of actors interconnected with one another by unidirectional communication channels.
  • the present invention applies to systems commonly called “data flow systems” comprising a set of software and / or hardware actors exchanging quantifiable information between them, through unidirectional communication channels. Each actor waits to have received a statically specified amount of data on its input channels in order to consume this amount of data, to process this data, and to produce a statically specified amount of data on its exit channels for new players. This behavior is repeated indefinitely by each of the actors.
  • An example of such a data flow system is a real-time on-board system which can be used in an autonomous vehicle or with a driver.
  • the object of the present invention is to provide a tool and a method for designing and validating a data flow system overcoming the aforementioned drawbacks, in particular by taking into account the complete set of behavioral properties of the system, thus allowing a careful and precise design and validation of the system whatever the reconfiguration while optimizing the computing and memory resources of the system.
  • the present invention relates to a design and validation tool implemented by computer of a data flow system modeling a device fitted with equipment, said data flow system comprising a set of actors ( a ,, a j ) software and / or hardware interconnected by unidirectional communication channels (c i; q), said tool comprising: - a modeling interface (11) configured to generate an instance of said system by specifying so formal a real-time and reconfigurable data stream, the reconfiguration of the data stream being carried out dynamically by the propagation of reconfiguration data from one actor to another through the communication channels,
  • an analysis module (13) configured to prove a predetermined set of behavioral properties of said system by a static analysis of said instance comprising the construction of a matrix defining the state of activation of the actors and the state of the channels of communication and the determination of a vector of natural integers whose product with said matrix is zero, the determination of said vector confirming the feasibility of the data flow system independently of the allocated resources, a refinement interface (15) adapted to allocate resources to said instance respecting said predetermined set of behavioral properties, thereby establishing an instance called configured instance, and
  • a compliance test module (17) comprising unit test tools (171) and integration tools (173), the unit test tool (171) simulating the production of data on input channels of the implementation of an actor, and verifying that the quantities consumed and produced by this implementation correspond to those specified for the actor implemented, the integration test tool (173) constructing the set of traces which correspond to the expected behavior of the configured instance and ensuring that the trace supplied belongs to this valid set, thus verifying the conformity of the behavior of an implementation of said system with respect to said configured instance.
  • This embodiment by a formal model makes it possible to automate a meticulous and precise design and validation of a data flow system whatever the reconfiguration and without the need to have centralized control. More particularly, the reconfiguration in a distributed manner according to the invention makes it possible to take into account the complete set of behavioral properties while optimizing the computation and memory resources of the system thus minimizing the computation time and the errors, and facilitates the processes. certification.
  • the system instance includes rational rates of consumption and data transmission. This gives the possibility of taking into account actors who must operate at different frequencies without any loss of communication data between these actors. Thus, the verification of the feasibility of lossless communication, and if necessary the scheduling of operations and the synchronization between tasks, can be easily carried out whatever the constraints on the frequencies associated with the actors.
  • the system instance includes: - maximum frequency constraints for certain players,
  • the system instance includes:
  • each mode actor being configured to dynamically choose for each of its activations one and only one mode from said set of modes.
  • the system instance also includes, for each generic actor, a corresponding set of execution modes in which it executes as well as an implicit set of all the other modes in which it passes, an execution mode being able to be either a nominal mode common to the whole system, or a specific mode chosen by a mode actor.
  • the system instance further comprises an implicit set of feedback channels, a feedback channel being a channel connecting a generic actor producing data to a generic actor consuming data, each running in at least one of the chosen modes. by the same fashion actor, and in that there is a path without repetition starting from the same fashion actor and ending with the generic producer actor passing by the generic consumer actor.
  • the feedback channels allow an actor in a processing chain to send the result to a previous actor in the chain so that this previous actor can do a new processing taking into account the old result.
  • the identification of these feedback channels thus makes it possible to describe iterative processes in the system without introducing indeterminate modes due to the propagation of modes.
  • system instance further comprises an initial state of the system composed by channel of a rational number and a sequence of modes of length equal to a lower rounding of said rational number, and by generic actor of its initial mode.
  • the predetermined set of behavioral properties includes first, second, third and fourth following properties:
  • the first property verifies that the resources necessary for the implementation of communications between actors without loss of data are limited for a periodic execution of the specified system
  • the second property verifies that the frequency and / or period constraints can be respected without calling into question the first property
  • - the third property verifies the non-existence of inter-blocking for any number of activations of the actors
  • the fourth property checks the non-existence of an unknown state in the system for all the specified reconfigurations and none of the other properties being called into question by dynamic configuration changes.
  • the tool according to the present invention ensures that the system is in a known and consistent state for all the reconfigurations and for all the constraints of frequency, period and dimensioning of resources. .
  • the present invention expresses the reconfiguration so as to be able to prove exhaustively that the four properties are verified.
  • said system is a real-time embedded system of equipment, configured to receive measurements specific to said equipment and to deliver results actuating operations for the proper functioning of said equipment.
  • the present invention also relates to a real-time embedded system of equipment, comprising a set of software and / or hardware actors interconnected with one another by unidirectional communication channels, said embedded system being designed and validated by the tool. according to any one of the preceding characteristics, said on-board system being configured to receive measurements specific to said equipment and its environment, and to deliver results actuating operations for the proper functioning of said equipment.
  • said equipment is an autonomous or non-autonomous vehicle of land, rail, aerospace or naval type.
  • the present invention also relates to a system of a real-time industrial process, designed and validated by the tool according to any of the preceding characteristics, said system being configured for the industrial production of objects according to specific flow constraints and according to a reconfigurable process.
  • the present invention also relates to a design and validation method implemented by computer of a data flow system modeling an on-board device of an item of equipment, said data flow system comprising a set of interconnected software and / or hardware actors. between them by unidirectional communication channels, said method using a computer to implement the following steps:
  • the present invention also relates to a non-transient computer storage medium tangibly storing code instructions configured for the design and validation of a data flow system modeling an on-board device of an item of equipment, said data flow system comprising a set of software and / or hardware actors interconnected with one another by unidirectional communication channels, characterized in that said code instructions can be executed by a processor to implement the following steps:
  • Fig.l schematically illustrates the hardware means used in the design and validation tool of a data flow system, according to one embodiment of the invention
  • Fig.2A-2C show examples of data flows not respecting the behavioral properties as defined according to the present invention.
  • Fig.3 schematically illustrates a method of designing and validating a data flow system, according to an embodiment of the invention.
  • Fig.4 illustrates schematically an example of a data flow system modeled by a graph according to an embodiment of the invention.
  • the invention is based on a formal model to describe real-time constraints and dynamic reconfigurations in a data flow system, allowing the verification of a set of properties necessary for the proper functioning of the system.
  • the result of this static analysis coupled with configuration data for a system implementation allows automatic allocation of the resources necessary for its execution, as long as such allocation is feasible.
  • a formal compliance relationship and a test environment allow obtaining a verdict on the conformity of such an implementation with the initially specified model.
  • This invention can be applied to any data flow system comprising independent actors exchanging quantifiable information with one another, through unidirectional communication channels.
  • the actors can be software (for example, applications) and / or hardware (for example, sensors, cameras, probes, microprocessors, etc.) entities.
  • Each actor is configured to wait to have received a statically specified quantity of data on its input channels in order to consume this quantity of data, to perform (or not) a processing of this data, and to produce a quantity statically specified data on its output channels to new players, and each repeating this behavior indefinitely.
  • the consumption / treatment / emission process is commonly called activation.
  • Each activation takes place according to predefined reconfigurations, and for a given reconfiguration, the activation will either consume / process / produce (we say then execute), or do nothing (we say then pass), and the choice to change configuration is unpredictable.
  • Each actor is activated according to the predefined reconfigurations in time windows (called real-time) with possibly frequency constraints (or in an equivalent manner with period constraints).
  • the invention applies to a system embedded in equipment where compliance with the expected behavior is considered to be very important for the safety and proper functioning of the equipment provided with such a system.
  • Fig. 1 schematically illustrates the hardware means used in the design and validation tool of a data flow system, according to one embodiment of the invention.
  • the tool 1 for designing and validating a system 3 data flows implements hardware means comprising an information processing machine such as a computer or computer 5 comprising a microprocessor 7 and memories 9.
  • the microprocessor 7 is configured to execute one or more computer programs comprising program code instructions, stored in the memories 9 of the computer 5 and designed to implement the system design and validation tool 3 stream data.
  • the design and validation tool 1 comprises a modeling interface 11, an analysis module 13, a refinement interface 15, and a conformity test module 17.
  • the modeling interface 11 is graphical software which is configured to interact with software describing the system 3 data flow.
  • the graphics software and the software describing the system 3 are adapted to be executed by the computer 5.
  • the modeling interface 11 is configured to generate an instance of the system 3 by formally specifying a stream of real-time and reconfigurable data.
  • instance we mean the specification of the data flow described in the modeling interface 11.
  • the modeling interface 11 is thus used to specify the data flow based on a formal calculation model, independently of any implementation of this data flow.
  • the reconfiguration of the data stream is carried out dynamically by the propagation of reconfiguration data from one actor a, to another a j through communication channels q. This way of expressing the reconfiguration makes it possible to exhaustively check all the behavioral properties (described below) of the system 3.
  • the analysis module 13 includes verification tools 131 which are configured to prove a predetermined set of behavioral properties of the system by a static analysis of the instance.
  • Static analysis includes the construction of a state matrix defining the state of activation of the actors and the state of the communication channels and the determination of a vector of natural integers whose product with said matrix is zero . The existence of such a vector confirms the feasibility of the data flow system regardless of the resources allocated. This analysis will be described in more detail later in the description.
  • the refinement interface 15 is configured to allocate sufficient resources to the instance respecting the predetermined set of behavioral properties and thus establishing an instance called in the following “configured instance”. Resource allocation is carried out in such a way that an implementation of system 3 respects the configured instance.
  • the refinement interface 15 is thus used to specify additional time constraints for the instance. It will be noted that the refinement interface 15 can specify several instances configured for the same instance.
  • a conversion tool 19 adapts the result of the static analysis of an instance to provide inputs allowing the allocation of resources for a configured instance.
  • the compliance test module 17 is configured to verify the compliance of the behavior of an implementation of the data flow system 3 with the configured instance. More particularly, for an actor a, of a configured instance, we call an “implementation of this actor” any concrete entity which achieves the behavior specified for this actor a ,. Note that there can be several implementations for the same actor. In addition, for a configured instance, an “implementation of this configured instance” is called any collection of implementations of the actors composing the instance, associated with the concrete means enabling them to carry out the behavior specified for this instance. Note also that there can be several implementations for the same configured instance. Furthermore, for an implementation of a configured instance, a sequence of significant events that occurred during the execution of this implementation is called “trace”.
  • the compliance test module 17 is composed of a unit test tool 171 and an integration test tool 173.
  • the unit test tool 171 simulates the production of data on the input channels of the implementation of an actor a i; and verifies that the quantities consumed and produced by this implementation correspond to those specified for the actor implemented, while respecting all the constraints.
  • the integration test tool 173 constructs the set of traces which correspond to the expected behavior of the configured instance and ensures that the trace provided belongs to this valid set.
  • the instance of the system 3 comprises rational rates of consumption and transmission of data.
  • the instance includes a rational or whole number of data produced or consumed by each actor a, and for each of its input and output channels c.
  • This embodiment makes it possible to integrate frequency constraints at the level of the formal model and in the verification of the properties and, consequently, allows two actors a, and a j communicating with each other via a channel c, to operate according to frequencies different without any loss of communication data between these two actors (see the example in Fig. 4).
  • the design and validation tool 1 guarantees the feasibility and consistency of the data flow system 3 by allowing verification of the predetermined set of behavioral properties covering all the reconfigurations and all the frequency and period constraints. and sizing of resources.
  • This predetermined set of behavioral properties has the following four properties.
  • the first PI property verifies that the resources necessary for the implementation of communications between actors without loss of data are limited for periodic execution of the specified system. This allows for example to size the memories necessary to store data without loss.
  • Fig. 2A shows an example of a data flow not respecting the first property.
  • This example shows a system comprising first and second actors ai and a 2 exchanging data with each other through the channels Ci and c 2 .
  • the first actor ai specifies that it produces and consumes data at each activation.
  • the second actor has 2 specifies that he produces two data and consumes one on each activation.
  • the resources necessary to store the data on the output channel c 2 of the second actor a 2 cannot be limited for an indefinite number of activations of these actors. Thus, in this situation the first PI property is not checked.
  • the second property P2 verifies that the frequency and / or period constraints can be respected without the first property being called into question.
  • Fig. 2B shows an example of a data flow not respecting the second property.
  • This example also shows a system with two actors ai and a 2 , the first actor producing a data by activation which will be consumed by each activation of the second actor.
  • the frequency constraints are such that the first actor ai must activate at 100Hz and the second has 2 at 10Hz.
  • the resources necessary to store data on the channel Ci connecting the two actors ai and a 2 cannot be limited for an indefinite number of activations, although they are limited if the frequency constraints are removed.
  • the third property P3 verifies the non-existence of inter-blocking for any number of activations of the actors. Interlock can result in a situation where a set of actors exchange data cyclically. Using the example of FIG. 2A, in the absence of data initially present on one of the two channels ci and c 2 , none of the actors ai and a 2 can activate. Thus, the third property P3 makes it possible to take into account the case of cyclic data flow.
  • the fourth property P4 checks the non-existence of an unknown state in the system for all the specified reconfigurations, there is no actor in the system which does not execute in any of the specified reconfigurations, and none of the other properties not being challenged by dynamic configuration changes.
  • Fig. 2C shows an example of a data stream not respecting the fourth property.
  • This example shows a system with three actors a 1; a 2 and a 3 and according to two possible reconfigurations.
  • a first actor has produced a data by activation, which is consumed by each activation of a second actor a 2
  • this second actor has 2 produced himself a data by activation, consumed by each activation of a third actor has 3 .
  • In a first configuration only the first and second actors at 3 and a 2 execute and the third actor at 3 passes.
  • R 2 only the second and third actors a 2 and a 3 are executed and the first actor has 3 passes.
  • the reconfiguration mode chosen is always the first configuration Ri, then the resources necessary to store the data on the channel c 2 between the second actor a 2 and the third actor a 3 are not bounded for a number indefinite activations. Conversely, there is an interlock if the second configuration R 2 is always chosen. Finally, if we modify the example such that any of these actors has 3 , a 2 and a 3 does not activate in any configuration, we end up with similar situations. So the fourth property P4 allows to verify the consistency of the system for all the reconfiguration modes specified, ensuring that there is no contradictory information.
  • Fig. 3 schematically illustrates a method of designing and validating a data flow system, according to an embodiment of the invention.
  • steps E22, E41-E43, and E52 denote the possibility of applying this step several times for different configurations of the same instance, or different implementations of the same configured instance, or different traces of the same implementation.
  • Step E1 concerns the generation of an instance by specifying a system 3 real-time reconfigurable data flow in order to be able to prove all of the four behavioral properties P1-P4 of this system 3 defined above. .
  • the instance of system 3 includes all the elements defining the formalism of the calculation model. These elements include all of the actors a ,, a j including the so-called generic actors who process data and the so-called fashion actors who are in charge of signaling reconfigurations and / or of processing data; the set of channels c i; q connecting these actors to each other; the number of data produced or consumed per actor for each of its input or output channels, with the possibility for a channel to have only one of these numbers which is a rational number; the set of reconfiguration modes; maximum frequency constraints for certain generic or fashion players; minimum frequency constraints for certain generic or fashion players; and the initial state of the system.
  • Step E21 concerns the verification by a static analysis of the set of behavioral properties P1-P4 for this instance. This allows the feasibility of the system to be verified independently of the resources allocated.
  • Step E22 relates to obtaining time constraints for this instance.
  • Step E3 concerns the construction of the scheduling constraints and the valid traces (i.e. set of valid states) for the instance configured in the previous steps. This step makes it possible to define the order in which the actors must make their operations according to the data and the time constraints.
  • step E41 resources are allocated to respect the scheduling constraints of the configured instance.
  • step E42 an implementation of an actor of the configured instance is obtained.
  • step E43 an implementation of the configured instance is obtained.
  • step E51 the conformity of the implementation of step E42 is tested.
  • step E52 a trace of the implementation of step E43 is obtained.
  • step E6 the conformity of the trace obtained in step E43 is tested, thus making it possible to verify the conformity of the implementation with the specified model.
  • the method according to FIG. 3 thus covers the specification of a system 3 real-time reconfigurable data flow, the configuration of a resource allocation and the verification of the conformity of the behavior of a system implementation, taking into account the four properties P1- P4 above as a whole.
  • Fig. 4 schematically illustrates an example of a data flow system modeled by a graph according to an embodiment of the invention.
  • the graph models a data flow with frequency constraints, different reconfiguration modes and initial data available for initial consumption.
  • the circles aa 5 represent so-called generic actors who carry out data processing. These generic actors ai-a 5 are thus adapted to consume data, make calculations to transform the data and produce results.
  • the triangles a 6 and a 7 represent actors called "clock" at 6 or "deadline” at 7 which produce and consume data with frequency constraints.
  • the square a 8 represents a so-called mode 8 actor responsible for signaling reconfigurations.
  • the Ci-Cio directed arcs are unidirectional channels each indicating a stream of data between two actors and the associated numerical values giving the amount of data produced or consumed on the channel.
  • the modeled system 3 is composed of five generic actors aa 5 , two time actors a 6 and a 7 (clock and deadline) and a mode actor a 8 .
  • a first generic actor ai acquisition actor acquires data supplied by a clock actor at 6 at 30Hz.
  • a second generic actor a 2 (control actor) sends a command to an actuator actor at 7 at 10 Hz.
  • the command is determined according to the result of a reconfigurable processing chain consisting of a third generic actor a 3 (preprocessing actor) performing a preprocessing of the data produced by the acquisition actor ai in all possible reconfigurations.
  • a fourth generic actor a 4 performs a fast and low definition processing of the data pretreated by the pretreatment actor a 3 .
  • a fifth generic actor a 5 performs a slow but high definition processing.
  • the data processing path of the first configuration l ⁇ is the path connecting the acquisition actor to 3 to the preprocessing actor to 3 , to the fast processing actor to 4 and then finally to the command actor has 2 .
  • the second configuration l 2 is defined by the path connecting the acquisition actor ai to the preprocessing actor a 3 , to the slow processing actor a 5 and then finally to the control actor a 2 .
  • the configuration propagates from one actor to another and therefore, no centralized synchronization on these reconfiguration modes is necessary.
  • Each actor will communicate to his neighbor the configuration mode in which it must work.
  • the choice of the current configuration is made by the mode actor a 8 who preferably uses high definition processing when available.
  • the rapid processing actor has 4 each time he activates consumes data on his input channel c 3 (represented on channel c 3 by a "1") and produces data on its output channel c 4 (represented on channel c 4 by a “1”).
  • a 5 which consumes data on its input channel c 5 and produces data on its output channel c 6 .
  • the control actor has 2 each time it activates consumes data on its first input channel c 4 or on its second input channel c 4 (depending on the configuration mode) and produces data on its output channel c 2 .
  • the pretreatment actor a 3 each time he activates consumes a datum on its first input channel Ci and a datum on its second input channel c 9 and produces a datum on its first output channel c 3 or on its second output channel c 5 (depending on the configuration mode).
  • the acquisition actor ai consumes a rational number of data on its input channel c 2 (represented on the input channel c 2 by the value "1/3”) and produces a rational number of data on its output channel Ci (represented on the output channel Ci by the value "1/3").
  • the example in Fig. 4 shows that in the initial state, there is a token Tl (ie a datum) available on the channel c 2 (between the control actor a 2 and the acquisition actor ai.
  • the actor of acquisition ai will consume this existing data on this channel c 2 and will produce a data on its output channel c 3 (ie channel c 3 connecting the acquisition actor to 3 to the pretreatment actor to 3 )
  • the acquisition actor has 3 consumed a data and produced a data.
  • the acquisition actor on his next two activations, he will consume zero data and produce zero data.
  • the acquisition actor has 3 consumes a datum and produces a datum every three activations. This allows synchronization of the data between two actors operating at different frequencies without any loss of data. Indeed, according to this example, the acquisition appears three times for each command thus allowing the transfer of data between the acquisition actor ai operating at 30 Hz and the control actor a 2 operating at 10 Hz without any loss of data.
  • F3 We define the number of data produced or consumed by actor for each of its input or output channels, with advantageously the possibility for a channel to have only one of these numbers which is a rational number. These numbers are represented by the values on the Ci-Cio arcs connecting the actors of the example in FIG. 4.
  • F4 For each mode actor a 8 of a non-empty set of modes, the mode actor a 8 being in charge of choosing dynamically for each of his activations one and only one of these modes (These modes are noted l and l 2 ).
  • the choice of the current configuration is advantageously made by a single 8- mode actor and this current configuration is propagated in a distributed manner from one actor to another.
  • F5 For each generic actor ai-a 5 , we define the set of modes in which it is executed, and the implicit set of all the other modes in which it passes. It will be noted that the set of modes in which a generic actor is executed is either a nominal mode common to the whole system, or a subset of the modes chosen by mode actors. In the example of FIG. 4, all the actors except the actors of preprocessing at 3 , fast processing at 4 and slow processing at 5 are executed in the mode nominal knowing that the preprocessing actor has 3 runs in modes l and l 2 , the fast processing actor has 4 runs in mode ⁇ lf and the slow processing actor has 5 runs in l mode 2 .
  • an implicit set of feedback channels is defined as the set of channels connecting two generic actors each running in at least one of the modes chosen by the same mode actor, and such that There is a path without repetition starting from the fashion actor and ending with the producer actor on this channel, passing by a consumer actor.
  • F7 We define maximum frequency constraints for certain generic or fashion players. One possible way of expressing them is by so-called 6 clock actors with which a frequency is associated. In the example of FIG. 4, the acquisition actor ai has a maximum frequency constraint of 30 Hz, expressed by the clock actor at 6 with the frequency 30 Hz, the arc c 7 connecting them, and the quantities of associated data.
  • F8 We define minimum frequency constraints for certain generic or fashion players. One possible way of expressing them is by so-called actors with maturity a 7 to which a frequency is associated. In the example of FIG. 4, the control actor at 2 has a minimum frequency constraint of 10 Hz, expressed by the expiry actor at 7 with the frequency 10H z, the arc c 8 connecting them, and the quantities of associated data. It will be noted that the same actor can be forced to operate at a minimum and maximum frequency, in this case it is an exact frequency constraint. In other words, a frequency constraint is either maximum (no more than so many times per second), or minimum (at least so many times per second), or exact (exactly so many times per second).
  • F9 An initial state of the system composed by channel of a rational number and a sequence of modes of length equal to the lower rounding of this rational number, and by generic actor of its initial mode.
  • all actors have for initial mode nominal mode, and the channels marked by a small circle Tl and T2 have an initial state of value "1".
  • the initial state can be expressed by any rational number (for example, 2/5; 4/3; etc.) and this follows from the fact that the production and consumption rhythms are rational according to an advantageous embodiment. of the invention.
  • the behavior specified for the system has the following characteristics C1-C7:
  • the channel production policy is a non-blocking first-in-first-out (FIFO) policy.
  • C2 The consumption policy from the channels is blocking FIFO. Thus, when an actor will produce data on a channel, it will not be blocked by the consumer actor.
  • the channels contain elementary quantities of data (i.e. tokens Tl, T2).
  • a token is an arbitrary unit that indicates the number of data on a channel at a given time.
  • the tokens are all made up of a mode and either of significant data produced by an execution, or of no data. These latter tokens advantageously represent the absence of data produced when the producer or the consumer goes into a given mode. Advantageously, this makes it possible to preserve the synchronization between the tasks without the need to send effective data.
  • the state of a channel is a rational number, and the whole number of tokens it contains is the lower rounding of this number.
  • Tl the rational number 1/1
  • the acquisition actor ai will consume 1/3 which will transform the state of channel c 2 from 1/1 to 2/3 (ie 1-1 / 3) rounded to zero.
  • the state of channel c 2 is 2/3 which will allow the acquisition actor ai when activated to remove 1/3 again which will transform the state of channel c 2 from 2 / 3 to 1/3 (ie 2/3 -1/3) rounded to zero.
  • the actor of acquisition ai again withdraws 1/3 which will transform the state of channel c 2 from 1/3 to zero.
  • a Tl token is consumed by the acquisition actor for all three activations.
  • C5 The atomic activation of each actor (regardless of whether it executes or passes), removes the specified rational number from the state of each of its input channels and adds the specified rational number to the status of each of its output channels. It should be noted that an atomic process is an indivisible process of production and consumption which has a clearly identified beginning and end. The number of tokens consumed or produced is the absolute value of the difference between the lower rounding of the channel state before activation and the lower rounding of the channel state after activation.
  • C6 Each time a mode actor is activated, it executes and chooses one and only one of the modes associated with it in an arbitrary manner. He associates with each product token the mode chosen by this activation.
  • the propagation mode according to the invention makes it possible to systematically produce tokens, potentially empty according to the mode chosen, which does not prevent activation of the successor, and therefore makes it possible to preserve the properties (see below). ).
  • C7 Before each activation of a generic actor, its current mode is determined by the set L of modes associated with a token which will be consumed for each channel, the channels for which no token is consumed in this activation being ignored.
  • the token considered (for example the last consumed) on each channel is chosen in a deterministic manner.
  • the determination rule can be performed according to the following points (a) - (f): (a): if the set L is empty (ie the actor has no predecessors), the mode current is systematically nominal; (b): if the set is a singleton, the current mode is then this unique element of L
  • each generic actor is done in its current mode.
  • the current mode is associated with all the tokens produced by this activation, except those produced on a feedback channel, with which the nominal mode is associated.
  • the data associated with the tokens produced are determined by the current mode. If the actor goes into his current mode, the tokens produced contain no data. If the actor executes in his current mode, for his consumers who will potentially execute in this chosen mode, his consumers who are connected to him by a feedback channel, and only for these, he associates with each token produces meaningful data. For all its other consumers it does not associate any data.
  • First step Fold Construct a matrix, denoted G, with one row per channel and one column per actor, and for each entry in this matrix we have: el: the value 0 if the actor is not connected to this channel; e2: the number (potentially rational) added to the state of the channel for each activation of the actor if he is a producer on this channel; e3: the opposite of the number (potentially rational) cut off from the channel state for each activation of the actor if he is a consumer on this channel; and e4: the difference between the numbers (including one potentially rational) added and subtracted from the channel state for each activation of the actor if he is both producer and consumer on this channel.
  • Second property P2 In an embodiment in which the time constraints are described as in FIG. 4, the ability to verify the second property for instances can be done according to the following innovative steps P21-P25:
  • First step P21 Check that if an actor has maximum and minimum frequency constraints, they are equal.
  • Second step P22 Calculate the greatest common divisor Î of all the frequency constraints in the system, and their smallest common multiple p.
  • Third step P23 Given the vector x, arbitrarily choose an actor from column i in G with a noted frequency constraint and with the element x t of x.
  • Fourth step P24 Calculate the following whole number:
  • Third property P3 One possible way of proving the third property P3 is based on a method known for data flows in general but by distinguishing itself by taking into account rational quantities. Given x and the initial state of the channels, this method consists in carrying out a symbolic activation of the system in which each actor in column i in G is activated at least x t times, and ensuring that this execution ends.
  • Fourth P4 property The method of proving the fourth P4 property follows from the way the modes and the data are associated with the tokens to propagate the modes according to the innovative embodiment of the present invention.
  • the method which follows is a nonlimiting example of the verification of this property P4 according to the following steps P41-P47:
  • First step P41 Check that the sets of modes chosen by the mode actors are disjoint two by two (one mode is chosen by one and only one mode actor).
  • Second step P42 Also verify that the set of modes associated with each generic actor is either the singleton containing the nominal mode of the system, or a subset of the set of modes chosen by a mode actor. It will be noted that the modes associated with a generic actor are all selected by the same mode actor.
  • Third step P43 Check that if a generic actor has an associated set of modes which is a subset of those chosen by a mode actor, then: either this actor de mode is a direct predecessor of this generic player; or there is at least one of the direct predecessors of this actor such that the set of modes associated with this predecessor is a subset of the set of modes chosen by this mode actor.
  • Fourth step P44 For all the actors of column i in G which are executed in at least one mode chosen by the same mode actor of column j in G, and who are on a path starting from this mode actor, and passing only by actors who execute themselves in at least one of the modes chosen by this mode actor, then:
  • Sixth step P46 Perform a symbolic execution of the data flow with at least y t activations for all the actors, considering that the way in which the mode actors choose a mode on each activation is a tourniquet selection (rou nd-robin) of whatever modes they choose.
  • Seventh step P47 Ensure that no mode was undefined in the symbolic execution.
  • the time constraints for an instance are made up of the following elements: a time budget for all the actors; an initial deadline for all actors; a symbol associated with each actor declaring it to be either persistent or ephemeral; a symbol associated with each actor with a minimum frequency constraint declaring its constraint as being strict or relaxed; and an initial deadline associated with each actor with a minimum frequency constraint.
  • a clock measures the flow of the time from an initial date.
  • the time between the start and end of the activation of any actor is less than or equal to the budget associated with that actor.
  • No activation of an actor begins before its initial delay has elapsed.
  • the start of an activation of an ephemeral actor always takes place after the start of the previous activation of this same actor.
  • the start of an activation of a persistent actor always takes place after the end of the previous activation of this same actor.
  • each of its activations is associated with a deadline.
  • this deadline is equal to the initial deadline, and for the following ones, their deadline is equal to the deadline for the previous activation of this same actor plus the inverse of the minimum frequency (ie the minimum period ).
  • the end of the activation of an actor with a minimum frequency constraint always takes place before its expiration.
  • a delay is associated with each of its activations; for the first activation, this deadline is equal to the initial delay, and for the following ones, their delay is equal to the delay for the previous activation of this same actor plus the inverse of the maximum frequency (ie the maximum period).
  • the start of the activation of an actor with a maximum frequency constraint always takes place after its delay.
  • the process of constructing scheduling constraints includes the following steps:
  • Step 1 Given x, associate with each actor of column i in G a sequence of at least 2.
  • x t elements where the j th element is defined by: a variable s tj for the start date of the j th activation of i a variable e tj for the end date of the i th activation of i and a variable d tj for the expiration of the i th activation of i.
  • Step 3 Iteratively, until all the variables s tj are affected: For each variable s tj not yet affected and such that all the variables involved in the linear constraints concerning it are affected, assign the minimum value authorized by linear constraints. For each variable e tj corresponding to a variable s tj assigned to this iteration, with the budget of the actor i noted b, assign the value s tj + b to e tj . Step 4: For each variable if the actor has a minimum frequency constraint noted w and an initial deadline noted d, assign the value d + (j— 1) / w.
  • Step 5 For each variable e j , if the actor has a strict minimum frequency constraint, ensure that the constraint e tj £ d tj is respected.
  • Step 6 For each variable e ⁇ , if the actor has a relaxed minimum frequency constraint, and if the constraint e tj £ d tj is not respected, assign the value
  • Step 7 Iteratively, until all the variables d tj are assigned: For each variable d tj not yet assigned, if all the variables d ki have already been assigned such as according to the matrix G and l initial state of the channels the j th activation of the actor i produces at least one token in a channel and that this same token is consumed by the l th activation of the actor k, then assign e + min (d fe ; - e ki ).
  • Step 5 above of this process if Step 5 above of this process has passed successfully, then the variables s j , d of each activation as well as the budget b of each actor are sufficient inputs for the allocation of execution resources and the dimensioning of communication channels for the storage of tokens.
  • the fact that this information is available for the actors of mode allows to use for example the scheduling methodology described in [3]. In addition, we are assured that this allocation is feasible on a finite quantity of these resources.
  • SI Simulate the production of tokens by activations j of the predecessors i of this implementation under test, on dates e tj , these activations being dependent on the scenario tested.
  • a non-exhaustive list of possible scenarios is as follows: (a) Underproduction: activations are chosen so that there are not enough tokens for the activation of this implementation, (b) Exact production: activations are chosen so that there is the minimum number of tokens necessary for the activation of this implementation, (c) Overproduction: activations are chosen so that there is a sufficient number of tokens for several successive activations of this implementation.
  • TTIOTS Timed Input Output Transition Systems
  • the present invention is differentiated by the fact that instead of considering the values of the data produced in response to input values, we consider the state of the communication channels. For example, if an actor produces a token containing a character string as given, in the state of the art we would observe the character string, on the other hand in the present invention, we will observe the value "1", being the number tokens available in the channel.
  • the method for constructing valid traces is as follows: Constructing an automaton for each actor corresponding to the specified behavior of this actor in the formalism described in [4], in which the values produced / consumed on the channels are numerical values indicating l condition of the channel. Then, evaluate all the possible paths in a symbolic execution of the system as described in [4] so as to observe the periodic behavior described by the vector x.
  • Traces of an execution of an implementation of an instance can be provided by an observer of an execution of the implementation.
  • Each entry in a trace provides information about the status of the implementation whenever this state changes. For example: the current date of the implementation instance clock configured, the number of tokens available for consumption for all channels, and the mode associated with tokens available for consumption. Given such a trace, one can check the conformity of the execution of the implementation with respect to the specified behavior of the corresponding instance, as described in [4].
  • a first application concerns critical real-time distributed systems.
  • a real-time embedded system of equipment configured to receive specific measurements of the equipment and its environment and to deliver results actuating operations for the proper functioning of this equipment.
  • the equipment can be an autonomous or non-autonomous vehicle of land, rail, aerospace or naval type.
  • the vehicle system may include cameras to detect pedestrians.
  • the sampling frequency of the cameras can be different from that of the microprocessor which will process the signals and the processing must be fast enough to warn the driver or the automaton early enough to trigger braking or another action to avoid the pedestrian.
  • This consumption and production at different frequencies without loss of data is possible thanks to the use of rational numbers of data on the channels according to the invention.
  • different reconfiguration modes can be used so that the pedestrian detection processing takes place from a certain speed or over a certain range of speeds allowing the microprocessor not to consume execution resources unnecessarily outside of this beach.
  • a second application concerns FPGA systems for critical real time: an FPGA system is a stream of data clocked by clocks which trigger the processing units, and in which the routing of data can change dynamically.
  • a third application concerns a system of an industrial process configured for the industrial manufacture of objects according to particular flow constraints and according to a reconfigurable process. Indeed, an industrial manufacturing process can be seen as a stream of data, with flow constraints for technical reasons.
  • the present invention allows the reconfiguration of the process to adapt for example to the evolution of the order book.

Abstract

The present invention concerns a method and a tool for designing and validating a data flow system comprising a set of software and/or hardware actors (ai, aj) interconnected with each other by unidirectional communication channels (ci, cj), the tool comprising: - a modelling interface (11) configured to generate an instance of the system by specifying, in a formal manner, a real-time and reconfigurable data flow, the reconfiguration of the data flow being carried out dynamically by propagating reconfiguration data from one actor to another through the communication channels, - an analysis module (13) configured to prove a predetermined set of behavioral properties of the system by means of a static analysis of the instance, - a refinement interface (15) designed to allocate resources to the instance, thus establishing a configured instance, the allocation of resources being carried out in such a way that an implementation of the system complies with the configured instance, and - a conformity test module (17) configured to verify the conformity of the behaviour of an implementation of the system with respect to the configured instance.

Description

Description  Description
Titre de l'invention : Outil et procédé de conception et de validation d'un système flots de données par un modèle formel Title of the invention: Tool and method for designing and validating a data flow system using a formal model
La présente invention concerne un outil de conception et de validation d'un système comportant un ensemble d'acteurs interconnectés entre eux par des canaux de communication unidirectionnels. The present invention relates to a tool for designing and validating a system comprising a set of actors interconnected with one another by unidirectional communication channels.
État de la technique antérieure State of the art
La présente invention s'applique à des systèmes communément appelés «systèmes flots de données » comportant un ensemble d'acteurs logiciels et/ou matériels s'échangeant entre eux des informations quantifiables, à travers des canaux de communication unidirectionnels. Chaque acteur attend d'avoir reçu une quantité de données spécifiée statiquement sur ses canaux d'entrée dans le but de consom mer cette quantité de donnée, d'effectuer un traitement de ces données, et de produire une quantité de données spécifiée statiquement sur ses canaux de sortie à destination de nouveaux acteurs. Ce comportement est répété indéfiniment par chacun des acteurs. Un exemple d'un tel système de flots de données est un système embarqué temps réel pouvant être utilisé dans un véhicule autonome ou avec conducteur. The present invention applies to systems commonly called “data flow systems” comprising a set of software and / or hardware actors exchanging quantifiable information between them, through unidirectional communication channels. Each actor waits to have received a statically specified amount of data on its input channels in order to consume this amount of data, to process this data, and to produce a statically specified amount of data on its exit channels for new players. This behavior is repeated indefinitely by each of the actors. An example of such a data flow system is a real-time on-board system which can be used in an autonomous vehicle or with a driver.
La spécification de ces systèmes, prenant en compte toutes les contraintes, est un problème technique complexe en soi. Vient ensuite le travail d'allocation des ressources pour une implémentation du système spécifié, et la vérification que ces ressources sont suffisantes pour que l'implémentation fonctionne en accord avec sa spécification. Enfin, pour une implémentation donnée, il faut tester cette implémentation et s'assurer qu'elle respecte le comportement spécifié. On utilise des outils automatiques pour réaliser ces différentes tâches de spécification et de vérification d'un système flot de données pouvant comprendre un grand nombre d'acteurs avec de nombreuses contraintes et reconfigurations possibles. The specification of these systems, taking into account all the constraints, is a complex technical problem in itself. Next comes the task of allocating resources for an implementation of the specified system, and verifying that these resources are sufficient for the implementation to work in accordance with its specification. Finally, for a given implementation, it is necessary to test this implementation and make sure that it respects the specified behavior. Automatic tools are used to carry out these various tasks of specifying and verifying a data flow system which may include a large number of actors with numerous constraints and possible reconfigurations.
Actuellement, il existe des algorithmes basés sur des modèles formels pour spécifier des systèmes flot de données temps-réel reconfigurables. Une telle méthode est par exemple décrite dans le document [1]. Cette méthode permet de vérifier les ressources nécessaires à l'implémentation ainsi que l'absence d'inter-blocage entre les acteurs. Toutefois, elle ne permet pas de vérifier la conformité du comportement d'une implémentation du système spécifié vis-à-vis de sa spécification et ne permet pas de vérifier l'absence d'état inconnu dans le système pour toutes les reconfigurations spécifiées. Currently, there are algorithms based on formal models to specify reconfigurable real-time data flow systems. Such a method is for example described in document [1]. This method makes it possible to check the resources necessary for the implementation as well as the absence of inter-blocking between the actors. However, it does not make it possible to check the conformity of the behavior of an implementation of the specified system with respect to its specification and does not make it possible to check the absence of an unknown state in the system for all the specified reconfigurations.
Il existe d'autres méthodes de spécification à base de modèle formel pour tester la conformité des implémentations de flots de données. Une telle méthode est par exemple décrite dans le document [2]. Toutefois, les seules contraintes que cette méthode prend en compte sont celles de temps-réel. De plus, elle ne donne un verdict que sur la conformité des valeurs de sortie du système et non pas sur la conformité du comportement du système. Or dans certains cas, un système peut fournir une valeur de sortie correcte sans respecter le comportement spécifié pour autant. There are other formal model-based specification methods for testing the conformance of data stream implementations. Such a method is for example described in document [2]. However, the only constraints that this method takes into account are those of real-time. Furthermore, it only gives a verdict on the conformity of the system output values and not on the conformity of the system behavior. However, in some cases, a system can provide a correct output value without respecting the behavior specified.
Actuellement, il n'existe pas de méthodes à base de modèle formel qui prennent en compte à la fois les contraintes de temps-réel et les contraintes de reconfigurations. Chacune des méthodes connues ne couvre que partiellement une partie des étapes et propriétés nécessaires à la spécification et à la vérification d'un système. Aucune de ces méthodes ne couvre de manière complète la conception et la validation d'un système en prenant en compte toutes les contraintes pouvant exister dans le système. Currently, there are no formal model-based methods that take into account both real-time constraints and reconfiguration constraints. Each of the known methods only partially covers part of the steps and properties necessary for specifying and verifying a system. None of these methods completely covers the design and validation of a system by taking into account all the constraints that may exist in the system.
En outre, il n'y a actuellement pas de méthodes connues permettant de faire fonctionner des acteurs dans le système selon des fréquences différentes. En effet, les méthodes selon l'état de l'art ne permettent pas la vérification formelle de la faisabilité du dimensionnement d'un canal de connexion entre deux acteurs fonctionnant selon des fréquences différentes sans perte de données de communication. In addition, there are currently no known methods for operating actors in the system at different frequencies. Indeed, the methods according to the state of the art do not allow formal verification of the feasibility of the dimensioning of a connection channel between two actors operating at different frequencies without loss of communication data.
L'objet de la présente invention est de proposer un outil et un procédé de conception et de validation d'un système flot de données remédiant aux inconvénients précités, en particulier en prenant en compte l'ensemble complet de propriétés comportementales du système permettant ainsi une conception et une validation minutieuses et précises du système quelle que soit la reconfiguration tout en optimisant les ressources de calcul et de mémoire du système. The object of the present invention is to provide a tool and a method for designing and validating a data flow system overcoming the aforementioned drawbacks, in particular by taking into account the complete set of behavioral properties of the system, thus allowing a careful and precise design and validation of the system whatever the reconfiguration while optimizing the computing and memory resources of the system.
Présentation de l'invention La présente invention concerne un outil de conception et de validation mis en oeuvre par ordinateur d'un système flots de données modélisant un dispositif em barqué d'un équipement, ledit système flots de données comportant un ensemble d'acteurs (a,, aj) logiciels et/ou matériels interconnectés entre eux par des canaux (ci; q) de communication unidirectionnels, ledit outil comportant : - une interface de modélisation (11) configurée pour générer une instance dudit système en spécifiant de manière formelle un flot de données temps-réel et reconfigurable, la reconfiguration du flot de données étant réalisée de manière dynamique par la propagation de données de reconfiguration d'un acteur à un autre à travers les canaux de communication, Presentation of the invention The present invention relates to a design and validation tool implemented by computer of a data flow system modeling a device fitted with equipment, said data flow system comprising a set of actors ( a ,, a j ) software and / or hardware interconnected by unidirectional communication channels (c i; q), said tool comprising: - a modeling interface (11) configured to generate an instance of said system by specifying so formal a real-time and reconfigurable data stream, the reconfiguration of the data stream being carried out dynamically by the propagation of reconfiguration data from one actor to another through the communication channels,
- un module d'analyse (13) configuré pour prouver un ensemble prédéterminé de propriétés comportementales dudit système par une analyse statique de ladite instance comprenant la construction d'une matrice définissant l'état d'activation des acteurs et l'état des canaux de communication et la détermination d'un vecteur d'entiers naturel dont le produit avec ladite matrice est nul, la détermination dudit vecteur confirmant la faisabilité du système flots de données indépendamment des ressources allouées, - une interface de raffinement (15) adaptée pour allouer des ressources à ladite instance respectant ledit ensemble prédéterminé de propriétés comportementales, établissant ainsi une instance dite instance configurée, et - an analysis module (13) configured to prove a predetermined set of behavioral properties of said system by a static analysis of said instance comprising the construction of a matrix defining the state of activation of the actors and the state of the channels of communication and the determination of a vector of natural integers whose product with said matrix is zero, the determination of said vector confirming the feasibility of the data flow system independently of the allocated resources, a refinement interface (15) adapted to allocate resources to said instance respecting said predetermined set of behavioral properties, thereby establishing an instance called configured instance, and
- un module de test de conformité (17) comportant des outils de test unitaire (171) et d'intégration (173), l'outil de test unitaire (171) simulant la production de données sur des canaux d'entrée de l'implémentation d'un acteur, et vérifiant que les quantités consommées et produites par cette implémentation correspondent à celles spécifiées pour l'acteur implémenté, l'outil de test d'intégration (173) construisant l'ensemble de traces qui correspondent au comportement attendu de l'instance configurée et s'assurant que la trace fournie appartient à cet ensemble valide vérifiant ainsi la conformité du comportement d'une implémentation dudit système vis-à-vis de ladite instance configurée. a compliance test module (17) comprising unit test tools (171) and integration tools (173), the unit test tool (171) simulating the production of data on input channels of the implementation of an actor, and verifying that the quantities consumed and produced by this implementation correspond to those specified for the actor implemented, the integration test tool (173) constructing the set of traces which correspond to the expected behavior of the configured instance and ensuring that the trace supplied belongs to this valid set, thus verifying the conformity of the behavior of an implementation of said system with respect to said configured instance.
Ce mode de réalisation par un modèle formel permet d'automatiser une conception et une validation minutieuses et précises d'un système flots de données quelle que soit la reconfiguration et sans la nécessité d'avoir un contrôle centralisé. Plus particulièrement, la reconfiguration de manière distribuée selon l'invention permet de prendre en compte l'ensemble complet de propriétés comportementales tout en optimisant les ressources de calcul et de mémoire du système minimisant ainsi le temps de calcul et les erreurs, et facilite les processus de certification. This embodiment by a formal model makes it possible to automate a meticulous and precise design and validation of a data flow system whatever the reconfiguration and without the need to have centralized control. More particularly, the reconfiguration in a distributed manner according to the invention makes it possible to take into account the complete set of behavioral properties while optimizing the computation and memory resources of the system thus minimizing the computation time and the errors, and facilitates the processes. certification.
Avantageusement, l'instance du système comporte des rythmes rationnels de consommation et d'émission de données. Ceci donne la possibilité de prendre en compte des acteurs qui doivent fonctionner selon des fréquences différentes sans aucune perte de données de communication entre ces acteurs. Ainsi, la vérification de faisabilité de la communication sans perte, et le cas échéant l'ordonnancement des opérations et la synchronisation entre les tâches, peuvent être facilement réalisés quelles que soient les contraintes sur les fréquences associées aux acteurs. Advantageously, the system instance includes rational rates of consumption and data transmission. This gives the possibility of taking into account actors who must operate at different frequencies without any loss of communication data between these actors. Thus, the verification of the feasibility of lossless communication, and if necessary the scheduling of operations and the synchronization between tasks, can be easily carried out whatever the constraints on the frequencies associated with the actors.
Avantageusement, l'instance du système comporte : - des contraintes de fréquence maximales pour certains acteurs, Advantageously, the system instance includes: - maximum frequency constraints for certain players,
- des contraintes de fréquence minimales pour certains acteurs. - minimum frequency constraints for certain players.
Ainsi, contrairement à l'état de l'art, on peut prendre en compte des contraintes de fréquence dans le modèle formel et dans la vérification des propriétés. Avantageusement, l'instance du système comporte : Thus, unlike the state of the art, frequency constraints can be taken into account in the formal model and in the verification of the properties. Advantageously, the system instance includes:
- l'ensemble des acteurs comprenant des acteurs génériques configurés pour traiter des données et des acteurs de mode configurés pour traiter des données et/ou sélectionner des modes de configurations, - all of the actors including generic actors configured to process data and mode actors configured to process data and / or select configuration modes,
- l'ensemble de canaux de communication unidirectionnels connectant l'ensemble des acteurs entre eux, chaque acteur étant associé à au moins un canal d'entrée ou de sortie, - the set of unidirectional communication channels connecting all the actors to each other, each actor being associated with at least one input or output channel,
- le nombre rationnel ou entier de données produites ou consommées par acteur pour chacun de ses canaux d'entrée et de sortie, et - the rational or whole number of data produced or consumed per actor for each of its input and output channels, and
- l'ensemble de modes associés à chaque acteur de mode, chaque acteur de mode étant configuré pour choisir dynamiquement pour chacune de ses activations un et un seul mode parmi ledit ensemble de modes. the set of modes associated with each mode actor, each mode actor being configured to dynamically choose for each of its activations one and only one mode from said set of modes.
Ceci permet d'optimiser la topologie du système et plus particulièrement, le choix dynamique des configurations permet de minimiser le nombre des acteurs de mode et des canaux de connexion. This makes it possible to optimize the topology of the system and more particularly, the dynamic choice of configurations makes it possible to minimize the number of mode actors and connection channels.
Avantageusement, l'instance du système comporte en outre pour chaque acteur générique un ensemble correspondant de modes d'exécutions dans lesquels il s'exécute ainsi qu'un ensemble implicite de tous les autres modes dans lesquels il passe, u n mode d'exécution pouvant être soit un mode nominal commun à tout le système, soit un mode spécifique choisi par un acteur de mode. Advantageously, the system instance also includes, for each generic actor, a corresponding set of execution modes in which it executes as well as an implicit set of all the other modes in which it passes, an execution mode being able to be either a nominal mode common to the whole system, or a specific mode chosen by a mode actor.
Ceci permet de faciliter la propagation de modes d'acteur en acteur. Avantageusement, l'instance du système comporte en outre un ensemble implicite de canaux de rétroaction, un canal de rétroaction étant un canal connectant un acteur générique producteur de données à un acteur générique consommateur de données s'exécutant chacun dans au moins un des modes choisis par un même acteur de mode, et en ce qu'il existe un chemin sans répétition partant dudit même acteur de mode et terminant par l'acteur générique producteur en passant par l'acteur générique consommateur. This facilitates the propagation of modes from actor to actor. Advantageously, the system instance further comprises an implicit set of feedback channels, a feedback channel being a channel connecting a generic actor producing data to a generic actor consuming data, each running in at least one of the chosen modes. by the same fashion actor, and in that there is a path without repetition starting from the same fashion actor and ending with the generic producer actor passing by the generic consumer actor.
Les canaux de rétroaction permettent à un acteur d'une chaîne de traitement d'envoyer le résultat à un précédent acteur de la chaîne pour que ce précédent acteur puisse faire un nouveau traitement en prenant en compte l'ancien résultat. L'identification de ces canaux de rétroaction permet ainsi de décrire des processus itératifs dans le système sans introduire des modes indéterminés dû à la propagation de modes. The feedback channels allow an actor in a processing chain to send the result to a previous actor in the chain so that this previous actor can do a new processing taking into account the old result. The identification of these feedback channels thus makes it possible to describe iterative processes in the system without introducing indeterminate modes due to the propagation of modes.
Avantageusement, l'instance du système comporte en outre un état initial du système composé par canal d'un nombre rationnel et d'une séquence de modes de longueur égale à une arrondie inférieure dudit nombre rationnel, et par acteur générique de son mode initial. Advantageously, the system instance further comprises an initial state of the system composed by channel of a rational number and a sequence of modes of length equal to a lower rounding of said rational number, and by generic actor of its initial mode.
Ceci permet d'éviter l'inter-blocage dans certaines situations comme par exemple dans le cas d'une boucle de rétroaction et permet également d'initialiser des délais pour permettre le démarrage de certains types de traitement par les acteurs comme par exemple le calcul d'un produit de convolution. This makes it possible to avoid inter-blocking in certain situations such as for example in the case of a feedback loop and also makes it possible to initialize delays to allow the start of certain types of processing by the actors such as for example the calculation of a convolution product.
Avantageusement, l'ensemble prédéterminé de propriétés comportementales comporte des première, deuxième, troisième et quatrième propriétés suivantes : Advantageously, the predetermined set of behavioral properties includes first, second, third and fourth following properties:
- la première propriété vérifie que les ressources nécessaires à l'implémentation des communications entre acteurs sans perte de données sont bornées pour une exécution périodique du système spécifié, - the first property verifies that the resources necessary for the implementation of communications between actors without loss of data are limited for a periodic execution of the specified system,
- la deuxième propriété vérifie que les contraintes de fréquence et/ou de période peuvent être respectées sans remettre en cause la première propriété, - la troisième propriété vérifie la non-existence d'inter-blocage pour tout nombre d'activations des acteurs, et - the second property verifies that the frequency and / or period constraints can be respected without calling into question the first property, - the third property verifies the non-existence of inter-blocking for any number of activations of the actors, and
- la quatrième propriété vérifie la non-existence d'état inconnu dans le système pour toutes les reconfigurations spécifiées et aucune des autres propriétés n'étant remise en cause par des changements dynamiques de configuration. - the fourth property checks the non-existence of an unknown state in the system for all the specified reconfigurations and none of the other properties being called into question by dynamic configuration changes.
Ainsi, en vérifiant les quatre propriétés de manière complète, l'outil selon la présente invention s'assure que le système est dans un état connu et cohérent pour toutes les reconfigurations et pour toutes les contraintes de fréquence, de période et de dimensionnement de ressources. Contrairement à l'état de l'art, la présente invention exprime la reconfiguration de manière à pouvoir prouver de manière exhaustive que les quatre propriétés soient vérifiées. Thus, by verifying the four properties completely, the tool according to the present invention ensures that the system is in a known and consistent state for all the reconfigurations and for all the constraints of frequency, period and dimensioning of resources. . Unlike the state of the art, the present invention expresses the reconfiguration so as to be able to prove exhaustively that the four properties are verified.
Selon un mode de réalisation de la présente invention, ledit système est un système embarqué temps-réel d'un équipement, configuré pour recevoir des mesures spécifiques audit équipement et pour délivrer des résultats actionnant des opérations pour le bon fonctionnement dudit équipement. According to an embodiment of the present invention, said system is a real-time embedded system of equipment, configured to receive measurements specific to said equipment and to deliver results actuating operations for the proper functioning of said equipment.
La présente invention vise également un système em barqué temps-réel d'un équipement, comportant un ensemble d'acteurs logiciels et/ou matériels intercon nectés entre eux par des canaux de communication unidirectionnels, ledit système embarqué étant conçu et validé par l'outil selon l'une quelconque des caractéristiques précédentes, ledit système embarqué étant configuré pour recevoir des mesures spécifiques audit équipement et son environnement, et pour délivrer des résultats actionnant des opérations pour le bon fonctionnement dudit équipement. The present invention also relates to a real-time embedded system of equipment, comprising a set of software and / or hardware actors interconnected with one another by unidirectional communication channels, said embedded system being designed and validated by the tool. according to any one of the preceding characteristics, said on-board system being configured to receive measurements specific to said equipment and its environment, and to deliver results actuating operations for the proper functioning of said equipment.
Avantageusement, ledit équipement est un véhicule autonome ou non autonome de type terrestre, ferroviaire, aérospatial ou naval. Advantageously, said equipment is an autonomous or non-autonomous vehicle of land, rail, aerospace or naval type.
La présente invention vise aussi un système d'un processus industriel temps-réel, conçu et validé par l'outil selon l'u ne quelconque des caractéristiques précédentes, ledit système étant configuré pou r la fabrication industrielle des objets selon des contraintes de débit particulières et selon un processus reconfigurable. The present invention also relates to a system of a real-time industrial process, designed and validated by the tool according to any of the preceding characteristics, said system being configured for the industrial production of objects according to specific flow constraints and according to a reconfigurable process.
La présente invention vise également un procédé de conception et de validation mis en oeuvre par ordinateur d'un système flots de données modélisant un dispositif embarqué d'un équipement, ledit système flots de données comportant un ensemble d'acteurs logiciels et/ou matériels interconnectés entre eux par des canaux de communication unidirectionnels, ledit procédé utilisant un ordinateur pour implémenter les étapes suivantes : The present invention also relates to a design and validation method implemented by computer of a data flow system modeling an on-board device of an item of equipment, said data flow system comprising a set of interconnected software and / or hardware actors. between them by unidirectional communication channels, said method using a computer to implement the following steps:
- générer une instance dudit système en spécifiant de manière formelle un flot de données temps-réel et reconfigurable, la reconfiguration du flot de données étant réalisée de manière dynamique par la propagation de données de reconfiguration d'un acteur à un autre à travers les canaux de communication, - generate an instance of said system by formally specifying a real-time and reconfigurable data stream, the reconfiguration of the data stream being carried out dynamically by the propagation of reconfiguration data from one actor to another through the channels Communication,
- prouver un ensemble prédéterminé de propriétés comportementales dudit système par une analyse statique de ladite instance comprenant la construction d'une matrice définissant l'état d'activation des acteurs et l'état des canaux de communication et la détermination d'un vecteur d'entiers naturel dont le produit avec ladite matrice est nul, la détermination dudit vecteur confirmant la faisabilité du système flots de données indépendamment des ressources allouées, - prove a predetermined set of behavioral properties of said system by a static analysis of said instance including the construction of a matrix defining the activation state of the actors and the state of the communication channels and the determination of a vector of natural integers whose product with said matrix is zero, the determination of said vector confirming the feasibility of the data flow system independently of the allocated resources,
- allouer des ressources à ladite instance respectant ledit ensemble prédéterminé de propriétés comportementales, établissant ainsi une instance dite instance configurée, et allocate resources to said instance respecting said predetermined set of behavioral properties, thereby establishing an instance called configured instance, and
- simuler la production de données sur des canaux d'entrée de l'implémentation d'un acteur, - simulate the production of data on input channels of the implementation of an actor,
- vérifier que les quantités consommées et produites par ladite implémentation correspondent à celles spécifiées pour l'acteur implémenté, - check that the quantities consumed and produced by said implementation correspond to those specified for the actor implemented,
- construire l'ensemble de traces qui correspondent au comportement attendu de l'instance configurée, et - s'assurer que la trace fournie appartient à cet ensemble valide vérifiant ainsi la conformité du comportement d'une implémentation dudit système vis-à-vis de ladite instance configurée. - construct the set of traces which correspond to the expected behavior of the configured instance, and - ensure that the trace provided belongs to this valid set, thus verifying the conformity of the behavior of an implementation of said system vis-à-vis said configured instance.
La présente invention vise aussi un support de stockage informatique non transitoire stockant de façon tangible des instructions de codes configurées pour la conception et la validation d'un système flots de données modélisant un dispositif embarqué d'un équipement, ledit système flots de données comportant un ensemble d'acteurs logiciels et/ou matériels interconnectés entre eux par des canaux de communication unidirectionnels, caractérisé en ce que lesdites instructions de codes sont exécutables par un processeur pour mettre en oeuvre les étapes suivantes: The present invention also relates to a non-transient computer storage medium tangibly storing code instructions configured for the design and validation of a data flow system modeling an on-board device of an item of equipment, said data flow system comprising a set of software and / or hardware actors interconnected with one another by unidirectional communication channels, characterized in that said code instructions can be executed by a processor to implement the following steps:
- générer une instance dudit système en spécifiant de manière formelle un flot de données temps-réel et reconfigurable, la reconfiguration du flot de données étant réalisée de manière dynamique par la propagation de données de reconfiguration d'un acteur à un autre à travers les canaux de communication, - generate an instance of said system by formally specifying a real-time and reconfigurable data stream, the reconfiguration of the data stream being carried out dynamically by the propagation of reconfiguration data from one actor to another through the channels Communication,
- prouver un ensemble prédéterminé de propriétés comportementales dudit système par une analyse statique de ladite instance comprenant la construction d'une matrice définissant l'état d'activation des acteurs et l'état des canaux de communication et la détermination d'un vecteur d'entiers naturel dont le produit avec ladite matrice est nul, la détermination dudit vecteur confirmant la faisabilité du système flots de données indépendamment des ressources allouées, - prove a predetermined set of behavioral properties of said system by a static analysis of said instance including the construction of a matrix defining the activation state of the actors and the state of the communication channels and the determination of a vector of natural integers whose product with said matrix is zero, the determination of said vector confirming the feasibility of the data flow system independently of the allocated resources,
- a llouer des ressources à ladite instance respectant ledit ensemble prédéterminé de propriétés comportementales, établissant ainsi une instance dite instance configurée, et allocating resources to said instance respecting said predetermined set of behavioral properties, thereby establishing an instance known as a configured instance, and
- simuler la production de données sur des canaux d'entrée de l'implémentation d'un acteur, - simulate the production of data on input channels of the implementation of an actor,
- vérifier que les quantités consommées et produites par ladite implémentation correspondent à celles spécifiées pour l'acteur implémenté, - construire l'ensemble de traces qui correspondent au comportement attendu de l'instance configurée, et - check that the quantities consumed and produced by said implementation correspond to those specified for the actor implemented, - construct the set of traces which correspond to the expected behavior of the configured instance, and
- s'assurer que la trace fournie appartient à cet ensemble valide vérifiant ainsi la conformité du comportement d'une implémentation dudit système vis-à-vis de ladite instance configurée. - ensure that the trace provided belongs to this valid set, thus verifying the conformity of the behavior of an implementation of said system vis-à-vis said configured instance.
Brève description des figures Brief description of the figures
D’autres particularités et avantages du dispositif et du procédé selon l’invention ressortiront mieux à la lecture de la description faite ci-après, à titre indicatif mais non limitatif, en référence aux dessins annexés sur lesquels : Other particularities and advantages of the device and the method according to the invention will emerge more clearly on reading the description given below, by way of indication but not limitation, with reference to the appended drawings in which:
La Fig.l illustre de manière schématique des moyens matériels mis en oeuvre dans l'outil de conception et de validation d'un système flots de données, selon un mode de réalisation de l'invention ; Fig.l schematically illustrates the hardware means used in the design and validation tool of a data flow system, according to one embodiment of the invention;
Les Fig.2A-2C montrent des exemples de flots de données ne respectant pas les propriétés comportementales telles que définies selon la présente invention ; Fig.2A-2C show examples of data flows not respecting the behavioral properties as defined according to the present invention;
La Fig.3 illustre de manière schématique un procédé de conception et de validation d'un système flots de données, selon un mode de réalisation de l'invention ; et Fig.3 schematically illustrates a method of designing and validating a data flow system, according to an embodiment of the invention; and
La Fig.4 illustre de manière schématique un exemple d'un système flots de données modélisé par un graphe selon un mode de réalisation de l'invention. Fig.4 illustrates schematically an example of a data flow system modeled by a graph according to an embodiment of the invention.
Description détaillée de l’invention Detailed description of the invention
L'invention s'appuie sur un modèle formel pour décrire des contraintes temps-réel et des reconfigurations dynamiques dans un système flot de données, permettant la vérification d'un ensemble de propriétés nécessaires au bon fonctionnement du système. Le résultat de cette analyse statique couplé à des données de configuration pour une implémentation du système permet une allocation automatique des ressources nécessaires à son exécution, tant qu'une telle allocation est faisable. Enfin, une relation de conformité formelle et un environnement de test permettent d'obtenir un verdict sur la conformité d'une telle implémentation au modèle initialement spécifié. The invention is based on a formal model to describe real-time constraints and dynamic reconfigurations in a data flow system, allowing the verification of a set of properties necessary for the proper functioning of the system. The result of this static analysis coupled with configuration data for a system implementation allows automatic allocation of the resources necessary for its execution, as long as such allocation is feasible. Finally, a formal compliance relationship and a test environment allow obtaining a verdict on the conformity of such an implementation with the initially specified model.
Cette invention peut s'appliquer à tout système flot de données comportant des acteurs indépendants s'échangeant entre eux des informations quantifiables, à travers des canaux de communication unidirectionnels. Les acteurs peuvent être des entités logicielles (par exemple, des applications) et/ou matérielles (par exemple, des ca pteurs, caméras, sondes, microprocesseurs, etc.). Chaque acteur est configuré pour attendre d'avoir reçu une quantité de données spécifiée statiquement sur ses canaux d'entrée dans le but de consommer cette quantité de données, d'effectuer (ou pas) un traitement de ces données, et de produire une quantité de données spécifiée statiquement sur ses canaux de sortie à destination de nouveaux acteurs, et chacun répétant ce comportement indéfiniment. Le processus de consommation/traitement/émission est communément appelé une activation. This invention can be applied to any data flow system comprising independent actors exchanging quantifiable information with one another, through unidirectional communication channels. The actors can be software (for example, applications) and / or hardware (for example, sensors, cameras, probes, microprocessors, etc.) entities. Each actor is configured to wait to have received a statically specified quantity of data on its input channels in order to consume this quantity of data, to perform (or not) a processing of this data, and to produce a quantity statically specified data on its output channels to new players, and each repeating this behavior indefinitely. The consumption / treatment / emission process is commonly called activation.
Chaque activation se déroule selon des reconfigurations prédéfinies, et pour une reconfiguration donnée, l'activation va soit consommer/traiter/produire (on dit alors s'exécuter), soit rien faire (on dit alors passer), et le choix de changer de configuration est imprédictible. Each activation takes place according to predefined reconfigurations, and for a given reconfiguration, the activation will either consume / process / produce (we say then execute), or do nothing (we say then pass), and the choice to change configuration is unpredictable.
Chaque acteur s'active selon les reconfigurations prédéfinies dans des fenêtres temporelles (dites temps-réel) avec éventuellement des contraintes de fréquence (ou de manière équivalente avec des contraintes de période). Each actor is activated according to the predefined reconfigurations in time windows (called real-time) with possibly frequency constraints (or in an equivalent manner with period constraints).
En particulier, l'invention s'applique à un système embarqué dans un équipement où le respect du com portement attendu est considéré comme très important pour la sécurité et le bon fonctionnement de l'équipement pourvu d'un tel système. In particular, the invention applies to a system embedded in equipment where compliance with the expected behavior is considered to be very important for the safety and proper functioning of the equipment provided with such a system.
Les récents systèmes embarqués temps-réels pour les véhicules autonomes sont un exem ple de tels systèmes où des entités offrent des interfaces génériques pour permettre à des applications concrètes de s'échanger des données entre elles, chaque application étant indépendante et s'exécutant sur un calculateur d'une architecture distribuée. Les connexions entre applications peuvent être reconfigurées en fonction du mode de fonctionnement courant du véhicule, et/ou de la disponibilité des services. Enfin, pour le bon fonctionnement du véhicule, des contraintes de temps sont imposées au fonctionnement des applications. The recent real-time embedded systems for autonomous vehicles are an example of such systems where entities offer generic interfaces to allow concrete applications to exchange data with each other, each application being independent and running on a distributed architecture calculator. The connections between applications can be reconfigured according to the current operating mode of the vehicle, and / or the availability of services. Finally, for the proper functioning of the vehicle, time constraints are imposed on the operation of the applications.
La Fig. 1 illustre de manière schématique des moyens matériels mis en oeuvre dans l'outil de conception et de validation d'un système flots de données, selon un mode de réalisation de l'invention. Fig. 1 schematically illustrates the hardware means used in the design and validation tool of a data flow system, according to one embodiment of the invention.
L'outil 1 de conception et de validation d'un système 3 flots de données met en oeuvre des moyens matériels comportant une machine de traitement de l'information tel un calculateur ou ordinateur 5 comportant un microprocesseur 7 et des mémoires 9. Le microprocesseur 7 est configuré pour exécuter un ou plusieurs programmes d'ordinateur comprenant des instructions de code de programme, stockés dans les mémoires 9 de l'ordinateur 5 et conçus pour mettre en oeuvre l'outil de conception et de validation d'un système 3 flot de données. The tool 1 for designing and validating a system 3 data flows implements hardware means comprising an information processing machine such as a computer or computer 5 comprising a microprocessor 7 and memories 9. The microprocessor 7 is configured to execute one or more computer programs comprising program code instructions, stored in the memories 9 of the computer 5 and designed to implement the system design and validation tool 3 stream data.
L'outil 1 de conception et de validation comporte une interface de modélisation 11, un module d'analyse 13, une interface de raffinement 15, et un module de test de conformité 17. The design and validation tool 1 comprises a modeling interface 11, an analysis module 13, a refinement interface 15, and a conformity test module 17.
L'interface de modélisation 11 est un logiciel graphique qui est configuré pour interagir avec un logiciel décrivant le système 3 flot de données. Le logiciel graphique et le logiciel décrivant le système 3 sont adaptés pour être exécutés par l'ordinateur 5. The modeling interface 11 is graphical software which is configured to interact with software describing the system 3 data flow. The graphics software and the software describing the system 3 are adapted to be executed by the computer 5.
L'interface de modélisation 11 est configurée pour générer une instance du système 3 en spécifiant de manière formelle un flot de données temps-réel et reconfigurable. Par « instance », on entend la spécification du flot de données décrite dans l'interface de modélisation 11. L'interface de modélisation 11 est ainsi utilisée pour spécifier le flot de données en se basant sur un modèle de calcul formel, indépendamment de toute implémentation de ce flot de données. En outre, la reconfiguration du flot de données est réalisée de manière dynamique par la propagation de données de reconfiguration d'un acteur a, à un autre aj à travers des canaux q de communication. Cette manière d'exprimer la reconfiguration permet de vérifier de manière exhaustive toutes les propriétés comportementales (décrites ci-après) du système 3. The modeling interface 11 is configured to generate an instance of the system 3 by formally specifying a stream of real-time and reconfigurable data. By “instance”, we mean the specification of the data flow described in the modeling interface 11. The modeling interface 11 is thus used to specify the data flow based on a formal calculation model, independently of any implementation of this data flow. In addition, the reconfiguration of the data stream is carried out dynamically by the propagation of reconfiguration data from one actor a, to another a j through communication channels q. This way of expressing the reconfiguration makes it possible to exhaustively check all the behavioral properties (described below) of the system 3.
La spécification réalisée par l'interface de modélisation 11 a pour but de pouvoir prouver les propriétés comportementales du système. En effet, le module d'analyse 13 comporte des outils de vérifications 131 qui sont configurés pour prouver un ensemble prédéterminé de propriétés comportementales du système par une analyse statique de l'instance. L'analyse statique comprend la construction d'une matrice d'état définissant l'état d'activation des acteurs et l'état des canaux de communication et la détermination d'un vecteur d'entiers naturel dont le produit avec ladite matrice est nul. L'existence d'un tel vecteur confirme la faisabilité du système flots de données indépendamment des ressources allouées. Cette analyse sera décrite plus en détail plus en avant dans la description. The specification made by the modeling interface 11 aims to be able to prove the behavioral properties of the system. Indeed, the analysis module 13 includes verification tools 131 which are configured to prove a predetermined set of behavioral properties of the system by a static analysis of the instance. Static analysis includes the construction of a state matrix defining the state of activation of the actors and the state of the communication channels and the determination of a vector of natural integers whose product with said matrix is zero . The existence of such a vector confirms the feasibility of the data flow system regardless of the resources allocated. This analysis will be described in more detail later in the description.
L'interface de raffinement 15 est configurée pour allouer des ressources suffisantes à l'instance respectant l'ensemble prédéterminé de propriétés comportementales et établissant ainsi une instance appelée dans la suite « instance configurée ». L'allocation de ressource est réalisée de manière à ce qu'une implémentation du système 3 respecte l'instance configurée. The refinement interface 15 is configured to allocate sufficient resources to the instance respecting the predetermined set of behavioral properties and thus establishing an instance called in the following “configured instance”. Resource allocation is carried out in such a way that an implementation of system 3 respects the configured instance.
L'interface de raffinement 15 est ainsi utilisée pour spécifier des contraintes temporelles supplémentaires pour l'instance. On notera que l'interface de raffinement 15 peut spécifier plusieurs instances configurées pour une même instance. Un outil de conversion 19 adapte le résultat de l'analyse statique d'une instance pour fournir des entrées permettant l'allocation de ressources pour une instance configurée. The refinement interface 15 is thus used to specify additional time constraints for the instance. It will be noted that the refinement interface 15 can specify several instances configured for the same instance. A conversion tool 19 adapts the result of the static analysis of an instance to provide inputs allowing the allocation of resources for a configured instance.
Le module de test de conformité 17 est configuré pour vérifier la conformité du comportement d'une implémentation du système 3 de flot de données vis-à-vis de l'instance configurée. Plus particulièrement, pour un acteur a, d'une instance configurée, on appelle une « implémentation de cet acteur » toute entité concrète qui réalise le comportement spécifié pour cet acteur a,. On notera qu'il peut y avoir plusieurs implémentations pour un même acteur. En outre, pour une instance configurée, on appelle une « implémentation de cette instance configurée » toute collection d'implémentations des acteurs composant l'instance, associée aux moyens concrets leur permettant de réaliser le comportement spécifié pour cette instance. On notera également qu'il peut y avoir plusieurs implémentations pour une même instance configurée. Par ailleurs, pour une implémentation d'une instance configurée, on appelle « trace » une séquence d'événements signifiants survenus lors d'une exécution de cette implémentation. The compliance test module 17 is configured to verify the compliance of the behavior of an implementation of the data flow system 3 with the configured instance. More particularly, for an actor a, of a configured instance, we call an “implementation of this actor” any concrete entity which achieves the behavior specified for this actor a ,. Note that there can be several implementations for the same actor. In addition, for a configured instance, an “implementation of this configured instance” is called any collection of implementations of the actors composing the instance, associated with the concrete means enabling them to carry out the behavior specified for this instance. Note also that there can be several implementations for the same configured instance. Furthermore, for an implementation of a configured instance, a sequence of significant events that occurred during the execution of this implementation is called “trace”.
Avantageusement, le module de test de conformité 17 est composé d'un outil de test unitaire 171 et d'un outil de test d'intégration 173. L'outil de test unitaire 171 simule la production de données sur les canaux d'entrée de l'implémentation d'un acteur ai; et vérifie que les quantités consommées et produites par cette implémentation correspondent à celles spécifiées pour l'acteur implémenté, en respectant toutes les contraintes. L'outil de test d'intégration 173 construit l'ensemble des traces qui correspondent au comportement attendu de l'instance configurée et s'assure que la trace fournie appartient à cet ensemble valide. Advantageously, the compliance test module 17 is composed of a unit test tool 171 and an integration test tool 173. The unit test tool 171 simulates the production of data on the input channels of the implementation of an actor a i; and verifies that the quantities consumed and produced by this implementation correspond to those specified for the actor implemented, while respecting all the constraints. The integration test tool 173 constructs the set of traces which correspond to the expected behavior of the configured instance and ensures that the trace provided belongs to this valid set.
Selon un mode de réalisation avantageux de la présente invention, l'instance du système 3 comporte des rythmes rationnels de consommation et d'émission de données. Ainsi, l'instance comporte un nombre rationnel ou entier de données produites ou consommées par chaque acteur a, et pour chacun de ses canaux c, d'entrée et de sortie. According to an advantageous embodiment of the present invention, the instance of the system 3 comprises rational rates of consumption and transmission of data. Thus, the instance includes a rational or whole number of data produced or consumed by each actor a, and for each of its input and output channels c.
Ce mode de réalisation permet d'intégrer des contraintes de fréquence au niveau du modèle formel et dans la vérification des propriétés et, par conséquent, permet à deux acteurs a, et aj communiquant entre eux via un canal c, de fonctionner selon des fréquences différentes sans aucune perte de données de communication entre ces deux acteurs (voir l'exemple de la Fig. 4). L'outil 1 de conception et de validation selon la présente invention garantit la faisabilité et la cohérence du système 3 flot de données en permettant la vérification de l'ensemble prédéterminé de propriétés comportementales couvrant toutes les reconfigurations et toutes les contraintes de fréquence, de période et de dimensionnement de ressources. Cet ensemble prédéterminé de propriétés comportementales comporte les quatre propriétés suivantes. This embodiment makes it possible to integrate frequency constraints at the level of the formal model and in the verification of the properties and, consequently, allows two actors a, and a j communicating with each other via a channel c, to operate according to frequencies different without any loss of communication data between these two actors (see the example in Fig. 4). The design and validation tool 1 according to the present invention guarantees the feasibility and consistency of the data flow system 3 by allowing verification of the predetermined set of behavioral properties covering all the reconfigurations and all the frequency and period constraints. and sizing of resources. This predetermined set of behavioral properties has the following four properties.
La première propriété PI vérifie que les ressources nécessaires à l'implémentation des communications entre acteurs sans perte de données sont bornées pour une exécution périodique du système spécifié. Ceci permet par exemple de dimensionner les mémoires nécessaires pour stocker les données sans perte. The first PI property verifies that the resources necessary for the implementation of communications between actors without loss of data are limited for periodic execution of the specified system. This allows for example to size the memories necessary to store data without loss.
La Fig. 2A montre un exemple d'un flot de données ne respectant pas la première propriété. Cet exemple montre un système comportant des premier et second acteurs ai et a2 s'échangeant mutuellement des données à travers les canaux Ci et c2. Le premier acteur ai spécifie qu'il produit et consomme une donnée à chaque activation. Le deuxième acteur a2 spécifie qu'il produit deux données et en consomme une à chaque activation. Toutefois, les ressources nécessaires pour stocker les données sur le canal de sortie c2 du deuxième acteur a2 ne peuvent pas être bornées pour un nombre indéfini d'activations de ces acteurs. Ainsi, dans cette situation la première propriété PI n'est pas vérifiée. Fig. 2A shows an example of a data flow not respecting the first property. This example shows a system comprising first and second actors ai and a 2 exchanging data with each other through the channels Ci and c 2 . The first actor ai specifies that it produces and consumes data at each activation. The second actor has 2 specifies that he produces two data and consumes one on each activation. However, the resources necessary to store the data on the output channel c 2 of the second actor a 2 cannot be limited for an indefinite number of activations of these actors. Thus, in this situation the first PI property is not checked.
La deuxième propriété P2 vérifie le fait que les contraintes de fréquence et/ou de période peuvent être respectées sans que la première propriété soit remise en cause. The second property P2 verifies that the frequency and / or period constraints can be respected without the first property being called into question.
La Fig. 2B montre un exemple d'un flot de données ne respectant pas la deuxième propriété. Cet exemple montre également un système à deux acteurs ai et a2, le premier acteur produisant une donnée par activation qui sera consommée par chaque activation du deuxième acteur. Les contraintes de fréquence sont telles que le premier acteur ai doit s'activer à 100Hz et le deuxième a2 à 10Hz. Toutefois, les ressources nécessaires pour stocker les données sur le canal Ci connectant les deux acteurs ai et a2 ne peuvent pas être bornées pour un nombre indéfini d'activations, bien qu'elles soient bornées si on retire les contraintes de fréquence. Fig. 2B shows an example of a data flow not respecting the second property. This example also shows a system with two actors ai and a 2 , the first actor producing a data by activation which will be consumed by each activation of the second actor. The frequency constraints are such that the first actor ai must activate at 100Hz and the second has 2 at 10Hz. However, the resources necessary to store data on the channel Ci connecting the two actors ai and a 2 cannot be limited for an indefinite number of activations, although they are limited if the frequency constraints are removed.
La troisième propriété P3 vérifie la non-existence d'inter-blocage pour tout nombre d'activations des acteurs. Un inter-blocage peut résulter dans une situation où un ensemble d'acteurs s'échangent des données de manière cyclique. En reprenant l'exemple de la Fig. 2A, en l'absence d'une donnée présente initialement sur un des deux canaux ci et c2, aucun des acteurs ai et a2 ne peut s'activer. Ainsi, la troisième propriété P3 permet de prendre en compte le cas de flot de données cyclique. The third property P3 verifies the non-existence of inter-blocking for any number of activations of the actors. Interlock can result in a situation where a set of actors exchange data cyclically. Using the example of FIG. 2A, in the absence of data initially present on one of the two channels ci and c 2 , none of the actors ai and a 2 can activate. Thus, the third property P3 makes it possible to take into account the case of cyclic data flow.
La quatrième propriété P4 vérifie la non-existence d'état inconnu dans le système pour toutes les reconfigurations spécifiées, il n'y a pas d'acteur dans le système qui ne s'exécute dans aucune des reconfigurations spécifiées, et aucune des autres propriétés n'étant remise en cause par des changements dynamiques de configuration. The fourth property P4 checks the non-existence of an unknown state in the system for all the specified reconfigurations, there is no actor in the system which does not execute in any of the specified reconfigurations, and none of the other properties not being challenged by dynamic configuration changes.
La Fig. 2C montre un exemple d'un flot de données ne respectant pas la quatrième propriété. Cet exemple montre un système à trois acteurs a1; a2 et a3 et selon deux reconfigurations possibles. Un premier acteur ai produit une donnée par activation, qui est consommée par chaque activation d'un deuxième acteur a2, et ce deuxième acteur a2 produit lui-même une donnée par activation, consommée par chaque activation d'un troisième acteur a3. Dans une première configuration seuls les premier et deuxième acteurs a3 et a2 s'exécutent et le troisième acteur a3 passe. Dans une deuxième configuration R2 seuls les deuxième et troisième acteurs a2 et a3 s'exécutent et le premier acteur a3 passe. Dans un tel système, si le mode de reconfiguration choisi est toujours la première configuration Ri, alors les ressources nécessaires pour stocker les données sur le canal c2 entre le deuxième acteur a2 et le troisième acteur a3 ne sont pas bornées pour un nombre indéterminé d'activations. A l'inverse, il y a un inter-blocage si la deuxième configuration R2 est toujours choisie. Enfin, si on modifie l'exemple tel que n'importe lequel de ces acteurs a3, a2 et a3 ne s'active dans aucune configuration, on aboutit à des situations similaires. Ainsi, la quatrième propriété P4 permet de vérifier la cohérence du système pour tous les modes de reconfigurations spécifiés en s'assurant qu'il n'y ait aucune information contradictoire. Fig. 2C shows an example of a data stream not respecting the fourth property. This example shows a system with three actors a 1; a 2 and a 3 and according to two possible reconfigurations. A first actor has produced a data by activation, which is consumed by each activation of a second actor a 2 , and this second actor has 2 produced himself a data by activation, consumed by each activation of a third actor has 3 . In a first configuration only the first and second actors at 3 and a 2 execute and the third actor at 3 passes. In a second configuration R 2 only the second and third actors a 2 and a 3 are executed and the first actor has 3 passes. In such a system, if the reconfiguration mode chosen is always the first configuration Ri, then the resources necessary to store the data on the channel c 2 between the second actor a 2 and the third actor a 3 are not bounded for a number indefinite activations. Conversely, there is an interlock if the second configuration R 2 is always chosen. Finally, if we modify the example such that any of these actors has 3 , a 2 and a 3 does not activate in any configuration, we end up with similar situations. So the fourth property P4 allows to verify the consistency of the system for all the reconfiguration modes specified, ensuring that there is no contradictory information.
On notera que contrairement aux méthodes de l'état de l'art, la manière dont la notion de reconfiguration est exprimée selon la présente invention permet de prouver de manière exhaustive les quatre propriétés P1-P4. It will be noted that, unlike the methods of the state of the art, the way in which the concept of reconfiguration is expressed according to the present invention makes it possible to prove exhaustively the four properties P1-P4.
La Fig. 3 illustre de manière schématique un procédé de conception et de validation d'un système flots de données, selon un mode de réalisation de l'invention. Fig. 3 schematically illustrates a method of designing and validating a data flow system, according to an embodiment of the invention.
On notera que les étapes qui se trouvent sur un même niveau peuvent s'enchaîner parallèlement à la suite de l'étape précédente. En outre, les étapes illustrées avec une spirale (i.e. les étapes E22, E41-E43, et E52) dénotent la possibilité d'appliquer plusieurs fois cette étape pour des configurations différentes d'une même instance, ou des implémentations différentes d'une même instance configurée, ou des traces différentes d'une même implémentation. It will be noted that the steps which are on the same level can be linked in parallel following the previous step. In addition, the steps illustrated with a spiral (ie steps E22, E41-E43, and E52) denote the possibility of applying this step several times for different configurations of the same instance, or different implementations of the same configured instance, or different traces of the same implementation.
L'étape El concerne la génération d'une instance par la spécification d'un système 3 flot de données reconfigurable temps-réel dans le but de pouvoir prouver l'ensemble des quatre propriétés comportementales P1-P4 de ce système 3 définies ci-dessus. Step E1 concerns the generation of an instance by specifying a system 3 real-time reconfigurable data flow in order to be able to prove all of the four behavioral properties P1-P4 of this system 3 defined above. .
L'instance du système 3 comporte tous les éléments définissant le formalisme du modèle de calcul. Ces éléments comportent l'ensemble des acteurs a,, aj comprenant les acteurs dits génériques qui traitent des données et des acteurs dits de mode qui sont en charge de signaler des reconfigurations et/ou de traiter des données ; l'ensemble des canaux ci; q connectant ces acteurs entre eux ; le nombre de données produites ou consommées par acteur pour chacun de ses canaux d'entrée ou de sortie, avec la possibilité pour un canal d'avoir un seul de ces nombres qui soit un nombre rationnel ; l'ensemble de modes de reconfigurations ; les contraintes de fréquence maximales pour certains acteurs génériques ou de mode ; les contraintes de fréquence minimales pour certains acteurs génériques ou de mode ; et l'état initial du système. L'étape E21 concerne la vérification par une analyse statique de l'ensemble de propriétés comportementales P1-P4 pour cette instance. Ceci permet de vérifier la faisabilité du système indépendamment des ressources allouées. The instance of system 3 includes all the elements defining the formalism of the calculation model. These elements include all of the actors a ,, a j including the so-called generic actors who process data and the so-called fashion actors who are in charge of signaling reconfigurations and / or of processing data; the set of channels c i; q connecting these actors to each other; the number of data produced or consumed per actor for each of its input or output channels, with the possibility for a channel to have only one of these numbers which is a rational number; the set of reconfiguration modes; maximum frequency constraints for certain generic or fashion players; minimum frequency constraints for certain generic or fashion players; and the initial state of the system. Step E21 concerns the verification by a static analysis of the set of behavioral properties P1-P4 for this instance. This allows the feasibility of the system to be verified independently of the resources allocated.
L'étape E22 concerne l'obtention des contraintes temporelles pour cette instance. Step E22 relates to obtaining time constraints for this instance.
L'étape E3 concerne la construction des contraintes d'ordonnancement et les traces valides (i.e. ensemble des états valides) pour l'instance configurée dans les étapes précédentes. Cette étape permet de définir l'ordre dans lequel les acteurs doivent faire leurs opérations en fonction des données et des contraintes temporelles. Step E3 concerns the construction of the scheduling constraints and the valid traces (i.e. set of valid states) for the instance configured in the previous steps. This step makes it possible to define the order in which the actors must make their operations according to the data and the time constraints.
A l'étape E41 des ressources sont allouées pour respecter les contraintes d'ordonnancement de l'instance configurée. In step E41 resources are allocated to respect the scheduling constraints of the configured instance.
A l'étape E42, on obtient une implémentation d'un acteur de l'instance configurée. In step E42, an implementation of an actor of the configured instance is obtained.
A l'étape E43, on obtient une implémentation de l'instance configurée. In step E43, an implementation of the configured instance is obtained.
A l'étape E51, on teste la conformité de l'implémentation de l'étape E42. In step E51, the conformity of the implementation of step E42 is tested.
A l'étape E52, on obtient une trace de l'implémentation de l'étape E43. In step E52, a trace of the implementation of step E43 is obtained.
Finalement, à l'étape E6, on teste la conformité de la trace obtenue à l'étape E43 permettant ainsi de vérifier la conformité de l'implémentation au modèle spécifié. Finally, in step E6, the conformity of the trace obtained in step E43 is tested, thus making it possible to verify the conformity of the implementation with the specified model.
Le procédé selon la Fig. 3 couvre ainsi la spécification d'un système 3 flot de données reconfigurable temps-réel, la configuration d'une allocation de ressources et la vérification de la conformité du comportement d'une implémentation du système, en prenant en compte les quatre propriétés P1-P4 ci-dessus dans leur ensemble. The method according to FIG. 3 thus covers the specification of a system 3 real-time reconfigurable data flow, the configuration of a resource allocation and the verification of the conformity of the behavior of a system implementation, taking into account the four properties P1- P4 above as a whole.
La Fig. 4 illustre de manière schématique un exemple d'un système flots de données modélisé par un graphe selon un mode de réalisation de l'invention. Fig. 4 schematically illustrates an example of a data flow system modeled by a graph according to an embodiment of the invention.
Le graphe modélise un flot de données avec des contraintes de fréquence, différents modes de reconfigurations et des données initiales disponibles pour une consommation initiale. Les cercles a a5 représentent des acteurs dits génériques qui effectuent des traitements sur les données. Ces acteurs génériques ai-a5 sont ainsi adaptés pour consommer des données, faire des calculs pour transformer les données et produire des résultats. Les triangles a6 et a7 représentent des acteurs dits « horloge » a6 ou « échéance » a7qui produisent et consomment des données avec des contraintes de fréquence. Le carré a8 représente un acteur dit de mode a8 en charge de signaler des reconfigurations. Les arcs dirigés Ci-Cio sont des canaux unidirectionnels indiquant chacun un flot de données entre deux acteurs et les valeurs numériques associées donnant la quantité de données produite ou consommée sur le canal. The graph models a data flow with frequency constraints, different reconfiguration modes and initial data available for initial consumption. The circles aa 5 represent so-called generic actors who carry out data processing. These generic actors ai-a 5 are thus adapted to consume data, make calculations to transform the data and produce results. The triangles a 6 and a 7 represent actors called "clock" at 6 or "deadline" at 7 which produce and consume data with frequency constraints. The square a 8 represents a so-called mode 8 actor responsible for signaling reconfigurations. The Ci-Cio directed arcs are unidirectional channels each indicating a stream of data between two actors and the associated numerical values giving the amount of data produced or consumed on the channel.
Selon cet exemple, le système 3 modélisé est composé de cinq acteurs génériques a a5, deux acteurs temporels a6 et a7 (horloge et échéance) et d'un acteur de mode a8. Un premier acteur générique ai (acteur d'acquisition) fait l'acquisition de données fournies par un acteur horloge a6 à 30Hz. Un deuxième acteur générique a2 (acteur de commande) envoie une commande à un acteur actuateur a7 à 10Hz. La commande est déterminée selon le résultat d'une chaîne de traitement reconfigurable constituée d'un troisième acteur générique a3 (acteur de prétraitement) effectuant un prétraitement de la donnée produite par l'acteur d'acquisition ai dans toutes les reconfigurations possibles. Dans une première configuration (mode noté par l-^), un quatrième acteur générique a4 (acteur rapide) effectue un traitement rapide et basse définition de la donnée prétraitée par l'acteur de prétraitement a3. Dans la deuxième reconfiguration (mode noté par /l2), un cinquième acteur générique a5 (acteur lent) effectue un traitement lent mais de haute définition. Ainsi, le chemin de traitement des données de la première configuration lί est le chemin reliant l'acteur d'acquisition a3a l'acteur de prétraitement a3, à l'acteur de traitement rapide a4 et puis finalement à l'acteur de commande a2. La deuxième configuration l2 est définie par le chemin reliant l'acteur d'acquisition ai à l'acteur de prétraitement a3, à l'acteur de traitement lent a5 et puis finalement à l'acteur de commande a2. Ainsi, la configuration se propage d'un acteur à un autre et par conséquent, aucune synchronisation centralisée sur ces modes de reconfigurations n'est nécessaire. Chaque acteur va communiquer à son voisin le mode de configuration dans lequel il doit fonctionner. Le choix de la configuration courante est effectué par l'acteur de mode a8 qui utilise de préférence le traitement haute définition lorsqu'il est disponible. According to this example, the modeled system 3 is composed of five generic actors aa 5 , two time actors a 6 and a 7 (clock and deadline) and a mode actor a 8 . A first generic actor ai (acquisition actor) acquires data supplied by a clock actor at 6 at 30Hz. A second generic actor a 2 (control actor) sends a command to an actuator actor at 7 at 10 Hz. The command is determined according to the result of a reconfigurable processing chain consisting of a third generic actor a 3 (preprocessing actor) performing a preprocessing of the data produced by the acquisition actor ai in all possible reconfigurations. In a first configuration (mode noted by l- ^), a fourth generic actor a 4 (fast actor) performs a fast and low definition processing of the data pretreated by the pretreatment actor a 3 . In the second reconfiguration (mode noted by / l 2 ), a fifth generic actor a 5 (slow actor) performs a slow but high definition processing. Thus, the data processing path of the first configuration l ί is the path connecting the acquisition actor to 3 to the preprocessing actor to 3 , to the fast processing actor to 4 and then finally to the command actor has 2 . The second configuration l 2 is defined by the path connecting the acquisition actor ai to the preprocessing actor a 3 , to the slow processing actor a 5 and then finally to the control actor a 2 . Thus, the configuration propagates from one actor to another and therefore, no centralized synchronization on these reconfiguration modes is necessary. Each actor will communicate to his neighbor the configuration mode in which it must work. The choice of the current configuration is made by the mode actor a 8 who preferably uses high definition processing when available.
Selon cet exemple, l'acteur de traitement rapide a4 à chaque fois qu'il s'active consomme une donnée sur son canal d'entrée c3 (représenté sur le canal c3 par un « 1 ») et produit une donnée sur son canal de sortie c4(représenté sur le canal c4 par un « 1 »). De même pour l'acteur de traitement lent a5 qui consomme une donnée sur son canal d'entrée c5 et produit une donnée sur son canal de sortie c6. L'acteur de commande a2 à chaque fois qu'il s'active consomme une donnée sur son premier canal d'entrée c4 ou sur son deuxième canal d'entrée c4 (selon le mode de configuration) et produit une donnée sur son canal de sortie c2. L'acteur de prétraitement a3 à chaque fois qu'il s'active consomme une donnée sur son premier canal d'entrée Ci et une donnée sur son deuxième canal d'entrée c9et produit une donnée sur son premier canal de sortie c3 ou sur son deuxième canal de sortie c5 (selon le mode de configuration). According to this example, the rapid processing actor has 4 each time he activates consumes data on his input channel c 3 (represented on channel c 3 by a "1") and produces data on its output channel c 4 (represented on channel c 4 by a “1”). Likewise for the slow processing actor a 5 which consumes data on its input channel c 5 and produces data on its output channel c 6 . The control actor has 2 each time it activates consumes data on its first input channel c 4 or on its second input channel c 4 (depending on the configuration mode) and produces data on its output channel c 2 . The pretreatment actor a 3 each time he activates consumes a datum on its first input channel Ci and a datum on its second input channel c 9 and produces a datum on its first output channel c 3 or on its second output channel c 5 (depending on the configuration mode).
En revanche, l'acteur d'acquisition ai consomme un nombre rationnel de données sur son canal d'entrée c2 (représenté sur le canal d'entrée c2 par la valeur « 1/3 ») et produit un nombre rationnel de données sur son canal de sortie Ci (représenté sur le canal de sortie Ci par la valeur « 1/3 »). Ceci veut dire que l'acteur d'acquisition ai consomme ou produit une donnée toutes les trois activations. L'exemple de la Fig. 4 montre qu'à l'état initial, il y a un jeton Tl (i.e. une donnée) disponible sur le canal c2 (entre l'acteur de commande a2 et l'acteur d'acquisition ai. Alors, l'acteur d'acquisition ai va consommer cette donnée existante sur ce canal c2 et va produire une donnée sur son canal de sortie c3 (i.e. le canal c3 reliant l'acteur d'acquisition a3 a l'acteur de prétraitement a3). Ainsi, l'acteur d'acquisition a3 a consommée une donnée et a produit une donnée. En revanche, sur ses deux prochaines activations, il va consommer zéro donnée et produire zéro donnée. Autrement dit, l'acteur d'acquisition a3 consomme une donnée et produit une donnée toutes les trois activations. Ceci permet de synchroniser les données entre deux acteurs fonctionnant selon des fréquences différentes sans aucune perte de données. En effet, selon cet exemple, l'acquisition apparaît trois fois pour chaque commande permettant ainsi le transfert de données entre l'acteur d'acquisition ai fonctionnant à 30 Hz et l'acteur de commande a2 fonctionnant à 10 Hz sans aucune perte de données. On the other hand, the acquisition actor ai consumes a rational number of data on its input channel c 2 (represented on the input channel c 2 by the value "1/3") and produces a rational number of data on its output channel Ci (represented on the output channel Ci by the value "1/3"). This means that the acquisition actor ai consumes or produces a data item every three activations. The example in Fig. 4 shows that in the initial state, there is a token Tl (ie a datum) available on the channel c 2 (between the control actor a 2 and the acquisition actor ai. Then, the actor of acquisition ai will consume this existing data on this channel c 2 and will produce a data on its output channel c 3 (ie channel c 3 connecting the acquisition actor to 3 to the pretreatment actor to 3 ) Thus, the acquisition actor has 3 consumed a data and produced a data. On the other hand, on his next two activations, he will consume zero data and produce zero data. In other words, the acquisition actor has 3 consumes a datum and produces a datum every three activations. This allows synchronization of the data between two actors operating at different frequencies without any loss of data. Indeed, according to this example, the acquisition appears three times for each command thus allowing the transfer of data between the acquisition actor ai operating at 30 Hz and the control actor a 2 operating at 10 Hz without any loss of data.
Dans la suite, on résume les éléments essentiels de la définition formelle du modèle de calcul (i.e. formalisme) en faisant référence à titre d'exemple au système 3 de la Fig.4. Selon ce formalisme, la spécification d'un flot de données se compose des éléments F1-F9 suivants : In the following, we summarize the essential elements of the formal definition of the calculation model (i.e. formalism) with reference, as an example, to system 3 in Fig. 4. According to this formalism, the specification of a data stream consists of the following F1-F9 elements:
Fl : On définit l'ensemble des acteurs génériques ai-a5 qui traitent des données, ainsi que l'ensemble des acteurs de mode a6 et a7 qui traitent des données et/ou sélectionnent des modes de configurations. Fl: We define the set of generic actors ai-a 5 which process data, as well as the set of mode actors a 6 and a 7 which process data and / or select configuration modes.
F2 : On définit, l'ensemble des canaux c Cio connectant les acteurs entre eux, chaque acteur étant associé à au moins un canal d'entrée ou de sortie. F2: We define the set of channels c Ci o connecting the actors to each other, each actor being associated with at least one input or output channel.
F3 : On définit le nombre de données produites ou consommées par acteur pour chacun de ses canaux d'entrée ou de sortie, avec avantageusement la possibilité pour un canal d'avoir un seul de ces nombres qui soit un nombre rationnel. Ces nombres sont représentés par les valeurs sur les arcs Ci-Cio connectant les acteurs de l'exemple de la Fig. 4. F3: We define the number of data produced or consumed by actor for each of its input or output channels, with advantageously the possibility for a channel to have only one of these numbers which is a rational number. These numbers are represented by the values on the Ci-Cio arcs connecting the actors of the example in FIG. 4.
F4 : Pour chaque acteur de mode a8 d'un ensemble non vide de modes, l'acteur de mode a8 étant en charge de choisir dynamiquement pour chacune de ses activations un et un seul de ces modes (Ces modes sont notés l et l2). Le choix de la configuration courante est avantageusement fait par un acteur de mode a8 unique et cette configuration courante se propage de manière distribuée d'un acteur à un autre. F4: For each mode actor a 8 of a non-empty set of modes, the mode actor a 8 being in charge of choosing dynamically for each of his activations one and only one of these modes (These modes are noted l and l 2 ). The choice of the current configuration is advantageously made by a single 8- mode actor and this current configuration is propagated in a distributed manner from one actor to another.
F5 : Pour chaque acteur générique ai-a5, on définit l'ensemble des modes dans lesquels il s'exécute, et l'ensemble implicite de tous les autres modes dans lesquels il passe. On notera que l'ensemble des modes dans lesquels un acteur générique s'exécute est soit un mode nominal commun à tout le système, soit un sous-ensemble des modes choisis par des acteurs de mode. Dans l'exemple de la Fig. 4, tous les acteurs à l'exception des acteurs de prétraitement a3, de traitement rapide a4 et traitement lent a5 s'exécutent dans le mode nominal sachant que l'acteur de prétraitement a3 s'exécute dans les modes l et l2, l'acteur de traitement rapide a4 s'exécute dans le mode Àlf et l'acteur de traitement lent a5 s'exécute dans le mode l2. F5: For each generic actor ai-a 5 , we define the set of modes in which it is executed, and the implicit set of all the other modes in which it passes. It will be noted that the set of modes in which a generic actor is executed is either a nominal mode common to the whole system, or a subset of the modes chosen by mode actors. In the example of FIG. 4, all the actors except the actors of preprocessing at 3 , fast processing at 4 and slow processing at 5 are executed in the mode nominal knowing that the preprocessing actor has 3 runs in modes l and l 2 , the fast processing actor has 4 runs in mode À lf and the slow processing actor has 5 runs in l mode 2 .
F6 : Etant donnés les différents modes, on définit un ensemble implicite de canaux de rétroaction comme l'ensemble des canaux connectant deux acteurs génériques s'exécutant chacun dans au moins un des modes choisis par un même acteur de mode, et tels qu'il existe un chemin sans répétition partant de l'acteur de mode et se terminant par l'acteur producteur sur ce canal, en passant par un acteur consommateur. F6: Given the different modes, an implicit set of feedback channels is defined as the set of channels connecting two generic actors each running in at least one of the modes chosen by the same mode actor, and such that There is a path without repetition starting from the fashion actor and ending with the producer actor on this channel, passing by a consumer actor.
F7 : On définit des contraintes de fréquence maximale pour certains acteurs génériques ou de mode. Une manière possible de les exprimer est par des acteurs dits d'horloge a6 auxquels on associe une fréquence. Dans l'exemple de la Fig. 4, l'acteur d'acquisition ai a une contrainte de fréquence maximale de 30Hz, exprimée par l'acteur horloge a6 avec pour fréquence 30Hz, l'arc c7 les connectant, et les quantités de données associées. F7: We define maximum frequency constraints for certain generic or fashion players. One possible way of expressing them is by so-called 6 clock actors with which a frequency is associated. In the example of FIG. 4, the acquisition actor ai has a maximum frequency constraint of 30 Hz, expressed by the clock actor at 6 with the frequency 30 Hz, the arc c 7 connecting them, and the quantities of associated data.
F8 : On définit des contraintes de fréquence minimale pour certains acteurs génériques ou de mode. Une manière possible de les exprimer est par des acteurs dits d'échéance a7 auxquels on associe une fréquence. Dans l'exemple de la Fig. 4, l'acteur de commande a2 a une contrainte de fréquence minimale de 10Hz, exprimée par l'acteur échéance a7 avec pour fréquence 10H z, l'arc c8 les connectant, et les quantités de données associées. On notera qu'un même acteur peut être contraint de fonctionner à une fréquence minimale et maximale, dans ce cas c'est une contrainte de fréquence exacte. Autrement dit, une contrainte de fréquence est soit maximale (pas plus que tant de fois par seconde), soit minimale (au moins tant de fois par seconde), soit exacte (exactement tant de fois par seconde). F8: We define minimum frequency constraints for certain generic or fashion players. One possible way of expressing them is by so-called actors with maturity a 7 to which a frequency is associated. In the example of FIG. 4, the control actor at 2 has a minimum frequency constraint of 10 Hz, expressed by the expiry actor at 7 with the frequency 10H z, the arc c 8 connecting them, and the quantities of associated data. It will be noted that the same actor can be forced to operate at a minimum and maximum frequency, in this case it is an exact frequency constraint. In other words, a frequency constraint is either maximum (no more than so many times per second), or minimum (at least so many times per second), or exact (exactly so many times per second).
F9 : Un état initial du système composé par canal d'un nombre rationnel et d'une séquence de modes de longueur égale à l'arrondi inférieur de ce nombre rationnel, et par acteur générique de son mode initial. Dans l'exemple de la Fig. 4, tous les acteurs ont pour mode initial le mode nominal, et les canaux marqués par un petit cercle Tl et T2 ont un état initial de valeur « 1 ». Bien entendu, l'état initial peut être exprimé par un nombre rationnel quelconque (par exemple, 2/5 ; 4/3 ;etc.) et ceci découle du fait que les rythmes de production et consommation sont rationnels selon un mode de réalisation avantageux de l'invention. F9: An initial state of the system composed by channel of a rational number and a sequence of modes of length equal to the lower rounding of this rational number, and by generic actor of its initial mode. In the example of FIG. 4, all actors have for initial mode nominal mode, and the channels marked by a small circle Tl and T2 have an initial state of value "1". Of course, the initial state can be expressed by any rational number (for example, 2/5; 4/3; etc.) and this follows from the fact that the production and consumption rhythms are rational according to an advantageous embodiment. of the invention.
En outre, pour une spécification donnée, le comportement spécifié pour le système comporte les caractéristiques C1-C7 suivantes : In addition, for a given specification, the behavior specified for the system has the following characteristics C1-C7:
Cl : La politique de production dans les canaux est une politique de premier-entré- premier-sorti (FIFO) non-bloquante. Cl: The channel production policy is a non-blocking first-in-first-out (FIFO) policy.
C2 : La politique de consommation depuis les canaux est FIFO bloquante. Ainsi, quand un acteur va produire une donnée sur un canal, il ne va pas être bloqué par l'acteur consommateur. C2: The consumption policy from the channels is blocking FIFO. Thus, when an actor will produce data on a channel, it will not be blocked by the consumer actor.
C3 : Les canaux contiennent des quantités élémentaires de données (i.e. jetons Tl, T2). Un jeton est une unité arbitraire qui indique le nombre de données sur un canal à un moment donné. Les jetons sont tous constitués d'un mode et soit de données signifiantes produites par une exécution, soit d'aucune donnée. Ces derniers jetons représentent avantageusement l'absence de données produites lorsque le producteur ou le consommateur passe dans un mode donné. Avantageusement, ceci permet de préserver la synchronisation entre les tâches sans le besoin d'envoyer des données effectives. C3: The channels contain elementary quantities of data (i.e. tokens Tl, T2). A token is an arbitrary unit that indicates the number of data on a channel at a given time. The tokens are all made up of a mode and either of significant data produced by an execution, or of no data. These latter tokens advantageously represent the absence of data produced when the producer or the consumer goes into a given mode. Advantageously, this makes it possible to preserve the synchronization between the tasks without the need to send effective data.
C4 : A tout instant, l'état d'un canal est un nombre rationnel, et le nombre entier de jetons qu'il contient est l'arrondi inférieur de ce nombre. Avantageusement, ceci permet de déterminer à quel moment le jeton va être consommé. Dans l'exemple de la Fig. 4, on a initialement un jeton Tl (i.e. le nombre rationnel 1/1) sur un canal c2. L'acteur d'acquisition ai va consommer 1/3 ce qui va transformer l'état du canal c2 de 1/1 à 2/3 (i.e. 1-1/3) arrondi à la valeur zéro. Toutefois, l'état du canal c2 est 2/3 qui va permettre à l'acteur d'acquisition ai lorsqu'il est activé de retirer a nouveau 1/3 ce qui va transformer l'état du canal c2de 2/3 à 1/3 (i.e. 2/3 -1/3) arrondi à la valeur zéro. Finalement, sur sa troisième activation l'acteur d'acquisition ai retire à nouveau 1/3 ce qui va transformer l'état du canal c2de 1/3 à zéro. Ainsi, un jeton Tl est consommé par l'acteur d'acquisition ai toute les trois activations. C4: At any time, the state of a channel is a rational number, and the whole number of tokens it contains is the lower rounding of this number. Advantageously, this makes it possible to determine when the token will be consumed. In the example of FIG. 4, we initially have a token Tl (ie the rational number 1/1) on a channel c 2 . The acquisition actor ai will consume 1/3 which will transform the state of channel c 2 from 1/1 to 2/3 (ie 1-1 / 3) rounded to zero. However, the state of channel c 2 is 2/3 which will allow the acquisition actor ai when activated to remove 1/3 again which will transform the state of channel c 2 from 2 / 3 to 1/3 (ie 2/3 -1/3) rounded to zero. Finally, on his third activation the actor of acquisition ai again withdraws 1/3 which will transform the state of channel c 2 from 1/3 to zero. Thus, a Tl token is consumed by the acquisition actor for all three activations.
C5 : L'activation atomique de chaque acteur (peu importe qu'il s'exécute ou qu'il passe), retire le nombre rationnel spécifié de l'état de chacun de ses canaux d'entrée et ajoute le nombre rationnel spécifié à l'état de chacun de ses canaux de sortie. On notera qu'un processus atomique est un processus indivisible de production et de consommation qui a un début et une fin bien identifiés. Le nombre de jetons consommés ou produits est la valeur absolue de la différence entre l'arrondi inférieur de l'état du canal avant activation et l'arrondi inférieur de l'état du canal après activation. C6 : A chaque activation d'un acteur de mode, il s'exécute et choisit un et un seul des modes qui lui sont associés d'une manière arbitraire. Il associe à chaque jeton produit le mode choisi par cette activation. Pour ses consommateurs qui vont potentiellement s'exécuter dans ce mode choisi, et seulement pour ceux-là, il associe à chaque jeton des données signifiantes. On notera que dans l'état de l'art, on change la quantité de données produites pour empêcher l'activation d'un successeur. En revanche, le mode de propagation selon l'invention, permet de produire systématiquement des jetons, potentiellement vides selon le mode choisi, ce qui n'empêche pas l'activation du successeur, et permet donc de préserver les propriétés (voir ci- après). C5: The atomic activation of each actor (regardless of whether it executes or passes), removes the specified rational number from the state of each of its input channels and adds the specified rational number to the status of each of its output channels. It should be noted that an atomic process is an indivisible process of production and consumption which has a clearly identified beginning and end. The number of tokens consumed or produced is the absolute value of the difference between the lower rounding of the channel state before activation and the lower rounding of the channel state after activation. C6: Each time a mode actor is activated, it executes and chooses one and only one of the modes associated with it in an arbitrary manner. He associates with each product token the mode chosen by this activation. For its consumers who will potentially run in this chosen mode, and only for those, it associates with each token significant data. It will be noted that in the state of the art, the quantity of data produced is changed to prevent the activation of a successor. On the other hand, the propagation mode according to the invention makes it possible to systematically produce tokens, potentially empty according to the mode chosen, which does not prevent activation of the successor, and therefore makes it possible to preserve the properties (see below). ).
C7 : Avant chaque activation d'un acteur générique, son mode courant est déterminé par l'ensemble L des modes associés à un jeton qui sera consommé pour chaque canal, les canaux pour lesquels aucun jeton n'est consommé dans cette activation étant ignorés. Le jeton considéré (par exemple le dernier consommé) sur chaque canal est choisi de manière déterministe. Dans une réalisation possible, la règle de détermination peut être réalisée selon les points (a)-(f) suivants : (a) : si l'ensemble L est vide (i.e. l'acteur n'a pas de prédécesseurs), le mode courant est systématiquement nominal ; (b) : si l'ensemble est un singleton, le mode courant est alors cet unique élément de L C7: Before each activation of a generic actor, its current mode is determined by the set L of modes associated with a token which will be consumed for each channel, the channels for which no token is consumed in this activation being ignored. The token considered (for example the last consumed) on each channel is chosen in a deterministic manner. In a possible embodiment, the determination rule can be performed according to the following points (a) - (f): (a): if the set L is empty (ie the actor has no predecessors), the mode current is systematically nominal; (b): if the set is a singleton, the current mode is then this unique element of L
(c) : si l'ensemble a plus d'un élément, et qu'il contient le mode indéterminé (voir ci- dessous), le mode est indéterminé ; (c): if the set has more than one element, and it contains the indeterminate mode (see below), the mode is indeterminate;
(d) : si l'ensemble a plus d'un élément, et que l'acteur s'exécute uniquement en mode nominal, le mode courant est le mode nominal ; et (d): if the set has more than one element, and the actor only executes in nominal mode, the current mode is nominal mode; and
(e) : si l'ensemble a plus d'un élément, et que l'acteur s'exécute dans un ou plusieurs des modes A sélectionnés par un acteur de mode, alors si L P L est vide, le mode courant ne change pas, si L P L est un singleton, le mode courant est l'unique élément de L P L, et le mode est indéterminé dans tous les autres cas. (e): if the set has more than one element, and the actor is executed in one or more of the modes A selected by a mode actor, then if LPL is empty, the current mode does not change, if LPL is a singleton, the current mode is the only element of LPL, and the mode is undetermined in all other cases.
L'activation de chaque acteur générique se fait dans son mode courant. Le mode courant est associé à tous les jetons produits par cette activation, sauf ceux produits sur un canal de rétroaction, auxquels est associé le mode nominal. Les données associées aux jetons produits sont déterminées par le mode courant. Si l'acteur passe dans son mode courant, les jetons produits ne contiennent aucune donnée. Si l'acteur s'exécute dans son mode courant, pour ses consommateurs qui vont potentiellement s'exécuter dans ce mode choisi, ses consommateurs qui sont connectés à lui par un canal de rétroaction, et seulement pour ceux- là, il associe à chaque jeton produit des données signifiantes. Pour tous ses autres consommateurs il n'associe aucune donnée. The activation of each generic actor is done in its current mode. The current mode is associated with all the tokens produced by this activation, except those produced on a feedback channel, with which the nominal mode is associated. The data associated with the tokens produced are determined by the current mode. If the actor goes into his current mode, the tokens produced contain no data. If the actor executes in his current mode, for his consumers who will potentially execute in this chosen mode, his consumers who are connected to him by a feedback channel, and only for these, he associates with each token produces meaningful data. For all its other consumers it does not associate any data.
Si un acteur a une contrainte de fréquence maximale, alors deux activations successives ne peuvent pas avoir lieu plus vite que cette fréquence. If an actor has a maximum frequency constraint, then two successive activations cannot take place faster than this frequency.
Si un acteur a une contrainte de fréquence minimale, alors deux activations successives ne peuvent pas avoir lieu moins vite que cette fréquence. If an actor has a minimum frequency constraint, then two successive activations cannot take place less quickly than this frequency.
Dans la suite, on donne à titre d'exemple, des méthodes pour prouver les quatre propriétés P1-P4. In the following, we give by way of example, methods for proving the four properties P1-P4.
Première propriété PI : Une façon possible de prouver la première propriété pour n'importe quelle instance se base sur des méthodes connues pour les flots de données. Toutefois, la présente preuve se démarque en prenant en compte les quantités rationnelles: Cette preuve est définie par les deux étapes suivantes Pli et P12: First PI property: One possible way of proving the first property for any instance is based on known methods for data flows. However, this proof stands out by taking into account the rational quantities: This proof is defined by the following two steps Pli and P12:
Première étape Pli : Construire une matrice, notée G, avec une ligne par canal et une colonne par acteur, et pour chaque entrée de cette matrice on a : el : la valeur 0 si l'acteur n'est pas connecté à ce canal ; e2 : le nombre (potentiellement rationnel) ajouté à l'état du canal pour chaque activation de l'acteur s'il est producteur sur ce canal ; e3 : l'opposé du nombre (potentiellement rationnel) retranché à l'état du canal pour chaque activation de l'acteur s'il est consommateur sur ce canal ; et e4 : la différence entre les nombres (dont un potentiellement rationnel) ajoutés et retranchés à l'état du canal pour chaque activation de l'acteur si il est à la fois producteur et consommateur sur ce canal. First step Fold: Construct a matrix, denoted G, with one row per channel and one column per actor, and for each entry in this matrix we have: el: the value 0 if the actor is not connected to this channel; e2: the number (potentially rational) added to the state of the channel for each activation of the actor if he is a producer on this channel; e3: the opposite of the number (potentially rational) cut off from the channel state for each activation of the actor if he is a consumer on this channel; and e4: the difference between the numbers (including one potentially rational) added and subtracted from the channel state for each activation of the actor if he is both producer and consumer on this channel.
Deuxième étape P12 : Résoudre le système d'équations permettant de trouver un vecteur d'entiers naturels x ¹ 0 tel que G. x = 0. Trouver un tel vecteur x prouve la première propriété PI. Ce vecteur est ensuite utilisé pour prouver les autres propriétés. Second step P12: Solve the system of equations allowing to find a vector of natural integers x ¹ 0 such that G. x = 0. Finding such a vector x proves the first property PI. This vector is then used to prove the other properties.
Deuxième propriété P2 : Dans une réalisation dans laquelle les contraintes de temps sont décrites comme dans la Fig. 4, la capacité de vérifier la deuxième propriété pour des instances peut se faire selon les étapes innovantes P21-P25 suivantes : Second property P2: In an embodiment in which the time constraints are described as in FIG. 4, the ability to verify the second property for instances can be done according to the following innovative steps P21-P25:
Première étape P21 : Vérifier que si un acteur a des contraintes de fréquence maximale et minimale, elles sont égales. First step P21: Check that if an actor has maximum and minimum frequency constraints, they are equal.
Deuxième étape P22 : Calculer le plus grand commun diviseur Î de toutes les contraintes de fréquence dans le système, et leur plus petit commun multiple p. Second step P22: Calculate the greatest common divisor Î of all the frequency constraints in the system, and their smallest common multiple p.
Troisième étape P23 : Etant donné le vecteur x, de manière arbitraire, choisir un acteur de colonne i dans G avec une contrainte de fréquence notée et avec l'élément xt de x. Quatrième étape P24 : Calculer le nombre entier suivant: Third step P23: Given the vector x, arbitrarily choose an actor from column i in G with a noted frequency constraint and with the element x t of x. Fourth step P24: Calculate the following whole number:
Cinquième étape P25 : Vérifier que pour tout acteur de colonne i dans G avec une contrainte de fréquence notée tOj et avec l'élément xt de x on a: k. eû Fifth step P25: Check that for any actor of column i in G with a frequency constraint noted tO j and with the element x t of x we have: k. had
Xi = - Xi = -
L The
Troisième propriété P3 : Une manière possible de prouver la troisième propriété P3 se base sur une méthode connue pour les flots de données en général mais en se démarquant par la prise en compte des quantités rationnelles. Etant donné x et l'état initial des canaux, cette méthode consiste à effectuer une activation symbolique du système dans laquelle chaque acteur de colonne i dans G est activé au moins xt fois, et s'assurer que cette exécution termine. Third property P3: One possible way of proving the third property P3 is based on a method known for data flows in general but by distinguishing itself by taking into account rational quantities. Given x and the initial state of the channels, this method consists in carrying out a symbolic activation of the system in which each actor in column i in G is activated at least x t times, and ensuring that this execution ends.
Quatrième propriété P4 : La méthode de prouver la quatrième propriété P4 découle de la manière dont les modes et les données sont associés aux jetons pour propager les modes selon le mode de réalisation innovant de la présente invention. La méthode qui suit est un exemple non limitatif de la vérification de cette propriété P4 selon les étapes P41-P47 suivantes : Fourth P4 property: The method of proving the fourth P4 property follows from the way the modes and the data are associated with the tokens to propagate the modes according to the innovative embodiment of the present invention. The method which follows is a nonlimiting example of the verification of this property P4 according to the following steps P41-P47:
Première étape P41 : Vérifier que les ensembles de modes choisis par les acteurs de mode sont disjoints deux à deux (un mode est choisi par un et un seul acteur de mode). First step P41: Check that the sets of modes chosen by the mode actors are disjoint two by two (one mode is chosen by one and only one mode actor).
Deuxième étape P42 : Vérifier également que l'ensemble des modes associés à chaque acteur générique est soit le singleton contenant le mode nominal du système, soit un sous-ensemble de l'ensemble de modes choisis par un acteur de mode. On notera que les modes associés à un acteur générique sont tous sélectionnés par le même acteur de mode. Second step P42: Also verify that the set of modes associated with each generic actor is either the singleton containing the nominal mode of the system, or a subset of the set of modes chosen by a mode actor. It will be noted that the modes associated with a generic actor are all selected by the same mode actor.
Troisième étape P43 : Vérifier que si un acteur générique a un ensemble de modes associé qui est un sous-ensemble de ceux choisis par un acteur de mode, alors : soit cet acteur de mode est un prédécesseur direct de cet acteur générique ; soit il y a au moins un des prédécesseurs directs de cet acteur tel que l'ensemble des modes associés à ce prédécesseur est un sous-ensemble de l'ensemble des modes choisis par cet acteur de mode. Third step P43: Check that if a generic actor has an associated set of modes which is a subset of those chosen by a mode actor, then: either this actor de mode is a direct predecessor of this generic player; or there is at least one of the direct predecessors of this actor such that the set of modes associated with this predecessor is a subset of the set of modes chosen by this mode actor.
Quatrième étape P44 : Pour tous les acteurs de colonne i dans G qui s'exécutent dans au moins un mode choisi par un même acteur de mode de colonne j dans G, et qui sont sur un chemin partant de cet acteur de mode, et passant uniquement par des acteurs qui s'exécutent dans au moins un des modes choisis par cet acteur de mode, alors : Fourth step P44: For all the actors of column i in G which are executed in at least one mode chosen by the same mode actor of column j in G, and who are on a path starting from this mode actor, and passing only by actors who execute themselves in at least one of the modes chosen by this mode actor, then:
(a) Etant donné l'état initial des canaux, calculer le délai initial noté dt tel que pour les dj premières activations de l'acteur i son mode courant est connu ; (b) Pour chaque canal d'entrée (sauf canal de rétroaction) avec pour producteur un acteur de colonne k dans G qui soit s'exécute dans un mode choisi par l'acteur de mode de colonne j dans G, soit est l'acteur de mode de colonne j dans G, calculer la période de changement de mode locale notée pik telle que : (a) Given the initial state of the channels, calculate the initial delay noted d t such that for the first d j activations of the actor i its current mode is known; (b) For each input channel (except feedback channel) with for actor a column actor k in G which is either executed in a mode chosen by the column mode actor j in G, or is the column mode actor j in G, calculate the local mode change period denoted p ik such that:
(c) Calculer la période de changement de mode notée pt comme étant le maximum des périodes locales calculées précédemment : (c) Calculate the mode change period noted p t as the maximum of the local periods previously calculated:
Pi = m Vafcx(Pife) Pi = m Vafcx (Pi f e)
(d) Vérifier que pour toute période locale calculée précédemment la période de changement de mode est un multiple de cette période locale : (d) Check that for any local period previously calculated, the mode change period is a multiple of this local period:
VPife, 3nfc e N, nk. pik = pt VPi f e, 3n fc e N, n k . p ik = p t
Cinquième étape P45 : Etant donné x, et le plus grand commun diviseur des composantes de x noté g, calculer un vecteur y . x avec k un entier naturel tel que pour Fifth step P45: Given x, and the greatest common divisor of the components of x denoted by g, calculate a vector y. x with k a natural integer such that for
chacun des acteurs considérés à l'étape précédente, on a : each of the actors considered in the previous step, we have:
Sixième étape P46 : Effectuer une exécution symbolique du flot de données avec au moins yt activations pour tous les acteurs, en considérant que la manière dont les acteurs de mode choisissent un mode à chaque activation est une sélection tourniquet (rou nd-robin) de tous les modes qu'ils choisissent. Sixth step P46: Perform a symbolic execution of the data flow with at least y t activations for all the actors, considering that the way in which the mode actors choose a mode on each activation is a tourniquet selection (rou nd-robin) of whatever modes they choose.
Septième étape P47 : S'assurer qu'aucun mode n'était indéterminé dans l'exécution symbolique. Seventh step P47: Ensure that no mode was undefined in the symbolic execution.
Les contraintes temporelles pour une instance sont com posées des éléments suivants : un budget de temps pour tous les acteurs ; un délai initial pour tous les acteurs ; u n symbole associé à chaque acteur le déclarant comme étant soit persistant soit éphémère ; u n symbole associé à chaque acteur avec une contrainte de fréquence minimale déclarant sa contrainte comme étant stricte ou relâchée ; et une échéance initiale associée à chaque acteur avec une contrainte de fréquence minimale. The time constraints for an instance are made up of the following elements: a time budget for all the actors; an initial deadline for all actors; a symbol associated with each actor declaring it to be either persistent or ephemeral; a symbol associated with each actor with a minimum frequency constraint declaring its constraint as being strict or relaxed; and an initial deadline associated with each actor with a minimum frequency constraint.
Pour une instance configurée, le comportement spécifié est le même que décrit précédemment pou r une instance seule, mais avec les contraintes suivantes en plus : Une horloge mesure l'écoulement du tem ps à partir d'une date initiale. Le temps écoulé entre le début et la fin de l'activation de n'importe quel acteur est inférieur ou égal au budget associé à cet acteur. Aucune activation d'un acteur ne commence avant que son délai initial ne soit écoulé. Le début d'une activation d'un acteur éphémère a toujours lieu après le début de la précédente activation de ce même acteur. Le début d'une activation d'un acteur persistant a toujours lieu après la fin de la précédente activation de ce même acteur. Pour un acteur avec une contrainte de fréquence minimale, à chacu ne de ses activations est associée une échéance. Pou r la première activation, cette échéance est égale à l'échéance initiale, et pour les suivantes, leur échéance est égale à l'échéance de la précédente activation de ce même acteur plus l'inverse de la fréquence minimale (i.e. la période minimale). La fin de l'activation d'un acteur avec une contrainte de fréquence minimale a toujours lieu avant son échéance. Pour un acteur avec une contrainte de fréquence maximale, à chacune de ses activations est associé un délai ; pour la première activation, cette échéance est égale au délai initial, et pour les suivantes, leur délai est égal au délai de la précédente activation de ce même acteur plus l'inverse de la fréquence maximale (i.e. la période maximale). Le début de l'activation d'un acteur avec une contrainte de fréquence maximale a toujours lieu après son délai. For a configured instance, the behavior specified is the same as described above for a single instance, but with the following additional constraints: A clock measures the flow of the time from an initial date. The time between the start and end of the activation of any actor is less than or equal to the budget associated with that actor. No activation of an actor begins before its initial delay has elapsed. The start of an activation of an ephemeral actor always takes place after the start of the previous activation of this same actor. The start of an activation of a persistent actor always takes place after the end of the previous activation of this same actor. For an actor with a minimum frequency constraint, each of its activations is associated with a deadline. For the first activation, this deadline is equal to the initial deadline, and for the following ones, their deadline is equal to the deadline for the previous activation of this same actor plus the inverse of the minimum frequency (ie the minimum period ). The end of the activation of an actor with a minimum frequency constraint always takes place before its expiration. For an actor with a maximum frequency constraint, a delay is associated with each of its activations; for the first activation, this deadline is equal to the initial delay, and for the following ones, their delay is equal to the delay for the previous activation of this same actor plus the inverse of the maximum frequency (ie the maximum period). The start of the activation of an actor with a maximum frequency constraint always takes place after its delay.
Le procédé de construction des contraintes d'ordonnancement (entrées pour des méthodologies existantes d'allocation de ressources) comporte les étapes suivantes : The process of constructing scheduling constraints (entries for existing methodologies for resource allocation) includes the following steps:
Etape 1 : Etant donné x, associer à chaque acteur de colonne i dans G une séquence d'au moins 2. xt éléments où le jeme élément est défini par : une variable stj pour la date de début de la jeme activation de i une variable etj pour la date de fin de la jeme activation de i et une variable dtj pour l'échéance de la jeme activation de i. Step 1: Given x, associate with each actor of column i in G a sequence of at least 2. x t elements where the j th element is defined by: a variable s tj for the start date of the j th activation of i a variable e tj for the end date of the i th activation of i and a variable d tj for the expiration of the i th activation of i.
Etape 2 : Définir un ensemble de contraintes linéaires telles que : Si d'après la matrice G et l'état initial des canaux la jeme activation d'un acteur i consomme au moins un jeton depuis un canal et que ce même jeton est produit par la leme activation d'un acteur k alors on a ekt £ Sij. Si la jeme activation d'un acteur persistant i est l'activation succédant directement à la keme activation de ce même acteur (i.e. k = j— 1), alors on a eik £ stj. Si la jeme activation d'un acteur éphémère i est l'activation succédant directement à la keme activation de ce même acteur (i.e. k = j— 1), alors on a sik £ s^. Pour la lere activation d'un acteur i avec un délai initial noté f, on a f £ stl. Pour la jeme activation d'un acteur avec une contrainte de fréquence maximale notée w et un délai initial noté f, on a f + (j— 1)/w < s^. Pour chaque variable etj, on a etj £ dtj. Step 2: Define a set of linear constraints such as: If according to the matrix G and the initial state of the channels the j th activation of an actor i consumes at least one token from a channel and this same token is produced by the th activation of an actor k then we have kt £ Si j . If the j th activation of a persistent actor i is the activation directly following the k th activation of this same actor (ie k = j— 1), then we have ik £ s tj . If the j th activation of an ephemeral actor i is the activation directly following the k th activation of this same actor (ie k = j— 1), then we have ik £ s ^. For the 1st activation of an actor i with an initial delay noted f, we have tl . For the j th activation of an actor with a maximum frequency constraint noted w and an initial delay noted f, we have af + (j— 1) / w <s ^. For each variable e tj , we have tj £ d tj .
Etape 3 : De manière itérative, jusqu'à ce que toutes les variables stj soient affectées : Pour chaque variable stj non encore affectée et telle que toutes les variables impliquées dans les contraintes linéaires la concernant sont affectées, affecter la valeur minimale autorisée par les contraintes linéaires. Pour chaque variable etj correspondant à une variable stj affectée à cette itération, avec le budget de l'acteur i noté b, affecter la valeur stj + b à etj. Etape 4 : Pour chaque variable si l'acteur i a une contrainte de fréquence minimale notée w et une échéance initiale notée d, affecter la valeur d + (j— 1 )/w. Step 3: Iteratively, until all the variables s tj are affected: For each variable s tj not yet affected and such that all the variables involved in the linear constraints concerning it are affected, assign the minimum value authorized by linear constraints. For each variable e tj corresponding to a variable s tj assigned to this iteration, with the budget of the actor i noted b, assign the value s tj + b to e tj . Step 4: For each variable if the actor has a minimum frequency constraint noted w and an initial deadline noted d, assign the value d + (j— 1) / w.
Etape 5 : Pour chaque variable e j, si l'acteur i a une contrainte de fréquence minimale stricte, s'assurer que la contrainte etj £ d tj est respectée. Step 5: For each variable e j , if the actor has a strict minimum frequency constraint, ensure that the constraint e tj £ d tj is respected.
Etape 6 : Pour chaque variable e ÿ, si l'acteur i a une contrainte de fréquence minimale relâchée, et si la contrainte etj £ dtj n'est pas respectée, affecter la valeur Step 6: For each variable e ÿ, if the actor has a relaxed minimum frequency constraint, and if the constraint e tj £ d tj is not respected, assign the value
Etape 7 : De manière itérative, jusqu'à ce que toutes les variables dtj soient affectées : Pour chaque variable dtj non encore affectée, si ont déjà été affectées toutes les variables dki telles que d'après la matrice G et l'état initial des canaux la jeme activation de l'acteur i produit au moins un jeton dans un canal et que ce même jeton est consommé par la leme activation de l'acteur k, alors affecter e + min(dfe;— eki ). Step 7: Iteratively, until all the variables d tj are assigned: For each variable d tj not yet assigned, if all the variables d ki have already been assigned such as according to the matrix G and l initial state of the channels the j th activation of the actor i produces at least one token in a channel and that this same token is consumed by the l th activation of the actor k, then assign e + min (d fe ; - e ki ).
J Vkl J Vkl
Pour l'allocation de ressources respectant les contraintes d'ordonnancement d'une instance configurée, si l'Etape 5 ci-dessus de ce procédé est passée avec succès, alors les variables s j, d de chaque activation ainsi que le budget b de chaque acteur sont des entrées suffisantes pour l'allocation de ressources d'exécution et le dimensionnement des canaux de communication pour le stockage des jetons. Pour la gestion des reconfigurations, le fait que ces informations sont disponibles pour les acteurs de mode permettent d'utiliser par exemple la méthodologie d'ordonnancement décrite dans [3]. De plus, on est assuré que cette allocation est faisable sur une quantité finie de ces ressources. For the allocation of resources respecting the scheduling constraints of a configured instance, if Step 5 above of this process has passed successfully, then the variables s j , d of each activation as well as the budget b of each actor are sufficient inputs for the allocation of execution resources and the dimensioning of communication channels for the storage of tokens. For the management of reconfigurations, the fact that this information is available for the actors of mode allows to use for example the scheduling methodology described in [3]. In addition, we are assured that this allocation is feasible on a finite quantity of these resources.
Pour vérifier la conformité d'une implémentation d'un acteur, on utilise également les variables stj, dtj de chaque activation ainsi que le budget b de cet acteur. Un environnement de test pour une implémentation d'un acteur permet de tester différents scénarios S1-S6 : To check the conformity of an implementation of an actor, we also use the variables s tj , d tj of each activation as well as the budget b of this actor. A test environment for an implementation of an actor makes it possible to test different scenarios S1-S6:
SI : Simuler la production de jetons par des activations j des prédécesseurs i de cette implémentation sous test, aux dates e tj, ces activations étant dépendantes du scénario testé. Une liste non-exhaustive des scénarios possibles est le suivant : (a) Sous-production : les activations sont choisies de telle sorte à ce qu'il n'y ait pas assez de jetons pour l'activation de cette implémentation, (b) Production exacte : les activations sont choisies de telle sorte à ce qu'il y ait le nombre minimal de jetons nécessaires pour l'activation de cette implémentation, (c) Sur-production : les activations sont choisies de telle sorte à ce qu'il y ait un nombre de jetons suffisant pour plusieurs activations successives de cette implémentation. SI: Simulate the production of tokens by activations j of the predecessors i of this implementation under test, on dates e tj , these activations being dependent on the scenario tested. A non-exhaustive list of possible scenarios is as follows: (a) Underproduction: activations are chosen so that there are not enough tokens for the activation of this implementation, (b) Exact production: activations are chosen so that there is the minimum number of tokens necessary for the activation of this implementation, (c) Overproduction: activations are chosen so that there is a sufficient number of tokens for several successive activations of this implementation.
52 : Observer le temps d'activité de cette implémentation. 52: Observe the activity time of this implementation.
53 : Observer les productions résultantes de cette implémentation. 53: Observe the productions resulting from this implementation.
54 : Vérifier que les quantités consommées par cette implémentation sont celles prévues par la spécification, à savoir pour les exemples de scénarios donnés précédemment : (a) Sous-production : cette implémentation ne s'active pas et ne consomme rien, (b) Production exacte : cette implémentation s'active exactement une fois et consomme les quantités spécifiées sur chaque canal d'entrée, (c) Sur-production : cette implémentation s'active exactement le nombre de fois successives prévu par le scénario, et consomme à chaque fois les quantités spécifiées sur chaque canal d'entrée. 54: Check that the quantities consumed by this implementation are those provided by the specification, namely for the examples of scenarios given above: (a) Underproduction: this implementation does not activate and does not consume anything, (b) Production exact: this implementation activates exactly once and consumes the quantities specified on each input channel, (c) Overproduction: this implementation activates exactly the number of successive times planned by the scenario, and consumes each time the quantities specified on each input channel.
55 : Vérifier que les quantités produites par cette implémentation sont celles prévues par la spécification, à savoir pour les exemples de scénarios donnés précédemment : (a) Sous- production : cette implémentation ne s'active pas et ne produit rien, (b) Production exacte : cette implémentation s'active exactement une fois et produit les quantités spécifiées sur chaque canal de sortie, (c) Sur-production : cette implémentation s'active exactement le nombre de fois successives prévu par le scénario, et produit à chaque fois les quantités spécifiées sur chaque canal de sortie. 55: Check that the quantities produced by this implementation are those provided by the specification, namely for the examples of scenarios given above: (a) Underproduction: this implementation does not activate and produces nothing, (b) Production exact: this implementation is activated exactly once and produces the quantities specified on each output channel, (c) Overproduction: this implementation is activated exactly the number of successive times forecast by the scenario, and produces each time quantities specified on each output channel.
56 : Vérifier que le temps d'activité est correct vis-à-vis de la configuration de l'instance, à savoir pour les exemples de scénarios donnés précédemment : (a) Sous- production : cette implémentation ne s'active pas et son temps d'activité est nul. (b) Production exacte : cette implémentation s'active exactement une fois et son temps d'activité est inférieur ou égal au budget de temps de l'acteur correspondant à l'implémentation testée, et se produit dans les bornes définies par les variables stj et etj correspondantes, (c) Sur production : cette implémentation s'active exactement le nombre de fois successives prévu par le scénario, et pour chacune de ces activations, son temps d'activité est inférieur ou égal au budget de temps de l'acteur correspondant à l'implémentation testée, et se produit dans les bornes définies par les variables stj et etj correspondantes. 56: Check that the activity time is correct vis-à-vis the configuration of the instance, namely for the examples of scenarios given above: (a) Underproduction: this implementation does not activate and its activity time is zero. (b) Exact production: this implementation is activated exactly once and its activity time is less than or equal to the time budget of the actor corresponding to the implementation tested, and occurs within the limits defined by the corresponding variables s tj and e tj , (c) On production: this implementation activates exactly the number successive times predicted by the scenario, and for each of these activations, its activity time is less than or equal to the time budget of the actor corresponding to the implementation tested, and occurs within the limits defined by the variables s tj and e tj corresponding.
Pour vérifier la conformité d'une implémentation d'une instance configurée, on peut utiliser par exemple les « Timed Input Output Transition Systems » (TIOTS) comme décrit dans [4]. La présente invention se différencie par le fait qu'au lieu de considérer les valeurs des données produites en réponse à des valeurs d'entrée, on considère l'état des canaux de communication. Par exemple, si un acteur produit un jeton contenant une chaîne de caractères comme donnée, dans l'état de l'art on observerait la chaîne de caractères, en revanche dans la présente invention, on observera la valeur « 1 », étant le nombre de jetons disponibles dans le canal. Ainsi le procédé pour construire les traces valides est le suivant : Construire un automate pour chaque acteur correspondant au comportement spécifié de cet acteur dans le formalisme décrit dans [4], dans lequel les valeurs produites/consommées sur les canaux sont des valeurs numériques indiquant l'état du canal. Ensuite, évaluer tous les chemins possibles dans une exécution symbolique du système comme décrit dans [4] de sorte à observer le comportement périodique décrit par le vecteur x. To check the conformity of an implementation of a configured instance, one can use for example the “Timed Input Output Transition Systems” (TIOTS) as described in [4]. The present invention is differentiated by the fact that instead of considering the values of the data produced in response to input values, we consider the state of the communication channels. For example, if an actor produces a token containing a character string as given, in the state of the art we would observe the character string, on the other hand in the present invention, we will observe the value "1", being the number tokens available in the channel. Thus the method for constructing valid traces is as follows: Constructing an automaton for each actor corresponding to the specified behavior of this actor in the formalism described in [4], in which the values produced / consumed on the channels are numerical values indicating l condition of the channel. Then, evaluate all the possible paths in a symbolic execution of the system as described in [4] so as to observe the periodic behavior described by the vector x.
Les traces d'une exécution d'une implémentation d'une instance peuvent être fournies par un observateur d'une exécution de l'implémentation. Chaque entrée d'une trace fournit les informations sur l'état de l'implémentation à chaque modification de cet état. Par exemple : la date courante de l'horloge de l'implémentation de l'instance configurée, le nombre de jetons disponibles à la consommation pour tous les canaux, et le mode associé aux jetons disponibles à la consommation. Etant donnée une telle trace, on peut vérifier la conformité de l'exécution de l'implémentation vis-à-vis du comportement spécifié de l'instance correspondante, comme décrit dans [4]. Traces of an execution of an implementation of an instance can be provided by an observer of an execution of the implementation. Each entry in a trace provides information about the status of the implementation whenever this state changes. For example: the current date of the implementation instance clock configured, the number of tokens available for consumption for all channels, and the mode associated with tokens available for consumption. Given such a trace, one can check the conformity of the execution of the implementation with respect to the specified behavior of the corresponding instance, as described in [4].
La présente invention s'applique à tous les systèmes à flot de données. Une première application concerne les systèmes distribués temps-réel critiques. En particulier, un système embarqué temps-réel d'un équipement, configuré pour recevoir des mesures spécifiques de l'équipement et son environnement et pour délivrer des résultats actionnant des opérations pour le bon fonctionnement de cet équipement. L'équipement peut être un véhicule autonome ou non autonome de type terrestre, ferroviaire, aérospatial ou naval. The present invention applies to all data flow systems. A first application concerns critical real-time distributed systems. In particular, a real-time embedded system of equipment, configured to receive specific measurements of the equipment and its environment and to deliver results actuating operations for the proper functioning of this equipment. The equipment can be an autonomous or non-autonomous vehicle of land, rail, aerospace or naval type.
En particulier, dans le cadre d'un système de flot de données d'un véhicule, on peut avantageusement avoir selon la présente invention, des capteurs et processeurs fonctionnant selon des fréquences différentes et selon plusieurs configurations. Par exemple, le système du véhicule peut comporter des caméras pour détecter des piétons. La fréquence d'échantillonnage des caméras peut être différente de celle du microprocesseur qui va traiter les signaux et le traitement doit être suffisamment rapide pour prévenir le conducteur ou l'automate suffisamment tôt afin de déclencher un freinage ou une autre action pour éviter le piéton. Cette consommation et production à des fréquences différentes sans perte de données est possible grâce à l'utilisation des nombres rationnels des données sur les canaux selon l'invention. En outre, on peut considérer à titre d'exemple que pour une voiture avec conducteur, la détection de piétons est intéressante à partir d'une certaine vitesse. Ainsi, on peut utiliser différents modes de reconfigurations de sorte que le traitement de détection de piéton se déroule à partir d'une certaine vitesse ou sur une certaine plage de vitesses permettant au microprocesseur de ne pas consommer des ressources d'exécution inutilement en dehors de cette plage. In particular, in the context of a vehicle data flow system, it is advantageously possible, according to the present invention, to have sensors and processors operating at different frequencies and according to several configurations. For example, the vehicle system may include cameras to detect pedestrians. The sampling frequency of the cameras can be different from that of the microprocessor which will process the signals and the processing must be fast enough to warn the driver or the automaton early enough to trigger braking or another action to avoid the pedestrian. This consumption and production at different frequencies without loss of data is possible thanks to the use of rational numbers of data on the channels according to the invention. In addition, it can be considered by way of example that for a car with a driver, the detection of pedestrians is advantageous from a certain speed. Thus, different reconfiguration modes can be used so that the pedestrian detection processing takes place from a certain speed or over a certain range of speeds allowing the microprocessor not to consume execution resources unnecessarily outside of this beach.
Une deuxième application concerne les systèmes FPGA pour le temps-réel critique : un système FPGA est un flot de données cadencé par des horloges qui déclenchent les unités de traitement, et dans lesquels le routage des données peut changer dynamiquement. Une troisième application concerne un système d'un processus industriel configuré pour la fabrication industrielle des objets selon des contraintes de débit particulières et selon un processus reconfigurable. En effet, un procédé de fabrication industriel peut être vu comme un flot de données, avec des contraintes de débit pour des raisons techniques. En outre, la présente invention permet la reconfiguration du procédé pour s'adapter par exemple à l'évolution du carnet de commandes. A second application concerns FPGA systems for critical real time: an FPGA system is a stream of data clocked by clocks which trigger the processing units, and in which the routing of data can change dynamically. A third application concerns a system of an industrial process configured for the industrial manufacture of objects according to particular flow constraints and according to a reconfigurable process. Indeed, an industrial manufacturing process can be seen as a stream of data, with flow constraints for technical reasons. In addition, the present invention allows the reconfiguration of the process to adapt for example to the evolution of the order book.
REFERENCES BIBLIOGRAPHIQUES BIBLIOGRAPHICAL REFERENCES
1. X. K. Do, S. Louise and A. Cohen, Transaction Parameterized Dataflow: A model for context-dependent streaming applications, 2016 Design, Automation & Test in Europe Conférence & Exhibition (DATE), Dresden, 2016, pp. 960-965. 2. O. N . Timo, H . Marchand and A. Rollet, Automatic test génération for data-flow reactive Systems modeled by variable driven timed automata, Research report HAL-00503000, 2010. 1. X. K. Do, S. Louise and A. Cohen, Transaction Parameterized Dataflow: A model for context-dependent streaming applications, 2016 Design, Automation & Test in Europe Conférence & Exhibition (DATE), Dresden, 2016, pp. 960-965. 2. Y. N. Timo, H. Marchand and A. Rollet, Automatic test generation for data-flow reactive Systems modeled by variable driven timed automata, Research report HAL-00503000, 2010.
3. R. Henia and R. Ernst, Scénario Aware Analysis for Com plex Event Models and Distributed Systems, 28th IEEE International Real-Time Systems Symposium (RTSS 2007), Tucson, AZ, 2007, pp. 171-180. 3. R. Henia and R. Ernst, Scenario Aware Analysis for Com plex Event Models and Distributed Systems, 28th IEEE International Real-Time Systems Symposium (RTSS 2007), Tucson, AZ, 2007, pp. 171-180.
4. Boutheina Bannour, José Escobedo, Christophe Gaston, Pascale Gall. Off-Line Test Case Génération for Timed Symbolic Model-Based Conformance Testing. Brian Nielsen; Carsten Weise. 24th International Conférence on Testing Software and Systems (ICTSS), Nov 2012, Aalborg, Denmark. Springer, Lecture Notes in Computer Science, LNCS-7641, pp.119- 135, 2012, Testing Software and Systems. 4. Boutheina Bannour, José Escobedo, Christophe Gaston, Pascale Gall. Off-Line Test Case Génération for Timed Symbolic Model-Based Conformance Testing. Brian Nielsen; Carsten Weise. 24th International Conference on Testing Software and Systems (ICTSS), Nov 2012, Aalborg, Denmark. Springer, Lecture Notes in Computer Science, LNCS-7641, pp. 119-135, 2012, Testing Software and Systems.

Claims

Revendications claims
1. Outil de conception et de validation mis en oeuvre par ordinateur d'un système flots de données modélisant un dispositif embarqué d'un équipement, ledit système flots de données comportant un ensemble d'acteurs (a,, aj) logiciels et/ou matériels interconnectés entre eux par des canaux (ci; q) de communication unidirectionnels, ledit outil étant caractérisé en ce qu'il comporte : 1. Tool design and validation set computer by performing a dataflow system modeling an onboard device of a device, said data flow system having a plurality of players (a ,, a j) Software and / or materials interconnected with one another by unidirectional communication channels (c i; q), said tool being characterized in that it comprises:
- une interface de modélisation (11) configurée pour générer une instance dudit système en spécifiant de manière formelle un flot de données temps-réel et reconfigurable, la reconfiguration du flot de données étant réalisée de manière dynamique par la propagation de données de reconfiguration d'un acteur à un autre à travers les canaux de communication, - a modeling interface (11) configured to generate an instance of said system by formally specifying a stream of real-time and reconfigurable data, the reconfiguration of the data stream being carried out dynamically by the propagation of reconfiguration data one actor to another through communication channels,
- un module d'analyse (13) configuré pour prouver un ensemble prédéterminé de propriétés comportementales dudit système par une analyse statique de ladite instance comprenant la construction d'une matrice définissant l'état d'activation des acteurs et l'état des canaux de communication et la détermination d'un vecteur d'entiers naturel dont le produit avec ladite matrice est nul, la détermination dudit vecteur confirmant la faisabilité du système flots de données indépendamment des ressources allouées, - an analysis module (13) configured to prove a predetermined set of behavioral properties of said system by a static analysis of said instance comprising the construction of a matrix defining the state of activation of the actors and the state of the channels of communication and the determination of a vector of natural integers whose product with said matrix is zero, the determination of said vector confirming the feasibility of the data flow system independently of the allocated resources,
- une interface de raffinement (15) adaptée pour allouer des ressources à ladite instance respectant ledit ensemble prédéterminé de propriétés comportementales, établissant ainsi une instance dite instance configurée, et a refinement interface (15) adapted to allocate resources to said instance respecting said predetermined set of behavioral properties, thereby establishing an instance called configured instance, and
- un module de test de conformité (17) comportant des outils de test unitaire (171) et d'intégration (173), l'outil de test unitaire (171) simulant la production de données sur des canaux d'entrée de l'implémentation d'un acteur, et vérifiant que les quantités consommées et produites par cette implémentation correspondent à celles spécifiées pour l'acteur implémenté, l'outil de test d'intégration (173) construisant l'ensemble de traces qui correspondent au comportement attendu de l'instance configurée et s'assurant que la trace fournie appartient à cet ensemble valide vérifiant ainsi la conformité du comportement d'une implémentation dudit système vis-à-vis de ladite instance configurée. a compliance test module (17) comprising unit test tools (171) and integration tools (173), the unit test tool (171) simulating the production of data on input channels of the implementation of an actor, and verifying that the quantities consumed and produced by this implementation correspond to those specified for the actor implemented, the integration test tool (173) constructing the set of traces which correspond to the expected behavior of the configured instance and ensuring that the trace supplied belongs to this valid set, thus verifying the conformity of the behavior of an implementation of said system with respect to said configured instance.
2. Outil selon la revendication 1, caractérisé en ce que l'instance du système comporte des rythmes rationnels de consommation et d'émission de données. 2. Tool according to claim 1, characterized in that the system instance includes rational consumption and data transmission rhythms.
3. Outil selon la revendication 1 ou 2, caractérisé en ce qu'en outre l'instance du système comporte : 3. Tool according to claim 1 or 2, characterized in that, in addition, the system instance comprises:
- des contraintes de fréquence maximales pour certains acteurs, - des contraintes de fréquence minimales pour certains autres acteurs. - maximum frequency constraints for certain players, - minimum frequency constraints for certain other players.
4. Outil selon l'une quelconque des revendications précédentes, caractérisé en ce que l'instance du système comporte : 4. Tool according to any one of the preceding claims, characterized in that the system instance includes:
- l'ensemble des acteurs comprenant des acteurs génériques configurés pour traiter des données et des acteurs de mode configurés pour traiter des données et/ou sélectionner des modes de configurations, - all of the actors including generic actors configured to process data and mode actors configured to process data and / or select configuration modes,
- l'ensemble de canaux de communication unidirectionnels connectant l'ensemble des acteurs entre eux, chaque acteur étant associé à au moins un canal d'entrée ou de sortie, - the set of unidirectional communication channels connecting all the actors to each other, each actor being associated with at least one input or output channel,
- le nombre rationnel ou entier de données produites ou consommées par acteur pour chacun de ses canaux d'entrée et de sortie, et - the rational or whole number of data produced or consumed per actor for each of its input and output channels, and
- l'ensemble de modes associés à chaque acteur de mode, chaque acteur de mode étant configuré pour choisir dynamiquement pour chacune de ses activations un et un seul mode parmi ledit ensemble de modes. the set of modes associated with each mode actor, each mode actor being configured to dynamically choose for each of its activations one and only one mode from said set of modes.
5. Outil selon l'une quelconque des revendications précédentes, caractérisé en ce qu'en outre l'instance du système comporte pour chaque acteur générique un ensemble correspondant de modes d'exécutions dans lesquels il s'exécute ainsi qu'un ensemble implicite de tous les autres modes dans lesquels il passe, un mode d'exécution pouvant être soit un mode nominal commun à tout le système, soit un mode spécifique choisi par un acteur de mode. 5. Tool according to any one of the preceding claims, characterized in that, in addition, the system instance comprises for each generic actor a corresponding set of execution modes in which it is executed as well as an implicit set of all the other modes in which it passes, an execution mode which can either be a nominal mode common to the whole system, or a specific mode chosen by a mode actor.
6. Outil selon l'une quelconque des revendications précédentes, caractérisé en ce qu'en outre l'instance du système comporte un ensemble implicite de canaux de rétroaction, un canal de rétroaction étant un canal connectant un acteur générique producteur de données à un acteur générique consommateur de données s'exécutant chacun dans au moins un des modes choisis par un même acteu r de mode, et en ce qu'il existe un chemin sans répétition partant dudit même acteur de mode et terminant par l'acteur générique producteur en passant par l'acteur générique consommateur. 6. Tool according to any one of the preceding claims, characterized in that, in addition, the system instance includes an implicit set of feedback channels, a feedback channel being a channel connecting a generic actor producing data to an actor generic data consumer each running in at least one of the modes chosen by the same mode actor, and in that there is a path without repetition starting from said same mode actor and ending with the generic producer actor by the way by the generic consumer actor.
7. Outil selon l'une quelconque des revendications précédentes, caractérisé en ce qu'en outre l'instance du système comporte un état initial du système composé par canal d'un nombre rationnel et d'une séquence de modes de longueur égale à une arrondie inférieure dudit nombre rationnel, et par acteur générique de son mode initial. 7. Tool according to any one of the preceding claims, characterized in that, in addition, the system instance comprises an initial state of the system composed by channel of a rational number and of a sequence of modes of length equal to one lower rounding of said rational number, and by generic actor of its initial mode.
8. Outil selon l'une quelconque des revendications précédentes, caractérisé en ce que ledit ensemble prédéterminé de propriétés comportementales comporte des première, deuxième, troisième et quatrième propriétés suivantes : 8. Tool according to any one of the preceding claims, characterized in that said predetermined set of behavioral properties comprises first, second, third and fourth following properties:
- la première propriété vérifie que les ressources nécessaires à l'implémentation des communications entre acteurs sans perte de données sont bornées pour une exécution périodique du système spécifié, - la deuxième propriété vérifie que les contraintes de fréquence et/ou de période peuvent être respectées sans remettre en cause la première propriété, - la troisième propriété vérifie la non-existence d'inter-blocage pour tout nombre d'activations des acteurs, et - the first property verifies that the resources necessary for the implementation of communications between actors without loss of data are limited for a periodic execution of the specified system, - the second property verifies that the frequency and / or period constraints can be respected without calling into question the first property, - the third property verifies the non-existence of inter-blocking for any number of activations of the actors, and
- la quatrième propriété vérifie la non-existence d'état inconnu dans le système pour toutes les reconfigurations spécifiées et aucune des autres propriétés n'étant remise en cause par des changements dynamiques de configuration. - the fourth property checks the non-existence of an unknown state in the system for all the specified reconfigurations and none of the other properties being called into question by dynamic configuration changes.
9. Outil selon l'une quelconque des revendications précédentes, caractérisé en ce que ledit système est un système embarqué temps-réel d'un équipement, configuré pour recevoir des mesures spécifiques audit équipement et pour délivrer des résultats actionnant des opérations pour le bon fonctionnement dudit équipement. 9. Tool according to any one of the preceding claims, characterized in that said system is a real-time on-board system of equipment, configured to receive measurements specific to said equipment and to deliver results actuating operations for proper operation of said equipment.
10. Système embarqué temps-réel d'un équipement, comportant un ensemble d'acteurs (ai; aj) logiciels et/ou matériels interconnectés entre eux par des canaux (ci; q) de communication unidirectionnels, ledit système embarqué étant conçu et validé par l'outil selon l'une quelconque des revendications précédentes, caractérisé en ce que ledit système embarqué est configuré pour recevoir des mesures spécifiques audit équipement et son environnement et pour délivrer des résultats actionnant des opérations pour le bon fonctionnement dudit équipement. 10. Embedded real-time system of an item of equipment, comprising a set of actors (a i; a j ) software and / or hardware interconnected by unidirectional communication channels (c i; q), said embedded system being designed and validated by the tool according to any one of the preceding claims, characterized in that said on-board system is configured to receive measurements specific to said equipment and its environment and to deliver results actuating operations for the proper functioning of said equipment.
11. Système selon la revendication 10, caractérisé en ce que ledit équipement est un véhicule autonome ou non autonome de type terrestre, ferroviaire, aérospatial ou naval. 11. System according to claim 10, characterized in that said equipment is an autonomous or non-autonomous vehicle of land, rail, aerospace or naval type.
12. Système d'un processus industriel temps-réel, conçu et validé par l'outil selon l'une quelconque des revendications 1 à 9, caractérisé en ce que ledit système est configuré pour la fabrication industrielle des objets selon des contraintes de débit particulières et selon un processus reconfigurable. 12. System of a real-time industrial process, designed and validated by the tool according to any one of claims 1 to 9, characterized in that said system is configured for the industrial manufacture of objects according to specific flow constraints and according to a reconfigurable process.
13. Procédé de conception et de validation mis en oeuvre par ordinateur d'un système flots de données modélisant un dispositif embarqué d'un équipement, ledit système flots de données comportant un ensemble d'acteurs logiciels et/ou matériels interconnectés entre eux par des canaux de communication unidirectionnels, ledit procédé étant caractérisé en ce qu'il utilise un ordinateur pour implémenter les étapes suivantes : 13. Design and validation process implemented by computer of a data flow system modeling an on-board device of an item of equipment, said data flow system comprising a set of software and / or hardware actors interconnected with one another. unidirectional communication channels, said method being characterized in that it uses a computer to implement the following steps:
- générer une instance dudit système en spécifiant de manière formelle un flot de données temps-réel et reconfigurable, la reconfiguration du flot de données étant réalisée de manière dynamique par la propagation de données de reconfiguration d'un acteur à un autre à travers les canaux de communication, - generate an instance of said system by formally specifying a real-time and reconfigurable data stream, the reconfiguration of the data stream being carried out dynamically by the propagation of reconfiguration data from one actor to another through the channels Communication,
- prouver un ensemble prédéterminé de propriétés comportementales dudit système par une analyse statique de ladite instance comprenant la construction d'une matrice définissant l'état d'activation des acteurs et l'état des canaux de communication et la détermination d'un vecteur d'entiers naturel dont le produit avec ladite matrice est nul, la détermination dudit vecteur confirmant la faisabilité du système flots de données indépendamment des ressources allouées, - prove a predetermined set of behavioral properties of said system by a static analysis of said instance including the construction of a matrix defining the activation state of the actors and the state of the communication channels and the determination of a vector of natural integers whose product with said matrix is zero, the determination of said vector confirming the feasibility of the data flow system independently of the allocated resources,
- allouer des ressources à ladite instance respectant ledit ensemble prédéterminé de propriétés comportementales, établissant ainsi une instance dite instance configurée, et allocate resources to said instance respecting said predetermined set of behavioral properties, thereby establishing an instance called configured instance, and
- simuler la production de données sur des canaux d'entrée de l'implémentation d'un acteur, - simulate the production of data on input channels of the implementation of an actor,
- vérifier que les quantités consommées et produites par ladite implémentation correspondent à celles spécifiées pour l'acteur implémenté, - check that the quantities consumed and produced by said implementation correspond to those specified for the actor implemented,
- construire l'ensemble de traces qui correspondent au comportement attendu de l'instance configurée, et - s'assurer que la trace fournie appartient à cet ensemble valide vérifiant ainsi la conformité du comportement d'une implémentation dudit système vis-à-vis de ladite instance configurée. - construct the set of traces which correspond to the expected behavior of the configured instance, and - ensure that the trace provided belongs to this valid set, thus verifying the conformity of the behavior of an implementation of said system vis-à-vis said configured instance.
14. Support de stockage informatique non transitoire stockant de façon tangible des instructions de codes configurées pour la conception et la validation d'un système flots de données modélisant un dispositif embarqué d'un équipement, ledit système flots de données comportant un ensemble d'acteurs logiciels et/ou matériels interconnectés entre eux par des canaux de communication unidirectionnels, caractérisé en ce que lesdites instructions de codes sont exécutables par un processeur pour mettre en oeuvre les étapes suivantes: 14. Non-transient computer storage medium tangibly storing code instructions configured for the design and validation of a data flow system modeling an on-board device of an item of equipment, said data flow system comprising a set of actors software and / or hardware interconnected with one another by unidirectional communication channels, characterized in that said code instructions can be executed by a processor to implement the following steps:
- générer une instance dudit système en spécifiant de manière formelle un flot de données temps-réel et reconfigurable, la reconfiguration du flot de données étant réalisée de manière dynamique par la propagation de données de reconfiguration d'un acteur à un autre à travers les canaux de communication, - generate an instance of said system by formally specifying a real-time and reconfigurable data stream, the reconfiguration of the data stream being carried out dynamically by the propagation of reconfiguration data from one actor to another through the channels Communication,
- prouver un ensemble prédéterminé de propriétés comportementales dudit système par une analyse statique de ladite instance comprenant la construction d'une matrice définissant l'état d'activation des acteurs et l'état des canaux de communication et la détermination d'un vecteur d'entiers naturel dont le produit avec ladite matrice est nul, la détermination dudit vecteur confirmant la faisabilité du système flots de données indépendamment des ressources allouées, - prove a predetermined set of behavioral properties of said system by a static analysis of said instance including the construction of a matrix defining the activation state of the actors and the state of the communication channels and the determination of a vector of natural integers whose product with said matrix is zero, the determination of said vector confirming the feasibility of the data flow system independently of the allocated resources,
- allouer des ressources à ladite instance respectant ledit ensemble prédéterminé de propriétés comportementales, établissant ainsi une instance dite instance configurée, et allocate resources to said instance respecting said predetermined set of behavioral properties, thereby establishing an instance called configured instance, and
- simuler la production de données sur des canaux d'entrée de l'implémentation d'un acteur, - simulate the production of data on input channels of the implementation of an actor,
- vérifier que les quantités consommées et produites par ladite implémentation correspondent à celles spécifiées pour l'acteur implémenté, - construire l'ensemble de traces qui correspondent au comportement attendu de l'instance configurée, et - check that the quantities consumed and produced by said implementation correspond to those specified for the actor implemented, - construct the set of traces which correspond to the expected behavior of the configured instance, and
- s'assurer que la trace fournie appartient à cet ensemble valide vérifiant ainsi la conformité du comportement d'une implémentation dudit système vis-à-vis de ladite instance configurée. - ensure that the trace provided belongs to this valid set, thus verifying the conformity of the behavior of an implementation of said system vis-à-vis said configured instance.
EP19774160.6A 2018-08-31 2019-08-30 Tool and method for designing and validating a data flow system by a formal model Pending EP3827368A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1857849A FR3085513A1 (en) 2018-08-31 2018-08-31 TOOL AND METHOD FOR DESIGN AND VALIDATION OF A DATA FLOW SYSTEM BY A FORMAL MODEL
PCT/FR2019/052008 WO2020043999A1 (en) 2018-08-31 2019-08-30 Tool and method for designing and validating a data flow system by a formal model

Publications (1)

Publication Number Publication Date
EP3827368A1 true EP3827368A1 (en) 2021-06-02

Family

ID=65685468

Family Applications (1)

Application Number Title Priority Date Filing Date
EP19774160.6A Pending EP3827368A1 (en) 2018-08-31 2019-08-30 Tool and method for designing and validating a data flow system by a formal model

Country Status (5)

Country Link
US (1) US11610041B2 (en)
EP (1) EP3827368A1 (en)
JP (1) JP7463346B2 (en)
FR (1) FR3085513A1 (en)
WO (1) WO2020043999A1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112158235B (en) * 2020-08-25 2022-10-18 通号城市轨道交通技术有限公司 Outdoor signal equipment control method and system for urban rail transit
US20230291569A1 (en) * 2022-03-09 2023-09-14 Dell Products L.P. Management of a computing device supply chain utilizing a distributed ledger

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9335977B2 (en) * 2011-07-28 2016-05-10 National Instruments Corporation Optimization of a data flow program based on access pattern information

Also Published As

Publication number Publication date
US11610041B2 (en) 2023-03-21
FR3085513A1 (en) 2020-03-06
WO2020043999A1 (en) 2020-03-05
US20210279393A1 (en) 2021-09-09
JP7463346B2 (en) 2024-04-08
JP2021535492A (en) 2021-12-16

Similar Documents

Publication Publication Date Title
US9836695B2 (en) Automated decision support provenance and simulation
US20190004891A1 (en) Automated hardware failure prediction framework
EP2257876B1 (en) Method for preloading configurations of a reconfigurable heterogeneous system for information processing into a memory hierarchy
EP3827368A1 (en) Tool and method for designing and validating a data flow system by a formal model
US9613324B2 (en) Apparatus and methods for decomposing service processes and for identifying alternate service elements in service provider environments
WO2013182823A1 (en) Forecasting maintenance operations to be applied to an engine
Ligěza et al. Ai approach to formal analysis of bpmn models. towards a logical model for bpmn diagrams
WO2017109386A1 (en) Off-line method for allocation of a real-time on-board software in a multi-core multi-controller architecture, and use thereof for on-board applications in a motor vehicle
WO2016198762A1 (en) Method and system for determining a target configuration of servers for deployment of a software application
EP2956874B1 (en) Device and method for accelerating the update phase of a simulation kernel
Akoush et al. Desiderata for next generation of ML model serving
EP3881515B1 (en) System for the formal supervision of communications
EP3105679B1 (en) Encoding of fault scenarios of a manycore processor
US9256405B1 (en) Code generation based on regional upsampling-based delay insertion
US11263172B1 (en) Modifying a particular physical system according to future operational states
FR2902211A1 (en) Complex system stimulating method, involves constructing models of complex system, where each model comprises hierarchized assembly of modelized components that are instance of object class belonging to determined object class assembly
FR3006470A1 (en) COMPUTERIZED DEVICE AND METHOD FOR TROUBLE ANALYSIS IN A SYSTEM
Raab et al. Support system for distributed hla simulations in industrial applications
US11429381B1 (en) Software application refactoring and modification
WO2020174186A1 (en) Method for validating a data flow system
FR3045860A1 (en) METHOD FOR DETECTING TESTABILITY PROBLEMS OF A COMPUTER MODULE
FR2957435A1 (en) SYSTEM FOR TESTING A MULTITASTIC CALCULATION ARCHITECTURE FROM PROCESSOR COMMUNICATION DATA AND CORRESPONDING TEST METHOD
Mitchell et al. Formal specification and state space analysis of an operational planning process
FR3116689A1 (en) Method and device for reconfiguring the Quality of Service in a network
Von Bochmann Conformance testing with respect to partial-order specifications

Legal Events

Date Code Title Description
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: UNKNOWN

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

Free format text: STATUS: THE INTERNATIONAL PUBLICATION HAS BEEN MADE

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: 20210223

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

DAV Request for validation of the european patent (deleted)
DAX Request for extension of the european patent (deleted)
STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: EXAMINATION IS IN PROGRESS

17Q First examination report despatched

Effective date: 20240313