WO2020174186A1 - Procédé de validation d'un système flots de données - Google Patents

Procédé de validation d'un système flots de données Download PDF

Info

Publication number
WO2020174186A1
WO2020174186A1 PCT/FR2020/050377 FR2020050377W WO2020174186A1 WO 2020174186 A1 WO2020174186 A1 WO 2020174186A1 FR 2020050377 W FR2020050377 W FR 2020050377W WO 2020174186 A1 WO2020174186 A1 WO 2020174186A1
Authority
WO
WIPO (PCT)
Prior art keywords
current
data flow
vector
arrival
repetition
Prior art date
Application number
PCT/FR2020/050377
Other languages
English (en)
Inventor
Dina IROFTI
Paul DUBRULLE
Original Assignee
Commissariat A L'energie Atomique Et Aux Energies Alternatives
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 L'energie Atomique Et Aux Energies Alternatives filed Critical Commissariat A L'energie Atomique Et Aux Energies Alternatives
Priority to JP2021550039A priority Critical patent/JP2022522177A/ja
Priority to EP20713730.8A priority patent/EP3908926A1/fr
Priority to US17/434,242 priority patent/US20220147372A1/en
Publication of WO2020174186A1 publication Critical patent/WO2020174186A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4494Execution paradigms, e.g. implementations of programming paradigms data driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/43Checking; Contextual analysis
    • G06F8/433Dependency analysis; Data or control flow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Definitions

  • the present invention relates to a method and a device for validating a data flow system, and more particularly to checking the consistency of the system.
  • the present invention applies to systems in which concrete applications use predefined interface functions to exchange data between them.
  • the invention applies to all systems (or applications) of data flows of synchronous types comprising components (or tasks) called actors, connected to one another by unidirectional communication channels (or connections).
  • These systems are often used to describe the behavior of signal processing applications because they provide adequate execution semantics to analyze their performance.
  • the most common criteria for performance analysis relate directly to optimizing buffer sizing, throughput, or latency.
  • a first step in resolving these optimization issues is to check a few properties, such as that there is an upper limit for buffer sizes and that there are no deadlocks. These properties are advantageously decidable in a data flow system by verifying the properties of consistency and of absence of interlocking described below.
  • a data flow system is generally modeled by a data flow graph.
  • the data flow graph describes a data flow structure in which the actors are represented by nodes (or vertices) and the communication channels by arcs. Each actor in the data flow graph has a set of ports. Each port represents an endpoint of the communication channel. Actors typically have a cyclical behavior, known as firing or firing, of reading input data from their input ports, performing their tasks, and placing output data to their output ports. A shot can only take place when the actor has enough information about their entry ports.
  • the amount of data sent to output ports or received from input ports is specified by a number of tokens.
  • Production rates represent the number of tokens that an actor can send (respectively, receive) when making a shot. It will be noted that in a synchronous type data flow, the consumption and production rates are constant.
  • a data flow system can be planned statically because each actor in the data flow graph produces and uses the same amount of data each time it takes a shot.
  • a periodic program can be constructed for a synchronous data flow system, since all consumption and production rates are fixed. In valid periodic scheduling, each actor activates (i.e. pulls) a certain number of times before the graph returns to its initial state, with the same number of tokens initially on the channels.
  • a valid repeat vector is constructed when planning an SDF data flow system.
  • the repeat vector is a vector whose components are positive integers, and whose dimension is equal to the number of actors belonging to the data flow graph. Each component of the vector corresponds to an actor and specifies the number of shots triggered by the actor during the periodic program. We can find more than one repeat vector for a given graph.
  • the minimum repetition vector has the minimum norm and corresponds to a minimum periodic ordering. Note that the repetition vector is used to check the validity of the data flow system.
  • the data flow graph modeling the system must check the properties of consistency (consistency, in English) and absence of deadlock, in English).
  • the consistency property relates to the fact that during execution periods, tokens in a data flow graph do not accumulate on unidirectional channels. He is known [2] that the existence of a non-zero repetition vector is a necessary condition for the coherence of a data flow graph, that is to say that it has a valid periodic scheduling.
  • the property of no interlocking also called, liveliness
  • the properties of consistency and absence of interlocking are independent.
  • Figs. 1A-1C illustrate examples of graphs of two-actor data flows showing the properties of consistency and absence of interlocking, according to the state of the art.
  • FIG. IA illustrates a coherent graph but presenting an interlocking.
  • this graph G1 is coherent because no token accumulates on the channels. Actor A produces a token, which is consumed by actor B, then actor B draws and produces a token, which is consumed by actor A, and so on.
  • this graph G1 is not free from inter-blocking because there is no initial token on the channels, which means that neither actor A nor actor B can start shooting.
  • FIG. IB illustrates a non-coherent graph G2 but exhibiting an absence of inter-blocking.
  • the unidirectional channel from B to A contains an initial token.
  • Actor A consumes this initial token and produces another token, which in turn is consumed by actor B.
  • actor B produces two tokens per shot, so that actor A has enough tokens on its inputs to keep shooting.
  • tokens will continue to accumulate on the input ports of actor A because the rate of consumption by the latter is not as fast as that of production by actor B. In this case, no vector repetition number cannot be found for this graph G2, which means that it is not consistent.
  • FIG. IC illustrates a graph G3 satisfying both the property of consistency and liveliness (ie absence of inter-blocking).
  • actor A consumes the initial two tokens on its input port and produces one token on the output port.
  • actor B consumes a token and produces two tokens on its output port, which means that the graph G3 returns to its initial state.
  • the existence of such a (non-zero) repetition vector means that the graph G3 is consistent.
  • one way to verify the absence of interlocking as proposed in [12], consists in triggering each node the number of times specified by the repetition vector. If the data flow graph does not have any interlock during this test, then it is free from any interlock.
  • the consistency property is important because if a repeat vector cannot be found for a given data flow graph, then any data flow system matching that graph will either end up in a dead end or in buffer sizes. without upper limit.
  • topology matrix describes how the graph is connected and the amounts of information that each actor in the graph can send or receive with each shot.
  • the topology matrix is generally designated by the letter gamma G.
  • Each actor in the data flow graph has a column in the topology matrix G and each channel (connection) is assigned to a row.
  • the (i, j) th entry of the topology matrix G corresponds to the rate of production or consumption of node j on channel i.
  • production rates are denoted by positive numbers while consumption rates are denoted by negative numbers.
  • topology matrices G1, G2 and G3 corresponding to the graphs G1, G2 and G3 illustrated in FIGS. 1A-1C are:
  • a non-zero repetition vector, here denoted X, can possibly be found by solving the following matrix equation:
  • the object of the present invention is therefore to provide a method for validating a data flow system of synchronous type which overcomes the aforementioned drawbacks, in particular, by allowing a quick and simple check of consistency in the event that new tasks are added as well as allowing the identification of non-consistent elements.
  • the present invention relates to a method for validating a data flow system represented by a data flow graph comprising actors exhibiting determined production rates and consumption rates, said method being characterized by an incremental verification in which the consistency a connection current unidirectional connecting a first current part of the data flow graph to a second current part of the data flow graph is locally verified at each increment.
  • This method allows the data flow graph to have a flexible topology in which actors (or connections) can be deleted, added or modified.
  • the method comprises the following steps:
  • origin and arrival actors connected by said current unidirectional connection, the origin and arrival actors belonging to said first and second current parts of the data flow graph respectively, the origin and the actors of arrival being defined by components of origin x, and arrival X j respectively which may belong to a single current repetition vector or to two repetition current vectors representative (s) of said first and second current parts of the data flow graph ,
  • consistency can be checked locally during the construction of the data flow graph or during the addition of a new connection without reconsidering the entire data flow graph.
  • consistency of the new connection can be evaluated by taking into account the state of the preceding graph.
  • said method comprises the following steps: if the origin and destination actors are associated with two current repetition vectors distinct, called origin and arrival repetition vectors, a then constructs the resulting current repetition vector by concatenating said origin and arrival repeat vectors, and -if the origin and arrival actors are associated with a single repetition current vector, then the resulting repetition current vector is equal to said single repetition current vector.
  • said method comprises the following steps: if the origin and arrival actors are associated with two separate current vectors of repetitions, called repetition vectors of origin and arrival, a then calculates two natural numbers, called production coefficient q and consumption coefficient q verifying an equality between on the one hand the product of said production coefficient q times said production rate h times said component of origin x, and on the other hand, the product of said consumption coefficient q times said consumption rate h times said arrival component X j , and the resulting repetition current vector is constructed by concatenating the repetition vector of origin after having multiplied it by the production coefficient q with the arrival repeat vector after having multiplied it by the consumption coefficient q, and -if the actors s origin and destination are associated with a single repeating current vector, then the current one-way connection is identified as non-consistent.
  • this method makes it possible to identify which element of the data flow system is inconsistent.
  • the method comprises an operation of adding a new unidirectional connection between first and second current parts of the data stream graph.
  • the method can be effectively used for modular data flow systems.
  • the method comprises an operation of removing a unidirectional connection from the graph of data flows represented by a single repetition vector, called the initial repetition vector, according to the following steps: if the data flow graph is divided into of the first and second subgraphs of data flows after the removal of said one-way connection, then a first repetition vector is constructed by grouping the components of said initial repetition vector relating to said first subgraph of data flows, and we construct a second repetition vector by grouping the components of the initial repetition vector relating to said second subgraph of data flows, and
  • the method comprises an operation of modifying a unidirectional connection, according to the following steps:
  • the method comprises checking the consistency of the data flow graph during its construction by assigning to each additional arrival actor an additional repetition vector whose unique component x is equal to 1, said actor of additional arrival being linked by said current unidirectional connection to an original actor belonging to said current graph of data flows under construction.
  • the present invention is also aimed at a digital signal processing system designed using the validation method according to any one of the preceding characteristics, said processing system being modeled by a data flow system comprising actors connected to each other by connection connections. unidirectional communications, each actor being configured to receive input data and to deliver output data.
  • said system is one from any of the following processing systems: medical imaging system, computer vision system, video coding and compression system, system for converting an audio sampling frequency, system tool design for wireless communication systems, multi-channel speech enhancement system, on-board system.
  • the present invention is also aimed at a device for validating a data flow system represented by a data flow graph comprising actors exhibiting determined production rates and consumption rates, said system comprising: a configured acquisition module to acquire data relating to first and second current portions of the data flow graph, and
  • a supervision module configured to incrementally check the consistency of said data flow system by checking at each increment the local consistency of a current unidirectional connection connecting the first current part of the data flow graph to the second current part of the graph data streams.
  • FIG. IB [Fig. IC] illustrate examples of two-actor data flow graphs showing the properties of consistency and absence of interlocking, according to the state of the art
  • FIG. 2 schematically illustrates a device and a method for validating a data flow system, according to one embodiment of the invention
  • FIG. 3 is a data flow graph illustrating the consistency check of a connection, according to an embodiment of the present invention.
  • FIG. 4 is a flowchart illustrating the steps of a method for validating a data flow system, according to a preferred embodiment of the invention
  • FIG. 5 schematically illustrates the construction of a data flow graph according to the method of FIG. 4;
  • FIG. 6 schematically illustrates the connection of two distinct graphs, according to the method of the present invention
  • FIG. 7 is a flowchart illustrating the steps of a validation method comprising a deletion operation, according to a preferred embodiment of the invention.
  • FIG. 8 a flowchart illustrating the steps of a validation method comprising a modification operation, according to a preferred embodiment of the invention
  • FIG. 9B illustrate by way of example the consistency check in a data flow system modeling a multichannel speech improvement device, according to the present invention.
  • the principle of the present invention is to verify the consistency of a data flow system in an incremental and local manner.
  • the present invention is particularly interested in data flow systems in which the players have determined consumption and production rates (ie defined or quantifiable).
  • the system can be a synchronous data flow system of SDF (Synchronous dataflow) type or a synchronous and cyclic data flow system.
  • Fig. 2 schematically illustrates a device and a method for validating a data flow system, according to one embodiment of the invention.
  • the validation device 1 is implemented by hardware means comprising an information processing machine such as a calculator or computer 3 comprising a microprocessor 5 and memories 7.
  • the microprocessor 5 is configured to execute one or more programs.
  • computer comprising program code instructions, stored in memories 7 of the computer and designed to implement the validation of a data flow system.
  • the validation device 1 comprises an acquisition module 9 and a supervision module 11.
  • the acquisition module 9 is configured to acquire data relating to a current graph of data flows and more particularly, data relating to first and second current parts of the data flow graph as well as a current connection between these two parts.
  • first or second current part of a graph of data flows is meant a part of the graph comprising at least a single actor.
  • a data flow graph comprises independent actors exchanging quantifiable information among themselves, through connections (i.e. channels) of unidirectional communications.
  • Actors can be software (eg, applications) and / or hardware (eg, sensors, cameras, probes, microprocessors, etc.) entities.
  • Actors are represented by nodes (or vertices) and communication connections by arcs.
  • Each actor is configured to wait to have received a specified quantity of data on its input ports in order to consume this quantity of data, to perform (or not) a processing of this data and to produce a quantity of data specified on its output ports to new actors, and each repeating this behavior indefinitely.
  • the cyclical process of consumption / treatment / emission is commonly referred to as an activation or firing.
  • the supervision module 11 is configured to incrementally check the consistency of the data flow system by checking at each increment the local consistency of the current unidirectional connection connecting the first current part of the data flow graph to the second current part of the graph data streams.
  • repetition vector the repetition vector
  • x the i th component of the repetition vector X.
  • the new unidirectional connection is considered as being consistent if we can find two natural numbers q and q (ie qe Z and qe Z), called coefficients of production q and consumption q, satisfying a property of consistency.
  • This property is an equality between on the one hand the product of the production coefficient q times the production rate h times the original component Xi and on the other hand, the product of the consumption coefficient q times the consumption rate h times the end component X j according to the following equation:
  • FIG. 3 is a data flow graph illustrating the consistency check of a connection, according to equation (3) above.
  • FIG. 3 illustrates a graph G4 resulting from the modification of the coherent graph G3 of FIG. IC by adding to it a new actor C and a new connection between actor B and actor C.
  • this modification can be seen either as a modification of the initial graph G3 illustrated in FIG. IC, or as one step among others in the iterative construction of the graph G4 of FIG. 3.
  • the modification consists in adding the new connection between actor B and actor C.
  • X G and X c be the repetition vectors of the initial graph G3 and of actor C respectively.
  • the initial components of the repeat vector are multiplied only by coefficients defined by their greatest common divisor:
  • the coefficients c, and q defined in equations (7) verify, of course, equality (3). For example, when a new connection is established between the actors a, and a j , the component x, of the repetition vector corresponding to the actor a, is multiplied by c i; and the component X j corresponding to the actor a j is multiplied by the coefficient q in order to keep the coherence property of the graph.
  • Fig. 4 is a flowchart illustrating the steps of a method for validating a data flow system, according to a preferred embodiment of the invention.
  • step El the current unidirectional connection connecting actors of origin a, and of arrival a j is defined.
  • the actors of origin a, and of arrival a j belong to the first and second current parts of the data flow graph respectively.
  • the components of origin x', and of arrival x may belong to a single current repetition vector X 'representative of the first and second current parts of the graph or to two separate current repetition vectors X' and X" representative of the first and second current parts of the graph respectively.
  • the definition of the current unidirectional connection involves the attribution of a production rate h relative to the original actor a, and of a consumption rate relative to the arrival actor a j .
  • step E2 in order to avoid unnecessary operations, an indicator of local consistency of the current unidirectional connection is first checked (line 1 of the Algorithm).
  • two cases are considered in the following steps.
  • step E2 if the test of step E2 is positive, that is to say, in the case where the current unidirectional connection checks the local consistency indicator, it is considered that the consistency flag (c_flag) is true on line 2 of the Algorithm and we go to step E3. Otherwise, we go to step E7.
  • Steps E3-E6 relate to the case where the current unidirectional connection checks the local consistency indicator. More particularly, step E3 is a test to check whether the actors of origin a, and of arrival a j are associated with two current vectors of distinct repeats, called vectors of repetition of origin X 'and of arrival X "(ie the case where there was no connection between the actors of origin a, and of arrival a j before the current unidirectional connection). If yes, we go to step E4 and if not, we go to step E6.
  • Step E4 concerns the case where the two actors come from two different repetition vectors and the new connection is consistent.
  • we construct the resulting repetition current vector X by concatenating the original X 'and arrival X "repeat vectors and we stop at step E5 where the graph is considered to be coherent. corresponds to lines 3 to 6 of the Algorithm above.
  • Step E6 concerns the case where the actors of origin a, and of arrival a j are associated with a single current repetition vector (ie, they come from the same graph). Then, in this case, the resulting repeating current vector X is equal to the unique repeating current vector X '. In other words, given that the two actors that we want to associate come from the same repetition vector and that the consistency indicator is true, then the single current repetition vector X 'is not modified and we stop in step E5 where the graph is considered to be consistent. This corresponds to lines 18-20 of the Algorithm above.
  • step E7 is a test similar to that of step E3 in which it is checked whether the actors of origin a, and of arrival a j are associated with two current vectors of distinct repeats, called original repeat vectors X 'and arrival X ". If yes, we go to step E8 and if not, we go to step E10.
  • step E8 we calculate the two natural numbers (i.e. the production q and consumption q coefficients) satisfying equation (3) above.
  • the coefficients q and q defined in equation (7) are calculated in lines 8 to 14 of the Algorithm above.
  • step E9 we construct the resulting current repetition vector X (line 15 of the Algorithm) by concatenating on the one hand the original repetition vector X 'after having multiplied it by the production coefficient q with on the other hand, the vector of arrival repetitions X "after having multiplied it by the consumption coefficient q. Then, we stop at step E5 where we consider that the graph is consistent.
  • Step E10 concerns the case where the actors of origin a, and of arrival a j are associated with a single current repetition vector (ie the actors come from the same graph), then the current unidirectional connection is identified as being non consistent (ie the resulting graph is not consistent). This corresponds to lines 22-24 of the Algorithm.
  • Fig. 5 schematically illustrates the construction of a graph according to the method of FIG. 4.
  • the construction of the graph G5 of FIG. 5 is an application of the Algorithm represented above.
  • One-way connections are made in the following order: (A -> B), (A -> C), (B -> D), and (C -> D).
  • FIG. 5 clearly shows the application of the Algorithm on a given G5 graph. From this example, we observe that lines 8-14 guarantee a set of integer coefficients necessary to obtain a minimal repetition vector. Furthermore, the verification of local consistency according to the method of the present invention very advantageously shows how the number of required operations is reduced to a minimum, which is very advantageous in particular, in the case of modular applications.
  • Fig. 6 schematically illustrates the connection of two distinct graphs, according to the method of the present invention.
  • FIG. 6 is a modular data flow application, in which the data flow graph G5 shown in FIG. 5 is added to the data flow graph G4 shown in FIG. 3 to form a new graph G6.
  • the consistency property having already been verified for the two graphs G4 and G5, only the new connection between actor B1 of the first graph G4 and actor B2 of the second graph G5 is to be verified.
  • FIG. 6 clearly shows that when two coherent graphs G4 and G5 are connected, the method according to the present invention makes it possible to verify the consistency property locally so that it is no longer necessary to recheck the coherence of the resulting graph G6.
  • the method according to the present invention only checks the new connections and deduce the repeat vector resulting from the two initial repeat vectors. This is a very important advantage over conventional methods of the prior art, for which a new topology matrix must be calculated and a new matrix equation must be solved.
  • FIG. 6 the modular application described in FIG. 6 can also be seen as the construction of a first subgraph G4 in which three actors are first created and connected to each other, then the construction of a second subgraph G5 in which four other actors are created and connected. between them, and finally the two subgraphs G4 and G5 are connected to each other to form a resulting graph G6.
  • each subgraph G4, G5 by attributing to each additional end-actor a j an additional repetition vector whose unique component x is equal to 1.
  • the actor d The additional arrival a j is linked by a current unidirectional connection to an actor of origin a, belonging to the subgraph of data flows under construction.
  • Fig. 7 is a flowchart illustrating the steps of a validation method comprising a deletion operation, according to a preferred embodiment of the invention.
  • step E21 a given connection is deleted from the data flow graph.
  • Step E22 is a test to check whether the initial data flow graph is divided into two distinct parts or not. If the data flow graph is divided into two distinct parts, then we go to step E23 and if not, we go to step E26.
  • Step E23 relates to the case where the data flow graph is divided into first and second data flow sub-graphs after the removal of the unidirectional connection.
  • a first repetition vector X ' by grouping the components of the initial repetition vector relating to the first subgraph of flows of data
  • step E24 we construct first and second minimum repeat vectors X * and X ** by dividing the first repeat vector X 'by the gcd of its components and also, by dividing the second repeat vector X "by the gcd of its components.
  • step E25 two distinct and coherent data flow graphs are obtained.
  • Step E26 relates to the case where the data flow graph remains connected after the removal of the unidirectional connection. Then in this case, we do not modify the initial repetition vector.
  • step E27 there is always a single coherent graph.
  • Fig. 8 is a flowchart illustrating the steps of a validation method comprising a modification operation, according to a preferred embodiment of the invention.
  • step E31 a given connection of the data flow graph is modified by assigning it new production rates r ', and consumption r relative to the original actors a, and of arrival a j linked by this connection unidirectional.
  • step E32 the operation of removing a unidirectional connection is applied according to the steps of the method of FIG. 7.
  • step E33 the operation of adding a unidirectional connection described by the methods of FIG. 4 according to the new rates of production r ', and consumption r' j .
  • step E34 a modified and coherent graph is obtained.
  • the method according to the invention can be applied in an incremental manner during the construction of the data stream graph. As a variant, it can also be applied after the construction of a graph, on each of its connections.
  • the present invention applies to all data flow systems.
  • the processing system can be modeled by a data flow system comprising actors connected to each other by unidirectional communications connections. Each actor is configured to receive input data and to deliver output data.
  • the digital signal processing system can be a medical imaging system, a computer vision system, an encoding and compression system, an audio sample rate conversion system, an audio sampling system. tool design for wireless communication systems, an on-board system, etc.
  • the signal processing system can be modeled by a graph of data flows under construction according to an incremental approach which can be applied during the construction of the graph.
  • the construction of an inconsistent graph can be stopped as soon as an inconsistent element has been identified.
  • the modeling of the signal processing system can be done in a modular fashion.
  • each of the radar and vision modules is described by a coherent graph.
  • the consistency of the combination of the two modules can be determined according to the present invention by checking only the modifications generated by the combination, such as adding connections between two graphs, and thus may reduce the number of operations required for consistency checking.
  • Fig. 9 illustrates by way of example the consistency check in a data stream system modeling a multichannel speech improvement device, according to the present invention.
  • the multichannel speech enhancement device 21 is connected to a network of four microphones M1-M4.
  • the noisy signals coming from these four microphones M1-M4 are processed by a set of signal processing units 23, 25, 27 and 29 included in the device 21 to extract the signal from the improved speech at the output 31.
  • the speech enhancement device 21 comprises a time alignment or synchronization unit 23, a short-term Fourier transform unit 25 (TFCT), a signal enhancement unit with post-filtering 27 and a addition or synthesis unit 29.
  • TFCT short-term Fourier transform unit
  • the speech improvement unit with post-filtering 27 comprises a first module 33 of spatial filtering MVDR (Minimum Variance Distortionless Response), a second module 35 for estimating post-filtering and a third module 37 of post-filtering.
  • the signals e1-e4 coming from the Fourier transform unit 25 are injected on the one hand into the first spatial filtering module 33 (Beamformer) and, on the other hand, into the second module 35 for estimating post-filtering.
  • the output signals of the first 33 and second 35 modules are injected into the third post-filtering module 37 and the output signal of the latter is injected into the synthesis unit 29.
  • each of the modules 33 , 35 and 37 can include a set of actors.
  • the post-filtering unit 37 can be modeled by a graph of data flows where the consistency property is verified on all the actors according to the method of the present invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

La présente invention concerne un procédé et un dispositif de validation d'un système flots de données représenté par un graphe de flots de données, comportant: - un module d'acquisition (9) configuré pour acquérir des données concernant des première et deuxième parties courantes du graphe de flots de données, et - un module de supervision (11) configuré pour vérifier de manière incrémentielle la cohérence dudit système flots de données en vérifiant à chaque incrément la cohérence locale d'une connexion unidirectionnelle courante reliant la première partie courante du graphe de flots de données à la deuxième partie courante du graphe de flots de données.

Description

Description
Procédé de validation d'un système flots de données
La présente invention concerne un procédé et un dispositif de validation d'un système flots de données, et plus particulièrement la vérification de la cohérence du système.
Etat de la technique antérieure
La présente invention s'applique à des systèmes dans lesquels des applications concrètes utilisent des fonctions d'interface prédéfinies pour s'échanger des données entre elles. En particulier, l'invention s'applique à tous les systèmes (ou applications) flots de données de types synchrones comportant des composants (ou tâches) appelés acteurs, connectés entre eux par des canaux (ou connexions) de communication unidirectionnels. Ces systèmes sont souvent utilisés pour décrire le comportement des applications de traitement du signal, car ils fournissent une sémantique d’exécution adéquate pour analyser leurs performances. Les critères les plus courants pour l’analyse des performances sont directement liés à l’optimisation du dimensionnement de la mémoire tampon, du débit ou de la latence. Une première étape dans la résolution de ces problèmes d'optimisation consiste à vérifier quelques propriétés, telles que l'existence d'une limite supérieure pour les tailles de mémoire tampon et l'absence de blocages. Ces propriétés sont avantageusement décidables dans un système flots de données en vérifiant des propriétés de cohérence et d'absence d'inter blocage décrits plus loin.
Un système flots de données est en général modélisé par un graphe de flot de données. Le graphe de flots de données décrit une structure de flots de données dans laquelle les acteurs sont représentés par des noeuds (ou sommets) et les canaux de communication par des arcs. Chaque acteur du graphe de flots de données dispose d’un ensemble de ports. Chaque port représente un point d’extrémité du canal de communication. Les acteurs ont généralement un comportement cyclique, appelé activation ou tir (firing en anglais) consistant à lire des données d'entrée à partir de leurs ports d'entrée, à exécuter leurs tâches et à placer des données de sortie sur leurs ports de sortie. Un tir ne peut avoir lieu que lorsque l'acteur dispose de suffisamment d'informations sur ses ports d'entrée. La quantité de données envoyée sur les ports de sortie ou reçue depuis les ports d'entrée est spécifiée par un nombre de jetons. Les taux de production (respectivement, consommation) représentent le nombre de jetons qu'un acteur peut envoyer (respectivement, recevoir) lorsqu'il fait un tir. On notera que dans un flot de données de type synchrone, les taux de consommation et de production sont constants.
Un système flots de données peut être planifié de manière statique, car chaque acteur du graphe de flots de données produit et utilise la même quantité de données à chaque fois qu'il fait un tir. De plus, un programme périodique peut être construit pour un système flots de données synchrones, étant donné que tous les taux de consommation et de production sont fixes. Dans un ordonnancement périodique valide, chaque acteur s'active (i.e. tire) un certain nombre de fois avant que le graphe ne revienne à son état initial, avec le même nombre de jetons initialement sur les canaux.
Généralement, un vecteur de répétition valide est construit lors de la planification d’un système flots de données SDF. Le vecteur de répétition est un vecteur dont les composants sont des nombres entiers positifs, et dont la dimension est égale au nombre d’acteurs appartenant au graphe de flux de données. Chaque composant du vecteur correspond à un acteur et spécifie le nombre de tirs déclenchés par l'acteur pendant le programme périodique. On peut trouver plus d’un vecteur de répétition pour un graphe donné. Le vecteur de répétition minimale a la norme minimale et correspond à un ordonnancement périodique minimal. On notera que le vecteur de répétition est utilisé pour vérifier la validité du système flots de données.
En effet, pour trouver une planification périodique valide d’un système flots de données, le graphe de flots de données modélisant le système doit vérifier des propriétés de cohérence (consistency, en anglais) et d’absence d'inter-blocage (deadlock, en anglais). La propriété de cohérence concerne le fait que lors des périodes d'exécution, les jetons dans un graphe de flots de données ne s'accumulent pas sur les canaux unidirectionnels. Il est connu [2] que l'existence d'un vecteur de répétition non nul est une condition nécessaire à la cohérence d'un graphe de flots de données, c'est-à-dire qu'elle ait un ordonnancement périodique valide. Par ailleurs, la propriété d’absence d'inter-blocage (appelée également, vivacité) signifie que les acteurs ont suffisamment de jetons sur leurs entrées pour continuer à faire des tirs. On notera que les propriétés de cohérence et d'absence d'inter-blocage sont indépendantes.
Les Figs. 1A-1C illustrent des exemples de graphes de flots de données à deux acteurs montrant les propriétés de cohérence et d'absence d'inter-blocage, selon l'état de l'art.
L'exemple de la Fig. IA illustre un graphe cohérent mais présentant un inter blocage. En effet, ce graphe G1 est cohérent car aucun jeton ne s'accumule sur les canaux. L'acteur A produit un jeton, qui est consommé par l'acteur B, ensuite, l’acteur B tire et produit un jeton, lequel est consommé par l’acteur A, et ainsi de suite. Le vecteur de répétition correspondant au graphe G1 est Xl=(l 1), ce qui signifie que chacun des acteurs A et B s'active (tire) une fois avant que le graphe G1 ne revienne à son état initial. Toutefois, ce graphe G1 n'est pas exempt d'inter-blocage car il n'y a pas de jeton initial sur les canaux, ce qui signifie que ni l'acteur A ni l'acteur B ne peuvent commencer à tirer.
L'exemple de la Fig. IB illustre un graphe G2 non-cohérent mais présentant une absence d'inter-blocage. Le canal unidirectionnel allant de B vers A contient un jeton initial. L’acteur A consomme ce jeton initial et produit un autre jeton, qui est à son tour consommé par l’acteur B. Ensuite, l’acteur B produit deux jetons par tir, de sorte que l’acteur A ait suffisamment de jetons sur ses entrées pour continuer à tirer. Toutefois, les jetons continueront à s'accumuler sur les ports d'entrées de l’acteur A car le rythme de consommation par ce dernier n'est pas aussi rapide que celui de production par l’acteur B. Dans ce cas, aucun vecteur de répétition ne peut être trouvé pour ce graphe G2, ce qui signifie qu’il n’est pas cohérent.
En contraste, l'exemple de la Fig. IC illustre un graphe G3 satisfaisant à la fois la propriété de cohérence et de vivacité (i.e. absence d'inter-blocage). En effet, l’acteur A consomme les deux jetons initiaux sur son port d'entrée et produit un jeton sur le port de sortie. Ensuite, l’acteur B consomme un jeton et produit deux jetons sur son port de sortie, ce qui signifie que le graphe G3 revient dans son état initial. Le vecteur de répétition correspondant au graphe G3 est alors X3=(l 1). L'existence d'un tel vecteur de répétition (non nul) signifie que le graphe G3 est cohérent. Par ailleurs, une façon de vérifier l’absence d’inter blocage, comme proposé dans [12], consiste à déclencher chaque nœud le nombre de fois spécifié par le vecteur de répétition. Si le graphe de flots de données n’a pas d'inter-blocage pendant ce test, alors il est libre de tout inter-blocage.
La propriété de cohérence est importante car si un vecteur de répétition ne peut pas être trouvé pour un graphe de flots de données donné, alors tout système flots de données correspondant à ce graphe se retrouvera soit dans une impasse, soit dans des tailles de mémoires tampons sans limite supérieure.
Actuellement, le formalisme généralement utilisé dans l'état de l'art pour la vérification de la cohérence est basé sur l'extraction d'une matrice dite « matrice de topologie » du graphe de flux de données. Ce formalisme est décrit par Lee et Messerschmitt [1, 2] pour les graphes de flots de données synchrones. La matrice de topologie décrit la manière dont le graphe est connecté et les quantités d’informations que chaque acteur dans le graphe peut envoyer ou recevoir à chaque tir. La matrice de topologie est généralement désignée par la lettre gamma G. Chaque acteur du graphe de flots de données possède une colonne dans la matrice de topologie G et chaque canal (connexion) est affecté à une ligne. Ainsi, la (i, j)eme entrée de la matrice de topologie G correspond au taux de production ou de consommation du nœud j sur le canal i. Par convention, les taux de production sont désignés par des nombres positifs tandis que les taux de consommation sont désignés par des nombres négatifs.
Selon la définition ci-dessus, les matrices de topologie G1, G2 et G3 correspondant aux graphes Gl, G2 et G3 illustrés sur les Figs. 1A-1C sont :
Figure imgf000006_0001
Un vecteur de répétition non nul, ici noté X, peut éventuellement être trouvé en résolvant l'équation matricielle suivante :
GC - 0 (2)
L'existence d'un vecteur de répétition X non nul est une condition nécessaire pour l'existence d'un ordonnancement périodique dans lequel les tailles de mémoire tampon restent limitées. La résolution de l'équation matricielle pour les graphes Gl, G2 et G3 donne les vecteurs indiqués ci-dessus : Xl=(l 1), X2=(0 0) et X3=(l 1).
Ainsi, pour pouvoir vérifier s'il existe un vecteur de répétition X non nul, il est auparavant nécessaire de construire entièrement le graphe de flots de données. En d’autres termes, il faut que le système flot de données soit dans sa forme finale avant de pouvoir vérifier si le système est cohérent ou non.
Cette méthode est très coûteuse en temps et en calcul et au cas où le système flot de données a été jugé non-cohérent, la méthode ne permet pas de détecter les éléments responsables de cette incohérence. De plus, si on ajoute une nouvelle tâche ou acteur à un système flot de données déjà cohérent, on est obligé à nouveau de reconsidérer tout le système flot de données ainsi modifié avant de décider si ce dernier reste cohérent.
L'objet de la présente invention est, par conséquent, de proposer un procédé de validation d'un système flots de données de type synchrones remédiant aux inconvénients précités, en particulier, en permettant une vérification rapide et simple de la cohérence au cas où des nouvelles tâches sont ajoutées ainsi qu'en permettant l'identification des éléments non-cohérents.
Présentation de l'invention
La présente invention concerne un procédé de validation d'un système flots de données représenté par un graphe de flots de données comportant des acteurs présentant des taux de production et des taux de consommation déterminés, ledit procédé étant caractérisé par une vérification incrémentielle dans laquelle la cohérence d'une connexion unidirectionnelle courante reliant une première partie courante du graphe de flots de données à une deuxième partie courante du graphe de flots de données est localement vérifiée à chaque incrément.
Ce procédé permet au graphe de flots de données d'avoir une topologie flexible dans laquelle des acteurs (ou connexions) peuvent être supprimés, ajoutés ou modifiés.
Avantageusement, le procédé comporte les étapes suivantes :
-définir des acteurs d'origine et d'arrivée reliés par ladite connexion unidirectionnelle courante, les acteurs d'origine et d'arrivée appartenant auxdites première et deuxième parties courantes du graphe de flots de données respectivement, les acteurs d'origine et d'arrivée étant définis par des composants d'origine x, et d'arrivée Xj respectivement pouvant appartenir à un unique vecteur courant de répétition ou à deux vecteurs courants de répétition représentatif(s) desdites première et deuxième parties courantes du graphe de flots de données,
-attribuer à ladite connexion unidirectionnelle courante un taux de production h relatif à l'acteur d'origine et un taux de consommation h relatif à l'acteur d'arrivée, -vérifier un indicateur de cohérence locale de ladite connexion unidirectionnelle courante, ledit indicateur de cohérence locale examinant si le produit dudit taux de production h fois ledit composant d'origine x, est égal au produit dudit taux de consommation h fois ledit composant d'arrivée Xj,
-définir un vecteur courant de répétition résultant représentatif desdites première et deuxième parties courantes du graphe de flots de données.
Ainsi, la cohérence peut être vérifiée localement lors de la construction du graphe flots de données ou lors de l'ajout d'une nouvelle connexion sans reconsidérer tout le graphe de flots de données. En effet, la cohérence de la nouvelle connexion peut être évaluée en prenant en compte l'état du graphe précédent.
Avantageusement, au cas où ladite connexion unidirectionnelle courante vérifie l'indicateur de cohérence locale, ledit procédé comporte les étapes suivantes : -si les acteurs d'origine et d'arrivée sont associés à deux vecteurs courants de répétitions distincts, dits vecteurs de répétition d'origine et d'arrivée, a lors on construit le vecteur courant de répétition résultant en concaténant lesdits vecteurs de répétions d'origine et d'arrivée, et -si les acteurs d'origine et d'arrivée sont associés à un unique vecteur courant de répétition, alors le vecteur courant de répétition résultant est égal audit unique vecteur courant de répétition.
Ainsi, à chaque fois qu'une nouvelle connexion est ajoutée, on peut directement savoir si cette nouvelle connexion est cohérente ou pas.
Avantageusement, au cas où ladite connexion unidirectionnelle courante ne vérifie pas l'indicateur de cohérence locale ledit procédé comporte les étapes suivantes : -si les acteurs d'origine et d'arrivée sont associés à deux vecteurs courants de répétitions distincts, dits vecteurs de répétition d'origine et d'arrivée, a lors on calcule deux nombres naturels, dits coefficient de production q et coefficient de consommation q vérifiant une égalité entre d'une part le produit dudit coefficient de production q fois ledit taux de production h fois ledit composant d'origine x, et d'autre part, le produit dudit coefficient de consommation q fois ledit taux de consommation h fois ledit composant d'arrivée Xj, et on construit le vecteur courant de répétition résultant en concaténant le vecteur de répétition d'origine après l'avoir multiplié par le coefficient de production q avec le vecteur de répétition d'arrivée après l'avoir multiplié par le coefficient de consommation q, et -si les acteurs d'origine et d'arrivée sont associés à un unique vecteur courant de répétition, alors la connexion unidirectionnelle courante est identifiée comme étant non cohérente.
Ainsi, ce procédé permet d'identifier quel élément du système flots de données est incohérent.
Avantageusement, les coefficients de production q et de consommation q sont donnés par les équations suivantes :
Figure imgf000009_0001
Avantageusement, le procédé comporte une opération d'addition d'une nouvelle connexion unidirectionnelle entre des première et deuxième parties courantes du graphe de flots de données.
Ainsi, le procédé peut être efficacement utilisé pour des systèmes flots de données modulaires.
Avantageusement, le procédé comporte une opération de suppression d'une connexion unidirectionnelle du graphe de flots de données représenté par un unique vecteur de répétition, dit vecteur de répétition initial, selon les étapes suivantes : -si le graphe de flots de données se divise en des premier et deuxième sous-graphes de flots de données après la suppression de ladite connexion unidirectionnelle, alors on construit un premier vecteur de répétition en regroupant les composants dudit vecteur de répétition initial relatifs audit premier sous-graphe de flots de données, et on construit un deuxième vecteur de répétition en regroupant les composants du vecteur de répétition initial relatifs audit deuxième sous-graphe de flots de données, et
-si le graphe reste connexe après la suppression de ladite connexion unidirectionnelle, alors on ne modifie pas ledit vecteur de répétition initial.
Avantageusement, le procédé comporte une opération de modification d'une connexion unidirectionnelle, selon les étapes suivantes:
-attribuer des nouveaux taux de production r', et de consommation r) relatifs aux acteurs d'origine et d'arrivée reliés par ladite connexion unidirectionnelle, -appliquer l'opération de suppression d'une connexion unidirectionnelle, et -appliquer l'opération d'addition d'une connexion unidirectionnelle.
Avantageusement, le procédé comporte la vérification de la cohérence du graphe de flots de données lors de sa construction en attribuant à chaque acteur d'arrivée additionnel un vecteur additionnel de répétition dont son unique com posant x, est égal à 1, ledit acteur d'arrivée additionnel étant relié par ladite connexion unidirectionnelle courante à un acteur d'origine appartenant audit graphe courant de flots de données en construction. La présente invention vise également un système de traitement de signal numérique conçu en utilisant le procédé de validation selon l'une quelconque des caractéristiques précédentes, ledit système de traitement étant modélisé par un système flots de données comportant des acteurs connectés entre eux par des connexions de communications unidirectionnelles, chaque acteur étant configuré pour recevoir des données d'entrées et pour délivrer des données de sortie.
Avantageusement, ledit système est un système parmi l'un quelconque des systèmes de traitement suivants : système d'imagerie médicale, système de vision par ordinateur, système de codage et compression vidéo, système de conversion d'une fréquence d’échantillonnage audio, système de conception d’outils pour les systèmes de communication sans fil, système d'amélioration de la parole multicanal, système embarqué.
La présente invention vise aussi un dispositif de validation d'un système flots de données représenté par un graphe de flots de données comportant des acteurs présentant des taux de production et des taux de consommation déterminés, ledit système comportant : -un module d'acquisition configuré pour acquérir des données concernant des première et deuxième parties courantes du graphe de flots de données, et
-un module de supervision configuré pour vérifier de manière incrémentielle la cohérence dudit système flots de données en vérifiant à chaque incrément la cohérence locale d'une connexion unidirectionnelle courante reliant la première partie courante du graphe de flots de données à la deuxième partie courante du graphe de flots de données.
Brève description des 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 :
[Fig. IA]
[Fig. IB] [Fig. IC] illustrent des exemples de graphes flots de données à deux acteurs montrant les propriétés de cohérence et d'absence d'inter-blocage, selon l'état de l'art ;
[Fig. 2] illustre de manière schématique un dispositif et un procédé de validation d'un système flots de données, selon un mode de réalisation de l'invention ;
[Fig. 3] est un graphe flots de données illustrant la vérification de cohérence d'une connexion, selon un mode de réalisation de la présente invention ;
[Fig. 4] est un organigramme illustrant les étapes d'un procédé de validation d'un système flots de données, selon un mode de réalisation préféré de l'invention ;
[Fig. 5] illustre de manière schématique la construction d'un graphe flots de données selon le procédé de la Fig. 4 ;
[Fig. 6] illustre de manière schématique la connexion de deux graphes distincts, selon le procédé de la présente invention ;
[Fig. 7] est un organigramme illustrant les étapes d'un procédé de validation comportant une opération de suppression, selon un mode de réalisation préféré de l'invention ;
[Fig. 8] un organigramme illustrant les étapes d'un procédé de validation comportant une opération de modification, selon un mode de réalisation préféré de l'invention ;
[Fig. 9A] et
[Fig. 9B] illustrent à titre d'exemple la vérification de cohérence dans un système de flots de données modélisant un dispositif d'amélioration de la parole multicanal, selon la présente invention.
Description détaillée de l'invention
Le principe de la présente invention est de vérifier la cohérence d'un système flots de données de manière incrémentielle et locale. La présente invention s'intéresse en particulier, aux systèmes flots de données dont les acteurs ont des taux de consommation et de production déterminés (i.e. définis ou quantifiables). Par exemple, le système peut être un système flots de données synchrones de type SDF (Synchronous dataflow) ou un système flots de données synchrones et cycliques. La Fig. 2 illustre de manière schématique un dispositif et un procédé de validation d'un système flots de données, selon un mode de réalisation de l'invention.
Le dispositif de validation 1 est mis en oeuvre par des moyens matériels comportant une machine de traitement de l'information tel un calculateur ou ordinateur 3 comportant un microprocesseur 5 et des mémoires 7. Le microprocesseur 5 est configuré pour exécuter un ou plusieurs programmes d'ordinateur comprenant des instructions de code de programme, stockés dans les mémoires 7 de l'ordinateur et conçus pour mettre en oeuvre la validation d'un système de flots de données.
Conformément à l'invention, le dispositif de validation 1 comporte un module d'acquisition 9 et un module de supervision 11.
Le module d'acquisition 9 est configuré pour acquérir des données concernant un graphe courant de flots de données et plus particulièrement, des données concernant des première et deuxième parties courantes du graphe de flots de données ainsi qu'une connexion courante entre ces deux parties. Par première ou deuxième partie courante d'un graphe de flots de données, on entend une partie du graphe comportant au moins un seul acteur.
De manière générale, un graphe de flots de données comporte des acteurs indépendants s'échangeant entre eux des informations quantifiables, à travers des connexions (i.e. canaux) de communications unidirectionnelles. Les acteurs peuvent être des entités logicielles (par exemple, des applications) et/ou matérielles (par exemple, des capteurs, caméras, sondes, microprocesseurs, etc.). Les acteurs sont représentés par des noeuds (ou sommets) et les connexions de communication par des arcs. Chaque acteur est configuré pour attendre d'avoir reçu une quantité de données spécifiée sur ses ports 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 sur ses ports de sortie à destination de nouveaux acteurs, et chacun répétant ce comportement indéfiniment. Le processus cyclique de consommation/traitement/émission est communément appelé une activation ou un tir.
Dans des flots de données synchrones, tous les acteurs ont des taux de consommation et de production déterminés (quantifiables), et ces taux sont connus lors de la construction du graphe de flots de données. Les noeuds du graphe de flots de données peuvent être mappés sur différentes unités de calcul, afin que les tâches puissent être exécutées dans un certain ordre. Cette procédure s'appelle la planification qui peut être effectuée de manière statique (au moment de la compilation) ou dynamique (au moment de l'exécution).
Le module de supervision 11 est configuré pour vérifier de manière incrémentielle la cohérence du système flots de données en vérifiant à chaque incrément la cohérence locale de la connexion unidirectionnelle courante reliant la première partie courante du graphe de flots de données à la deuxième partie courante du graphe de flots de données.
Par ailleurs, on notera que l'absence d'inter-blocage peut être vérifiée en déclenchant chaque nœud le nombre de fois spécifié par le vecteur de répétition. Si aucun d'inter-blocage n'a été décelé pendant ce test, le graphe de flots de données est alors libre de tout blocage.
Dans la suite, on note X le vecteur de répétition et par x, le ième composant du vecteur de répétition X. On considère par convention que lorsqu'un acteur est créé, un vecteur de répétition lui est associé ne comportant qu'un seul composant dont la valeur est égale à un.
Par ailleurs, la vérification locale et incrémentielle de la cohérence selon l'invention se base sur la proposition suivante et son corollaire ainsi que sur leurs implications.
Proposition : Si un graphe G de flots de données est cohérent et a un vecteur de répétition valide X, alors kX est également un vecteur de répétition valide pour tout nombre naturel k (i.e. k e Z).
Corollaire : Considérons un graphe de flots de données cohérent avec n acteurs et un vecteur de répétition valide X = [xi x2... xn]. Supposons qu'en raison d’une contrainte de conception supplémentaire, le ième composant du vecteur X doit être modifié. On note x*, la nouvelle valeur du ieme composant du vecteur X. Alors, afin de préserver la cohérence du graphe de flux de données, les valeurs de tous les autres composants Xj du vecteur X (i.e. Xj, j = 1... n, et j ¹ n) doivent être multipliées par x* / x,. Ainsi, lorsqu'une nouvelle connexion unidirectionnelle est créée entre deux acteurs a, et aj ayant des taux de production et de consommation h et h respectivement et étant représentés par des composants x, et Xj respectivement, la nouvelle connexion unidirectionnelle est considérée comme étant cohérente si l’on peut trouver deux nombres naturels q et q (i.e. q e Z et q e Z), dits coefficients de production q et de consommation q, satisfaisant une propriété de cohérence. Cette propriété est une égalité entre d'une part le produit du coefficient de production q fois le taux de production h fois le composant d'origine Xi et d'autre part, le produit du coefficient de consommation q fois le taux de consommation h fois le composant d'arrivée Xj selon l'équation suivante :
Figure imgf000015_0001
En effet, la Fig. 3 est un graphe flots de données illustrant la vérification de cohérence d'une connexion, selon l'équation (3) ci-dessus.
Plus particulièrement, l'exemple de la Fig. 3 illustre un graphe G4 résultant de la modification du graphe cohérent G3 de la Fig. IC en lui ajoutant un nouvel acteur C et une nouvelle connexion entre l'acteur B et l'acteur C. On notera que cette modification peut être vue soit comme une modification du graphe initial G3 illustré dans la Fig. IC, soit comme une étape parmi d'autres dans la construction itérative du graphe G4 de la Fig. 3. Dans les deux cas, la modification consiste à ajouter la nouvelle connexion entre l'acteur B et l'acteur C. Soient XG et Xc les vecteurs de répétition du graphe initial G3 et de l'acteur C respectivement. Dans ce cas, le second composant xB du vecteur de répétition XG associé au graphe initial G3 est égal à 1 (i.e. xB =1) et par convention le seul composant xG du vecteur de répétition XG de l'acteur C est égal à 1 (i.e. xG=l). Sur cette nouvelle connexion, l’acteur B produit un jeton, ce qui signifie rB =1, et l’acteur C consomme deux jetons, ce qui signifie rG =2. On a vu précédemment que le vecteur de répétition XG correspondant au graphe initial G3 est XG=(1 1). Afin de calculer le nouveau vecteur de répétition X'G résultant de la connexion, il suffit de trouver deux nombres naturels Ci et c2 vérifiant l'équation (3) ci-dessus. En remplaçant les variables connues dans l’équation (3), on obtient CI=2C2. Par ailleurs, on peut déterminer un vecteur de répétition minimal, en choisissant Ci=2 et c2=l. Ainsi, les valeurs correspondant aux acteurs B et C dans le nouveau vecteur de répétition X'G seront respectivement x*B=CiXB =2 et x*c=c2xc =1. Dans ce cas, la propriété de cohérence est préservée par la proposition énoncée ci-dessus. En outre, en conformité avec le corollaire ci-dessus, le composant du vecteur de répétition correspondant à l’acteur A doit également être changé. Ainsi, après la connexion des acteurs B et C, le nouveau vecteur de répétition X'G du graphe de la Fig. 3 est X'G=(2 2 1).
On remarque qu'il n’est nullement nécessaire de calculer une nouvelle matrice de topologie G pour le graphe G4 de la Fig. 3. Il suffisait seulement de trouver les coefficients Ci et c2 et ensuite d’appliquer le corolaire ci-dessus. Néanmoins, on remarque que le nouveau vecteur de répétition X'G =(2 2 1) trouvé ci-dessus satisfait à l’équation (2) avec une matrice de topologie donnée par :
Figure imgf000016_0001
Dans ce qui suit, on montre une manière de choisir les coefficients c, et q de manière à satisfaire l'équation (3) pour le cas général dans lequel deux acteurs, dits acteur d'origine aj de composant x, et acteur d'arrivée aj de composant Xj sont connectés. En particulier, en choisissant c, = Xj / h et q = x, / h et en les remplaçant dans l’équation (3), on obtient :
? 1 i »« = ¾ ' } ¾ P?
Cette équation est bien entendu toujours vraie. Toutefois, ce choix de paramètres ne garantit pas des valeurs entières pour les coefficients q et q. Alors, pour que ces coefficients soient entiers, on multiplie l'égalité (5) ci-dessus par le plus petit commun multiplicateur ppcm des taux de production h et de consommation h et on divise par le plus grand commun diviseur pgcd des composants x, et Xj des acteurs d'origine et d'arrivée respectivement. Ceci donne les coefficients de production q et de consommation q, suivants :
Figure imgf000017_0001
Les coefficients q et q selon l'équation (6) satisfont la condition de cohérence de l'équation (3).
Afin de déterminer le vecteur de répétition minimal, les composants initiaux du vecteur de répétition ne sont multipliés que par des coefficients définis par leur plus grand commun diviseur:
Figure imgf000017_0002
Les coefficients c, et q définis dans les équations (7) vérifient, bien entendu, l’égalité (3). Par exemple, lorsqu'une nouvelle connexion est établie entre les acteurs a, et aj, le composant x, du vecteur de répétition correspondant à l'acteur a, est multiplié par ci; et le composant Xj correspondant à l'acteur aj est multiplié par le coefficient q afin de conserver la propriété de cohérence du graphe.
La Fig. 4 est un organigramme illustrant les étapes d'un procédé de validation d'un système flots de données, selon un mode de réalisation préféré de l'invention.
Dans ce procédé, on vérifie la cohérence d'une connexion unidirectionnelle courante reliant une première partie courante du graphe de flots de données à une deuxième partie courante du graphe de flots de données.
A l'étape El, on définit la connexion unidirectionnelle courante reliant des acteurs d'origine a, et d'arrivée aj. Les acteurs d'origine a, et d'arrivée aj appartiennent aux première et deuxième parties courantes du graphe de flots de données respectivement. On définit les composants d'origine x', et d'arrivée x" associés aux acteurs d'origine a, et d'arrivée aj. On notera que de manière générale, les composants d'origine x', et d'arrivée x" peuvent appartenir à un unique vecteur courant de répétition X' représentatif des première et deuxième parties courantes du graphe ou à deux vecteurs courants de répétition distincts X' et X" représentatifs des première et deuxième parties courantes du graphe respectivement. La définition de la connexion unidirectionnelle courante comporte l'attribution d'un taux de production h relatif à l'acteur d'origine a, et d'un taux de consommation relatif à l'acteur d'arrivée aj.
On peut par exemple considérer qu’un graphe de flots de données est en construction et qu’une nouvelle connexion courante est établie entre l'acteur d'origine a, et l'acteur d'arrivée aj. Ce cas est résumé dans l’Algorithme décrit dans le tableau 1 ci-dessous. Dans cet Algorithme, on considère deux vecteurs de répétition X' et X" correspondant respectivement aux première et deuxième parties courantes du graphe de flots de données. On note i l'indice du ieme composant du vecteur X' et j l’indice du jeme composant du vecteur X". On note h le taux de production correspondant au composant x', du vecteur X' et h le taux de consommation correspondant au composant x" du vecteur X". On note les opérations « ppcm » et « pgcd » par « Icm » et « gcd » respectivement. En outre, on note X le vecteur de répétition résultant correspondant au nouveau graphe.
Figure imgf000019_0001
A l'étape E2, afin d’éviter des opérations inutiles, on vérifie d'abord un indicateur de cohérence locale de la connexion unidirectionnelle courante (ligne 1 de l'Algorithme). Cet indicateur de cohérence locale examine si le produit du taux de production h fois le composant d'origine x, est égal au produit du taux de consommation fois le composant d'arrivée Xj (i.e., h*Cί = rj*Xj). Quel que soit l'issue de ce test, on considère aux étapes suivantes deux cas. Un premier cas où les deux acteurs proviennent de deux vecteurs de répétition différents, c'est- à-dire qu'il n'y avait pas de connexion entre les deux acteurs avant la nouvelle connexion, et un deuxième cas où les deux acteurs proviennent du même graphe, c'est-à-dire qu'ils ont le même vecteur de répétition. Selon l'issue de ces deux différents cas, on définit aux étapes E4- E6 ou E8-E9 un vecteur courant de répétition résultant représentatif des première et deuxième parties courantes du graphe de flots de données.
En effet, si le test de l'étape E2 est positif, c'est-à-dire, au cas où la connexion unidirectionnelle courante vérifie l'indicateur de cohérence locale, on considère que le drapeau de cohérence (c_flag) est vrai sur la ligne 2 de l'Algorithme et on va à l'étape E3. Sinon, on va à l'étape E7.
Les étapes E3-E6 concernent le cas où la connexion unidirectionnelle courante vérifie l'indicateur de cohérence locale. Plus particulièrement, l'étape E3 est un test pour vérifier si les acteurs d'origine a, et d'arrivée aj sont associés à deux vecteurs courants de répétitions distincts, dits vecteurs de répétition d'origine X' et d'arrivée X" (i.e. le cas où il n'existait pas de connexion entre les acteurs d'origine a, et d'arrivée aj avant la connexion unidirectionnelle courante). Si oui, on va à l'étape E4 et sinon, on va à l'étape E6.
L'étape E4 concerne le cas où les deux acteurs proviennent de deux vecteurs de répétition différents et que la nouvelle connexion est cohérente. Dans ce cas, on construit le vecteur courant de répétition résultant X en concaténant les vecteurs de répétitions d'origine X' et d'arrivée X" et on s'arrête à l'étape E5 où le graphe est considéré comme étant cohérent. Cela correspond aux lignes 3 à 6 de l'Algorithme ci-dessus.
L'étape E6 concerne le cas où les acteurs d'origine a, et d'arrivée aj sont associés à un unique vecteur courant de répétition (i.e., ils viennent du même graphe). Alors, dans ce cas, le vecteur courant de répétition résultant X est égal à l'unique vecteur courant de répétition X'. Autrement dit, étant donné que les deux acteurs qu'on souhaite associer proviennent du même vecteur de répétition et que l’indicateur de cohérence est vrai, alors l'unique vecteur courant de répétition X' n'est pas modifié et on s'arrête à l'étape E5 où le graphe est considéré comme étant cohérent. Cela correspond aux lignes 18-20 de l'Algorithme ci-dessus.
En revanche, si l'issue de l'étape E2 est négatif, c'est-dire, si la connexion unidirectionnelle courante ne vérifie pas l’indicateur de cohérence locale, alors on examine les étapes E7-E9. L'étape E7 est un test similaire à celui de l'étape E3 dans lequel on vérifie si les acteurs d'origine a, et d'arrivée aj sont associés à deux vecteurs courants de répétitions distincts, dits vecteurs de répétition d'origine X' et d'arrivée X". Si oui, on va à l'étape E8 et sinon, on va à l'étape E10.
A l'étape E8, on calcule les deux nombres naturels (i.e. les coefficients de production q et de consommation q) vérifiant l'équation (3) ci-dessus. Autrement dit, étant donné que la nouvelle connexion n’est pas cohérente, les coefficients q et q définis dans l’équation (7) sont calculés aux lignes 8 à 14 de l'Algorithme ci-dessus.
A l'étape E9, on construit le vecteur courant de répétition résultant X (ligne 15 de l'Algorithme) en concaténant d'une part le vecteur de répétitions d'origine X' après l'avoir multiplié par le coefficient de production q avec d'autre part, le vecteur de répétitions d'arrivée X" après l'avoir multiplié par le coefficient de consommation q. Ensuite, on s'arrête à l'étape E5 où l'on considère que le graphe est cohérent.
L'étape E10 concerne le cas où les acteurs d'origine a, et d'arrivée aj sont associés à un unique vecteur courant de répétition (i.e. les acteurs viennent du même graphe), alors la connexion unidirectionnelle courante est identifiée comme étant non cohérente (i.e. le graphe résultant n'est pas cohérent). Cela correspond aux lignes 22-24 de l'Algorithme.
La Fig. 5 illustre de manière schématique la construction d'un graphe selon le procédé de la Fig. 4.
Plus particulièrement, la construction du graphe G5 de la figure 5 est une application de l'Algorithme représenté ci-dessus. Selon cet exemple, quatre acteurs A, B, C et D sont créés, chacun d’entre eux a un vecteur de répétition X= (1). Les connexions unidirectionnelles sont établies dans l’ordre suivant: (A -> B), (A -> C), (B -> D), et (C -> D). Après la connexion (A -> B), les calculs selon l'Algorithme donnent les valeurs suivantes : q = 3, Cj = 2 et X = (3 2), car les deux acteurs proviennent de deux vecteurs de répétition différents. De manière similaire, q = 1, q = 3 et X = (3 2 3) lorsque la connexion (A -> C) est établie. La connexion (B -> D) souligne l'importance des lignes 12-14 dans l'Algorithme. En effet, avant la ligne 12, q = q = 2. Toutefois, en utilisant ces coefficients, on n’obtient pas un vecteur de répétition minimal lors de la mise à jour du vecteur de répétition X comme à la ligne 15, d'où l'intérêt de diviser les coefficients par d (lignes 13 et 14). Le cas exprimé sur les lignes 17 et 18 de l’Algorithme illustre la connexion (C -> D) où le vecteur de répétition ne change pas, il en est de même après la connexion (C -> D), X = (3 2 3 1).
L'exemple de la Fig. 5 montre bien l'application de l’Algorithme sur un graphe G5 donné. À partir de cet exemple, on observe que les lignes 8-14 garantissent un ensemble de coefficients entiers nécessaires pour obtenir un vecteur de répétition minimal. En outre, la vérification de la cohérence locale selon le procédé de la présente invention montre très avantageusement comment le nombre d’opérations requises est réduit au minimum, ce qui est très avantageux en particulier, dans le cas d’applications modulaires.
La Fig. 6 illustre de manière schématique la connexion de deux graphes distincts, selon le procédé de la présente invention.
L'exemple de la Fig. 6 est une application de flots de données modulaire, dans laquelle le graphe G5 de flots de données représenté sur la Fig. 5 est ajouté au graphe G4 de flots de données représenté sur la Fig. 3 pour former un nouveau graphe G6. La propriété de cohérence ayant déjà été vérifiée pour les deux graphes G4 et G5, seule la nouvelle connexion entre l’acteur B1 du premier graphe G4 et l’acteur B2 du second graphe G5 est à vérifier. En appliquant l’Algorithme ci-dessus avec les entrées X’= (2 2 1), X"= (3 2 3 1), i = 2, j = 2, h = 1, et h = 5, on obtient q = 5 et q = 1. Le vecteur de répétition résultant donné par la sortie de l’Algorithme est X = (10 10 5 3 2 3 1). On remarque que le vecteur courant de répétition résultant X du graphe G6 est construit en concaténant le premier vecteur de répétition X' du graphe G4 après l'avoir multiplié par le coefficient de production c,=5 avec le deuxième vecteur de répétition X" du graphe G5. On notera que les quatre derniers composants sont identiques à ceux du deuxième vecteur de répétition X" car le coefficient de consommation q=l.
L’exemple de la Fig. 6 montre bien que lorsque deux graphes G4 et G5 cohérents sont connectés, le procédé selon la présente invention permet de vérifier la propriété de cohérence de manière locale de sorte qu'il n'est plus nécessaire de revérifier la cohérence du graphe résultant G6. En effet, le procédé selon la présente invention ne vérifie que les nouvelles connexions et déduit le vecteur de répétition résultant des deux vecteurs de répétition initiaux. C'est un avantage très important par rapport aux méthodes classiques de l'art antérieur, pour lesquelles une nouvelle matrice de topologie doit être calculée et une nouvelle équation matricielle doit être résolue.
En outre, l'application modulaire décrite dans de la Fig. 6 peut également être vue comme la construction d'un premier sous-graphe G4 dans laquelle trois acteurs sont d’abord créés et connectés entre eux, puis la construction d'un deuxième sous-graphe G5 dans laquelle quatre autres acteurs sont créés et connectés entre eux, et enfin les deux sous-graphes G4 et G5 sont connectés entre eux pour former un graphe résultant G6.
On notera que la cohérence est vérifiée lors de la construction de chaque sous- graphe G4, G5 en attribuant à chaque acteur d'arrivée aj additionnel un vecteur additionnel de répétition dont son unique composant x, est égal à 1. L'acteur d'arrivée aj additionnel est relié par une connexion unidirectionnelle courante à un acteur d'origine a, appartenant au sous- graphe de flots de données en construction.
La Fig. 7 est un organigramme illustrant les étapes d'un procédé de validation comportant une opération de suppression, selon un mode de réalisation préféré de l'invention.
Dans ce procédé, on vérifie la cohérence d'un graphe de flots de données lors de la suppression d'une connexion unidirectionnelle de ce graphe.
A l'étape E21, on supprime une connexion donnée du graphe de flots de données.
L'étape E22 est un test pour vérifier si le graphe de flots de données initial se divise en deux parties distinctes ou pas. Si le graphe de flots de données se divise en deux parties distinctes, alors on va à l'étape E23 et sinon, on va à l'étape E26.
L'étape E23 concerne le cas où le graphe de flots de données se divise en des premier et deuxième sous-graphes de flots de données après la suppression de la connexion unidirectionnelle. Dans ce cas, on construit un premier vecteur de répétition X' en regroupant les composants du vecteur de répétition initial relatifs au premier sous-graphe de flots de données, et on construit un deuxième vecteur de répétition X" en regroupant les composants du vecteur de répétition initial relatifs au deuxième sous-graphe de flots de données.
Eventuellement, à l'étape E24, on construit des premier et deuxième vecteurs de répétition minimaux X* et X** en divisant le premier vecteur de répétition X' par le pgcd de ses composants et également, en divisant le deuxième vecteur de répétition X" par le pgcd de ses composants.
A l'étape E25, on obtient deux graphes de flots de données distincts et cohérents.
L'étape E26 concerne le cas où le graphe de flots de données reste connexe après la suppression de la connexion unidirectionnelle. Alors dans ce cas, on ne modifie pas le vecteur de répétition initial.
A l'étape E27, on a toujours un seul graphe cohérent.
La Fig. 8 est un organigramme illustrant les étapes d'un procédé de validation comportant une opération de modification, selon un mode de réalisation préféré de l'invention.
Dans ce procédé on vérifie la cohérence d'un graphe de flots de données lors de la modification d'une connexion unidirectionnelle de ce graphe.
A l'étape E31, on modifie une connexion donnée du graphe de flots de données en lui attribuant des nouveaux taux de production r', et de consommation r relatifs aux acteurs d'origine a, et d'arrivée aj reliés par cette connexion unidirectionnelle.
A l'étape E32, on applique l'opération de suppression d'une connexion unidirectionnelle selon les étapes du procédé de la Fig. 7.
A l'étape E33, on applique l'opération d'addition d'une connexion unidirectionnelle décrite par les procédés de la Fig. 4 selon les nouveaux taux de production r', et de consommation r'j.
A l'étape E34, on obtient un graphe modifié et cohérent.
Les exemples et modes de réalisations présentés ci-dessus soulignent les avantages de la vérification locale de la propriété de cohérence. Sur les exemples considérés, on voit que le calcul de la matrice de topologie n’est pas nécessaire et que le vecteur de répétition minimale peut être trouvé de manière très efficace et avec très peu de calcul. Un autre avantage réside dans le fait que les éléments incohérents peuvent être identifiés et qu'il n'est pas nécessaire de reconsidérer le graphe en son entier pour décider de sa cohérence.
Par ailleurs, on notera que le procédé selon l'invention peut être appliqué de manière incrémentielle lors de la construction du graphe de flots de données. En variante, il peut également être appliqué après la construction d'un graphe, sur chacune de ses connexions.
La présente invention s'applique à tous les systèmes à flot de données. En particulier, elle s'applique aux systèmes de traitement de signal numérique. En effet, le système de traitement peut être modélisé par un système flots de données comportant des acteurs connectés entre eux par des connexions de communications unidirectionnelles. Chaque acteur est configuré pour recevoir des données d'entrée et pour délivrer des données de sortie.
A titre d'exemple, le système de traitement de signal numérique peut être un système d'imagerie médicale, un système de vision par ordinateur, un système de codage et compression, un système de conversion de la fréquence d’échantillonnage audio, un système de conception d’outils pour les systèmes de communication sans fil, un système embarqué, etc.
Ainsi, le système de traitement de signal peut être modélisé par un graphe de flots de données en construction selon une approche incrémentale pouvant être appliquée lors de la construction du graphe. La construction d’un graphe incohérent peut être arrêtée dès qu’un élément incohérent a été identifié.
En outre, la modélisation du système de traitement de signal peut être réalisée de manière modulaire. Supposons qu'on souhaite modéliser un système embarqué d'anticollision dans un véhicule et qu'on souhaite ajouter un module de radar à un module de vision par caméras. Supposons que chacun des modules de radar et de vision est décrit par un graphe cohérent. La cohérence de la combinaison des deux modules peut être déterminée selon la présente invention en vérifiant uniquement les modifications générées par la combinaison, telles que l'ajout des connexions entre les deux graphes, et peut ainsi réduire le nombre d'opérations requises pour le contrôle de la cohérence.
La Fig. 9 illustre à titre d'exemple la vérification de cohérence dans un système de flots de données modélisant un dispositif d'amélioration de la parole multicanal, selon la présente invention.
Le dispositif 21 d'amélioration de la parole multicanal (multichannel speech enhancement, en anglais) est connecté à un réseau de quatre microphones M1-M4. Les signaux bruyants provenant de ces quatre microphones M1-M4 sont traités par un ensemble d'unités 23, 25, 27 et 29 de traitement de signal compris dans le dispositif 21 pour extraire le signal de la parole améliorée à la sortie 31. En effet, le dispositif 21 d'amélioration de la parole comporte une unité d'alignement temporel ou de synchronisation 23, une unité de transformation de Fourier à court terme 25 (TFCT), une unité d'amélioration du signal avec post-filtrage 27 et une unité d'addition ou de synthèse 29.
En particulier, l'unité d'amélioration de la parole avec post-filtrage 27 comporte un premier module 33 de filtrage spatial MVDR (Minimum Variance Distortionless Response), un deuxième module 35 d'estimation de post-filtrage et un troisième module 37 de post-filtrage. Les signaux el-e4 provenant de l'unité 25 de transformation de Fourier sont injectés d'une part dans le premier module 33 de filtrage spatial (Beamformer, en anglais) et d'autre part, dans le deuxième module 35 d'estimation de post-filtrage. En outre, les signaux de sorties des premier 33 et deuxième 35 modules sont injectés dans le troisième module 37 de post-filtrage et le signal de sortie de ce dernier est injecté dans l'unité de synthèse 29. On notera que chacun des modules 33, 35 et 37 peut comporter un ensemble d'acteurs. Ainsi, l'unité de post-filtrage 37 peut être modélisée par un graphe de flots de données où la propriété de cohérence est vérifiée sur tous les acteurs selon le procédé de la présente invention.
En outre, une fois que la propriété de cohérence a été vérifiée sur tous les modules 33, 35, 37 de cette application, on peut en modifier certains. Supposons par exemple que l’application d'amélioration de la parole multicanal utilise un post-filtre de McCowan pour le module de post-filtrage 37. Ce filtre peut être remplacé par un post-filtre de Wiener afin d'obtenir une estimation plus précise de la densité spectrale du bruit. Dans ce cas, il n'est pas nécessaire de vérifier à nouveau la propriété de cohérence sur l'ensemble des modules. En effet, si le nouveau module de post-filtrage vérifie la propriété de cohérence, ceci n'impacte pas la propriété de cohérence des autres modules et on en conclut que toute l’application vérifie la propriété de cohérence selon le procédé de la présente invention.
Références
1. Lee, E.A., Messerschmitt, D.G.: Synchronous data ow. Proceedings of the IEEE 75(9),
1235(1245 (1987).
2. Lee, E.A., Messerschmitt, D.G.: Static scheduling of synchronous data ow programs for digital signal processing; IEEE Transactions on computers 100(1), 24(35 (1987).

Claims

Revendications
1. Procédé de validation d'un système flots de données représenté par un graphe de flots de données comportant des acteurs présentant des taux de production et des taux de consommation déterminés, ledit procédé étant caractérisé par une vérification incrémentielle dans laquelle la cohérence d'une connexion unidirectionnelle courante reliant une première partie courante du graphe de flots de données à une deuxième partie courante du graphe de flots de données est localement vérifiée à chaque incrément.
2. Procédé de validation selon la revendication 1, caractérisé en ce qu'il comporte les étapes suivantes :
-définir des acteurs d'origine et d'arrivée reliés par ladite connexion unidirectionnelle courante, les acteurs d'origine et d'arrivée appartenant auxdites première et deuxième parties courantes du graphe de flots de données respectivement, les acteurs d'origine et d'arrivée étant définis par des composants d'origine x, et d'a rrivée Xj respectivement pouvant appartenir à un unique vecteur courant de répétition ou à deux vecteurs courants de répétition représentatif(s) desdites première et deuxième parties courantes du graphe de flots de données,
-attribuer à ladite connexion unidirectionnelle courante un taux de production h relatif à l'acteur d'origine et un taux de consommation h relatif à l'acteur d'arrivée, -vérifier un indicateur de cohérence locale de ladite connexion unidirectionnelle courante, ledit indicateur de cohérence locale examinant si le produit dudit taux de production h fois ledit composant d'origine x, est égal au produit dudit taux de consommation h fois ledit composant d'arrivée Xj,
-définir un vecteur courant de répétition résultant représentatif desdites première et deuxième parties courantes du graphe de flots de données.
3. Procédé de validation selon la revendication 2, caractérisé en ce qu'au cas où ladite connexion unidirectionnelle courante vérifie l'indicateur de cohérence locale, ledit procédé comporte les étapes suivantes :
-si les acteurs d'origine et d'arrivée sont associés à deux vecteurs courants de répétitions distincts, dits vecteurs de répétitions d'origine et d'arrivée, alors on construit le vecteur courant de répétition résultant en concaténant lesdits vecteurs de répétions d'origine et d'arrivée, et
-si les acteurs d'origine et d'arrivée sont associés à un unique vecteur courant de répétition, alors le vecteur courant de répétition résultant est égal audit unique vecteur courant de répétition.
4. Procédé de validation selon la revendication 2, caractérisé en ce qu'au cas où ladite connexion unidirectionnelle courante ne vérifie pas l'indicateur de cohérence locale, ledit procédé comporte les étapes suivantes :
-si les acteurs d'origine et d'arrivée sont associés à deux vecteurs courants de répétitions distincts, dits vecteurs de répétitions d'origine et d'arrivée, alors on calcule deux nombres naturels, dits coefficient de production q et coefficient de consommation q vérifiant une égalité entre d'une part le produit dudit coefficient de production q fois ledit taux de production h fois ledit composant d'origine x, et d'autre part, le produit dudit coefficient de consommation q fois ledit taux de consommation h fois ledit composant d'arrivée Xj, et on construit le vecteur courant de répétition résultant en concaténant le vecteur de répétition d'origine après l'avoir multiplié par le coefficient de production q avec le vecteur de répétition d'arrivée après l'avoir multiplié par le coefficient de consommation q, et -si les acteurs d'origine et d'arrivée sont associés à un unique vecteur courant de répétition, alors la connexion unidirectionnelle courante est identifiée comme étant non cohérente.
5. Procédé de validation selon la revendication 4, caractérisé en ce que les coefficients de production q et de consommation q sont donnés par les équations suivantes :
Figure imgf000031_0001
6. Procédé de validation selon l'une quelconque des revendications 2 à 5, caractérisé en ce qu'il comporte une opération d'addition d'une nouvelle connexion unidirectionnelle entre des première et deuxième parties courantes du graphe de flots de données.
7. Procédé de validation selon l'une quelconque des revendications 2 à 5, caractérisé en ce qu'il comporte une opération de suppression d'une connexion unidirectionnelle du graphe de flots de données représenté par un unique vecteur de répétition, dit vecteur de répétition initial, selon les étapes suivantes :
-si le graphe de flots de données se divise en des premier et deuxième sous-graphes de flots de données après la suppression de ladite connexion unidirectionnelle, alors on construit un premier vecteur de répétition en regroupant les composants dudit vecteur de répétition initial relatifs audit premier sous-graphe de flots de données, et on construit un deuxième vecteur de répétition en regroupant les composants du vecteur de répétition initial relatifs audit deuxième sous-graphe de flots de données, et
-si le graphe reste connexe après la suppression de ladite connexion unidirectionnelle, alors on ne modifie pas ledit vecteur de répétition initial.
8. Procédé de validation selon les revendications 6 et 7, caractérisé en ce qu'il comporte une opération de modification d'une connexion unidirectionnelle, selon les étapes suivantes: -attribuer des nouveaux taux de production r', et de consommation r'j relatifs aux acteurs d'origine et d'arrivée reliés par ladite connexion unidirectionnelle,
-appliquer l'opération de suppression d'une connexion unidirectionnelle selon la revendication 7, et -appliquer l'opération d'addition d'une connexion unidirectionnelle selon la revendication 6.
9. Procédé de validation selon l'une quelconque des revendications 2 à 8, caractérisé en ce qu'il comporte la vérification de la cohérence du graphe de flots de données lors de sa construction ou de sa modification, en attribuant à chaque acteur d'arrivée additionnel un vecteur additionnel de répétition dont son unique composant x, est égal à 1, ledit acteur d'arrivée additionnel étant relié par ladite connexion unidirectionnelle courante à un acteur d'origine appartenant audit graphe courant de flots de données en construction ou en modification.
10. Système de traitement de signal numérique conçu en utilisant le procédé de validation selon l'une quelconque des revendications précédentes, caractérisé en ce que ledit système de traitement est modélisé par un système flots de données comportant des acteurs connectés entre eux par des connexions de communications unidirectionnelles, chaque acteur étant configuré pour recevoir des données d'entrée et pour délivrer des données de sortie.
11. Système de traitement de signal numérique selon la revendication 10, caractérisé en ce que ledit système est un système parmi l'un quelconque des systèmes de traitement suivants : système d'imagerie médicale, système de vision par ordinateur, système de codage et compression vidéo, système de conversion d'une fréquence d’échantillonnage audio, système de conception d’outils pour les systèmes de communication sans fil, système d'amélioration de la parole multicanal, système embarqué.
12. Dispositif de validation d'un système flots de données représenté par un graphe de flots de données comportant des acteurs présentant des taux de production et des taux de consommation déterminés, caractérisé en ce que ledit système comporte : -un module d'acquisition (9) configuré pour acquérir des données concernant des première et deuxième parties courantes du graphe de flots de données, et -un module de supervision (11) configuré pour érifier de manière incrémentielle la cohérence dudit système flots de données en vérifiant à chaque incrément la cohérence locale d'une connexion unidirectionnelle courante reliant la première partie courante du graphe de flots de données à la deuxième partie courante du graphe de flots de données.
PCT/FR2020/050377 2019-02-27 2020-02-26 Procédé de validation d'un système flots de données WO2020174186A1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2021550039A JP2022522177A (ja) 2019-02-27 2020-02-26 データフローシステムを検証するための方法
EP20713730.8A EP3908926A1 (fr) 2019-02-27 2020-02-26 Procédé de validation d'un système flots de données
US17/434,242 US20220147372A1 (en) 2019-02-27 2020-02-26 Method for validating a data flow system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1902028A FR3093208B1 (fr) 2019-02-27 2019-02-27 Procédé de validation d’un système flots de données
FR1902028 2019-02-27

Publications (1)

Publication Number Publication Date
WO2020174186A1 true WO2020174186A1 (fr) 2020-09-03

Family

ID=67383958

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2020/050377 WO2020174186A1 (fr) 2019-02-27 2020-02-26 Procédé de validation d'un système flots de données

Country Status (5)

Country Link
US (1) US20220147372A1 (fr)
EP (1) EP3908926A1 (fr)
JP (1) JP2022522177A (fr)
FR (1) FR3093208B1 (fr)
WO (1) WO2020174186A1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3026205A1 (fr) * 2014-09-23 2016-03-25 Commissariat Energie Atomique Execution speculative et iterative de graphes de flot de donnees temporises
US20160217029A1 (en) * 2015-01-28 2016-07-28 Qualcomm Incorporated Data Flow Tracking Via Memory Monitoring

Family Cites Families (3)

* 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
US8904371B2 (en) * 2012-06-19 2014-12-02 Telefonaktiebolaget L M Ericsson (Publ) Data handling among actors in a dataflow programming environment
US10313248B2 (en) * 2014-06-18 2019-06-04 Adobe Inc. Data flow node validation

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3026205A1 (fr) * 2014-09-23 2016-03-25 Commissariat Energie Atomique Execution speculative et iterative de graphes de flot de donnees temporises
US20160217029A1 (en) * 2015-01-28 2016-07-28 Qualcomm Incorporated Data Flow Tracking Via Memory Monitoring

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
LEE, E.A.MESSERSCHMITT, D.G., SYNCHRONOUS DATA OW. PROCEEDINGS OF THE IEEE, vol. 75, no. 9, 1987
LEE, E.A.MESSERSCHMITT, D.G.: "Static schedulingof synchronous data ow programs for digital signal processing", IEEE TRANSACTIONS ON COMPUTERS, vol. 100, no. 1, 1987
LEE, MESSERSCHMITT: "SYNCHRONOUS DATA FLOW", PROCEEDINGS OF THE IEEE, VOL. 75, N°9, vol. 75, no. 9, 1 September 1987 (1987-09-01), pages 1235 - 1245, XP000048475 *

Also Published As

Publication number Publication date
US20220147372A1 (en) 2022-05-12
JP2022522177A (ja) 2022-04-14
FR3093208B1 (fr) 2021-12-03
FR3093208A1 (fr) 2020-08-28
EP3908926A1 (fr) 2021-11-17

Similar Documents

Publication Publication Date Title
US20220214918A1 (en) Memory usage determination techniques
CN110347708B (zh) 一种数据处理方法以及相关设备
WO2019180435A1 (fr) Inférence de jumeaux numériques à partir de données capturées
EP1805611A1 (fr) Procede d'ordonnancement de traitement de tâches et dispositif pour mettre en oeuvre le procede
US11775269B2 (en) Generating a synchronous digital circuit from a source code construct defining a function call
FR2911976A1 (fr) Procede de conception d'un systeme comprenant des composants materiels et logiciels
CN110727700A (zh) 多源流式数据整合成事务型流数据的方法及系统
WO2017109386A1 (fr) Procede hors ligne d'allocation d'un logiciel embarque temps reel sur une architecture multicontrôleur multicoeur, et son utilisation pour des applications embarquees dans un vehicule automobile
WO2020174186A1 (fr) Procédé de validation d'un système flots de données
WO2017196749A1 (fr) Corrélation d'intensité de segment de pile dans des relations émergentes
FR2914525A1 (fr) Procede de simulation transactionnelle d'un modele generique de noeud de communication, produit programme d'ordinateur et moyen de stockage correspondants
FR3085513A1 (fr) Outil et procede de conception et de validation d'un systeme flots de donnees par un modele formel
WO2022123172A1 (fr) Procédés de détermination d'une structure anonyme de données, procédés de comptage de données, dispositif et système pour la mise en œuvre de tels procédés
FR2977955A1 (fr) Procede de determination de la taille d'une partie d'un logiciel
FR3128302A1 (fr) Méthode de conception d’une architecture matérielle optimisée pour l’exécution d’un réseau de neurones
FR2917522A1 (fr) Procede de reduction parametree de modeles d'automates communicants
FR2982970A1 (fr) Procede de mesure de l'evolution de la taille fonctionnelle d'un logiciel
FR3003367A1 (fr) Estimation de la fiabilite d'un circuit logique

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 20713730

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020713730

Country of ref document: EP

Effective date: 20210809

ENP Entry into the national phase

Ref document number: 2021550039

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE